Má smysl učit se Pascal (Delphi)?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Má smysl učit se Pascal (Delphi)?
« Odpověď #30 kdy: 16. 06. 2019, 20:05:20 »
Jistě, v Pascalu bylo možné vracet chyby jen skrz návratové kódy. Neoznačoval bych ale vyhazování výjimek za vždy rozumnější alternativu – chybové kódy sice znamenají více práce, ale obvykle pak víte, kde přesně (a z jakého důvodu) k selhání došlo, než když celý blok obalíte do try/catch/finally a prostě řeknete, že se něco nepovedlo.

Právě s výjimkami vím úplně přesně, kde k nim došlo a za jakých okolností, včetně hodnot, které do dané metody či funkce vstoupily a způsobily nestandardní stav. V chybových kódech spousta informací chybí a v tu chvíli už není způsob, jak je získat.
V PHP nebo nějakém normálním jazyce?


Re:Má smysl učit se Pascal (Delphi)?
« Odpověď #31 kdy: 29. 06. 2019, 10:52:29 »
Tak jsem si ten Pascal nějak tak pročetl (aniž bych se ho nějak zvlášť učil) a musím říct, že minimálně z historického hlediska to bylo docela zajímavé čtení. Člověk tak snadněji pochopí vývoj počítačových jazyků. Takže například na jazyku C (který vychází mimo jiné z podobných myšlenek jako Wirthův Pascal) je vidět, proč ho jeho autoři vymysleli tak jakým je a proč a jak řešili určité věci tak, jak je vyřešili.

Nabyté znalosti teď konečně mohu využít při čtení knížky Učebnice jazyka C od P. Herouta, v níž se o Pascalu dost mluví.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Má smysl učit se Pascal (Delphi)?
« Odpověď #32 kdy: 29. 06. 2019, 13:03:26 »
Jistě, v Pascalu bylo možné vracet chyby jen skrz návratové kódy. Neoznačoval bych ale vyhazování výjimek za vždy rozumnější alternativu – chybové kódy sice znamenají více práce, ale obvykle pak víte, kde přesně (a z jakého důvodu) k selhání došlo, než když celý blok obalíte do try/catch/finally a prostě řeknete, že se něco nepovedlo.

Právě s výjimkami vím úplně přesně, kde k nim došlo a za jakých okolností, včetně hodnot, které do dané metody či funkce vstoupily a způsobily nestandardní stav. V chybových kódech spousta informací chybí a v tu chvíli už není způsob, jak je získat.
V PHP nebo nějakém normálním jazyce?

V PHP se s výjimkami pracuje perfektně. Normální jazyky to tak dobře zpracováno nemívají. V C++ programátoři obvykle přes výjimku pošlou jen jakýsi int nebo string, což je velmi chudé - skoro až nepoužitelné. Nedivím se, že nechtějí výjimky používat, když je tak prasí.

Re:Má smysl učit se Pascal (Delphi)?
« Odpověď #33 kdy: 30. 06. 2019, 22:47:47 »
Moderní Pascal má možná i dnes co nabídnout, kromě komerčního RAD Studia je k dispozici stále se vyvíjející parádní kombo FreePascal + Lazarus a informace od aktivních uživatelů vypadají nesmírně zajímavě. Programy v Turbo Pascalu už dnes kromě historických důvodů studovat netřeba, pro konečné rozhodnutí bych se ale podíval na programátora využívajícího Lazarus na chytrém telefonu a Raspberry:

https://www.quora.com/Is-Lazarus-worth-learning-today
http://kriscode.blogspot.com/

dle mého názoru velmi povedený článek od autora Castle game engine popisující moderní Pascal včetně parádních příkladů:

https://castle-engine.io/modern_pascal_introduction.html

zajímavá a obsáhlá dokumentace:

https://wiki.freepascal.org/Lazarus_Documentation

možnost převodu nativního kódu do Javascriptu:

https://wiki.freepascal.org/pas2js

podpora Androidu:

https://www.itnetwork.cz/programovani/delphi/diskuzni-forum-pascal-borland-turbo-freepascal/lamw-lazarus-android-module-wizard-5ab95f3555c94

podpora webových aplikací s několika zajímavými frameworky:

https://wiki.freepascal.org/Developing_Web_Apps_with_Pascal

a obrovské množství knihoven dělá z tohoto IDE velmi zajímavou alternativu. Moc se mi líbí "dosové" IDE FP inspirované stařičkým Turbo Pascalem pro příkazovou řádku, které v aktuální vývojové verzi konečně nemá problém s debuggerem GDB, i když se s češtinou stále nekamarádí a klikací Lazarus běžící skutečně použitelně na starších Windows, Linuxu, BSD i na prvních verzích Raspberry.

Já dříve programováním zcela nepolíben jsem se před několika lety učil systém TADS3 pro tvorbu textových her, je však dost jednoúčelový a dnes se již nevyvíjí, takže jsem se rozhodoval mezi moderním Pascalem, Cčkem a Pythonem. Syntaxe Pascalu je mi zatím z těchto jazyků nejbližší, takže studuji právě jej s tím, že časem prozkoumám Heroutovu knihu o jazyce C a poté velmi povedené Pythoní kurzy Pyladies:

https://pyladies.cz/

Pokud se seznámím s více jazyky, budu si schopen vybrat ten ideální pro konkrétní účel. Třeba se mi zalíbí i Javascript, když je tak pěkně integrován s Lazarusem a částečná podpora pro Python už je také k dispozici:

https://wiki.freepascal.org/Using_Python_in_Lazarus_on_Windows/Linux

Je tedy možné, že Pascal je stále využitelný, to zjistím časem. Někteří uživatelé jej zatracují nebo se domnívají, že jeho OOP model je zastaralý, to je věc názoru. Rozhodně však doporučuji vyzkoušet aktuální Lazarus v dvojkové řadě a jeho zajímavá rozšíření, toto prostředí jsem si vedle také parádního VSCode a QT Creatoru oblíbil asi nejvíce.

Programy právě v něm naprogramované a mnohdy kombinující vlastnosti Pascalu a třeba C++ také stojí za to prozkoumat:

https://wiki.freepascal.org/Lazarus_Application_Gallery
https://wiki.lazarus.freepascal.org/Case_Studies
https://wiki.freepascal.org/FPC_Applications/Projects_Gallery
https://wiki.freepascal.org/Projects_using_Lazarus

Castle game Engine, Gestinux, Hedgewars, Lazpaint, Prometerp, Skychart, Virtualmoonatlas, Virtualplanet nebo ZCad jsou velmi pěkné aplikace a studiem jejich zdrojových kódů se člověk leccos naučí.

Přeji příjemné studium, všechny jazyky mají něco do sebe a určitě stojí za to jejich možnosti co nejvíce prozkoumat.