Kodo mirtis. Koks bus programavimas ateityje?

Komentarai Prisijungti

Viršuje:   Seniausi | Naujausi

Shinigami 2017-10-11 19:34
Kaip ir visur didžiausia problema yra PINIGAI. Painiavos ir milžiniški kodų blokai kurių niekas nebe supranta susidaro dėl pinigų. Neįmanoma projektavimo metų numatyti visu galimu panaudojimo variantų, todėl suprogramuoji pagrindinius, o paskui vis pridedi ir pridedi. Klaidu visu taip pat nenuspėsi. O kai viską pastebi, perrašyti visa kodą yra brangų. Pigiau padaryti kokį "lopą" kuriuo užlopytum skyle, arba padidintum funkcionalumą. Pakui ant to "lopo" atsiranda antras "lopas", paskui trečias ir taip jų daugėja. Kol kodo niekas nebe supranta. Pažiūrėkim į koki AutoCAD ir LibreCAD. AutoCAD užima 2 GB, LibreCAD 400 MB. Kol AutoCAD yra lopomas, LibreCAD yra perprogramuojamas. Nes vienas mokamas ir turi rūpintys pelnu, o kitas nemokamas nemokamas ir programuojamas laisvu nuo darbo metu. Dar kita problema, kai programuotojas nesugeba sudėtingos problemos suskaldyti į daug paprastų problemų. Tada taip pat gauni ko niekas nesupranta. WYSIWYG - man nelabai patinka. Kartą teko su juo susidurti forume. Norėjau parašyti žinutę į kuria įterpiau tekstą iš kito puslapio. Viskas atrodo gražiai, bet jos išsiųsti negalių, nes mėto kad žinutėje yra klaidų, kurių nerodo, bet kurias nukopijavo iš kito puslapio. Kol visko neperrašiau ranka žinutės neišsiunčiau. Kodą galima paslėpti, bet jis niekur nedingsta. Kaip buvo milijonai eilučių, tai jie ir liko. Tik jų nebematai ir negali žinoti su kokiomis problemomis tas kodas susidurs. Nes kad ir kiek kompiuteriai tobulėtu, jie vis tiek dirba kaip dirbo prieš 50 metų, tik greičiau.
conjurer 2017-10-12 13:12
Programavimo kalbos yra skirstomos į aukšto ir žemo lygio kalbas. Kuo žemesnio lygio programavimo kalba, tuo su ja sunkiau programuoti, bet gerai parašytas kodas būna labai greitas, užima nedaug, ir dažnai naudojamas labai rimtuose projektuose. Kuo aukštesnis lygis, tuo mažiau klaidu gali padaryti programuotojas, bet programa tampa lėtesnė, ir remiasi kitu parašytu kodu/bibliotekomis. Taip pat programuojant tokiomis kalbomis labiau atsipalaiduojama, ir algoritmai kuriami labai neoptimaliai (kas gali privesti prie atminties trūkumo ir vairo užsiblokavimo). Straipsnyje siūlomas sprendimas - labai labai aukšto lygio programavimo kalba. Tačiau tokiu atveju nebus taip, kad kodo nebus. Visada bus kodas, nes kiekviena programavimo kalba yra irgi kodu parašyta programa. Tai gali privesti prie blogai parašytos pačios programavimo kalbos. Ja dirbantis programuotojas padarys viska gerai, tačiau dėl klaidos pačioje programavimo kalboje kodas gali veikti kreivai. Kaip pavyzdį galiu paminėti daug kam žinoma wordpress platforma. Tai įrankis kurti web puslapius, kurio beveik nereikia programuoti. Norint pasiekti reikiamą funkcionalumą tereikia ji sukonfigūruoti, įsirašyti reikiamus įskiepius (plugins), ir išsirinkti norimą išvaizda (theme). Tačiau pati wordpress kodo bazė yra ganėtinai bloga ir nuolat atrandamos jos problemos. Čia kritiniu wordpress problemu. Taip pat įskiepiai kartais būna labai neoptimalus, arba turi dar didesniu saugumo problemų. Pakolkas geriausias kodo sutvarkymo sprendimas, kiek žinau, yra resursu metimas i kodo tikrinimą. Kuo daugiau programuotoju peržiūrės kodą, tuo daugiau klaidų bus galima pastebėti. VMware kažkada sužinojo kad jų kodas yra nutekintas, ir bijodami kad hakeriai gali surasti iš išnaudoti klaidas, patys pradėjo kodo peržiūra. Taip jie surado virš 20 labai rimtu pažeidžiamumų. Taigi jei automobilio kompas daro klaidas, problema firmos požiūryje i programine įranga. Ir tai reikėtu vertinti taip pat kaip nekokybiška varikli nes gamintojas tam pagailėjo investicijų ir pardavė nekokybiška produktą. P.S. Komentarai "atsirišo" nuo straipsnio.
vanduo4 2017-10-14 17:37
- Straipsnį supratau taip - ": kol mes nesuprasime "lopų" savarankiško darbo privalumų, tol mes mesime visus resursus politinei kodo sargybai.
lape 2017-10-14 19:29
O gal problema tame, kad iš vis daugelyje vietų nereikia to kodo - kam, pav. per programą sukinėti vairą? Čia gal, kad kokiam centriniame serveryje patikrinti ar teisingai daromas posūkis kokioj nors sankryžoje? Na jei labai jau reikia sutapyti metalą (turiu galvoj vairo kolonėlę) tai gali įdėti kokį komparatorių t.y analoginį mazgą. Ir jis dirbs greitai ir patikimai. Nors gal jau senieji inžinieriai išmirė, ir tokios techologijos jau pamirštos...
AAA000 2017-10-14 19:37
man arodo nesupratai straipsnio. problema - kad viskas tapo ant tiek sudetinga, kad nebeimanoma rast klaidu. straipsny siulo programavimo vizualizacija. ir siulo kurt modulini programavimo varianta, kai yra dviguba vidines kontroles struktura. pirmas yra tiesiog pagalbinis irankis. kuris problemos nesprendzia, bet pagerina programavimo salygas. antras - programavimo supaprastinimas, kuris sprendzia problema, bet reikia aukstesnes programavimo kvalifikacijos tik kaip supratau, eiliniai programeriai taip iprato suda malt, kad jauciasi nepakeiciami ir nenori permainu.
AAA000 2017-10-14 19:47
ne del to daro, o del vairavimo galimybiu ispletimo. zmogus vairuot gali labai ribotai. per programa vairuot galima geriau. pvz kad paspartint vairavimo greiti, tiesiog pakeli vairavimo variklio apsuku dazni. o kad zmogus galetu vairuot greiciau jau reiketu i vairo kolonele istatyt sugreitinancio perdavimo reduktoriu, o tada iskiltu problema, kad zmogus negaletu pasukt vairo - nes nebeturetu tiek jegos. vadinasi dar tektu ir istatyt kazkoki vairo stiprintuva. du niekam nereikalingi papildomi irenginiai... kai programiskai tereikia pasiust signala padidint dazni... plius programiskai valdyt galima is daugelio vietu, taip pat nuotoliniais budais ir pan. mechaninis tiesioginis valdymas paprastai tokiu isplestiniu variantu nelabai turi. o visi dabar nori kuo daugiau pasirinkimo... -------- siaip tai as problema spresciau kitaip. reiktu isleist istatyma, kad bet kuriam programuojama irenginiui butu privaloma beproblemine valdymo-naudojimo programos alternatyva. o kurie nesutinks tokiu irenginiu gamint, mokescius didint. o jei dirbtinai kliudys diegt alternatyvas - baudos ir veiklos stabdymas sakykim imam kompa. jis turi turet dvi operacines sistemas. viena gali but "firmine", o kita alternatyvi. kad uzluzus pirmai - naudoji be problemu antra alternatyvia sistema. dabartinis irenginiu gaminimo budas yra nesamone. valdymo dubliavimas turi but palaikomas analoginiam lygyje. ir sakykim ne maziau kaip 10 programiniu vienetu. o vartotojas pats nuspres kiek jam reikia isidiegt ta prasme reikia sunaikint valdymo programini monopoli - kad butu reali programine konkurencija.
lape 2017-10-14 20:07
Aš, ne apie tai. Klausimas - ar būtina kiekviename šarnyre instaliuoti windows10? gal pakanka tiesiog elemetaraus operacinio stiprintuvo, atitinkamai reaguojančio į daviklius.
AAA000 2017-10-14 20:15
tu matyt nesupranti pacio valdymo principo. programa sedi tarp davikliu ir operacinio stiprintuvo. o ne uzdeta "ant virsaus" ar prikabinta "is pasalies". i pati sarnyra windowsu niekas ir nekisa, nes tai yra per daug kvaila. taip sumastyt gali nebent programeris, kuris neturi supratimo, kas yra sarnyras, bet save isivaizduoja esanti savaime tinkamu sarnyro funkcijom programint vien todel, kad moka kazkokia programinimo kalba. as esu uz tai kad ten sukistu windowsus, linuxus ir dar bent 8 nepriklausomus programinius produktus. visokiu valdymo sudetingumo lygiu. nuo elementaraus iki ypac ismanaus. dabar mums siulomas tik vienas valdymo variantas. plius ispletimo priedai. bet tik tam vienam valdymo variantui ir dejuojama, kad va - viskas taip sudetinga, kad net klaidu islenda o gamintojas kaltes neprisiima - atseit cia kazkokia "globali savaimine" problema. straipsny parase, kad tai melas ir rimtos imones sitai problemai turi sprendimu.
lape 2017-10-14 20:30
Na tai aš ir rašiau - kas senieji inžinieriai išmirė, nes dabartiniai programuotuojai nesvokia, kas yra operacinis stiprintuvas, ir kaip su juo spręsti diferencialines lygtis. Ir vietoj jo instaliuoja win10, su visom desktopo temom , printerių draiveriais ir visais servisais. Ir tik tam kad apdoroti vieno potenciometro duomenis...
kernel_panikuoja 2017-10-14 20:37
Gal jau laikas issiblaivyt butu? Nera tokio dalyko, kaip "beproblemine programos alternatyva", nebent kalbam apie kazkokius trivialius teorinius atvejus. Atmetus namu rinkos irenginius, kuriu dauguma yra sudas, tai hi-tech specializuotoje irangoje net nerasi tos alternatyvos, nes visas know-how ir yra implementuotas gamintojo softe. Jeigu ivestum tokius tupus istatymus, viskas baigtusi tuo, kad gamintojas sumoketu kitai saliai tam, kad po NDA ta salis suteiktu "alternatyvia versija", kuri finale butu rebrand'inta ta pati versija. Tai butu tas pats, kas i telefona irasytum Android 8.0 + koki RemixOS alternatyva, kai abu yra tas pats crap'as.
AAA000 2017-10-15 00:32
sitai butu tik pradzioje. su laiku atsirastu normalus gamintojai, labiau linke konkuruot ir finansuot isradimus ir naujoves, o ne besispecializuojantys visokiu patentu lobizme ir skyliu istymuose ieskojime. as manau tai pasiteisintu. ta prasme reikia tik teisingai stimuliuot. jei nepasiteisintu - visada galima atsaukt "kvailus" istatymus o va vartotojai sumoketu pinigu uz brokuota softa jau niekaip nesusigrazins...
kernel_panikuoja 2017-10-15 10:14
Nemanau, kad toks modelis veiktu ir tiek. Jeigu jau bandyti daryti ka nors panasaus, reiketu daryti "is kito galo". Reiketu ivesti kazkokius reikalavimus, kad gamintojas tau suteiktu detalia informacija apie perkama daikta, kuri nera jo intelektine nuosavybe, bei papildomai nedraustu i ji irasyti kita programine iranga. Labiau techniskai kalbant - neuzrakinetu bootloader'io ir duotu aparatines dalies komponentu sarasa su datasheet'ais. Idealiu atveju ir schematikas. Butent cia yra esminis stabdis - tas "alternatyvus" soft'as atsiranda, kuomet aparatine dalis yra hacker-friendly. Taip atsirado OpenWRT/DD-WRT marsrutizatoriu soft'as, kuris yra geresnis uz dauguma out-of-box router firmware'u, taip pat palydoviniu imtuvu N soft'o versiju, pvz. "Back Hole". Dar butu galima reikalauti, pvz., service/workshop manual'o prie automobilio, kad nereiketu visada vaziuoti i servisa, o daug ka galetum pasiremontuoti pats, jeigu sugebi. Taisyti/tobulinti paciam mano galva turetu buti savininko teise, galbut prarandant garantijas, bet visvien. Dabar esame prieje iki tokios situacijos, kad, pvz., perkant zaidimu konsole, pirkejas formaliai net netampa jos savininku, jis tik gauna teise ja naudotis. Pirkejas turetu tapti faktiniu savininku ir tureti teise jos aparatine dali naudoti kaip jam patinka, kad ir kaip PC su Linux'u salia pagrindines zaidimu funkcijos. Problema ta, kad tokie dalykai konfliktuoja su tradiciniais verslo modeliais, ir jeigu namu rinkai tokius teoriskai ir butu galima prastumti, tai industrial/scientific/medical etc. beveik be sansu.
AAA000 2017-10-15 21:05
o, pradejai galvot cia tu siulai praktiskai ta pati, tik kad "persiunant" programine dali i ta pati daikta vietoj originalaus. plius tu siulai lauzt kad atskleidinetu technologijas. o del to manau nelabai sutiks. as siulau, kad jau gamintu kaip su keliais programuojamais procesoriais. kad butu vietos keliems programiniams valdymams. kad butu kazkoks bendras standartas. juk tas pigu. o tas visokias programines duomenu nuomas tai isvis reikia raukt. cia yra dirbtinis pazangos stabdymas ir monopoliju kurimas verslo interesu tenkininmui. istatymai kuriami visuomenei, o ne verslui. verslas ir taip jau yra suteikta teise melzt visuomene, o cia dar is visokias isskirtines antikonkurencines salygas prisigalvojo. pamokejo istatymleidejams i kisene - o visuomene turi jau vergaut ekonomiskai. nera tokiu dalyku, kaip "tradiciniai verslo modeliai". cia isvis propagandine savoka. bet koks verslas yra visuomenes engimas. yra tik labiau socialiai orientuoti verslo darymo budai. programine nuoma isvis yra iteisintas vagimo budas ir tiek. tau parduoda ne paslauga, o paslaugos galimybe. kitaip sakant - ora tu moki net ne uz kvepavima, o uz tai kad gautum teise kvepuot, nes matai kazkas uzsipatentavo oro tiekimo krana ir isiteisino istatymais procentus
kernel_panikuoja 2017-10-15 22:00
Na, as nesiulau nei vieno varianto, nes manau, kad abu jie praktiskai beveik neigyvendinami. Tik fantazuoju ir sakau, kad jeigu hipotetiskai reiketu kazko reikalauti, as pradeciau nuo namu rinkos irenginiu aparatines dalies atrakinimo ir nemokamos prieigos prie siai rinkai skirtu chip'u datasheet'u. Tai padetu rastis atviro kodo alternatyviam soft'ui, kuris namu irenginiuose daznai buna geresnis uz firmini. Kas del verslo modeliu ir socialiniu dalyku - as ne siu sriciu specialistas, tai nesigincysiu. Man namu rinkos klasikiniai modeliai yra tie, kur pagrindines pajamos ateina is aparatines ir programines dalies, kaip produkto, o nauji tie, kur pajamos ateina is servisu ir content'o. Pastaruoju atveju paprasciausiai nelieka butinybes grieztai uzdaryti aparatine dali ar soft'a, nes ne tai esme. Aisku tada pagal tavo logika reiketu reikalauti, kad galetum pasirinkti alternatyvu backend'a/cloud'a ir pan. Anyway. Neinant i lankas ir atsakant i straipsni - ne, kodas apskritai nemirs, tik pasikeis specifiniu sriciu development'o paradigmos ir workflow'ai.
HardAxe 2017-10-16 11:13
skundžiasi, kad sistemos tapo perdaug sudėtingos ir siūlo... dar sudėtingesnę susistemą viskam išspręsti. Iš patirties galiu pasakyti, kad kuo universaliasnį ir galingesnį frameworką naudodavom tuo didesnės bėdos laukdavo įveikus ~80% reikalavimų. Kažkas pasidaro neįmanoma su duotu frameworku ir gali kukuot žvirblio giesmę. Mano manymu dabar paplitęs blibliotekų ar modulių naudojimas yra pats geriausias sprendimas. Kiekviena biblioteka dirba savo darbą, ją galima puikiai ištestuoti, ir tas galutinis kodas tesloj, kaip mus visus gazdina, nėra toks didelis. Milijonai eilučių susidarytų viską rašant nuo nulio, bet naudojant aukšto lygio bibliotekas realiai išeities kodo nėra tiek jau daug.
AlvydasR 2017-10-16 12:54
mano supratimu problema tame, kad žmogus, pramokęs programuoti, save laiko programuotoju, nors pramokę rašyti savęs rašytojais ir nelaikom.
conjurer 2017-10-18 12:59
Ir nereikia sakyti, kad klaidų neįmanoma rasti. Visi gali rasti adatą šieno kupetyje, tik tai užima daug laiko. Tačiau priemonės padedančios tą daryti irgi nėra sprendimas, jei žmogus nemoka jomis naudotis. Todėl geresnis sprendimas samdyti žmones, kurie tame nusimano. Jie su savim atsitemps ir priemones. Keista kad "unit testing" nebuvo paminėtas straipsnyje, manau tai svarbiau nei kodo vizualizacija. Dabar apie hackinamas mašinas - NE. Telefonams, ar maršrutizatoriams tas tinka, galima visą laiką bandyti naują OS, tobulinti jos funkcionalumą, ir jei po 5 metų nuo išleidimo pasirodo klaida, gali ją sutvarkyti žinodamas, kad niekas dėl to nežuvo. Tačiau motorinės transporto priemonės su neaišku kieno, ir kaip parašyta OS jau sukelia didesnį pavojų. Todėl tokius OS reikėtų bandyti kad ir pačių gamintojų sukurtuose simuliatoriuose, kurie bandytų visais galimais būdais "užkabinti" tą OS. Techninė apžiūra taip pat turėtų kažkaip patikrinti tą naują OS, arba ji turėtų būti sertifikuojama kažkokiu kitu būdų, ir techninė turėtų patikrinti ar būtent įrašytos versijos patikros suma, atitinka sertifikatą. Ir tai neturėtų būti lengvai perrašoma OS. Tarkim "gatvės lenktynininkas" sugalvos pasididinti variklio galią, su tokio OS beta versija, ir nuo 150km/h, jam užsiblokuos vairas. Taigi iniciatyva kaip ir graži, bet tokiuose produktuose kaip automobiliai, alternatyvaus softo gamyba yra ganėtinai brangi, potencialiai pavojinga ir reikalauja bendradarbiavimo su gamintojais. Su linux buvo viskas daug paprasčiau.
zidrunas.wulx 2017-10-18 23:14
"Nors iki kva­nti­nių kom­piu­te­rių ir jų ke­lia­mos grės­mės mū­sų ci­vi­li­za­ci­jai dar (ti­kė­ki­mės) to­lo­ka" tikėkimas? tikėkimės? jie ble juokauja? Kvantiniai kompiuteriai vienas iš laukomiausiu dalyku yra
Shinigami 2017-10-19 06:36
Ką galiu pasakyti. Šizofrenija yra sunki liga. Vieni bijo kvantinių kompiuterių. Antri bijo DI. Treti bijo visų technologijų, todėl net savo atskirta bendruomenę susikūrė kurioje kraujomaiša vyksta kasdien ir tai vadina dievo siustu išbandymu.
punktyras 2017-10-19 12:06
ir tik tada taškytis išminties/humoro perlais/trūkumu.