Ninja IDE: IDE zaprojektowane dla Pythona

Wreszcie ktoś raczył napisać IDE, jak ludzie dla Pythona z których każdy zwykły obywatel może bez problemów korzystać w Linuksie. Tak, istnieje kilka IDE do programowania w różnych językach, w tym Python, ale ten ma kilka sztuczek w rękawie...

Jak powstało NINJA-IDE?

NINJA-IDE Zrodził się z niektórych e-maili wysłanych do PyAr, którego temat jest często słyszany: „Jakiego dobrego środowiska IDE dla Pythona mogę używać?”, „Dlaczego nie istnieje IDE dla Pythona, które ma tę lub inną funkcję?”, a odpowiedzi na te e-maile zawsze kończą się mniej więcej tym samym, ponieważ obecne IDE, które uważamy za dostępne, w większości nie były zaprojektowane dla Pythona, ale oferowały opcję włączenia go przez wtyczkę iw ten sposób Kiedyś używał bardzo ciężkich IDE zaprojektowanych do innych celów, gdzie wsparcie dla Pythona było w rzeczywistości minimalne, a te, które były dla Pythona, kończyły się bardzo zorientowaniem na konkretny Framework lub nie były wolne. Tak więc zmotywowani wyzwaniem, jakie stanowiło, i ciekawymi pomysłami, które pojawiły się na liście mailingowej, zdecydowaliśmy się podejść do tego projektu skupiając się na „Jakie funkcje powinno mieć dobre IDE dla programisty Pythona”.

Mając to na uwadze, rozpoczęliśmy prace nad NINJA-IDE, którego nazwa jest pochodną rekurencyjnego akronimu: „Ninja to nie tylko kolejny IDE”. IDE ma zaledwie dwa miesiące rozwoju, ale dzięki chęci i godzinom programowania, które mu poświęcamy, możemy teraz mieć IDE z wieloma zaimplementowanymi funkcjami, do tego stopnia, że ​​będziemy mogli kontynuować rozwój NINJA- IDE przy użyciu NINJA-IDE, co z kolei pomaga nam znajdować błędy i poprawiać użyteczność i praktyczność aplikacji, poprzez doświadczenie i ciągłe jej używanie.

Projekt jest rozwijany na wolnej licencji GPL, a kod można uzyskać poprzez:

Niektóre z obecnych funkcji IDE to:

  • Typowe funkcje dowolnego IDE do obsługi plików, zakładek, automatycznego wcięcia, powiększania edytora itp.
  • Napisany w Pythonie i wykorzystujący PyQt, jest wieloplatformowy i został przetestowany na systemach Linux, MAC OS X i Windows.
  • Podświetlanie składni dla wielu różnych języków (chociaż jest ukierunkowane na Python, zapewnia podświetlanie składni dla innych języków dla wygody programisty).
  • Możliwość korzystania z konsoli Pythona z tego samego IDE.
  • Umożliwia zarządzanie projektami w IDE, rozpoznawanie ich jako projektów Python i poprzez IDE tworzenie nowych plików i folderów, usuwanie istniejących plików, automatyczne tworzenie plików „__init__” z informacjami zawartymi w tym module itp.
  • Pozwala w bardzo prosty sposób ukryć i przenieść wszystkie panele interfejsu, dostosowując go do gustów użytkownika.
  • Wyświetlaj więcej niż jednego edytora jednocześnie w pionie lub poziomie.
  • Rozszerzalny poprzez dodanie wtyczek (które można tworzyć za pomocą wtyczki NINJA-IDE dla uproszczenia).
  • Zarządza sesjami IDE, aby zapamiętać, które pliki i projekty były otwarte, kiedy zostało zamknięte, i odzyskuje je, gdy instancja zostanie ponownie otwarta.
  • Obsługa autouzupełniania (czyli określonego autouzupełniania obiektu, do którego uzyskiwany jest dostęp).
  • Automatyczne aktualizacje.
  • I wiele innych funkcji!

Kto opracowuje NINJA-IDE?

NINJA-IDE zostało rozpoczęte przez Santiago Moreno i Diego Sarmentero iw ciągu 2 tygodni od rozpoczęcia projektu było już używane do jego rozwijania. Podziękowania dla osób z listy PyAr, blogów itp. W bardzo krótkim czasie upowszechnienie projektu oznaczało, że mogliśmy liczyć na raporty o błędach użytkowników, sugestie na liście mailingowej NINJA, a nawet na wkłady użytkowników i współpracowników w postaci kodu, z których część stała się częścią NINJA-IDE z rola zaangażowanych, jak w przypadku: Martín Alderete, Juan Cabral i Matías Herranz.

Ta silna współpraca i uczestnictwo, które otrzymujemy od społeczności, pozwala NINJA-IDE rozwijać się każdego dnia, ulepszając i wdrażając funkcje potrzebne użytkownikom. Z kolei komentarze, które otrzymujemy od osób aktualnie korzystających z NINJA-IDE, motywują nas do dalszej ciężkiej pracy nad tym narzędziem, za pomocą którego chcemy jeszcze bardziej uprościć tworzenie aplikacji w Pythonie.

Jak zdecydowałeś, które funkcje dodać?

Na początku projektu pomyślano o strukturze, która pozwoli mu rozwijać się i włączać funkcjonalności w czasie, kierując się dwoma głównymi czynnikami: edytorem kodu i zarządzaniem projektami. Aplikacja zaczęła być budowana z dbałością o te dwa podstawowe filary i pozwalająca na ich dobrą podstawę, aby później ułatwić wprowadzanie nowych funkcji. Projekt przeszedł przez różne etapy, zaczynając od dobrego edytora z podświetlaniem składni, poprzez zarządzanie plikami projektu, aż do dodania funkcji wtyczek, automatycznego uzupełniania, zarządzania sesjami itp. Python jest często postrzegany jako język, który ma większe trudności w dostarczaniu informacji o pisanym kodzie, ponieważ nie może wnioskować na podstawie obiektów w czasie programowania z powodu dynamicznego pisania itp.

W niektórych przypadkach prawdą jest, że posiadanie jawnego pisania może prowadzić do prostszych i bardziej szczegółowych analiz, ale prawdą jest również, że obecnie istnieje wiele narzędzi i bibliotek dla Pythona, które pomagają wyeliminować to tabu, że nie jest możliwe posiadanie IDE, które zapewnia rzeczywistą pomoc w zakresie generowanego kodu. Dlatego NINJA-IDE stara się umożliwić tym programistom, którzy używają Pythona, rozwijanie swoich programów, mieć te same udogodnienia i pomoce, które są uzyskiwane podczas programowania w Javie lub .NET z niektórymi obecnie najlepiej znanymi IDE dla tych języków. Biorąc wyniki i doświadczenia uzyskane z IDE dla innych języków, ma na celu osiągnięcie IDE zaprojektowanego dla Pythona, które generuje taką samą satysfakcję podczas korzystania z niego.

W przypadku sugestii, decyzji i włączenia nowych funkcji do NINJA-IDE, lista mailingowa jest zwykle używana do podjęcia zbiorowej decyzji członków tworzących projekt, a przede wszystkim do wiedzy, jaki będzie cel tej funkcji, w jaki etap powinien zostać włączony i inne szczegóły. Często te cechy są motywowane interesującymi funkcjami widocznymi w innym IDE, pomysłem jednego z członków lub sugestiami grupy użytkowników. W ten sposób każdy, zarówno użytkownik, jak i programista, może zaproponować, co chciałby zobaczyć zaimplementowane w NINJA-IDE i na podstawie architektury projektu można to zdefiniować, jeśli konieczne jest włączenie go jako części samego IDE lub jako wtyczka, pozwalająca jednocześnie wiedzieć, nad którymi pomysłami się pracuje i kto przejmuje nad nimi kontrolę, aby zapewnić synchronizację grupy roboczej.

Czego możemy się spodziewać po NINJA-IDE?

NINJA-IDE narodziło się, aby zaspokoić potrzeby, które wydawały się nam ważne, a także zauważyliśmy, że obecne podejście do IDE nie zapewnia niezbędnego pokrycia.

Naszym zamiarem przy rozpoczynaniu tego projektu było stworzenie środowiska nastawionego na rozwój aplikacji w języku Python, ale zawsze z uwzględnieniem potrzeby posiadania społeczności użytkowników, która pozwoliłaby nam ulepszyć doświadczenie korzystania z tego narzędzia, a obecnie czyni nas bardzo cieszę się, że mogę liczyć na społeczność NINJA-IDE, ponieważ dzięki doświadczeniu i zbiorowej wiedzy użytkowników możliwe jest, że dzięki ich sugestiom rozwój projektu będzie postępował szybciej i uwzględnianych jest o wiele więcej szczegółów niż z innego kształtu można przeoczyć.

Przyszłe plany

Obecnie dzięki ciągłemu rozwojowi, który osiągamy, zbliżamy się do wydania wersji 1.0 NINJA-IDE, która otrzyma nazwę „Kunai”. W tej pierwszej wersji będzie obecnych kilka z wcześniej wymienionych funkcji, które pozwolą programistom mieć solidne i praktyczne IDE, oczywiście, jak w każdym projekcie, pojawią się ulepszenia i nowe funkcje do zaimplementowania. Oto niektóre z rzeczy, które mają zostać włączone do NINJA-IDE w przyszłych wersjach:

  • Graficzny debugger
  • Aby móc graficznie zobaczyć nawigację i relacje modułów i klas projektu (w oparciu o BlueJ)
  • Obsługa narzędzi do wersjonowania kodu.
  • Zezwalaj na wspólną edycję dokumentu.
  • Projektant interfejsów Qt i Gtk zintegrowany z IDE.
  • Wsparcie dla frameworków takich jak:
  • Django
  • Google App Engine
  • A to dopiero początek!

Z jakich narzędzi korzysta NINJA-IDE?

Środowisko IDE zostało opracowane przy użyciu frameworka PyQt dla całej obsługi interfejsu graficznego i niektórych innych funkcji, chociaż próbowano wyodrębnić jak najwięcej niektórych funkcji, aby umożliwić, w razie potrzeby jutro, przeniesienie NINJA-IDE do innych struktur, takich jak Gtk. Qt umożliwiło uzyskanie solidnego i wysoce konfigurowalnego interfejsu, co umożliwiło rozszerzenie każdego niezbędnego elementu w celu zmodyfikowania jego zachowania i dostosowania go do potrzeb IDE.

Jeśli chodzi o podświetlanie składni, NINJA-IDE korzysta z własnego systemu podświetlania składni wykorzystującego funkcje Qt i umożliwia łatwe rozszerzanie tego systemu podświetlania w NINJA-IDE poprzez utworzenie prostego pliku JSON, który opisuje język, który ma zostać włączony. Ta metoda zapewnia poprawę wydajności, ale aby objąć te języki, które nie są rozpoznawane przez ten system, włączono użycie Pygments do podświetlania składni większej różnorodności języków. Chociaż możliwość zastąpienia Pigmentów przez GNU Highlight ze względu na wydajność jest obecnie podnoszona.

Do automatycznego uzupełniania, refaktoryzacji i tych, które odwołują się do wnioskowania w kodzie, używana jest Rope, która jest doskonałą biblioteką, bardzo kompletną w tego typu sytuacjach. Rope to narzędzie, które pozwala wprowadzić do środowiska IDE dla Pythona charakterystykę IDE języków typowanych. Obecnie pracujemy również nad włączeniem Code Checking z wykorzystaniem biblioteki Pep8, właśnie po to, aby dostarczyć informacji o statusie kodu w stosunku do standardów Pep8.

Rozszerzalność NINJA-IDE

NINJA-IDE ma dość kompletny system wtyczek, który umożliwia integrację tych wtyczek jako natywnego elementu IDE. Pisanie wtyczek jest dość proste i możesz nawet użyć wtyczki NINJA-IDE do pisania wtyczek NINJA-IDE (rekurencyjne?). Ta wtyczka «do pisania wtyczek» pozwala zdecydować, z którymi częściami IDE ma być powiązana nowa wtyczka i automatycznie tworzy niezbędną strukturę projektu, wraz z deskryptorem wtyczki, aby NINJA-IDE mogło ją zinterpretować i klasę bazową tej wtyczki z metodami, które będą musiały zostać ponownie zaimplementowane, z kolei po zakończeniu pisania wtyczki pozwala nam ją spakować, a następnie rozprowadzić. Obecnie dostępne są 3 wtyczki do NINJA-IDE:

  • Pastebina: która umożliwia wysłanie kodu do pastebin.com i zwraca wynikowy link do udostępnienia tego kodu.
  • Projekt wtyczki: osoba odpowiedzialna za tworzenie projektów wtyczek dla NINJA-IDE, jak wspomnieliśmy.
  • Wypełniacz zajęć: automatycznie uzupełnia niektóre struktury podczas pisania kodu w Pythonie, takie jak: automatyczne tworzenie konstruktora przez wywołanie potrzebnych klas nadrzędnych itp.

Aby uzyskać więcej informacji na temat tworzenia wtyczki dla NINJA-IDE, odwiedź następującą Wiki: http://ninja-ide.org/plugins/

Kontakt

Rozładowanie

Ninja IDE jest teraz dostępne w pakietach DEB i RPM. Reszta świata oczywiście zawsze może pobrać kod źródłowy i skompilować go. 🙂

Dzięki Diego Sarmentero za udostępnienie nam wszystkim tego doskonałego środowiska IDE!

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Patryk Arguello powiedział

    Naprawdę bardziej lubię PyCharm. Gratuluję jednak dobrej pracy i pozdrawiam. @patoargu

  2.   riccardo3284 powiedział

    Pozdrowienia dla społeczności Jestem fanem programowania w Pythonie, IDE jest bardzo dobre, ale na moim komputerze mam Ubuntu 10.10 i nie mogę pracować z funkcjami, które widzisz na rysunku 4, obraz, na którym są polecenia, klasy lub metody pokazano Z obiektu Pythona ta funkcja jest bardzo ważna przynajmniej dla mnie, ponieważ nie wszystkie polecenia są wyuczone, a jednocześnie pozwoliłaby nam dowiedzieć się więcej programistom, ale ta funkcjonalność nie jest dostępna w moim Ubuntu.

    Mam nadzieję, że ktoś ze społeczności może mi pomóc, mój e-mail to riccardo3284@gmail.com

  3.   marcoshipe powiedział

    Źle to odczytałem, obsługa git nie jest jeszcze zaimplementowana, ale to już wtyczka, którą planujesz zaimplementować 🙂

  4.   Alex powiedział

    ^^ zacząłem jako członek zespołu deweloperskiego :), ale ostatecznie nie miałem czasu ani wiedzy i musiałem z tego zrezygnować :(. Ale bardzo się cieszę, że ostatecznie NInja IDE poszło do przodu iz tak dobrymi wynikami.

  5.   marcoshipe powiedział

    Ja już tego próbuję 😀
    miejmy nadzieję, że to dobre, ale ponieważ używam Pythona i QT, lubię xD
    Chyba wyciera Erica, a ja spojrzałem i ma wsparcie dla gita 😀 Chyba się dogadamy

  6.   Daniel powiedział

    Myślę, że to świetnie, jedyną negatywną rzeczą jest to, że będąc hiszpańskojęzycznymi, tworzą interfejsy w języku angielskim, powinni zrobić je w języku hiszpańskim, IDES w języku angielskim jest wiele powodów, dla których nie zrobimy czegoś, co my wszyscy, którzy nie znają angielskiego rozumiem, inaczej nie mam tego, ale im gratuluję.

    pozdrowienia

  7.   Eugeniusza Tambura powiedział

    Podoba mi się, ale w tej chwili jest coś zielonego, przetestowałem i wprawia mnie w osłupienie i ciągle restartuje Eksploratora Windowsa i więcej błędów, ale jak tylko to naprawią i jest coś stabilniejszego to na pewno odnieść duży sukces.

  8.   Daniel DCS powiedział

    Doskonała robota "wykonana w" Argentynie !!!! Serdeczne gratulacje dla całego zespołu programistów !!!!

  9.   neyer powiedział

    Pozdrawiam wszystkich, bardzo dobra robota, IDE jest całkiem wygodne w obsłudze, bardzo ciekawie byłoby dołączyć edytor graficznych interfejsów użytkownika, byłoby też fascynujące, gdyby pozwalał na generowanie dokumentacji projektu (może w stylu Javadoców).

    Tak trzymaj.