by violazoli » Tue Sep 24, 2013 16:51
Ritana, én nem akartalak megbántani. Ennyire érzékeny azért ne legyél, oké?! Igen, én szívesen használok erős érzelmi töltetű szókat, sőt, helyenként valóban nem riadok vissza az enyébb trágárságoktól sem. De olvass csak vissza kérlek: RÓLAD nem írtam semmi ilyesmit, semmi sértőt vagy trágárt! A PHP nyelvről meg esetleg más DOLGOKRÓL, igen, azt elismerem. De RÓLAD nem. Ha mégis így véled kérlek idézd ide be nekem, mi az amivel megbántottalak volna! Még ha úgy volt is, nem szándékosan tettem, s előre bocsánatodat kérem érte!
"beletömködni", meg "első használat előtt" versus "fordítási időben" - hát persze, ha precízkedni akarunk igazad van, de ugye nem képzeled hogy az volt a célom egy fórumos hozzászólásban hogy kitérjek minden részletre? Ezzel az erővel kezdhetném magyarázni itt a bináris aritmetikát is akernarnak. A lényeg, hogy ha fordítási időben kell is tudja a rendszer a változóról a típusát, az is tuti hogy az első használat előtt van, mert előbb fordítunk mint használjuk a programot, azaz a változót is. Én csak a dinamikus típusossággal (típus nélküliséggel) óhajtottam szembeállítani ezt.
És nem, nem vagyok senior programozó, nem tudom ezt honnan veszed. Lelkes amatőr vagyok. Talán mondható hogy "viszonylag jól képzett kontár" vagyok e téren. De akkor sem profi. Hobbista. Én magamat a Linuxban többnyire úgy szoktam titulálni, hogy "power user" vagy "expert user", szembeállítva e fogalmat mind a "kezdőkkel", mind a "hackerekkel". A kettő között érzem magamat. Talán közelebb a hackerekhez mint a kezdőkhöz, de ez is csak amiatt, mert a hackerság szerintem nem elsősorban a tudásszinttől függ (bár minimális tudásszint alatt nemigen lehet erről beszélni) hanem egy életmódtól, szemlélettől, hozzáállástól. De a számítástechnika oly sokrétű, hogy egészen biztosan van olyan része, amiben tutira teljesen kezdő vagyok én is. (szerintem ilyen majdnem minden hálózatos dolog, de több efféle is akadhat).
Python szkriptekkel generált C kód? Hm... Elhiszem hogy van ilyen. Azért a hatékonyságával, optimalizáltságával kapcsolatban vannak kételyeim. Ez olyan lehet mint még Windowsos korszakomban amikor kipróbáltam egy C vagy talán C++ nyelvű programozást segítő "izét", elfelejtettem a nevét, valami fejlesztőrendszer volt, ahol ablakokat meg más vicikvacakokat kellett képernyőn húzgálnom, s ebből a masina összetákolta a forráskódot.
Teljesen idegen volt e stílus tőlem, hogy nem látom írás közben a programot. De ez hagyján, mert aztán megnéztem a létrejött forrást, s azt mondtam hogy köszi, inkább megírom magam. És nemcsak a "hatékonyság" miatt, de amiatt is mert tudtam ha így írok meg egy hosszabb akármit, utólag soha az életben nem igazodom ki rajta, ha módosítani kell.
Most erre mondhatod hogy múltbaragadt vén hatökör vagyok, aki nem képes haladni a korral. Lehet hogy igazad is van. Számomra a programozás kissé művészet, és nem a tömegtermelésről szól. Ha a gép írja a kódot helyettem - még ha Python szkriptekkel is - azt nem én írom. Szerintem.
Haskell? Épp tegnap nézegettem. Biztos van amire jó. Nem az én világom. Például teljesen lepetéztem attól, hogy ez a nyelv inkább rekurziót használ ciklusok helyett. Bocs de én gépközeli fogalmakban szeretek gondolkodni, azaz ha van egy ciklus, akkor az ciklusként legyen nekem leprogramozva és megmutatva. Nem beszélve arról, hogy tartok tőle, ha van egy 10 ezer elemű tömb és ezt rekurzióval akarod összegezni mondjuk, nos képzeld el hogy a szerencsétlen prograny meghívja önmagát egymásbaskatulyázva 10 ezerszer, persze ehhez mindig el kell tárolja a visszatérési címet a stackban, ha csak 32 bites rendszerben gondolkodunk is az 4 bájt, azaz ezzel megnöveli a veremtárat minimum 40 K-val! Pedig emellé biztos kimenti még a használt regiszterek tartalmát is ami újabb néhányszor 10 ezer bájt! Szerinted ez hatékony, most úgy őszintén?!
Persze erre mondhatod hogy ilyesmit ciklusban fordít le a nyelv, csak nekünk mutatja a forráskódot rekurzióként. Na erre meg én azt válaszolom, hogy akkor ez egy hazugság, mármint hogy ezesetben ez egy hazug programnyelv. Én szeretem ha tudom, az általam írt kód legalább nagyjából mire fordul le. Ha erre nem vagyok képes (ezt átlátni) akkor gőzöm se lehet arról, mennyire lesz az hatékony, azaz ezesetben érezhetem magamat talán elméleti matematikusnak, de nem PROGRAMOZÓNAK!
Aztán, az nem érv itt, hogy Pythonban könnyebben el tudod magyarázni a ciklusokat vagy akármit egy 10 éves gyereknek. Mert feltételezem, akernar pár évvel azért idősebb már mint 10 év... Ha pedig mégis 10 éves gyerekekről vitázunk (nem tudom miért, itt most akernarnak adtunk volna tanácsot) akkor azért szerintem a Python se ideális, akkor valami olyasmi kéne neki hogy mondjuk turtle graphic, logo, vagy más eféle gyerekes ökörködés. Illetve ha az a gyerek annyira elvont fazon mint én voltam gyerekként, akkor simán jöhet neki is azonnal a C.
Portage? Ritana, a GoboLinuxban is Pythonban van jópár szkript. Nem azt mondtam, semmi fontosat nem írtak meg Pythonban. De a fontos dolgok hány százaléka készült abban, és hány C-ben?
És bocsáss meg, de Portage nélkül is létezik Linux. Mindenféle csomagkezelő nélkül is. LFS például.
Ha akernar meg akar érteni valami programot legalább nagyjából, amit fel akar telepíteni, mondjuk mert valami apróságot módosítani akar benne, hétszentség hogy az esetek többségében - 99.9999999%-ában - kiderül róla hogy ehhez egy config.h fájlt vagy más effélét kell módosítania. Ami ugye egy C program része, tehát semmire se megy majd vele a Python ismereteivel. (Tipikus példa erre a DWM ablakkezelő, de rengeteg mást is lehetne írni).
Linux alá a programok messze túlnyomó többsége C-ben készült, ami pedig mégsem, annak legnagyobb része C++-ban, ami "majdnem C". Legalábbis aki tudja a C-t, az messze könnyebben tanulja meg a C++-t mint aki nem tudja. Csak a programok ezekhez képest egészen elenyésző százalékát írják Linux alatt olyan egzotikus agymenésekben mint a Haskell, Lua, Lisp. És igen, sajnálom, de a Python is ezek közé tartozik ilyen szempontból. Nem vitatom jóval gyakoribb mint a Haskell, Lisp stb, de egy napon se lehet említeni a gyakoriságát a C-vel. Te is tudod. Akernarnak az a fontos hogy legalább nagyjából megértse a telepítendő programokat, vagy azok egyes funkcióit. Miután 99.99999%-ban valami C/C++-ban írt programot fog telepíteni, ehhez neki a C-t kell tanulnia. Akkor is ha a Portage Pythonban van írva. Ő nem a csomagkezelő rendszerét fogja buzerálni/átírni, hanem az épp feltelepítendő programot. Ráadásul ha azt módosítja, akkor már feltehetőleg nem is a Portage-val teszi majd fel, csak úgy nyersen parasztosan ./configure, make, make install.