ICO wiki:IDE keskkonna kasutatavus ja kasutuskogemus

From ICO wiki

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 mitmel eri moel ja samas teeb rakenduste kirjutamist kiiremaks. IDE-d saab võrrelda tekstiredaktoriga, mis aitab teksti kirjutamisel. Analoogselt tekstiredaktoriga, aitab IDE leida vigu ja töötab mitmes eri keeles. Lisaks, on IDE-s ka teisi funktsioone, mis lihtsustavad koodi kirjutamist ja seetõttu teevad rakenduste kirjutamist kiiremaks. Seda kasutavad mitte ainult programeerijad, vaid ka teised programeerimisest huvitatud inimesed.

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 loodud?

Enne IDE-sid kirjutasid arendajad oma programmid tekstiredaktoritesse. Nad kirjutaksid ja salvestaksid rakenduse tekstiredaktorisse; seejärel käivitasid kompilaatorit, võttes arvesse veateateid. Seejärel läks kood 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. Antud IDE-d (osa Dartmouthi aja jagamise süsteemist) kontrolliti käskude abil, seetõttu erines see oluliselt hilisematest järeltulijatest. Seda juhiti menüüde ja kiirklahvide abil ning veelgi enam 21. sajandil levinud graafilisi IDE-sid. Kuid see võimaldas neil muuta lähtekoodi, hallata faile, kompileerida, siluda ja käivitada programme ligilähedaselt 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 maailmast. 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 populaarset 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 tarkvaraarenduse tööriistade valmistajatele. Nende iseloomulikuks jooneks oli pideva arendustsükli toetamine:

  • lähtekoodi sisestamine ja muutmine
  • kompileerimine
  • vigade analüüsimine ja parandamine
  • kompileerimise lõpetamine
  • käivitamine ja silumine
  • integreeritud keskkonnast lahkumata saab kõiki neid etappe juhtida lihtsa funktsiooniklahvide komplektiga ja need ei nõua selgesõnalist kõnet või eraldi instrumente.

Suur kompileerimise kiirus on ka Turbo keskkondade mõjuv omadus. Kuigi Turbo-Pascali esimestes versioonides tehti kompileerimist enne esimest tõrget ning kõigi vigade leidmist, seejärel tuli pärast eelmise vea parandamist uuesti kompileerimist alustada, kuid see teostati 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 on nemad oma arengus jõudnud kaugele. Kõik nad on omavahel erinevad ja kõikidel on omad eeldused ja puudused. Selleks, et saada aru, mis on nende vahel erinevat, on esiteks vaja aru saada, millega nad erinevad tavalistest tekstiredaktoritest.

Tekstiredaktori tüüpe on erinevaid ja kõige populaarsemad tavalisele arvuti kasutajale, võiksid olla tavalise teksti kirjutamise tekstiredaktorid, nagu notepad, word või openoffice. Tegelikult ei ole tekstiredaktorid ainult programmid, mis töötavad tavalise tekstiga. Sellised programmid nagu VS code ja atom on ka tekstiredaktorid, kuid nemad võrreldes teiste lihtsamate tekstredakrotitega, on mõeldud koodi kirjutamisele. Kõige suurem erinevus IDE ja tekstiredaktori vahel, on nende suurusest ja programeerimisfunktsioonide arvust.

Tekstiredaktorid ei oma nii palju funktsioone, nagu on IDE-s. Mõned IDE funktsioonidest saab ka tekstiredaktorile juurde installeerida, kuid mitte kõiki, nagu näiteks koodi käivitamine või debugger, installeerida ei saa.[5][6]

Integreeritud programmeerimiskeskkondi on väga palju ja seega on väga palju võimalusi, kuidas neid jaotada ja eristada üksteisest. Nende kõikide populaarsemateks jaotusteks on järgmised gruppid:

• IDE-d mitme keele jaoks.

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

• Mobiiliarenduse IDE-d.

IDE-d, mille ülesanneteks on teha mobiilrakendusi.

• Konkreetsete keelte IDE-d.

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

• IDE Microsofti või Apple'i jaoks.

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

• IDE-d, mis on loodud tekstiredaktoritest.

IDE-d, mis on kasutajasõbralikud ja kerged, kuid samas võivad võistelda oma funktsionaalsuse tasemegqa tavalise IDE-ga. Sellised IDE-d on pooleldi IDE ja pooleldi tekstredaktor. Võrreldes tavalise IDE-ga, ei oma need IDE-d nii palju võimalusi nagu tavalised IDE-d pärast nende installimist, kuid nende funktsionaalsus tuleneb pluginitest, mida saab tekstiredaktorile juurde panna. Pärast nende modifitseerimist, said tekstiredaktorid rohkelt võimalusi ning neid hakati nimetama IDE-ks, mis oli loodud tekstiredaktorist.

• Pilvepõhine IDE.

IDE-d, mis põhinevad internetis ja mida ei ole vaja arvutisse alla 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 programeerimiskeskkonnal kuuluda ka teistesse grupidesse. Nii paljud mitme keelte programeerimiskekkonnad võivad olla ka mobiiliarenduse keskkonnad. Samuti võivad olla pilvipõhised IDE-d nii mitmekeelsed kui ka töötada ainult teatud keelega.

Samas, nagu on näha paljudest IDE populaarsuse tabelitest, eelistavad programeerijad rohkem multifunktsionaalseid ja kergeid IDE-sid. Sellest tuleneb, et spetsiifilised osad ja konkreetsed keelte jaotused kaotavad iga aastaga oma aktuaalsust. [10]

Kasutuskogemus

Baasnõuded

IDE tööriistad on suunatud programmeerija töö hõlbustamisele ja kiirendamisele keskkonnas ning selleks sisaldavad nad tavaliselt (1) koodiga töötamiseks mõeldud redaktorit (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

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.

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 igapäevast tööd. Lihtsustamise tagajärjeks tuleneb ka rakenduste kiirem arenguprotsess. Kuid millega täpselt ja kuidas saab IDE aidata? Antud küsimuse vastuse leidmiseks viitan uurimisele, mis oli tehtud antud teemal nimega’ How Much Integrated Development Environments (IDEs) Improve Productivity?’. Uurimuse auroriks on Iyad Zayour.[18]

Selles uuringus, oli uuritud grupp programeerijaid, mis tegeles haigla infosüsteemiga (hospital information system (HIS)). Antud uuringus töötasid programeerijad nendele tuttavas tingimuses ja neid paluti suhtuda uurijatesse nagu praktikantidesse. Pärast seda oli kogutud informatsioon sellest, mida programeerijad tihti tegid ja mida nad kõige rohkem kasutasid, rakenduse kirjutamise ajal. Selle info abi olid tehtud järeldused. Millised IDE funktsioonid lihtsustavad tarkvara arendust? Uuringu tulemustele toetudes saab teha järeldust, et kõige enam kasutatavad funktsioonid riistvara kirjutamisel on järgmised:

Intellisense

See ei ole üks IDE funktsioon, vaid nende kogum. 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, annavad talle lisainformatsiooni protsessist ning neid kõiki võib nimetada ‘Intellisense’.

Navigatsioon

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

Definitsiooni üles otsimine

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

Märksõna otsimine

Aitab otsida konkreetset koodi juppi kasutades märksõna. IDE otsib ülesse kõik selle sõna esinemise kohad tekstis ja viitab nende.

Debbuging

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

Peale IDE funktsioone, mis olid eelnevalt välja toodud, uuring väidab, et IDE aitab hakkama saada paljudega juhuslikutega syntax vigadega, kuid seevastu ei aita kirjutatud koodi arusaamisega. Uuringus olid tehtud järeldused, et algse programmi kirjutamise etapis, oli programeerijate produktiivsus suurem, võrreldes lõpuetapiga. Selle põhjuseks oli välja toodud vigade otsimine ehk programeerimise keeles debugging. Lõpuetappides, kui koode oli palju, vigade leidmine võttis palju aega, seega langes nende produktiivsus.

Kokkuvõte

Kokkuvõtteks, saaks välja tuua, et IDE ehk teisisõnu Inteligent Development Enviroment, on nagu kogu programeerimine, päris uus asi maailmas. Vaatamata sellele, on IDE läbinud palju muutusi oma esimesest ilmumisest, mis oli Maestro I(1970-1980). Praegused IDE-d ei nõua eraldi riistvara ja tunnevad ennast hästi iga arvuti peal. Võttes arvesse, et see suur muutus toimus vaid 40 aasta jooksul, on raske ennustada, mida võib IDE saavutada tulevikus. Hiljuti ilmus uus IDE tüüp, mida ei ole vaja alla laadida ja mis käivitab koodi serveri peal, Selle nimetus on pilvepõhine IDE, mis veelkord tõestab, et IDE areng ei kahane. IDE üheks põhiliseks kasvu põhjuseks on vaieldamatult IT valdkonna suur areng eelnevate aastate jooksul, mille tagajärjeks on tekkinud palju uusi programeerijaid.

Samas, tahaks öelda, IDE muutuvast populaarsusest. IDE populaarsus on tihti seotud keeltega, millega nad opereeruvad ja nende põhilise eesmärgiga. Seetõttu, 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 puutused, kuid ühte saab kindlalt väita, et IDE on kõige parem tarkvara koodi kirjutamiseks. IDE aitab programeerijatel kiirelt ja mugavalt teha omad tööd, kiirendades sellega 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