Python az istencsászár

Most jól megmondom!

Most azon gondolkodom épp, hogy miért van ez a python hype. "Hát ez mindenre jó". Nemár, ne. Előbb egy nemtommi, de ez nem. Na csak kiadtam magamból. Nem tudok rokonszenvezni ezzel a nyelvvel. Ja és nem tudok "endzsülőr" fan se lenni. Szar alak vagyok mi?

Hozzászólások

Divat. Nem kicsit. Egy qrva nagy előnye van: a más nyelveken trehány, összegányolt, olvashatatlan forráskódot produkáló "fejlesztők" rá vannak kényszerítve "szép" kód írására. Van, akinek ez kell - nekem Perl is megy úgy, hogy a perltidy csak minimálisan (vagy semennyire sem) nyúl a kódomhoz, ha ráeresztem kíváncsiságból...

Szerkesztve: 2020. 03. 07., szo – 19:26

Van még kettő előnye: belépési pont, első sikerélmény. Az hogy később milyen szintig jut a szoftverfejlesztés mélységeiben sok Python-only fejlesztő, az más téma.
Sok ilyen dolog van, ahol az alacsony belépési pont miatt szinte kizárólagosságot kap:

   Word vs LaTeX: http://www.pinteric.com/pic/miktex.gif
   Python vs. Rust: https://blog.passfort.com/content/images/2018/06/graph.png
   ...
   ...

Vajon hol melyiknél lehet elérni hamarabb a "basic competency"-t? Melyiknél jön hamarabb az első sikerélmény?
Kb. erről szól a Python hype is. Tanítsunk meg sok embert valami könnyen kezdhető nyelven tákolni.

Nézzük másképpen: végy az életből válogatás nélkül 1000 problémát. Nézd meg, hogy eloszlásában milyen skill kell hozzá. Vélhetőleg kb. 950 probléma alap képességgel megoldható.
A maradék 50-ből 45 középszintű és van 5, amihez jó képességű programozók kellenek.

A hype az, hogy 950 egyszerűen kiszámolható probléma ne maradjon megoldatlan, mivel ma ennek a nagy része is megoldatlan.

És az baj? Irigyled tőlük? Vagy csak rosszkedved van, és muszáj valamire haragudnod. Nem olyan régen volt itt arról szó, hogy mindenki azt és úgy "tákol", ahogy akar. Ha egy tákolt Python program "production" felhasználásra kerül, akkor azért ugyanúgy az átvevő is felelős. Hát, ha volt olyan hülye, hogy átvette...

Más. Sok matematikus, biológus, virológus használ Pythont, mert nem kell olyan "hülyeséggel" foglalkozniuk, mint típus meg public meg compiler meg stb. Ez őket nem érdekli, mert ők nem programfejlesztők. Ők csak az elképzeléseik  alátámásztására "tákolgatnak" saját maguknak, ahogy az ember firkálgatni szokott egy papírlapra. És ha ez segít nekik a koronavírus ellenszerét megtalálni, akkor kit érdekel, hogy előtte mit firkálgattak.

Hype meg mindenhol és mindenhez van, mint ahogy vallási fanatikusok is. Van, aki ész nélkül rajong valamiért, más meg ugyanazt ész nélkül gyülöli. Miért? Mert ez  a homo sapiens (csupa kis betűvel).

Egy nyelv sikere nagyban mulik azon, hogy mi minden erheto el hozza es pythonhoz egyre inkabb barmit meg lehet talalni. Szerintem ez a masik nagy elonye (amellett, hogy egy egyszeru scritp nyelv). Szerintem tok jo, hogy van egy ilyen kvazi standard script nyelv, amit barmilyen teruleten lehet hasznalni.

Neked mi bajod vele?

Azzal ami történt. Python hype azóta van, mióta a kutatók *NN hálózatokat kezdtek ebben építgetni (azt is azért, mert a kezdők ebben haladnak a legjobban, illetve van numpy). A machine learning pedig azóta is pörög.

Ha megnézed, 2016 előtt nem találsz olyan cikket hogy a python milyen f*sza, használja ezt mindenki, pedig a nyelvben aztán nem történt változás.

Illetve ami még segített rajta: a nodejs huszároknak kellett egy új nyelv :)

// Happy debugging, suckers
#define true (rand() > 10)

Nem tudom..nyilván egyéni preferencia kérdése is, de a Python-t se kényelmes, se különösebben egyszerű nyelvnek nem tartom, pedig még tanfolyamot is elvégeztem belőle, hogy képes legyek használni. Azóta se nagyon kellett, szerencsére, de nem kedveltem meg jobban, őszintén szólva nem is látom miért tartják legtöbben olyan könnyű nyelvnek. Nem is ad(ott) kimondott sikerélményt. :)

Nem nagyon vannak olyan feladataim, amihez Python-t kene hasznalnom, igy kivaltanom sem szukseges, de, ha scriptelnem kell, bash-hez nyulok, illetve Python-ban szamolos/modellezos dolgaim voltak anno, ehhez ujabban Julia-t hasznalok (amit minden tekintetben kenyelmesebbnek es konnyebben tanulhatonak erzek).

Nem talaltak meg fel olyasmit, ami mindenre jo lenne es mindenkinek tetszene. Ez nem baj, es ettol senki sem lesz szar alak, es a toolok/nyelvek se lesznek tole szarok.

Hát én csatlakozom a topiknyitóhoz. Bevallom, nem tudok pythonul. Nekikezdtem talán kétszer is hogy megtanuljam, de olyan csontvelőig ható undor és csömör tört rám, hogy majdnem kémiai segítségre szorultam utána napokig (nyugtatók).

A problémám azzal van hogy egyszerűen nem bírom megszokni, hogy egy nyelvnél a forráskód KÜLALAKJA(!!!!!), gyakorlatilag a behúzások - a szintaxis szerves részét képezik!

Ez egyszerűen egy agyament faszság a szememben és jobban haragszom a kitalálójára ezért mint a systemd megalkotójára, pedig ha ezt mondom az nálam már igen nagy szó...

Persze nem lett volna baj ha csak arról szólna ez az egész hogy van egy ilyen nyelv, de __még_el_is_terjedt__!

Elképesztő! Döbbenetes!

És FERTELMES...

És még azt se értem mi a rákért. A világon semmi előnyét nem látom. Már amikor legelőször találkoztam vele, akkor is az volt a véleményem, ha nekem kell valami program, simán megírom C++ nyelven és kész. Nem hiszem hogy óriáskígyóul írva sok előnyöm lenne...

Később rájöttem, nekem még a C++ is bloatware, simán megírok akármit sima C nyelven is, és az még jobb is (gyorsabb egy picivel stb). Még ha OOP-related dolgokat akarok programozni, azt is emulálhatom sima C környezetben többnyire, csak egy picit gondolkodni kell hozzá. A C++ egyetlen feature-je amire nincs megoldás C alatt, az úgy tűnik a kivételkezelés, de annyi baj legyen, ha az kell megoldom másképp...

Bár lehet ha nagyon akarnám még az is menne. Nem vagyok benne teljesen biztos, de a longjmp talán segítene e téren...

Na de PYTHON?! Ne, ó, ne, énédesistenkém...!

Igazából perl-ben se tudok programozni, de azt legalább tisztelem. Előbb szánnám rá magam a perl megtanulására mint a pythonéra, az biztos is.

" Előbb szánnám rá magam a perl megtanulására mint a pythonéra, az biztos is. " - És Perl-ben, ha jót akarsz (magadnak meg másoknak) ugyanúgy szép, olvashatókódot fogsz írni. Ez az egy dolog, amire "jó" a pájton:a terhány külalakot produkáló kódgányolókat rákényszeríti a "szép" forráskódra. (Az nekem nem érv, hogy pájtonban nem lehet ronda kódot írni - ugyanis lehet, nagyon is...)

Biztosíthatlak róla, jóideje már magam is ügyelek az áttekinthető forráskódra.

Az más kérdés, az én „tördelési stílusom” vélhetőleg senkinek se tetszene közületek... Mindazonáltal az én számomra tökéletesen áttekinthető, világos, szép. És ez a lényeg elvégre a legfontosabb hogy én magam eligazodjak benne akár évek múltán is. Úgyse team-ben dolgozom...

Ha meg mégis elküldöm netán másnak, eresszen rá az ürge egy neki tetsző automatikus kódformázót, s az megoldja ezt a gondot.

Az azonban tudod egészen más hogy a programnyelv maga PARANCSOLJA MEG nekem, miként írjam! Ez a szememben olyan, mintha hálózsákban kéne versenyt futnom, vagy kényszerzubbonyban közösülni...

Az más kérdés, az én „tördelési stílusom” vélhetőleg senkinek se tetszene közületek..

Az a gond, hogy a tordelesi stilus leginkabb akkor fontos, ha masokkal dolgozol egyutt. Akkor viszont mar sajnos gond, ha senki masnak nem "tetszik" valakinek a tordelesi stilusa.

Arra meg minden értelmes nyelvhez van megfelelő formatter, amit a legtöbb  verziókezelővel is össze lehet házasítani. De értelmes szabályokkal, értelmes keretek között teljesen korrekten működhet egy belső kódszabvány is, amiben azokat az alapelveket kell leírni, amit mindenki be tud és be fog tartani ahhoz, hogy a csapaton belül egységesenolvasható és kezelhető forráskód jöjjön létre.  Írtam ilyen js-re, plsql-re, illetve volt csapat, ahol Perl-ben toltuk -ott a perltidy megfelelő paraméterezése volt a zsinórmérték.

 

Aki tud és akar szépen kódolni, az szabályok alapján is tud, akinek erre kényszerintézkedés kell, az meg inkább kapáljon.

Valami komoly lelki problémák lehetnek ott, ahol egy programozási nyelv szintaxisa ilyen heves reakciókat (meg nyugtató szükségességét) vált ki. És a probléma nem a programozási nyelvben keresendő.

Az pedig, hogy a C számodra kézre áll, és jó munkaeszköz dícséretes. De ha mindenre az lenne a megoldás, akkor nem volna szükség a többi nyelvre :)

De ha mindenre az lenne a megoldás, akkor nem volna szükség a többi nyelvre

Igazából én egészen komolyan hajlok arra a nézetre, hogy valóban nincs is semmi szükség a többi nyelvre... (kivéve az adott architektúrákra megvalósított hatékony assemblereket természetesen, már amennyiben as assembly külön programnyelvnek nevezhető. A szememben határeset. Oké, szigorúan véve programnyelv, elismerem, másrészt viszont mi most itt ennél magasabb szintű nyelvekről beszélünk).

Végülis C-ben plusz assemblyben valóban mindent meg lehet írni - sőt az assembly nem is szükséges az esetek 999 sőt több ezrelékében!

Én úgy vagyok vele ha 40 fok feletti a lázam, s érzem hogy képtelen vagyok komolyabb szellemi munkára de mégis gyorsan össze akarok csapni valamit (mondjuk mert muszáj, mert megígértem annak az aranyos kislánynak hogy gondoskodom a szilveszteri programjáról, az ígéret meg ugye köt, az adott szó úgy szép ha betartják stb), akkor mély szégyenpírral az orcámon de összedobom C++ nyelven.

Ha azonban egészséges vagyok, csakis a C ! Az mindenre jó. Ha mégse, van hozzá library. Ha még így se jó valamire, akkor nincs mese, muszáj assembly betétet írni a kritikus helyekre. Ebben az esetben azonban a python se segítene ki...

El tudom képzelni, hogy egy interpreter típusú programnyelv hasznos lehetne a C mellé, de eddig még nem találkoztam olyannal, ami jól van megcsinálva. A bash-t felejtsük el, viccnek is rossz (bár a pythonnál többre becsülöm - oké, lassabb, de ahova sebesség kell ott eleve a C az amiből elindulok...), a Perl... Nos, azt mint írtam nem tanultam még meg, de nézegettem azért tisztes távolból, és így első blikkre nekem nagyon szegényesnek tűnnek a vezérlési struktúrái! Talán jó lenne, ha ezen változtatnának...

Bevallom teljesen becsületesen, az interpreter alapú nyelveknél a legígéretesebbnek számomra a Forth tűnik. Nekem tetszik a stack-orientáltság... A baj csak az hogy itt meg az van (illetve nincs...!) hogy nem kezeli mindazt a sok numerikus típust amit a C igen. Ugye ilyen meg olyan hosszúságú egész, meg double, meg... szóval értitek, na!

Nyilván ezt azonban meg lehetne oldani valamiképp. Talán már létezxik is valahol ilyen Forth interpreter, csak én még nem tudok róla... Nagyon kérek mindenkit ha tudomása van ilyenről, ne hagyjon tudatlanságban engem!

Jó, de mennyi idő alatt? A Python előnye sok esetben az, hogy nagyon gyorsan lehet benne valamit összedobni, úgy, hogy esetleg nem is vagy fejlesztő. Hány C kódsorodba, és mennyi idődbe tellene berántani egy adatsort egy hdf5 fileból, egy valamilyen paramétereket tartalmazó függvényt legkisebb négyzetek elve szerint illeszteni rá, majd az eredményt (adatpontokat és az illesztett görbét) postscript és pdf ábrán ábrázolni, TeX-ben megadott címkékkel?

Ráadásul ilyen jellegű feladatoknál nem biztos, hogy a C-ben összerakott programod gyorsabb lesz, mert neki fogsz állni mátrixszorzó, mátrixinvertáló, stb. függvényeket írni, a Python meg berántja a LAPACK-ot, amit erre a célra fejlesztenek vagy 30 éve, Fortranban, és alatta van az alapvető műveletekre a BLAS (basic linear algebra subroutines), az adott CPU-ra kihegyezve.

Ne keverjük össze a nyelv előnyeit a hozzá készült külső libek mennyiségéből fakadó előnyökkel... szerintem a fenti feladatokra simán vannak libek C alatt is, de ha mégsem, lehetne írni hozzá, s akkor onnantól már nem hiszem hogy sok különbség lenne a tulajdonképpeni főprogram megírásának időszükséglete közt a két nyelv esetén.

Talán kezdőknek a python akkor is gyorsabban menne valamivel, az lehet. Bevallom azonban, mindigis az volt a véleményem, nem okvetlenül jó dolog az ha sok pelenkás programozót engedünk produktív környezetbe. Nem hiszek benne hogy mindenkinek okvetlenül programozóvá kéne válnia, annak is, aki megijed az első nehézségektől, akinek még a C is nehéz... soha, értitek SOHA!!!! (igen, most kiabálok a nagybetűvel!) tehát soha nem értettem s ma se értem mi az ami a C nyelvben olyan szörnyű nehéz volna hogy a csapból is ez folyik lassan hogy a C az hű de milyen nehéz és nem való kezdőknek...

Szerintem kizárólag C nyelvet szabadna oktatni kezdőknek. Ha valakinek emiatt elmegy a kedve a programozástól, az csakis örvendetes mert az nem is való programozónak. Nem kell teleszemetelni a szakmát oda nem való illetőkkel.

Szerintem kizárólag C nyelvet szabadna oktatni kezdőknek. Ha valakinek emiatt elmegy a kedve a programozástól, az csakis örvendetes mert az nem is való programozónak. Nem kell teleszemetelni a szakmát oda nem való illetőkkel.

Mondjuk azért megnézném, hogy egy komoly, mérvadó szakember mit mondana az általad C-ben írt programkódokról. Nem merült fel benned, hogy esetleg te is csak teleszemeteled a szakmát?

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

Én tudok C nyelven programozni. És nem ám kezdő szinten hanem annál sokkal jobban. __Sokkal__ jobban, igen.

Azt nem érdemes belekeverni hogy milyen a tördelésem. Ezt leszarom, és megtehetem hogy leszarom, mert nem team-ben dolgozom. Ettől még a kód amit írok, nyilvánvalóan lehet jó. Nálam különben kábé minden warning be van kapcsolva fordításkor, de nem szoktam warning üzeneteket kapni amikor lefordul a kódom... Ha mégis kapok, nem hagyom annyiban hanem megnézem, mi a rákja, és kijavítom. Igen, még a „pedantic” csoportba esőeket is...

Természetesen én is voltam kezdő programozó, amikor még nem értettem ennyire a C nyelvhez, sőt amikor még egyáltalán semennyire se értettem hozzá. A lényeg azonban az, hogy van a programozói tudásnak egy szintje, ami alatt nem lenne szabad az emberkét elismerni programozónak, azaz komoly munkát végeztetni vele. Na és ha annak az emberkének az a véleménye hogy „fúj, a C túl nehéz” - nos, akkor neki nem való e szakma, mert még ha megtanulja is e „nehéz” C nyelvet majd valamennyire, de nem azon a szinten, hogy a kódja eléggé hatékony legyen. És hatékonyság alatt megintcsak nem a tördelést értem, ezt kiemelem, amire tök felesleges rácuppannod mert egy automatikus kódformázó adott esetben hip-hopp helyrerakja.

A gond nem a tördeléssel van tehát, hanem például azzal, mennyire képes átlátni, nagyjából mire fordul le az amit ő a forráskódba ír. Mikor érdemes pointereket használnia hogy ezzel sebességet növeljen. (vagy memóriát spóroljon...). Hogyan képes megtervezni az egyes függvények (vagy netán objektumok - ezek is megoldhatóak C-ben ha szépen megkérjük rá a nyelvet...) felelősségi körét. Miként ismeri ki magát a memóriaallokációs kérdéskörökben, tudja-e ügyesen használni a branchpredictiont, és még soká lehetne sorolni...

Igen, ez mind olyasmi amit egy a C-nél „magasabb” absztrakciós szinten álló programnyelv ügyesen elrejt a programozó elől, megkönnyítve ezzel a munkáját, de épp emiatt az a programozó aki azt a magasabb szintű nyelvet használja, pláne ha azt tanulja meg elsőként, az a programozó nem is fogja soha megtanulni ezen dolgokat, nem tud majd a „mélyrétegek szintjén” gondolkodni, így állandóan gányolni fog csak, legyintve hogy „majd a compiler úgyis kioptimalizálja”. Ami persze igaz is lehet egy darabig, de ha mégsem... És amikor megteszi akkor se biztos hogy tényleg a legjobban.

És aztán ebből születnek ugye az olyan programok, hogy:

—Hát nem működik.

—De nálam igen. Hány giga RAM van a gépedben?

—16.

—Ja, akkor ez a baj. Az én fejlesztői gépemben 64 giga van. Vegyél nagyobb gépet, ha használni akarod...

Ismerős sztori? Meg amikor beránt a progi magának egy fél gigás libet, azért, hogy annak egyetlenegy funkcióját használja, egy olyan apró kis valamit amit a lusta programozó megoldhatott volna 3 rövid kódsorral, ha GONDOLKODOTT VOLNA?!

De nem számít ugye, csak legyen készen hamar, akárhogy, mindegy, és teljék már le a munkaidő mert utálom az egész szakmát, a francba is, focizni akarok délután az öregdiákokkal a parkban...

Na az ilyen nem programozónak való. Szerintem. Az ilyeneket én úgy nevezem, hogy „kóder-tróger”.

Több évig dolgoztam másokkal csak C nyelvű projekteken és azt tapasztaltam, hogy azok hozzák a legnagyobb memória leak-eket és egyéb súlyos hibákat, akik verik a mellüket, hogy mennyire tudnak C-ben programozni.

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

Valamit félreértettél. Nem arról van szó, hogy valakinek nappofája van, oszt mégis hülye. ;)

Megfordítva, valaki nem attól lesz okos, hogy (állítólag vagy sem) tud C-ben programozni.

Szószátyár barátunk csak arra utalt, ha autót akarsz vezetni, akkor nem elég a három repülésszimulátor vizsga. Először meg kell tanulni hol az ajtó, az ülés meg a kormány! ;)

Példák:

Tényleg zseniális C programozó (lány, és tényleg több területen igen kemény szakember) jelentős időt eltöltve a probléma megoldásaval, sugárzó arccal kijelenti: Megoldva! Ha 256-os számrendszerben ábrázolja az adatokat, akkor el tudja tárolni egy bájtban.

Ugyanő. A (struktúrák) feldolgozáshoz 2 sor buffer kell. Az egyiket minden sor előtt, a másikat minden struktúra megkezdésekor allokálja, a végén felszabadítja. (Így aztán nem lesz memory leak!) ... Mind a 10M sorra.

Egy profi VAX szakember, SZÁMALK C tanár is. Teljesen biztos benne, hogy multitasking megvalósításához egyedül a VAX processzora a megfelelő.

Minden nyelven profi programozó kolléga (de C-ül nem tud) jó hetes küzdelem után örömmel közli, hogy sikerült bájt pontosan kiírnia C# programból ... egy szövegfájlt.

A másik kollégát lecseszem, hogy régi gépem van, de akkor is elfogadhatatlan, hogy közel egy perc alatt jelenik meg az 1 perces mérésről a grafikon. - Ennek a mérésnek nagyobb a mintavételi frekvenciája.  - Tudom, én csinálom a mérést (kalkulátor - 1,44M mérés, 2,88M bátjt), ÉS? - Hát azt az 1,44M oszlopot ki kell rajzolnia a (C#) lib-nek, ami a továbbiakban a grafikont kezeli. - WTF? Az én képernyőm csak 1920 pixel széles, a grafikon meg a harmada!

Na itt látod "a C programozót". Az ő feladata csak a program kiegészítése volt, mégis tudja hogyan működik a lib, amit az előbbi kolléga választott és használ agy nélkül.

Tehát kiegészítem a tanmenetet:

- Tanulj meg gondolkozni!

- Tanulj C-ben programozni!  (Esetleg assemblerben optimalizálni, de csak azért, hogy tudd mi az.)

- Tanuld meg, mi történik a gépen!

Ezek után már bármilyen programnyelvet választhatsz.

Elég sokan szegények voltak Orbanisztánban a válság idejében, ez nem az én speciális sajátosságom. Aztán meg nem látok szoros kapcsolatot aközt sem, ki mennyire tud programozni vagy akármi mást is, és hogy mennyire képes „eladni” magát a munkaerőpiacon, ami rengeteg egyéb tényező függvénye még a konkrét tudáson kívül is.

Ja, és ma már az angol se akkora gond...

Ez a te véleményed. De engem nem izgat, mi a te véleményed.

Mindenesetre úgy tűnik, elég sokan „elmenekültek” Orbanisztánból, még azok is menekülnek akik amúgy simán meg tudnának élni ott... Nézd csak meg a statisztikákat! Lassan nemhogy informatikusokból, és nemhogy „mesterekből” bármilyen szakmában, de még hülyékből is kifogytok...

Csak így tovább!

Ennek fényében az aki előbb lépett le nem okvetlenül azt bizonyította ezzel hogy élhetetlen balfék, hanem hogy több esze van mint annak aki később pattan meg, mert rájött hogy annak jobb aki előbb hagyja ott a Balkán legészakibb pöcegödrét...

Menekülés? Fogd fel így, ha óhajtod, nem izgat. Józan ember elmegy onnan ahol rosszul él, sőt onnan is ahol bár nem él rosszul, de nem olyan jól, mint ahol másutt menne neki.

Az én esetemben különben még ideológiai (ha tetszik politikai) megfontolások is közrejátszottak, de ezt nem akarom kirészletezni mert már így is túl off. És tényleg mellékes, mert anélkül is kimentem volna, legfeljebb talán egy-két évvel később, és abban se látnék semmi szégyenleteset.

Persze a nagy hungarista mélymagyarok most majd a fejemre olvassák milyen szégyentelen vagyok, hogy nekem „ott a hazám ahol jól élek”, és elhagytam ezt a lángoktól övezett kis országot melyet őseink haló pora szentel meg, és más egyéb efféle szentimentális lózungokat. Nem izgat, mondjátok csak.

Sok mindenre válaszolok, ami igazából nem érdekel, abban az esetben ha ugyanakkor jó alkalomnak tűnik az „önkifejezésre”, azaz egypár általam értékesnek tartott gondolat megosztására a nagyközönséggel... azaz, ilyenkor ehhez a válaszadást csak egyfajta ürügynek tartom.

Tudod, ez is olyan hogy „művészi mentalitás” és hasonlók... nem várom el hogy megértsd, mert ehhez az kéne hogy magad is művész legyél, vagy legalábbis műélvező, de magas fokon ám.

Iskolákban mindenkinek C nyelvet taníttatnék mint kezdő nyelvet. Aki abból nem tud levizsgázni megfelelőképp (hogy mi lenne a vizsgakövetelmény azon lehetne vitatkozni de egyelőre szerintem felesleges) az egyszerűen nem kaphatna programozói diplomát, soha, sehol, semmiképp! Tehát nem is űzhetne programozói szakmát. Olyan nyelven se ami nem C.

Otthon, a szabad idejében, természetesen olyan programnyelven gányolhatna amilyen csak tetszik neki.

Nos, az UNIX parancssoros eszközkészlet-világ... hát az erős túlzás hogy kedvemre való lenne. Nyilván messze jobban szeretem mint a Windowst meg a DOS-t, hiszen nem az utóbbiakat használom... De hogy kedvemre való lenne? Úgy igazán? Azért ezzel még várjunk...

Amúgy különben valóban nem rossz, de a bash (meg zsh meg stb) olyan idiótaságokkal terhelt amit nehezen nyelek le. Végülis azonban nem kéne okvetlenül „kiherélni”, mert értelmes ember úgyse bash-ban rak össze kicsit is bonyolultabb alkalmazást. Nálam körülbelül az a szabály, hogy ha valamire kéne egy progi, és zsigeri érzésem azt súgja hogy ez bonyolultabb lenne bash-ban mint 5 sor és egyetlen for ciklus, akkor már automatikusan azt kezdem gépelni a szövegszerkesztőbe, hogy:

#include

mert tuti hogy C progi lesz belőle, és legalábbis az stdlib kelleni fog nekije...

Most persze mondhatod erre hogy én vagyok a bolond, semmi baj. Ahogy öregszem és látom merre tart egyre inkább az állítólag normálisokból álló többségi társadalom, az egész világ, bevallom, nincs is semmi kedvem közéjük tartozni és „normálisnak” lenni vagy akárcsak látszani...

Jaaa...! Értem. Szóval nálatok a Microsoftnál az a céges policy vagy mi, hogy mindenki programozó, akinek van egy számítógépe! Eszerint elég mondjuk egy olcsó laptopot venni XIII. Átlag János többszörösen iszákos helyzetű segéd- és be(nem) tanított árokparti és elvonókúrai lakosnak, s ő máris programozói munkakört kap nálatok, hiszen megvan mindene ami kell hozzá, s beleturkálhat a Windows forráskódjába, mert miért is ne, hiszen ő programozó...

Világos. Oké. Kezd tisztulni a kép. Most már értem, miért olyan a Windows minősége, amilyen...

Szóval nálatok a Microsoftnál az a céges policy vagy mi

Ki a faszom az a "nalunk"? Evek ota nem dolgozom ott, mi csipodott be neked ennyire? Menj at Redmondba, es dobald kovekkel az irodat, vagy mittudomen, de ne farassz mar a hulyesegeddel.

mindenki programozó, akinek van egy számítógépe

Nem mindenki baszdmeg, csak azt mondtam, hogy nem kell hozza diploma. Kezeltesd magad.

Te szóltál hozzá a topikjaimhoz illetve a hozzászólásaimhoz többször is, meglehetősen gúnyosan nemegyszer. Most meg neked gurult el a gyógyszered, mert ironizáltam a gazdáiddal?

Ja, hogy te már nem dolgozol a $átánnál? Ki hinné...! Hm, én nem hiszem, mert azóta is gyakorta a Microsoftot véded rengeteg esetben itt a HUP-on. Szóval ha tényleg nem dolgozol ott akkor ezt ügyesen titkolod...

Nézd, ha ezt ennyire a szívedre vetted, én megértem és nem akarlak szekálni, de akkor ez csak úgy lehetséges ha távol tartod magadat a topikjaimtól. És ha más topikba írok, nem kommenteled a hozzászólásaimat.

Én nem bántalak, ha te se bántasz engem. Élni és élni hagyni, tudod...

 Szóval ha tényleg nem dolgozol ott akkor ezt ügyesen titkolod...

Jaja, roppant ugyesen titkoltam, meg blogoltam is rola. Az ember csak az epp aktualis munkahelyenek a termekeirol lehet jo velemennyel? Vagy mi?

Az meg, hogy neked valami nem tetszik egy cegben, az nem az en dolgom. Mondtam, buszozz el Redmondba, es dobald meg kovekkel az irodat, vagy hugyozz bele a kacsausztatoba, de ez a vergodes, amit muvelsz, ertelmetlen es kinos.

Nagyorgy legalabb megdobalta Ballmert, mert o tokos volt, te meg csak folytatod a vegtelen szofosast a Satanrol, meg mittudomen mirol.

Hú milyen érzékeny pontodra tapintottam...

Pedig ezentúl mindig ezzel fogok jönni, drága barátom, valahányszor csak belém kötsz. Én még emlékszem, tudod, amikor írói munkásságomba kötöttél bele, holott ráadásul akkor és ott nem is az volt a téma egyáltalán. Nagy hiba volt...

1. A programozást nem elméleti, hanem gyakorlati oldalról szemlélve, egy nyelv választásakor fontos szempont, hogy milyen a hozzá készült külső programkönyvtárak (vagy más módon megoldott, felhasználható programrészletek) minősége és mennyisége.

2. Ha az elméleti szempontokat nézed, akkor miért C? Azért, mert te azt szoktad meg, vagy azért mert a Unix-ot abban írták? Elméleti szempontból sokkal átgondoltabb nyelvek is vannak (az újabbak közül Pascal, a régebbiek közül az Algol 68, Algol 60). Ha az számít, hogy mindent tudjon, akkor ott a PL/1, ha pedig a változatlanság, hogy a régi kódokat lehessen használni, akkor a C az utcában sincs a FORTRAN-hoz képest.

3. A C-ben az a nehéz, hogy nincsen értelmes memóriakezelése, egyszerűen lemásolja a hardver címzését a pointerekkel, és van még benne valami stipistopi (malloc, de az már igazából library call). Nincs benne semmi, ami elősegítené a memóriafoglalási hibák elkerülését (smart pointer garbage collection, vagy legalább memóriafoglalás konstruktorban). Öreg hiba szürke zsíros masszára bízni olyan feladatokat, amiket szilíciummal is meg lehet oldani. A szürke zsíros massza jobban generál véletlenszámot ("kreativitás"), erősebben paralellizált, de sajnos a megbízhatósága gyenge.

4. A következő hiba, amit elkövetsz, az az, hogy feltételezed, hogy programot programozók írnak, pedig a számítógép normális használata a programozás, pl. számítások végzéséhez. Ilyenkor gyakran nem programozók programoznak (fizikusok, matematikusok, statisztikusok), és erre kell hatékony eszköz. Hatékonyabb annál, mintha programozóknak kellene elmagyarázni, hogy milyen matematikai módszert kódoljanak le, mert a nagy részük nem képes képletet olvasni. Itt igen nagy szerepe van a kód olvashatóságának, és bizony, az, hogy

A =  B * C

sokkal olvashatóbb, mint az, hogy

int matrixmeret = 42;
double *a, *b, *c;
int i,j,k,l;

...
if(a) free a;

a = malloc( matrixmeret*matrixmeret*sizeof(double) );

for(i=0;i<matrixmeret;i++) for(k=0;k<matrixmeret;k++){
  c[i*matrixmeret+k]=0;
  for(j=0;j<matrixmeret;j++) c[i*matrixmeret+k] += a[i*matrixmeret+j] * b[j*matrixmeret+k];
}
...

Számos dolog amit felhánytorgatsz a C nyelvnek, a szememben inkább előny.

Különben meg ha gyengeség is lenne, akkor is előny, olyan értelemben hogy épp ez késztet rá hogy megtanulj GONDOLKODNI a „gép eszével”! Ha neked kell egypárszor a malloc()-al memóriafoglalást megtrvezned, megírnod, stb, s elgondolkodni mondjuk olyan dolgokon hogy ha egy töömbre mutató pointert adsz át egy függvénynek, akkor ugye logikus hogy a tömbnek a memóriát a hívó függvény foglalja le hiszen ő is tölti fel adatokkal; azonban ezután a memória felszabadítása kinek a felelősségi köre legyen: a hívó függvényé vagy a meghívotté?! És így tovább... szóval ekkor később már egészen más szemmel nézed azon automatizmusokat amiket a magasabb szintű nyelvek művelnek, s amik egy kezdő számára teljesen természetesnek tűnnek.

És például tudod, hogy nem minden esetben kell végrehajtani bizonyos ellenőrzéseket amiket a hülye compiler biztonsági okokból automatikusan belerak...

Rengeteg példát lehetne sorolni ilyesmikre.

Igen, a C esetén a programozó teljesen magára van hagyva, nincs biztonsági öv! De épp ezért a legpompásabb tanulónyelv. Még ha el is fogadnám hogy valami másik nyelv jobb mert hatékonyabban lehet vele dolgozni, de TANULÓNYELVNEK akkor sincs jobb mint a C nyelv! (esetleg talán valamelyik assembly...?)

És például tudod, hogy nem minden esetben kell végrehajtani bizonyos ellenőrzéseket amiket a hülye compiler biztonsági okokból automatikusan belerak...

Ez gyönyörű.

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

Nem felhánytorgatom, hanem azt mondom, hogy a nyelvet az adott célra kell választani. A C bevált nem túl nagy méretű, rendszerközeli programok írására. Más feladatokra meg esetleg nem a C az optimális.

Az is egy kérdés, hogy amikor tanulónyelvet akarsz választani, akkor mit akarsz tanítani. Ha az algoritmusokat, vagy különböző problémák számítógépes megoldási módszereit (pl. numerikus matematikát), akkor a memóriafoglalás, felszabadítás, változók átadásának a módjai inkább zavaró tényezők, mint hogy az legyen a cél, hogy ezeket is megtanuld. Ha olyan programozót akarsz képezni, aki tud rendszert és compilert is írni, akkor meg lehet, hogy fontos. Az viszont még fontosabb, hogy egy programozó megértse, hogy ezt érdemes a gépre bízni, mert ha az emberre van bízva, akkor néha elfelejti. Mi mással magyarázod azt, hogy folyton találnak régóta fejlesztett programokban memóriaszivárgást, puffertúlírást, ha nem azzal? Ha azokat, akik ezeket írták, mind elküldöd kukoricát kapálni, akkor ki fogja helyettük megírni?

Azt pedig, hogy azért kell hardverközeli nyelven programozni, mert akkor a "hülye compiler" nem tesz bele dolgokat, amiktől lassabb lesz, egész egyszerűen nem igaz. Nem használnának ma már több, nagy számításidejű feladatra manapság C++-t, ha tényleg így lenne, de a gyakorlatban egy jó minőségű programkódból egy optimalizáló compiler olyan kódot csinál, amin kézzel javítani elég macerás (és akkor assemblerben kell, ismerve az adott CPU-t).

Azt pedig, hogy azért kell hardverközeli nyelven programozni, mert akkor a "hülye compiler" nem tesz bele dolgokat, amiktől lassabb lesz, egész egyszerűen nem igaz. Nem használnának ma már több, nagy számításidejű feladatra manapság C++-t, ha tényleg így lenne,

Kényelemből használnak mindenre a mainstream programozók C++ -t, nem azért mert olyan juj de baromi jó.

Nézd, sokan tudják errefelé rólam, írtam egypár programnyelvet csak úgy a magam gyönyörűségére... És persze egyre jobbat akartam írni! Nos, eleinte C++ nyelven írtam őket mert miért ne, lustaság bennem is van. Egy idő után azonban beleütköztem homályos akadályokba: sehogyse lett a sebesség olyan jó, mint szerettem volna! Kutatni kezdtem mi az oka. Nos az a rengeteg sallang amit a C++ beletesz, amíg az osztályokat és objektumokat adminisztrálja... s aminek a jelentős része bizony-bizony felesleges! (legalábbis az adott esetben az volt).

Áttértem hogy C nyelven írom meg az interpreteremet. Hohó, szinte megtáltosodott minden!

Én nem tagadom ennek ellenére se, akad a C++ nyelvnek néhány előnye. Teljesen felesleges azonban ezt az OOP szemléletet erőltetni mindenre, csak azért mert most épp ez az aktuális buzzword.

Nem, kényelemből nem használnak C++-t, mert nem kényelmes. Kényelemből Python-t, Java-t, C#-ot használnak. C++-t akkor használnak, ha egy fordított, multiparadigm nyelv kell.

Az, hogy írtál pár interpretert, az nem jelenti azt, hogy nem lehet C++-ban jót írni. Vannak C++-ban írt, és gyors interpreterek és compilerek, pl. a LISP-ek közül a CSL (Codemist Standard Lisp) nem számít lassúnak, pedig az újabb változatai C++-ban vannak. Lehet, hogy C++ban nem voltál elég profi, lehet, hogy rég volt, és még nem voltak elég jók a C++compilerek. Azt nem mondhatod, hogy amit megírsz C++ban, nem lehet megírni Cben is, mert a) van C++ -> C translator, b) te is át tudod írni. Innentől az egy technikai kérdés, hogy le tudod-e fordítani optimálisan, hogy mit hagy benne a compiler az objektumokból. Mikor, milyen compilerrel, milyen opciókkal próbáltad?

De nagy számításigényű feladatokra nemcsak ott nem C-t használnak, ahol a programnyelvet maguk a programozók választják ki kényelemből, hanem ott sem, ahol eldöntötték előre helyettük. Pl. a CERN az LHC adatainak a kiértékeléséhez FORTRAN-ról (amit régebben használt) nem Cre, hanem C++ra váltott (és azért váltott, mert késett a FORTRAN 8x szabvány, ami végül a Fortran 90 lett), vagy C++ban van a Cactus toolkit (általános relativitáselmélet numerikus megoldása) vagy a CHOMBO egy része (Fortran-nal kombinálva) (ezt pl. hidrodinamikai számításokhoz használják). Ha ezt tudja a C++ úgy, hogy ne maradjanak le mások mögött, akik jobban kihasználják a hardvert, akkor lehet benne gyors kódot írni. Ez valószínűleg nem mindig volt így, mert a C++ első 10 évében nem olyan sokan használták ilyen feladatokra.

Ne keverjük össze a nyelv előnyeit a hozzá készült külső libek mennyiségéből fakadó előnyökkel...

 

Ne viccelj! Ez ma az egyik legfontosabb dolog! Kit erdekel egy nyelv ami ugyan nagyon szep, de "semmit sem lehet benne csinalni"?!? (Az idezojelek azert, mert persze implementalhatsz magadnak mindent, de ha szerinted ez egy hatekony modszer, akkor valami masrol kell eloszor beszelnunk.)

Szerintem itt befejezhetjük a vitát mert e ponton nyilvánvalóvá vált hogy teljesen eltérő a szemléletünk.

A nyelv ugyanis a szememben semmi esetre sem azonos a hozzá készült libekkel, de még csak e libek nem is részei a nyelvnek a szememben. Amikor tehát a nyelv előnyeiről vagy hátrányairól beszélek, én olyasmiket értek alatta hogy például kell-e benne sorszámozni a sorokat mint egyes régi BASIC implementációkban; hogy milyen mondjuk a "for" ciklus szintaktikája; létezik-e benne 3 ágú elágazás; van-e benne egyáltalán "goto"; a függványek egyetlen visszatérési értéket adhatnak-e vissza vagy többet is; lehet-e függvény is visszatérési érték; van-e benne kivételkezelés; kell-e előre deklarálni a változókat; milyen egyszerű típusokat ismer a nyelv; lehet-e benne OOP programokat írni; és még sok mást.

Az azonban hogy EDDIG MENNYI programot írtak már azon a nyelven (a lib is egy program ugye!) az a szememben abszolúte a nyelven kívüli kérdés, ezért nem része a szememben annak a kérdéskörnek ami az előnye/hátránya kategória alatt értendő.

Ha te ezt mégis bele akarod keverni, abban én nem leszek a számodra partner, mert a tárgytól való nagyon durva eltérésnek érzem. És kívül is esik az érdeklődési körömön.

Ezt nem haragból írom azonban. Ám én tényleg így elméleti oldalról közelítek a témához, te azonban - megengedem - gyakorlatiasan. Oké, megteheted, de ez nem az az út ami engem érdekel.

A lib igenis program. Mert mi más is lenne, vajas kenyér talán?!

Az igaz hogy önmagában nem futtatható, mert „be kell tölteni” stb, meg általában véve egy libben több program is van, azaz nevezheted programok gyűjteménynek is... de attól még program. Persze beleköthetsz olyasmibe hogy „de akkorsenem programok hanem függvények gyűjteménye” és így tovább, de nem értem mire ez a szőrszálhasogatás. Olvasd el újra amit fentebb írtam kérlek, figyelmesen, s lásd be, ez mind tök lényegtelen annak fényében amiről én beszélek: hogy a lib nem a programnyelv szerves része, nem ő határozza meg a nyelv minőségét!

Valamilyen szinten viszont az is szőrszálhasogatás, hogy a lib a nyelv része-e, nem? Nem mindegy, hogy a nyelvben van-e valamilyen függvény (utasítás, szubrutin, az adott nyelv terminológiája szerint), vagy pedig, hogy van hozzá egy standard szubrutinkönyvtár? Ami a nyelv része, valószínűleg annak egy része is szubrutinkönyvtárként van implementálva.

Nem, nem, határozottan nem! Úgy értem, ezen elmélkedni szerintem nem szőrszálhasogatás. Azért nem az, mert nem értem miért óhajtod (vagy óhajtja más) összekeverni azt a két teljesen eltérő koncepciót, amit talán úgy fogalmazhatnék meg a legjobban, hogy "az eszköz maga", illetve "az eszközhöz gyártott kiegészítők".

Az elmaradhatatlan autós hasonlattal élve: A programnyelv a szememben az autó. A hzzá készült mindenféle libek pedig az autóhoz kapcsolható utánfutók, vagy a hozzá készült téli gumi, netán még lánctalp is.

Én elismerem hogy mindez megnövelheti egy autó használhatóságát, de akkor is csak kisegítő cuccok, kiegészítők. Nem ők „AZ” autó!

Én amikor egy autó minőségéről elmélkedek (elmélkedNÉK, mert nem szoktam, amúgy engem nem érdekelnek az autók) akkor olyasmire gondolnék, milyen erős motor van benne; hány „sebességes”, hány másodperc alatt gyorsul fel 100 km/h -ra, hány személyes, mekkora a belső utastere, sőt, hogy netán kétéltű jármű-e mint egyes csodaautók bizonyos filmekben, amit mondjuk a főgonosz belelök a tóba, de akkor a csodakocsiból hátul kibújik egy propeller és vígan tovaúszik...

Az teljesen irreleváns lenne a szememben hogy ehhez a kocsihoz lehet kapni a boltban türkizkék zománcfestéket is, vagy hogy 456 különféle utánfutó is kapható hozzá.

Visszatérve a programnyelvekre: Engem igenis olyasmik érdekelnek egy programnyelv kapcsán, hogy milyen vezérlési szerkezetekkel bír; hogy RPN szintaxisú-e; van-e benne operator overloading; és így tovább!

Nyilván azt elvárom hogy lehessen hozzá libeket írni, mert e lehetőség már a nyelv része (már ha a része ugye). Ha nem lehetne, olyan volna mint a kocsi amihez nem is lehet utánfutót kapcsolni. Hogy azonban hány lib VAN MÁR KÉSZEN hozzá, az bár érdekes lehet, de a szememben nem a nyelv része.

Gyakorlati értelemben persze tekintheted a nyelv részének, ha mindent a használhatóság oldalából vizsgálsz. Elméleti értelemben azonban nem a nyelv része. Ráadásul akadnak szerintem feature-ok amiket talán még elméletileg se lehetne megvalósítani külső libekben, utólag. Olyasmikre gondolok, amik a forráskód szintaktikai elemzése közben kell eldőljenek. Ilyen funkciók megvalósításához tényleg a nyelv „mélyrétegeibe” kell beleturkálni, és UTÓLAG egy puszta külső lib megírásával nemigen hiszem hogy pótolhatók. (Hacsak eleve magát a nyelvet kezdettől nem úgy tervezték hogy ez is lehetséges legyen).

Azt elfogadom, hogy fontos, hogy  bizonyos dolgokat meg lehet-e csinálni az adott nyelvben (operator overloading, kifejezés-kiértékelés vs. RPN, hasonlók). De más dolgokban nincs különbség: baromira mindegy, hogy a PL/1-nek része rengeteg minden (pl. adatbázis-kezeléshez szükséges dolgok), vagy a C-hez lib van (autós hasonlattal: ha a végén ugyanannyiba kerül, akkor baromira mindegy, hogy az "a" modellhez lehet rádiót kapni, a "b"-hez meg az alapmodell része). Esetleg számíthat, hogy a lib a szabvány kötelező része-e (ha nem csak 1 compilert használsz, 1 rendszeren).

Nézd, én akkor se mondhatok mást mint hogy az én szempontjaim szerint - vagy fogalmazzunk úgy, az én ízlésem szerint - igenis az a nyelv része ami fixen bele van építve. Nekem ez a nézőpontom. Elfogadom hogy más esetleg másképp vélekedik erről, de nekem akkor is ilyen az ízlésem, számomra itt húzódik egy nyelv „határa”.

Ha C-ben programozol, nem szoktad indentálni a blokkokat? C és Python forráskód szerkezetileg nézhet ki ugyanúgy, csak Pythonnál kevesebb lesz a kapcsos zárójel. Én azt tartom, hogy a kód megfelelő identálása alapvető fontosságú az áttekinthetőséghez, ezáltal azt, hogy a Python ezt már szintaxis szintjén megköveteli, nem érzem egyáltalán tehernek.

C-ben a struktúrában beljebb/kintebb mozfatni valamit két kapcsols zárójel. Python-ban meg nem. C-kódot "szépre" (szabálybázisra alapulóan) formázni egy jól irányzott formatter tppl, ami tótzicsi, hogy ugyanazokat a formai követelményeket fogja ráhúzni az egyik kódra, amit a másikra.

A megköveteli az egy dolog, nemgond, de az, hogy jelentéssel bír, az viszont elég gáz. A pájton az a whitespace nyelv egy speciális változata, némi szöveges kiegészítéssel :-)

Van egy n. szinten lévő programrészleted, amit ideiglenesen "beljebb" kéne raknod. Ez pájtonban mókolást igényel, más, értelmes sztruktúrahatárolót használó nyelvekben meg nem annyira. Fix méretű betűkkel kell a legutolsó példát is nyomtatni, mert egyébként értelmezhetetlen lesz. Elég egyzser olyan editorba berakni, majd menteni, ami az n darab space-t tab-ra cseréli, máris jön a hibás működés. Egy hosszabb nyomtatott kódon kifejezetten "kényelmesen" el lehet igazodni - ja, pont nem.

Egy hosszabb, nyomtatott kódon pont a behúzással tudsz eligazodni más programnyelvekben is. Ha ideiglenesen beljebb kell raknod egy kódrészt, akkor a formázás miatt más nyelvekben is beljebb fog kerülni, amit mindkét esetben az editor fog elvégezni és nem te. Más hosszú kódok sem olvashatóak jól, amennyiben nem fix szélességű a betűtípus, de miért ne lenne az? Tudtommal a Python értelmező kezeli azt, ha a szóközöket menet közben tabulátorra cserélik.

Szóval mit is szerettél volna mondani?

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

" Egy hosszabb, nyomtatott kódon pont a behúzással tudsz eligazodni más programnyelvekben is."  Meg azzal,hogy látom, hol az eleje meg a vége akkor is, ha nem csak whitespace-ek mutatják.

"Ha ideiglenesen beljebb kell raknod egy kódrészt, akkor a formázás miatt más nyelvekben is beljebb fog kerülni, amit mindkét esetben az editor fog elvégezni és nem te. " - Ha olyan editort használsz, ami... Perl/C/C++/satöbbi nyelvekre van formatter, beledobod a szerkezet módosítását, rányomod a formattert, és megoldva - szépre. Akár egy fordítás/build erjéig is. Ha akarod. Ha nem, akkor buildeled/futtatod ronda alakban, és ennyi. Ja, és ha átviszed a kódodat oylan helyre,a hol más formázási elvárások vannak (behúzások mélysége, és hasonlók), akkor python esetében vagy meg tudod reszeltetni az editorral, vagy sem. Egy szabadon formázható forráskódot meg szépen áttolsz a megfelelő formatteren, és máris az új igényeknek megfelelőne néz ki.

És azt se felejtsük el, hogy egy véletlen elütés már megváltoztatja a program szerkezetét. Ott, ahol a szerkezet szintjeit nyitó és záró karakterrel kell jelezni,ott egy iylen karakter önmagában hibás forráskódot eredményez, azaz egy struktúramódosításhoz két, megfelelő karaktert kell bebökni a kódba. Ez utóbbi szerintem hibatűrőbb megoldás.

Saját sztori: agyonkommentezett yaml fájl, ami dettó whitespace-eket használ az egyes szintek közötti váltásra. A sok komment között n+sokadikra sikerült csak kiszúrni, hogy a kolléga a kikommentezett név-érték párost rossz szintre (nem megfelelő sámú szóközzel a sor elején...) rakta vissza. Ugye közel s távol nem volt nem komment sor, úgyhogy viszonyítani nem nagyon volt mihez...

Szoktam indentálni C -ben is, igen. De ÚGY ahogy NEKEM tetszik, és ennél is fontosabb hogy én szeretem a szabadság mámorító érzését, azaz ne __kényszerítse__ rám a nyelv azt a stílust amit a tervezője tart szépnek, mert hadd döntsem már el én hogy mit akarok...

Semmi bajom nem lenne a pythonnal, ha valamiképp meg lehetne mondani neki a kód első sorában - mittudomén így - :

#pragma CSTYLE

hogy ne vegye fogyelembe a szóközöket meg tabulátorokat hanem a kapcsos zárójelek legyenek a blokkhatárolók vagy mittudomén hogy nevezik ezt abban a nyelvben de értitek remélem mire gondolok. Még az se zavarna ha a nyelv alapértelmezett viselkedése a mostani volna.

Amennyire azonban tudom, erre nincs lehetőség...

Rakhatsz kapcsos zárójeleket, így:

if valami == 'ok': #{
    print('Helló!')
#}

 

Viccet félretéve, valami vizuális visszajelzéses megoldás nem jöhet szóba? Tehát, hogy a $kedvenc_szerkesztő-d felismeri a kód blokkokat és a megfelelő helyekre berak egy-egy kapcsos zárójelet. Használok hasonlót CSS szerkesztésnél: felismeri, ha egy színt adok meg éppen és berak elé egy kis előnézeti körlapot, illetve rá is lehet kattintani ami behoz egy interaktív színválasztót. Biztos kódblokkokra is lehet hasonlót létrehozni.

Nálunk most épp a C++-os bináris cucc fölé csinálunk REST API-s felületet, és pybind11-en keresztül kommunikálunk a processzel, és Robot framework-ön keresztül function tesztelünk.

Félelmetes gyorsan lehet benne megcsinálni a dolgokat, ha C++-ban raknánk össze ugyanezt a REST kliens-szervert, az összehasonlíthatatlanul tovább tartana.

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods

Szerkesztve: 2020. 03. 08., v – 08:03

"Igazából én egészen komolyan hajlok arra a nézetre, hogy valóban nincs is semmi szükség a többi nyelvre..."

Arra viszont vigyázz, hogy ne ess bele ebbe:
     Akinek csak kalapácsa van, hajlamos mindent szögnek nézni.

Javaslom, hogy ismerj meg alaposan más programozási nyelveket is és rájössz, hogy beletolt munkaórákat (és későbbi költségeket) is számolva mikor nem C-ben érdemes nekiugrani a problémának.
Ötlet merítésre itt látható a Stackoverflow hype-lista: https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-w…

Szerkesztve: 2020. 03. 08., v – 11:01

Elmagyazarom, mert hihetetlen, hogy ennyire sokan nem ertik.

A Python azert TERJED SIKERESEN, mert 15+ eve nem nyult a JOL OSSZERAKOTT tutorialjahoz, amiben PELDAKODOK vannak tl;dr helyett.

Mas nyelvvel nincs igy? Irjanak hozza jobb tutorialt. Olyat, mint a Pythone. Ennyi.
 

Soha nem lesz a Python kedvenc nyelvem. Sose az lesz a legjobb nyelv. Atlagban eleg gyenge minoseguek a kulso fuggvenykonyvtarak is. De egyvalamit biztosan allithatok: amikor nullarol kellett megtanulnom, annyira normalis tutorialt, mint a Pythone, SEHOL MASHOL nem lattam.

Python kiválóan alkalmas arra a feladatra, mikor egy eszköz API-t akarsz elérni, főleg cloudban, mikor nincs mód arra, hogy helyben fordítgass C kódot. èn se szerettem de rá kellett jönnöm, hogy alap feladatokra, mikor a business logic nem a te kódodban van, hanem az eszköz végzi azt el és te csak felhívogatod, kevés alkalmasabb nyelv van rá. Nem kell a típusokkal bajlódnod, pl. Futtatható lazán egy weboldalon keresztül is (lásd: cloudban), stb. 

Helyette mi a jó? Taníts Mester!

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

Le vagy maradva, barátom. Már a Rust és a Go a menő. Nomeg hát persze az örökzöld, a JavaScript.

A normálisan kódolni megtanulni képtelen (vagy lusta), kényelmes, trendbuzi babzsákfejlesztők és idealista menedzsereik számára nem csak az a fontos, hogy a bloated framework vagy scriptnyelv importált libjei/moduljai elvégezzék helyettük a piszkos munkát, hanem hogy mindeközben elmondhassák magukról, hogy ők bizony új™ technológiákat felhasználva innováltak™.

Hiányoltam még a mondanivalódból, hogy a programozási nyelv nem azért van, hogy az a használójának jó legyen... C.. persze.. mindenre... 

Hype az új dolgokra van. A Python már rohadtul rég itt van, csak te nagyon le vagy maradva.

Attól, hogy valami népszerű, kapja a támogatást és egyre jobb lesz végül. Ez van a Pythonnal is. Összehasonlítva pl. a Perllel, megvan a maga szubkultúrája, de kevéssé támogatott harmadik fél által, nincs hozzá csillió API.

Szóval az a bajod, hogy egy nyelv népszerű. Irigylem a problémáidat.

Olyan jó, hogy le lehet iratkozni a trackerben található tartalmakról!

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.