Ninja IDE: En IDE designad för Python

Äntligen nådde någon att skriva en IDE som folket för Python som alla vanliga medborgare kan använda utan problem i Linux. Ja, det finns flera IDE: er för programmering på olika språk, inklusive Python, men den här har några små knep i ärmen.

Hur började NINJA-IDE?

NINJA-IDE Det föddes av några e-postmeddelanden som skickades till PyAr, vars tema 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 här eller den här funktionen?", och svaren på dessa e-postmeddelanden blir alltid mer eller mindre desamma, eftersom de nuvarande IDE: erna som vi finner tillgängliga, till största delen inte var utformade för Python, men erbjöd möjligheten att införliva det via ett plugin och på detta sätt Det brukade använda mycket tunga IDE-apparater som var utformade för andra ändamål, där stödet för Python faktiskt var minimalt, och de som var för Python hamnade mycket orienterade mot ett specifikt ramverk eller inte var gratis. Motiverat av utmaningen och intressanta idéer som togs upp på e-postlistan bestämde vi oss för att närma oss detta projekt genom att fokusera på "Vilka funktioner ska en bra IDE ha för en Python-programmerare".

Med detta i åtanke började vi utvecklingen av NINJA-IDE, vars namn är ett derivat av den rekursiva akronymen: "Ninja är inte bara en annan IDE". IDE har knappt mer än två månaders utveckling, men tack vare önskan och timmarna av programmering som vi ägnar åt det kan vi redan ha en IDE med många funktioner implementerade, så att vi kan fortsätta med utvecklingen av NINJA- IDE med NINJA-IDE, vilket i sin tur hjälper oss att hitta buggar och förbättra användbarheten och användbarheten i applikationen, genom erfarenhet och kontinuerlig användning av den.

Projektet utvecklas under en gratis GPL-licens och koden kan erhållas genom:

Några av IDE: s nuvarande funktioner är:

  • Typiska funktioner för valfri IDE för hantering av filer, flikar, automatisk indragning, zoom in Editor etc.
  • Eftersom den är skriven i Python och använder PyQt är den plattformsoberoende och testad på Linux-, MAC OS X- och Windows-system.
  • Syntaxmarkering för ett stort antal olika språk (även om den är Python-centrerad, 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 gör det möjligt att hantera projekt i IDE, känna igen dem som Python-projekt och genom IDE skapa nya filer och mappar, radera 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, så att den kan anpassas till användarens smak.
  • Låter dig visa mer än en redaktör samtidigt vertikalt eller horisontellt.
  • Utökningsbart genom tillägg av plugins (som kan skapas med ett 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 de öppnar en förekomst av den igen.
  • Stöd för automatisk komplettering (är en specifik automatisk komplettering av 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å NINJA-e-postlistan och till och med kodbidrag från användare och medarbetare, av vilka vissa blev del av NINJA-IDE med rollen som åtagare, vilket är fallet med: Martín Alderete, Juan Cabral och Matías Herranz.

Detta starka samarbete och deltagande som vi får från samhället gör att NINJA-IDE kan växa varje dag, förbättra och implementera funktioner som användarna behöver. I sin tur motiverar de kommentarer vi får från personer som för närvarande använder NINJA-IDE oss att fortsätta arbeta hårt med det här verktyget, 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 trodde man en struktur som skulle möjliggöra för den att växa och införliva funktionalitet över tid, med två huvudfaktorer som kod: Redaktör och projektledning. Applikationen började byggas med hänsyn till dessa två grundläggande pelare och möjliggjorde en bra bas av dem för att senare underlätta införlivandet av nya funktioner. Projektet gick igenom olika steg, med början med en bra redaktör med syntaxmarkering, fortsatte med hanteringen av projektfiler, tills man lade till plugin-funktioner, automatisk slutförande, sessionshantering etc. Python ses ofta som ett språk som har större svårigheter att tillhandahålla information om koden som skrivs eftersom den inte kan dra slutsatser från objekt vid tidpunkten för programmering på grund av dynamisk typning etc.

I vissa fall är det sant att det att ha en uttrycklig typning kan utföra enklare och mer detaljerade analyser, 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 NINJA-IDE strävar efter att låta de programmerare som använder Python utveckla sina program, ha samma faciliteter och hjälpmedel som erhålls vid utveckling i Java eller .NET med några av de IDE som för närvarande är mest kända för dessa språk. Genom att ta resultaten och erfarenheterna från IDE för andra språk är det avsett att uppnå en IDE designad för Python som genererar samma tillfredsställelse när du använder den.

För förslaget, beslutet och införlivandet 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ågonting för att veta vad målet med denna funktion kommer att vara, i vilket stadium som ska införlivas och andra detaljer. Många gånger motiveras dessa egenskaper av intressant funktionalitet som ses i en annan IDE, en idé från en av medlemmarna eller förslag från användargruppen. På detta sätt kan vem som helst, både användare och utvecklare, föreslå vilka saker de vill se implementerade i NINJA-IDE och baserat på projektarkitekturen kan det definieras om det är nödvändigt att införliva det som en del av IDE själv eller som ett plugin, så att samtidigt veta vilka idéer som jobbar 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 metoderna 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ö med fokus på utveckling av Python-applikationer, men alltid med hänsyn till behovet av att ha en grupp användare som skulle göra det möjligt för oss att förbättra upplevelsen av att använda detta verktyg, och för närvarande gör oss mycket glada att kunna räkna med NINJA-IDE-communityn, 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 med i beräkningen än från en annan form kan förbises.

Framtidsplaner

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

  • Grafisk felsökare
  • För att kunna se navigerbarheten och relationen mellan modulerna och klasserna i ett projekt grafiskt (baserat på BlueJ)
  • Stödkod versioneringsverktyg.
  • Tillåt samarbetsredigering av ett dokument.
  • Designer av Qt- och Gtk-gränssnitt integrerade i IDE.
  • Ramstöd som:
  • Django
  • Google App Engine

 

  • Och detta har precis börjat!

 

Vilka verktyg använder NINJA-IDE?

IDE är utvecklat med hjälp av PyQt-ramverket för all hantering av det grafiska gränssnittet och vissa andra funktioner, även om ett försök gjordes att abstrakta vissa funktioner så mycket som möjligt för att möjliggöra, om nödvändigt imorgon, att porta NINJA-IDE till andra ramar som Gtk. Qt gjorde det möjligt att ha ett gediget och mycket konfigurerbart gränssnitt, vilket gjorde det möjligt att utvidga varje nödvändigt element för att modifiera dess beteende och anpassa det till IDE: s behov.

När det gäller syntaxmarkering använder NINJA-IDE sitt eget syntaxmarkeringssystem med hjälp av Qt-funktioner, och gör det möjligt att detta markeringssystem lätt kan utökas i NINJA-IDE med skapandet av en enkel JSON-fil som beskriver språk som ska införlivas. Denna metod ger prestandaförbättringar, men för att täcka de språk som inte känns igen genom detta system infördes användningen av Pygments för syntaxmarkering av ett större antal språk. Även om möjligheten att Pygments ersätts av GNU Highlight av prestationsskäl nu ökar.

För automatisk komplettering, refactoring och de som hänvisar till kodinferens används Rope, vilket är ett utmärkt bibliotek, mycket komplett för denna typ av situation. Rope är ett verktyg som gör det möjligt att ta fram en IDE för Python-egenskaper hos IDE för typade språk. För närvarande arbetar vi också med införlivandet av kodkontroll med hjälp av Pep8-biblioteket, just för att ge information om kodens status i förhållande till Pep8-standarderna.

NINJA-IDE töjbarhet

NINJA-IDE har ett ganska komplett plugin-system som gör det möjligt att integrera dessa plugins som ett inbyggt element i IDE. Plugin-skrivning är ganska enkelt och du kan till och med använda ett NINJA-IDE-plugin för att skriva NINJA-IDE-plugins (rekursivt?). Detta plugin «för att skriva plugins» låter dig bestämma med vilka delar av IDE det nya pluginet ska relateras och skapar automatiskt den nödvändiga projektstrukturen tillsammans med Plugin-deskriptoren så att NINJA-IDE kan tolka det och basklassen för Detta plugin med de metoder som kommer att behöva implementeras i sin tur, när vi är färdiga med att skriva Plugin, låter det oss paketera det och sedan distribuera det. För närvarande finns det tre plugins för NINJA-IDE tillgängliga:

  • pastebin: vilket gör att du kan skicka kod till pastebin.com och returnerar den resulterande länken för att dela den koden.
  • PluginProjekt: personen som ansvarar för att skapa plugins-projekt för NINJA-IDE som vi nämnde.
  • ClassCompleter: kompletterar automatiskt vissa strukturer medan du skriver Python-kod, till exempel: skapa konstruktören automatiskt genom att ringa de föräldraklasser som behövs etc.

Om du vill läsa mer information om hur du utvecklar ett plugin för NINJA-IDE kan du besöka följande Wiki: http://ninja-ide.org/plugins/

Kontakt

Ansvarsfrihet

Ninja IDE är nu tillgängligt i DEB- och RPM-paket. Resten av världen kan naturligtvis alltid ladda ner källkoden och sammanställa den. 🙂

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

Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

9 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  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. Hur bra arbete som helst gratulationer och hälsningar. @patoargu

  2.   Riccardo3284 sade

    Hälsningar till samhället Jag är ett fan av programmering i python, IDE är väldigt bra men på min dator har jag Ubuntu 10.10 och jag kan inte arbeta med de funktioner som du ser i figur 4, bilden där kommandon eller klasser eller metoder visas av ett pythonobjekt är denna egenskap väldigt viktig åtminstone för mig eftersom inte alla kommandon lärs in och samtidigt skulle det tillåta oss att lära oss mer för programmerare, men den funktionaliteten kommer inte ut i min Ubuntu.

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

  3.   marcoshipe sade

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

  4.   Alex sade

    ^^, jag började som medlem i utvecklingsteamet :), men till slut hade jag inte tid eller tillräcklig kunskap och jag var tvungen att ge upp den :(. Men jag är väldigt glad att NInja IDE till slut gick vidare och med så bra resultat.

  5.   marcoshipe sade

    Jag försöker det redan 😀
    förhoppningsvis så bra, men eftersom jag använder python och qt gillar jag xD
    Jag antar att han torkar eric, och jag tittade och det har stöd för git 😀 Jag tror att vi kommer att komma överens

  6.   Daniel sade

    Jag tycker att det är utmärkt, det enda negativa är att eftersom de är spansktalande skapar de gränssnitt på engelska, de borde göra dem på spanska, IDES på engelska det finns många varför inte göra något som alla vi som inte hanterar engelska förstår, annars har jag inte det men gratulera dem.

    hälsningar

  7.   Eugeniu Tambur sade

    Jag gillar det, men just nu är det något grönt, jag har testat det och det lämnar mig bedövad och det startar om Windows Explorer ständigt och fler fel, men så snart de fixar det och det är något mer stabilt kommer det utan tvekan att vara mycket framgångsrikt.

  8.   daniel dcs sade

    Utmärkt arbete "gjort i" Argentina !!!! Uppriktiga gratulationer till hela utvecklingsteamet !!!!

  9.   neyer sade

    Hälsningar till alla, mycket bra arbete, IDE är ganska bekväm att använda, det skulle vara väldigt intressant att inkludera en redaktör för Grafiska användargränssnitt, det skulle också vara fascinerande om det låter dig generera projektdokumentationen (Kanske i stil med Javadocs).

    Fortsätt.