Ninja IDE: En IDE designet for Python

Endelig deignerte noen å skrive en IDE som folkene til Python som enhver vanlig borger kan bruke uten problemer i Linux. Ja, det er flere IDEer for programmering på forskjellige språk, inkludert Python, men denne har noen små triks i ermet...

Hvordan startet NINJA-IDE?

NINJA-IDE Den ble født av noen e-poster sendt til PyAr, hvis tema vanligvis blir hørt ganske ofte: "Hvilken god IDE for Python kan jeg bruke?", "Hvorfor er det ikke en IDE for Python som har denne eller den andre funksjonen?", og svarene på disse e-postmeldingene ender alltid med å være mer eller mindre de samme, siden de nåværende IDE-ene som vi finner tilgjengelige, for det meste ikke var designet for Python, men tilbød muligheten til å innlemme den gjennom et plugin og i dette måte det pleide å bruke veldig tunge IDEer designet for andre formål, hvor støtten til Python faktisk var minimal, og de som var for Python endte med å være veldig orientert mot et bestemt rammeverk eller ikke var gratis. Motivert av utfordringen den representerte, og interessante ideer som ble reist på adresselisten, bestemte vi oss for å nærme oss dette prosjektet ved å fokusere på "Hvilke funksjoner bør en god IDE ha for en Python-programmerer".

Med dette i bakhodet begynte vi utviklingen av NINJA-IDE, hvis navn er et derivat av det rekursive akronymet: "Ninja er ikke bare nok en IDE". IDE har knapt mer enn to måneder med utvikling, men takket være ønsket og timevis med programmering som vi bruker til det, kan vi allerede ha en IDE med mange funksjoner implementert, til det punktet å kunne fortsette med utviklingen av NINJA-IDE ved hjelp av NINJA-IDE, som igjen hjelper oss med å finne feil og forbedre brukervennligheten og anvendeligheten av applikasjonen gjennom erfaring og kontinuerlig bruk av den.

Prosjektet er utviklet under en gratis GPL-lisens, og koden kan fås gjennom:

Noen av de nåværende funksjonene i IDE er:

  • Typiske funksjoner for hvilken som helst IDE for håndtering av filer, faner, automatisk innrykk, Zoom in Editor, etc.
  • Å være skrevet i Python og bruke PyQt, det er plattform og ble testet på Linux-, MAC OS X- og Windows-systemer.
  • Syntaks-utheving for et bredt utvalg av språk (selv om det er sentrert på Python, gir det syntaks-utheving for andre språk for programmererens bekvemmelighet).
  • Mulighet for å bruke en Python-konsoll fra samme IDE.
  • Det gjør det mulig å administrere prosjekter i IDE, gjenkjenne dem som Python-prosjekter og gjennom IDE å opprette nye filer og mapper, slette eksisterende filer, automatisk opprette "__init__" -filer med informasjonen i den modulen osv.
  • Det gjør det mulig å skjule og flytte alle grensesnittpanelene på en veldig enkel måte, slik at den kan tilpasses brukerens smak.
  • Lar deg se mer enn én redaktør samtidig vertikalt eller horisontalt.
  • Kan utvides ved å legge til plugins (som kan opprettes ved hjelp av et NINJA-IDE Plugin for enkelhets skyld).
  • Den administrerer IDE-økter for å huske hvilke filer og prosjekter som var åpne da den ble lukket, og gjenoppretter dem når du åpner en forekomst av den igjen.
  • Støtte for autofullføring (å være en spesifikk automatisk utfylling av objektet som nås).
  • Automatiske oppdateringer.
  • Og mange flere funksjoner!

Hvem utvikler NINJA-IDE?

NINJA-IDE begynte å bli utviklet av Santiago Moreno og Diego Sarmentero, og innen to uker etter at prosjektet startet ble det allerede brukt til å utvikle det. Takk til folkene fra PyAr-listen, blogger osv. På veldig kort tid betydde formidlingen av prosjektet at vi kunne stole på feilrapporter fra brukere, forslag på NINJA-adresselisten og til og med med kodebidrag fra brukere og samarbeidspartnere, hvorav noen ble en del av NINJA-IDE med rollen som forpliktelser, slik tilfellet er: Martín Alderete, Juan Cabral og Matías Herranz.

Dette sterke samarbeidet og deltakelsen vi mottar fra samfunnet, gjør at NINJA-IDE kan vokse hver dag, forbedre og implementere funksjoner som brukerne trenger. Kommentarene vi mottar fra folk som for tiden bruker NINJA-IDE, motiverer oss til å fortsette å jobbe hardt med dette verktøyet, som vi ønsker å forenkle utviklingen av Python-applikasjoner ytterligere.

Hvordan bestemte du deg for hvilke funksjoner du vil legge til?

I begynnelsen av prosjektet ble det tenkt en struktur som ville tillate den å vokse og innlemme funksjonaliteter over tid, med to hovedfaktorer som veiledning: Kodeditor og prosjektledelse. Søknaden begynte å bli bygget med å ta vare på disse to grunnleggende søylene og la en god base av dem for senere å gjøre det lettere å innlemme nye funksjoner. Prosjektet gikk gjennom forskjellige stadier, startende med en god redaktør med syntaksutheving, fortsatte med styringen av prosjektfiler, til de ble lagt til plugin-funksjoner, automatisk fullføring, øktadministrasjon, etc. Python blir ofte sett på som et språk som har større problemer med å gi informasjon om koden som blir skrevet, da den ikke kan slutte seg fra objekter på tidspunktet for programmering på grunn av dynamisk skriving, etc.

I noen tilfeller er det sant at det å ha en eksplisitt skriving kan utføre enklere og mer detaljerte analyser, men det er også sant at det for tiden er mange verktøy og biblioteker for Python som hjelper til med å eliminere dette tabuet at det ikke er mulig å ha en IDE som gir reell hjelp til koden som genereres. Det er derfor NINJA-IDE søker å la programmererne som bruker Python utvikle programmene sine, ha de samme fasilitetene og hjelpemidlene som oppnås når de utvikler seg i Java eller .NET med noen av de mest populære IDE-ene for tiden for disse språkene. Tar vi resultatene og erfaringene fra IDE for andre språk, er det ment å oppnå en IDE designet for Python som genererer samme tilfredshet når du bruker den.

For forslag, beslutning og innlemmelse av nye funksjoner i NINJA-IDE, blir adresselisten vanligvis brukt til å oppnå en kollektiv beslutning av medlemmene som utgjør prosjektet, mer enn noe annet for å vite hva målet med denne funksjonen vil være, i hvilket stadium som skal innarbeides og andre detaljer. Mange ganger motiveres disse karakteristikkene av noen interessante funksjoner sett i en annen IDE, en idé fra et av medlemmene eller forslag fra brukergruppen. På denne måten kan alle, både brukere og utviklere, foreslå hvilke ting de ønsker å se implementert i NINJA-IDE, og basert på prosjektarkitekturen kan det defineres hvis det er nødvendig å innlemme det som en del av IDE selv eller som et plugin, som samtidig lar deg vite hvilke ideer det jobbes med og hvem som tar kontroll over dem for å holde arbeidsgruppen synkronisert.

Hva kan vi forvente av NINJA-IDE?

NINJA-IDE ble født for å dekke et behov som virket viktig for oss, og vi så også at dagens tilnærminger til IDE ikke ga den nødvendige dekning.

Vår intensjon når vi startet dette prosjektet var å skape et miljø fokusert på utvikling av Python-applikasjoner, men alltid å ta hensyn til behovet for å ha et fellesskap av brukere som ville tillate oss å forbedre opplevelsen av å bruke dette verktøyet, og gjør oss for tiden veldig glade for å kunne stole på NINJA-IDE-fellesskapet, siden takket være brukernes erfaring og kollektive kunnskap, at det med forslagene deres kan utviklingen av prosjektet gå raskere og mange flere detaljer tas i betraktning enn fra en annen form kunne overses.

Fremtidsplaner

For tiden med den kontinuerlige utviklingen vi oppnår, er vi nær utgivelsen av versjon 1.0 av NINJA-IDE, som vil motta navnet 'Kunai'. I denne første versjonen vil flere av de tidligere nevnte funksjonene være til stede, som vil tillate utvikleren å ha en robust og praktisk IDE, åpenbart, som i ethvert prosjekt, vil forbedringer og nye funksjoner dukke opp for å implementere. Noen av tingene som er ment å bli innlemmet i NINJA-IDE i fremtidige versjoner er:

  • Grafisk feilsøking
  • For å kunne se navigasjonsevnen og forholdet til modulene og klassene i et prosjekt grafisk (basert på BlueJ)
  • Støtte kodeversjonsverktøy.
  • Tillat samarbeidsredigering av et dokument.
  • Qt og Gtk grensesnittdesigner integrert i IDE.
  • Rammeverkstøtte som:
  • Django
  • Google App Engine
  • Og dette begynner bare!

Hvilke verktøy bruker NINJA-IDE?

IDE er utviklet ved bruk av PyQt-rammeverket for all håndtering av det grafiske grensesnittet og noen andre funksjoner, selv om det ble gjort et forsøk på å abstrakte visse funksjoner så mye som mulig for å tillate, om nødvendig i morgen, å portere NINJA-IDE til andre rammer som som Gtk. Qt tillot å ha et solid og svært konfigurerbart grensesnitt, som gjorde det mulig å utvide hvert element som var nødvendig for å endre dets oppførsel og tilpasse det til IDEs behov.

Når det gjelder syntaksutheving, bruker NINJA-IDE sitt eget syntaksuthevingssystem ved hjelp av Qt-funksjoner, og lar dette uthevingssystemet lett utvides i NINJA-IDE med opprettelsen av en enkel JSON-fil som beskriver språket som skal innlemmes. Denne metoden gir forbedringer i ytelsen, men for å dekke de språkene som ikke gjenkjennes gjennom dette systemet, ble bruken av Pygments innlemmet for syntaksfremheving av et større utvalg av språk. Selv om muligheten for at Pygments blir erstattet av GNU Highlight av ytelsesårsaker, økes for øyeblikket.

For autofullføring, refactoring og de som refererer til kodeslutning, brukes Rope, som er et utmerket bibliotek, veldig komplett for denne typen situasjoner. Rope er et verktøy som gjør det mulig å bringe til en IDE for Python-egenskaper ved IDEer av typede språk. Foreløpig jobber vi også med innlemmingen av kodekontroll ved bruk av Pep8-biblioteket, nettopp for å gi informasjon om statusen til koden i forhold til Pep8-standardene.

NINJA-IDE utvidbarhet

NINJA-IDE har et ganske komplett pluginsystem som gjør det mulig å integrere disse plugins som et naturlig element i IDE. Plugin-skriving er ganske enkelt, og du kan til og med bruke et NINJA-IDE Plugin til å skrive NINJA-IDE Plugins (rekursivt?). Dette pluginet «for å skrive plugins» lar deg bestemme hvilke deler av IDE det nye pluginet skal relateres til og oppretter automatisk den nødvendige prosjektstrukturen sammen med Plugin-deskriptoren slik at NINJA-IDE kan tolke det og basisklassen. av denne pluginen med metodene som må implementeres på nytt, når vi er ferdig med å skrive pluginet, lar det oss pakke det og deretter distribuere det. For øyeblikket er det 3 plugins for NINJA-IDE tilgjengelig:

  • pastebin: som lar deg sende kode til pastebin.com og returnerer den resulterende lenken for å dele den koden.
  • PluginProsjekt: personen som har ansvaret for å lage Plugins-prosjekter for NINJA-IDE som vi nevnte.
  • ClassCompleter: fullfører automatisk noen strukturer mens du skriver Python-kode, for eksempel: oppretter konstruktøren automatisk ved å ringe foreldreklassene som er nødvendige osv.

For å få mer informasjon om hvordan du utvikler et plugin for NINJA-IDE, kan du gå til følgende Wiki: http://ninja-ide.org/plugins/

kontakt

Lad

Ninja IDE er nå tilgjengelig i DEB- og RPM-pakker. Resten av verden kan selvfølgelig alltid laste ned kildekoden og kompilere den. 🙂

Takk Diego Sarmentero for at du delte denne utmerkede IDE med oss ​​alle!

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Patrick Arguello sa

    Jeg liker PyCharm bedre. Likevel god jobb gratulerer og hilsen. @patoargu

  2.   riccardo3284 sa

    Hilsen til samfunnet Jeg er en fan av programmering i python, IDE er veldig bra, men på datamaskinen min har jeg Ubuntu 10.10, og jeg kan ikke jobbe med funksjonene du ser i figur 4, bildet der kommandoene eller klassene eller metodene er vist Fra et python-objekt er denne funksjonen veldig viktig i det minste for meg siden ikke alle kommandoer læres, og samtidig vil det tillate oss å lære mer til programmerere, men den funksjonaliteten kommer ikke ut i min Ubuntu.

    Jeg håper noen fra samfunnet kan hjelpe meg, e-posten min er riccardo3284@gmail.com

  3.   marcoshipe sa

    Jeg leste det feil, støtten for git er ikke implementert ennå, men det er allerede et plugin du planlegger å implementere

  4.   Alex sa

    ^^, jeg startet som medlem av utviklingsteamet :), men til slutt hadde jeg ikke tid eller nok kunnskap, og jeg måtte gi opp den :(. Men jeg er veldig glad for at til slutt NInja IDE gikk videre og med så gode resultater.

  5.   marcoshipe sa

    Jeg prøver det allerede 😀
    forhåpentligvis dette bra, men siden jeg bruker python og qt, liker jeg xD
    Jeg antar at han tørker eric, og jeg så ut og det har støtte for git 😀 Jeg tror vi kommer til å komme sammen

  6.   Daniel sa

    Jeg synes det er utmerket, det eneste negative er at de, som er spansktalende, lager grensesnitt på engelsk, de skal lage dem på spansk, IDES på engelsk, det er mange hvorfor ikke gjøre noe som alle oss som ikke takler Engelsk forstår, ellers har jeg ingen andre, men gratulerer dem.

    Hilsen

  7.   Eugeniu Tambur sa

    Jeg liker det, men for øyeblikket er det noe grønt, jeg har testet det, og det lar meg forbløffe, og det starter Windows Explorer kontinuerlig og flere feil, men så snart de fikser det og det er noe mer stabilt, vil det utvilsomt være veldig vellykket.

  8.   Daniel DCS sa

    Utmerket arbeid "laget i" Argentina !!!! Hjertelig gratulerer til hele utviklingsteamet !!!!

  9.   neyer sa

    Hilsen til alle, veldig bra arbeid, IDE er ganske behagelig å bruke, det ville være veldig interessant å inkludere en redaktør av Grafiske brukergrensesnitt, det ville også være fascinerende hvis det lar deg generere prosjektdokumentasjonen (Kanskje i stil med Javadocs).

    Fortsett.