Miért a pythonnal szenvednek?
A sok kezdő miért a pythonra cuppan rá? Ahelyett válaszhatna valami sokkal jobb nyelvet, mondjuk pascalt. Az mégis csak többet ér, mint az interpreteres, tetű lassú python. Ha tovább folytatja a tanulást, ha felhagy vele egy idő után, akkor is jobb választás a pascal, mert azzal legalább létre tud hozni natív alkalmazásokat, amikhez nem kell futtatási környezetet installálni, mint a pythonhoz.
Ráadásul, a pascal kifejezetten tanulás céljára lett tervezve.
> "Érdemes most elvonatkoztatni attól is, hogy az ipar mennyire használ egy nyelvet és mennyire nem, ugyanis itt nem az iparban, hanem az oktatásra való alkalmasság a kérdés. És ebben nem lehet kétséges, hogy a Pascal vezet, még hozzá körökkel a Python előtt, ugyanis a Pascal egy feszes, akkurátus, precíz, logikus nyelv."
Épp ez az, hogy szerintem meg pont ez teszi alkalmatlanná az oktatásra, mert teljesen rugalmatlan a nyelv. Manapság már olyan óvodásoknak is való grafikus programok érhetőek el díjmentesen, mint a Tinkercad, mégis mi a fenének akarnám Pascal-al bevezetni a programozásba? Ha kettő közül választhatnék, akkor inkább a Python. Van hozzá normális fejlesztőkörnyezet (nem az a DOS ablakos Pascal undormány), van hozzá normális dokumentáció, van hozzá tömkelegnyi oktatóanyag, rugalmas nyelv, nagyon sok tudományterületen használják. Miért akarnék Pascal-t oktatni? Semmi nem szól mellette.
> "A Pascal nem megy le kutyába, tehát véletlenül sincs olyan lehetőség, ami a pythonban default, hogy értékadás kinézhet így, hogy 'A = 2' mivel nincs ilyen, hogy 'A = 2', csak olyan van, hogy A legyen egyenlő kettővel. És bizony, ennek a logikai minimumnak még az a szir-szar basic is eleget igyekezett tenni a LET A = 2 formulával."
És ez oktatás szempontjából mit jelent? Semmit. Megtanulja a diák Pascalban az értékadást, majd később Python-t tanul és ugyanúgy elköveti a hibákat. Mert ott viszont már nem mindegy. Nem látom, hogy a Pascal-ban miben segített, hogy ezt elkerülje a későbbi tanulmányai során.
> "A python nyelv sebességbeli problémájára nem is térek ki hosszan, mert aki ebben vitázni akar, az nem is akar mást, csak vitázni, cél nélkül. Ő inkább nézze meg ezt a rövidke videót, ahol is igazolást nyer, hogy a Python sokszor, számszerűen 11-szer annyi futásidőt igényel, mint a Pascal."
Köszöntelek a való életben. A tudományos területen dolgozókat ez nem érdekli. Lesz.rják. Rendszermérnököket sem érdekel. Lesz.rják. Miért? Azért, mert ezekben az alkalmazásokban nem a sebesség a kritikus. Az viszont nagyon nem mindegy, hogy 100 sornyi kódot kell írnod vagy 20-at, hogy ugyanazt az outputot kidobja. Hatékonyság.
> "A Pascal mint nyelv, nem avult el, csak részben kiszorították más nyelvek, de nem az alkalmatlansága, zsákutca mivolta miatt, hanem azért, mert az elvárások és a körülmények megváltoztak."
Jól mondod. A körülmények megváltoztak, nem használják szakmai körökben, tehát zsákutca.
> "De ez még mindig nem jelenti azt, hogy a Pascal alkalmatlan lenne arra a szerepre, amit az alkotója neki szánt."
Van egy Trabantom. Végülis az alkotója szerinti funkciót a mai napig betölti, alkalmas arra, hogy közlekedjek vele. El tudnék vele menni az olasz tengerpartig, csak... Értelme nincsen. Tehetnék rá T táblát és oktathatnék vele, csak... Értelme nincsen.
"A Pythont is lehet gyorsítani rengeteg módon "
A Pythont nem lehet gyorsítani. Az nem gyorsítás, hogy a pythonban írt kódot átpréseljük egy transpileren, ami C kódot generál belőle, mert az már nem python.
Arról nem is beszélve, hogy a Pascal kódon ilyen beavatkozást abszolút nem szükséges végezni, mégis, rapid, tömör, önállóan futtatható állományt kap az ember.
"Köszöntelek a való életben. A tudományos területen dolgozókat ez nem érdekli. Lesz.rják. Rendszermérnököket sem érdekel. Lesz.rják. "
Dehogy sz.rják le. Ha lesz.rnák, akkor nem létezne cython és társai.
Olvashatóság: A Pascal kód nagyon olvasható és könnyen megérthető. A nyelv erősen strukturált, ami azt jelenti, hogy a kód különálló blokkokba van csoportosítva, és ezek könnyen követhetőek.
Biztonság: A Pascal egy olyan nyelv, amely nagyon szigorúan figyel az adattípusokra és az érvényes kifejezésekre. Ez nagyon fontos a biztonságos és stabil kód írása szempontjából, mivel a rosszul definiált adatok vagy érvénytelen kifejezések a kód hibájához vezethetnek.
Teljesítmény: A Pascal gyors és hatékony programozási nyelv. A nyelvben megvalósított optimalizációk és a szigorú típusosság miatt a Pascal kód általában gyorsabb, mint más, dinamikusan típusos programozási nyelvek.
Moduláris szerkezet: A Pascal kód moduláris szerkezetű. Ez azt jelenti, hogy a kódot különálló egységekre lehet bontani, és ezek az egységek újra felhasználhatóak. Ez a modularitás nagyon fontos a nagyobb projektek fejlesztésénél, mivel csökkenti a kód bonyolultságát és könnyen karbantarthatóvá teszi a programot.
Támogatás: A Pascal nyelv széles körben támogatott és nagyon sok dokumentáció, online segítség, és fejlesztői közösség áll rendelkezésre a nyelvhez kapcsolódóan. Ez segít a fejlesztőknek a kódok írásában és a problémák megoldásában.
Oktatási célokra ideális: A Pascal nyelv különösen alkalmas oktatási célra. A nyelv olvashatósága és a szigorú típusosság miatt segít a kezdő programozók számára, hogy könnyen megértsék a programozási alapokat.
Összességében a Pascal egy hatékony, biztonságos és könnyen olvasható programozási nyelv, amely különösen alkalmas nagyobb projektekhez, valamint oktatási, tanulási célokra egyaránt.
“ Az nem gyorsítás, hogy a pythonban írt kódot átpréseljük egy transpileren, ami C kódot generál belőle, mert az már nem python.”
De, az még Python. A Python az egy nyelv, hogy ezt hogyan fordítod le futtatható kódra, az implementáció kérdése.
A PyPy az nem transpiler, hanem egy kicsit jobban optimalizált interpreter, mint a CPython.
A numba sem transpiler, hanem egy jit.
A Cythont nevezheted transpilernek, de ettől még rohadt gyors a végeredmény. Semmilyen “beavatkozás” nem szükséges ehhez sem, fut magától minden.
A Codon nem transpiler hanem compiler.
Más okosság?
#33 Sehol nem láttam még, hogy cython-t használnának tudományos körökben. Ez csak a te személyes víziód, hogy a programozási nyelvnek gyorsnak kell lennie.
Olvashatóság: Oktatják, hogyan kell olvasható kódot írni. Nem a nyelven múlik. Pascal-ban is lehet olyan kódot írni, amin leállsz agyalni, hogy mit is akar csinálni a kódrészlet.
Biztonság: Értsd már meg, hogy Python-t nem csak végfelhasználóknak szánt programoknál használnak. Pont az a kisebbik szelet. Ahol fontos, ott foglalkoznak a security-val. Vannak rá auditorok, security-s munkatársak, stb. Ez sem a nyelven múlik, hogy a kész program mennyire biztonságos. Lehet egyéni preferencia, hogy te szereted, ha a nyelv véd a hülyeségeid ellen, de nem ettől lesz biztonságos a program.
A többit már kitárgyaltuk vagy nincs mit hozzászólni. Python-t is lehetne hosszasan elemezgetni, hogy milyen jó tulajdonságot tudunk kiírni róla, de ez nem tesz hozzá semmit az alapfelvetéshez.
35. “ Sehol nem láttam még, hogy cython-t használnának tudományos körökben.”
Az összes fontosabb numerikus könyvtár (numpy, pandas stb.), ami nem C++-ban, az cythonban van írva, tehát egyfolytában használjuk.
A polars és pydantic rustban van írva. A PyTorch és TensorFlow C++-ban. De rengeteg minden készül Cythonban.
Az sklearn honlapján külön vannak Cython tippek: [link]
De való igaz, nem is akartam kötözködni, hogy explicite nem kódolunk Cythonban, csak ha nagyon kell, főleg, hogy a numba jit is hozza az eredményt.
Én is azt látom, hogy csomó mesterséges intelligenciára épülő megoldások használnak Python könyvtárakat.
Valamint a Jupiter Notebook-ot is ígéretesnek mondják.
Én boldog lennék, ha hasonlót tapasztalnék Pascal esetén, de sajnos sose találkozom ilyesmivel.
24: Élvezem amikor valaki kiforgatja amit írok. Nyilván nem a BME VIK képzésre gondoltam, hanem a kérdező "szövegkörnyezetére" amikor írtam, hogy "Felesleges ezzel terhelni bárkit is." Nyilván egy magasan képzett szakember (mérnök, MSC szint és társaik) képzése az nem a kezdő szint ami a kérdésre vonatkozott. Nyilván egy magas szintű képzés esetén egészen mások a preferenciák, mint amit a
kérdező írt: "A sok kezdő miért a pythonra cuppan rá?"
Számomra a "sok kezdő" != "BME VIK hallgató" (sőt írhatnám azt, is hogy a BME VIK hallgatók halmaza nem tartalmazza a "sok kezdő" halmazát, a kettő diszjunkt halmaz. Nyilván ha a kérdés a BME VIK hallgatókra vonatkozik és nem a "sok kezdőre" másképpen kell megfogni a dolgokat.
Idióta.
Mert most ez a divat.
15 éve korrepetálok. Tetszik vagy nem, a Pascal még mindig a legalkalmasabb tanulónyelvek között van. Tudom, nagyjából 10 éve már nem divatos, és olyan 2010 környékén a C# volt a menő kezdő nyelvnek, hát hadd ne mondjam, hogy érezhetően nehezebben ment a tanulóknak, mint a Pascal. A Python talán kicsivel jobb, de hajlamos fegyelmezetlenségre, és lustaságra nevelni. Dolgoztam együtt (részben) pythonos projektben egyetemistákkal, és sajnos azt láttam, hogy a "megoldás" majdnem mindenre az, hogy "mindjárt keresek hozzá egy libet". Ami nagyobb lélegzetvételű feladatokhoz jogos is lenne, de amikor egy 20 sorban megoldható függvényhez is külső könyvtárat keresnek, elfog az agybaj. Aztán csodálkoznak, ha a hatékonysága olyan, amilyen, és ugye nem mindegyik külső könyvtár olyan hú, de stabil és megbízható.
A program szerkezete pedig túl laza egy kezdőnek. Egy tanulónyelv akkor jó, ha kellően könnyű ahhoz, hogy ne vegye el a tanuló kedvét, ugyanakkor rászoktassa olyan gyakorlatokra, amik a későbbiekben fontosak lesznek a precíz programozáshoz.
Csak sokan beleesnek abba a hibába, hogy piacképesség alapján kezdenek el programnyelvet tanulni. Ez akkor szempont, amikor az ember már kellően rutinos algoritmizáló, szerzett kellő rutint a programozásban, és tényleg már ott tart, hogy a piaci igényeknek megfelelően specializálódjon. De nem akkor, amikor épp az alapokat tanulgatja. Ez olyan, mintha az első osztályosnak a Száz év magányt kellene elolvasni, mert hát az ovlasókönyvek sehol nem piacképesek. :D
Az egy másik kérdés, hogy talán tényleg nem kéne túlerőltetni az interpretált nyelveket szinte minden területen. A szkriptnyelveknek is megvan a maga létjogosultságuk és alkalmazási területük.
Egyébként Pascalban is bármit meg lehet írni, amit más nyelveken. Korszerű, RAD eszközök is épülnek rá, mint például a Delphi, vagy a Lazarus. Indokolatlanul lenézett nyelv, de hát bele kell törődni, hogy az informatikában sem minden az ésszerűségen alapul, nagy a szerepe itt is a "divatnak".
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!