Ninja IDE: un IDE conçu pour Python

Enfin quelqu'un daigna écrire un IDE comme les gens pour Python que tout citoyen ordinaire peut utiliser sans problème sous Linux. Oui, il existe plusieurs IDE pour la programmation dans différents langages, y compris Python, mais celui-ci a quelques petits trucs dans sa manche...

Comment NINJA-IDE a-t-il commencé?

NINJA-IDE Il est né de quelques courriels envoyés à PyAr, dont le thème est généralement entendu assez fréquemment: "Quel bon IDE pour Python puis-je utiliser?", "Pourquoi n'y a-t-il pas d'IDE pour Python qui a telle ou telle fonctionnalité?", et les réponses à ces e-mails finissent toujours par être plus ou moins les mêmes, puisque les IDE actuels que nous trouvons disponibles, pour la plupart, n'étaient pas conçus pour Python, mais offraient la possibilité de l'incorporer via un plugin et de cette manière Auparavant, il utilisait des IDE très lourds conçus à d'autres fins, où la prise en charge de Python était en fait minime, et ceux qui étaient pour Python finissaient par être très orientés vers un framework spécifique ou n'étaient pas gratuits. Ainsi, motivés par le défi qu'il représentait, et par des idées intéressantes qui ont été soulevées sur la liste de diffusion, nous avons décidé d'aborder ce projet en nous concentrant sur "Quelles fonctionnalités devrait avoir un bon IDE pour un programmeur Python".

Dans cet esprit, nous avons commencé le développement de NINJA-IDE, dont le nom est un dérivé de l'acronyme récursif: "Ninja n'est pas juste un autre IDE". L'IDE a à peine plus de deux mois de développement, mais grâce à l'envie et aux heures de programmation que nous lui consacrons, nous pouvons désormais avoir un IDE avec de nombreuses fonctionnalités implémentées, au point de pouvoir continuer le développement de NINJA- IDE utilisant NINJA-IDE, qui à son tour nous aide à trouver des bogues et à améliorer la convivialité et la praticité de l'application, grâce à l'expérience et à l'utilisation continue de celle-ci.

Le projet est développé sous une licence GPL gratuite et le code peut être obtenu via:

Certaines des fonctionnalités actuelles de l'EDI sont:

  • Fonctionnalités typiques de tout IDE pour la gestion des fichiers, des onglets, de l'indentation automatique, du zoom dans l'éditeur, etc.
  • Ecrit en Python et utilisant PyQt, il est multiplateforme et a été testé sur les systèmes Linux, MAC OS X et Windows.
  • Mise en évidence de la syntaxe pour une grande variété de langages (bien qu'elle soit centrée sur Python, elle fournit la mise en évidence de la syntaxe pour d'autres langages pour la commodité du programmeur).
  • Possibilité d'utiliser une console Python à partir du même IDE.
  • Il permet la gestion des projets dans l'EDI, en les reconnaissant comme des projets Python et via l'EDI en créant de nouveaux fichiers et dossiers, en supprimant des fichiers existants, en créant automatiquement des fichiers «__init__» avec les informations contenues dans ce module, etc.
  • Il permet de cacher et de déplacer tous les panneaux d'interface de manière très simple, lui permettant de s'adapter aux goûts de l'utilisateur.
  • Affichez plusieurs éditeurs à la fois verticalement ou horizontalement.
  • Extensible grâce à l'ajout de Plugins (qui peuvent être créés à l'aide d'un Plugin NINJA-IDE pour plus de simplicité).
  • Il gère les sessions IDE, pour se souvenir quels fichiers et projets étaient ouverts lors de sa fermeture et les récupère lors de la réouverture d'une instance.
  • Prise en charge de l'auto-complétion (étant une auto-complétion spécifique de l'objet auquel on accède)
  • Mises à jour automatiques.
  • Et bien d'autres fonctionnalités!

Qui développe NINJA-IDE?

NINJA-IDE a commencé à être développé par Santiago Moreno et Diego Sarmentero, et 2 semaines après le démarrage du projet, il était déjà utilisé pour le développer. Merci aux gens de la liste PyAr, des blogs, etc. En très peu de temps, la diffusion du projet a permis de compter sur le rapport de bogues par les utilisateurs, les suggestions sur la liste de diffusion NINJA et même avec des contributions au code des utilisateurs et des collaborateurs, dont certains sont devenus partie de NINJA-IDE avec le rôle de commettant, comme c'est le cas de: Martín Alderete, Juan Cabral et Matías Herranz.

Cette forte collaboration et participation que nous recevons de la communauté permet à NINJA-IDE de se développer chaque jour, en améliorant et en mettant en œuvre les fonctionnalités dont les utilisateurs ont besoin. À leur tour, les commentaires que nous recevons des personnes utilisant actuellement NINJA-IDE, nous motivent à continuer à travailler dur sur cet outil, avec lequel nous souhaitons simplifier davantage le développement d'applications Python.

Comment avez-vous choisi les fonctionnalités à ajouter?

Au début du projet, une structure a été pensée qui lui permettrait de grandir et d'intégrer des fonctionnalités au fil du temps, ayant pour guide deux facteurs principaux: l'éditeur de code et la gestion de projet. L'application a commencé à être construite en prenant soin de ces deux piliers fondamentaux et en permettant une bonne base d'entre eux pour faciliter plus tard l'incorporation de nouvelles fonctionnalités. Le projet est passé par différentes étapes, en commençant par un bon éditeur avec coloration syntaxique, en continuant avec la gestion des fichiers du projet, jusqu'à l'ajout de fonctionnalités de plugin, l'auto-complétion, la gestion de session, etc. Python est souvent considéré comme un langage qui a plus de difficultés à fournir des informations sur le code en cours d'écriture car il ne peut pas déduire d'objets au moment de la programmation en raison du typage dynamique, etc.

Dans certains cas, il est vrai qu'avoir un typage explicite peut effectuer des analyses plus simples et plus détaillées, mais il est également vrai qu'il existe actuellement de nombreux outils et bibliothèques pour Python qui aident à éliminer ce tabou qu'il n'est pas possible d'avoir un IDE qui apporte une réelle assistance sur le code généré. C'est pourquoi NINJA-IDE cherche à permettre aux programmeurs qui utilisent Python de développer leurs programmes, d'avoir les mêmes facilités et aides que celles obtenues lors du développement en Java ou .NET avec certains des IDE les plus populaires actuellement pour ces langages. En prenant les résultats et les expériences obtenus des IDE pour d'autres langages, il est prévu de réaliser un IDE conçu pour Python qui génère la même satisfaction lors de son utilisation.

Pour la suggestion, la décision et l'incorporation de nouvelles fonctionnalités dans NINJA-IDE, la liste de diffusion est généralement utilisée pour parvenir à une décision collective des membres qui composent le projet, plus que tout pour savoir quel sera l'objectif de cette fonctionnalité, en quelle étape doit être incorporée et d'autres détails. Plusieurs fois, ces caractéristiques sont motivées par des fonctionnalités intéressantes vues dans un autre IDE, une idée de l'un des membres ou des suggestions du groupe d'utilisateurs. De cette façon, n'importe qui, à la fois utilisateur et développeur, peut proposer ce qu'il aimerait voir implémenté dans NINJA-IDE et en fonction de l'architecture du projet, il peut être défini s'il est nécessaire de l'incorporer dans le cadre de l'EDI lui-même ou en tant que plugin, permettant en même temps pour savoir sur quelles idées on travaille et qui en prend le contrôle pour garder le groupe de travail synchronisé.

Que pouvons-nous attendre de NINJA-IDE?

NINJA-IDE est né pour couvrir un besoin qui nous paraissait important, et nous avons également vu que les approches actuelles des IDE n'apportaient pas la couverture nécessaire.

Notre intention au début de ce projet était de créer un environnement axé sur le développement d'applications Python, mais en tenant toujours compte de la nécessité d'avoir une communauté d'utilisateurs qui nous permettrait d'améliorer l'expérience d'utilisation de cet outil, et nous rend actuellement très heureux pouvoir compter sur la communauté NINJA-IDE, car grâce à l'expérience et aux connaissances collectives des utilisateurs, il est possible qu'avec leurs suggestions, le développement du projet puisse avancer plus rapidement et beaucoup plus de détails sont pris en compte que d'un autre la forme pourrait être négligée.

Plans futurs

Actuellement, avec le développement continu que nous réalisons, nous sommes proches de la sortie de la version 1.0 de NINJA-IDE, qui recevra le nom de «Kunai». Dans cette première version plusieurs des fonctionnalités mentionnées précédemment seront présentes, ce qui permettra au développeur d'avoir un IDE robuste et pratique, évidemment, comme dans tout projet, des améliorations et de nouvelles fonctionnalités émergeront à mettre en œuvre. Certaines des choses qui devraient être incorporées dans NINJA-IDE dans les futures versions sont:

  • Débogueur graphique
  • Pour pouvoir voir graphiquement la navigabilité et la relation des modules et classes d'un projet (basé sur BlueJ)
  • Prise en charge des outils de gestion des versions de code.
  • Autoriser l'édition collaborative d'un document.
  • Concepteur d'interface Qt et Gtk intégré dans l'EDI.
  • Prise en charge des cadres tels que:
  • Django
  • Google App Engine
  • Et cela ne fait que commencer!

Quels outils utilise NINJA-IDE?

L'EDI est développé en utilisant le framework PyQt pour toute la gestion de l'interface graphique et de certaines autres fonctionnalités, bien qu'il ait été essayé d'abstraire au maximum certaines fonctions pour permettre, si nécessaire demain, de porter NINJA-IDE vers d'autres frameworks tels que Gtk. Qt permettait de disposer d'une interface solide et hautement configurable, ce qui permettait d'étendre chaque élément nécessaire pour modifier son comportement et l'adapter aux besoins de l'EDI.

En ce qui concerne la coloration syntaxique, NINJA-IDE utilise son propre système de coloration syntaxique utilisant les fonctionnalités Qt, et permettant à ce système de coloration syntaxique d'être facilement extensible dans NINJA-IDE avec la création d'un simple fichier JSON qui décrit le langue à incorporer. Cette méthode améliore les performances, mais pour couvrir les langues qui ne sont pas reconnues par ce système, l'utilisation de Pygments a été incorporée pour la coloration syntaxique d'une plus grande variété de langues. Bien que la possibilité de remplacer Pygments par GNU Highlight pour des raisons de performances soit actuellement évoquée.

Pour l'auto-complétion, le refactoring, et ceux qui font référence à l'inférence de code, Rope est utilisé, qui est une excellente bibliothèque, très complète pour ce type de situation. Rope est un outil qui permet d'apporter à un IDE pour Python les caractéristiques des IDE de langages typés. Actuellement, nous travaillons également sur l'intégration de la vérification de code à l'aide de la bibliothèque Pep8, précisément pour fournir des informations sur l'état du code par rapport aux normes Pep8.

Extensibilité NINJA-IDE

NINJA-IDE dispose d'un système de plugins assez complet qui permet l'intégration de ces plugins en tant qu'élément natif de l'EDI. L'écriture de plugins est assez simple et vous pouvez même utiliser un plugin NINJA-IDE pour écrire des plugins NINJA-IDE (récursifs?). Ce Plugin «pour écrire des Plugins» vous permet de décider avec quelles parties de l'IDE le nouveau plugin va être lié et crée automatiquement la structure de projet nécessaire, ainsi que le descripteur de Plugin afin que NINJA-IDE puisse l'interpréter et la classe de base de Ce plugin avec les méthodes qui devront être réimplémentées, à son tour, lorsque nous aurons fini d'écrire le plugin, il nous permet de le conditionner puis de le distribuer. Il y a actuellement 3 plugins pour NINJA-IDE disponibles:

  • Pastebin : qui vous permet d'envoyer du code à pastebin.com et renvoie le lien résultant pour partager ce code.
  • PluginProjet : la personne en charge de la création de projets Plugins pour NINJA-IDE comme nous l'avons mentionné.
  • Complète de classe : complète automatiquement certaines structures lors de l'écriture de code Python, telles que: créer le constructeur automatiquement en appelant les classes parentes nécessaires, etc.

Pour consulter plus d'informations sur la façon de développer un plugin pour NINJA-IDE, vous pouvez visiter le Wiki suivant: http://ninja-ide.org/plugins/

Contact

Télécharger

Ninja IDE est maintenant disponible dans les packages DEB et RPM. Le reste du monde, bien sûr, peut toujours télécharger le code source et le compiler. 🙂

Merci Diego Sarmentero d'avoir partagé cet excellent IDE avec nous tous!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Patrick Arguello dit

    J'aime vraiment mieux PyCharm. Cependant, félicitations et salutations de bon travail. @patoargu

  2.   Ricardo3284 dit

    Salutations à la communauté Je suis fan de programmation en python, l'EDI est très bon mais sur mon ordinateur j'ai Ubuntu 10.10 et je ne peux pas travailler avec les fonctionnalités que vous voyez dans la figure 4, l'image où sont affichées les commandes ou classes ou méthodes d'un objet python, cette caractéristique est très importante au moins pour moi car toutes les commandes ne sont pas apprises et en même temps cela nous permettrait d'en apprendre plus aux programmeurs, mais cette fonctionnalité ne sort pas dans mon Ubuntu.

    J'espère que quelqu'un de la communauté pourra m'aider, mon email est riccardo3284@gmail.com

  3.   marcoshipe dit

    Je l'ai mal lu, le support de git n'est pas encore implémenté, mais c'est déjà en tant que plugin qu'ils envisagent d'implémenter 🙂

  4.   Alex dit

    ^^, j'ai commencé en tant que membre de l'équipe de développement :), mais au final je n'avais pas le temps ni assez de connaissances et j'ai dû abandonner: (Mais je suis très heureux qu'au final NInja IDE ait progressé et avec de si bons résultats.

  5.   marcoshipe dit

    Je l'essaye déjà 😀
    j'espère que c'est bien, mais depuis que j'utilise python et qt j'aime xD
    Je suppose qu'il essuie eric, et j'ai regardé et il a un support pour git 😀 Je pense que nous allons nous entendre

  6.   Daniel dit

    Je pense que c'est excellent, le seul point négatif est que, étant hispanophones, ils créent des interfaces en anglais, ils devraient les faire en espagnol, IDES en anglais il y a beaucoup de pourquoi ne pas faire quelque chose que tous ceux qui ne maîtrisent pas l'anglais comprennent, sinon je ne l'ai pas mais félicitez-les.

    salutations

  7.   Eugeniu Tambour dit

    Je l'aime bien, mais pour le moment, c'est quelque chose de vert, je l'ai testé et cela me laisse stupéfait, et il redémarre constamment l'explorateur de Windows et plus d'erreurs, mais dès qu'ils le corrigent et que c'est quelque chose de plus stable, il sera sans aucun doute très réussi.

  8.   daniel dcs dit

    Excellent travail "made in" Argentine !!!! Félicitations sincères à toute l'équipe de développement !!!!

  9.   neyer dit

    Salutations à tous, très bon travail, l'EDI est assez confortable à utiliser, il serait très intéressant d'inclure un éditeur d'interface utilisateur graphique, ce serait aussi fascinant s'il vous permettait de générer la documentation du projet (peut-être dans le style de Javadocs).

    Continue.