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 saab töötada 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

     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. 

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


       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.

http://bourabai.kz/einf/ide.htm

      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.


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.


	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. Minu 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 turbokeskkondadel 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).

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

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

       Grigori

Топ-10 IDE по версии G2 IDE Оценка удовлетворённости Дёгкость использования лёгкость установки Соотвествие требованиям Легкость ведения бизнеса Качество поддержки IntelliJ IDEA 99 88 88 94 89 87 Visual Studio 98 88 86 92 90 85 Eclipse 96 84 83 89 86 81 PyCharm 95 90 91 94 91 88 PhpStorm 92 87 86 94 91 88 WebStorm 91 88 87 93 89 88 NetBeans 87 87 86 87 84 81 Syncfusion 85 86 89 89 91 93 DataGrip 83 91 91 95 92 93 Jupyter 81 91 90 89 94 83

IDE positiivsed ja negatiivsed küljed

Grigori

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.[100] 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.

Kokkuvõte

Kasutatud materjalid

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

100. https://pdfs.semanticscholar.org/019e/36673a0821b1864b9d62b527813e900d13ba.pdf