Ninja IDE: un IDE proiectat pentru Python

În cele din urmă cineva s-a demn să scrie un IDE ca oamenii pentru Python pe care orice cetățean obișnuit îl poate folosi fără probleme în Linux. Da, există mai multe IDE-uri pentru programare în limbi diferite, inclusiv Python, dar acesta are câteva trucuri în mânecă...

Cum a început NINJA-IDE?

NINJA-IDE S-a născut prin câteva e-mailuri trimise către PyAr, a căror temă este auzită destul de des: „Ce IDE bun pentru Python pot folosi?”, „De ce nu există un IDE pentru Python care să aibă una sau alta caracteristică?”, iar răspunsurile la aceste e-mailuri ajung să fie mai mult sau mai puțin aceleași, deoarece IDE-urile actuale pe care le găsim disponibile, în cea mai mare parte, nu au fost concepute pentru Python, ci au oferit opțiunea de a le încorpora printr-un plugin și în acest În mod obișnuit se foloseau IDE-uri foarte grele concepute în alte scopuri, unde suportul pentru Python era de fapt minim, iar cele care erau pentru Python au ajuns să fie foarte orientate către un cadru specific sau nu erau gratuite. Deci, motivați de provocarea pe care o reprezenta și de ideile interesante care au fost ridicate pe lista de discuții, am decis să abordăm acest proiect concentrându-ne pe „Ce caracteristici ar trebui să aibă un IDE bun pentru un programator Python”.

Având în vedere acest lucru, am început dezvoltarea NINJA-IDE, al cărui nume este un derivat al acronimului recursiv: „Ninja nu este doar un alt IDE”. IDE are abia mai mult de două luni de dezvoltare, dar datorită dorinței și orelor de programare pe care i le dedicăm, putem avea acum un IDE cu multe funcționalități implementate, până la punctul de a putea continua cu dezvoltarea NINJA- IDE utilizând NINJA-IDE, care la rândul nostru ne ajută să găsim erori și să îmbunătățim ușurința și practicitatea aplicației, prin experiență și utilizarea continuă a acesteia.

Proiectul este dezvoltat sub o licență GPL gratuită și codul poate fi obținut prin:

Unele dintre caracteristicile actuale ale IDE sunt:

  • Funcționalități tipice oricărui IDE pentru manipularea fișierelor, file, indentare automată, Zoom in Editor etc.
  • Fiind scris în Python și folosind PyQt, acesta este multiplataforma și a fost testat pe sisteme Linux, MAC OS X și Windows.
  • Evidențierea sintaxei pentru o mare varietate de limbi (deși este centrat pe Python, oferă evidențierea sintaxei pentru alte limbi pentru confortul programatorului).
  • Posibilitatea de a utiliza o Consolă Python din același IDE.
  • Permite gestionarea proiectelor în IDE, recunoscându-le ca proiecte Python și prin IDE crearea de fișiere și foldere noi, ștergerea fișierelor existente, crearea automată a fișierelor „__init__” cu informațiile din acel modul etc.
  • Permite ascunderea și mutarea tuturor panourilor de interfață într-un mod foarte simplu, permițând adaptarea acestuia la gusturile utilizatorului.
  • Vizualizați mai mult de un editor în același timp pe verticală sau orizontală.
  • Extensibil prin adăugarea de pluginuri (care pot fi create folosind un plugin NINJA-IDE pentru simplitate).
  • Gestionează sesiunile IDE pentru a vă aminti ce fișiere și proiecte erau deschise când au fost închise și le recuperează la deschiderea din nou a unei instanțe a acestuia.
  • Suport pentru completarea automată (fiind o completare automată specifică a obiectului care este accesat).
  • Actualizari automate.
  • Și multe alte caracteristici!

Cine dezvoltă NINJA-IDE?

NINJA-IDE a început să fie dezvoltat de Santiago Moreno și Diego Sarmentero, iar la 2 săptămâni după începerea proiectului, acesta era deja folosit pentru a-l dezvolta. Mulțumesc oamenilor din lista PyAr, bloguri etc. Într-un timp foarte scurt, diseminarea proiectului a însemnat că ne-am putea baza pe Raportul de erori de către utilizatori, sugestii pe lista de distribuție NINJA și chiar cu contribuții de cod de către utilizatori și colaboratori, dintre care unii au devenit parte din NINJA-IDE cu rolul comisarilor, cum este cazul: Martín Alderete, Juan Cabral și Matías Herranz.

Această colaborare și participare puternică pe care o primim de la comunitate permite NINJA-IDE să crească în fiecare zi, îmbunătățind și implementând caracteristicile de care utilizatorii au nevoie. La rândul lor, comentariile pe care le primim de la persoanele care utilizează în prezent NINJA-IDE ne motivează să continuăm să lucrăm din greu la acest instrument, cu care dorim să simplificăm în continuare dezvoltarea aplicațiilor Python.

Cum ați decis ce funcții să adăugați?

La începutul proiectului, s-a gândit o structură care să-i permită să crească și să încorporeze funcționalități în timp, având ca ghid doi factori principali: Editorul de cod și Managementul de proiect. Aplicația a început să fie construită având grijă de acești doi stâlpi fundamentali și permițând o bază bună a acestora să faciliteze încorporarea ulterioară a noilor caracteristici. Proiectul a trecut prin diferite etape, începând cu un editor bun cu evidențierea sintaxei, continuând cu gestionarea fișierelor de proiect, până la adăugarea caracteristicilor pluginului, completarea automată, gestionarea sesiunii etc. Python este adesea văzut ca un limbaj care are dificultăți mai mari în furnizarea de informații despre codul care este scris deoarece nu poate deduce din obiecte în momentul programării din cauza tastării dinamice etc.

În unele cazuri, este adevărat că a avea o tastare explicită poate efectua analize mai simple și mai detaliate, dar este de asemenea adevărat că în prezent există multe instrumente și biblioteci pentru Python care ajută la eliminarea acestui tabu că nu este posibil să aveți un IDE care oferă asistență reală asupra codului care este generat. De aceea, NINJA-IDE încearcă să le permită acelor programatori care folosesc Python să-și dezvolte programele, să aibă aceleași facilități și ajutoare care se obțin atunci când se dezvoltă în Java sau .NET cu unele dintre cele mai populare IDE în prezent pentru aceste limbi. Luând rezultatele și experiențele obținute de la IDE pentru alte limbi, se intenționează să se realizeze un IDE conceput pentru Python care generează aceeași satisfacție atunci când îl folosești.

Pentru sugestia, decizia și încorporarea de noi funcții în NINJA-IDE, lista de corespondență este de obicei utilizată pentru a lua o decizie colectivă de către membrii care alcătuiesc proiectul, mai mult decât orice pentru a ști care va fi obiectivul acestei caracteristici, în ce etapă ar trebui încorporată și alte detalii. De multe ori aceste caracteristici sunt motivate de unele funcționalități interesante văzute într-un alt IDE, o idee a unuia dintre membri sau sugestii din grupul de utilizatori. În acest fel, oricine, atât utilizator, cât și dezvoltator, poate propune ce lucruri ar dori să vadă implementate în NINJA-IDE și pe baza arhitecturii proiectului poate fi definit dacă este necesar să-l încorporeze ca parte a IDE în sine sau ca un plugin, care permite, în același timp, să știe la ce idei se lucrează și cine preia controlul asupra acestora pentru a menține grupul de lucru sincronizat.

Ce ne putem aștepta de la NINJA-IDE?

NINJA-IDE s-a născut pentru a acoperi o nevoie care ni s-a părut importantă și am văzut, de asemenea, că abordările actuale ale IDE nu oferă acoperirea necesară.

În momentul începerii acestui proiect, intenția noastră a fost de a crea un mediu axat pe dezvoltarea de aplicații Python, dar ținând cont întotdeauna de necesitatea de a avea o comunitate de utilizatori care să ne permită să îmbunătățim experiența de utilizare a acestui instrument și, în prezent, ne face foarte bucuros că pot conta pe comunitatea NINJA-IDE, deoarece, datorită experienței și cunoștințelor colective ale utilizatorilor, este posibil ca, cu sugestiile lor, dezvoltarea proiectului să poată avansa mai repede și să fie luate în considerare multe mai multe detalii decât dintr-o altă formă ar putea fi trecute cu vederea.

Planuri de viitor

În prezent, cu dezvoltarea continuă pe care o realizăm, suntem aproape de lansarea versiunii 1.0 a NINJA-IDE, care va primi numele „Kunai”. În această primă versiune vor fi prezente mai multe dintre caracteristicile menționate anterior, care vor permite dezvoltatorului să aibă un IDE robust și practic, evident, ca în orice proiect, vor apărea îmbunătățiri și noi caracteristici de implementat. Unele dintre lucrurile care sunt destinate a fi încorporate în NINJA-IDE în versiunile viitoare sunt:

  • Debugger grafic
  • Pentru a putea vedea grafic navigabilitatea și relația dintre modulele și clasele unui proiect (pe baza BlueJ)
  • Instrumente de versiune a codului de asistență.
  • Permiteți editarea în colaborare a unui document.
  • Proiectant de interfețe Qt și Gtk integrate în IDE.
  • Suport pentru cadre precum:
  • Django
  • Google App Engine
  • Și asta abia începe!

Ce instrumente folosește NINJA-IDE?

IDE este dezvoltat folosind cadrul PyQt pentru toate gestionările interfeței grafice și a altor funcționalități, deși s-a încercat abstracția unor funcții cât mai mult posibil pentru a permite, dacă este necesar mâine, să port NINJA-IDE la alte cadre precum ca Gtk. Qt a făcut posibilă o interfață solidă și extrem de configurabilă, care a făcut posibilă extinderea fiecărui element necesar pentru a-și modifica comportamentul și a-l adapta la nevoile IDE.

În ceea ce privește evidențierea sintaxei, NINJA-IDE folosește propriul său sistem de evidențiere a sintaxei utilizând funcționalități Qt și permite acestui sistem de evidențiere să fie ușor extensibil în NINJA-IDE odată cu crearea unui fișier JSON simplu care descrie limbajul care trebuie încorporat. Această metodă oferă îmbunătățiri de performanță, dar pentru a acoperi acele limbi care nu sunt recunoscute de acest sistem, utilizarea Pygments a fost încorporată pentru evidențierea sintaxei unei mai mari varietăți de limbi. Deși în prezent se ridică posibilitatea ca Pygments să fie înlocuit cu GNU Highlight din motive de performanță.

Pentru completarea automată, refactorizarea și cele care se referă la inferența codului, se utilizează Rope, care este o bibliotecă excelentă, foarte completă pentru acest tip de situație. Rope este un instrument care permite aducerea la un IDE pentru caracteristicile Python ale IDE-urilor limbilor tastate. În prezent, lucrăm și la încorporarea verificării codului folosind biblioteca Pep8, tocmai pentru a furniza informații despre starea codului în raport cu standardele Pep8.

Extensibilitate NINJA-IDE

NINJA-IDE are un sistem de pluginuri destul de complet care permite integrarea acestor plugin-uri ca element nativ al IDE. Scrierea pluginurilor este destul de simplă și puteți folosi chiar și un plugin NINJA-IDE pentru a scrie pluginuri NINJA-IDE (recursiv?). Acest plugin „pentru a scrie pluginuri” vă permite să decideți cu ce părți din IDE noul plugin va fi asociat și creează automat structura de proiect necesară, împreună cu descriptorul pluginului, astfel încât NINJA-IDE să îl poată interpreta și clasa de bază din acest plugin cu metodele care vor trebui reimplementate, la rândul lor, când terminăm de scris pluginul, ne permite să îl împachetăm și apoi să îl distribuim. În prezent sunt disponibile 3 plugin-uri pentru NINJA-IDE:

  • pastebin: care vă permite să trimiteți cod către pastebin.com și returnează linkul rezultat pentru a partaja acel cod.
  • PluginProject: persoana care se ocupă de crearea proiectelor Plugins pentru NINJA-IDE așa cum am menționat.
  • ClassCompleter: completează automat unele structuri în timp ce scrieți codul Python, cum ar fi: creați automat constructorul apelând clasele părinte care sunt necesare etc.

Pentru a consulta mai multe informații despre cum să dezvolți un plugin pentru NINJA-IDE, poți vizita următorul Wiki: http://ninja-ide.org/plugins/

contact

Descărcare

Ninja IDE este acum disponibil în pachete DEB și RPM. Restul lumii, desigur, poate descărca oricând codul sursă și îl poate compila. 🙂

Mulțumim Diego Sarmentero pentru că ne-ați împărtășit cu toții acest IDE excelent!

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Patrick Arguello el a spus

    Îmi place foarte mult PyCharm. Cu toate acestea, bună felicitări și salutări. @patoargu

  2.   riccardo3284 el a spus

    Salutări către comunitate Sunt un fan al programării în python, IDE-ul este foarte bun, dar pe computerul meu am Ubuntu 10.10 și nu pot lucra cu caracteristicile pe care le vedeți în figura 4, imaginea unde sunt comenzile sau clasele sau metodele afișată a unui obiect python, această caracteristică este foarte importantă cel puțin pentru mine, deoarece nu toate comenzile sunt învățate și, în același timp, ne-ar permite să învățăm mai mult programatorilor, dar această funcționalitate nu apare în Ubuntu-ul meu.

    Sper că cineva din comunitate mă poate ajuta, e-mailul meu este riccardo3284@gmail.com

  3.   marcoshipe el a spus

    Am citit-o greșit, suportul pentru git nu este încă implementat, dar este deja un plugin pe care intenționați să îl implementați 🙂

  4.   Alex el a spus

    ^^, am început ca membru al echipei de dezvoltare :), dar până la urmă nu am avut timp sau cunoștințe suficiente și a trebuit să renunț la ea :(. Dar sunt foarte fericit că până la urmă NInja IDE a continuat cu rezultate atât de bune.

  5.   marcoshipe el a spus

    Încerc deja 😀
    sperăm că este bine, dar din moment ce folosesc python și qt îmi place xD
    Cred că îl șterge pe Eric și m-am uitat și are sprijin pentru git think Cred că ne vom înțelege

  6.   Daniel el a spus

    Cred că este excelent, singurul lucru negativ este că, vorbind spaniolă, creează interfețe în engleză, ar trebui să le facă în spaniolă, IDES în engleză există multe de ce să nu facem ceva ce toți cei care nu se ocupă de engleză intelege, altfel nu am, dar ii felicit.

    În ceea ce priveşte

  7.   Eugeniu Tambur el a spus

    Îmi place, dar în momentul de față este ceva verde, l-am testat și mă lasă uimit și repornește în permanență Windows Explorer și mai multe erori, dar de îndată ce îl remediază și este ceva mai stabil, va fi, fără îndoială, să ai mare succes.

  8.   daniel dcs el a spus

    Excelentă lucrare "made in" Argentina !!!! Felicitări sincere întregii echipe de dezvoltare !!!!

  9.   neyer el a spus

    Salutări tuturor, lucru foarte bun, IDE-ul este destul de confortabil de utilizat, ar fi foarte interesant să includeți un editor de interfață grafică de utilizator, ar fi fascinant și dacă vă permite să generați documentația proiectului (Poate în stilul Javadocs ).

    Continuă.