Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Pavel Nesnídal:9.9.2016 19:59

Zdravím,
už docela dobře umím PHP a pracuji v něm dlouho, a proto mě napadlo, že bych se naučil něco nového mimo PHP. Proto bych se rád zeptal, co mám vybrat. Chci zůstat u webu, takže mě napadl Python a Django, Ruby on Rails, ASP.NET. Máte nějaké zkušenosti? Můžete doporučit?
Díky

 
Odpovědět
9.9.2016 19:59
Avatar
Petr Šťastný
Tvůrce
Avatar
 
Nahoru Odpovědět
9.9.2016 20:22
Avatar
Odpovídá na Petr Šťastný
Michal Haňáček:9.9.2016 22:22

Mohl by jsi důvody nějako rozvést?

Nahoru Odpovědět
9.9.2016 22:22
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na Michal Haňáček
Pavel Nesnídal:10.9.2016 15:57

Pokud mysíš důvody naučit se něco nového, tak to žádné jiné důvody nemám. Programování mě prostě baví a chci se naučit něco nového. Jen nevím jaký jazyk mám vybrat a doufám, že mi někdo poradí. :)

 
Nahoru Odpovědět
10.9.2016 15:57
Avatar
hitzoR
Člen
Avatar
hitzoR:10.9.2016 16:07

Pokud chceš zůstat u webů, tak bych volil nejspíš to ASP.NET. Pathon a Django jsou dneska na trhu práce už docela mrtvé a po Ruby vývojářích moc poptávka není. Pokud by ti nevadilo jít mimo web, tak jednoznačně Java, tam máš nejlepší šanci se v budoucnu uchytit (ikdyž i v ní se občas weby dělají, co sem slyšel, tak ji prý docela často používají banky a podobné instituce). A ikdyž teď na nějakou práci třeba ani nemáš pomyšlení, tak mi věř, že se ti to určitě bude v budoucnu hodit.

 
Nahoru Odpovědět
10.9.2016 16:07
Avatar
Odpovídá na Pavel Nesnídal
Josef Kuchař - Pepa489:10.9.2016 16:42

Nejspíše javascript, běží jak na serveru tak na clientovy a je o něj zájem ;)

Editováno 10.9.2016 16:42
Nahoru Odpovědět
10.9.2016 16:42
2x piš, jednou debuguj
Avatar
Odpovídá na hitzoR
Pavel Nesnídal:10.9.2016 17:01

Díky :) taky o ASP.NET už přemýšlím :) Pracuji jako PHP programátor a zatím vyhovuje, ale samozřejmě beru i pracovní ohledy. V Javě dělám taky, pro weby to ale nepoužívám.

 
Nahoru Odpovědět
10.9.2016 17:01
Avatar
Odpovídá na Josef Kuchař - Pepa489
Pavel Nesnídal:10.9.2016 17:02

Díky, na Node.js bych málem zapomněl :D Pracuješ v něm?

 
Nahoru Odpovědět
10.9.2016 17:02
Avatar
Odpovídá na Pavel Nesnídal
Josef Kuchař - Pepa489:10.9.2016 18:47

Ale tak občas něco udělám jen tak pro zábavu, nejčastěji ve spojení se socket.io

Nahoru Odpovědět
10.9.2016 18:47
2x piš, jednou debuguj
Avatar
Pavel Nesnídal:12.9.2016 18:33

Neporadil by ještě někdo?

 
Nahoru Odpovědět
12.9.2016 18:33
Avatar
Odpovídá na Pavel Nesnídal
Petr Štechmüller:12.9.2016 19:11

Ahoj, za me jednoznačně javascript. Ve složení MEAN stacku:
M - MongoDB (databáze)
E - ExpressJS (web framework)
A - Angular2 (frontend framework od googlu)
N - NodeJS (server)
je to super výkonný nástroj pro tvorbu webů.

Nahoru Odpovědět
12.9.2016 19:11
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Pavel Nesnídal
Patrik Valkovič:12.9.2016 19:19

Nevím co myslíš pod "docela dobře umím PHP". Pokud zvládáš OOP, tak bych šel na JavaScript. Zůstaneš u webů a můžeš jej v dnešní době použít prakticky na cokoliv. Pokud OOP ještě úplně nezvládáš, doporučil bych C# nebo Javu. V obou jazycích jdou psát weby, i když až se prokoušeš základy. Navíc (na rozdíl od PHP) jsou to typované jazyky.

Nahoru Odpovědět
12.9.2016 19:19
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
hanpari
Člen
Avatar
Odpovídá na Pavel Nesnídal
hanpari:14.9.2016 21:33

Python
http://flask.pocoo.org/
http://www.sqlalchemy.org/

Fsharp
https://suave.io/
http://websharper.com/
https://fable-compiler.github.io/

Popřípadě Ruby (on Rails), Scala, Haskell, Clojure a jejich příslušné webové knihovny. Nebo také C# nebo Javu, pokud máš hbité prsty a rád píšeš.

Pokud se budeš učit programovat na dysfunkčních jazycích jako jsou php nebo javascript, spláčeš nad výdělkem.

 
Nahoru Odpovědět
14.9.2016 21:33
Avatar
mayo505
Tvůrce
Avatar
mayo505:14.9.2016 22:08

ja osobne by som, keď to máš na učenie, zvolil iný jazyk, nie dynamicky typovaný. Ale radšej niečo ako C#, Java trochu ťa to donúti o niečo inak rozmýšľať, lebo prasárny, ktoré sa dali robiť v PHP už zrazu nebudú také jednoduché :D Aj keď samozrejme vývoj nejakého blogu zmákneš s PHP skôr.

JavaScript je podľa mňa dobré vedieť a je to veľmi užitočný jazyk, ale mne príde hnusný. Mám rád keď má jazyk dobrú (a peknú, nie pomocou hackou) podporu OOP (minimálne takú ako PHP, v Pythone mi už chýbali nejaké veci) ale v JavaScripte sa to akosi nepodarilo.

 
Nahoru Odpovědět
14.9.2016 22:08
Avatar
hanpari
Člen
Avatar
Odpovídá na mayo505
hanpari:14.9.2016 22:22

Nedá mi to, ale musím se zeptat. Co přesně ti v Pythonu chybělo?

 
Nahoru Odpovědět
14.9.2016 22:22
Avatar
mayo505
Tvůrce
Avatar
Odpovídá na hanpari
mayo505:15.9.2016 10:46

privátne veci, rozhrania, abstraktné veci z toho čo ma tak napadá

viem, že pre dosiahnutie privátnej veci sa dá dať dve podtržítka ale je to škaredé a donedávna som dúfal, že už aj prekonané. Potom viem, že obľúbený argument na toto je niečo v zmysle "We're all adults here", ale je fajn môcť dať niečo privátne už len preto aby sa mi to v IDE z vonka nezobrazovalo (hlavne pre metódy)

Rozhrania sa tiež dajú poriešiť nejakou rodičovskou triedou a pri slabo typovaných jazykoch možno trochu strácajú na výhodách, ale keď som mal nejakú logiku, ktorú som chcel rôzne implementovať rôznymi triedami celkom by sa mi hodilo mať to poistené rozhraním

Implementovanie abstraktných metód pomocou vyhadzovania NotImplemented výnimok je tiež len obchádzka, potom viem, že je nejaké abc, ale tiež to nie je až také pekné

Čiže viem, že tie veci idú spraviť, ale v Jave, PHP, C# mi to príde krajšie a jednoduchšie. Na druhú stranu je ale veľa vecí, ktoré sú v Pythone lepšie čitateľné oproti spomenutým jazykom, ale mal som pocit, že sa to netýkalo ničoho spojeného s OOP

 
Nahoru Odpovědět
15.9.2016 10:46
Avatar
hanpari
Člen
Avatar
hanpari:15.9.2016 16:32

Technicky máš úplnou pravdu, pak mne napadlo, že bys mohl myslet tohle.

Trochu mi to připomíná ten starý vtip, že když člověk chce, může psát Javu v libovolném jazyce. To ale ještě neznamená, že by měl :)

Z dlouhodobého hlediska bych řekl, že je lepší se přizpůsobit Pythonu, a tím nemyslím zrovna OOP část, které je lepší se vyhnout, pokud máš na výběr.

Java a C# tohle neřeší, protože jsou hlavně OOP. Python vychází z řady jiných základů.
Ostatně, se můžeš podívat na tohle profláklé video:

https://www.youtube.com/watch?…

Dokonce i v nejnovější knize o javascriptu jsem našel větu, že OOP je překonané, a to je kriplscript jazyk, který se čím dál víc snaží předstírat, že je OOP.

Ale to je v zásadě jedno. Javascript a Php jsou špatné, ale používané programovací jazyky. Učit se je ad hoc vytváří špatné návyky a zmatené porozumění základům.

Ostatně tady je seznam jazyků, kterým by se člověk měl při učení vyhnout:
https://whydoesitsuck.com/…g-languages/

Myslím tam chybí jenom VB.NET

PS: Samozřejmě, že v nich můžeš psát a živit se jimi tak jako tak.

 
Nahoru Odpovědět
15.9.2016 16:32
Avatar
Odpovídá na hanpari
Patrik Valkovič:15.9.2016 16:50

Prosimtě co to tu meleš? Jak špatné jazyky a špatné návyky? Je na zodpovědnosti programátorů, jak program napíše. To že něco jde, přece neznamená, že se to má v tomhle případě použít!
Potom navrhovat Scalu, Haskell, Clojure někomu, kdo se učí programovat? Proboha proč? Jaké bude mít využití? Bude mu to k ničemu a až bude chtít dělat něco reálného, tak se úplně zbytečně bude prát s OOP.
Příjdeš mi jako takový ten člověk, co "objevil" funkcionální programování a teď je podle něj funkcionální programování nejlepší. Funkcionální jazyky tu byly přes OOP a z určitého důvodu se od nich opustilo. Funkce jsou dobré jen k tomu, k čemu jsou určeny: transformace dat. Ale ty data musí být v něčem uloženy, což si asi neuvědomuješ. Potřebuješ (hlavně v podnikové sféře) mít zaručenu jistou složitost hledání, vkládání atd. Jak to chceš řešit ve funkcionálním jazyce?

Nahoru Odpovědět
15.9.2016 16:50
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Pjanus
Člen
Avatar
Odpovídá na Patrik Valkovič
Pjanus:15.9.2016 17:06

No od funkcionálního programování se opustilo vpodstatě jenom proto že mnohonásobná rekurze byla v dřívějších dobách velmi problematická s tak omezenou pamětí s jakou museli pracovat. A nevidím žádný důvod proč se neučit funkcionální jazyk jako první, neexistuje věc která by šla napsat v OOP jazyku a nešla napsat ve funkcionálním. Ve většině případů s hezčím kratším kódem.

 
Nahoru Odpovědět
15.9.2016 17:06
Avatar
Odpovídá na Pjanus
Patrik Valkovič:15.9.2016 17:16

Vše napíšeš i na Turingovem stroji, přesto zůstal pouze v teoretickém poli ;-)
Tak co nejde ve funkcionálním jazyce? Co třeba generátor náhodných čísel? Jak tohle vyřešíš, když funkce musí pro stejné vstupy vracet stejné výstupy?
EDIT: a pod pojmem "hezčí kratší kód" si nepředstavuji zrovna hromadu závorek, na které nefunguje ani IntelliSense.

Editováno 15.9.2016 17:17
Nahoru Odpovědět
15.9.2016 17:16
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Pjanus
Člen
Avatar
Odpovídá na Patrik Valkovič
Pjanus:15.9.2016 17:43

Uznávám že IDE co se týče funkcionálních jazyků mírně zaostávají (zvláště na Windows). A uznávám že to je minimálně z části validní argument, proč s takovým jazykem nezačínat. Ale co se týče první otázky samozřejmě že to lze vyřešit dokonce několika způsoby, ale nejjednodušší je pomocí tzv. monádu, díky tomuto konceptu je možné ve funkcionálním jazyce dělat i věci které do jisté míry používají stavy bez jejich negativních efektů. A pod pojmem hezčí kód mám na mysli kód, který je na první pohled jednoduší na pochopení. Upřímně jediný argument proti učení funkcionálních jazyků začátečníky bych viděl menší materiálová základna pro učení.

 
Nahoru Odpovědět
15.9.2016 17:43
Avatar
Odpovídá na Pjanus
Patrik Valkovič:15.9.2016 18:04

Protože je funkce samostatna jednotka a ještě k tomu na prvním místě, potom ani není prostředek, jak napovídat, a skutečně si v hlavě držet všechny vestavěné a ještě vlastni funkce není možné.
Co se týče negativních efektů stavů, funkcionální jazyky to řeší immutable - šíleně to žere výkon. Jinak zrovna co se týče "efektivních" implementaci immutable, stejně je pod tím nějaký objekt, jem je to v jazyce skryto.
S tím, že je funkcionalni kód lepší na pochopení nesouhlasím. Upřímně jsem nedávno začal s Clojurem a pořád jsem ještě nepřišel na to, jak kód formátovat tak, aby to bylo nějakým způsobem čitelné.
Ja nedoporučuji funkcionální jazyky, protože to člověk nevyužije. Navíc se potom základy těžko přeučují.

Nahoru Odpovědět
15.9.2016 18:04
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Pjanus
Člen
Avatar
Odpovídá na Patrik Valkovič
Pjanus:15.9.2016 18:22

Upřímně nevím jak to řeší Clojure ale já programuji v Haskellu kde mi IDE napovídá funkce. Celkově ti podle mě uniká pointa funkcionálních jazyků, nikdo netvrdí že potom co se přeloží se nepřeloží do imperativního jazyka, ale o to nejde. Hlavním cílem funkcionálního jazyka je co největší možnost abstrakce, snažit se co nejvíc odpoutat od konkrétní implementace jednotlivých funkcí a jejich optimalizace k samotnému stavění programu. Jinak máš určitě pravdu že hlavní je poptávka po OOP jazycích (což se taky pomalu mění) tudíž pokud někomu jde pouze o to si vydělat teď tak je OOP jasná volba. Ale funkcionální programování je stále na vzestupu a začínají si to uvědomovat i hlavní hráči světa IT (Facebook, Microsoft,...), podle mě je funkcionální programování budoucností programování samotného. Ale trochu jsme tím odbočili od tématu samotného hlavním důvodem mé první reakce byla ta poznámka "a z určitého důvodu se od nich opustilo" protože ta je dle mého názoru naprosto zcestná. Pokud chceš dále pokračovat v diskuzi (čemuž sem otevřen) doporučuji založit nové vlákno abychom neplnili toto příspěvky, které odbíhají od tématu.

 
Nahoru Odpovědět
15.9.2016 18:22
Avatar
hanpari
Člen
Avatar
Odpovídá na Patrik Valkovič
hanpari:15.9.2016 18:36
  • Prosimtě co to tu meleš? Jak špatné jazyky a špatné návyky?

Nebudu se opakovat. Pokud nevíš, o čem je řeč, doporučuji samostudium. Stačí do strejdy Googlea zadat mírně pejorativní "Why php (javascript) sucks" a najdeš řadu odkazů, a to od profesionálních programátorů. Základ Javascript a Php je slátanina. První vznikl za deset dnů, druhý zase jako soubor skriptů pro domácí stránky.

  • Je na zodpovědnosti programátorů, jak program napíše. To že něco jde, přece neznamená, že se to má v tomhle případě použít!

Opravdu? Hm, vzhledem k tomu, že jsem se nedávno díval na Javascript, rozhodně to je odvážné být v něm za cokoliv zodpovědný. To je prostě minové pole.

  • Potom navrhovat Scalu, Haskell, Clojure někomu, kdo se učí programovat?

A proč někomu navrhovat Php nebo Javascript? Ze sadismu?

- Proboha proč? Jaké bude mít využití? Bude mu to k ničemu a až bude chtít dělat něco reálného, tak se úplně zbytečně bude prát s OOP.

Kdežto PHP implementace ho vytrhne, nebo Javascript, který je prototypový a OOP pracně předstírá? Python, Scala, Fsharp, Ruby mají OOP na slušné úrovni. Uznal bych ti leda Haskell, popřípadě Clojure.

  • Příjdeš mi jako takový ten člověk, co "objevil" funkcionální programování a teď je podle něj funkcionální programování nejlepší.*

Omyl. FP je prostě všude - a pokud se snažím otvírat oči mladým a nevinným, měli by mi za to jen poděkovat. Hledět v roku 2016 na IT stránky, které propagují OOP a PHP mi přijde neuvěřitelné. Možná by ses měl na chvíli vrhnout na anglický internet, pobrat tam nějaké informace a potom mi, hm, poděkovat?

  • Funkcionální jazyky tu byly přes OOP a z určitého důvodu se od nich opustilo.*

Bože můj, Microsoft zrušil LINQ? Java 8 je mrtvá? SQL se už nepoužívá? Kdy se to hergot stalo? A PHP nepřidalo zmrvené closures a anonymní funkce?

  • Funkce jsou dobré jen k tomu, k čemu jsou určeny: transformace dat. Ale ty data musí být v něčem uloženy, což si asi neuvědomuješ.*

Není to spíš tak, že ty si neuvědomuješ, že data a funkce můžou zůstat oddělené? Vyhneš se tak řadě problémů a zjednodušíš si život.

  • Potřebuješ (hlavně v podnikové sféře) mít zaručenu jistou složitost hledání, vkládání atd. Jak to chceš řešit ve funkcionálním jazyce?**

Nechápu, v čem je podle tebe problém? V podnikové sféře potřebuješ přesně to, co ti nabízí FP jazyk. Bezpečný, stručný, srozumitelný. Tu pasáž o hledání a vkládání nechápu. Pokud máš tím druhým na mysli tzv. immutability, nuže, můžeš si počíst tady:

http://funkcionalne.cz/…e-struktury/

Soudě podle toho, na co se zatím ptáš, nevím, do jaké míry to pojmeš, ale za pokus nic nedáš.

 
Nahoru Odpovědět
15.9.2016 18:36
Avatar
hanpari
Člen
Avatar
Odpovídá na Patrik Valkovič
hanpari:15.9.2016 18:48

A když už jsem se tak hezky rozepsal, musím tě ještě pochválit za ten hezký příklad s náhodnými čísly. To jsi mi tedy vyrazil meč z ruky. Musím uznat, že nevím o žádném funkcionálním jazyku, který by to dokázal.

Bohužel pro tebe neznám žádný programovací jazyk, který by to dokázal tak, jak si to zřejmě představuješ.

Najde se někdo, kdo mu vysvětlí jeho omyl? Nebo na to přijde sám? Toť otázka za padesát bodů.

Napovím, proč random funkce vrací pseudonáhodná čísla? Jakpak vznikají? Vynoří se z elektronického nekonečna?

Umím si představit, že by tak mohli fungovat kvantové počítače.

 
Nahoru Odpovědět
15.9.2016 18:48
Avatar
Odpovídá na hanpari
Patrik Valkovič:15.9.2016 18:53

No z tvé reakce usuzuju, že vůbec nemáš představu, o čem tady mluvím. Nevadí, třeba časem. Nicméně jak bylo řešeno, už odbíháme od tématu, takže to uzavírám.

Nahoru Odpovědět
15.9.2016 18:53
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
hanpari
Člen
Avatar
Odpovídá na Patrik Valkovič
hanpari:15.9.2016 19:06

No dobrá, božíčku, tak si tady alespoň nastuduj tu random funkci, ať můžeš v klidu trápit svědomí :)

A pseudorandom variable is a variable which is created by a deterministic procedure (often a computer program or subroutine) which (generally) takes random bits as input. The pseudorandom string will typically be longer than the original random string, but less random (less entropic, in the information theory sense). This can be useful for randomized algorithms.

Všimni si prosím těch náhodných bitů. To že nevíš, odkud si je ta tvá funkce bere neznamené, že tam nejsou. Už ti to docvaklo?

Editováno 15.9.2016 19:06
 
Nahoru Odpovědět
15.9.2016 19:06
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
Martin Dráb:15.9.2016 20:21

Vše napíšeš i na Turingovem stroji, přesto zůstal pouze v teoretickém poli ;-)

Jelikož má výhody (pro některou teorii), které jaksi běžné programovací jazyky nemají: je jednoduchý. Navíc se nám jej zatím ani nepodařilo vyrobit. Pro některé teoretické oblasti se zase hodí jeho "funkcionální obdoba" – částečně rekurzivní funkce (proti nim je programování na TS podle mě úplná hračka).

Co jsem mohl vidět a posoudit, tak funkcionální jazyky (mám zkušenosti trochu s Haskellem) prostě leží na daleko vyšší úrovni než ty "běžně používané", což má výhodu v tom, že neřešíš implementační detaily. Ztráty výkonu bych se zas tolik nebál, protože existuje spousta oblastí, kde není potřeba. Navíc, v jakém nefunkcionálním jazyku napíšeš quicksort na jeden řádek jen téměř doslovným překladem hlavní myšlenky algoritmu?

Co jsem měl možnost pozorovat spolužáky na MFF, tak někteří (včetně mě) měli s funkcionálem velké problémy; prostě v tom nedokázali elegantně myslet. Ale byly i opačné případy – někdo zase v OOP a podobném moc nevynikal (i samotná syntaxe byla celkem problém), ale pro funkcionál jako by se narodil (ona tam ta sytaxe moc neexistuje).

Byl by to zajímavý experiment, začít se učit jako první nějaký funkcionální jazyk. Rozhodně by to mělo blíže k teorii algoritmů.

Náhodný generátor bych neřešil. I v tom funcionálu prostě musíš nějak umět komunikovat s vnějším světem, který obsahuje i pseudonáhodný generátor.

Nahoru Odpovědět
15.9.2016 20:21
2 + 2 = 5 for extremely large values of 2
Avatar
Filmun
Člen
Avatar
Filmun:27.9.2016 11:49

<strong>a</strong>

 
Nahoru Odpovědět
27.9.2016 11:49
Avatar
Martin Svatý:28.5.2017 0:38

Ahoj, spousta přátel mě nabádá, že PHP padne a bude třeba hledat efektivitu a funkčnost :) Prý Mongo.db a node.js... Nevadí mi startovat od základu, rád si připlatím kurzy ale samostudium a praktika, jako tomu bylo u OOP RS a viz. http://martysweb.maweb.eu rad bych podobne prosel i tyto jazyky... Nebo je aktualnejsi? Diky za reakce, vazeni ;)

Nahoru Odpovědět
28.5.2017 0:38
Vždy je lepší zeptat se 10x, než to 10x udělat blbě :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 31 zpráv z 31.