Vettem magamnak a fáradtságot és a fentit megírtam C-ben is. Ez lett:
#include <stdio.h>
int main(void)
{
char name[20000];
printf("What's your name?\n");
fgets(name,20000,stdin);
printf("Hello %s\n", name);
return 0;
}
Csak összehasonlításnak, ismét itt ugyanez Pythonban:
name = input('Enter your name: ')
print('Hello', name)
A fenti pythonos példát el lehet magyarázni egy teljesen kezdőnek úgy, hogy minden karakterről tudja, hogy miért ott van, ahol van. Ahhoz, hogy valaki ezt a C verziót megértse, legalább egy fél évnyi előtanulmány kell. Az meg szerintem nem egy túl jó pedagógia módszer, hogy úgy tanítunk valamit, hogy nem magyarázzuk el, hogy mi micsoda, hanem valamiféle voodooként kezeljük a dolgokat.
"Egyébként a pointerekhez nem kell tudni a gép belső működését."
De, mert különben egyáltalán nem érted, hogy mi is ez az egész. Lehet, hogy neked, akinek a fejében évtizedek óta összeállt a kép, ezek teljesen triviális dolgok, de kezdőként teljesen máshogy néznek ki a dolgok. Szerintem már az is hatalmas különbséget jelent, hogy egy nyelv erősen típusos, mint a C, vagy nem (mint a Python).
"Kezdésnek szerintem minél butább nyelv kell, hogy kevesebb legyen a zavaró tényező"
Szerintem a nyelvnek nem butának kell lennie, hanem egyszerűnek. Pont ezért jó a Python, hasonlítsd csak össze a két példát: kezdő szinten a Python programokban tényleg csak az lesz benne, ami kell, a C-s változatok meg tele lesznek voodooval, ami persze a kísérletezést is megnehezíti, mert pillanatok alatt bele tud futni olyan hibákba, amiket még nem is érthet, hogy miért hibák.
"Nincs semmi bajom a python szintaxisával, sőt, nekem nagyon tetszik. Csak egy kezdőnek nem biztos, hogy célszerű ezt ajánlani, mert ha más nyelvre megy, akkor jöhet a pofára esés."
A kezdőnél az a fontos, hogy a koncepciókat megértse, az meg akkor megy, ha minél kevesebb felesleges részlet viszi el a figyelmét. Egyébként meg a magam részéről a Python meg mondjuk a C++ vagy pláne a Java között alapszinten szintaktikában olyan nagyon nem látok különbséget.
[ Szerkesztve ]
DRM is theft