A PYTHON a jelenkor BASIC-je?
Nézek kifelé a fejemből és nem térek magamhoz. A ma legnépszerűbb programnyelv egy interpreteres, faék egyszerűségű, a néhai, hasonlóan gázos BASIC-et idézi, a maga lassúságával, igénytelenségével. Igen, ez a python és itt sündörög, sunyul, terpeszkedik, lassan harminc éve. Hát
mikor múlik már ki ez a shit halmaz? Mikor kerül a számítástechnika szemétdomjára, a BASIC, a DOS, az ALLEY CAT és a LOTUS123 mellé ez a pusztulat? Ez, amit az alkotója is csak egy rövid lejáratú viccnek szánt.
Nem tűnik fel senkinek, hogy csak a színvonalat húzza lefelé? Nem gáz az sem, hogy olyan lassú, mint tüdőbeteg csiga a feldoppingolt versenylóhoz képest?
Ez a nyelv semmi egyéb, csak a BASIC szintjén megrekedtek túlélő készlete. Mikor múlik el, mikor múlik már ki?
"De te az IBM helyett akkor milyen rendszert választottál volna? Mert a Unix drága volt és nagygépekre volt kitalálva, a Linux meg még nem is létezett (Linus Torvalds akkor még csak 11 éves volt)."
Az IBM-nek magának kellett volna lefejlesztenie egy megfelelő operációs rendszert. Az IBM ennek ellenére a Tim Paterson féle MS DOS-t favorizálta, a DR DOS-t valamint az UCSD P-system-et. Ebből a háromból, az árverseny okán az MS DOS került ki győztesen. A DR egész egyszerűen túl drágán adta a portékáját, az UCSD pedig túl specifikus volt.
A 8088 a PC-ben való megjelenése idején már el is avult. A 286-os ugyanis pár hónappal a PC debütálása után megszületett, gyártásba ment és hamar ki is szorította a 8088 alapú PC-ket és XT-ket. A 286-osok már AT gépekben voltak.
21: Mire gondolsz? Be vagy gombázva? 8088-on Unix sehogy nem futott. Az MS xenixe, a xeDOS futott rajta. Ez volt egy multiuseres oprendszer.
Ismét az a hozzászóló vagyok aki mutatott példát olyan kódokra amikor a python a gyorsabb a c++ - al szemben. Az eredeti kérdés szempontjából ez az érdekesebb nem az, hogy a múlt évezredben milyen DOS volt vagy nem volt.
Szóval nem minden esetben annnyira triviális, hogy skálázódik a sebesség, így akár alul is maradhat sebességben a c++ a python-al szemben. Így azaz állítás hogy konstans ennyiszer lassabb egy python kód egy c++ kódtól, nem igaz. Amit a kérdező linkelt videót, ugyanaz for ciklussal összehasonlítva while helyett már nem lenne annyiszoros futási idő különbség, de akkor is a c++ lenne gyorsabb.
Ha egy nem valós idejű és nem kritikus rendszerről beszélünk akkor adott gombnyomásra tized vagy század másodperccel több a feldolgozási idő python-al, nem fog számítani, hogy ezért áttérjenek natív kódra python helyett. Ugyanakkor a natív kódnak is megvan a létjogosultsága, de a sebesség sokszor nem minden mást felülíró szempont. Ha kell még mindig ott van a cpython a nagyobb sebesség elérése érdekében. Ha kell akkor a sebességkritikus kódrészeket c-ben vagy assembly-ben írják meg. Így ennyi erővel azt is kérdezhetnéd, hogy miért nem assembly-ben írnak meg lehetőleg mindent, ill. miért csökkent ennyire az assembly népszerűsége.
Például web scraping esetében az a tapasztalatom, hogy nem a python a szűk kresztmetszet. Csomó paramétertől függ a sebessége, a szerver és köztem lévő adatátviteli sebesség is csak egy a sok közül, mivel a szervernek adatbázisműveletek stb.-től is függhet a válaszideje. A DDOS támadás elleni védelem miatt blokkolhat is a szerver, így alapból sleep-eket iktatok be, így mesterségesen lassítom a folyamatot.
A mai hardver teljesítmény és ár és áramfogasztási ár és fejleszési költség stb. stb. mellett nem olyan meglepő, hogy nem ugyanaz lesz a legnépszerűbb prog. nyelv mint az MS DOS idejében az akkori vasakon.
"Szóval nem minden esetben annnyira triviális, hogy skálázódik a sebesség, így akár alul is maradhat sebességben a c++ a python-al szemben. Így azaz állítás hogy konstans ennyiszer lassabb egy python kód egy c++ kódtól, nem igaz."
Ezt te komolyan is gondolod?
Az a lényeg, hogy average alkalmazásfejlesztés során milyen performanciát tudsz a python kódból kihozni. Hát, elég siralmas a python, akárhogy is szinezed.
Más nyelv esetén, nem feltétlenül cpp, lehet c is vagy akár Java, a python hátránya egyértelmű és elég markáns. Akár 100-200-szor gyorsabb is lehet adott applikáció a pythonban fejlesztetthez képest.
"A mai hardver teljesítmény és ár és áramfogasztási ár és fejleszési költség stb. stb. mellett nem olyan meglepő, hogy nem ugyanaz lesz a legnépszerűbb prog. nyelv mint az MS DOS idejében az akkori vasakon."
Ez igaz lehet, de pont ez a baj.
Amíg kevés volt a hardver, addig becsülettel kihasználták az erőforrásokat, ma, amikor erőforrástöbblet van, már pazarolják is, és ez gond.
#25 Pénz beszél, kutya ugat. Annak idején baromi drága volt a hardver, szűkös az erőforrás, emiatt muszáj volt optimalizálni, mert senki nem vette meg a programot, ha nem volt elég hatékony.
Manapság a hardver olcsó és nem szűkös, a fejlesztők munkaereje viszont nagyon is drága. Emiatt anyagilag nem éri meg, hogy plusz időt (és ezáltal pénzt) áldozzanak az erős optimalizálásra.
Gondolj csak bele: egy mai modern webapp esetén az npm több száz vagy ezer dependency-t is behúz, pedig lehet, hogy csak egy kis szeletet használ az app. Nagy lesz a kódméret és nem a leghatékonyabb, de a mai hardverekkel kielégítően működik és sokkal olcsóbb, mintha minden szükséges funkciót maguknak fejlesztenének le.
"Ezt te komolyan is gondolod?"
Ott vannak a példa kódok is, a videó is róla. Tényleg gyorsabb a példában, ki is lehet próbálni. Bár nem azt állítottam, hogy általában így szokott lenni.
"Hát, elég siralmas a python, akárhogy is szinezed."
Mégis No. 1 a népszerűsége nemzetközileg is elfogadottan.
"Más nyelv esetén, nem feltétlenül cpp, lehet c is vagy akár Java, a python hátránya egyértelmű és elég markáns. Akár 100-200-szor gyorsabb is lehet adott applikáció a pythonban fejlesztetthez képest."
Web scraping esetében mire az a nagy sebesség? Amikor nagyrészt sleep-elve van, mivel nem vagyok paraszt és nem akarom nagy terhelésnek kitenni a szervert, ill. nem akarom hogy DDOS-nak érzékelje a szerver, meg eleve a távoli szerverhez való hozzáférés lassabb szokott lenni (sleep nélkül is) mint a helyi gépen a python amire képes lenne.
Továbbá vannak egyszer használatos szkriptjeim is, a megírás és lefuttatással együtt gyorsabb python-ba megírni és lefuttatni mint c-be, vagy java-ba vagy c++ - ba.
"Ez igaz lehet, de pont ez a baj.
Amíg kevés volt a hardver, addig becsülettel kihasználták az erőforrásokat, ma, amikor erőforrástöbblet van, már pazarolják is, és ez gond."
Így van, ezért írj meg mindent assembly-ben vagy közvetlenül gépi kódokban és ha 1 órajel ciklus megspórolható akkor nehogy elmulaszd, a kódot úgy implenetáld minden ilyen esetben !
A kérdezőnek házi feladat rájönni, hogy a közzétett Eratosztenész szitája python-os implenetációja hogy tudta sebességben kenderbe verni a bemutatott c++ - os implenetációt !
"Akár 100-200-szor gyorsabb is lehet adott applikáció a pythonban fejlesztetthez képest."
Csupán azért ekkora különbség nem lehet, mert az egyik python alatt fut a másik meg nem. Ott más egyéb finom részletek miatt van. A finom részleteknek köszönhetően akár a python is lehet gyorsabb (lásd házi feladat).
A tegnap említett "vannak egyszer használatos szkriptjeim is", igazából gyakran nem is mondanám külön szkripteknek, hanem annyiból állnak, hogy beírom az ipython shell-be vagy jupyter-lab - ba.
Remekül össze lehet pipe-olni például bash-el, bash szkriptet generálni vele. Pl. adott 50 könyvtár egy könyvtáron belül. Ezt az 50 könyvtárat 7z-be külön-külön betömöríteni. A python kigenerálja az ezek betömörítéséhez szükséges 7z parancsokat, melyet bash-el lefuttatok. Ha kell mindegyiket egyedi és röptébe generált erős jelszóval látom el, nem tart sokból leimplenetálni. Ez esetben a python futási ideje a másodperc tört része akárhány gigát tartalmaznak ezen könyvtárak. Azért mert a parancsok kigenerálása függetlenek attól, hogy ezen könyvtárak mennyi adatot tartalmaznak és a munka nagy része a tömörítésre megy el, nem 50 darab parancs kigenerálására.
Egyébként nem gondolom, hogy minden programozási feladatra python-t kell/kellene használni, de világszinten igen meghatározó része a programozásnak a python.
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!