Je Pascal mrtvý jazyk?

Radovan.

Re:Je Pascal mrtvý jazyk?
« Odpověď #60 kdy: 26. 02. 2017, 08:25:28 »
Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?
Protože dodnes nic lepšího nikdo nevymyslel. A je to vážně ostuda, už by to něco modernějšího fakt chtělo!

Takže si místo plácání ve zbytečných diskuzích můžeš zkusit naplácat ideální současný didaktický jazyk, který povede úplného začátečníka za ručičku, donutí ho programy psát aspoň trochu čitelně a promyšleně, a za každou chybu mu okamžitě nafackuje a řekne kde jí udělal, aby jí nemusel po každém segfaultu několik hodin hledat!

A mysli při tom na to, že Pascal je sám o sobě natolik bezpečný, že jedna jeho odnož řídí i jaderné elektrárny! Dokážeš něco takového dnes vytvořit?

Her v Pascalu je dost, mám tu třeba Mario a konverzi Manic Miner.


JavaHater

Re:Je Pascal mrtvý jazyk?
« Odpověď #61 kdy: 26. 02. 2017, 10:25:20 »
Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?
Protože dodnes nic lepšího nikdo nevymyslel. A je to vážně ostuda, už by to něco modernějšího fakt chtělo!

Takže si místo plácání ve zbytečných diskuzích můžeš zkusit naplácat ideální současný didaktický jazyk, který povede úplného začátečníka za ručičku, donutí ho programy psát aspoň trochu čitelně a promyšleně, a za každou chybu mu okamžitě nafackuje a řekne kde jí udělal, aby jí nemusel po každém segfaultu několik hodin hledat!

A mysli při tom na to, že Pascal je sám o sobě natolik bezpečný, že jedna jeho odnož řídí i jaderné elektrárny! Dokážeš něco takového dnes vytvořit?

Her v Pascalu je dost, mám tu třeba Mario a konverzi Manic Miner.

Je mi jasné, že mluvíš o jazyku Ada, ale to není jenom o jazyku. Software pro JE, letadla, vlaky, auta prochází takovým testováním o jakém se lidem v IT firmách ani nesní (dělal jsem obojí, můžu porovnávat).
Použití jazyků s volnější kontrolou typů, nebo bez přímé kontroly paměti je v safety critical aplikacích absolutně nemyslitelné. Ne kvůli HW prostředkům, ale kvůli bezpečnosti a splnění norem a předpisů.
V tomhle je Ada, C, C++ nezastupitelná.
Ale jestli se nepletu, tak Ada původní Pascal dost rozšiřuje.

Karel

Re:Je Pascal mrtvý jazyk?
« Odpověď #62 kdy: 26. 02. 2017, 10:38:29 »
Pascal určitě není mrtvý jazyk. Embarcadero ho pořád vyvíjí, objevují se nové vlastnosti (přijde mi, že se hodně inspirují v .NET) a dokonec se hrnou třeba i do oblasti mobilních aplikací (ale tam tomu moc šancí nedávám). Jen o něm už není tolik slyšet jako kdysi - jenže tenkrát neexistoval web, chytré telefony a takové kvanta různých programovacích jazyků.

Jinak osobně pracuju a programuju v Delphi (nesmějte se mi :)), projekt má za tu hromadu let už pár miliónů řádků a nejen že to pořád dál funguje a vyvíjí se, ale taky se i prodává :)

v

Re:Je Pascal mrtvý jazyk?
« Odpověď #63 kdy: 26. 02. 2017, 10:40:47 »
Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?
Protože dodnes nic lepšího nikdo nevymyslel. A je to vážně ostuda, už by to něco modernějšího fakt chtělo!

Takže si místo plácání ve zbytečných diskuzích můžeš zkusit naplácat ideální současný didaktický jazyk, který povede úplného začátečníka za ručičku, donutí ho programy psát aspoň trochu čitelně a promyšleně, a za každou chybu mu okamžitě nafackuje a řekne kde jí udělal, aby jí nemusel po každém segfaultu několik hodin hledat!

A mysli při tom na to, že Pascal je sám o sobě natolik bezpečný, že jedna jeho odnož řídí i jaderné elektrárny! Dokážeš něco takového dnes vytvořit?

Her v Pascalu je dost, mám tu třeba Mario a konverzi Manic Miner.

Je mi jasné, že mluvíš o jazyku Ada, ale to není jenom o jazyku. Software pro JE, letadla, vlaky, auta prochází takovým testováním o jakém se lidem v IT firmách ani nesní (dělal jsem obojí, můžu porovnávat).
Použití jazyků s volnější kontrolou typů, nebo bez přímé kontroly paměti je v safety critical aplikacích absolutně nemyslitelné. Ne kvůli HW prostředkům, ale kvůli bezpečnosti a splnění norem a předpisů.
V tomhle je Ada, C, C++ nezastupitelná.
Ale jestli se nepletu, tak Ada původní Pascal dost rozšiřuje.
že to je Ada zas tak jasné není, IEC61508 povoluje/doporučuje přímo pascal pro SIL4 , takže proč ne :)

placal

Re:Je Pascal mrtvý jazyk?
« Odpověď #64 kdy: 26. 02. 2017, 10:44:19 »
Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?
Protože dodnes nic lepšího nikdo nevymyslel. A je to vážně ostuda, už by to něco modernějšího fakt chtělo!

Takže si místo plácání ve zbytečných diskuzích můžeš zkusit naplácat ideální současný didaktický jazyk, který povede úplného začátečníka za ručičku, donutí ho programy psát aspoň trochu čitelně a promyšleně, a za každou chybu mu okamžitě nafackuje a řekne kde jí udělal, aby jí nemusel po každém segfaultu několik hodin hledat!

No to bych si musel napřed položit otázku, co přesně budu chtít toho úplného začátečníka učit. Bude to takové to Pascalovské strukturované programování, bude to OOP, funkcionální styl, deklarativní programování, nějaký mix mezi tím? A budu opravdu chtít jazyk, kde mi nebyli za čtyři roky vyučující schopni odpověděť, jak a hlavně proč je někdy před else středník a někdy ne (ano, je to nakonec jednoduché - Pascal středníkem _odděluje_ příkazy, ostatní jazyky středníkem příkazy _ukončují_). Jazyk, který mi ukazuje možnosti, kterých v něm nemůžu sám dosáhnout? (write/writeln je pěkný příklad za všechny). Jazyk, kde klidně můžu jako prasátko indentovat jak se mi zachce, nebudu nikdy vědět, jestli se boolovské výrazy vyhodnocují zkráceně nebo ne?

Btw jak pokročíš k seznamům a stromům (což je pořád ještě pro pokročilého začátečníka), tak se stejně nevyhneš ukazatelům a segfaultům i v Pascalu.

Popravdě si myslím že máš v něčem pravdu - Pascal byl kdysi dobrý pro konkrétní účel (strukturované programování + striktní datové typy), navíc měl mega rychlý jednoprůchodový překladač, to se taky počítalo. Dneska? no žádná sláva, ale já bych do začátečníka v pohodě nadrtil BBC BASIC^H^H^H^H^H^H^H^H^H eh Python :)


JavaHater

Re:Je Pascal mrtvý jazyk?
« Odpověď #65 kdy: 26. 02. 2017, 10:52:26 »
že to je Ada zas tak jasné není, IEC61508 povoluje/doporučuje přímo pascal pro SIL4 , takže proč ne :)

Možná je to i Pascal, ale s nástrojema co dělám je častěji podpora pro Ada, že by byl někde psaný Pascal jsem se ještě nesetkal, proto je můj pohled deformovaný, to otevřeně přiznávám.  8)

javaman ()

Re:Je Pascal mrtvý jazyk?
« Odpověď #66 kdy: 26. 02. 2017, 10:55:54 »
Teď jsi na to kápnul, Pascal je Bugatti Veyron. Akorát je divné, že ho (skoro) nikdo nechce ani zadarmo.
<rýp>
Tedy něco jako Linux, ten taky nechce skoro nikdo ani zadarmo  ;)
</rýp>

Jasně, jenom na něm běží velká část Internetu, prakticky všechny superpočítače z top500 a většina mobilů.

+1

Kiwi

Re:Je Pascal mrtvý jazyk?
« Odpověď #67 kdy: 26. 02. 2017, 10:56:59 »
Pascal byl v první řadě navržen jako jazyk pro výuku programování (strukturovaného) a výuku algoritmizace. A v tomto vždycky plnil a plní svou funkci výborně. Takže mi připadá trochu nemístné poměřovat jeho kvality počtem projektů.

A to říkáš proto, že k tomu máš své konkrétní důvody, nebo se jen opakuje to starodávné Wirthovo tvrzení (které se stalo samopotvrzujícím se proroctvím)? Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?

Jaké tvrzení? Wirth v 70. letech pro své studenty curišské techniky vymyslel jazyk, který měl být dostatečně jednoduchý a nenáročný jak pro jeho uživatele, tak pro implementátory jeho překladače, intuitivní, dobře čitelný, bezpečný a vedoucí k dobrým návykům. Protože to vše Pascal splňoval, rychle se rozšířil i mimo jeho alma mater, a dokonce, oproti původním předpokladům, se začal používat i k praktickým účelům. V této oblasti ho samozřejmě bylo nezbytné trochu přiohýbat, protože na to nebyl stavěný.

Dnes se Pascal stále hodí pro přípravu studentů, kteří budou v praxi používat jazyky jako je C, tj. klasické strukturované jazyky bez GC. Takových lidí je třeba stále pro embedded oblast. Dále se Pascal výborně hodí k vysvětlování klasických algoritmů a datových struktur, tedy různé grafové algoritmy, stromy, seznamy apod. Člověk zvyklý na to, že o dynamické objekty se musí postarat, si lehce zvykne na GC. Obráceně je to mnohem strastiplnější cesta.

Celkově je Pascal vhodný jako jazyk, kde člověk získá nějakou představu o tom, jak počítač zpracovává program, ale stále je to jednoduchý vysokoúrovňový jazyk. O tom by měl mít nějakou představu každý programátor. Navíc se dá na jeho poměrně jednoduchém, obvykle LL(1) rekurzivně sestupujícím parseru demonstrovat, jak takové věci vlastně fungují. Wirth pro tyto účely specifikoval ještě jednodušší formu, kterou nazval PL/0, což je jazyk Pascalu dost podobný, takže pro studenty je to jednodušší, jehož kompilátor či interpret se dá napsat jako semestrální cvičení.

Dnes, aspoň teoreticky, frčí objektový návrh, pro jehož výuku Pascal IMHO vhodný není. Jenže realita je taková, že ty objektové programy jsou mnohdy jen více či méně dobře navržené strukturované programy zabalené do tříd. S rostoucí oblibou funkcionálního návrhu to podle mě dopadne podobně - začnou vznikat zmršeniny, jak se to paradigma bude šířit mezi méně talentované vývojáře.

Pokud chcete naučit objektové programování, sáhněte po Smalltalku. Ale budete trpět, až v praxi budete muset něco dělat v Javě nebo nedej bože v C++. Pokud chcete naučit strukturovanému programování, sáhněte po Pascalu, a až v praxi budete muset vyvíjet v C, tak zajásáte, protože najednou odpadne ten pascalský pedantismus. Ale to je až v okamžiku, kdy máte zažité dobré návyky a víte, kdy sem-tam něco udělat nějakým hackem, aniž by to způsobilo katastrofu. Assembler, Fortran, Cobol apod. ani neuvádím, ačkoli pro případné vývojáře je i zde Pascal vhodným učebním nástrojem. Ale je mi jasné, že to, narozdíl od dob vzniku Pascalu, už dávno není mainstream.

javaman ()

Re:Je Pascal mrtvý jazyk?
« Odpověď #68 kdy: 26. 02. 2017, 10:57:30 »
Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?
Protože dodnes nic lepšího nikdo nevymyslel. A je to vážně ostuda, už by to něco modernějšího fakt chtělo!

Myslíš Javu?

Pascal byla vždy sračka a používat to na výuku byl vždy fail. Nevím, proč se dodnes tvrdí, že se na to hodí. Ale lopaty to budou opakovat ještě 500 let asi.

Karel

Re:Je Pascal mrtvý jazyk?
« Odpověď #69 kdy: 26. 02. 2017, 10:57:49 »
placal: jestli ti vyučující nebyli schopni říct proč se někdy píše středník a někdy ne, není to chyba jazyka, ale těch vyučujících. A jestli se booleovské výrazy vyhodnocují zkráceně nebo ne se nastaví ve vlastnostech projektu (pokud to pak někdo změní direktivou překladače kdesi v kódu, to už je jeho boj). Blbě indentovat ti dovolí prakticky každý jazyk. A pointerům v seznamech apod. se dnes klidně vyhneš, např. přes generické listy (ať už listy objektů, nebo jen paměťových struktur).

Kit

Re:Je Pascal mrtvý jazyk?
« Odpověď #70 kdy: 26. 02. 2017, 11:28:07 »
Zeptám se takto - proč dnes Pascal pro výuku ano a proč ne?
Protože dodnes nic lepšího nikdo nevymyslel. A je to vážně ostuda, už by to něco modernějšího fakt chtělo!

Myslíš Javu?

Java se na výuku programování docela hodí, ale nesmí se učit ve stylu strukturovaného programování, jak je dnes běžné. Objektově orientovaný přístup ve výuce Javy často citelně chybí a Java tím zbytečně získává pověst mizerného jazyka.

atarist

Re:Je Pascal mrtvý jazyk?
« Odpověď #71 kdy: 26. 02. 2017, 11:46:53 »
placal: jestli ti vyučující nebyli schopni říct proč se někdy píše středník a někdy ne, není to chyba jazyka, ale těch vyučujících. A jestli se booleovské výrazy vyhodnocují zkráceně nebo ne se nastaví ve vlastnostech projektu (pokud to pak někdo změní direktivou překladače kdesi v kódu, to už je jeho boj). Blbě indentovat ti dovolí prakticky každý jazyk. A pointerům v seznamech apod. se dnes klidně vyhneš, např. přes generické listy (ať už listy objektů, nebo jen paměťových struktur).

Bavíme se stále o Pascalu nebo o Object Pascalu (Delphi)? Jinak s těmi Booleovskými výrazy to býval problém, protože to skutečně bylo rozhodnuto při překladu projektu a nebylo to nikde součástí zdrojového kódu. Jinak podobnou kravinu měl i MS Basic (Quick, Q...) s volbou, jestli pole začínají od 0 nebo 1, good luck při používání cizích funkcí, které počítaly s jedním nebo s druhým.

Podle mého názoru, já bych klidně začínal s něčím na první pohled sice jednodušším, ale ve skutečnosti mocnějším - Lua nebo Python. Ale to je samozřejmě věčný boj, protože v současně nastaveném školském systému to samozřejmě na SŠ učit s velkou pravděpodobností nepůjdu (důvodů je víc a asi bych to nerad rozebíral zrovna tady).

Kit

Re:Je Pascal mrtvý jazyk?
« Odpověď #72 kdy: 26. 02. 2017, 12:02:56 »
Jinak podobnou kravinu měl i MS Basic (Quick, Q...) s volbou, jestli pole začínají od 0 nebo 1, good luck při používání cizích funkcí, které počítaly s jedním nebo s druhým.

Používání polí se vcelku úspěšně vyhýbám, přece jen Fortran se používá jen na specifické úkoly. Proto je mi zpravidla jedno, zda se takové pole indexuje od 0 či 1. Samozřejmě preferuji indexování od 1, protože je to přirozenější a například v uvedeném Fortranu je to default a v Pascalu běžné.

Radovan.

Re:Je Pascal mrtvý jazyk?
« Odpověď #73 kdy: 26. 02. 2017, 13:48:58 »
Je mi jasné, že mluvíš o jazyku Ada...
Dobrá volba, ale měl jsem na mysli SCL od Siemensu.

Myslíš Javu?
To je ještě horší sračka než byl Visual Basic neblahé paměti, ty vemeno!
http://www.itnews.sk/spravy/software/2008-01-17/c87894-programatorske-schopnosti-absolventov-klesaju-problemom-je-java
http://www.zdrojak.cz/clanky/nebezpeci-java-skol/

atarist

Re:Je Pascal mrtvý jazyk?
« Odpověď #74 kdy: 26. 02. 2017, 13:54:02 »
Jinak podobnou kravinu měl i MS Basic (Quick, Q...) s volbou, jestli pole začínají od 0 nebo 1, good luck při používání cizích funkcí, které počítaly s jedním nebo s druhým.

Používání polí se vcelku úspěšně vyhýbám, přece jen Fortran se používá jen na specifické úkoly. Proto je mi zpravidla jedno, zda se takové pole indexuje od 0 či 1. Samozřejmě preferuji indexování od 1, protože je to přirozenější a například v uvedeném Fortranu je to default a v Pascalu běžné.

Super, takze asi nepouzivas Pascal, protoze ten standardni ma jen staticka pole. FreePascal (http://www.freepascal.org/docs-html/ref/refse14.html#refsu15.html) a Delphi pak i pole dynamicka (vitejte v 21.stoleti). Seznamy nebo nedejboze hashe/asociativni pole ve standardu nejsou (samozrejme je jde dodat knihovnami, ale syntaxe pro ne neexistuje), podle toho potom vypada boj studentu i se zakladnimi programy typu nacti seznam zaku a serad je podle jejich prospechu.