ICO wiki:IDE keskkonna kasutatavus ja kasutuskogemus

From ICO wiki
Jump to navigationJump to search

Rühmaliikmed:

  Roman Malõsev
  Egor Mikhaylov
  Grigori Senkiv


Sissejuhatus

IDE või Integrated Development Enviroment on riistvara, mida kasutagakse IT sfääris.Selle kasutamine lihtsustab koodi kirjutamist paljudel viisidel ja samas teeb rakenduste kirjutamist kiiremaks. IDE-d saab võrrelda tekatredaktoriga, mis aitab teksti kirjutamisel. Nagu tekstredaktoris, aitab IDE vigade leidmisega ja tihti töötab paljute keeltega. Lisaks, on IDE-s ka teisi funktsioone, mis lihtsustavad koodi kirjutamist, seega teevad rakenduste kirjutamist kiiremaks. Seda kasutavad mitte ainult programeerijad, vaid ka kõik huvilised programeerimise valdkonnas.


IDE Ajalugu

Milleks on IDE tehtud?

IDE on loodud programmeerijate tootlikkuse maksimeerimiseks lihtsate kasutajaliideste tihedalt ühendatud komponentide kaudu.

See võimaldab arendajal teha vähem režiime vahetamiseks vähem samme, erinevalt diskreetsetest arendusprogrammidest. Kuna IDE on keeruline tarkvarapakett, suudab arenduskeskkond tarkvara arendamise protsessi kvalitatiivselt kiirendada alles pärast pikka õppeprotsessi.[1]

Mis oli enne, kui IDE oli loobunud?

Enne IDE-sid kirjutasid arendajad oma programmid tekstiredaktoritesse. Nad kirjutaksid ja salvestaksid rakenduse tekstiredaktorisse; seejärel käivitage kompilaator, võttes arvesse veateateid; siis minge koodi redigeerimiseks tagasi tekstiredaktorisse.

1983. aastal omandas Borland Ltd. Pascali kompilaatori ja andis selle välja TurboPascalina, mis hõlmas esmakordselt integreeritud redaktorit ja kompilaatorit. Samal ajal kui TurboPascal käivitas integreeritud arenduskeskkonna idee, oli paljude arvates 1991. aastal käivitatud Microsofti Visual Basic (VB) esimene tõeline IDE. Visual Basic loodi vanemale BASIC-keelele, mis oli kogu 1980ndate aastate jooksul populaarne programmeerimiskeel. Visual Basicu ilmumisega võis programmeerimisele mõelda graafiliselt ja tekkis märkimisväärne kasu tootlikkusest.[2]

Esimene IDE

Esimesed IDE-d loodi konsooli või terminali kaudu töötamiseks, mis iseenesest oli uudsus: enne seda loodi programmid paberil, sisestati masinasse eelnevalt ettevalmistatud paberkandjate (perfokaardid, augustatud lindid) abil jne.

Dartmouth BASIC oli esimene IDE-ga loodud keel ja see töötati välja ka esimesena konsoolis või terminalis kasutamiseks. Seda IDE-d (osa Dartmouthi aja jagamise süsteemist) kontrolliti käskude abil, seetõttu erines see oluliselt hilisematest, seda juhiti menüüde ja kiirklahvide abil ning veelgi enam 21. sajandil levinud graafilisi IDE-sid. Kuid see võimaldas teil muuta lähtekoodi, hallata faile, kompileerida, siluda ja käivitada programme põhimõtteliselt sarnaselt kaasaegsete IDE-dega.
Müncheni Softlabi toode Maestro I oli maailma esimene integreeritud tarkvara arenduskeskkond 1975. aastal ja vaieldamatult maailma niši turul 1970. ja 1980. aastatel liider. Selle on installinud 22 000 programmeerijat kogu maailmas. Kuni 1989. aastani paigaldati Saksamaa Liitvabariiki 6000 eksemplari. Tänapäeval kuulub Maestro I ajalukku ja seda leiab ainult Arlingtoni infotehnoloogia muuseumist.[3]

IDE keskkondade ajalugu

Raamistike idee küpses 1980. aastate keskpaigaks, kui tekkis kaks populaarsete raamistike rühma:
* Borlandi turbo keskkonnad (Turbo Pascal, Turbo C, Turbo C ++, Delphi jne), et toetada nendes keeltes programmeerimist, mis on esmalt rakendatud MS DOS-i operatsioonisüsteemi, seejärel Windowsi operatsioonisüsteemi jaoks;
* GNU Emacs on mitmekeelne ja mitme platvormiga integreeritud arenduskeskkond, mis on rakendatud MS DOS-i, seejärel Windowsi, OpenVMS-i ja Linuxi jaoks.

Arendajate meeskond, kes töötas Sun Microsystemsiga 1990. aastatel, hõlmas tänu GNU Emacsi keskkonna paljudele kasutajatele ja harrastajatele tänu selle rakendamisele Solarise platvormil.

Borlandi turbo keskkondadel on olnud tohutu mõju tarkvaraarendajatele ja tarkvaraarendus tööriistade valmistajatele. Nende iseloomulikuks jooneks oli pideva arendustsükli toetamine:
* lähtekoodi tippimine ja muutmine
* kompileerimine
* vigade analüüsimine ja parandamine
* kompileerimise lõpuleviimine
* käivitamine ja silumine
* integreeritud keskkonnast lahkumata ning kõiki neid etappe juhiti lihtsa funktsiooniklahvide komplektiga ja need ei nõudnud selgesõnalist kõnet või või eraldi instrumendid.
Suur kompileerimise kiirus on ka Turbo keskkondade atraktiivne omadus. Kuigi Turbo-Pascali esimestes versioonides tehti kompileerimine enne esimest tõrke ning kõigi vigade leidmiseks ja diagnoosimiseks tuli pärast eelmise parandamist uuesti kompileerimist alustada, kuid see tehti koheselt funktsiooni klahvide abil. Turbo-Pascali keskkonna kõige olulisem uuendus oli sisendkeele laiendamine objektorienteeritud mõistetega (klass, objekt) ja üksuse konstruktsioon, mis kehastab iseseisva kompileerimise üksuse ideed. OOP tugi ilmus versioonis 5.5. Seejärel töötati need ideed välja juba Windowsi platvormil Borlandi integreeritud keskkondade uutes versioonides - Borland Pascal ja Delphi (Borlandi programmeerimiskeel, mis arendab Pascali ideid koos OOP-ga).[4]


IDE tüübid

Esimene IDE või integreeritud programmeerimiskeskkond oli loodud 1983 aastal ja tänapäevani nad on oma arengus kaugele jõudnud. Kõik nad on omavahel erinevat ja kõigidel on omad eeldused ja puutused. Selleks, et saada aru mis on nende vahel erinevat on esiteks vaja sada aru, millega nad erinevat tavalistest tekstiredaktorist.

Tekstredaktori ja IDE erinevused

Tekstredaktori tüüpe on erinevaid ja kõige populaarsemad tavalisele arvuti kasutajale võiksid olla tavalise teksti kirjutamise tekstredaktorid, nagu notepad, word või openoffice. Tegelikult ei ole tekstredaktorid ainult programmid, mis töötavad tavalise tekstiga. Sellised programmed nagu VS code ja atom on ka tekstredaktorid, kuid nad, võrreldes teiste lihtsamate tekstredakrotitega, on mõeldud koodi kirjutamisele. Kõige suurem erinevus IDE ja tekstredaktori vahel, on nende suurus ja arv programeerimisfunktsiooni. Tekstredaktorid ei oma nii palju funktsiooni, nagu on IDE-s. Mõned IDE funktsioonidest saab ka tekstredaktorile juurde installida, kuid mitte kõik. Sellise funktsioonid nagu koodi käivitamine või debugger ei saa installida.[5][6]

Integreeritud programmeerimiskeskkondi on väga palju ja seega on väga palju võimalusi kuidas neid jaotada ja eeristada üks teisest. Nende kõikide populaarsemateks jaotusteks on järgmised gruppid.

• IDE-d mitme keele jaoks.

IDE-d, mis toetavad rohkem kui ühte programeerimise keel.

• Mobiiliarenduse IDE-d.

IDE-d, mille ülesanneteks on teha mobiilrakendusi.

• Konkreetsete keelte IDE-d.

IDE-d, mis toetavad ainult ühte programeerimise keelt.

• IDE spetsiifiline Microsofti või Apple'i jaoks.

IDE-d, mis vajavad konkreetset os(operatisoon süsteemi).

• IDE-d, mis on loodud tekstiredaktoritest.

IDE-d, mis on kasutajasõbralikut ja kerged programmid, kuid samas võivad võistelda oma funktsionaalsusest tavalise IDE-ga. Sellised IDE-d on pool IDE ja pool tekstredaktor. Võrreldes tavalise IDE-ga, need IDE-d ei oma nii palju võimalusi nagu tavalised IDE-d pärast nende installimist, kuid nende funktsionaalsus tuleneb pluginitest, mida saab tekstredaktorile juurde panna. Pärast nende modifitseerimist, tekstredaktorid saavad nii palju võimalusi, et neid hakkati nimetama IDE-ks, mis oli loodud tekstredaktorist.

• Pilvepõhine IDE.

IDE-d, mis põhinevad internetis ja mida ei ole vaja arvutisse laadida, et seal töötamist alustada. Koodi salvestamine ja selle käivitamine toimub serveri peal. Selliste IDE hulga kuulub selline keskkond nagu CodePen.

[5][7][8][9]


Ühte gruppi kuuluvus ei keela programeerimiskeskkonda kuuluvust ka teistesse grupidesse. Nii paljud mitme keelte programeerimiskekkonnad võivad olla ka mobiiliarenduse keskkonnad ja pilvipõhised IDE-d võivad olla nii mitme keelsed kui ka töötada ainult mingi konkreetse keelega.

Samas, nagu on näha paljudest IDE populaarsuse tabelittest, eelistavad programeerijad rohkem multifunktsionaalseid ja kergeid IDE-d. Sellest tuleneb, et spetsiifilise osi ja konkreetse keeli jaotused iga aastaga kaotavad oma aktuaalsust. [10]

Kasutuskogemus

Baasnõuded

IDE tööriistad on suunatud programmeerija töö hõlbustamisele ja kiirendamisele keskkonnas ning selleks on tavaliselt sisaldavad (1) koodiga töötamiseks mõeldud redaktor (automaatne täitmine, süntaksi esiletõstmine jne); (2) tööriistade loomine, käitamine ja silumine; (3) koostaja ja / või tõlgendaja.[11] 

Tänu nendele tööriistadele arenduskeskkond kiirendab kvalitatiivselt arendusprotsessi, kuna need ühendavad ühes moodulis mitmesugused utiliidid. See võimaldavad abstraktselt abistavate ülesannete täitmisest loobuda ja võimaldavad programmeerijal keskenduda loogikale ja algoritmilise probleemi lahendamisele ning vältida aja raiskamist tüüpiliste tehniliste toimingute ja vigade tegemisel. kirjutamine. Need olulised asjad võivad tõsta arendajate tootlikkust.[12]

IDE-d toetavad sageli paljusid erinevaid programmeerimiskeeli ja neil on palju funktsioone, mis võivad olla mahukad, allalaadimiseks ja installimiseks aeganõudvad ning nõuavad õigeks kasutamiseks põhjalikke teadmisi.

Põhilised nõuded

Vaatamata asjaolule, et erinevate keskkondade funktsioonide kogum võib erineda, on siiski programmeerimist lihtsustavad põhivajadused, ilma milleta programmeerimisprotsess võib piinata:
  * võimalus säästa tööd ja hiljem avada kõik samas seisukorras, nagu see oli sulgemise ajal;
  * võimalus käivitada koodi keskkonnast endast;
  * võimalus koodist läbi astuda on kõigi IDE-de põhifunktsioon (silumistugi);
  * süntaksi esiletõstmine võimaldab teil kiiresti leida märksõnu, muutujaid ja muudab lugemise mugavamaks, mis võimaldab teil koodi paremini mõista;
  * koodi automaatne vormindamine ja vajalike süntaksielementide lisamine.[13]

Lisaks põhinõuetele arendus keskkonnale on ka teisi põhiparameetreid, mis mõjutavad seda, millise keskkonna arendaja enda jaoks valib. Nende hulka kuuluvad paigaldamise ja kasutamise lihtsus, kasutajate nõuete ja ootuste järgimine, arendajatega suhtlemise lihtsus ja tehnilise toe kvaliteet.

Top-10 IDE kasutuse ülevaade

Päringu kuupäev: 06.11.2020. Andmete allikas: https://www.g2.com/categories/integrated-development-environments-ide?tab=highest_rated

Tegevusalad, kus need Top-10 IDE on nõutavad, on erinevad, kuid peamised ja peamised kasutajad on arvutitarkvara, IT ja teenused, Internet, kõrgharidus, finantsteenuste sektor.

Päringu kuupäev: 06.11.2020. Andmete allikas: https://www.g2.com/categories/integrated-development-environments-ide?tab=highest_rated

Kui varem suurema osa tarkvarategevusest tegelesid professionaalsed insenerid ja programmeerijad, siis tänapäeval on programmeerimisoskusi (algtasemest professionaalseni) vaja kõikjal, nii et headest tarkvaraarendajatest on pidevalt puudus. Niisama suurem on vajadus lihtsate ja kasutajasõbralike keskkondade järele, kus tarkvarainsenerid saaksid töötada, mida on kiire redigeerimistsükli ja sujuva juurutamise abil lihtne õppida.

Ülemaailmne Visual Studio on populaarseim IDE, Visual Studio Code kasvas viimase 5 aasta jooksul kõige rohkem (-0,1%) ja kõige rohkem kaotas Eclipse (1,7%). Päringu kuupäev: 06.11.2020. Andmete allikas: https://pypl.github.io/IDE.html

IDE ja programmeerimiskeele populaarsus

IDE-de populaarsus seotud ka nende toetatavate programmeerimiskeeledega, nende arusaadavuse kättesaadavusega ja uue vaatajaskonna suhtelise õppimise lihtsusega.

Näiteks seletab see PyCharmi keskkonna ja Pythoni programmeerimiskeele kasvavat populaarsust. Samuti nimetatakse sellise tõsise hüppe üheks põhjuseks selliste valdkondade arendamist nagu andmete kaevandamine, tehisintellekt ja arvuline arvutus.


Nõutavad programmeerimiskeeled spetsialistide ja algajate seas

Vaatleme professionaalse programmeerija ühiskonna nõudlust konkreetse keele indeksi põhjal, mis on programmeerimiskeelte populaarsuse näitaja (indeks uuendatakse kord kuus).
Päringu kuupäev: 06.11.2020. Andmete allikas (Professionaalsed programmeerijad): https://www.tiobe.com/tiobe-index/ Andmete allikas (Algatajad): https://pypl.github.io/PYPL.html

Edetabelid põhinevad ülemaailmselt kvalifitseeritud inseneridel, kursustel ja kolmandate osapoolte pakkujatel ja nende arvutamiseks kasutatakse populaarseid otsingumootoreid (Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube, Baidu). Viimase aasta jooksul on Pythoni indeksi kasv olnud teiste konkurentide omast suurem, tugevdades seeläbi tema positsiooni.[14]

Lisaks levimusele professionaalse kogukonna seas saab teatud keele populaarsuse teatud määral kindlaks teha, analüüsides, kui sageli otsitakse Google'is keeleõpikuid ja käsiraamatuid.[15]

2020. aasta novembris avaldatud programmeerimiskeele indeksi PYPL PopularitY andmetel oli otsingutes populaarseim Python.


IDE positiivsed ja negatiivsed küljed

Sageli võite kuulda alternatiivseid arvamusi, et koodiredaktor on vaatamata väiksemale funktsionaalsusele tavaliselt kergem ja kiirem. Koodiredaktoritel (tekstiredaktorid) on ka süntaksi esiletõstmise ja vormindamise võimalused, nad saavad koodi käivitada ja silurit kasutada ning saavad veelgi paremini suhelda allika juhtimissüsteemidega.

IDE positiivsed küljed

* Arukad koodianalüüsi ja lõpetamise tööriistad muudavad koodi kirjutamise kiiremaks ja palju vähem veaohtlikuks, mis on tohutu abi nii algajatele kui ka professionaalidele.
* Võimas koodiga navigeerimine tööriistade abil on koodi hõlpsam leida ja sinna pääseda sekunditega isegi suurte projektide korral.
* Saate koodi kirjutada ja siluda redaktorist lahkumata.
* Toetavad paljusid programmeerimiskeeli, mis koodinavigatsiooni ja koodianalüüsi koos tööriistadega muudab suurte projektide kallal töötamise imelihtsaks.[16]

IDE negatiivsed küljed

* Enamikul IDE-del omandab nii palju funktsioone, et nende kasutamise õppimine võib saada algajatele ülekaalukaks ülesandeks.
* Õppimine isegi professionaalidel võtab palju aega, et harjuda kõigi funktsioonidega.
* Nende ulatuslik funktsioonide hulk muudab nad loidaks, ressurssidele, mille käivitamine võtab kaua aega.
* Mõned arendajad leiavad, et keskkonda mõnikord on ülekoormatud mis kuulub visuaalne segadus ja võib sageli häirida, raskendada koodi loogikale keskendumist.[17]

IDE mõju töö protsessile

IDE on väga võimas riistvara, mis aitab rakenduste kirjutamisega ja seega lihtsustab programeerijate iga päevast tööd. Lihtsustamise tagajärjeks tuleneb ka rakenduste kiirem arengu protsess, aga kuidas ja millega täpselt IDE saab aidata? Selle küsimuse vastamisel hakkan mina viitama uurimisele, mis oli tehtud selles teemas nimega’ How Much Integrated Development Environments (IDEs) Improve Productivity?’, mida tegi Iyad Zayour.[18]

Selles uuringus, oli uuritud grupp programeerijaid, mis tegeles haigla infosüsteemiga (hospital information system (HIS)). Selle uuringus programeerijat töötasid nendele tuttavas tingimustes ja neid paluti suhtlema inimestesse, kes viisid uuringut, nagu nad on praktikandid. Pärast seda oli kogutud informatsioon sellest, mida programeerijad tihti teevad ja mida nad kõige rohkem kasutavad, rakenduse kirjutamise ajal. Selle informatsiooni peal olid tehtud järeldused. Millised IDE funktsioonid lihtsustavad tarkvara arendust. Uuringu tulemustest saab teha järeldust, et kõige kasutatav funktsionaalsus riistvara kirjutamisel on järgmine:

Intellisense

See ei ole üks IDE funktsioon, vaid nende hulk. Selle nime all kuuluvad sellised IDE funktsioonid nagu koodi täitmine või sisu abistamine. Üldiselt võib öelda nii, et kõik IDE funktsioonid, mis ilmuvad ekraani peal, kui programeerija töötab, ja annavad talle lisa informatsiooni protsessist võivad olla nimetatud ‘Intellisense’.

Navigatsioon

Riistvara kirjutamisel kirjutatakse palju ridu koodi ja, et mitte otsida mille rea peale viitab mingi koodi tükk, programeerijad eelistavad kasutada nii öeldes navigatsiooni. See funktsioon saab viidata koodi kohale, mida viidetakse teises kohas. Näiteks kui funktsioon oli kuskil koodis varem kirjutatud ja programeerija tahab seda üles otsida ei ole tal vaja üles kerida, vaid ta saab vajutada selle funktsiooni viitele(selle nime peale) ja IDE ütleb talle, kus see funktsiooni kirjutatud kood asub.

Definitsiooni üles otsimine

See funktsioon on sarnane eelmisega, kuid see IDE funktsioon näitab programeerijatele IDEs olevate funktsioonide koodi.

Märksõna otsimine

Otsida mingit koodi tükki kasutades märksõnat. IDE otsib ülese kõik selle sõna juhtumit tekstis ja viitab nende kohtadele.

Debbuging

Peale koodi kirjutamist tihti ilmub olukord, kui kirjutatud kood annab vea, või töötab valesti. Selle ülesanne lahendamiseks igas IDEs on debuger. See IDE funktsioonaalsus annab programeerijale võimalust vaadata mis toimub koodis selle käivitamise jooksul ja kuidas muutuvad muutujate väärtused.

Peale IDE funktsioone, mis olid välja toodud, uuring väitab, et IDE aitab paljudega juhuslikutega syntax vigadega, kuid teiselt pool ei aita ta kirjutatud koodi aru saamuga. Uuringus olid tehtud järeldused, et algse programmi kirjutamise etapis programeerijate produktiivses oli suurem, võrreldes lõppu etapiga. Selle põhjuseks oli välja toodud vigade otsimine või programeerimise keeles debugging. Lõppu etappides, kui koodi oli palju, vigade leidmine võttis palju aega programeerijatelt seega madaldas nende produktiivsust.


Kokkuvõte

Kokkuvõtteks, saaks välja tuua seda, et IDE ,või kuidas seda veel nimetatakse Inteligent Development Enviroment, on ,nagu kogu programeerimine, päris uus asi maailmas. Vaatamata sellele, on IDE läbinud palju muudatusi oma esimesest ilmumisest, mis oli Maestro I(1970-1980). Praegused IDEd ei nõua eraldi riistvarat ja tunnevad ennast hästi iga arvuti peal. Võttes arvesse, et see suur muudatus toimus ainult 40 aasta jooksul, on raske ennustada, mida saab saavutada IDE tulevikus. Mitte nii kaua aega tagasi ilmus uus IDE tüüp, mida ei ole vaja alla laadida ja mis käivitab koodi serveri peal, mille nimetus on pilvepõhine IDE, mis veelkord tõestab, et IDE areng ei hakka kahanema. IDE üheks kasvu põhjuseks, vaieldamatult, on IT valdkonna suur kasv eelnevate aastate jooksul, mille tagajärjeks on ilmunud palju uusi programeerijaid.

Samas, tahaks öelda, IDE muutuvasest populaarsusest. IDE populaarsus on tihti seotud keeltega, millega nad opereeruvad, ja nende põhilise eesmärgiga. Selle pärast, et maailmas on väga palju keeli ja erinevaid IT valdkondi, on samas ka palju erinevaid IDE ja nende tüüpe.

Sellel 'targal' tarkvaral on nii omad eeldused, kui ka omad puutused, kuid saab kindlalt väita, et IDE on kõige parem tarkvara koodi kirjutamiseks. IDE aitab programeerijatel kiirelt ja mugavalt teha omad tööd, seega kiirendades keskkonna progressi ja vähendades ressurside raiskamist.

Kasutatud materjalid

[1] http://bourabai.kz/einf/ide.htm

[2] https://www.veracode.com/security/integrated-development-environment#:~:text=History%20of%20IDE&text=In%201983%2C%20Borland%20Ltd.&text=While%20TurboPascal%20launched%20the%20idea,programming%20language%20throughout%20the%201980s

[3] https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8

[4] https://intuit.ru/studies/courses/13805/1223/lecture/23386

[5] https://medium.com/analytics-vidhya/difference-between-text-editor-and-ide-integrated-development-environment-73f8b2368de6

[6] https://medium.com/@sgarcia.dev/learn-webdev-series-coding-tools-part-1-introduction-ides-vs-text-editors-and-the-rise-of-the-75c74bf26988

[7] https://intellipaat.com/blog/tutorial/pycharm-tutorial/what-is-ide/

[8] https://www.sololearn.com/Blog/51/what-is-an-ide-what-you-need-to-know-about-an-integrated-development-environment/

[9] https://searchcloudcomputing.techtarget.com/definition/cloud-IDE#:~:text=A%20cloud%20IDE%20is%20a,user%20interface%20(GUI)%20builder

[10] https://pypl.github.io/IDE.html

[11] https://tproger.ru/translations/python-ide/

[12] https://moluch.ru/archive/309/69869/

[13] https://tproger.ru/translations/python-ide/

[14] https://www.tiobe.com/tiobe-index/

[15] https://pypl.github.io/PYPL.html

[16], [17] https://medium.com/@sgarcia.dev/learn-webdev-series-coding-tools-part-1-introduction-ides-vs-text-editors-and-the-rise-of-the-75c74bf26988

[18] https://pdfs.semanticscholar.org/019e/36673a0821b1864b9d62b527813e900d13ba.pdf