HOVD 2018 - Kedvenc szkriptnyelv

 ( trey | 2019. január 10., csütörtök - 20:54 )
javascript
7% (43 szavazat)
lua
2% (12 szavazat)
*nix shell (bash, csh stb.), awk
22% (142 szavazat)
perl
7% (43 szavazat)
php
14% (87 szavazat)
powershell
4% (24 szavazat)
python
37% (234 szavazat)
r
2% (11 szavazat)
ruby
3% (17 szavazat)
typescript, coffeescript (javascript jellegu nyelvek)
4% (23 szavazat)
Összes szavazat: 636

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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.

OFF:

DirtY_iCE írta:
I hate myself, because I'm not open-source.

open source vagy, openebb mar nem is lehetnel :) http://www.ensembl.org/Homo_sapiens/Location/View?r=17:63992802-64038237

De ettől miért lenne nyílt forrású?

Ennyi erovel minden program nyilt forrasu, hiszen ott az ida, dnspy, fernflower, ...


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

Nem egészen. Source -> executable az olyan mint a genom -> ember. Na a genomot nem úgy határozták meg, hogy visszafejtettek egy embert, hanem egyszerűen leolvasták közvetlenül, és közzétették a forrást, ezért írtam, hogy open source. Na meg kötekedésképpen :)

Csak abbol nem derul ki melyik lesz a fejecske, a szemecske, fulecske...
Kb mintha egy binarist tomoritenel es azt neznenk hexeditorban. Bar ahogy az oseink is mondtak: "A gzip tomorites mit sem ront a perl olvashatosagan." :)

"A gzip tomorites mit sem ront a perl olvashatosagan." - tessen szépen megnézni az (ön)iróniánál :-P A legtöbb nyelven lehet write-only kódot produkálni, kellő igénytelenség és/vagy obfuszkálás-fertőzés esetén.

kicsit butthurt vagy a témában, így kénytelen vagyok sokat tanult kollégát idézni: "perlben is lehet szép kódot írni... csak nem szokás" ;)

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.

és ez hogy jön ide? :)

Ez után a komment után nem értem, hogy mi a bajod a pythonnal ;-)

AZ, hogy nem a programnyelv szintaxisának a feladata igényességre nevelni. Meg nagyonnem mindegy, hogy egy elrontott kopipaszta (html-oldalba simán berakva) gyakorlatiag használhatatlan lesz a forráskód, estébé.

>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.

ez egyaltalan hogy mehetett be a masterre? Egy minimalis ci pipeline mar az elejen tolna ra az ecetes -2-t...

--
O1G

Valami branchtelen briganti kódolta :-D

Hahaha, még hogy CI pipeline!

Na, hát így.

python ill. bash, a feladattol fuggoen...

--
O1G

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.

Valahogy képtelen vagyok megkedvelni a javascriptet

Örömmel látom, ahogy tör felfelé az R :-)
--
Csaba

Ha végre sikerülne időt szakítanom rá, biztosan én is megszeretném :)

Én most kezdek lejönni róla. Vannak problémák, amiket ezerszer könnyebb R-ben megoldani, mint bármi másban, de általános célra nekem azért inkább Python.

Love is in the R!

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

:)

Háromszor olvastam el, mire leesett, de csak azért, mert olyan ismerősen csengett. :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

á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.

R nyelvvel régóta szemezek, Julia-t meg múltkor néztem, bejön.

És akar már a földön járni...? :-D

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™

Nem tudok nem egyet erteni.

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

A whitespace a syntax miatt is kvázi pszeudokódnyelv a python ami szerintem jó dolog.

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?

nem mintha vim alatt nem lenne automatikus indentálás meg állítható indentálás méret meg hasonlók.

Jó, alap vi-t nem tudom.

Csak kibújt a szög a zsákból, hogy bár eddig azt mondtad, az a bajod, hogy teljesen fölösleges emberekre rákényszeríteni, hogy szépen dolgozzanak, mert úgyis azt teszik, aztán tessék, kiderül, hogy igazából az a bajod, hogy nem akarsz :)

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.

Törölve

A Python nem szkriptnyelv; szkriptelesre _is_ eloszeretettel hasznalt nyelv.

Ez minden évben itt van, de még senki nem mondott emlékeim szerint jobb szétválasztást, szóval...

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ő. :)

f = x -> x + 1

Ennél rövidebbet kevés nyelv támogat. :)

Igen, ezt ismerem. De úgy tudom, hogy ez csak ott alkalmazható, ahol a függvénytörzs pusztán egy sor. De javíts ki, ha rosszul tudom. Azért vannak bonyolultabb, összetettebb függvények is.

Néhol fun -nak hívják, az olyan vicces :-)

... é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.

Jó, azért Perl után PHP-re lépni nem olyan nagy wasistdas. Régen én is dolgoztam webre PHP-ben. Ma már eszembe nem jutna elkezdeni bármi picit is komolyabbat abban oda.

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

Mivel megy manapság webes fejlesztés?

Java, c#, Python, go, kinek mi az ízlése...

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

Nem erről van szó. Írtam elég CLI-s PHP-s cuccot is. Lehet, csak a legtöbb esetben tudok rá feladattól függően jobb/kényelmesebb/megbízhatóbb megoldást.

Akkor meg miért választanám most azt?

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

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.

"Pythont írtam, "szkriptelésre", amire egy ilyen nyelv igazán való, még nem láttam jobbat." - akkor nézelődj, mert van nem kevés eset, amikor más kézreállóbb.

Igazad van, nem fogalmaztam pontosan: specifikusan shell scriptekre gondoltam, nekem quick-and-dirty scripteket ilyen területen kell csak összedobnom.
Bizonyos domain specifikus feladatokra simán lehet adott esetben jobbat kitalálni, ezt elismerem.

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

Igénytelen, olvashatatlan, trágya kódot nagyjából bármilyen átlagos nyelven el lehet követni.

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 :)