Mennyira ajánlanátok a C-t első programozási nyelvnek ?
#10 Most kiragadtál egy részletet. A teljes mondat így szól:
"Szerintem a C#, Java vagy Python hármasból kellene választanod, ezek közül egyébként a Python a legkönnyebben tanulható nyelv, viszont cserébe segítségével nem tanulsz olyat, mint tömbök, függvények és metódusok közötti különbség, stb."
Vagyis nem azt mondtam, hogy a Python a legkönnyebben tanulható, hanem hogy a három közül a legkönnyebben tanulható. De miért? Mert magas szintű objektumorientált nyelv, többek között nem kell foglalkoznod a függvény és a metódus közötti különbséggel, csak listák léteznek, így nem kell figyelembe a szükséges elemek hosszát, mint a fix hosszúságú tömbnél, valószínűleg nem is találkozol garbage collectorral, nem kell foglalkoznod az adattípusokkal (a C# és a Java erősen típusos nyelv), mert automatikusan felismeri őket a fordító, nem különbözteti meg a nyelv a for és a foreach ciklusokat, és így tovább.
A Kotlin is egész jó nyelv tud lenni, kipróbálható online:
Mondjuk talán túl sokat tud, valami szűkebb alapkészletével érdemes kezdeni.
Annyit még "ellene", hogy nem a C szintaxisra épül, ezért erről nehezebb átállni hagyományosabb nyelvekre (C, C++, Java, C#, Rust?)
11. Azok alapján, amit írsz, csak nagyon kicsit ismered a Pythont.
"Mert magas szintű objektumorientált nyelv"
Akárcsak a másik kettő. A Python egyébként nem objektumorientált nyelv, hanem elsősorban procedurális (szemben pont a Javával és C#-pal), objektumorientált és funkcionális képességekkel. Pont az objektumorientált képességei a leggyengébbek egyébként (a másik kettővel összevetve).
"többek között nem kell foglalkoznod a függvény és a metódus közötti különbséggel"
Ez alatt nem egészen értem, mit értesz. Mit értesz ez alatt?
"csak listák léteznek, így nem kell figyelembe a szükséges elemek hosszát, mint a fix hosszúságú tömbnél"
Ezt sem tudom hová tenni. Mi az, hogy "csak listák léteznek"? (?) A Pythonnak is vannak normális natív adattípusai (dict, tuple stb.), és rengeteg nem natív adattípussal is dolgozunk benne (pl. np.float stb.).
Az állításod második fele igaz (bár nem tudom, hogyan kapcsolódik az elsőhöz), kivéve, ha nagy teljesítményű Python (helyesebben Cython) kódot akarsz írni, ami gyakorlatilag egy C transpiler.
"valószínűleg nem is találkozol garbage collectorral"
Javában, C#-ban se nagyon. Azért van. Amennyit meg igen, annyit a Pythonban is simán.
"nem kell foglalkoznod az adattípusokkal (a C# és a Java erősen típusos nyelv)"
Dehogynem. Először is a Python is erősen típusos nyelv (!!!). Másodszor is a profi Python kódbázisokban használunk típus annotációkat. De egyébként egész nap se mást csinálok, mint az adattípusokat baszkurálom pl. Pandasban.
"mert automatikusan felismeri őket a fordító"
Vagy próbálja kitalálni, ami vagy sikerül vagy nem, ezért szoktuk explicite megadni.
"nem különbözteti meg a nyelv a for és a foreach ciklusokat"
Ez nem tudom, hol tesz egy nyelvet egyszerűvé, azon túl, hogy a Pythonnak viszont natív iterátorai és comprehensionjei vannak, ilyenek pl.:
double_dict1 = {k:v*2 for (k,v) in dict1.items()}
Ami meg szerintem még mindig hiányzik Javából, bár a C# tud hasonlókat, pl. [link]
"és így tovább"
És mi így tovább? Tényleg érdekel, mert én is tudok sorolni "és így tovább" típusú képességeket Pythonban, amik messze meghaladják az Első Python Tutorial szokásos scope-ját, pl. funkcionális képességek (map, filter stb.), iterátorok, generátorok, lambda, a fent emlegetett list/dict comprehensionök, "dunder methods", threading / konkurrens és parallel programozás, dekorátorok / metaprogramozás, és akkor még el se kezdtem mondani a sztenderd adatkönyvtárakat (numpy, scipy, pandas, polars, rengeteg adatvizualizációs és gépi tanulásos könyvtár stb.), amelyek mindegyike egy önálló világ.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!