neljapäev, 27. märts 2025

Kas AI asendab siis ikkagi programmeerijad?

Viimastel aastatel on tehisintellekt (AI) teinud suuri edusamme, eriti tarkvaraarenduses. Tööriistad nagu GitHub Copilot, ChatGPT, CodeWhisperer jpt pakuvad võimalusi koodi genereerimiseks, vigade parandamiseks ja ka dokumentatsiooni loomiseks.

Seetõttu on paljude arendajate ja IT-d õppivate tudengite peas küsimus: kas AI võib asendada programmeerijad? Kas ongi enam mõtet õppida? Mis minust edasi saab?

Või on AI lihtsalt tööriist, mis vähendab rutiinseid ülesandeid ja võimaldab arendajatel keskenduda keerulisematele probleemidele? Uurime veidi, kuidas AI juba täna programmeerijaid aitab, millised on selle piirangud ja milliseks võiks tulevik kujuneda.


Kuidas AI on juba programmeerijaid aidanud?

Mõned viisid, kuidas see arendajate tööd mõjutab:

- Koodigeneraatorid ja autocomplete tööriistad – GitHub Copilot ja paljud muud IDE-de laiendused oskavad soovitada mingis kontekstis sobivaid koodijuppe või ka terveid valmis funktsioone, mis kiirendavad arendamist.

- Debugimine ja veaparandus – AI oskab analüüsida vigu ja pakkuda võimalikke lahendusi, muutes probleemide leidmise ja parandamise kiiremaks.

- Dokumentatsiooni ja kommentaaride genereerimine – AI suudab automaatselt selgitada keerulist koodi, muutes selle paremini mõistetavaks.

- Automatiseerimine ja nn boilerplate koodi genereerimine – AI aitab luua korduvkasutatavat koodi ja vähendada rutiinseid ülesandeid.

- Refaktoreerimine - AI abiga on võimalik olemasolev kood struktureerida paremini, lisades loetavust ja veakindlust.

- Testide kirjutamine - AI oskab juba praegu genereerida reaalselt töötavaid teste ning kui testid ei tööta, leida ka üles viga, mis võib olla nii koodis endas kui ka testis.


Tehisaru piirangud ja väljakutsed

Kuigi AI on hetkel juba üsna võimas ja kasutatav arenduses, on tal ka olulisi piiranguid:

- Loovus ja probleemilahendus – AI suudab genereerida koodi, kuid keerulised, innovaatilised lahendused nõuavad inimlikku loovust ja kriitilist mõtlemist. AI oskab tavaliselt teha seda, mida keegi enne on kuskil teinud (LLM mudel on õpetatud olemasoleva koodi peal)

- Veakindlus ja usaldusväärsus – AI genereeritud kood võib sisaldada vigu või turvaauke, mida inimarendajad peavad kontrollima. Ka võib olla AI nö poisoned, ehk siis õpetatud andmete peal, mis paneb ta meelega tegema soovitatud koodi turvaauke, et kasutajate tarkvara oleks häkitav.

- Optimeerimine ja jõudlus – AI ei pruugi alati luua koodi, mis on kõige efektiivsem või skaleeritavam.

- Suurte projektide korral abitus - AI-d on piiratud tavaliselt mingi nn context window ehk kontekstiaknaga, üle selle minnes ei saa ta enam koodist aru ja vigade arv kasvab liiga suureks.


Olles ise kasutanud Copilotit (peamiselt o1, o3-mini, Claude Sonnet 3.7 mudeleid) mitmete koodijuppide lihtsustamiseks ja refaktoreerimiseks, siis tavaliselt, olenemata kasutatavast LLM mudelist on mõistlik suurus context window normaalseks toimimiseks ca 1000 rida koodi. Üle selle minnes tuleb fail või komponent lõhkuda väiksemateks osadeks, sest piltilikult öeldes, saab siis AI mõistus otsa.

AI'l on mõistus otsas

AI mõistus on otsas. Pildi allikas: Copilot AI


Tulevik ja kokkuvõte

AI muudab programmeerijate rolli, aidates neil töötada kiiremini ja tõhusamalt. See võib automatiseerida suure osa varasemast arendustööst, kuid ei asenda (veel) programmeerijat.

Arendaja pole enam lihtsalt nö labidamees, vaid nagu dirigent, kes suunab AI-d, kes täpse juhtimise all viib sisse muudatusi, et süsteemid oleksid hallatavamad ja tõrkevabad. Ideaalselt loetavat koodi pole veel nähtud, kuid AI toob selle võimaluse meile palju lähemale.

Kuigi AI loob koodi, ei mõista ta seda täielikult ega suuda asendada loovust, kriitilist mõtlemist ja probleemilahendusoskust. Küll aga annab AI-d oskuslikult kasutav arendaja endale selge konkurentsieelise.


Allikad

1. Ülevaade levinud AI assistentidest. https://spacelift.io/blog/ai-coding-assistant-tools

2. GitHub Copilot. https://github.com/features/copilot

3. AI abilise "mürgitamise" ohtudest. https://developers.slashdot.org/story/25/03/23/2138230/how-ai-coding-assistants-could-be-compromised-via-rules-file



Tarkvaralitsentside valikust

Alustades ükskõik millist tarkvaraprojekti, on vaja alguses teha üks väga oluline valik, nimelt millise litsentsi alla see panna. Litsents ei ole ainult juriidiline formaalsus – see määrab, kes ja kuidas su koodi kasutada saab, kuidas see levib ja millist mõju see sinu ärimudelile või projekti tulevikule avaldab.

Vaatame lähemalt kolme levinud litsentsivalikut: kommertstarkvara litsents (EULA)GNU GPL ja BSD litsents. Kõigil on omad head ja halvad omadused ning lõplik valik sõltub eesmärgist.

Äritarkvara litsents (EULA) – täielik kontroll

Kui ei ole soovi, et kood oleks avalikult kättesaadav, on äritarkvara litsents (nt EULA ehk End User License Agreement) loogiline valik. Seda kasutades jääb tarkvara täielikult looja (arendaja, ettevõtte) kontrolli alla – keegi ei saa seda vabalt levitada, muuta ega edasi arendada ilma looja loata.

Plussid:

+ Täielik kontroll: Looja määrab, kes ja kuidas tarkvara kasutab.

+ Paindlik: Looja võib tarkvara müüa litsentsitasu alusel, pakkuda tellimuspõhiseid teenuseid jne.

+ Võimalik eelis konkurentsil: Lähtekood ei ole avalik, seega ei saa konkurendid seda kopeerida ja oma versiooni luua.

Miinused:

Piiratud koostöö: Kuna kood on suletud, ei saa teised arendajad seda täiustada ega ka sellest kasu lõigata.
Arenduskulud on suuremad: Looja peab kõik koodi ja veaparandused ise kirjutama või palkama inimesed nende jaoks.
Piiratud usaldusväärsus: Paljud kasutajad on skeptilised suletud koodi suhtes, kuna nad ei saa selle kvaliteeti, turvalisust või tagauksi kontrollida.

GNU GPL – avatud lähtekood ja vabadus

Kui tahta, et tarkvara jääks alati vabaks ja on avatud lähtekoodiga, on GNU GPL (General Public License) väga hea valik. Kõik GPL-i põhjal tehtud edasiarendused peavad jääma samuti GPL-i alla – see tähendab, et looja koodi võib vabalt kasutada, aga see jääb alati vabaks.

Plussid:

Tarkvara avatus: Igaüks võib koodi kasutada ja täiustada, aga ei saa seda "ära kaaperdada" näiteks oma suletud tarkvara sisse.
Toetab edasiarendamist: Kui tarkvara on kasulik, võivad teised arendajad aidata seda parandada ja edasi arendada.
Suur kasutajaskond: Paljud valitsused, akadeemilised asutused ja ettevõtted eelistavad GPL-i tarkvara.

Miinused:

Ei sobi (tihti) äriliste projektidele: Kui keegi muudab ja levitab koodi, peab ta oma muudatused samuti avalikustama – see võib olla probleem osades ärimudelites.
Pole investorite lemmik: Kui su ärimudel (või startup) tugineb suletud tarkvarale, võib GPL piirata investorite huvi.
Litsentsist tulenevad piirangud: Kõik GPL tarkvara kasutavad komponendid peavad olema samuti GPL-i all, mis võib piirata teiste litsentsidega teekide kasutamist.

MIT ja BSD litsents – paindlik kesktee

BSD litsents (ja selle variandid, nt MIT) on palju paindlikum kui GPL. See lubab kasutada koodi nii avatud kui ka suletud tarkvaras, ilma et peaksid oma muudatusi tingimata tagasi andma. See on äriliselt atraktiivne, kuid samas ei garanteeri, et koodi avatus säilib.

Plussid:

Ei pea avalikustama muudatusi: Kõik saavad kasutada ja laiendada koodi ilma juriidiliste piiranguteta.
Soodustab kiiret levikut: Kuna puudub copyleft-kohustus, on ettevõtted rohkem valmis BSD litsentsiga koodi kasutama.
Paindlik kasutamine: Saab vabalt kombineerida teiste litsentsidega (ka äriliste).

Miinused:

Kogukonna kasu võib puududa: Kui ettevõte võtab BSD-koodi, täiustab seda ja sulgeb selle, ei jõua need muudatused tagasi algsesse projekti.
Võib viia tarkvara sulgumise või hääbumiseni: Kui suurfirmad võtavad BSD-koodi ja arendavad selle edasi oma suletud süsteemiks, võib algne avatud lähtekood hääbuda.

Milline litsents siis valida?

Kui eesmärk on täielik äriline kontroll, on EULA parim valik. Kui tahta, et tarkvara jääks avatuks igaveseks, siis GPL. Kui aga peamine on paindlikkus ja ei ole vahet, kas kood jääb avatuks või suletuks, on BSD parim valik.

Lõppkokkuvõttes sõltub litsentsi valik sellest, kuidas looja soovib, et tarkvara leviks ja kas eelistada rohkem kontrolli või rohkem koostööd. 


Allikad:

1. Tüüpilised EULA näidised. https://www.microsoft.com/en-us/Useterms

2. GPL ja muud litsentsid. https://www.fsf.org/licensing/

3. MIT litsents. https://opensource.org/license/MIT


teisipäev, 18. märts 2025

WIPO - mis toimib ja mis mitte eriti

Maailma Intellektuaalomandi Organisatsioon (WIPO) haldab raamistikku, mis reguleerib patente, autoriõigusi, kaubamärke ja muid IO (intellektuaalomandi) vorme. Praegusel ajal on mõned neist süsteemidest üsnagi ajale jalgu jäänud, kuid osad neist toimivad üsna hästi.


Hästi toimiv süsteem: tarkvaralitsentsid

Siia alla kuuluvad ka avatud litsentsid, näiteks Creative Commons, GPL, MIT jne.

Litsentsid võimaldavad paindlikku IO haldamist. Avatud litsentsid, nagu Creative Commons (CC), on eriti kasulikud hariduses, teadustöös ja tarkvaraarenduses, võimaldades teadmiste laiemat levikut, samal ajal kui litsentsitingimused säilitavad autoriõigused.

Loojale jääb õigus kasutada oma loomingut nii, nagu ta heaks arvab, sealhulgas anda sama asja välja mitme litsentsi all. On mitmeid tarkvaratootjaid, kes pakuvad oma tooteid nii GPL litsentsiga kui ka kommertslitsentsiga. 

Näiteks:

  • Qt, mille UI suunitlusega raamistik võimaldab arendada vaba tarkvara kooskõlas GPL tingimustega, ent ettevõtted saavad osta kommertslitsentsi, et nad ei peaks oma lähtekoodi avaldama, kui seda ei taheta.

        Wikipedia kasutab Creative Commonsi litsentsi, mis võimaldab kasutajatel sisu vabalt kasutada, tingimusel et autorit tunnustatakse.

       Linuxi OS-i levitatakse GNU litsentsiga, mis soodustab avatud lähtekoodiga tarkvara arengut.


Täielikku ümbertegemist vajab patendisüsteem

Patentide eesmärk on kaitsta leiutisi ja soodustada innovatsiooni, võimaldades leiutajatel reaalselt oma leiutise pealt kasumit teenida, sest arendustegevusse on tihti läinud väga palju ressursse ja aega.

Reaalsuses on see aga üsna problemaatiline süsteem tänu patenditrollidele.

  • Paljud ettevõtted, kellel endal tootmist pole, ostavad patente, et nende abil välja pressida teistelt ettevõtetelt tasusid kas otse või kohtuvaidluste kaudu.
  • Mitmed idufirmad ja väikeettevõtted ei suuda end kallite patendivaidluste vastu kaitsta, mis pidurdab uute tehnoloogiate arengut.

  • Mõned suurettevõtted kuritarvitavad patente konkurentide eemaldamiseks ja turu monopoolseks kontrollimiseks, mitte innovatsiooniks.

USA-s on toimunud mitmeid kohtuasju, mis näitavad ilmekalt patendisüsteemi probleeme:

  • NTP vs. RIM (BlackBerry) (2006) – NTP, patenditrollist ettevõte, kaebas BlackBerry tootja RIM-i kohtusse ja nõudis rahalise kahju hüvitamist, kuigi NTP-l polnud tegelikku toodet, ainult patent.
  • Apple vs. Samsung (2011–2018) – Apple kaebas Samsungi kohtusse, süüdistades teda iPhone'i disaini ja funktsioonide kopeerimises. Kuigi Apple sai osaliselt õiguse, näitas see vaidlus, kuidas suurettevõtted kasutavad patente teiste vastu relvana.
Pildi allikas: eff.org


Selleks et patendisüsteem toimiks õiglasemalt ja toetaks tegelikku innovatsiooni, tuleks karmistada patenditrollide vastu suunatud regulatsioone, piirata liiga laialt määratletud patente ning soodustada süsteemi, mis aitaks väiksemaid leiutajaid kaitsta korporatsioonide eest.


Allikad:

1. https://www.gnu.org/

2. https://www.qt.io/qt-licensing

3. https://www.eff.org/issues/resources-patent-troll-victims


neljapäev, 13. märts 2025

Netietikett: 90ndad vs praegu

Virginia Shea netiketi põhimõtted, mis pandi kirja 1990ndatel, olid mõeldud internetisuhtluse juhendiks ajal, mil veebi kasutajaskond oli alles tekkinud ja kasvamas. Paljud neist reeglitest on ajas endiselt olulised, kuid mõne tähtsus on vähenenud tehnoloogia arenguga. Allpool on üks käsk, mille tähtsus on ajas kasvanud, ja teine, mis on suures osas oma olulisuse kaotanud.

Veelgi olulisem: “Ära unusta, et räägid päris inimestega”

Internetis suheldes on lihtne unustada, et ekraani taga on päris inimesed – kel on tunded, mured ja emotsioonid. Kui 1990ndatel oli see oluline e-kirjades ja foorumites, siis tänapäeval, kus suhtlus käib palju suuremas osas võrgus, peamiselt sotsiaalmeedias ja kommentaariumites, on see veelgi tähtsam. Anonüümsus ja kiire infovoog muudavad lihtsamaks küberkiusamise, solvavate kommentaaride kirjutamise ja trollimise. Ometi võivad ka paar mõtlematult visatud sõna kellelegi päriselus haiget teha. Seega tasub alati enne kirjutamist hetkeks peatuda ja meeles pidada, et teisel pool ekraani on päris inimene, mitte lihtsalt kasutajanimi.

Tähtsuse kaotanud: “Ära raiska teiste internetiühendust suurte failidega”

1990ndatel, kui internet oli aeglane ja andmemaht piiratud, pidi suurte failide saatmisega ettevaatlik olema – keegi ei tahtnud, et tema postkast ummistuks või ühendus minutiteks või lausa tundideks kinni jookseks. Tänapäeval pole see enam probleem. Internet on kiire, pilveteenused võimaldavad faile mugavalt jagada ja voogedastus on saanud igapäevaseks. Tähtis pole enam see, kui suur fail on (kui ta just 7 terabaiti pole, muidugi), vaid kas see on vajalik ja kas saaja saab seda lihtsalt avada ja kasutada. Või kustutada, kui see ebaoluline on.

1990s large file downloads frustration
Faili allalaadimise ootamine. Allikas: Copilot

Netikett ei ole lihtsalt vanade reeglite kogum, vaid pidevalt muutuv arusaam heast internetisuhtlusest. Tehnoloogia areng ja uued suhtlusviisid on toonud kaasa vajaduse kohandada varasemaid põhimõtteid – mõned neist on muutunud olulisemaks kui kunagi varem, teised aga kaotanud oma tähenduse. Tänapäeva digimaailmas tasub keskenduda eelkõige sellele, kuidas me üksteisega suhtleme, millist sisu jagame ja millist mõju meie sõnad ja teod veebis võivad avaldada. Hea netikett ei tähenda ainult reeglite järgimist, vaid teadlikku ja mõistlikku käitumist, mis aitab muuta interneti turvalisemaks ja paremaks kõigile.

Allikad:

1. http://www.albion.com/netiquette/corerules.html

esmaspäev, 10. märts 2025

Kvantarvutid ja determinism

Praeguste spekulatsioonide järgi on oletatud, et kvantarvutite tulek (ütleme siis, et päris võimsate kvantarvutite tulek) võib muuta nii mõndagi meie tavaelus. Neist võib olla nii kahju kui kasu, paljudki raudkindlad krüptograafia alused tuleb ümber hinnata, kuid kindlasti on suur kasu meditsiinile ja teadusuuringutele mitmetes valdkondades.

Aga viskaks õhku hoopis provokatiivse küsimuse - kas me saame näha kvantarvutite abil tulevikku? 

Kui mul on pastakas käes ja ma lasen tast lahti, siis ta kukub maha. Maha kukkumine on otseselt eelneva oleku tagajärg. Seega see on ennustatav.
Kui meil oleks ülivõimas kvantarvuti, millega on võimalik ennustada iga aatomi ja kvantosakese käitumist maakeral, kas ma saan ennustada ka tulevikku? Sest kui ma suudaks kuidagi talletada 1 hetkel kõigi osakeste oleku, siis kõik ülejäänu peaks olema deterministlik. Sellest talletamise hetkest saan ma ennustada mis saab edasi, kui ka näha minevikku, kuidas asjad _tegelikult_ olid ja mis siis ikkagi JFK-st sai.

Sellise fantastilise teemakäsitluse viskab õhku Alex Garland miniseerias Devs (2020). Ta viitab oma ulmeteoses Pierre-Simon Laplace'i teooriale nn "Laplace deemonist", mille järgi universum on täielikult määratud, kui kasvõi ühel ajahetkel on teada kõikide osakeste asukohad ja kiirused. Heisenberg ilmselt keerleks sellise väite peale nagu vurr oma hauas, aga... See on siiski väga huvitav filosoofiline mõtteharjutus. 
Loomulikult tekitab küsimusi sellise tehnoloogia kasutamine ka eetiliselt – kas teadmine tulevikust võib seda muuta? Ja kui oleks võimalik on näha minevikku detailideni, millised oleks selle mõjud ajaloole ja inimkonna identiteedile? No ja kas Jeesus ikkagi löödi risti?

Ulmesõpradel ja kvantarvuti-huvilistel soovitan kindlasti vaadata, kui seda pole veel tehtud.
Rohkem ei saa siinkohal rääkida, sest et spoilerid, võib-olla isegi liiga palju spoilerdamist juba :|


Kaader seeriast Devs. Pildi allikas: imdb.com



Allikad
2. miniseeria Devs ise - https://disneyplus.com

kolmapäev, 5. märts 2025

Jälgimiskapitalism ja digiaedik Eestis

Digitaalne areng

Internetiajastu ja digitaalne areng on mõjutanud kõiki riike üle maailma, luues uusi mugavusi ja võimalusi nii inimestele kui äridele. Eestis on see areng vägagi tuntav, sest suur osa asjaajamisest riigiga, omavalitsustega ja ka poodidest ostlemise saab korda ajada internetis. Ka hariduse omandamine on võimalik kodust lahkumata, kui selleks peaks vajadus olema, rääkimata töötamisest (eriti IT alal).

Iga head tehnoloogiat saab aga kasutada ka halvasti - digitaliseerimine on muutnud väga lihtsaks ka inimeste jälgimise ja ka jälitamise - kui aastakümneid tagasi pidi näiteks potentsiaalse kurjategija jälitamiseks ikka füüsiliselt agent tema järgi sõitma, siis ammu pole selleks enam vajadust - kuna pea kõik kasutavad nutitelefone ja internetti, siis jälgimiseks piisab ainult hiireklikist, kui sedagi - ka selle otsuse võib vastu võtta algoritm.

Jälgimiskapitalism

Kuna inimeste jälgimine on muutunud tänu tehnoloogilistele vahenditele ülimalt lihtsaks, siis loomulikult ei kasuta seda ära ainult eriteenistused, vaid sellega saab teenida ka puhtalt ärilist kasumit. Kasutajate kohta massiliselt andmeid kogudes on võimalik suunata tarbijate käitumist. Andmed on uus raha ning "data mining" on uuem kulla kaevandamise ekvivalent.

Hetkeseis Eestis (2025 algus)

Eestis on tugevad andmekaitseseadused ja GDPR-i rakendatakse üsnagi efektiivselt. Sellest hoolimata on paljud suuremad platvormid andmekaevega saanud (pigem illegaalselt, ütleks) massiliselt koguda kasutajate andmeid, eriti paistavad sellega silma suuremad sotsiaalmeediahiiud, nagu Facebook, Twitter/X, Instagram, lisaks otsingumootor Google jpt. Andmete kogumise abil pakutakse kasutajatele suunatud reklaame, et teenida rohkem ärilist kasumit ning andmete kogumise abil on sisuliselt võimalik ka mõjutada inimeste poliitilisi vaateid ja suunata masse endale sobivas suunas.


Tulevikustsenaariumid

Positiivne stsenaarium

Andmekaitse, läbipaistvuse suurendamine ja kasutajate harimine võib tagada, et ühiskonnana liigume parema demokraatliku ühiskonna poole. See eeldaks mitmeid muutusi meie praeguses elus, aga see ei ole võimatu. Juba EL tasemel on tehtud ju algul tobedana tunduvaid samme (nt kohustus teavitada küpsistest igal veebilehel), ent mis kokkuvõttes tõstavad kasutajate teadlikkust sellest, et iga nende internetikülastust võidakse jälgida ja ka ära kasutada.
Ideaalina vabas ühiskonnas oleks otseosalusdemokraatia võimaldamine samuti realistlik praeguste tehnoloogiliste võimaluste juures, kus inimesed saaksid hääletada konkreetsete seaduste ja määruste poolt, ilma riigikogu või volikogu vahenduseta.

Futuristlik pilt tulevikuühiskonnast
Futuristlik ühiskond. Pildi allikas: Copilot

Negatiivne stsenaarium

Kui kasutajaid ei õnnestu kaitsta jälgimiskapitalismi eest, siis võime liikuda hoopis digitaalse diktatuuri suunas. Näiteks suured sotsiaalmeediaplatvormid või ka riik saavad kontrolli inimeste meelsuse ja käitumise üle. Suur risk on nii lauspropaganda kui ka tsensuuri tekkeks, mis teenib kellegi huve, kas siis võimu teostamiseks või kasumi suurendamiseks. Selline stsenaarium võib olla samuti üsna realistlik, kui interneti kasutajad ei teadvusta iseenda mõjutatavust nii sotsiaalmeedia kui ka uudiskanalite poolt. Sel juhul saab meie vaba ühiskond lõpu nagu meie ühes naaberriigis... 

NSVL lipp. Pildi allikas: koryotours.com




Allikad


Tehnoloogia eetilisus/ebaeetilisus

Kas IT-tehnoloogia saab olla iseenesest (a priori) eetiline või ebaeetiline? Küsimus, kas tehnoloogia saab olla oma olemuselt eetiline või e...