Popisované zkušenosti s tím, že někdo se učil Pascal/C++ a má v main 2000 řádků nesouvisí s jazykem. Ten člověk by to nenaprogramoval správně v ničem jiném, prostě programuje, ale neumí to.
Pascal, který je zde většinou popisován je tak 15 let starý.
Zapomente na roky 1990 a podobne, to je davna minulost, kdy jsem taky zacinal, ale tak uz se dnes neprogramuje.
Pokud se dnes podívate na ObjectPascal v Delphi 2010, tak má overloading funkcí a procedur, inline funkce a procedury, defaultní parametry, možnost programovat těla funkcí v assembleru, dědičnost tříd, cykly „for in“, class helpery, podporuje unicode, má šablony funkcí a tříd, pretezovani operatoru.
Navíc si nehraje na nějaké trapné knihovny jako Java, ktera je dobove na urovni C, ale ObjectPascal má rovnou komponenty (výborné vizuální vkládání komponent do formulářů).
Pro začátečníka je vhodné, aby si zapnul při ladění kontrolu přetečení polí „Range checking“ a hodnot „Overflow checking“ a má naprosto lahůdkový debugger (žádné přeplácené Eclipse, sice zadarmo a na všechno, ale pro mě naprosto nepochopitelné …).
Pro výuku je výborné ucit definování polí pomocí ordinálních typů:
type TIndex = 3..10;
TArr = array [TIndex] of integer;
var a: TArr;
i: integer;
…
for i := Low(TArr) to High(TArr) do
a[i] := 1;
a[10000] := 1; // tady debbuger vyhodi chybu preteceni pole
To same je dnes v RAD nastrojich pro C/C++.
Tak, ze problem je v tom, ze to lide neumi ucit a nekdo se to naucil spatne a jeste se tim zivi.
Pascal je na vyuku vhodnejsi, nauci navyky a je prehlednejsi, pokud nekdo potrebuje, ale jazyk s vysokou optimalizaci do strojoveho kodu, tak je pro nej C/C++.
Jasne, priklad je z 90. let, ale ta ostatni vyjmenovana rozsireni jazyka jsou z posledni doby. Zapomel jsem jeste na anonymni funkce. ObjectPascal se dnes blizi „temer“ k C++. Bohuzel ma jen jednopruchodovou kompilaci, coz na jednu stranu je vyhoda, protoze kompilace je neskutecne rychla, nicmene pokud budete potrebovat prelozit program treba na kompresi, nebo s pozadavkem na extremni rychlost, tak C++ umi mnohem lepe optimalizovat vnorene cykly.
V dnesnich Delphi pisete program a rovnou se vam na pozadi kompiluje a podtrhava vam chyby, ktere tam mate. Ten obrazek Delphi 1.0, ktery zde je snad z roku 1995 (jestli se nepletu), kdy jsem si je kupoval. Dnesni IDE vypada uplne jinak a tech komponent jsou tam radove stovky.
S těmi 2000 řádky máš pravdu, nesouvisí to s jazykem. Souvisí to s tím, že se ten člověk na škole naučil nějakou syntaxi a trošku sémantiku jazyka a to ho tak vyčerpalo :-) že už se třeba neprobíraly věci jako modulární výstavba programu, strukturované programování (a sorry 2000 řádků v main() nebo mezi begin a end. není strukturované programování.
Já vidím v Delphi (ať už je teď prodává kdokoli – nějak často se to na můj vkus mění :-) jeden zásadní problém, a tou je cena a dostupnost jen na jednom prostředí. Kylix bohužel umřel, podle mě přišel moc brzo, když ještě programátoři nechtěli na Linuxu za něco platit (dnes se to trošku změnilo) a cena ze Delphi se sice programátorům zaplatí za pár týdnů práce, ale nakoupit licence pro třeba 40 počítačů na škole je někde jinde.