Ninja IDE: Eine für Python entwickelte IDE

Endlich hat sich jemand dazu entschlossen zu schreiben eine IDE wie die Leute für Python dass jeder normale Bürger ohne Probleme unter Linux verwenden kann. Ja, es gibt mehrere IDEs zum Programmieren in verschiedenen Sprachen, einschließlich Python, aber Dieser hat ein paar kleine Tricks im Ärmel...

Wie hat NINJA-IDE angefangen?

Ninja-IDEA Es wurde durch einige E-Mails an PyAr geboren, deren Thema ziemlich häufig gehört wird: "Welche gute IDE für Python kann ich verwenden?", "Warum gibt es keine IDE für Python mit dieser oder jener Funktion?"und die Antworten auf diese E-Mails sind immer mehr oder weniger gleich, da die derzeit verfügbaren IDEs größtenteils nicht für Python entwickelt wurden, sondern die Möglichkeit boten, sie über ein Plugin und auf diese Weise zu integrieren Früher wurden sehr schwere IDEs verwendet, die für andere Zwecke entwickelt wurden, bei denen die Unterstützung für Python tatsächlich minimal war und diejenigen, die für Python waren, sich sehr stark an einem bestimmten Framework orientierten oder nicht kostenlos waren. Aus diesem Grund haben wir uns aufgrund der damit verbundenen Herausforderung und der interessanten Ideen, die auf der Mailingliste standen, für dieses Projekt entschieden, indem wir uns auf dieses Projekt konzentrierten "Welche Funktionen sollte eine gute IDE für einen Python-Programmierer haben?".

Vor diesem Hintergrund haben wir mit der Entwicklung von NINJA-IDE begonnen, dessen Name eine Ableitung des rekursiven Akronyms ist: "Ninja ist nicht nur eine andere IDE". Die IDE hat kaum mehr als zwei Monate Entwicklungszeit, aber dank des Wunsches und der Stunden der Programmierung, die wir ihr widmen, können wir jetzt eine IDE mit vielen Funktionen implementieren lassen, um die Entwicklung von NINJA- fortsetzen zu können. IDE mit NINJA-IDE, die uns wiederum hilft, Fehler zu finden und die Benutzerfreundlichkeit und Praktikabilität der Anwendung durch Erfahrung und kontinuierliche Verwendung zu verbessern.

Das Projekt wird unter einer kostenlosen GPL-Lizenz entwickelt und der Code kann erhalten werden durch:

Einige der aktuellen Funktionen der IDE sind:

  • Typische Funktionen einer IDE für die Verarbeitung von Dateien, Registerkarten, automatischem Einrücken, Vergrößern des Editors usw.
  • Es wurde in Python geschrieben und verwendet PyQt. Es ist plattformübergreifend und wurde auf Linux-, MAC OS X- und Windows-Systemen getestet.
  • Syntaxhervorhebung für eine Vielzahl von Sprachen (obwohl es Python-zentriert ist, bietet es Syntaxhervorhebung für andere Sprachen, um den Programmierer zu unterstützen).
  • Möglichkeit der Verwendung einer Python-Konsole aus derselben IDE.
  • Es ermöglicht die Verwaltung von Projekten in der IDE, die Erkennung als Python-Projekte und über die IDE das Erstellen neuer Dateien und Ordner, das Löschen vorhandener Dateien, das automatische Erstellen von "__init__" -Dateien mit den Informationen in diesem Modul usw.
  • Es ermöglicht das Ausblenden und Verschieben aller Schnittstellenfelder auf sehr einfache Weise, sodass es an den Geschmack des Benutzers angepasst werden kann.
  • Zeigen Sie mehr als einen Editor gleichzeitig vertikal oder horizontal an.
  • Erweiterbar durch Hinzufügen von Plugins (die der Einfachheit halber mit einem NINJA-IDE-Plugin erstellt werden können).
  • Es verwaltet IDE-Sitzungen, um sich zu merken, welche Dateien und Projekte beim Schließen geöffnet waren, und stellt sie beim erneuten Öffnen einer Instanz wieder her.
  • Unterstützung für die automatische Vervollständigung (eine bestimmte automatische Vervollständigung des Objekts, auf das zugegriffen wird).
  • Automatische Updates.
  • Und viele weitere Funktionen!

Wer entwickelt NINJA-IDE?

NINJA-IDE wurde von Santiago Moreno und Diego Sarmentero entwickelt und 2 Wochen nach Beginn des Projekts bereits für die Entwicklung verwendet. Vielen Dank an die Leute auf der PyAr-Liste, Blogs usw. In sehr kurzer Zeit bedeutete die Verbreitung des Projekts, dass wir uns auf Fehlerberichte von Benutzern, Vorschläge auf der NINJA-Mailingliste und sogar auf Codebeiträge von Benutzern und Mitarbeitern verlassen konnten, von denen einige wurden Teil von NINJA-IDE mit der Rolle von Committern, wie im Fall von: Martín Alderete, Juan Cabral und Matías Herranz.

Diese starke Zusammenarbeit und Beteiligung, die wir von der Community erhalten, ermöglicht es NINJA-IDE, jeden Tag zu wachsen und die Funktionen zu verbessern und zu implementieren, die Benutzer benötigen. Die Kommentare, die wir von Personen erhalten, die derzeit NINJA-IDE verwenden, motivieren uns wiederum, weiter hart an diesem Tool zu arbeiten, mit dem wir die Entwicklung von Python-Anwendungen weiter vereinfachen möchten.

Wie haben Sie entschieden, welche Funktionen hinzugefügt werden sollen?

Zu Beginn des Projekts wurde eine Struktur gedacht, die es ihm ermöglicht, im Laufe der Zeit zu wachsen und Funktionen zu integrieren, wobei zwei Hauptfaktoren als Leitfaden dienen: der Code-Editor und das Projektmanagement. Die Anwendung wurde unter Berücksichtigung dieser beiden Grundpfeiler erstellt und ermöglicht eine gute Basis, um später die Integration neuer Funktionen zu erleichtern. Das Projekt durchlief verschiedene Phasen, angefangen mit einem guten Editor mit Syntaxhervorhebung über die Verwaltung von Projektdateien bis hin zum Hinzufügen von Plugin-Funktionen, automatischer Vervollständigung, Sitzungsverwaltung usw. Python wird oft als eine Sprache angesehen, die größere Schwierigkeiten hat, Informationen über den zu schreibenden Code bereitzustellen, da sie zum Zeitpunkt der Programmierung aufgrund dynamischer Typisierung usw. nicht auf Objekte schließen kann.

In einigen Fällen ist es richtig, dass eine explizite Eingabe einfachere und detailliertere Analysen durchführen kann, aber es ist auch wahr, dass es derzeit viele Tools und Bibliotheken für Python gibt, die helfen, dieses Tabu zu beseitigen, dass es nicht möglich ist, eine IDE zu haben Dies bietet echte Unterstützung für den Code, der generiert wird. Aus diesem Grund möchte NINJA-IDE den Programmierern, die Python verwenden, die Entwicklung ihrer Programme ermöglichen und über dieselben Funktionen und Hilfsmittel verfügen, die bei der Entwicklung in Java oder .NET mit einigen der derzeit beliebtesten IDEs für diese Sprachen verfügbar sind. Ausgehend von den Ergebnissen und Erfahrungen von IDEs für andere Sprachen soll eine für Python entwickelte IDE erstellt werden, die bei der Verwendung die gleiche Zufriedenheit erzielt.

Für den Vorschlag, die Entscheidung und die Aufnahme neuer Funktionen in NINJA-IDE wird die Mailingliste normalerweise verwendet, um eine kollektive Entscheidung der Mitglieder des Projekts zu treffen, vor allem um zu wissen, was das Ziel dieser Funktion sein wird Welche Phase sollte aufgenommen werden und andere Details. Oft sind diese Eigenschaften durch einige interessante Funktionen motiviert, die in einer anderen IDE zu sehen sind, eine Idee eines der Mitglieder oder Vorschläge der Benutzergruppe. Auf diese Weise kann jeder, sowohl Benutzer als auch Entwickler, vorschlagen, welche Dinge in NINJA-IDE implementiert werden sollen. Basierend auf der Projektarchitektur kann definiert werden, ob es erforderlich ist, sie als Teil der IDE selbst oder als Plugin zu integrieren Gleichzeitig wissen Sie, an welchen Ideen gearbeitet wird und wer die Kontrolle über sie übernimmt, um die Arbeitsgruppe synchron zu halten.

Was können wir von NINJA-IDE erwarten?

NINJA-IDE wurde geboren, um einen Bedarf zu decken, der uns wichtig erschien, und wir haben auch festgestellt, dass die aktuellen Ansätze für IDEs nicht die erforderliche Deckung bieten.

Unsere Absicht beim Start dieses Projekts war es, eine Umgebung zu schaffen, die sich auf die Entwicklung von Python-Anwendungen konzentriert, aber immer die Notwendigkeit einer Benutzergemeinschaft berücksichtigt, die es uns ermöglicht, die Erfahrung mit diesem Tool zu verbessern, und die uns derzeit sehr glücklich macht sich auf die NINJA-IDE-Community verlassen zu können, da dank der Erfahrung und des kollektiven Wissens der Benutzer die Entwicklung des Projekts mit ihren Vorschlägen schneller voranschreiten kann und viel mehr Details berücksichtigt werden als von anderen Form könnte übersehen werden.

Zukunftspläne

Derzeit stehen wir mit der kontinuierlichen Weiterentwicklung kurz vor der Veröffentlichung der Version 1.0 von NINJA-IDE, die den Namen 'Kunai' erhalten wird. In dieser ersten Version werden mehrere der zuvor genannten Funktionen vorhanden sein, die es dem Entwickler ermöglichen, über eine robuste und praktische IDE zu verfügen. Offensichtlich werden wie in jedem Projekt Verbesserungen und neue Funktionen implementiert. Einige der Dinge, die in zukünftigen Versionen in die NINJA-IDE aufgenommen werden sollen, sind:

  • Grafik-Debugger
  • Um die Navigierbarkeit und Beziehung der Module und Klassen eines Projekts grafisch anzeigen zu können (basierend auf BlueJ)
  • Unterstützt Tools zur Codeversionierung.
  • Ermöglichen Sie die gemeinsame Bearbeitung eines Dokuments.
  • Designer von in die IDE integrierten Qt- und Gtk-Schnittstellen.
  • Frameworks unterstützen wie:
  • Django
  • Google App Engine
  • Und das fängt gerade erst an!

Welche Tools verwendet NINJA-IDE?

Die IDE wurde unter Verwendung des PyQt-Frameworks für die gesamte Handhabung der grafischen Oberfläche und einiger anderer Funktionen entwickelt. Es wurde jedoch versucht, bestimmte Funktionen so weit wie möglich zu abstrahieren, damit NINJA-IDE bei Bedarf morgen auf andere Frameworks wie z Gtk. Qt ermöglichte eine solide und hoch konfigurierbare Schnittstelle, die es ermöglichte, jedes erforderliche Element zu erweitern, um sein Verhalten zu ändern und es an die Anforderungen der IDE anzupassen.

In Bezug auf die Syntaxhervorhebung verwendet NINJA-IDE ein eigenes Syntaxhervorhebungssystem mit Qt-Funktionen, sodass dieses Hervorhebungssystem in NINJA-IDE leicht erweitert werden kann, indem eine einfache JSON-Datei erstellt wird, die das beschreibt Sprache aufgenommen werden. Diese Methode bietet Leistungsverbesserungen. Um jedoch diejenigen Sprachen abzudecken, die von diesem System nicht erkannt werden, wurde die Verwendung von Pylements für die Syntaxhervorhebung einer größeren Vielfalt von Sprachen integriert. Obwohl die Möglichkeit, dass Pylements aus Leistungsgründen durch GNU Highlight ersetzt werden, derzeit geprüft wird.

Für die automatische Vervollständigung, das Refactoring und diejenigen, die sich auf die Code-Inferenz beziehen, wird Rope verwendet, eine hervorragende Bibliothek, die für diese Art von Situation sehr vollständig ist. Rope ist ein Tool, mit dem IDEs für Python-Eigenschaften von IDEs typisierter Sprachen in eine IDE gebracht werden können. Derzeit arbeiten wir auch an der Integration der Codeprüfung unter Verwendung der Pep8-Bibliothek, um genau Informationen über den Status des Codes in Bezug auf die Pep8-Standards bereitzustellen.

NINJA-IDE-Erweiterbarkeit

NINJA-IDE verfügt über ein ziemlich vollständiges Plugin-System, das die Integration dieser Plugins als natives Element der IDE ermöglicht. Das Schreiben von Plugins ist recht einfach und Sie können sogar ein NINJA-IDE-Plugin verwenden, um NINJA-IDE-Plugins zu schreiben (rekursiv?). Mit diesem Plugin «Plugins schreiben» können Sie entscheiden, mit welchen Teilen der IDE das neue Plugin verknüpft werden soll, und automatisch die erforderliche Projektstruktur zusammen mit dem Plugin-Deskriptor erstellen, damit NINJA-IDE es und die Basisklasse von interpretieren kann Dieses Plugin mit den Methoden, die erneut implementiert werden müssen, ermöglicht es uns, es nach dem Schreiben des Plugins zu verpacken und dann zu verteilen. Derzeit sind 3 Plugins für NINJA-IDE verfügbar:

  • Pastebin: Hiermit können Sie Code an pastebin.com senden und den resultierenden Link zurückgeben, um diesen Code freizugeben.
  • PluginProjekt: die Person, die für die Erstellung von Plugins-Projekten für NINJA-IDE verantwortlich ist, wie bereits erwähnt.
  • Klassenvervollständiger: Vervollständigt beim Schreiben von Python-Code automatisch einige Strukturen, z. B.: Erstellen Sie den Konstruktor automatisch, indem Sie die erforderlichen übergeordneten Klassen aufrufen usw.

Weitere Informationen zum Entwickeln eines Plugins für NINJA-IDE finden Sie im folgenden Wiki: http://ninja-ide.org/plugins/

Kontakt

Entladen

Ninja IDE ist jetzt in DEB- und RPM-Paketen verfügbar. Der Rest der Welt kann den Quellcode natürlich jederzeit herunterladen und kompilieren. 🙂

Vielen Dank an Diego Sarmentero für das Teilen dieser hervorragenden IDE mit uns allen!

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Patrick Arguello sagte

    Ich mag PyCharm wirklich besser. Herzlichen Glückwunsch und Grüße. @patoargu

  2.   Richard3284 sagte

    Grüße an die Community Ich bin ein Fan der Programmierung in Python, die IDE ist sehr gut, aber auf meinem Computer habe ich Ubuntu 10.10 und ich kann nicht mit den Funktionen arbeiten, die Sie in Abbildung 4 sehen, dem Bild, in dem die Befehle oder Klassen oder Methoden gezeigt werden Von einem Python-Objekt ist diese Eigenschaft zumindest für mich sehr wichtig, da nicht alle Befehle gelernt werden und es uns gleichzeitig ermöglichen würde, Programmierern mehr zu lernen, aber diese Funktionalität kommt in meinem Ubuntu nicht heraus.

    Ich hoffe jemand aus der Community kann mir helfen, meine E-Mail ist riccardo3284@gmail.com

  3.   Marcoshipe sagte

    Ich habe es falsch gelesen, die Unterstützung für Git ist noch nicht implementiert, aber es ist bereits als Plugin geplant

  4.   Alex sagte

    ^^, ich habe als Mitglied des Entwicklungsteams angefangen :), aber am Ende hatte ich nicht genug Zeit oder Wissen und musste es aufgeben :(. Aber ich bin sehr froh, dass NInja IDE am Ende mit so guten Ergebnissen weiterging.

  5.   Marcoshipe sagte

    Ich versuche es schon 😀
    hoffentlich so gut, aber da ich python und qt benutze, mag ich xD
    Ich denke, er wischt Eric ab, und ich habe nachgesehen und es hat Unterstützung für Git. Ich denke, wir werden miteinander auskommen

  6.   Matthias sagte

    Ich denke, es ist ausgezeichnet, das einzig Negative ist, dass sie, da sie Spanisch sprechen, Schnittstellen auf Englisch erstellen, sie auf Spanisch erstellen sollten, IDES auf Englisch. Es gibt viele Gründe, warum wir nicht etwas tun sollten, das wir alle, die nicht mit Englisch umgehen, verstehen, sonst habe ich es nicht aber gratuliere ihnen.

    Grüße

  7.   Eugeni Tambur sagte

    Ich mag es, aber im Moment ist es etwas Grünes, ich habe es getestet und es macht mich fassungslos und es startet den Windows Explorer ständig neu und es treten immer mehr Fehler auf, aber sobald sie es beheben und es etwas stabiler ist, wird es zweifellos sehr erfolgreich sein.

  8.   daniel dcs sagte

    Ausgezeichnete Arbeit "made in" Argentinien !!!! Herzlichen Glückwunsch an das gesamte Entwicklungsteam !!!!

  9.   Neiger sagte

    Grüße an alle, sehr gute Arbeit, die IDE ist sehr komfortabel zu bedienen, es wäre sehr interessant, einen Editor für grafische Benutzeroberflächen einzuschließen, und es wäre auch faszinierend, wenn Sie damit die Projektdokumentation erstellen könnten (möglicherweise im Stil von Javadocs).

    Mach weiter.