Ninja IDE: En IDE designad för Python

Äntligen värdade någon att skriva en IDE som människor för Python som vilken vanlig medborgare som helst kan använda utan problem på Linux. Ja, det finns flera IDE för programmering på olika språk, inklusive Python, men den här har några små knep i rockärmen.

Hur började NINJA-IDE?

NINJA-IDE Det föddes från några e-postmeddelanden som skickats till PyAr, vars tema ofta hörs ganska ofta: "Vilken bra IDE för Python kan jag använda?", "Varför finns det inte en IDE för Python som har den eller den funktionen?", och svaren på dessa e-postmeddelanden slutar alltid med att vara mer eller mindre desamma, eftersom de nuvarande IDE:erna som vi finner tillgängliga, för det mesta, inte var designade för Python, utan snarare erbjöd möjligheten att införliva den via en plugin och i så här brukade det använda väldigt tunga IDE:er designade för andra ändamål, där stödet för Python faktiskt var minimalt, och de som var för Python slutade med att vara väldigt orienterade mot ett specifikt ramverk eller inte var gratis. Så, motiverade av utmaningen det representerade, och av intressanta idéer som togs upp på e-postlistan, bestämde vi oss för att närma oss detta projekt med fokus på "vilka funktioner en bra IDE för en Python-programmerare bör ha".

Med detta i åtanke startade vi utvecklingen av NINJA-IDE, vars namn är en derivata av den rekursiva akronymen: "Ninja är inte bara en annan IDE". IDE:n har drygt två månaders utveckling, men tack vare önskan och timmar av programmering som vi ägnar åt den, kan vi redan nu räkna med en IDE med många implementerade funktioner, till den grad att vi kan fortsätta med utvecklingen av NINJA-IDE använder NINJA-IDE, vilket i sin tur hjälper oss att hitta buggar och förbättra användbarheten och praktiska tillämpningen genom upplevelsen och kontinuerlig användning av den.

Projektet är utvecklat under en gratis GPL-licens och koden kan erhållas via:

Några av de nuvarande funktionerna i IDE är:

  • Typiska egenskaper för alla IDE för filhantering, flikar, automatisk indrag, Zoom in Editor, etc.
  • Den är skriven i Python och använder PyQt, den är plattformsoberoende och har testats på Linux, MAC OS X och Windows-system.
  • Syntaxmarkering för en mängd olika språk (även om den är fokuserad på Python, ger den syntaxmarkering för andra språk för programmerarens bekvämlighet).
  • Möjlighet att använda en Python-konsol från samma IDE.
  • Det tillåter hantering av projekt i IDE, känna igen dem som Python-projekt och genom IDE skapa nya filer och mappar, ta bort befintliga filer, automatiskt skapa "__init__"-filer med informationen i den modulen, etc.
  • Det gör det möjligt att dölja och flytta alla gränssnittspaneler på ett mycket enkelt sätt, vilket gör att det kan anpassas efter användarens smak.
  • Låter dig visa mer än en redigerare samtidigt vertikalt eller horisontellt.
  • Kan utökas genom inkorporering av plugins (som kan skapas med hjälp av en NINJA-IDE-plugin för enkelhetens skull).
  • Den hanterar IDE-sessioner, för att komma ihåg vilka filer och projekt som var öppna när den stängdes och återställer dem när du öppnar en instans av den igen.
  • Stöd för automatisk komplettering (är ett autokompletterande specifikt för objektet som nås).
  • Automatiska uppdateringar.
  • Och många fler funktioner!

Vem utvecklar NINJA-IDE?

NINJA-IDE började utvecklas av Santiago Moreno och Diego Sarmentero, och två veckor efter att projektet startade användes det redan för att utveckla det. Tack till folket på PyAr-listan, bloggar, etc. På mycket kort tid innebar spridningen av projektet att vi kunde räkna med felrapporter från användare, förslag på NINJAs e-postlista och till och med kodbidrag från användare och samarbetspartners, av vilka några blev medlemmar. del av NINJA-IDE med rollen som engagerare, vilket är fallet med: Martín Alderete, Juan Cabral och Matías Herranz.

Detta starka samarbete och deltagande som vi får från communityn tillåter NINJA-IDE att växa varje dag, förbättra och implementera funktioner som användarna behöver. I sin tur motiverar feedbacken vi får från personer som för närvarande använder NINJA-IDE oss att fortsätta arbeta hårt med detta verktyg, med vilket vi vill förenkla utvecklingen av Python-applikationer ytterligare.

Hur bestämde du dig för vilka funktioner du skulle lägga till?

I början av projektet tänkte man på en struktur som skulle göra det möjligt för det att växa och införliva funktioner över tid, med två huvudfaktorer som vägledning: kodredigeraren och projektledning. Applikationen började byggas för att ta hand om dessa två grundläggande pelare och tillåta en bra bas av dem för att underlätta införlivandet av nya funktioner. Projektet gick igenom olika stadier, som började med en bra redigerare med syntaxmarkering, fortsatte med projektfilhantering, till att lägga till plugin-funktioner, autokomplettering, sessionshantering, etc. Python ses ofta som ett språk som har större svårigheter att ge information om koden som skrivs, eftersom det inte kan göra slutsatser om objekt vid programmeringstillfället på grund av dynamisk typning, etc.

I vissa fall är det sant att man genom att ha explicit skrivning kan utföra enklare och mer detaljerad analys, men det är också sant att det för närvarande finns många verktyg och bibliotek för Python som hjälper till att eliminera detta tabu att det inte är möjligt att ha en IDE som ger verklig hjälp med koden som genereras. Det är därför som NINJA-IDE vill låta de programmerare som använder Python utveckla sina program, ha samma faciliteter och hjälp som man får när man utvecklar i Java eller .NET med en av de för närvarande mest kända IDE:erna för dessa språk. Med de resultat och erfarenheter som erhållits från IDE för andra språk, är det tänkt att uppnå en IDE designad för Python som genererar samma tillfredsställelse när du använder den.

För förslag, beslut och införlivande av nya funktioner i NINJA-IDE, används e-postlistan vanligtvis för att uppnå ett kollektivt beslut av medlemmarna som utgör projektet, mer än något annat för att veta vad syftet med denna funktion kommer att vara, i vilket skede som bör införlivas och andra detaljer. Många gånger är dessa funktioner motiverade av någon intressant funktionalitet som ses i en annan IDE, en idé från en av medlemmarna eller förslag från användargruppen. På så sätt kan vem som helst, både användare och utvecklare, föreslå vilka saker de skulle vilja se implementerade i NINJA-IDE och utifrån projektets arkitektur kommer det att vara möjligt att definiera om det är nödvändigt att införliva det som en del av projektet. IDE själv eller som ett plugin, som samtidigt låter dig veta vilka idéer som arbetas med och vem som tar kontroll över dem för att hålla arbetsgruppen synkroniserad.

Vad kan vi förvänta oss av NINJA-IDE?

NINJA-IDE föddes för att täcka ett behov som verkade viktigt för oss, och vi såg också att de nuvarande tillvägagångssätten för IDE inte gav den nödvändiga täckningen.

Vår avsikt när vi startade detta projekt var att skapa en miljö fokuserad på utvecklingen av Python-applikationer, men att alltid ha i åtanke behovet av att ha en gemenskap av användare som skulle tillåta oss att förbättra användarupplevelsen av detta verktyg, och för närvarande gör det oss mycket glad. att kunna lita på NINJA-IDE-communityt, eftersom tack vare användarnas erfarenhet och kollektiva kunskap är det möjligt att med deras förslag kan utvecklingen av projektet gå snabbare och många fler detaljer tas in i konto än annars sätt kunde förbises.

Framtida planer

För närvarande, med den kontinuerliga utvecklingen som vi uppnår, är vi nära releasen av version 1.0 av NINJA-IDE, som kommer att få namnet 'Kunai'. I denna första version kommer flera av de tidigare nämnda funktionerna att finnas, vilket gör att utvecklaren kan ha en robust och praktisk IDE, uppenbarligen, som i alla projekt, kommer förbättringar och nya funktioner att implementeras att dyka upp. Några av de saker som planeras att införlivas i NINJA-IDE i framtida versioner är:

  • Grafisk debugger
  • Att kunna se navigerbarheten och förhållandet mellan modulerna och klasserna i ett projekt grafiskt (baserat på BlueJ)
  • Stöd kodversionsverktyg.
  • Tillåt gemensam redigering av ett dokument.
  • Qt och Gtk gränssnittsdesigner integrerad i IDE.
  • Stöd för ramar som:
  • Django
  • Google App Engine
  • Och det här har bara börjat!

Vilka verktyg använder NINJA-IDE?

IDE är utvecklad med PyQt-ramverket för all hantering av det grafiska gränssnittet och vissa andra funktioner, även om ett försök gjordes att abstrahera vissa funktioner så mycket som möjligt för att tillåta, om nödvändigt i morgon, att porta NINJA-IDE till andra ramverk som t.ex. som gtk. Qt tillät oss att ha ett solidt och mycket konfigurerbart gränssnitt, vilket gjorde det möjligt att utöka varje element som var nödvändigt för att ändra dess beteende och anpassa det till behoven hos IDE.

När det gäller syntaxmarkering använder NINJA-IDE sitt eget syntaxmarkeringssystem som använder Qt-funktioner, och låter detta markeringssystem enkelt kunna utökas i NINJA-IDE genom att skapa en enkel JSON-fil som beskriver syntaxmarkeringsspråket som ska inkorporeras. Denna metod ger prestandaförbättringar, men för att täcka de språk som inte känns igen genom detta system, inkorporerades användningen av Pygments för syntaxmarkering av ett större utbud av språk. Även om möjligheten att Pygments ersätts av GNU Highlight av prestandaskäl för närvarande tas upp.

För autokomplettering, refactoring och de som hänvisar till kodinferensfunktioner används Rope, vilket är ett utmärkt bibliotek, mycket komplett för denna typ av situation. Rope är ett verktyg som låter dig överföra funktioner för maskinskrivna språk-IDE till en Python IDE. För närvarande arbetar vi också med att införliva Code Check med hjälp av Pep8-biblioteket, just för att ge information om kodens status i förhållande till Pep8-standarder.

NINJA-IDE töjbarhet

NINJA-IDE har ett ganska komplett plugin-system som tillåter integrering av dessa plugins som ett inbyggt element i IDE. Att skriva plugins är ganska enkelt och du kan till och med använda en NINJA-IDE Plugin för att skriva plugins för NINJA-IDE (rekursiv?). Denna plugin "för att skriva plugins" låter dig bestämma vilka delar av IDE den nya plugin ska relatera till och skapar automatiskt den nödvändiga projektstrukturen, tillsammans med plugin deskriptorn så att NINJA-IDE kan tolka den och basklassen för Denna plugin med metoderna som kommer att behöva implementeras på nytt, i sin tur, när vi är klara med skrivningen av plugin, tillåter oss att paketera den för att kunna distribuera den senare. Det finns för närvarande 3 plugins för NINJA-IDE tillgängliga:

  • pastebin: som låter dig skicka kod till pastebin.com och returnerar den resulterande länken för att dela den koden.
  • PluginProject: den som ansvarar för att skapa plugins-projekt för NINJA-IDE som vi nämnde.
  • ClassCompleter: slutför automatiskt vissa strukturer medan du skriver Python-kod, till exempel: skapa konstruktorn automatiskt genom att anropa de överordnade klasserna som är nödvändiga, etc.

För att konsultera mer information om hur man utvecklar en plugin för NINJA-IDE, kan du besöka följande Wiki: http://ninja-ide.org/plugins/

Kontakt

Ansvarsfrihet

Ninja IDE finns nu i DEB- och RPM-paket. Resten av världen kan naturligtvis alltid ladda ner källkoden och kompilera den. 🙂

Tack Diego Sarmentero för att du delar denna utmärkta IDE med oss ​​alla!

9 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   patrick arguello sade

    Jag gillar verkligen PyCharm bättre. Men bra jobbat grattis och hälsningar. @patoargu

  2.   riccardo3284 sade

    Hälsningar till samhället, jag är ett fan av programmering i python, IDE är mycket bra men på min dator har jag ubuntu 10.10 och jag kan inte arbeta med egenskaperna som du ser i figur 4, bilden där kommandona eller klasserna eller metoder visas för ett python-objekt, den här funktionen är mycket viktig åtminstone för mig eftersom du inte lär dig alla kommandon och samtidigt skulle det tillåta programmerare att lära sig mer, men den funktionaliteten visas inte i min ubuntu.

    Jag hoppas att någon från samhället kan hjälpa mig, min e-post är riccardo3284@gmail.com

  3.   marcoshipe sade

    Jag läste fel, stödet för git är ännu inte implementerat, men det är redan ett plugin som de planerar att implementera 🙂

  4.   Alex sade

    ^^, jag började som medlem i utvecklingsteamet :), men till slut hade jag inte tillräckligt med tid eller kunskap och jag var tvungen att sluta :(. Men jag är verkligen glad att NInja IDE äntligen fortsatte och med så bra resultat.

  5.   marcoshipe sade

    Jag har redan provat det 😀
    Låt oss hoppas att det är bra, men eftersom jag använder python och qt gillar jag det xD
    Jag antar att han ger Eric trasan, och jag kollade och han har git-stöd 😀 Jag tror att vi kommer att komma överens bra

  6.   Daniel sade

    Jag tycker det är utmärkt, det enda negativa är att vi, som är spansktalande, skapar gränssnitt på engelska, de borde göras på spanska, det finns massor av IDES på engelska, varför inte göra något som alla vi som inte talar Engelska förstår, för övrigt passar det inte mig men gratulera dem.

    hälsningar

  7.   Eugeniu Tambur sade

    Jag gillar det, men för tillfället är det något grönt, jag har provat det och det lämnar min dator bedövad, och den startar om Windows Explorer konstant och fler fel, men så fort de fixar det och det är något mer stabilt kommer det utan tvekan bli mycket framgångsrik.

  8.   daniel dcs sade

    Utmärkt arbete "made in" Argentina!!!! Hjärtligt grattis till hela utvecklingsteamet!!!!

  9.   neyer sade

    Hälsningar alla, mycket bra jobbat, IDE är ganska bekväm att använda, det skulle vara mycket intressant att inkludera en grafisk användargränssnittsredigerare, det skulle också vara fascinerande om det låter dig generera projektdokumentationen (kanske i stil med Javadocs ).

    Fortsätt.