Ninja IDE: En IDE designet til Python

Endelig sagde nogen til at skrive en IDE som folkene til Python som enhver almindelig borger kan bruge uden problemer i Linux. Ja, der er flere IDE'er til programmering på forskellige sprog, herunder Python, men denne har et par små tricks i ærmet...

Hvordan startede NINJA-IDE?

NINJA-IDE Det blev født af nogle e-mails sendt til PyAr, hvis tema normalt høres ret ofte: "Hvilken god IDE til Python kan jeg bruge?", "Hvorfor er der ikke en IDE til Python, der har denne eller den anden funktion?", og svarene på disse e-mails ender altid med at være mere eller mindre de samme, da de nuværende IDE'er, som vi finder tilgængelige, for det meste ikke var designet til Python, men tilbød muligheden for at inkorporere det via et plugin og på denne måde Det brugte tidligere meget tunge IDE'er designet til andre formål, hvor supporten til Python faktisk var minimal, og dem, der var til Python, endte med at være meget orienteret mod en bestemt ramme eller ikke var gratis. Motiveret af den udfordring, den repræsenterede, og interessante ideer, der blev rejst på mailinglisten, besluttede vi at nærme os dette projekt ved at fokusere på "Hvilke funktioner skal en god IDE have for en Python-programmør".

Med dette i tankerne begyndte vi udviklingen af ​​NINJA-IDE, hvis navn er et derivat af det rekursive akronym: "Ninja er ikke bare endnu en IDE". IDE har knap mere end to måneders udvikling, men takket være ønsket om og timevis af programmering, som vi afsætter til det, kan vi allerede have en IDE med mange funktionaliteter implementeret til det punkt, at vi kan fortsætte med udviklingen af ​​NINJA- IDE ved hjælp af NINJA-IDE, hvilket igen hjælper os med at finde bugs og forbedre anvendeligheden og anvendeligheden af ​​applikationen gennem erfaring og kontinuerlig brug af den.

Projektet er udviklet under en gratis GPL-licens, og koden kan fås gennem:

Nogle af de aktuelle funktioner i IDE er:

  • Typiske funktioner for enhver IDE til håndtering af filer, faner, automatisk indrykning, zoom ind editor osv.
  • At være skrevet i Python og bruge PyQt, er det på tværs af platforme og blev testet på Linux-, MAC OS X- og Windows-systemer.
  • Syntaksfremhævning til en lang række sprog (selvom det er Python-centreret, giver det syntaksfremhævning for andre sprog for at gøre det lettere for programmøren).
  • Mulighed for at bruge en Python-konsol fra den samme IDE.
  • Det giver mulighed for styring af projekter i IDE, genkendelse af dem som Python Projects og gennem IDE oprettelse af nye filer og mapper, sletning af eksisterende filer, automatisk oprettelse af "__init__" filer med informationen inden for dette modul osv.
  • Det giver mulighed for at skjule og flytte alle interface-paneler på en meget enkel måde, så det kan tilpasses brugerens smag.
  • Giver dig mulighed for at se mere end én redaktør på samme tid lodret eller vandret.
  • Kan udvides ved tilføjelse af plugins (som kan oprettes ved hjælp af et NINJA-IDE Plugin for enkelhedens skyld).
  • Det styrer IDE-sessioner for at huske, hvilke filer og projekter der var åbne, da det blev lukket, og gendanner dem, når de åbner en forekomst af det igen.
  • Understøttelse af autofuldførelse (som en specifik autofuldførelse af det objekt, der er adgang til).
  • Automatiske opdateringer.
  • Og mange flere funktioner!

Hvem udvikler NINJA-IDE?

NINJA-IDE begyndte at blive udviklet af Santiago Moreno og Diego Sarmentero, og to uger efter projektets start blev det allerede brugt til at udvikle det. Tak til folkene på PyAr-listen, blogs osv. På meget kort tid betød udbredelsen af ​​projektet, at vi kunne stole på fejlrapporter fra brugere, forslag på NINJA-postlisten og endda med kodebidrag fra brugere og samarbejdspartnere, hvoraf nogle blev en del af NINJA-IDE med rolle, som det er tilfældet med: Martín Alderete, Juan Cabral og Matías Herranz.

Dette stærke samarbejde og deltagelse, som vi modtager fra samfundet, gør det muligt for NINJA-IDE at vokse hver dag, forbedre og implementere funktioner, som brugerne har brug for. Til gengæld motiverer de kommentarer, vi modtager fra folk, der i øjeblikket bruger NINJA-IDE, os til at fortsætte med at arbejde hårdt på dette værktøj, som vi yderligere vil forenkle udviklingen af ​​Python-applikationer med.

Hvordan besluttede du, hvilke funktioner der skulle tilføjes?

I begyndelsen af ​​projektet troede man en struktur, der gjorde det muligt for den at vokse og inkorporere funktionaliteter over tid med to hovedfaktorer som kode: Code Editor og Project Management. Applikationen begyndte at blive bygget ved at tage sig af disse to grundlæggende søjler og tillade en god base af dem at lette inkorporeringen af ​​nye funktioner senere. Projektet gik gennem forskellige faser, startende med en god editor med syntaksfremhævning, fortsatte med styringen af ​​projektfiler, indtil der blev tilføjet plugin-funktioner, automatisk udfyldelse, session management osv. Python ses ofte som et sprog, der har større vanskeligheder med at give information om den kode, der skrives, da den ikke kan slutte sig fra objekter på tidspunktet for programmeringen på grund af dynamisk skrivning osv.

I nogle tilfælde er det rigtigt, at det at have en eksplicit skrivning kan udføre enklere og mere detaljerede analyser, men det er også rigtigt, at der i øjeblikket er mange værktøjer og biblioteker til Python, der hjælper med at eliminere dette tabu, at det ikke er muligt at have en IDE, der giver reel hjælp til den kode, der genereres. Derfor søger NINJA-IDE at lade de programmører, der bruger Python, udvikle deres programmer, har de samme faciliteter og hjælpemidler, der opnås, når de udvikler sig i Java eller .NET med nogle af de IDE'er, der i øjeblikket er bedst kendt for disse sprog. Hvis man tager resultaterne og erfaringerne fra IDE'er til andre sprog, er det beregnet til at opnå en IDE designet til Python, der genererer den samme tilfredshed, når man bruger den.

Til forslag, beslutning og inkorporering af nye funktioner i NINJA-IDE bruges mailinglisten normalt til at opnå en kollektiv beslutning af de medlemmer, der udgør projektet, mere end noget andet for at vide, hvad målet med denne funktion vil være i hvilket stadium der skal indarbejdes og andre detaljer. Mange gange er disse egenskaber motiveret af nogle interessante funktioner set i en anden IDE, en idé fra et af medlemmerne eller forslag fra brugergruppen. På denne måde kan enhver, både bruger og udvikler, foreslå, hvilke ting de gerne vil se implementeret i NINJA-IDE og ud fra projektarkitekturen kan det defineres, hvis det er nødvendigt at inkorporere det som en del af IDE selv eller som et plugin, der samtidig giver mulighed for at vide, hvilke idéer der arbejdes med, og hvem der tager kontrol over dem for at holde arbejdsgruppen synkroniseret.

Hvad kan vi forvente af NINJA-IDE?

NINJA-IDE blev født for at dække et behov, der syntes vigtigt for os, og vi så også, at de nuværende tilgange til IDE'er ikke gav den nødvendige dækning.

Vores hensigt, da vi startede dette projekt, var at skabe et miljø med fokus på udvikling af Python-applikationer, men altid under hensyntagen til behovet for at have et brugerfællesskab, der gjorde det muligt for os at forbedre oplevelsen af ​​at bruge dette værktøj, og gør os i øjeblikket meget glade for at kunne stole på NINJA-IDE-samfundet, da det takket være brugernes erfaring og kollektive viden er muligt, at projektets udvikling med deres forslag kan gå hurtigere, og der tages mange flere detaljer i betragtning end fra en anden form kunne overses.

Fremtidsplaner

I øjeblikket med den kontinuerlige udvikling, som vi opnår, er vi tæt på udgivelsen af ​​version 1.0 af NINJA-IDE, som vil modtage navnet 'Kunai'. I denne første version vil flere af de tidligere nævnte funktioner være til stede, som gør det muligt for udvikleren at have en robust og praktisk IDE, selvfølgelig som i ethvert projekt, forbedringer og nye funktioner vil dukke op til at implementere. Nogle af de ting, der er beregnet til at blive indarbejdet i NINJA-IDE i fremtidige versioner, er:

  • Grafisk fejlfinding
  • At være i stand til at se navigationsevnen og forholdet mellem moduler og klasser i et projekt grafisk (baseret på BlueJ)
  • Supportkode versioneringsværktøjer.
  • Tillad samarbejdsredigering af et dokument.
  • Qt og Gtk interface designer integreret i IDE.
  • Rammesupport såsom:
  • Django
  • Google App Engine
  • Og dette er lige begyndt!

Hvilke værktøjer bruger NINJA-IDE?

IDE er udviklet ved hjælp af PyQt-rammen til al håndtering af den grafiske grænseflade og nogle andre funktionaliteter, selvom der blev gjort et forsøg på at abstrakte visse funktioner så meget som muligt for at muliggøre, om nødvendigt i morgen, at porte NINJA-IDE til andre rammer såsom som Gtk. Qt gjorde det muligt at have en solid og meget konfigurerbar grænseflade, som gjorde det muligt at udvide hvert nødvendigt element for at ændre dets adfærd og tilpasse det til IDE's behov.

Med hensyn til syntaksfremhævning bruger NINJA-IDE sit eget syntaksfremhævningssystem ved hjælp af Qt-funktionaliteter og gør det muligt for dette fremhævningssystem let at udvides i NINJA-IDE med oprettelsen af ​​en simpel JSON-fil, der beskriver sprog, der skal indarbejdes. Denne metode giver forbedringer i ydeevne, men for at dække de sprog, der ikke genkendes gennem dette system, blev brugen af ​​Pygments indarbejdet til syntaksfremhævning af et større udvalg af sprog. Selvom muligheden for, at Pygments bliver erstattet af GNU Highlight af ydeevneårsager, i øjeblikket hæves.

Til autofuldførelse, refactoring og dem, der henviser til kodeinferens, bruges Rope, som er et fremragende bibliotek, meget komplet til denne type situation. Rope er et værktøj, der gør det muligt at bringe til en IDE for Python-egenskaber ved IDE'er af typede sprog. I øjeblikket arbejder vi også med inkorporering af kodekontrol ved hjælp af Pep8-biblioteket, netop for at give oplysninger om status for koden i forhold til Pep8-standarderne.

NINJA-IDE udvidelse

NINJA-IDE har et ret komplet pluginsystem, der tillader integration af disse plugins som et oprindeligt element i IDE. Plugin-skrivning er ret enkel, og du kan endda bruge et NINJA-IDE Plugin til at skrive NINJA-IDE Plugins (rekursivt?). Dette plugin «til at skrive plugins» giver dig mulighed for at bestemme, hvilke dele af IDE det nye plugin skal relateres til og opretter automatisk den nødvendige projektstruktur sammen med Plugin-deskriptoren, så NINJA-IDE kan fortolke det og basisklassen af dette plugin med de metoder, der skal genimplementeres, når vi er færdige med at skrive pluginet, giver det os mulighed for at pakke det og derefter distribuere det. I øjeblikket er der 3 plugins til NINJA-IDE tilgængelige:

  • pastebin: som giver dig mulighed for at sende kode til pastebin.com og returnere det resulterende link for at dele den kode.
  • PluginProjekt: den person, der har ansvaret for at oprette plugins-projekter til NINJA-IDE, som vi nævnte.
  • ClassCompleter: fuldfører automatisk nogle strukturer, mens du skriver Python-kode, såsom: Opret konstruktøren automatisk ved at kalde de nødvendige forældreklasser osv.

For at få flere oplysninger om, hvordan man udvikler et plugin til NINJA-IDE, kan du besøge følgende Wiki: http://ninja-ide.org/plugins/

kontakt

Aflad

Ninja IDE er nu tilgængelig i DEB- og RPM-pakker. Resten af ​​verden kan naturligvis altid downloade kildekoden og kompilere den. 🙂

Tak Diego Sarmentero for at dele denne fremragende IDE med os alle!

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Patrick Arguello sagde han

    Jeg kan virkelig godt lide PyCharm bedre. Dog godt arbejde tillykke og hilsen. @patoargu

  2.   riccardo3284 sagde han

    Hilsen til samfundet Jeg er en fan af programmering i python, IDE er meget god, men på min computer har jeg Ubuntu 10.10, og jeg kan ikke arbejde med de funktioner, du ser i figur 4, det billede, hvor kommandoer eller klasser eller metoder er vist af et python-objekt, er denne egenskab meget vigtig i det mindste for mig, da ikke alle kommandoer læres, og på samme tid vil det give os mulighed for at lære mere om programmører, men denne funktionalitet kommer ikke ud i min ubuntu.

    Jeg håber, at nogen fra samfundet kan hjælpe mig, min e-mail er riccardo3284@gmail.com

  3.   marcoshipe sagde han

    Jeg læste det forkert, supporten til git er endnu ikke implementeret, men det er allerede som et plugin, som de planlægger at implementere 🙂

  4.   Alex sagde han

    ^^, jeg startede som medlem af udviklingsteamet :), men til sidst havde jeg ikke tid eller nok viden, og jeg var nødt til at opgive det :(. Men jeg er meget glad for, at NInja IDE til sidst gik videre og med så gode resultater.

  5.   marcoshipe sagde han

    Jeg prøver det allerede 😀
    forhåbentlig dette godt, men da jeg bruger python og qt, kan jeg godt lide xD
    Jeg antager, at han tørrer eric, og jeg kiggede, og det har støtte til git 😀 Jeg tror, ​​vi kommer sammen

  6.   Daniel sagde han

    Jeg synes, det er fremragende, det eneste negative er, at de, da de er spansktalende, skaber grænseflader på engelsk, de skal gøre dem på spansk, IDES på engelsk, der er masser af hvorfor ikke gøre noget, som alle os, der ikke håndterer engelsk forstå, ellers har jeg det ikke, men lykønsker dem.

    hilsen

  7.   Eugeniu Tambur sagde han

    Jeg kan lide det, men i øjeblikket er det noget grønt, jeg har testet det, og det lader mig forbløffet, og det genstarter Windows Explorer konstant og flere fejl, men så snart de løser det, og det er noget mere stabilt, vil det utvivlsomt være meget succesrig.

  8.   Daniel DCS sagde han

    Fremragende arbejde "lavet i" Argentina !!!! Oprigtige tillykke til hele udviklingsteamet !!!!

  9.   neyer sagde han

    Hilsen til alt, meget godt arbejde, IDE er ret behagelig at bruge, det ville være meget interessant at inkludere en redaktør af Grafiske brugergrænseflader, det ville også være fascinerende, hvis det giver dig mulighed for at generere projektdokumentationen (måske i stil med Javadocs).

    Fortsæt.