Sellega oli esimese turuletulija eelis. Teatud sorti antipattern - umbes nagu Wordpress on enamuse veebisaitide taga (vist veel), kuigi tegemist on täieliku kräpiga.
Jah, see on meie vanaisade kangelasliku võitluse lugu, aga see ei tähenda, et ajalugu oleks saanud teistmoodi minna. Aasta peale seda lugu oli neid juba turul mitmeid.
OS/2 piduriks oli see, et see nõudis korralikku riistvara, mis oli tol ajal - 1989a - meeletult kallis. Turuosa jäi seega väga väikeseks, ning seetõttu laiatarberakendused jooksid kõik kas DOS-i all või Windowsi all (mida oli sel aastal tunduvalt vähem kui DOS-i omi) ning lihtsalt polnud vajadust OS/2-te soetada, kuna muud moodi sai odavamalt.
OS/2 ja Xenix püüdsid PC-d tuua “päris tööjaamade” turule. Protected mode, pre-emptive multitasking, security jne. Selles sektoris olid juba ees kõvasti etableeritud Sun, Cadmus, Apollo ja nii edasi ja nii edasi. Pealegi, PC-st tollal “päris arvuti” tegemine lennutas eelarve nii kiirelt taeva suunas, et oligi siis juba mõistlikum Sun ligi võtta.
MS tegi kavalalt. Samm sammult. DOS… single tasking, real mode. Win3.11 GUI-na selga (kuigi see oskas juba prot modesse ka minna). Win95 tõi kaasa full 32 bit rakneduste ja pre-emptive multitaskingu toe (32 bit appidele ainult).
Siis tuli hulk graaflisi uuendusi ja teekide ja lisavõimaluste täiendusi (98, Me). Ja siis alles liideti tööjaama NT ja Win9x kokku XP-ks. NT4 elas 64MiB peal ära. Mitte kiirelt, aga elas. 2K vajas juba 128-256. 512 oli lill.
Arvutid olid selleks ajaks jõudnud ikkagi “maagilise gigahertsi” ja 2GiB RAM manu.
Ehk siis… natuke liiga vara hakati pihta. GUI ja 32bit protmode korraga käis enamikule kraamist lihsalt üle jõu. Ja kui jõud taha väänati, siis läks kallimaks kui RISC arhitektuuriga masin.
Cayennest saab ka N1 veoka teha, aga kas alati peab.
To: Offf.
Tol ajal määras operatiivmälu maksumus kõike seda, mis suunas arvutitööstus arenes.
Mäletan ise tollest ajast reklaame ajakirjade vahel PC-dest kus oli 2 MB mälu. Arvuti hind oli tuhandetes dollarites.
Selleks ajaks kui Windows 95 / 98, NT4 ja muu hea kraam välja tuli, oli mälu hind kukkunud röögatult. Ning alternatiiviks PC-maailmas ei saanud mitte OS/2 vaid Linux.
Tol kaugel ajal arenesid asjad imekiiresti, mitte nagu tänapäeval, kus 10 aastat vana arvuti täidab kõik oma ülesanded ka täna, v.a. kõige vingemad mängud. Isegi mälu ja kõvaketast pole vaja olnud vahepeal juurde panna.
Põmst nõus, kui mälu on laialt käes, siis seda ka laristatakse. Kõvad mehed tegid omal ajal Fortune 500 kompanii “payrolli” ja ärisõnumite vahetuse ja veel ühte teist “nippet näppet” ka 8kB core memoryga ära
Aga jah, mälu oli kindlasti takistuseks. Ütleme siis nii, et “päris” OSi enam-vähem alumine piir algab sealt kusagil 8Mib juurest. Samas, 8MiB 1990ndatel oli ikka überleet. Enamik kraapis taskupõhjadest viimase kokku, kui DOOM välja tuli, et nui neljaks, peab selle 4MiB kokku saama
Oleks-poleks-shmoleks mingi ime läbi RAM-i maksumus 1980-date lõpus äkitselt meeletult kukkunud, oleks kogu operatsioonisüsteemide (ja seega ka rakenduste) turg hoopis teistsuguseks kujunenud. Võib-olla oleks me kõik need viimased 36 aastat hoopis OS/2-e ja IBM-i aktiivselt kirunud.
Küsimus Offf-ile:
Kui suure algustähega arendaja PHP-d väldib, siis mis keelt ta eelistab?
Assemblerit, Masinkoodi, VHDLi, C-d, C++, Rusti, Go-d kui on Tõeline Arendaja
Kui on lihsalt Suure Algustähega, siis C#, Python, Ruby
Vajaduse korral suudab Arendaja kirjutada ka Halbu ja Igavaid Äriraknendusi Javas
Arvutiteaduse Arendaja eelistab LISPi, Haskelli, Lambda Calculust vms.
Vana Kooli Arendaja suudab 2025ndal aastal ära pätsida ka 1968. aastal otse “rauale” kirjutatud COBOLi koodi, kus riistvaradraiverid, mäluhaldus, queue processing ja äriloogika on kõik risti-rästi teineteise sisse kirjutatud ja kogu kooslus nõuab väga spetsiifilist IBM360 mudelit ja setupit (tänapäeval muidugi zOS kõhus emuleeritud).
Ja lõppude lõpuks ja peamiselt. Ärgem unustagem:
Tõeline Arendaja suudab kirjutada FORTRANit igas keeles
Mainimata on programmeerimiskeel Delphi, milles on kirjutatud suur osa igasugusest Eesti vanemast korporatiivsest tarkvarast ja ka muu vanem tarkvara, k.a. kuulus Skype.
Mõned nõksud kuidas Tõelist Arendajat ära tunda
TA ei kasuta…
delaysid või taimereid, ta teab täpselt, mitu nanosekundit iga instruktsiooni täitmine aega kulutab, kui tal on vaja viidet, siis kutsub ta selleks välja mõne alamfunktsiooni, mis teeb midagi kasutlikku.
loop iteraatoreid - ta väljub endless loopist overflow exceptioniga ja suunab exception handleri tagasi “main” harusse (või kuhu parsjagu vaja on)
TA kirjutab isemodifitseeruvat koodi
TA kirjutatud koodi suudab lugeda ainult teine TA
TA ei kasuta IF…ELSE
TA ei karda kasutada GOTO/JMP
TA alustab ülesande lahendamist sellest, et loob oma grammatika, lexeri ja parseri ning kirjutab kompilaatori - loob endale uue keele just selle spetsiifilise ülesande kõige efektiivsemaks lahendamiseks.
TA suudab töötavat ja vigadevaba koodi kirjutada ka legaalsete või keelatud mõnuainete mõju all…
…vajadusel ja 36 või 48 tundi järjest
TA tunneb riistvara, millel tema kood töötab, nii hästi, et suudab mõne ülesande optimaalselt lahendada hoopis riistvara häkki kasutades
TA jaoks ei ole probleem kirjutada omaenda OS, shell ja kompilaator …
…ise disainitud riistvarale.
Kuulsaid Tõelisi Arendajaid ajaloost: Seymour Gray, Gary Killdall, Linus Torvalds, John Carmack, Grace Hopper, Dennis Richie, Alan Turing, Bjarne Stroustrup, Donald Knuth…
(vabandused kõigi teiste ees, kes kindlasti vääriks, aga jäid nimetamata. LHV foorum saab enne täis, kui selle nimekirjaga lõpule jõuda)
Ma olen suurema aja oma elust IT-sektoris toimetanud, aga näinud olen ma ainult ühte TA-d. Tüüp jättis keskkooli pooleli, et arendajaks hakata, valdas vabalt 20 keelt ja kirjutas koodi kümne näpuga ning sama kiiresti kui mõni sekretärineiu. Ja muidugi, pruukis kõiki aineid mis kätte sai.
Ja siis oli veel üks tüüp, kes käis küll ilusasti iga päev tööl, aga oli nii enesesse tõmbunud, et kellegagi kunagi sõnagi ei rääkinud, isegi projektijuht suhtles taga ainult emaili teel.
Jaa. Olid kunagi mehed, kes kirjutasid Diggeri. Mängu, kus kollide eest põgenedes tuli kulda ja kirsse süüa.
4,77 MHz peal töötas nagu kellavärk.
8 MHz peal enam mitte nii hästi. Kätteõpitud võitvad algoritmid enam ei tööta, sest allavajutatud klahvi “repeat” sisaldas liiga palju protsessoritsükleid ja ajastus läks paigast.
Mida edasi, seda hullemaks. Rahvajuttude järgi saabus 386 peal leinamarss ärasöödud diggeri mälestuseks enne, kui pilt hauakiviga valmis jõuti joonistada. Nii et mäng oli läbi juba enne kui mängija esimest kaadrit üldse nägigi.
Muuseas, enamik mängijatest õppis kibeda kogemuse kaudu, et tollele mängule tuli eraldada terve diskett. Kohutav raiskamine muidugi,aga … mäng kirjutas oma tulemusetabeli mitte faili, vaid etteantud kettasektorisse. Ja misiganes juhtus ette jääma, võis ainult iseennast süüdistada.
Üks nimi ei võta vabandust vastu. Ada Augusta Lovelace, inimene, kes esimesena kirjutas koodi veel valmisehitamata arvutile.
Päris palju mänge kirjutati sedasi. Konsoolimängud süngiti näiteks 60Hz kaadrisageduse järgi ja enamik Eur turule ülejala visatud “porte” olid üsna räpased häkid, omade glitchidega.
Death Track oli üks selline õnnetu mäng, mis oli mängitav 12Mhz 286 peal, töötas ideaalselt 16MHz ja 20MHz oli juba “liiga kiire”. 386 peal olid enne surnud kui mäng alatagi jõudis
Ega uuemalgi ajal on neid nalju ette tulnud. Paljud 2000+ paiku tehtud 3D mängud sünkroniseerisid oma “maailma” 60 FPS sagedusele. 60 oli gap, enamik kaarte tegi alla selle. Nüüd, uuema masina peal, mis 200fps vabalt teeb, seda mängu käivitades, selgub et näiteks “raskuskiirendus” on 3,3333… korda suurem. 200PFS/60FPS = 3.333…
Sealt tuleb muide ka paljude “laisalt” arendatud mängude 50/60 FPS/Hz “fps gap”.
Konsool on “teleka küljes kinni” ja “kesmine telekas” on 50Hz (eur) või 60Hz (us/jap). Ja PC peale portides seda “kogu meie virtuaalmaailma konstandid määrab ära kaadrisagedus” ideoloogiat keegi enam väga ümber kirjutada ei viitsi.
Muide, päris huvitavaid efekte näeb, kui võtta mõni tänaseks avalikustatud lähtekoodiga vanem mäng ja hakata funamentaalseid konstante a la pi või sin sin^2(a)+cos^2(a) veidike “modifitseerima”.
Mitte-eukleidilises 3D virtuaalmaailmas on ka tore veidi ringi jalutada, aga hoiatan… see ajab suht kiiresti “hulluks” ja võib lausa südame läikima võtta.
Enivei, Real Programmer Carmack suutis täitsa edukalt “FPS” ja “maailma” lahti ühendada. Ei lähe ka uuema arvuti peal ka vanilla DOOM “megakiireks”.
Mis värk sellega on, et me (juuksekarva lõhkiajajate) hulgas nii palju düsgraafikuid on?
Seymour Cray
Gary Kildall
Dennis Ritchie
Võtan kriitika omaks, ei maksa kiirustada…
Välja jäi ka legendaarne Mel Kaye (häbi mulle!), kelle koodi transkriptid (jah, vanal heal ajal varundati lähtekood paberile) on nüüd David Lovetti (Usagi Electric) käes ja kes loodab need backportida Librascope LGP-21 peale (heh-heh-heh, edu!).
Jamps. Ma olen nüüd AI abil koodi genenud ca. 3 aastat. Olude sunnil, sest tänapäeval on kõik kood. Taristu on kood. Taristu haldus on kood ja äriteenuste elukaare haldus on kah kood.
Jah, AI genereerib “musta” tüütu käsitöö osa sinu eest. Sama “hästi” kui robot koristab tolmu (nurgad pead ikka ise üle käima). Jah, see säästab kõvasti aega.
AGA…
Esiteks pead sa teadma MIDA küsida (flowcharti koha pealt jääb AI hätta)
Sa pead teadma KUIAAS küsida (vabatahtlikult ei paku AI midagi, try catch ja error logging tuleb iga funktsiooni jaoks üle küsida, iga kord pead rõhutama, et pythin3 või BASH4 vms. muidu saad ürgaegse standardi järgi)
SEE ÜKS RIDA kommentaariga #THIS!!! mis kogu asjale töötavuse komponendi lisab, tuleb üldiselt ise kirjutada.
Kusagil 1500 rea juures jookseb AI-l juhe kokku ja ta hakkab spagetti genema. Loogiline flowdiagramm, mooduliteks, funktsioonideks, objektideks jagamine, nii et see mõistlik oleks, tuleb endal teha.
Jah, AI on hea assistent. Sina mõtled välja “diili”. Assistent koostab “lepingu põhja”. Sina vaatad üle ja viskad allkirja. KAZUMM!
Nii ja ainult nii, mitte kuidagi teisiti.