Keresés

Új hozzászólás Aktív témák

  • dabadab

    titán

    válasz lezso6 #23 üzenetére

    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.

  • dabadab

    titán

    válasz ivana #20 üzenetére

    "Amatőr hiba ;]"

    Amatőr kifogás. ;]
    Amikor az ember egy-két évtizedet azzal töltött, hogy hatalmas, sokmilliósoros projekteken dolgozott, ahol folyamatosan új, addig még ismeretlen kódrészeken kell dolgoznia, akkor rájön arra, hogy mekkora érték az, hogy ha a kód jól olvasható és nem tud megtévesztő lenni.

    "Minden másban is ha benyomom a kód formatot, de ezzel a pythonossal nagyon sokat szívtam egyszer egy gites fájl-al amit nagyon sokan szerkesztettek és össze vissza voltak a behúzások."

    Miért nem nyomtál rá egy format code-ot?...

  • dabadab

    titán

    válasz ivana #17 üzenetére

    "A python-ban az, hogy a behúzások alapján működik a compiler szerintem rohadt gáz"

    Egyáltalán nem, mert így az, amit a programozó lát, meg amit a compiler lát, az ugyanaz. Mutatom egy C-s példával, hogy miért jó ez:

    Az ember megírja a kódot:

    if ( a == b )
    equal++;

    Aztán később kicsit bővíti:

    if ( a == b )
    trace("a and b are equal");
    equal++;

    Aztán csodálkozik, hogy miért nem jó a kód (megtörtént eset alapján).

  • dabadab

    titán

    válasz lezso6 #15 üzenetére

    A C-vel az a gond, hogy bármit csinálni akarsz, belefutsz pointerekbe meg hasonlókba, amiknek a megértéséhez a gép belső működésének egy viszonylag komolyabb átlátása szükséges - egyáltalán nem egyszerű nyelv. Ráadásul pont a móricka-feladatoknál jön elő minduntalan a printf meg a scanf, amik a változó paraméterlistájukkal tökre elütnek a szokásos C-s stílustól és ott aztán tényleg sok hülyeséget lehet csinálni, mert nulla ellenőrzés van rájuk. Pl. hogy néz már ki C-ben az az örök klasszikus, ami Pythonban így:

    name = input('Enter your name: ')
    print('Hello', name)

    Azt meg nem értem, hogy miért mondod a Pythonra, hogy elcseszett a szintaxisa, de tényleg (oké, az OO-s résznél az explicit selfezés az tényleg az ember agyára tud menni, de mondjuk abban meg látok pedagógia értéket).

  • dabadab

    titán

    Egyébként hogy értelmesen is hozzászóljak, C-t szerintem nem érdemes, mert az gyakorlatilag egy plat... izé, értitek :)

    A szokásos javaslatom a Python: script nyelv, ami miatt könnyű vele játszadozni, egyszerű dolgokat egyszerűen meg lehet benne csinálni, de tud bonyolult dolgokat is, OO-t is és egy ténylegesen létező, széleskörűen támogatott nyelv.

  • dabadab

    titán

    válasz lezso6 #2 üzenetére

    "Én konzolos programokkal indítanék"

    Xbox vagy Playstation?

    :DDD

Új hozzászólás Aktív témák

Hirdetés