Neuvěřitelná historie.
Někdy v té době jsem v Turbo Pascalu (nebo to bylo Turbo C?) udělal program na přenos obrazovky z jednoho počítače na druhý po Novellí IPX/SPX síti.
Teď nechápu jak jsem to tehdy mohl dát jen metodou pokus omyl bez Googlu, StackOverflow, a všech předpřipravených knihoven jedním kliknutím stáhnutelných z Internetu :)
Tenkrát jsme ve škole na Novell serveru každý měli 64kB (ano kB!!) místa na soubory a dalo mi práci přesvědčit učitele ať mi to zvětší na dvojnásobek.
Sakra už jsem asi starej :)
Vo verzii TP (alebo BP) 7.0 som v.r. 1993 robil programy k diplomovke na riesenie stiff ODEs. Narazil som pri tom na obmedzenia velkosti datovych struktur: Pri (implicitnych) metodach na riesenie ODE sa generovali dost velke matice, ktore sa nezmestili na stack, ale dalo sa s nimi robit len cez pointre na heape.
Ale IDE bolo vynikajuce a hlavne debugger tak komfortny, aky sa aj dnes najde dost tazko.
Já dlouho nevěděl, že to prostředí je modré :-) Měli jsme totiž ve škole jen monochromatické monitory, kde bylo pozadí pěkně tmavě šedé, až potom doma s nákupem staré dobré 286ky se TP 5.5 objevil v plné kráse (stejně jako Norton a T602). A asi to fakt nemělo konkurenci, protože překlad do RAM byl prakticky okamžitý i na té dýchavičné 286 (a to jsem měl "turbo" variantu s 20MHz).
Jestli mas diskety nebo nejake jine programy beru je. Kdyz mi je posles zverejnim na www.trsek.com
Tak to bylo spíš myšleno jako vtip. Ano, .jar soubor je malý, ale když se při spuštění programu dotáhnou všechny knihovny z JRE, tak to sežere megabyty paměti. Nic proti tomu, stavíme multiplatformní aplikaci s GUI proti jednoduché aplikací bežící pod jednoúlohovým a jednouživatelským systémem v textovém režimu.
Pokud se bavíme čistě o GUI části, tak aplikace využívající čisté win32 api dokáží být až překvapivě hubené. Zato jejich údržba je jistě zábavná.
Ale zpět k Pascalu.
Pokud vím, tak Borland Pascal for Windows používal pro GUI vlastní sadu ovládacích prvků - BWCC, které vypadaly jinak než standardní ovládací prvky Windows 3.1 (měly "3D" efekt). S příchodem Windows 95 a novým vzhledem se od nich samozřejmě upustilo. Ale výsledkem byly pořád docela malé binárky.
BWCC
To se Vám nedivím. Když jsem se dostal k Pascalu, o existenci Internetu jsem netušil (byl možná někde na univerzitách) a Root.cz ještě neexistoval. Kdybych s programováním měl začít teď, zvolím si Python nebo něco podobného. Nebo také Lazarus/Delphi, které je fakt propracované a dají se v něm vyvíjet aplikace velice dobře.
Díky dostupnosti Internetu je jednoduché si vybrat cokoliv jiného než Pascal. Dříve to tak nebylo. Často člověk používal to, k čemu měl dostupnou dokumentaci, případně měl pomoc někoho z okolí. Dnes je jiná doba, úplně jiné možnosti.
Jak je vidět i z dat v článku, Tubo Pascal měl zásadní význam na přelomu 80tých a 90tých let, tedy ještě před rozšířením internetu (o rootu nemluvě).
V tu dobu to celkem smysl dávalo jak ve vazbě na tehdejší hw, tak ale i obecně, právě TP s OOP nebyl špatným základem a vyučilo se na něm hodně vývojářů, kteří pak přešli úplně jinam.
Pravdou ale je, že ve školách se držel často zbytečně dlouho a pokud jste mladší ročník než já a narazil na to až někdy po roce 1995, tak tehdy už to taková senzace nebyla.
To máte trochu podobné jako s DB3/DB4/FoxPro - to taky ve své době dávalo smysl velmi dobře, jenže vývoj šel dále a spousta lidí i firem se u toho totálně zasekla i v době, kdy to už dělalo víc škody než užitku...
Náhodou ten typovej systém Turbo Pascalu byl pro výuku asi menší zlo, než dynamicky typované jazyky. Já bych to nezatracoval ale je pravda, že doba Pascalu/Delphi už možná odeznívá. Zase na Tiobe se ale Deplhi drží pořád https://www.tiobe.com/tiobe-index/ takže v tom bude psáno mraků podnikového SW (což je přesně nika Delphi)
Záleží, kdy to bylo. Těsně po roce 1990, kdy se tady provozovaly no-name PC XT a PC AT, byl TP v mnoha ohledech to nejlepší řešení. Dokonce dokázal běžet z jediné diskety (překlad a slinkování přímo do RAM), takže se dal používat i na slaběji vybavených PC. Ruby, to už je spíš rok 1995 a dál (určitě ne před třiceti lety), takže řekněme doba 486 a pro movitější i prvních Pentií.
"dokonce existovaly varianty Pascalu s přeloženými klíčovými slovy"
To jsem nepotkal, ale nějaká varianta Algolu to tak měla. V Algolu bez goto programovat nešlo, a v té lokalizované verzi "go to" přeložili jako "jdi do". Algol měl jako návěští identifikátory, takže si jistě dovedete představit, jak zdrojové texty vypadaly.
Ale to je ještě starší historie, tak asi o generaci.
5. 9. 2019, 14:26 editováno autorem komentáře
Na TP jsem vyrostl, pěkný článek, děkuji.
Mimochodem pamatujete si někdo na nástroj SYSMAN (a NETMAN) ?
Byl to rezident, okamžitě dostupný pod klávesovu zkrátkou, který obsahoval nepřeberné množství informací a dokumentace k hardware x86 včetně ukázek v asm, takový švýcarský nůž v předinternetové době, už si nepamatuji kdo to vytvořil, ale bylo to hodně dobré.
Jj, Sysman byl dobry pomocnik. Neuveritelny, jak clovek na to vse zapomnel. Pamatuju, ze na zacatku devadesatek vedle TP jeste bylo Turbo C 2.0 (moje prvni zkusenost s C, vlastne druha, ale na 8bitu to nebylo jaksi ono) a potom jeste Turbo Assembler, s kterym jsme na strahovskych kolejich travili dlouhe vecery pri urychlovani nasich kodu na prvnich 486kach...
Není problém sáhnout do archivu na soudobém (3 TB) disku - SYSMAN, 1993, 590 kB, autoři Vladimír Lízal + Petr Hrůza. Ono dá dneska trochu práce najít podobné kompaktní (a hypertextové) návody, všichni jsou internetově závislí. Na TP bych vyzdvihl demo aplikaci Calc, která je sama o sobě nejlepší studijní materiál. Podobnou vychytávku měla i Foxka, animované demo se zdrojovým kódem, které přehrávalo základní funkce programu a současně demonstrovalo možnosti jazyka (plovoucí animovaná okna apod). Ale to ještě Internet neexistoval.
Tiez sa pridavam k nostalgickej casti a dakujem za clanok... A pridavam jednu prihodu zo strednej skoly (elektrotechnickej): v tej dobe uz TP prakticky koncil ale u nas sa to vyucovalo, ale co cert nechcel pocitace v tom roku dosluzili a na nove nebolo penazi, ale ucit sa muselo - tak sme programovali na papier... a ucitel normalne chodil pomedzi nas a na iny papier nam napisal vystup co by nase programy urobili ak by boli spustene na pocitaci... :D doteraz nechapem ako to zvladal... :D cele to zavrsil pisomny test na konci roka, kde sme mali improvizovat a riesit nejaku ulohu... dostal som dvojku, lebo som niekde zabudol uzavriet zatvorku alebo take nieco, a ked som argumentoval, ze od toho tam je snad prekladac, ktory mi napise kde je problem - tak som dostal pokarhanie a isiel som na kobercek ku riaditelovi... :D skoda, ze som si nenechal ten test, to by bola rarita... :D
jj, riaditel bol v pohode... vysvetlil som mu problem, a uznal, ze je to konina, naviac toho ucitela nazval starym somarom, obaja sme sa zasmiali, a poznamku zrusil --- na oplatku nas spolu s par spoluziakmi nechal spojazdnit a nainstalovat nove pocitace do novo zariadenej ucebne, lebo nebolo penazi na technikov a ucitelia nevedeli co s tym... a spominany ucitel nevedel nic len DOS, a odmietal to riesit :D (davali sme tam Windows XP)
Budu hrat dablova advokata.
v tej dobe uz TP prakticky koncil ale u nas sa to vyucovalo
Jestli se jazyk v praxi pouziva nebo ne, neni pro vyuku zase natolik podstatne. Protoze ve vyuce by melo jit predevsim o pochopeni zakladnich pojmu a zakladnich principu, napr. dekompozice problemu nad podproblemy. V tomto smeru ma Pascal nektere zajimave vlastnosti. Jedna se o jednoduchy proceduralni jazyk, ktery zvladne i zacatecnik, umoznuje vytvaret vnorene procedury (podprogramy), nuti programatora predem uvazovat o typech argumentu a promennych, atp. Prechod na jine jazyky zase neni tak problematicky.
a ucitel normalne chodil pomedzi nas a na iny papier nam napisal vystup co by nase programy urobili ak by boli spustene na pocitaci... :D doteraz nechapem ako to zvladal... :D
Byly doby (u nas jeste pred rokem 1989), kdy procesorovy cas byl neskutecne drahy, takze trenink na sucho byl zivotni nutnosti. Jeste ja si v devadesatkach pamatuju, ze jsem smolil programy na papir, abych je pak mohl ve skole na nejakem XT rychle nabusit a spustit.
dostal som dvojku, lebo som niekde zabudol uzavriet zatvorku alebo take nieco, a ked som argumentoval, ze od toho tam je snad prekladac
Pokud vas ucitel vyrostl v generaci salovych pocitacu, tak takovy argument urcite nemohl akceptovat. Tehdy program vznikal tak, ze programator neco nadatlil do dernych stitku nebo pasek, pak program predal operatorum (operatorkam) a ti ho pak spustili a donesli sjetinu vystupu na traktorovem papire. To mohlo trvat nekolik hodin i dni. V takovem pripade chyba v zavorce je neco, co se neodpousti.
ked som argumentoval, ... - tak som dostal pokarhanie a isiel som na kobercek ku riaditelovi...
Jelikoz to byla stredni skola (elektrotechnicka) dovolil bych si tipovat, ze ten koberecek nebyl za argumentovatni, ale jeji formu. (ono se to v puberte spatne rozlisuje)
No pekne si sa rozpisal, tak sa rozpisem aj ja, aj ked v zasade suhlasim:
"Jestli se jazyk v praxi pouziva nebo ne, neni pro vyuku zase natolik podstatne. " - nerozporujem...
"ve vyuce by melo jit predevsim o pochopeni zakladnich pojmu a zakladnich principu" - nerozporujem, TP bol na to dobry jazyk...
"Byly doby..." - hej, boli... a co ma byt? Ak by sme programovali na salove pocitace tak by som to bral... my sme ale neprogramovali na salove pocitace - tak preco mame mat podmienky ako pri nich...? Naviac vyucujuci pred testom vyhlasil, ze do hodnotenia sa nebude zaratavat syntaxove chyby, ide iba o spravny algoritmus... Ostatnym ziakom syntaxove chyby nepocital, lebo prakticky cela trieda dostala ciste 5-ky kvoli tomu, ze netusili co tam maju dat :D boli sme asi traja co dostali 2-ky, 3-ky... Inak nechapem naco to bolo dobre? Uvedomujes si, ze nikto svoj program nevidel skutocne bezat na pocitaci ani raz? Spoluziaci co nevedeli programovat na zaciatku roka, nevedeli programovat ani na konci roka, a ucili sa to tak, ze sa nadrvili cely kod naspamat (vratane komentarov), a ked mali napisat nieco nove tak proste boli mimo, a boli nahnevany, pretoze sa po nich chcelo nieco co nebolo na hodine (novy program) - ja som to mal v malicku lebo 8 rokov predtym som sa s TP hral doma... V dobe ked nas ucili ten TP, som doma programoval 3D vesmirnu hru pod OpenGl (podobne Descentu), riesil som tranformacie, kolizie na gulate povrchy, pohyb v 3D priestore vsetkymi smermi, nacitavanie 3D modelov, zvuky, citanie vstupu z joysticku a pod. veci... kopu casu zabiteho, tisice riadkov nakodeneho, a uciteli ti povie, ze mame pisat programy na prvu dobru bez chyby... hehe... taky geroj proste niesom... :D
"dovolil bych si tipovat, ze ten koberecek nebyl za argumentovatni, ale jeji formu." - Rad by som povedal, ze ano, ale nikdy som nemal gule povedat co si skutocne myslim - bola to odplata zato, ze som mu furt robil zle... :D od zaciatku som vedel, ze je to konina takto vyucovat, a vacsina triedy neprejde predmetom (ani nepresla*), a tak som schvalne robil funkcne spravne, ale zbytocne komplikovane programy, pri ktorych sa musel zapotit aby to pochopil pri kontrole... a cela trieda vedela, ze ja viem koli tym hram co som programoval, a on nevie, lebo je stale zaseknuty v dose a v tom co hovori knizka o TP z ktorej bral priklady... no a ked to pochopil, ze to robim narocky, tak zcervenel ako paprika, ale nepovedal ani slovo a dalej mi kontroloval programy... o tu dvojku mi neslo, slo mi len o princip, resp. ukazanie celej tej karikatury programovania v plnej krase... u riaditela to bola ceresnicka, a v podstate sme sa na celej veci zasmiali... *Nasledne celej triede pomohla jeho intervencia a pisal sa este jeden "test" kde boli otazky typu: "Uvedte co patri pod periferne zariadenia", takze trieda neprepadla, akurat ja som narocky urobil chyby aby som dostal zase dvojku, nech ma vyucujuci radost, ze som nieco nevedel... Riaditel zabezpecil potom nejak nove masiny, ktore sme so spoluziakmi nainstalovali lebo nebolo penazi na technika, a ucitelia to samozrejme nevedeli, no a cele leto sme tam chodili mastit quake 2 po sieti... :D A v dalsom roku ten ucitel tam rozchodil DOS, drbol tam TP a ucil tam dalsiu varku neborakov na papiery (kompilovat sa smel len odladeny program), nastastie nas uz neucil... :D
6. 9. 2019, 13:56 editováno autorem komentáře
"Byly doby..." - hej, boli... a co ma byt? Ak by sme programovali na salove pocitace tak by som to bral...
Evidentne mas skvele programatorske schopnosti, co ti chybi je alespon trocha empatie.
Uvedomujes si, ze nikto svoj program nevidel skutocne bezat na pocitaci ani raz?
Neuvedomuju, protoze jsem v te tride nikdy nebyl. Pocitac pri vyuce programovani je vyborny nastroj pro motivaci, i kdyz nemusi byt nutny pro vyuku takovou. Driv byl pocitac opravdu luxus a pred revoluci jediny zpusobem, jak ucit programovani ve vetsim opravdu bylo na papir.
V matematice jsme taky resily ulohy typu: "mas vez kostela, metr dlouhou tycku a podle dopadajiciho stinu urci vysku veze kostela". Taky kvuli vyreseni te ulohy nebylo potreba jit k tomu kostelu a zmerit jeho stin. Podobne ulohy ve fyzice nebo chemii...
uciteli ti povie, ze mame pisat programy na prvu dobru bez chyby... hehe... taky geroj proste niesom...
nejak mi to nesedi s popisem tvych sirokych zkusenosti s tisicema radku kodu, ktere delaly vsechno mozne...
Potvrzuji, že algoritmizace se běžně učí bez počítačů dodnes. Je to matematika a logika, počítač na to není potřeba. Problémy jako je obchodní cestující nebo obarvování grafů je lepší řešit na papíře. Do počítače se to přepisovalo až koncem semestru, protože konkrétní algoritmus bylo potřeba otestovat a změřit jeho efektivitu.
Docela mi přijde divné, že by dneska někdo chtěl návrhy algoritmů a heuristik hned programovat. Na papíře za hodinu zvládnete více než u počítače za den. Strojař také nejprve kreslí a počítá a teprve výsledný návrh jde vyrábět. Na ten papír pochopitelně nepíšeme samotný program, ale popis algoritmu - slovní popis, vývojový diagram, pseudojazyk apod. Přesto je to nedílnou (a osobně myslím tou největší) součástí výuky programování.
A ještě jste mi připomněl úlohy z elektrotechniky: "Mějme nekonečný vesmír, který je rovinou procházející jeho středem rozdělen na dvě stejné poloviny. A jednu z těch polovin vyplňme zlatem."
3 chybějící středníky a kvůli tomu hodnocení 4, bylo-li to tak, je asi úlet.
Ovšem 3 chybějící středníky, při práci v režimu closed shop, znamenaly 3 průchody systémem (pokud měl překladač mizerné zotavení po syntaktické chybě). To znamenalo třeba 3 dny čekání na první testovací spuštění programu - a teprve pak se daly opravovat chyby v algoritmu.
Programy se psaly do formulářů a každý rychle pochopil, že písmenka a číslice do chlívečků musí zapisovat velmi zřetelně, protože do štítků to přepisovaly osoby, kterým to vůbec nic neříkalo - zkrátka celý den opisovaly hromady nesmyslů, takže do toho občas ještě nějaký překlep vnesly.
Tak jestli ten kantor měl za sebou tuhle praktickou zkušenost, celkem chápu, že na chybějící středníky byl pes.
Vidim ze mame podobne spomienky na strednu skolu. U nas to bolo podobne, akurat ze sme tie pascal programy realne na PC spustali. Ale asi az od 3. ci 4. rocnika. A potom sme hrali doom. Horsie to bolo na teorii, ta bola odrazom urovne stredneho technickeho skolstva tej doby (uplne nahovno), takze spoluziaci ktori neprogramovali a nemali doma pocitace od detstva sa to ucili ako vsetky ostatne sracky co do nas tlacili na tej skole - naspamat - a to u mna nikdy nefungovalo. Pamatam si ked sme "preberali" assembler 386, mal som to za 4, pretoze som sa nenaucil naspamat 15 instrukcii co ucitelka (matematiky) napisala (2 dni predtym) na tabulu. Ze som 2 roky predtym naprogramoval v assembleri na Z80 nieco ako Norton Commander a vlastny kompresny algoritmus (aj ked extremne primitivny - tak bolo mi 14) mi bolo vtedy prd platne. Obdobne to bolo aj s ostatnymi vedomostami - ano, urcity nemaly vplyv na to mala aj puberta a obecny odpor k autoritam, ale ked som na tu skolu siel, zapajal som si doma alarmy s NE555 a programoval v assembleri. Ked som 20 rokov nato staval barak a riesil si do neho automatizaciu, nedokazal som ani vypocitat odpor pred ledku co som zapajal do arduina. Keby som siel za kuchar casnik, aspon by som vedel varit a myslim si, ze by sa nijak zasadne nezmenilo kde som a co dnes robim.
BTW dnes je ta skola na uplne rovnakej urovni ako pred tymi 25 rokmi, proste su v sklze cca 5-10 rokov za realitou a vsetko je len teoria naspamat.
10. 11. 2019, 10:42 editováno autorem komentáře
Proč se neuchytil?
Uchytil se přinejmenším na IBM PC, to se přece také považuje za mikropočítač.
Podle mne se na 8bitových počítačích (C64, Spectrum, Atari aj.) uchytit nemohl. Vývojové prostředí nebylo moc pohodlné (při 40 sloupcích na řádek ani pohodlné být nemohlo), výkon přeložených programů byl slabý a bylo i málo knihoven pro plné využití periferních zařízení (grafika, zvuk).
Na výuku programování a domácí experimentování OK, ale na tvorbu komerčních programů to prostě ve své době nestačilo. Tam dominoval assembler, nebo v menší míře jazyky šité na míru danému stroji (třeba Action).
Dnes, v době cross-compilerů je to jinak (programy v Pascalu a C se pro 8bitové počítače dnes skutečně píší), ale jde z obchodního hlediska o dávno mrtvé platformy. Byť vznikají i komerční projekty.
Na druhou stranu pozdější verze Turbo Pascalu od Borlandu plně využívaly schopnosti tehdejších PC, měly pohodlné IDE a opatřily jazyk rozšířeními vhodnými pro pokročilejší programování. Navíc se objevilo pokračování v podobě systému Delphi, který se vyvíjí a používá dodnes.
Viz výše - co považujete za mikropočítač?
Na CP/M strojích to byl Turbo Pascal úplné zjevení, ale těch u nás bylo relativně málo.
Nějaký Pascal byli na ZX Spectrum, cosi jsem v něm dokonce dělal - ovládání zbastleného emulátoru a programátoru EPROM (ty byly ruské tzv. 90% EPROM - 90% šlo naprogramovat, z nich pak 90% šlo smazat, z nich pak 90% šlo naprogramovat - a mazaly se UV světlem značně dlouho, proto i ten emulátor).
Na ZX Spectrum bylo nekolik pascalu - Hisoft Pascal i zdejsi Microbase Pascal (ktery byl mimochodem super). U nej si clovek pripadal jak u mnohem vetsiho stroje (o kterych jsem v te dobe vubec nic nevedel). Pak na ZX Spectrum se dala rozbehnout i CP/M a na nem Turbo Pascal - na spectru se dalo bezet (nicemne) v 64 znacich na radek. To uz bylo vazne skoro delo :). Na to jak to bylo velke to melo vazne dobry editor i pomerne slusny prekladac. I kdyz to nebyl plnohodnotny prekladac do strojaku, ale prekladac a interpret pkodu .Diky tomu to bylo tak male.
Na Karlově náměstí mělo ČVUT učebnu, kde byly IQ151 zapojeny do reálné sítě, a na tom Pascal dost svižně fungoval, včetně tisku na sdílenou tiskárnu. Řešil jsem výpočet elektrického pole, proces běžel asi 10 závratných minut. Pro výuku mi Pascal, tak, jak byl tenkrát realizován, přijde naprosto optimální - nutí člověka dekomponovat problém, popsat strukturu dat a ve finále vypadnou z překladače za pár sekund všechny chyby. V dobách Borland Pascalu, na počítačích úrovně 486, trval překlad projektu o 300 000 řádcích asi 1 minutu.
486ka už byla docela dost výkonný počítač na kterém DOS aplikace lítaly. IDE Borland Pascalu se dalo docela příjemně používat i na XT - i když, tam jako prváci, jsme měli projekty málokdy větší než pár tisíc řádků. Své dělal také textový terminál 80x24 - takže naráz nebylo nutné zobrazit příliš mnoho obsahu.
Tehdy na počítačích nebyl swap, takže nebyl problém, že by něco začalo swapovat a zdržovat jako později ve windows. Ale zase to padalo, a kousalo se - nicméně tehdy práce s BP byla hodně pohodová záležitost - programovat v čemkoliv jiném na PC bylo výrazně horší.
Jo, to byly doby.. ja v tom TP7 umastil svoje Windows, ale to bylo v dobe bez GitHub-u a zdrojaky uz nenajdu:
http://hryprodos.sweb.cz/pr/system2001_2.gif
Děkuji za pěkný článek. Chybí mi tam jméno profesora Wirta, který Pascal navrhl a pomáhal při verzi 5.5 taktéž.