Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: nehalem 18. 01. 2022, 15:29:33
-
Potrebujem napisat jeden netrivialny skript a rozhodujem sa v com ho napisem. Volba padla (neprekvapujuco) na Python, ale aj Ruby. Ruby som len tak letem-svetem presiel, skusil si v nom nieco napisat a z nejakeho dovodu, mi viac "sadlo" nez Python, co je trochu zvlastne s ohladom na to ako popularny a jednoduchy Python je, ale proste je to tak.
Lenze z praktickeho hladiska, ma vobec zmysel investovat cas do ucenia sa Ruby viac do hlbky? Podla TIOBE https://www.tiobe.com/tiobe-index/ruby/ (https://www.tiobe.com/tiobe-index/ruby/) indexu umiera. Python je dlhe roky v top 5.
Ak tu je niekto kto pracuje s Ruby (idealne nie len RoR a web, ale aj systemove skripty atd.) tak by som rad vedel ako to s tym jazykom a najma komunitou je, vychadzaju stale nove verzie libiek a do buducna to vyzera ako s tym ekosystemom?
Vdaka za kazdu (relevantnu) odpoved.
-
S RoR jsem dělal 4 roky zpět dva vnitropodnikové weby, šli s tím dělat velmi pěkně parádní fičury.
Teď jsem znova zahájil v RoR nový web. Bude to 'WarehouseManagementSystem'.
Komunikace se SAP B1 pomocí jeho Service Layer. Na IRC je stále velká komunita.
-
Ja obcas pouzivam Ruby na onelinery a nejake kratke skripty, ale Python je urcite zivejsi. Jestli Ruby neznate a nechcete vyvyjet v RoR, asi nema cenu se ho ucit.
-
Potrebujem napisat jeden netrivialny skript
Co má ten skript zhruba dělat? Ruby je pěkný jazyk, ale jen pro občasné skriptování asi nemá cenu se ho učit, pokud člověk nemá času nazbyt. Možná na to nakonec bude nejlepší ten Python, ale fakt to chce aspoň trochu vědět, co ten skript bude dělat.
-
Potrebujem napisat jeden netrivialny skript
Co má ten skript zhruba dělat? Ruby je pěkný jazyk, ale jen pro občasné skriptování asi nemá cenu se ho učit, pokud člověk nemá času nazbyt. Možná na to nakonec bude nejlepší ten Python, ale fakt to chce aspoň trochu vědět, co ten skript bude dělat.
Interny "package" manazer. Skratka je nejake vacsie mnozstvo komponent ulozenych na serveroch a skript ma byt nieco ako Homebrew, postahuje info zo serverov ktora verzia je latest, vie ju nainstalovat atd. Kvoli urcitym specifickym komplikaciam (ako inak :/) nejde pouzit uz existujuce riesenia, tak som si hovoril, ze vyuzijem prilezitost a naucim sa poriadne Python alebo skusim to Ruby, avsak ten skript bude pouzivany roky predpokladam, takze myslim aj na to.
-
V Ruby je napsany GitLab jestli se neco nezmenilo. A pak Redmine.
A to je tak jediny co jsem ho kdy potkal :-) Radsi bych se mrknul ten Python.
-
V Ruby je napsany GitLab jestli se neco nezmenilo.
i github
-
Taky jsou v nem psane Puppet moduly.
-
Ruby on Rails je komplexní nástroj. Tam kde jiní potřebují x nástrojů (React,Angular, Python,Django, etc)...tak v případě RoR máte toto všechno v jednom :_)
Ruby jako takový není v rámci Rails nijak limitován.
-
No mňa by viac bavil jeden z týchto dvoch jazykov:
https://crystal-lang.org/ - nízkoúrovňový jazyk z rodiny Ruby
https://elixir-lang.org/ - Ďalší jazyk, syntaxou vzdialene pripomínajúci Ruby, aj keď sémanticky je inšpirtovaný Erlangom a mal by byť určený pre Beam VM (virtuálna mašina pre Erlang)
Ruby bolo rozšírené niekedy pred 15timi rokmi, dnes už hype okolo jazyka klesá. Ale občas je dobré naučiť sa aj trochu exotickejšie technológie. Rozšíria ti obzory. Ja som v ruby nikdy neprogramoval, ale vraj je podobný smalltalku takže ti možno trochu zmení pohľad na objektové programovanie .
-
V Ruby je napsany GitLab jestli se neco nezmenilo.
i github
jenze ten si nestahnes a neupravis...
-
bolo rozšírené niekedy pred 15timi rokmi, dnes už hype okolo jazyka klesá
To je podstatná výhoda.
vraj je podobný smalltalku
To je pravda, proto je to tak pěkný jazyk.
-
Ruby je ve fázi odlivu vývojářů. Mrtvé ale není, protože je ještě hromada produkčního kódu. Zato, je pro firmy ale stále těžší sehnat vývojáře, ať zkušené, nebo s chutí se ten jazyk naučit.
> Cobol v roku 2022 (je mrtvý?)
-
Interny "package" manazer. Skratka je nejake vacsie mnozstvo komponent ulozenych na serveroch a skript ma byt nieco ako Homebrew, postahuje info zo serverov ktora verzia je latest, vie ju nainstalovat atd. Kvoli urcitym specifickym komplikaciam (ako inak :/) nejde pouzit uz existujuce riesenia, tak som si hovoril, ze vyuzijem prilezitost a naucim sa poriadne Python alebo skusim to Ruby, avsak ten skript bude pouzivany roky predpokladam, takze myslim aj na to.
Off topic: jake jsou konkretne ty specifika?
Me prijde ze Portage v Gentoo dela presne to co potrebujete (jednotlive ukoly ebuildu jsou skriptovane vlastnim rozsirenimi nad bash a zavislosti resi samotne emerge, napsane v pythonu):
https://en.wikipedia.org/wiki/Portage_(software)#ebuild
-
>>Potrebujem napisat jeden netrivialny skript a rozhodujem sa v com ho napisem. Volba padla (neprekvapujuco) na Python, ale aj Ruby. Ruby som len tak letem-svetem presiel, skusil si v nom nieco napisat a z nejakeho dovodu, mi viac "sadlo" nez Python, co je trochu zvlastne s ohladom na to ako popularny a jednoduchy Python je, ale proste je to tak. <<
no a nebylo by to lepsi napsat v jazyce/frameworku, ktery uz mate zazity?! slo by to rychleji.
samozrejme pokud se chcete na tom neco noveho naucit, tak proc ne :-)
me jako ceckare a c++kare zacal bavit golang.
-
me jako ceckare a c++kare zacal bavit golang.
Rust ne?
-
me jako ceckare a c++kare zacal bavit golang.
Rust ne?
bez muceni se priznam, ze se mi libi vice primocarost cisteho c, sice se zivim c++1x,
ale tam je zase hafo moznosti jak napsat jednu vec, ze mi to nekdy az vadi.
takze golang je takove lepsi cecko a tihnu k nemu vice.
ale je pravda, ze se i na rust chci nekdy podivat, ten je blize c++ vnimani sveta.
a python jsem delal a uz se mi nelibi a opustil jsem ho jako kdysi perl i php.
-
bez muceni se priznam, ze se mi libi vice primocarost cisteho c
To chápu, mám to stejně. A u Go vs. Rust u mě hraje roli přítomnost/absence GC, ostatně podle mě jsou oba jazyky na stejné konceptuální rovině mezi C a C++.
-
bez muceni se priznam, ze se mi libi vice primocarost cisteho c
To chápu, mám to stejně. A u Go vs. Rust u mě hraje roli přítomnost/absence GC, ostatně podle mě jsou oba jazyky na stejné konceptuální rovině mezi C a C++.
a u golangu mi jsou sympaticti autori, delali kdysi plan9 a i jazyk alef co se v plan9 pouzival.
treba rob pike je skvely:
https://www.youtube.com/watch?v=IktjQNYlT_8
-
a u golangu mi jsou sympaticti autori, delali kdysi plan9 a i jazyk alef co se v plan9 pouzival.
treba rob pike je skvely
Super, s tolika vlasama jsem ho ještě nikdy neviděl :)
-
..
Volba padla .. na Python, ale aj Ruby
..
dalsia moznost by mohla byt Groovy
-
Ale občas je dobré naučiť sa aj trochu exotickejšie technológie. Rozšíria ti obzory. Ja som v ruby nikdy neprogramoval, ale vraj je podobný smalltalku takže ti možno trochu zmení pohľad na objektové programovanie .
Nejdriv musite znat mainstream, abyste mel co rozsirovat. V cem je Ruby podobnejsi smalltalku nez jine dnes mainstreamove jazyky, Javascript, Python?
Ja smalltalk neznam, ale troufam si tvrdit, ze oproti Pythonu objektovy model v Ruby nenabizi nic navic, naopak, chybi nektere moznosti, metaclassy a pod.
-
Oba jazyky jsou cool, Python je podle mě víc mainstreamový, Ruby víc okrajový. RUby je mrtvý maximálně rok, pokud je. Nějaká velká verze vyšla v Dec2020 a Dec 2021 (31. na Silvestra)
-
Vdaka za odpovede. Je to asi jasne, pragmaticke je pouzit Python. Ja sa sice rad ucim nove veci (inac by som v kazdom zamestnani kde som bol totalne zakrnel), ale kedze to ma byt najma pre druhych ludi, tak to urobim v Pythone.
P.S.
Groovy? ;D Neviem ci to bolo mienene vazne alebo nie, ale napisat to v jazyku ktory musi mat na fungovanie celu JVM? Pisete v tom naozaj aj skripty? Preco nie rovno Kotlin (ak je vasa odpoved ano)?
EDIT:
Toto vlakno mi aj zasadilo chrobaka do hlavy ohladom Go. Co sa tyka performance, tak pri porovnani s Pythonom je to uplne ina liga aj ked ma GC. A jazyk je to jednoduchy (az prilis) ma spickovy tooling a ekosystem a hlavne je v nom uz teraz napisane dost velke mnozstvo softwaru ktory pouzivam a ani som nevedel, ze je v Go, takze je to zjavne dost prakticky pouzitelne a stoji to niekomu za to pouzit Go namiesto inych jazykov+platform.
-
takze to udelej v go misto v pythonu :-)
-
Ruby som len tak letem-svetem presiel, skusil si v nom nieco napisat a z nejakeho dovodu, mi viac "sadlo" nez Python, co je trochu zvlastne s ohladom na to ako popularny a jednoduchy Python je, ale proste je to tak.
Ruby je oproti Pyrhonu podstatně jednodušší a na psaní příjemnější. Gratuluji k poznání. Ostatně je tak cíleně navrhované a je to na něm poznat. Na druhou stranu kvalita platformy nespočívá jen v tom, jak moc dobře se v ní píše. Bohužel.
-
Ruby on Rails je komplexní nástroj. Tam kde jiní potřebují x nástrojů (React,Angular, Python,Django, etc)...tak v případě RoR máte toto všechno v jednom :_)
On ale mluvil o Ruby. Ne o Rails. To je podstatný rozdíl. Nemluvě o tom, že podle docela dost rubistů (včetně mně) Rails Ruby spíše kazí.
-
je to uplne ina liga aj ked ma GC
GC se v Go moc nenadře, escape analýza nahází většinu objektů na zásobník. Pokud není požadavkem interpretovaný jazyk (a jde zároveň o naučení se něčeho nového), zvážil bych Go nebo Rust. Ale to už je daleko od skriptovacích jazyků.
-
Groovy? ;D Neviem ci to bolo mienene vazne alebo nie, ale napisat to v jazyku ktory musi mat na fungovanie celu JVM? Pisete v tom naozaj aj skripty? Preco nie rovno Kotlin (ak je vasa odpoved ano)?
Ano vazne. JVM moze byt prave velka vyhoda: multiplatformnost, JDBC a vsetky vyhody javy.
Preco nie Kotlin? Je o dost novsi jazyk a vyzera byt aj zlozitejsi, vraj na vyvoj Android ale tomu sa nevenujem, takze zatial ma nijako nezaujal. Na bezne skriptovanie sa mi zda jednoduchsi Groovy a lepsie sa mi aj hodi k Jave. Vraj Groovy je v mnohom dost podobny s Ruby. Tu si mozes porovnat Groovy s Ruby a Pythonom: http://pleac.sourceforge.net/
-
Groovy? ;D Neviem ci to bolo mienene vazne alebo nie, ale napisat to v jazyku ktory musi mat na fungovanie celu JVM? Pisete v tom naozaj aj skripty? Preco nie rovno Kotlin (ak je vasa odpoved ano)?
JDBC a vsetky vyhody javy
A to jsou které?
-
A to jsou které?
WORA
-
A to jsou které?
WORA
To umí i spousta jiných jazyků.
-
A to jsou které?
WORA
To umí i spousta jiných jazyků.
Asi tak. V Pythonu to je v zásadě standard (i s GUI třeba přes PyQt), dtto Ruby, Perl, PHP... A pokud nevadí build pro více platforem (což není žádná hrozná práce), platí to i pro většinu jazyků, které překládají do strojáku. A pak to je obyčejně i bez nutnosti instalovat další závislosti.
-
WORA
To umí i spousta jiných jazyků.
A ktore su to? Dufam ze nepovies Rust alebo Go ;D
-
Co to tu je za nastavenie autorizacie na roote?
Som prihlaseny na uvodnej stranke. Pisal som dlhsiu odpoved do tohto fora a ked som ju chcel odoslat, vypisalo mi to ze sa musim najskor zaregistrovat a vsetko mi to vymazalo :-[
-
WORA
To umí i spousta jiných jazyků.
A ktore su to? Dufam ze nepovies Rust alebo Go ;D
Povím, protože jsou WORA, jejich standardní knihovny fungují stejně na různých OS.
-
chapu, ze nekdo dela javu, protoze musi delat v rozsahlem ekosystemu javy.
ale na novou vec bych si ji uz nevybral.
-
WORA
To umí i spousta jiných jazyků.
A ktore su to? Dufam ze nepovies Rust alebo Go ;D
Povím, protože jsou WORA, jejich standardní knihovny fungují stejně na různých OS.
Lenze problem je ze su to dost okrajove jazyky, moc sa zatial nepouzivaju a bezne ich nemas nainstalovane. A nie su to skriptovacie jazyky.
-
chapu, ze nekdo dela javu, protoze musi delat v rozsahlem ekosystemu javy.
ale na novou vec bych si ji uz nevybral.
nie som vobec zastancom javy ale niekedy ked ine veci poriadne nefunguju je to najlepsia volba
-
Tak este vysvetlenie, co ma doviedlo az k nazoru, preco skript na platforme JVM a preco Groovy ?
;)
Priklad z praxe: Potrebujem skript, ktory bude pristupovat do proprietarnej databazy a bude bezat na 3 roznych platformach.
Na vsetkych platformach je Perl, Python, Java. Na 3.platforme nie je Ruby a nefunguje tam DB-driver pre Perl. Nemam to ako ovplyvnit, nie som tam admin, takze Perl a Ruby vypadavaju.
Zostava Python. S tym je vsak maly problem, lebo na kazdej platforme je iny DB-driver. Na jednej je pyodbc, na druhej sa podari spojazdnit JayDeBeApi s prislusnym JDBC pre danu databazu a na tretej platforme je nejaky proprietarny driver.
Takze napisem skript v pythone, kde sa v zavislosti od detekovanej platformy pouzije na pripojenie do DB jeden z 3 driverov. Vsetky maju sice uvedene ze splnaju specifikaciu DB-API v2.0, ale pri testovani sa zistia urcite rozdiely pri praci s databazou, takze skript treba dobre otestovat na kazdej platforme a doladit vsetky rozdiely, tak aby sa spraval vsade rovnako. Toto zaberie dost casu.
Potom urobim PoC - napisem to v Jave - na kazdej platforme to bezi uplne rovnako. Nepotrebujem zabijat cas testovanim na troch roznych platformach a vyladovat rozdiely.
Avsak Java nie je skriptovaci jazyk a je dost ukecana, tak urobim dalsi PoC a prepisem to do Groovy - kod je ovela kratsi a elegantnejsi ale bezi vsade bez rozdielu rovnako - ako Java - super. Kolko casu by som usetril, keby som to nepisal najprv v Pythone, ale urobil to hned v Groovy.
Mozno by som mohol pouzit aj iny skriptovaci jazyk pre JVM. Jython vsak nie, ten je v zastaralej verzii. Mozno JRuby, ale naco sa zatazovat inou syntaxou, ked Groovy je k Jave syntakticky blizsi.
-
WORA
To umí i spousta jiných jazyků.
A ktore su to? Dufam ze nepovies Rust alebo Go ;D
Povím, protože jsou WORA, jejich standardní knihovny fungují stejně na různých OS.
Lenze problem je ze su to dost okrajove jazyky, moc sa zatial nepouzivaju a bezne ich nemas nainstalovane. A nie su to skriptovacie jazyky.
Java je skriptovací?
-
Java je skriptovací?
Ja som doporucoval Groovy, to je skriptovaci jazyk na JVM.
-
Java je skriptovací?
Ja som doporucoval Groovy, to je skriptovaci jazyk na JVM.
Je ale blbost vyžadovat instalaci JVM nebo vůbec čehokoliv pro běh. Pro vývoj se nainstaluje SDK a pak ať se nasazují jen binárky, nejlépe bez závislostí. Psát ve skriptovacím jazyce, který vyžaduje obrovskou neskladnou těžkopádnou JVM, je jako mít moderní mobilní telefon a převážet ho tankem. Prostě na hlavu.
-
WORA
To umí i spousta jiných jazyků.
A ktore su to? Dufam ze nepovies Rust alebo Go ;D
Povím, protože jsou WORA, jejich standardní knihovny fungují stejně na různých OS.
Lenze problem je ze su to dost okrajove jazyky, moc sa zatial nepouzivaju a bezne ich nemas nainstalovane. A nie su to skriptovacie jazyky.
Celkom ma pobavilo ako nazyvas Go a Rust ako okrajove jazyky a doporucujes Groovy :). Go nie je okrajovy jazyk ani nahodou, mozno budes prekvapeny ked zistis kolko softu co pouzivas je v nom napisane. A dufam, ze to neposudzujes podla lokalneho trhu prace, ten je totalne zmrzaceny (toboz ten na horniakoch), ja sledujem globalne trendy a svet tam vonku. Rust je okrajovy, ale mam take tusenie, ze raz z neho bude nieco viac mainstreamove, najma preto ze je to jedina (ako-tak pouzitelna) alternativa k C++ za cele tie roky.
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
-
Rust je okrajovy
To je slovo do pranice :)
nakoniec som teda vybral naozaj to Go
V tom případě doporučím Go 1.18, neb má typové parametry (teď je k dispozici beta verze, ostrá vyjde v únoru).
-
V poslednej dobe sa tu na roote skoro kazda debata zvrhne na to, ze jedina spravna volba je Rust alebo Go.
Ja som napisal, ze "su to dost okrajove jazyky, moc sa zatial nepouzivaju a bezne ich nemas nainstalovane. A nie su to skriptovacie jazyky.". Tu prvu cast so slovom "okrajove" teda mozem vynechat - aby ste sa ukludnili ;D
Go som testoval este v roku 2016, ale moc som mu neprisiel na chut. Mal som z neho podobne pocity ako sa pise tu: http://nomad.uk.net/articles/why-gos-design-is-a-disservice-to-intelligent-programmers.html a doteraz som go runtime nevidel nainstalovany na ziadnom serveri pre ktory som pisal skript. Vyzera to tak, ze go sa u nas moc nerozsirilo. Rust som este neskusal.
Na serveroch byva zo skriptovacich jazykov standardne nainstalovany perl, python, pripadne tcl a obcas aj ruby. Java je tam tiez casto, lebo na nej bezia rozne servisy. A ked uz mas javu tak ti staci nakopirovat jeden jar aby si mal aj groovy. Go ti tam len tak kvoli jednemu programu nikto instalovat nebude.
Btw. @nehalem ty nevies co chces, najprv pises o skriptovacich jazykoch a potom go, co nie je skriptovaci jazyk ;D
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
-
doteraz som go runtime nevidel nainstalovany na ziadnom serveri pre ktory som pisal skript […] Go ti tam len tak kvoli jednemu programu nikto instalovat nebude.
Vysvětlete mu někdo, proč je to blábol :)
-
jeden z 3 najvacsich eshopov s elektronikou pouziva golang bezne.
-
doteraz som go runtime nevidel nainstalovany na ziadnom serveri pre ktory som pisal skript […] Go ti tam len tak kvoli jednemu programu nikto instalovat nebude.
Vysvětlete mu někdo, proč je to blábol :)
vsak zadne go zadny uzivatel nemusi instalovat :-)
uzivatel nepotrebuje kompiler ani developerske nastroje.
uzivateli staci jen vysledna binarka/program.
-
Osobně bych webový program ve skriptovacím jazyku nepsal ale Ruby je opravdu skvělá náhrada za Python skripty.
-
doteraz som go runtime nevidel nainstalovany na ziadnom serveri pre ktory som pisal skript […] Go ti tam len tak kvoli jednemu programu nikto instalovat nebude.
Vysvětlete mu někdo, proč je to blábol :)
vsak zadne go zadny uzivatel nemusi instalovat :-)
uzivatel nepotrebuje kompiler ani developerske nastroje.
uzivateli staci jen vysledna binarka/program.
Aha, tak to myslite. Ja som myslel, ze chcete ten go program spustat na tych serveroch cez go run, ale ak namiesto toho distribuovat skompilovane binarky, tak to nema so scriptovanim - o ktorom sa tu bavime - nic spolocne. To sa moze potom takisto napisat v Jave a distribuovat jar.
-
Aha, tak to myslite. Ja som myslel, ze chcete ten go program spustat na tych serveroch cez go run, ale ak namiesto toho distribuovat skompilovane binarky, tak to nema so scriptovanim - o ktorom sa tu bavime - nic spolocne. To sa moze potom takisto napisat v Jave a distribuovat jar.
ja uz bych se na deleni na skriptovaci a kompilovane jazyky skoro radsi vyprdnul.
go build, go run je tak jednoduche, ze nevidim duvod povazovat skriptovaci jazyky za neco jednodussiho :-)
-
To sa moze potom takisto napisat v Jave a distribuovat jar.
Jo, a instalovat JVM ::)
-
To sa moze potom takisto napisat v Jave a distribuovat jar.
Jo, a instalovat JVM ::)
to bych zas nestresoval, instalace JRE nebo JDK je dneska uz vsude :-)
nehledel bych na skriptovaci/kompilovany, nativni/virtualni masina, ale jak se mi s tim ci onim programovacim
jazykem dobre ci spatne dela.
mam rad lisp, ok, tak to pisu v lispu :-)
-
to bych zas nestresoval, instalace JRE nebo JDK je dneska uz vsude :-)
nehledel bych na skriptovaci/kompilovany, nativni/virtualni masina, ale jak se mi s tim ci onim programovacim
jazykem dobre ci spatne dela.
mam rad lisp, ok, tak to pisu v lispu :-)
Víceméně souhlasím. V posledních letech pozoruju dost velkou "konvergenci" programovacích jazyků. Co se týče snadnosti používání, dostupnosti knihoven, dostatečné rychlosti běhu, jsou řešení v různých jazycích často poměrně srovnatelná. Spoustu jednoduchých věcí dovedu napsat v rozumném čase v Pythonu, Rustu, v Javě, v PHP, v JS, v C++, v Common Lispu, klidně v Haskellu, když by na to přišlo. Jasně, musel bych si v některých jazycích leccos oprášit nebo googlit knihovny apod., takže bych výběr v praxi dost zúžil, ale to už je zase jiný problém.
Skriptovací (lépe snad interpretované) jazyky mají výhodu v tom, že je možno program zkoumat a modifikovat na místě. Pokud toto není cílem, je asi celkem jedno, jestli jde o program distribuovaný jako zdrojový, v nějakém bytecode nebo v nativní binárce.
Druhý aspekt (tolik přiznám kolegovi Mikromovi) je možná technická bariéra (kompatibilita mei systémy, dosttupné knihovny).
Know-how a vůbec ochota k práci s konkrétním jazykem jsou ovšem skoro stejně důležité věci. Když nesnáším Perl (Python, Tcl, cokoli) nebo na to nemám člověka, tak to prostě používat nebudu. OP použil Go, splnil úkol, prošlo mu to, za mě happy end. ;)
-
Skriptovací (lépe snad interpretované) jazyky mají výhodu v tom, že je možno program zkoumat a modifikovat na místě.
A k čemu to je? Zkoumat a modifikovat se dá i makrem při překladu (Rust, Julia), proč bych to měl dělat za běhu?
-
Skriptovací (lépe snad interpretované) jazyky mají výhodu v tom, že je možno program zkoumat a modifikovat na místě.
A k čemu to je? Zkoumat a modifikovat se dá i makrem při překladu (Rust, Julia), proč bych to měl dělat za běhu?
Na ostrých serverech tohle přes SSH dělám běžně. Mám v Pythonu nějaký skript pro rychlou analýzu nějakých dat nebo logů a chci si skript rychle upravit a vidět pozměněný výsledek. Tohle bych fakt v Rustu nedělal. Podobných situací jsem zažil dost a mít zdroják a případně REPL je k nezaplacení.
-
Skriptovací (lépe snad interpretované) jazyky mají výhodu v tom, že je možno program zkoumat a modifikovat na místě.
A k čemu to je? Zkoumat a modifikovat se dá i makrem při překladu (Rust, Julia), proč bych to měl dělat za běhu?
Na ostrých serverech tohle přes SSH dělám běžně. Mám v Pythonu nějaký skript pro rychlou analýzu nějakých dat nebo logů a chci si skript rychle upravit a vidět pozměněný výsledek. Tohle bych fakt v Rustu nedělal. Podobných situací jsem zažil dost a mít zdroják a případně REPL je k nezaplacení.
OK, jakmile je ve hře REPL, tak to smysl dává.
-
interpretovany jazyk muzete pouzivat interaktivne jako shell, skripty muzete importovat do REPLu a volat jednotlive funkce
-
OK, jakmile je ve hře REPL, tak to smysl dává.
presne, navic i debugger interpretovanych jazyku je plnohodnotny REPL, muzete program zastavit v debuggeru a editovat jednotlive funkce napriklad, zkoumat chovani s realnymi daty.
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
-
Btw. @nehalem ty nevies co chces, najprv pises o skriptovacich jazykoch a potom go, co nie je skriptovaci jazyk ;D
Ja viem co chcem, dokoncit projekt tak aby som sa za neho nemusel hanbit. Take tie terminologicke blbosti su nepodstatne. Dnes uz je coraz tazsie rozlisit co je skriptovaci a co programovaci jazyk. Je kopec softu v Pythone ktory nie su iba skripty a stale sa Pythonu nadava, ze skriptovaci jazyk.
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
Jo, to dává smysl :) Ještě chybí Rust nad JVM a transpiler Agdy do Cobolu. Transpiler Ruby do Fortranu už máme…
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
Jo, to dává smysl :) Ještě chybí Rust nad JVM a transpiler Agdy do Cobolu. Transpiler Ruby do Fortranu už máme…
To dáme.
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
Jo, to dává smysl :) Ještě chybí Rust nad JVM a transpiler Agdy do Cobolu. Transpiler Ruby do Fortranu už máme…
Popravdě, Rust target pro JVM bych docela bral. Jako, máme tu Scalu ale to prostě není ono...
-
Idris, Ink, Boneflute, proc si nezakladate vlastni vlakna o Rustu a zavislostnich typech, zasirate jimi kazdou diskuzi?
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
Jo, to dává smysl :) Ještě chybí Rust nad JVM a transpiler Agdy do Cobolu. Transpiler Ruby do Fortranu už máme…
Popravdě, Rust target pro JVM bych docela bral. Jako, máme tu Scalu ale to prostě není ono...
K čemu by tam pak byl třeba borrow checker?
-
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
Jo, to dává smysl :) Ještě chybí Rust nad JVM a transpiler Agdy do Cobolu. Transpiler Ruby do Fortranu už máme…
Popravdě, Rust target pro JVM bych docela bral. Jako, máme tu Scalu ale to prostě není ono...
K čemu by tam pak byl třeba borrow checker?
GC se dá vypnout. Ono spíše jde o to že potřebuji něco napsat pro JVM ekosystém, ale v těch jazycích co máme pro JVM se mi to moc dělat nechce.
-
GC se dá vypnout. Ono spíše jde o to že potřebuji něco napsat pro JVM ekosystém, ale v těch jazycích co máme pro JVM se mi to moc dělat nechce.
Stačí to napsat v libovolném jazyce transpilovatelném do Javascriptu a výsledek pustit v Nashornu nebo jiném JS interpretu pro JVM ;) I Java jde takto spustit (GWT) ;D
-
GC se dá vypnout. Ono spíše jde o to že potřebuji něco napsat pro JVM ekosystém, ale v těch jazycích co máme pro JVM se mi to moc dělat nechce.
Stačí to napsat v libovolném jazyce transpilovatelném do Javascriptu a výsledek pustit v Nashornu nebo jiném JS interpretu pro JVM ;) I Java jde takto spustit (GWT) ;D
Vtipné je, že by to snad skutečně fungovalo. Možná by se chytil i JIT.
Pamatuji si ten pocit, když jsem objevil google-closure-compiler a koukal jak dokáže brutálně optimalizovat. (Následně pozoroval komunitu, jak ho vůbec nezaregistrovala, a začala dělat to samé akorád složitější a méně pohodlné na použití.)
Pak bych ještě k sub-tématu zmínil GraalVM, jako implementaci IMHO super nápadu, že prostě jedna mašina může zožrat různé jazyky. Podobně jako to tak trochu má JVM nebo CLR, ale ještě víc.
-
GC se dá vypnout. Ono spíše jde o to že potřebuji něco napsat pro JVM ekosystém, ale v těch jazycích co máme pro JVM se mi to moc dělat nechce.
Stačí to napsat v libovolném jazyce transpilovatelném do Javascriptu a výsledek pustit v Nashornu nebo jiném JS interpretu pro JVM ;) I Java jde takto spustit (GWT) ;D
Vtipné je, že by to snad skutečně fungovalo. Možná by se chytil i JIT.
Pamatuji si ten pocit, když jsem objevil google-closure-compiler a koukal jak dokáže brutálně optimalizovat. (Následně pozoroval komunitu, jak ho vůbec nezaregistrovala, a začala dělat to samé akorád složitější a méně pohodlné na použití.)
Pak bych ještě k sub-tématu zmínil GraalVM, jako implementaci IMHO super nápadu, že prostě jedna mašina může zožrat různé jazyky. Podobně jako to tak trochu má JVM nebo CLR, ale ještě víc.
CLR má interně několik verzí pro různé jazyky. Například “if C++”, pak umožni vyhodit jakýkoliv objekt jako výjimku. A pak tam je ještě kód pro kompatibilitu, například když se tohle volá z C#, tak se ta výjimka, co nedědí z Exception, zabalí do jiného objektu. Taky tam mají typové parametry v dobře překladu, u kterých je v C# mangling jmen. Zdroják překladače a VM musí být peklo :)
-
Tak do té diskuze o "seriozních" jazycích hodím trochu vidle.
Různé CLI tooly si píšu v javascriptu a spouštím v node.js (mám lokálně i na serverech). Jde tedy většinou o tasky typu "stáhni JSONy z různých zdrojů, promíchej je, prohrab, vyploď jiné JSONy a naservíruj je do jiného HTTP API". Přijde mi to best fit pro takový use case, mám pro CLI šablonu s yargs atd.; a v javascriptu mne baví psát. Jasně, nevýhoda je potřeba toho runtime.
Go se snažím přijít na chuť (jinak jsem full time javista) a použít ho na side projekt. Snažím se přesvědčit svůj už dost zatuhlý mozek na změnu paradigmatu. Snažím se nepsat Go "javovsky" ale idiomaticky. Skřípu zubama, ale snažím se. Něco to do sebe má, ale třeba to ošetřování chyb přes návratovou hondotu... no snažím se :)
-
Go se snažím přijít na chuť
Go člověk ocení, až si párkrát nabije hubu na velkých projektech v C++ nebo Rustu.
-
Tak do té diskuze o "seriozních" jazycích hodím trochu vidle.
Různé CLI tooly si píšu v javascriptu a spouštím v node.js (mám lokálně i na serverech).
...
a v javascriptu mne baví psát.
Za takovéto konstelace je to snad v pořádku, ne?
-
CLR má interně několik verzí pro různé jazyky. Například “if C++”, pak umožni vyhodit jakýkoliv objekt jako výjimku. A pak tam je ještě kód pro kompatibilitu, například když se tohle volá z C#, tak se ta výjimka, co nedědí z Exception, zabalí do jiného objektu. Taky tam mají typové parametry v dobře překladu, u kterých je v C# mangling jmen. Zdroják překladače a VM musí být peklo :)
Hmm, mě bohatě stačí, když si prohlížím symboly v debugeru. Některý věci mi přijdou super, některý věci vůbec. (Ale já v .NET dělám jen pro prachy, takže co já se k tomu budu vyjadřovat.)
-
CLR má interně několik verzí pro různé jazyky. Například “if C++”, pak umožni vyhodit jakýkoliv objekt jako výjimku. A pak tam je ještě kód pro kompatibilitu, například když se tohle volá z C#, tak se ta výjimka, co nedědí z Exception, zabalí do jiného objektu. Taky tam mají typové parametry v dobře překladu, u kterých je v C# mangling jmen. Zdroják překladače a VM musí být peklo :)
Hmm, mě bohatě stačí, když si prohlížím symboly v debugeru. Některý věci mi přijdou super, některý věci vůbec. (Ale já v .NET dělám jen pro prachy, takže co já se k tomu budu vyjadřovat.)
Mně dřív přišlo super, že měli rozumný překladač C++ pro .NET (včetně Azure). Jenže pak zrušili pure režim, čímž pádem už to tak zajímavé není.
-
Tak do té diskuze o "seriozních" jazycích hodím trochu vidle.
Různé CLI tooly si píšu v javascriptu a spouštím v node.js (mám lokálně i na serverech).
...
a v javascriptu mne baví psát.
Za takovéto konstelace je to snad v pořádku, ne?
No když si vezmu, co jsou lidi schopni psát v Bashi, případně ve "vylepšených" shellech typu Zsh, JS je zlatý. Osobně bych mu dal přednost i před Perlem.
-
Tak do té diskuze o "seriozních" jazycích hodím trochu vidle.
Různé CLI tooly si píšu v javascriptu a spouštím v node.js (mám lokálně i na serverech).
...
a v javascriptu mne baví psát.
Za takovéto konstelace je to snad v pořádku, ne?
No když si vezmu, co jsou lidi schopni psát v Bashi, případně ve "vylepšených" shellech typu Zsh, JS je zlatý. Osobně bych mu dal přednost i před Perlem.
mam rad moderni JS jako jazyk, ale nodeJS ma debilni standardni knihovnu, na cokoliv netrivialniho potrebujete instalovat balicky. V prerlu nebo v pythonu toho muzete napsat hodne jen s pouzitim standardni knihovny.
perl je v podstate DSL na systemove skriptovani, treba zavolani externiho programu a cteni z jeho vystupu je trivialni (stejne jako otevreni souboru).
-
No když si vezmu, co jsou lidi schopni psát v Bashi, případně ve "vylepšených" shellech typu Zsh, JS je zlatý. Osobně bych mu dal přednost i před Perlem.
... no a potom máme ešte PowerShell :D
-
nakoniec som teda vybral naozaj to Go
V tom případě doporučím Go 1.18, neb má typové parametry (teď je k dispozici beta verze, ostrá vyjde v únoru).
Abych řekl pravdu, doteď mne absence typových parametrů nijak neomezovala. Je jasné, že na to má vliv doména ve které Go používám, ale nemá cenu na ně čekat a myslet si, že to zásadně něco změní. Buď je to úplně mimo, a pak stejně narazí na absenci dalších knihoven, anebo je to ok a nijak ho to neomezí.
-
nakoniec som teda vybral naozaj to Go
V tom případě doporučím Go 1.18, neb má typové parametry (teď je k dispozici beta verze, ostrá vyjde v únoru).
Abych řekl pravdu, doteď mne absence typových parametrů nijak neomezovala. Je jasné, že na to má vliv doména ve které Go používám, ale nemá cenu na ně čekat a myslet si, že to zásadně něco změní. Buď je to úplně mimo, a pak stejně narazí na absenci dalších knihoven, anebo je to ok a nijak ho to neomezí.
Třeba při psaní síťových mikroslužeb skutečně neomezuje, ale občas se hodí nebo aspoň umožní jednodušší a čitelnější kód.