HOVD 2018 - Kedvenc szkriptnyelv

Címkék

javascript
7% (43 szavazat)
lua
2% (12 szavazat)
*nix shell (bash, csh stb.), awk
22% (145 szavazat)
perl
7% (44 szavazat)
php
14% (89 szavazat)
powershell
4% (24 szavazat)
python
36% (235 szavazat)
r
2% (11 szavazat)
ruby
3% (17 szavazat)
typescript, coffeescript (javascript jellegu nyelvek)
4% (25 szavazat)
Összes szavazat: 645

Hozzászólások

Ruby vagy lua, nem egyszeru valasztas, mert mind a kettot szeretem, es nagyon mas kategoria a ketto. Igazabol a feladattol fugg hogy melyiket hasznalom.

I hate myself, because I'm not open-source.

Igénytelen ember valóban nem szokott szép kódot írni, nyelvtől függetlenül, ez a saját tapasztalatom. Lehet, hogy a sormintának a geekfaktora a "ki, ha én nem" ifjú titán esetében jelentős, de idővel megtanulja, hogy nem attól lesz nagytudású, hogy trágya küllemű kódot ad ki a kezéből. Ehhez persze kell egy megfelelően felkészült szakmai vezető/mentor, aki helyrerakja az ilyen hozzáállást.

>AZ, hogy nem a programnyelv szintaxisának a feladata igényességre nevelni.
Nem is próbál rá nevelni, egyszerűen csak rákényszerít. Ha nem tetszik, nem kötelező a nyelvet használni. ;)

>Meg nagyonnem mindegy, hogy egy elrontott kopipaszta (html-oldalba simán berakva) gyakorlatiag használhatatlan lesz a forráskód, estébé.
Ha annyi baj lenne csak a pythonnal, hogy bünteti azt a fejlesztési modellt, amikor notepadban/vi-ben módosítás nélkül beböffent a fejlesztő a forrásba valami tákóverflóról kikopizott szemetet "tegnapra legyen kész" jeligére, majd kipróbálás nélkül megy éles felhasználásra, akkor ez lenne a világ legjobb nyelve.

(hint: sajnos nem ez a legnagyobb baj vele)

Ne is mondd, volt olyan projekt, ahol a vezető programozó bejelentette, hogy kész, aztán elment (már nem emlékszem, hogy haza, vagy nyaralni, vagy másik projektre).
Ezután megpróbáltam tesztelni a "kész" cuccot, de le se fordult.
Feltételezem, a szintaktikai hibák javítása után még más bugok is voltak benne, amit a tesztelés kihozott, de nem emlékszem már rá konkrétan. Régen volt.

Feladatfüggő, web frontendhez javascript (többnyire vuejs-szel), backendhez leginkább php, ha meg gyorsan kell valami toolt írni, aminél esetleg nem hátrány, ha multiplatform is, akkor python.

általánosabb feladatokra mennyire alkalmas? egyetemen volt egy tárgyam (biostatisztika) ahol R-t használtunk és nekem nagyon az jött le hogy alapvetően tényleg csak statisztikára alkalmas. mondjuk mennyire gyökér ötlet pár GPIO meg hasonló library segítségével R-ben nekiállni mondjuk egy öntözőrendszer vagy kazánvezérlés megírásának egy RPI-n? :D tudom ezt mindenki pythonban írná meg, én bash scriptet írtam mindkettőre...

"all submitted complaints will be forwarded to /dev/null for further investigation"
"ez ilyen hippi kommunás felfogás, ahogy Stallman sámán módjára dobol a nagy hasán, hogy GNU, free software, free as free beer."

Szerintem ez egy szigorúan statisztika és adatelemzés fókuszú nyelv, ha nem pont ezekkel akarsz foglalkozni, akkor biztos, hogy találsz jobb eszközt. Én alapvetően molekuláris biológiai kísérletekből származó adatok elemzésére használom, illetve némi egyéb adatelemzéshez is, de csak azért, mert néhány exotikus algoritmust ebben implementáltak.

Nagy mátrixokat félelmetesen jól és gyorsan kezel, és jól támogatja a parallellizált infrastruktúrát (clusterek, gridek). Alapvetően analízisre jó, production kódot manapság már én is inkább Pythonban írok (régen Perlben).
--
Csaba

Szerintem teljes mertekben alkalmas altalanosabb feladatokra is -- az mas kerdes, hogy mennyire celszeru ...

En pl eleg sokat hasznaltam nem igazan stat eszkozkent is nagy megelegedessel kulonbozo projektekben es celokra prod kornyezetben (ETL, API integraciok, repetitiv feladatok automatizalasa, alerting, reports/dashboards, webalkalmazas Apache modulban futatott R koddal, real-time push notifications / sms / e-mail, live scoring etc), jol integralhato mas eszkozokkel es nyelvekkel (pl C++, Python es Java) -- de nyilvan nem egy altalanos szkriptnyelvkent mukodik a leghatekonyaban, tehat ilyesmire valoszinu jobban jarsz mondjuk Pythonnal. Masreszrol egy PID szabalyozonal jol johet az R is :)

Mivel eredetileg c++-ban irtam a szamolasaimhoz a programokat, amikor elkezdtem R-ben irni, az R lassunak tunt. Meg ugy is, hogy kb. szazszor kevesebb adat volt. Aztan elkezdtem a R-en belul c++-ra fordulo fuggvenyeket irni, hogy legalabb hozza a sebesseget. Viszont, amikor kijott a julia 1.0, raszantam magam, hogy kiprobalom, es azota is csak ajanlani tudom. Nem tokeletes ez sem (foleg mert 0.7-rol ugorva 1.0-ra sok mindent kidobtak), de meg igy is jobban tetszik, mint az R.

Nálam ez úgy történt, hogy eredetileg Perl-ben csináltam az adatelemzős projektjeimet (a bioinformatika világából jövök). Aztán a 2000-es évek elején, amikor egyre több microarray adatot kellett elemeznem, körbenéztem, hogy melyik scripting nyelv jó nagy mátrixok kezelésére. Akkor kezdtem el R-el dolgozni. Ott ugye a Bioconductor projekt pontosan ilyen adatokra kihelgyezve indult el. Aztán pár év múlva azt vettem észre, hogy egyre több hallgató jön hozzám, hogy tenítsam meg R-ezni. Még külföldről is jöttek néhányan. Akkor írtunk erről egy könyvet, és most több egyetemen (tavaly három országban pl.) tanítom is a témát. Ennek ellenére van olyan adatelemzős projektem, ahol inkább Pythont használok, mert ott nem ilyen mátrix típusú adatok vannak, és jobban kézre áll, mint az R.

Én is jókat hallottam a Julia-ról, de ahogy nézem, az egyelőre marginális jelentőségű az R-hez képest az én területemen. 10 álláshírdetésből 7-8-ban kérnek R-et, de Julia-t csak kivételesen. Egyelőre nem vagyok meggyőződve, hogy átmegy e a mainstream-be, vagy megmarad érdekes kuriózumnak.

--
Csaba

Azt hiszem, ugyanazt tudom leírni most is, mint tavaly: mindet rühellem, amit használtam. :)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Azert akarhogy nezem, a JS-t, a Typescript/coffeescriptet a Powershellt, meg a Perlt meg mindig tudom a tobbinel sokkal jobban utalni. A pythonnal pl. az az egyetlen bajom, hogy a whitespace a syntax resze, meg hogy egyaltalan letezik python 3, mikor semmi szukseg nem volt ra. A tobbi nyelvnek akarhogy nezem, ennel nagyobb bunei vannak.

Ami nalam viszont legalja volt anno: a matlab scriptnyelve. Akkor mar inkabb JS-ezek

Akkor nyomkodd szorgosan a szóközt, és fogadd el, hogy a más nyelveken egysoros, egyszer hasnzálatos dolgok elkövetésének a sebességét a pont a kötelező pimpelés miatt a büdös életben nem fogod elérni. Félreértés ne essk: ha van rá esély, hogy nem csak a command history-ból visszahozva kell valamit használni, akkor nálam is természetes, hogy például a bash vagy épp Perl kódot szére írom meg, de ha egyszer használatos dologról van szó, akkor ne kelljen már az új sor, beljebb kezdem, azt is beljebb, a követlezőt még bentebb, ja mégse..." bohóckodást végigcopni...

Tudom, hogy valamiért gyűlölöd a Pythont, de ha még ma is kézzel rakosgatod a szóközöket, akkor nagyon rosszul csinálsz valamit. Egy akármilyen szerkesztő megcsinálja ezt helyetted, illetve van egy rakás linter/formázó is, ami automatikusan átformázza a teljes kódot. Illetve megemlíteném, hogy pontosvessző létezik Pythonban is, így lehet ezzel is egysoros kompakt dolgokat írni. Sőt, van Python alapú shell is: Xonsh.

Van egy parancssor, és rendszeresen meg kell valami one-shot/shome-shot dolgot csinálni, ami több tudást igényel, mint amit a shell-ből optimálisan ki lehet hozni.
Az "akármilyen szerkesztő" legalább egy "akármilyen szerkesztő"-vel több, mint valaki a vi-családból, ami viszont "akárhol" rendelkezésre áll.
Ha meg linter/formázó jön a képbe, akkor meg miért nem jó a Perl+perltidy...? Jaaa... Mert nem divatos?

Ha one-shoot dolog, akkor marhára nem lényeges a kinézete. Ha meg lényeges, akkor Perl-ben is szépen dolgozok, anélkül, hogy brámilyen működési hibát okozna egy nem pontosan identáltan beszúrt sor vagy kódrészlet. Egy idő után rááll az igényes ember keze a "szép" kódolásra, pláne akkor, ha a kódjait akár kíváncsiságból, akár igényesség, akár külső behatás miatt egy értelmes kódformázó motyón (pl: perltidy) eleinte áttolja. Később már nem lesz rá szükség, hogy kényszer hatására formázzon szépen, magától is úgy fog dolgozni. Modnom, ha igényes. Ha igénytelen a munkájára, akkor meg ne menjen programozónak, maradjon a trágyahányó villa nyelénél.

mondjuk még a troll taget sem sikerült felfogni, gondolhattam volna, hogy a smiley se lesz meg :)

De egyébként még mindig ilyen kicsit szalmabábot tolsz, amit lehet találni róla, az alapján nem azzal van magyarázva, hogy mer különben igénytelent írnak a hátulgombolósok, hanem az, hogy igazából redundánsak a rendes indentálás meg a {}, a parsernak mindegy mi van ott, a humannak meg fontosabb az indent, akkor legyen az. Ezekkel lehet vitatkozni, még nemszeretni is lehet őket, de azért az a folyamatos erős csúsztatás, amit tolsz, hogy ez a nyelv fő karakterisztikája, meg az implicit a pythonban programozók azok egyébként mind gyps, maguktól igénytelenek lennének, az már egyrészt uncsi, másrészt azért zavaró.

Képzeld el, én pl a perlt is tök szeretem, még ha az elmúlt időben át is szoktam szinte teljesen a pythonra. És kb keresztbe leszarom a szintaktikáját, van, ami kifejezetten idegesítő (kedvencem a valami() if felétel() else valami_más(), azt ütném, aki kitalálta), van ami meg jobb. Ami viszont mindenképpen az, az az, hogy sokkal egyenletesebb az elérhető libek minősége a pipben, a cpanban levő változatos minőségű és karbantartottságú cuccokhoz képest.

A Python nem szkriptnyelv; szkriptelesre _is_ eloszeretettel hasznalt nyelv.

Python, és az utóbbi időben Julia is. De azért a "function" keyword helyett rövidebbet is kitalálhattak volna a függvényel létrehozására. A Python és a Ruby "def"-je még egészen tűrhető. :)

... és halált megvető bátorsággal behúztam az [x]-et a PHP mellé! :)

Webre PHP-ban fejlesztünk, az pedig rém praktikus, hogy ugyanaz a nyelv szolgál mindenre. Egyrészt, az ember agyának is (szintaxis, stb.) másrészt, a mindenhol felhasználható komponensek (library-k) miatt is.

Én "kidobtam" a Perl-t kb. 15 évvel ezelőtt. Valójában sosem szerettem, de anno. az volt a "de-facto standard". A Python pedig számomra borzasztó. :)

Shell scriptet írunk, de az azért erősen limitált funkcionalitás. A PHP-CLI annyira "nem kér enni", hogy az esetek nagyrészében pár sorban megírjuk PHP-ban azt, amire shell szkriptben órákat kellene tökölni.

Megy az sokmindennel. Java, C#, JavaScript (node.JS), python, Ruby nem tudom mennyire megy mostanság, akármi.

Nekem ami hiány volt egy idő után az az, hogy ténylegesen rendes alkalmazásként fusson a cucc és ne csak egy scriptként. És akkor most eltekintettem a nyelvnek a gyengeségeitől (nem statikus, nehezebb refactoring, típusrendszer gyengesége, átlagosnál nagyobb méretű inkonzisztencia, stb.)

Ami nagyobb rendszereket csináltam anno PHP-ben, azt ma Java-ban vagy C#-ban csinálnám.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Igazabol semmi nem akadalyoz meg benne, hogy ne html kimenetet generaljon a php scripted - vagy hogy egyaltalan ne legyen kimenete.
Kb. az esetek feleben, amikor php scriptet irtam, az cli volt.
Ha kelloen szetvalasztod a logikat a megjelenitestol, lehet tobb mukodesi modja is.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Ha tudsz ra jobbat, es ismered is, akkor hasznald azt!

En akkor szoktam ra a PHP-cli-re, amikor egy csomo command line-ban elvegzendo feladatom volt, es webfejleszto csapatban dolgoztam. Kereshettem volna ra random masik scriptnyelvet, vagy hasznalhattam azt, amihez a csapatban mindenki ertett amugy is (es meg volt irva hozza minden szukseges dolog).

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Emlékeztetőül kiemelnék két szót az előző kommentemből: "azt ma". Nyilván akkor az adott körülmények közt az adott tudásommal azt a döntést hoztam, hogy ezt vagy azt úgy érdemes megcsinálni. Most azóta több ismeretem van és látom, hogy mi lett volna és most ugyanarra a feladatra mi a jobb megoldás.

PHP meg erősen visszaszorult, mint jó opciók.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

BTW: Pythonra szavaztam (asszem most eloszor, korabban php volt). Mar inkabb ahhoz nyulok, ha valamit scriptelni kell, kiveve ha web. Annyira nem ter el az allaspontunk, mint gondolod.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Pythont írtam, "szkriptelésre", amire egy ilyen nyelv igazán való, még nem láttam jobbat.

Typescriptben sok minden nagyon tetszik, de komolyabb felhasználás mellett olyan kitekert marhaságokkal lehet órákat átszopni feleslegesen, hogy sírógörcsöt kap az ember. Túl sok az átszűrődő ótvar JS-ből, vagy a nyelv régebbi verzióiból, emellett még mindig rohamléptékben fejlődik, amit az ökoszisztéma nem mindig tud követni. Élmény amikor egy meglehetősen népszerű, kb. alternatíva nélküli külső JS libet nem tudsz behúzni haxxolás nélkül, mert az official type bindings hozzá még nem lett frissítve több mint fél éve a legújabb nyelvi verzióra, amiben megint eltekertek a modul kezelésen valamit.

Emellett számomra az sem egyértelmű, hogy ide tartozik-e egyáltalán egy önmagában nem igazán futtatható, más nyelvre "transpileolt" csoda, amit kb. csak alkalmazásfejlesztésre használnak.

"Does someone know how to obfuscate Perl code?"
"There are lots of tools out there. You just need to hire one of them."

Hogy most megint foglalkozok vele melo kapcsan, hirtelenjeben le is szavaztam a Rubyra!

Hogy ez mennyire egy elegans, mennyire flexibilis nyelv... mondjuk a zarojelezesi, meg a dot-notation elhagyasi szabalyoktol neha agyrazast kapok, de majd csak rajovok, hogy mikor kell, mikor nem...

Van is par otletem, hogy merre fogom terelgetni a juniorunkat :)