Ninja IDE: Pythoni jaoks loodud IDE

Lõpuks otsustas keegi kirjutada IDE nagu Pythoni inimesed mida iga tavakodanik saab Linuxis probleemideta kasutada. Jah, erinevates keeltes programmeerimiseks on mitu IDE-d, sealhulgas Python, kuid sellel on mõni väike nipp varrukas...

Kuidas NINJA-IDE algas?

NINJA-IDE Selle sünniks olid mõned PyArile saadetud meilid, mille teemat kuuleb tavaliselt üsna sageli: "Millist head Pythoni IDE-d saan kasutada?", "Miks pole Pythoni jaoks IDE-d, millel oleks see või teine ​​funktsioon?", ja vastused nendele e-kirjadele on alati enam-vähem ühesugused, kuna praegused IDE-d, mis meie arvates on enamasti saadaval, ei olnud mõeldud Pythoni jaoks, kuid pakkusid võimalust lisada see pistikprogrammi kaudu ja sellesse viis Varem kasutati väga raskeid muudeks eesmärkideks loodud IDE-sid, kus Pythoni tugi oli tegelikult minimaalne ja Pythoni jaoks mõeldud tooted olid lõpuks orienteeritud konkreetsele raamistikule või ei olnud tasuta. Niisiis, ajendatuna selle väljakutsest ja postitusloendis tõstatatud huvitavatest ideedest, otsustasime läheneda sellele projektile, keskendudes "Millised omadused peaksid heal IDE-l olema Pythoni programmeerijal".

Seda silmas pidades alustasime NINJA-IDE väljatöötamist, mille nimi on tuletis rekursiivsest lühendist: "Ninja pole lihtsalt üks teine ​​IDE". IDE-d on vaevalt rohkem kui kaks kuud arendatud, kuid tänu soovile ja tundidele programmeerimisele, mille me sellele pühendame, võime juba rakendada paljude funktsioonidega IDE-d, kuni suudame jätkata tarkvara arendamist. NINJA-IDE, kasutades NINJA-IDE-d, mis omakorda aitab meil kogemuste ja rakenduse pideva kasutamise kaudu vigu leida ning rakenduse kasutatavust ja praktilisust parandada.

Projekt on välja töötatud tasuta GPL-litsentsi alusel ja koodi saab:

Mõned IDE praegused funktsioonid on:

  • Mis tahes IDE tüüpilised funktsioonid failide, vahelehtede, automaatse taande, redigeerija suumimise jms töötlemiseks
  • Kuna see on kirjutatud Pythonis ja kasutades PyQt, on see platvormidevaheline ning seda testiti Linuxi, MAC OS X ja Windowsi süsteemides.
  • Süntaksi esiletõstmine paljude erinevate keelte jaoks (kuigi see on keskendunud Pythonile, pakub see programmeerija mugavuse huvides ka teiste keelte süntaksi esiletõstmist).
  • Võimalus kasutada Pythoni konsooli samast IDE-st.
  • See võimaldab hallata projekte IDE-s, tuvastada need Pythoni projektidena ja luua IDE kaudu uusi faile ja kaustu, kustutada olemasolevaid faile, luua automaatselt mooduliga "__init__" faile koos selles moodulis sisalduva teabega jne.
  • See võimaldab kõiki liidese paneele varjata ja ümber paigutada väga lihtsal viisil, võimaldades seda kasutaja maitse järgi kohandada.
  • Vaadake korraga rohkem kui ühte redaktorit vertikaalselt või horisontaalselt.
  • Laiendatav pistikprogrammide lisamise kaudu (mille saab lihtsuse huvides luua NINJA-IDE pistikprogrammi abil).
  • See haldab IDE-seansse, et meelde jätta, millised failid ja projektid olid sulgemise ajal avatud, ning taastab need, kui ta selle uuesti eksemplari avas.
  • Automaatse täitmise tugi (on konkreetse automaatse lõpetamise objekt, millele juurdepääsetakse).
  • Automaatsed värskendused.
  • Ja palju muid funktsioone!

Kes arendab NINJA-IDE-d?

NINJA-IDE-d hakkasid arendama Santiago Moreno ja Diego Sarmentero ning 2 nädalat pärast projekti alustamist kasutati seda juba selle arendamiseks. Tänu PyAri loendi, ajaveebide jms inimestele Väga lühikese aja jooksul tähendas projekti levitamine, et võisime loota kasutajate vigade aruandele, NINJA meililistis olevatele soovitustele ja isegi kasutajate ja koostööpartnerite koodipanustele, millest mõned said NINJA-IDE-sse koos nagu Martín Alderete, Juan Cabral ja Matías Herranz.

See kogukonnalt saadav tugev koostöö ja osalus võimaldab NINJA-IDE-l iga päev kasvada, parandades ja rakendades kasutajate jaoks vajalikke funktsioone. Omakorda NINJA-IDE-d kasutavatelt inimestelt saadud kommentaarid motiveerivad meid selle tööriistaga edasi töötama, millega tahame Pythoni rakenduste arendamist veelgi lihtsustada.

Kuidas otsustasite, milliseid funktsioone lisada?

Projekti alguses arvati struktuuri, mis võimaldaks tal aja jooksul kasvada ja funktsionaalsusi ühendada, võttes aluseks kaks peamist tegurit: koodiredaktor ja projektijuhtimine. Rakendust hakati üles ehitama, hoolitsedes nende kahe põhisamba eest ja võimaldades neil hea baasi, et hõlbustada uute funktsioonide lisamist hiljem. Projekt läbis erinevaid etappe, alustades heast redaktorist koos süntaksi esiletõstmisega, jätkates projektifailide haldamisega, kuni lisati pistikprogrammi funktsioonid, automaatne täitmine, seansi haldamine jne. Pythoni nähakse sageli keelena, millel on kirjutatava koodi kohta teabe esitamisel suuremaid raskusi, kuna see ei saa dünaamilise tippimise tõttu jms programmeerimise ajal objektidest järeldada.

Mõnel juhul on tõsi, et selgesõnalise sisestamise abil saab teha lihtsamaid ja üksikasjalikumaid analüüse, kuid tõsi on ka see, et praegu on Pythoni jaoks palju tööriistu ja teeke, mis aitavad selle tabu kõrvaldada, et IDE-d pole võimalik mis pakub reaalset abi loodava koodi kohta. Sellepärast püüab NINJA-IDE lubada Pythoni kasutavatel programmeerijatel oma programme arendada, neil on samad võimalused ja abivahendid, mis on saadud Java- või .NET-i arendamisel koos mõne IDE-ga, mis on nende keelte jaoks praegu kõige paremini tuntud. Võttes arvesse teiste keelte IDE-delt saadud tulemusi ja kogemusi, on eesmärk saavutada Pythoni jaoks loodud IDE, mis tekitab selle kasutamisel sama rahulolu.

NINJA-IDE-s uute funktsioonide soovitamiseks, otsustamiseks ja lisamiseks kasutatakse tavaliselt postiloendit projekti moodustavate liikmete kollektiivse otsuse saavutamiseks, mitte ainult selleks, et teada saada, mis on selle funktsiooni eesmärk. milline etapp tuleks lisada ja muud üksikasjad. Mitu korda motiveerib neid omadusi mõni muu IDE-s nähtav huvitav funktsionaalsus, ühe liikme idee või kasutajagrupi ettepanekud. Nii saavad kõik, nii kasutajad kui ka arendajad, pakkuda välja, milliseid asju nad sooviksid NINJA-IDE-s rakendada ja projekti arhitektuuri põhjal saab seda määratleda, kui see on vajalik integreerida IDE enda osaks või pistikprogramm, mis võimaldab samal ajal teada, milliste ideedega töötatakse ja kes võtab nende üle kontrolli, et hoida töörühma sünkroonis.

Mida võime NINJA-IDE-lt oodata?

NINJA-IDE sündis meie jaoks olulisena tundunud vajaduse katmiseks ja nägime ka, et praegused lähenemised IDE-dele ei pakkunud vajalikku katvust.

Selle projekti käivitamisel oli meie eesmärk luua keskkond, mis on keskendunud Pythoni rakenduste arendamisele, kuid võttes alati arvesse vajadust omada kasutajate kogukonda, mis võimaldaks meil selle tööriista kasutamise kogemust paremaks muuta ja mis muudab meid praegu väga hea meel, et saan loota NINJA-IDE kogukonnale, kuna tänu kasutajate kogemustele ja kollektiivsetele teadmistele on võimalik, et nende ettepanekutega saab projekti arendamine kiiremini edasi liikuda ja arvesse võetakse palju rohkem üksikasju kui teisest kujust võiks mööda vaadata.

Tulevikuplaanid

Praegu oleme saavutatava pideva arenguga lähedal NINJA-IDE versiooni 1.0 väljaandmisele, mis saab nime Kunai. Selles esimeses versioonis on saadaval mitu eelnevalt mainitud funktsiooni, mis võimaldavad arendajal saada tugeva ja praktilise IDE, ilmselgelt nagu igas projektis, ilmnevad ka täiustused ja uued funktsioonid, mida rakendada. Mõned asjad, mida kavatsetakse tulevastes versioonides lisada NINJA-IDE-sse, on:

  • Graafiline silur
  • Projekti moodulite ja klasside navigeeritavuse ning seose graafiliseks nägemiseks (BlueJ põhjal)
  • Toetage koodi versioonimise tööriistu.
  • Luba dokumendi redigeerimine koostöös.
  • Qt ja Gtk liidese kujundaja on integreeritud IDE-sse.
  • Raamid toetavad näiteks:
  • Django
  • Google'i rakenduste mootor
  • Ja see alles algab!

Milliseid tööriistu NINJA-IDE kasutab?

IDE on välja töötatud PyQt raamistiku abil kogu graafilise liidese ja mõningate muude funktsioonide käsitsemiseks, ehkki seda püüti võimalikult palju abstraktselt eraldada, et vajadusel homme võimaldada NINJA-IDE teisele raamistikule, näiteks Gtk. Qt võimaldas tugeva ja väga konfigureeritava liidese olemasolu, mis võimaldas laiendada kõiki vajalikke elemente, et muuta nende käitumist ja kohandada neid IDE vajadustega.

Süntaksi esiletõstmise osas kasutab NINJA-IDE oma süntakside esiletõstmise süsteemi, kasutades Qt funktsioone ja võimaldades seda esiletõstmissüsteemi hõlpsasti laiendada NINJA-IDE-s, luues lihtsa JSON-faili, mis kirjeldab lisatavat keelt. See meetod parandab jõudlust, kuid nende keelte katmiseks, mida selle süsteemi kaudu ei tunta, lisati Pygmentide kasutamine suurema hulga keelte süntaksi esiletõstmiseks. Ehkki praegu tõstatatakse võimalust, et jõudluse kaalutlustel asendatakse Pygments GNU Highlightiga.

Automaatse lõpuleviimise, refaktreerimise ja koodijäreldusele viitamiseks kasutatakse köit, mis on suurepärane raamatukogu, mis on seda tüüpi olukordade jaoks väga täielik. Köis on tööriist, mis võimaldab IDE-le tuua trükitud keelte IDE-de Pythoni omadusi. Praegu töötame ka Pep8 teegi abil koodikontrolli lisamise nimel, et pakkuda teavet koodi staatuse kohta seoses Pep8 standarditega.

NINJA-IDE laiendatavus

NINJA-IDE-l on üsna täielik pistikprogrammisüsteem, mis võimaldab integreerida need pistikprogrammid IDE natiivse elemendina. Pistikprogrammide kirjutamine on üsna lihtne ja NINJA-IDE pistikprogrammide kirjutamiseks võite kasutada isegi NINJA-IDE pistikprogrammi (rekursiivne?). See pistikprogramm "pistikprogrammide kirjutamiseks" võimaldab teil otsustada, milliste IDE osadega uus pistikprogramm seostatakse ja loob automaatselt vajaliku projekti struktuuri koos pistikprogrammi kirjeldajaga, et NINJA-IDE saaks seda ja põhiklassi tõlgendada Selle pistikprogrammi meetoditega, mida tuleb uuesti rakendada, võimaldab see omakorda, kui pistikprogrammi kirjutamise lõpetame, selle pakkida ja seejärel levitada. Praegu on NINJA-IDE jaoks saadaval 3 pistikprogrammi:

  • pastebin: mis võimaldab teil koodi saata aadressile pastebin.com ja tagastab saadud lingi selle koodi jagamiseks.
  • PluginProject: NINJA-IDE jaoks pistikprogrammide loomise eest vastutav isik, nagu me mainisime.
  • Klasside täitja: lõpetab Pythoni koodi kirjutamise ajal automaatselt mõned struktuurid, näiteks: looge konstruktor automaatselt, kutsudes vajalikud vanemklassid jne.

NINJA-IDE pistikprogrammi väljatöötamise kohta lisateabe saamiseks külastage järgmist Wiki: http://ninja-ide.org/plugins/

kontakt

Rohu

Ninja IDE on nüüd saadaval DEB ja RPM pakettides. Muidugi saab muidugi alati lähtekoodi alla laadida ja selle kompileerida. 🙂

Täname Diego Sarmenterot selle suurepärase IDE jagamise eest meile kõigile!

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Patrick Arguello DIJO

    Mulle meeldib PyCharm väga paremini. Kuid hea tööga palju õnne ja lugupidamist. @patoargu

  2.   Riccardo3284 DIJO

    Tervitused kogukonnale. Olen fänn programmeerimisest Pythonis, IDE on väga hea, kuid minu arvutis on Ubuntu 10.10 ja ma ei saa töötada joonisel 4 näidatud funktsioonidega, pildiga, kus on käsud, klassid või meetodid Püütoni objekti puhul on see omadus vähemalt minu jaoks väga oluline, kuna kõiki käske ei õpita ja see võimaldaks meil programmeerijatel rohkem teada saada, kuid see funktsionaalsus minu ubuntu välja ei tule.

    Loodan, et keegi kogukonnast saab mind aidata, minu e-posti aadress on riccardo3284@gmail.com

  3.   marcoshipe DIJO

    Lugesin valesti, giti tugi pole veel rakendatud, kuid see on juba pistikprogrammina, mida nad kavatsevad rakendada 🙂

  4.   Alex DIJO

    ^^, alustasin arendustiimi liikmena :), kuid lõpuks polnud mul aega ega piisavalt teadmisi ja pidin neist loobuma :(. Aga mul on väga hea meel, et lõpuks NInja IDE läks edasi ja nii heade tulemustega.

  5.   marcoshipe DIJO

    Ma juba proovin seda 😀
    loodetavasti see hea, aga kuna ma kasutan pythoni ja qt-d, siis meeldib mulle xD
    Küllap ta pühib eerikat ja ma vaatasin ja sellel on gitile tuge 😀 Ma arvan, et me saame hakkama

  6.   Daniel DIJO

    Ma arvan, et see on suurepärane, ainus negatiivne on see, et meie, olles hispaania keelt kõnelevad, loome liidesed inglise keeles, nad peaksid need tegema hispaania keeles, IDES inglise keeles , muidu mul seda pole, aga õnnitlen neid.

    seoses

  7.   Eugeni Tambur DIJO

    Mulle see meeldib, kuid hetkel on see midagi rohelist, ma olen seda katsetanud ja see jätab mind uimaseks ning taaskäivitab Windowsi Exploreri pidevalt ja veel rohkem vigu, kuid niipea kui need parandatakse ja see on midagi stabiilsemat, kahtlemata olla väga edukas.

  8.   Daniel dcs DIJO

    Argentinas "tehtud" suurepärane töö !!!! Siirad õnnitlused kogu arendustiimile !!!!

  9.   neyer DIJO

    Tervitused kõigile, väga hea töö, IDE-d on üsna mugav kasutada, oleks väga huvitav lisada graafiliste kasutajaliideste redaktor. Samuti oleks põnev, kui see lubaks teil luua projekti dokumentatsiooni (võib-olla stiilis Javadocs).

    Jätka.