Ninja IDE: un IDE progettato per Python

Finalmente qualcuno si è degnato di scrivere un IDE come le persone per Python che qualsiasi cittadino ordinario può usare senza problemi in Linux. Sì, esistono diversi IDE per la programmazione in diversi linguaggi, incluso Python, ma questo ha qualche piccolo asso nella manica...

Come è nato NINJA-IDE?

NINJA-IDE Nasce da alcune email inviate a PyAr, il cui tema di solito si sente abbastanza frequentemente: "Quale buon IDE per Python posso usare?", "Perché non esiste un IDE per Python che abbia questa o quella caratteristica?", e le risposte a queste email finiscono sempre per essere più o meno le stesse, poiché gli IDE attuali che troviamo disponibili, per la maggior parte, non erano progettati per Python, ma offrivano la possibilità di incorporarlo tramite un Plugin e in questo modo In passato utilizzava IDE molto pesanti progettati per altri scopi, in cui il supporto per Python era in realtà minimo e quelli che erano per Python finivano per essere molto orientati a un Framework specifico o non erano gratuiti. Quindi, motivati ​​dalla sfida che rappresentava e dalle idee interessanti che sono state sollevate sulla mailing list, abbiamo deciso di approcciare questo progetto concentrandoci "Quali caratteristiche dovrebbe avere un buon IDE per un programmatore Python".

Con questo in mente abbiamo iniziato lo sviluppo di NINJA-IDE, il cui nome è un derivato dell'acronimo ricorsivo: "Ninja non è solo un altro IDE". L'IDE ha poco più di due mesi di sviluppo, ma grazie alla voglia e alle ore di programmazione che gli stiamo dedicando, possiamo già avere un IDE con tante funzionalità implementate, al punto da poter proseguire con lo sviluppo di NINJA- IDE utilizzando NINJA-IDE, che a sua volta ci aiuta a trovare bug e migliorare l'usabilità e la praticità dell'applicazione, attraverso l'esperienza e l'uso continuo di essa.

Il progetto è sviluppato con licenza GPL gratuita e il codice può essere ottenuto tramite:

Alcune delle caratteristiche attuali dell'IDE sono:

  • Funzionalità tipiche di qualsiasi IDE per la gestione di file, schede, rientro automatico, Zoom in Editor, ecc.
  • Essendo scritto in Python e utilizzando PyQt, è multipiattaforma ed è stato testato su sistemi Linux, MAC OS X e Windows.
  • Evidenziazione della sintassi per un'ampia varietà di linguaggi (sebbene sia centrata su Python, fornisce l'evidenziazione della sintassi per altri linguaggi per comodità del programmatore).
  • Possibilità di utilizzare una console Python dallo stesso IDE.
  • Permette la gestione dei Progetti nell'IDE, riconoscendoli come Progetti Python e tramite l'IDE la creazione di nuovi file e cartelle, l'eliminazione di file esistenti, la creazione automatica di file "__init__" con le informazioni all'interno di quel modulo, ecc.
  • Permette di nascondere e riposizionare tutti i pannelli di interfaccia in modo molto semplice, adattandolo ai gusti dell'utente.
  • Consente di visualizzare più di un Editor contemporaneamente in verticale o in orizzontale.
  • Estendibile tramite l'aggiunta di plugin (che possono essere creati utilizzando un plugin NINJA-IDE per semplicità).
  • Gestisce le sessioni IDE, per ricordare quali file e progetti erano aperti quando è stato chiuso e li recupera quando ne apre di nuovo un'istanza.
  • Supporto per il completamento automatico (ovvero un completamento automatico specifico dell'oggetto a cui si accede).
  • Aggiornamenti automatici.
  • E molte altre funzionalità!

Chi sviluppa NINJA-IDE?

NINJA-IDE iniziò a essere sviluppato da Santiago Moreno e Diego Sarmentero e 2 settimane dopo l'inizio del progetto era già utilizzato per svilupparlo. Grazie alle persone dell'elenco PyAr, blog, ecc. In pochissimo tempo, la diffusione del progetto ha fatto sì che potessimo contare su Bugs Report by Users, Suggerimenti sulla mailing list NINJA e persino con contributi in codice da parte di utenti e collaboratori, di cui alcuni sono diventati parte di NINJA-IDE con il ruolo di committenti, come nel caso di: Martín Alderete, Juan Cabral e Matías Herranz.

Questa forte collaborazione e partecipazione che stiamo ricevendo dalla comunità consente a NINJA-IDE di crescere ogni giorno, migliorando e implementando le funzionalità di cui gli utenti hanno bisogno. A loro volta, i commenti che riceviamo dalle persone che attualmente utilizzano NINJA-IDE, ci motivano a continuare a lavorare sodo su questo strumento, con il quale vogliamo semplificare ulteriormente lo sviluppo di applicazioni Python.

Come hai deciso quali funzionalità aggiungere?

All'inizio del progetto è stata pensata una struttura che gli permettesse di crescere e incorporare funzionalità nel tempo, avendo come guida due fattori principali: il Code Editor e il Project Management. L'applicazione ha iniziato a essere realizzata avendo cura di questi due pilastri fondamentali e consentendo una buona base di essi per facilitare successivamente l'inserimento di nuove funzionalità. Il progetto ha attraversato diverse fasi, iniziando con un buon editor con evidenziazione della sintassi, proseguendo con la gestione dei file di progetto, fino all'aggiunta di funzionalità plug-in, completamento automatico, gestione delle sessioni, ecc. Python è spesso visto come un linguaggio che ha maggiori difficoltà nel fornire informazioni sul codice che viene scritto in quanto non può inferire da oggetti al momento della programmazione a causa della digitazione dinamica, ecc.

In alcuni casi è vero che avere una digitazione esplicita può eseguire analisi più semplici e dettagliate, ma è anche vero che attualmente ci sono molti strumenti e librerie per Python che aiutano ad eliminare questo tabù che non è possibile avere un IDE che fornisce un'assistenza reale sul codice che viene generato. Questo è il motivo per cui NINJA-IDE cerca di consentire a quei programmatori che usano Python di sviluppare i loro programmi, avere le stesse strutture e aiuti che si ottengono quando sviluppano in Java o .NET con alcuni degli IDE attualmente più noti per quei linguaggi. Prendendo i risultati e le esperienze ottenute dagli IDE per altri linguaggi, si intende ottenere un IDE progettato per Python che generi la stessa soddisfazione quando lo si utilizza.

Per il suggerimento, la decisione e l'incorporazione di nuove funzionalità in NINJA-IDE, la mailing list viene solitamente utilizzata per ottenere una decisione collettiva da parte dei membri che compongono il progetto, più che altro per sapere quale sarà l'obiettivo di questa funzionalità, in quale fase deve essere incorporata e altri dettagli. Molte volte queste caratteristiche sono motivate da alcune funzionalità interessanti viste in un altro IDE, un'idea di uno dei membri o suggerimenti dal gruppo di utenti. In questo modo chiunque, sia utente che sviluppatore, può proporre ciò che vorrebbe vedere implementato in NINJA-IDE e in base all'architettura del progetto può essere definito se è necessario incorporarlo come parte dell'IDE stesso o come plugin, consentendo allo stesso tempo sapere su quali idee si sta lavorando e chi ne prende il controllo per mantenere sincronizzato il gruppo di lavoro.

Cosa possiamo aspettarci da NINJA-IDE?

NINJA-IDE è nato per soddisfare un'esigenza che ci sembrava importante e abbiamo anche visto che gli attuali approcci agli IDE non fornivano la copertura necessaria.

La nostra intenzione quando abbiamo iniziato questo progetto era quella di creare un ambiente focalizzato sullo sviluppo di applicazioni Python, ma sempre tenendo conto della necessità di avere una comunità di utenti che ci permettesse di migliorare l'esperienza di utilizzo di questo strumento, e attualmente ci rende molto felici poter contare sulla community NINJA-IDE, poiché grazie all'esperienza e alla conoscenza collettiva degli utenti è possibile, che con i loro suggerimenti, lo sviluppo del progetto possa avanzare più velocemente e vengano presi in considerazione molti più dettagli che da un altro la forma potrebbe essere trascurata.

Progetti futuri

Attualmente, con il continuo sviluppo che stiamo ottenendo, siamo vicini al rilascio della versione 1.0 di NINJA-IDE, che riceverà il nome "Kunai". In questa prima versione saranno presenti molte delle funzionalità precedentemente menzionate, che permetteranno allo sviluppatore di avere un IDE robusto e pratico, ovviamente, come in ogni progetto, emergeranno miglioramenti e nuove funzionalità da implementare. Alcune delle cose che dovrebbero essere incorporate in NINJA-IDE nelle versioni future sono:

  • Debugger grafico
  • Per poter vedere graficamente la navigabilità e la relazione dei moduli e delle classi di un progetto (basato su BlueJ)
  • Supporta gli strumenti di controllo delle versioni del codice.
  • Consenti la modifica collaborativa di un documento.
  • Progettista di interfacce Qt e Gtk integrato nell'IDE.
  • Supporto di framework come:
  • Django
  • Google App Engine
  • E questo è solo l'inizio!

Quali strumenti utilizza NINJA-IDE?

L'IDE è sviluppato utilizzando il framework PyQt per tutta la gestione dell'interfaccia grafica e alcune altre funzionalità, sebbene si sia cercato di astrarre il più possibile alcune funzioni per consentire, se necessario domani, di portare NINJA-IDE ad altri framework come Gtk. Qt ha permesso di avere un'interfaccia solida e altamente configurabile, che ha permesso di estendere ogni elemento necessario per modificarne il comportamento e adattarlo alle esigenze dell'IDE.

Per quanto riguarda l'evidenziazione della sintassi, NINJA-IDE utilizza il proprio sistema di evidenziazione della sintassi utilizzando le funzionalità Qt e consentendo a questo sistema di evidenziazione di essere facilmente estensibile in NINJA-IDE con la creazione di un semplice file JSON che descrive il lingua da incorporare. Questo metodo fornisce miglioramenti nelle prestazioni, ma per coprire quei linguaggi che non sono riconosciuti attraverso questo sistema, è stato incorporato l'uso di Pygments per l'evidenziazione della sintassi di una maggiore varietà di linguaggi. Sebbene la possibilità che Pygments venga sostituito da GNU Highlight per motivi di prestazioni è attualmente in aumento.

Per l'auto-completamento, il refactoring e quelli che fanno riferimento all'inferenza del codice, si usa Rope, che è un'ottima libreria, molto completa per questo tipo di situazione. Rope è uno strumento che permette di portare ad un IDE per Python le caratteristiche degli IDE dei linguaggi tipizzati. Attualmente stiamo anche lavorando all'incorporazione del Code Checking utilizzando la libreria Pep8, proprio per fornire informazioni sullo stato del codice in relazione agli standard Pep8.

Estensibilità NINJA-IDE

NINJA-IDE ha un sistema di plugin abbastanza completo che consente l'integrazione di questi plugin come elemento nativo dell'IDE. La scrittura di plugin è abbastanza semplice e puoi anche usare un plugin NINJA-IDE per scrivere plugin NINJA-IDE (ricorsivi?). Questo Plugin «per scrivere Plugin» ti permette di decidere con quali parti dell'IDE sarà correlato il nuovo plugin e crea automaticamente la struttura del progetto necessaria, insieme al descrittore del Plugin in modo che NINJA-IDE possa interpretarlo e la classe base di Questo plugin con i metodi che dovranno essere reimplementati, a sua volta, quando finiremo di scrivere il plugin, ci permette di impacchettarlo e poi distribuirlo. Al momento sono disponibili 3 plugin per NINJA-IDE:

  • Pattumiera: che ti consente di inviare il codice a pastebin.com e restituisce il link risultante per condividere quel codice.
  • Progetto Plugin: la persona incaricata della creazione di progetti di plugin per NINJA-IDE come abbiamo detto.
  • Completatore classe: completa automaticamente alcune strutture durante la scrittura di codice Python, come ad esempio: crea il costruttore automaticamente chiamando le classi padre necessarie, ecc.

Per consultare ulteriori informazioni su come sviluppare un plugin per NINJA-IDE, puoi visitare il seguente Wiki: http://ninja-ide.org/plugins/

Contatti

Scarico

Ninja IDE è ora disponibile nei pacchetti DEB e RPM. Il resto del mondo, ovviamente, può sempre scaricare il codice sorgente e compilarlo. 🙂

Grazie Diego Sarmentero per aver condiviso questo eccellente IDE con tutti noi!

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Patricio Arguello suddetto

    Mi piace molto di più PyCharm. Comunque buon lavoro complimenti e saluti. @patoargu

  2.   Ricardo3284 suddetto

    Un saluto alla community Sono un fan della programmazione in python, l'IDE è molto buono ma sul mio computer ho Ubuntu 10.10 e non riesco a lavorare con le funzionalità che vedete in figura 4, l'immagine in cui vengono mostrati i comandi o le classi o metodi Da un oggetto python, questa funzionalità è molto importante almeno per me poiché non tutti i comandi vengono appresi e allo stesso tempo ci permetterebbe di imparare di più dai programmatori, ma quella funzionalità non viene fuori nel mio Ubuntu.

    Spero che qualcuno della comunità possa aiutarmi, la mia email è riccardo3284@gmail.com

  3.   marcoshipe suddetto

    Ho letto male, il supporto per git non è ancora implementato, ma è già un plugin che prevedi di implementare 🙂

  4.   alex suddetto

    ^^, ho iniziato come membro del team di sviluppo :), ma alla fine non avevo il tempo o le conoscenze sufficienti e ho dovuto rinunciare :(. Ma sono molto felice che alla fine NInja IDE sia andato avanti e con risultati così buoni.

  5.   marcoshipe suddetto

    Lo provo già 😀
    si spera bene, ma dato che uso python e qt mi piace xD
    Immagino che abbia cancellato Eric, e ho guardato e ha il supporto per git 😀 Penso che andremo d'accordo

  6.   Daniel suddetto

    Penso che sia eccellente, l'unica cosa negativa è che, essendo di lingua spagnola, creano interfacce in inglese, dovrebbero farle in spagnolo, IDES in inglese, ci sono molti perché non fare qualcosa che tutti noi che non gestiscono l'inglese capiamo, altrimenti non ne ho ma congratulati con loro.

    saluti

  7.   Eugenio Tamburo suddetto

    Mi piace, ma al momento è qualcosa di verde, l'ho provato e mi lascia sbalordito, e riavvia costantemente Windows Explorer e più errori, ma non appena lo aggiustano ed è qualcosa di più stabile avrà senza dubbio molto successo.

  8.   Daniele dcs suddetto

    Ottimo lavoro "made in" Argentina !!!! Sinceri complimenti a tutto il team di sviluppo !!!!

  9.   Neer suddetto

    Saluti a tutti, ottimo lavoro, l'IDE è abbastanza comodo da usare, sarebbe molto interessante includere un editor di interfaccia utente grafica, sarebbe anche affascinante se permettesse di generare la documentazione del progetto (magari nello stile dei Javadoc).

    Continua così.