Ninja IDE: Ένα IDE σχεδιασμένο για Python

Τελικά κάποιος υποδέχτηκε να γράψει ένα IDE σαν τους λαούς για την Python ότι οποιοσδήποτε απλός πολίτης μπορεί να χρησιμοποιήσει χωρίς προβλήματα στο Linux. Ναι, υπάρχουν πολλά IDE για προγραμματισμό σε διαφορετικές γλώσσες, συμπεριλαμβανομένης της Python, αλλά αυτό έχει μερικά μικρά κόλπα στο μανίκι του...

Πώς ξεκίνησε το NINJA-IDE;

NINJA-IDE Γεννήθηκε από ορισμένα email που εστάλησαν στο PyAr, του οποίου το θέμα ακούγεται συνήθως αρκετά συχνά: "Τι καλό IDE για Python μπορώ να χρησιμοποιήσω;", "Γιατί δεν υπάρχει IDE για την Python που έχει αυτό ή αυτό το χαρακτηριστικό;", και οι απαντήσεις σε αυτά τα μηνύματα ηλεκτρονικού ταχυδρομείου καταλήγουν πάντα να είναι λίγο πολύ τα ίδια, καθώς τα τρέχοντα IDE που βρίσκουμε διαθέσιμα, ως επί το πλείστον, δεν σχεδιάστηκαν για την Python, αλλά προσέφεραν την επιλογή ενσωμάτωσής τους μέσω ενός Plugin και σε αυτό τρόπος Παλαιότερα χρησιμοποιούσε πολύ βαριά IDE σχεδιασμένα για άλλους σκοπούς, όπου η υποστήριξη για την Python ήταν στην πραγματικότητα ελάχιστη και εκείνες που ήταν για την Python κατέληξαν να προσανατολίζονται πολύ σε ένα συγκεκριμένο Πλαίσιο ή δεν ήταν Δωρεάν. Έτσι, με κίνητρο την πρόκληση που αντιπροσώπευε και από ενδιαφέρουσες ιδέες που τέθηκαν στη λίστα αλληλογραφίας, αποφασίσαμε να προσεγγίσουμε αυτό το έργο εστιάζοντας "Τι χαρακτηριστικά πρέπει να έχει ένα καλό IDE για έναν προγραμματιστή Python".

Έχοντας αυτό κατά νου ξεκινήσαμε την ανάπτυξη του NINJA-IDE, του οποίου το όνομα είναι παράγωγο του αναδρομικού ακρωνύμου: "Το Ninja δεν είναι απλώς ένα άλλο IDE". Το IDE έχει μόλις πάνω από δύο μήνες ανάπτυξης, αλλά χάρη στην επιθυμία και τις ώρες προγραμματισμού που αφιερώνουμε σε αυτό, μπορούμε ήδη να έχουμε ένα IDE με πολλές λειτουργίες υλοποιημένες, έως το σημείο να είμαστε σε θέση να συνεχίσουμε με την ανάπτυξη Το NINJA- IDE χρησιμοποιεί το NINJA-IDE, το οποίο με τη σειρά του μας βοηθά να βρούμε σφάλματα και να βελτιώσουμε τη χρηστικότητα και την πρακτικότητα της εφαρμογής, μέσω της εμπειρίας και της συνεχούς χρήσης της.

Το έργο αναπτύσσεται με δωρεάν άδεια GPL και ο κωδικός μπορεί να ληφθεί μέσω:

Μερικά από τα τρέχοντα χαρακτηριστικά του IDE είναι:

  • Τυπικές λειτουργίες οποιουδήποτε IDE για το χειρισμό αρχείων, καρτελών, αυτόματης εσοχής, Zoom in Editor κ.λπ.
  • Είναι γραμμένο σε Python και χρησιμοποιεί το PyQt, είναι cross-platform και δοκιμάστηκε σε συστήματα Linux, MAC OS X και Windows.
  • Επισήμανση σύνταξης για μια μεγάλη ποικιλία γλωσσών (αν και είναι Python-centric, παρέχει επισήμανση σύνταξης για άλλες γλώσσες για την ευκολία του προγραμματιστή).
  • Δυνατότητα χρήσης κονσόλας Python από το ίδιο IDE.
  • Επιτρέπει τη διαχείριση έργων στο IDE, αναγνωρίζοντάς τα ως έργα Python και μέσω του IDE τη δημιουργία νέων αρχείων και φακέλων, τη διαγραφή υπαρχόντων αρχείων, την αυτόματη δημιουργία αρχείων "__init__" με τις πληροφορίες μέσα σε αυτήν την ενότητα κ.λπ.
  • Επιτρέπει την απόκρυψη και μετεγκατάσταση όλων των πλαισίων διεπαφής με έναν πολύ απλό τρόπο, επιτρέποντάς του να προσαρμοστεί στις προτιμήσεις του χρήστη.
  • Σας επιτρέπει να βλέπετε περισσότερους από έναν επεξεργαστές ταυτόχρονα κάθετα ή οριζόντια.
  • Επεκτάσιμο με την προσθήκη προσθηκών (τα οποία μπορούν να δημιουργηθούν χρησιμοποιώντας ένα πρόσθετο NINJA-IDE για απλότητα).
  • Διαχειρίζεται τις συνεδρίες IDE, για να θυμάται ποια αρχεία και έργα ήταν ανοιχτά όταν έκλεισε και τα ανακτά κατά το άνοιγμα μιας παρουσίας ξανά.
  • Υποστήριξη για αυτόματη συμπλήρωση (είναι μια συγκεκριμένη αυτόματη συμπλήρωση του αντικειμένου στο οποίο γίνεται πρόσβαση).
  • Αυτόματες ενημερώσεις.
  • Και πολλά άλλα χαρακτηριστικά!

Ποιος αναπτύσσει το NINJA-IDE;

Το NINJA-IDE άρχισε να αναπτύσσεται από τους Santiago Moreno και Diego Sarmentero, και μέσα σε 2 εβδομάδες από την έναρξη του έργου το χρησιμοποιούσε ήδη για να το αναπτύξει. Χάρη στα άτομα από τη λίστα PyAr, τα ιστολόγια κ.λπ. Σε πολύ σύντομο χρονικό διάστημα, η διάδοση του έργου σήμαινε ότι θα μπορούσαμε να βασιστούμε στην αναφορά σφαλμάτων από χρήστες, προτάσεις στη λίστα αλληλογραφίας NINJA και ακόμη και με συνεισφορές κώδικα από χρήστες και συνεργάτες, εκ των οποίων ορισμένοι έγιναν μέρος του NINJA-IDE με το ρόλο των δεσμευτών, όπως συμβαίνει με: Martín Alderete, Juan Cabral και Matías Herranz.

Αυτή η ισχυρή συνεργασία και συμμετοχή που λαμβάνουμε από την κοινότητα επιτρέπει στο NINJA-IDE να αυξάνεται καθημερινά, βελτιώνοντας και εφαρμόζοντας χαρακτηριστικά που χρειάζονται οι χρήστες. Με τη σειρά τους, τα σχόλια που λαμβάνουμε από άτομα που χρησιμοποιούν το NINJA-IDE, μας παρακινούν να συνεχίσουμε να εργαζόμαστε σκληρά σε αυτό το εργαλείο, με το οποίο θέλουμε να απλοποιήσουμε περαιτέρω την ανάπτυξη εφαρμογών Python.

Πώς αποφασίσατε ποιες δυνατότητες θα προσθέσετε;

Στην αρχή του έργου, μια δομή θεωρήθηκε ότι θα της επέτρεπε να αναπτυχθεί και να ενσωματώσει λειτουργίες με την πάροδο του χρόνου, έχοντας ως οδηγό δύο βασικούς παράγοντες: τον επεξεργαστή κώδικα και τη διαχείριση έργου. Η εφαρμογή άρχισε να κατασκευάζεται φροντίζοντας αυτούς τους δύο βασικούς πυλώνες και επιτρέπει σε μια καλή βάση τους να διευκολύνει αργότερα την ενσωμάτωση νέων χαρακτηριστικών. Το έργο πέρασε από διαφορετικά στάδια, ξεκινώντας από έναν καλό πρόγραμμα επεξεργασίας με επισήμανση σύνταξης, συνεχίζοντας με τη διαχείριση των αρχείων έργου, μέχρι την προσθήκη λειτουργιών προσθήκης, αυτόματης ολοκλήρωσης, διαχείρισης συνεδρίας κ.λπ. Η Python θεωρείται συχνά ως γλώσσα που έχει μεγαλύτερες δυσκολίες στην παροχή πληροφοριών σχετικά με τον κώδικα που γράφεται καθώς δεν μπορεί να συμπεράνει από αντικείμενα κατά τον προγραμματισμό λόγω δυναμικής πληκτρολόγησης κ.λπ.

Σε ορισμένες περιπτώσεις, είναι αλήθεια ότι η ρητή πληκτρολόγηση μπορεί να εκτελέσει απλούστερες και πιο λεπτομερείς αναλύσεις, αλλά είναι επίσης αλήθεια ότι επί του παρόντος υπάρχουν πολλά εργαλεία και βιβλιοθήκες για την Python που βοηθούν στην εξάλειψη αυτού του ταμπού ότι δεν είναι δυνατόν να έχουμε IDE που παρέχει πραγματική βοήθεια στον κώδικα που δημιουργείται. Αυτός είναι ο λόγος για τον οποίο η NINJA-IDE επιδιώκει να επιτρέψει σε αυτούς τους προγραμματιστές που χρησιμοποιούν το Python να αναπτύξουν τα προγράμματά τους, να έχουν τις ίδιες διευκολύνσεις και βοηθήματα που λαμβάνονται κατά την ανάπτυξη σε Java ή .NET με μερικά από τα IDE που είναι πλέον γνωστά για αυτές τις γλώσσες. Λαμβάνοντας τα αποτελέσματα και τις εμπειρίες που αποκτήθηκαν από IDE για άλλες γλώσσες, προορίζεται να επιτύχει ένα IDE σχεδιασμένο για την Python που δημιουργεί την ίδια ικανοποίηση κατά τη χρήση του.

Για την πρόταση, την απόφαση και την ενσωμάτωση νέων χαρακτηριστικών στο NINJA-IDE, η λίστα αλληλογραφίας χρησιμοποιείται συνήθως για την επίτευξη συλλογικής απόφασης από τα μέλη που απαρτίζουν το έργο, περισσότερο από οτιδήποτε άλλο για να μάθουν ποιος θα είναι ο στόχος αυτής της δυνατότητας, σε ποιο στάδιο πρέπει να ενσωματωθεί και άλλες λεπτομέρειες. Πολλές φορές αυτά τα χαρακτηριστικά υποκινούνται από κάποια ενδιαφέρουσα λειτουργικότητα που εμφανίζεται σε ένα άλλο IDE, μια ιδέα από ένα από τα μέλη ή προτάσεις από την ομάδα χρηστών. Με αυτόν τον τρόπο, οποιοσδήποτε, τόσο ο χρήστης όσο και ο προγραμματιστής, μπορούν να προτείνουν ποια πράγματα θα ήθελαν να δουν να υλοποιούνται στο NINJA-IDE και με βάση την αρχιτεκτονική του έργου, μπορεί να οριστεί εάν είναι απαραίτητο να ενσωματωθεί ως μέρος του ίδιου του IDE ή ως πρόσθετο, επιτρέποντας ταυτόχρονα για να μάθουμε ποιες ιδέες επεξεργάζονται και ποιος τις ελέγχει για να διατηρήσει την ομάδα εργασίας συγχρονισμένη.

Τι μπορούμε να περιμένουμε από το NINJA-IDE;

Το NINJA-IDE γεννήθηκε για να καλύψει μια ανάγκη που φαινόταν σημαντική για εμάς και είδαμε επίσης ότι οι τρέχουσες προσεγγίσεις στα IDE δεν παρείχαν την απαραίτητη κάλυψη.

Η πρόθεσή μας κατά την έναρξη αυτού του έργου ήταν να δημιουργήσουμε ένα περιβάλλον επικεντρωμένο στην ανάπτυξη εφαρμογών Python, αλλά λαμβάνοντας πάντα υπόψη την ανάγκη να έχουμε μια κοινότητα χρηστών που θα μας επέτρεπε να βελτιώσουμε την εμπειρία χρήσης αυτού του εργαλείου και προς το παρόν μας κάνει πολύ χαρούμενους για να μπορέσουμε να βασιστούμε στην κοινότητα NINJA-IDE, καθώς χάρη στην εμπειρία και τη συλλογική γνώση των χρηστών είναι δυνατόν, με τις προτάσεις τους, η ανάπτυξη του έργου να προχωρήσει γρηγορότερα και να ληφθούν υπόψη πολλές περισσότερες λεπτομέρειες παρά από μια άλλη σχήμα μπορεί να παραβλεφθεί.

Μελλοντικά σχέδια

Αυτήν τη στιγμή με τη συνεχή ανάπτυξη που επιτυγχάνουμε, πλησιάζουμε στην κυκλοφορία της έκδοσης 1.0 του NINJA-IDE, η οποία θα λάβει το όνομα «Kunai». Σε αυτήν την πρώτη έκδοση, θα παρουσιαστούν πολλές από τις προαναφερθείσες λειτουργίες, οι οποίες θα επιτρέψουν στον προγραμματιστή να έχει ένα ισχυρό και πρακτικό IDE, προφανώς, όπως σε οποιοδήποτε έργο, θα προκύψουν βελτιώσεις και νέες δυνατότητες για εφαρμογή. Μερικά από τα πράγματα που προορίζονται να ενσωματωθούν στο NINJA-IDE σε μελλοντικές εκδόσεις είναι:

  • Γραφικός εντοπιστής σφαλμάτων
  • Για να μπορείτε να δείτε τη δυνατότητα πλοήγησης και τη σχέση των ενοτήτων και των τάξεων ενός έργου γραφικά (με βάση το BlueJ)
  • Εργαλεία εκδόσεων κώδικα υποστήριξης.
  • Να επιτρέπεται η συνεργατική επεξεργασία ενός εγγράφου.
  • Σχεδιαστής διασύνδεσης Qt και Gtk ενσωματωμένος στο IDE.
  • Υποστήριξη πλαισίων όπως:
  • Django
  • Google App Engine
  • Και αυτό μόλις ξεκινά!

Ποια εργαλεία χρησιμοποιεί το NINJA-IDE;

Το IDE αναπτύχθηκε χρησιμοποιώντας το πλαίσιο PyQt για όλους τους χειρισμούς της Γραφικής Διασύνδεσης και ορισμένων άλλων λειτουργιών, αν και προσπαθήθηκε να αφαιρέσει όσο το δυνατόν περισσότερες λειτουργίες για να επιτρέψει, αν είναι απαραίτητο αύριο, να μεταφέρει το NINJA-IDE σε άλλα πλαίσια όπως Gtk. Το Qt επέτρεψε να έχει μια σταθερή και εξαιρετικά διαμορφώσιμη διεπαφή, η οποία κατέστησε δυνατή την επέκταση κάθε απαραίτητου στοιχείου για την τροποποίηση της συμπεριφοράς του και την προσαρμογή του στις ανάγκες του IDE.

Όσον αφορά την επισήμανση σύνταξης, το NINJA-IDE χρησιμοποιεί το δικό του σύστημα επισήμανσης σύνταξης χρησιμοποιώντας λειτουργίες Qt και επιτρέπει σε αυτό το σύστημα επισήμανσης να επεκτείνεται εύκολα στο NINJA-IDE με τη δημιουργία ενός απλού αρχείου JSON που περιγράφει τη γλώσσα που θα ενσωματωθεί. Αυτή η μέθοδος παρέχει βελτιώσεις απόδοσης, αλλά για να καλύψει εκείνες τις γλώσσες που δεν αναγνωρίζονται μέσω αυτού του συστήματος, η χρήση του Pygments ενσωματώθηκε για την επισήμανση σύνταξης μιας μεγαλύτερης ποικιλίας γλωσσών. Αν και η πιθανότητα αντικατάστασης Pygments από το GNU Highlight για λόγους απόδοσης αυξάνεται.

Για την αυτόματη συμπλήρωση, επανακατασκευή και όσους αναφέρονται σε συμπεράσματα κώδικα, χρησιμοποιείται το σχοινί, το οποίο είναι μια εξαιρετική βιβλιοθήκη, πολύ πλήρης για αυτόν τον τύπο κατάστασης. Το σχοινί είναι ένα εργαλείο που επιτρέπει να φέρει σε ένα IDE τα χαρακτηριστικά Python των IDE των δακτυλογραφημένων γλωσσών. Προς το παρόν εργαζόμαστε επίσης για την ενσωμάτωση του Code Checking χρησιμοποιώντας τη βιβλιοθήκη Pep8, ακριβώς για την παροχή πληροφοριών σχετικά με την κατάσταση του κώδικα σε σχέση με τα πρότυπα Pep8.

Επεκτασιμότητα NINJA-IDE

Το NINJA-IDE διαθέτει ένα αρκετά πλήρες σύστημα προσθηκών που επιτρέπει την ενσωμάτωση αυτών των προσθηκών ως εγγενές στοιχείο του IDE. Η γραφή προσθηκών είναι αρκετά απλή και μπορείτε ακόμη και να χρησιμοποιήσετε μια προσθήκη NINJA-IDE για να γράψετε τις προσθήκες NINJA-IDE (αναδρομικές;). Αυτό το πρόσθετο «για να γράψετε πρόσθετα» σάς επιτρέπει να αποφασίσετε με ποια μέρη του IDE πρόκειται να συσχετιστεί το νέο πρόσθετο και δημιουργεί αυτόματα την απαραίτητη δομή του έργου, μαζί με τον περιγραφέα προσθήκης έτσι ώστε το NINJA-IDE να μπορεί να το ερμηνεύσει και την βασική κατηγορία Αυτό το πρόσθετο με τις μεθόδους που θα πρέπει να επαναληφθούν, με τη σειρά του, όταν τελειώσουμε τη σύνταξη του πρόσθετου, μας επιτρέπει να το συσκευάσουμε και μετά να το διανείμουμε. Προς το παρόν υπάρχουν 3 πρόσθετα για το NINJA-IDE διαθέσιμα:

  • Παστέλ: που σας επιτρέπει να στείλετε κώδικα στο pastebin.com και επιστρέφει τον προκύπτοντα σύνδεσμο για να μοιραστείτε αυτόν τον κώδικα.
  • Πρόγραμμα προσθήκης: ο υπεύθυνος για τη δημιουργία έργων Plugins για το NINJA-IDE όπως αναφέραμε.
  • ClassCompleter: ολοκληρώνει αυτόματα κάποιες δομές κατά τη σύνταξη κώδικα Python, όπως: δημιουργήστε αυτόματα τον κατασκευαστή καλώντας τις γονικές τάξεις που είναι απαραίτητες κ.λπ.

Για να συμβουλευτείτε περισσότερες πληροφορίες σχετικά με τον τρόπο ανάπτυξης μιας προσθήκης για το NINJA-IDE, μπορείτε να επισκεφθείτε το ακόλουθο Wiki: http://ninja-ide.org/plugins/

επαφή

Εκπλήρωση

Το Ninja IDE είναι πλέον διαθέσιμο σε πακέτα DEB και RPM. Ο υπόλοιπος κόσμος, φυσικά, μπορεί πάντα να κατεβάσει τον πηγαίο κώδικα και να τον μεταγλωττίσει. 🙂

Ευχαριστώ Diego Sarmentero για την κοινή χρήση αυτού του εξαιρετικού IDE με όλους μας!

9 σχόλια, αφήστε τα δικά σας

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Πατρίσιο Αργουέλο dijo

    Μου αρέσει πολύ το PyCharm καλύτερα. Ωστόσο, συγχαρητήρια και καλή δουλειά. @patoargu

  2.   Ρικάρντο 3284 dijo

    Χαιρετισμούς στην κοινότητα Είμαι οπαδός του προγραμματισμού στο python, το IDE είναι πολύ καλό, αλλά στον υπολογιστή μου έχω το Ubuntu 10.10 και δεν μπορώ να δουλέψω με τις δυνατότητες που βλέπετε στο σχήμα 4, την εικόνα όπου εμφανίζονται οι εντολές ή τάξεις ή μέθοδοι Από ένα αντικείμενο python, αυτή η δυνατότητα είναι πολύ σημαντική τουλάχιστον για μένα, επειδή δεν έχουν μαθευτεί όλες οι εντολές και ταυτόχρονα θα μας επέτρεπε να μάθουμε περισσότερα στους προγραμματιστές, αλλά αυτή η λειτουργικότητα δεν βγαίνει στο Ubuntu μου.

    Ελπίζω ότι κάποιος από την κοινότητα μπορεί να με βοηθήσει, το email μου είναι riccardo3284@gmail.com

  3.   Μαρκοσίπε dijo

    Το διάβασα λάθος, η υποστήριξη για το git δεν έχει ακόμη εφαρμοστεί, αλλά είναι ήδη ως πρόσθετο που σκοπεύουν να εφαρμόσουν 🙂

  4.   alex dijo

    ^^, ξεκίνησα ως μέλος της ομάδας ανάπτυξης :), αλλά στο τέλος δεν είχα χρόνο ή αρκετή γνώση και έπρεπε να τα παρατήσω :(. Αλλά είμαι πολύ χαρούμενος που στο τέλος NInja IDE προχώρησε και με τόσο καλά αποτελέσματα.

  5.   Μαρκοσίπε dijo

    Το δοκιμάζω ήδη 😀
    ελπίζω ότι αυτό είναι καλό, αλλά αφού χρησιμοποιώ python και qt μου αρέσει το xD
    Υποθέτω ότι σκουπίζει το eric, και κοίταξα και έχει υποστήριξη για git 😀 Νομίζω ότι θα τα πάμε καλά

  6.   Daniel dijo

    Νομίζω ότι είναι εξαιρετικό, το μόνο αρνητικό είναι ότι, επειδή μιλούν Ισπανικά, δημιουργούν διεπαφές στα Αγγλικά, πρέπει να τα κάνουν στα Ισπανικά, τα IDES στα Αγγλικά, υπάρχουν πολλοί λόγοι να μην κάνουμε κάτι που όλοι μας που δεν χειρίζονται Αγγλικά καταλαβαίνουν, διαφορετικά δεν έχω αλλά συγχαίρω τους.

    αφορά

  7.   Ευγενίου Ταμπούρ dijo

    Μου αρέσει, αλλά προς το παρόν είναι κάτι πράσινο, το έχω δοκιμάσει και με αφήνει αναισθητοποιημένο και επανεκκινεί συνεχώς τον εξερευνητή παραθύρων και περισσότερα λάθη, αλλά μόλις το διορθώσουν και είναι κάτι πιο σταθερό, αναμφίβολα θα είναι πολύ επιτυχημένο.

  8.   Ντάνιελ dcs dijo

    Εξαιρετική δουλειά "φτιαγμένη στην" Αργεντινή !!!! Ειλικρινά συγχαρητήρια σε ολόκληρη την ομάδα ανάπτυξης !!!!

  9.   Νέιερ dijo

    Χαιρετίσματα σε όλους, πολύ καλή δουλειά, το IDE είναι αρκετά άνετο στη χρήση, θα ήταν πολύ ενδιαφέρον να συμπεριλάβετε έναν συντάκτη γραφικών διεπαφών χρήστη, θα ήταν επίσης συναρπαστικό εάν σας επιτρέπει να δημιουργήσετε την τεκμηρίωση του έργου (Ίσως με το στυλ του Javadocs).

    Συνέχισε.