Java nebo .NET pro budoucí freelancing?

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #15 kdy: 16. 07. 2015, 07:58:26 »
Asi mne tady všichni vynesou v zubech :), ale pokud máš širší ambice, neuvažuješ jen o ČR/SR a přemýšlíš o výhledu 5+ let, tak tam určitě zahrň i Javascript, samozřejmě včetně kompletního zvládnutí rozšíření ES6/ES7 (popř. Typescript), node.js, buildovacího prostředí a základního ekosystému. Po takovýchto lidech bude v dohledné době pořád poptávka.
To je sice pravda, ale zároveň je to asi to nejhorší programování, co si člověk může vymyslet, a obor s největší koncentrací podprůměrných programátorů. Už jenom ten zmatek kolem buildování a balíčků - NPM, Grunt, Gulp, Brunch, Bower... Sotva se člověk jeden naučí a přepíše projekt do něj, už je cool nějaký jiný a všichni na něj přechází...

Doporučuju si stáhnout libovolný frontendový projekt a udělat "find node_modules -iname \*.js -exec cat '{}' \; | wc -l" - i pro jednoduché projekty je to v řádu statisíců. Jako jestli do tohodle brajglu chce někdo dobrovolně nastoupit, tak má mou upřímnou soustrast...


Kolemjdoucí

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #16 kdy: 16. 07. 2015, 08:54:56 »
Jako jestli do tohodle brajglu chce někdo dobrovolně nastoupit, tak má mou upřímnou soustrast...

Ono se stačí podívat na jeden zdroják, většina známých programátorských prohřešků, špatných postupů a chyb pohromadě v jednom souboru, to už se dneska jen tak nevidí, je to jako v nějakém Muzeu :)

pepa

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #17 kdy: 16. 07. 2015, 08:55:27 »
Jednoznačně Java. C# i přes mono budu mít vždycky spojený s jazykem pro Windows programování a to že se C# snaží být moderní.... jako ono je asi lepší, když jazyk nemá 20 miliónů různých konstruktů, viz. C++. Java je dobrá a určitě nechcípně, což se o M$ jazycích říct nedá, Visual Basic by mohl vyprávět.

No to ani c# zvláště po té co byl .Net uvolněn jako open source a kdy se díky tomu mono neustále zrychluje. Navíc wisual studio je opravdu asi ten nejlepší nástroj na vývoj jaký kdy byl. A to MS moc v lásce nemám a 80% času strávím v linuxu.
Ale když se má udělat nejaká věc pro windows tak aby to fungovalo a mělo to smysl tak c#.net je jasná volba zvlášte s gui.

jinak já osobně programuji v čem je zrovna potřeba, podle mě neexistuje univerzální jazyk vždy je lepší na konkrétní úkol použít konkrétní jazyk každý má své plusi a mínusy.







 

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #18 kdy: 16. 07. 2015, 12:06:10 »
Za mě java. Ohromný ekosystém a variabilita, která toho hodně pokryje (hardware, operační systémy i typy úloh), přitom jazyk je poměrně jednoduchý a konzervativní. Výhodou je možnost vývoje pro Android. Není pravda, že by se java nevyvíjela. Java 8 má několik hezkých novinek a například pro vývoj webu existuje řada progresivních frameworků, takže ani knihovny neustrnuly. Slušná úroveň programátorské „kultury“ - dokumentace, abstrakce a modulárnost. A pokud přestane jazyk vyhovovat, lze přejít k libovolnému jazyku postaveném nad jvm (scala atd.) a získat tím přístup k „nejmodernějším trendům“. Přitom zkušenosti s javou se budou i po přesedlání hodit. Uvozovky jsem použil proto, že ty trendy většinou jen oživují myšlenky, které tu už dávno byly.

C# s .NET jsou dobré, s kratší historií a tudíž od přirozenosti modernější, ale současně s omezenějším ekosystémem. A je potřeba počítat s větším vendor lock-in. Pokud by bylo MONO kompletní, bylo by to super, ale to bohužel není. Osobně by mě zajímalo, zda a kde je použito v reálném nasazení. Osobní zkušenost nemám žádnout.

Jinak budoucnost leží jednoznačně v propojování technologií. Pokud se budete živit programováním, velmi pravděpodobně budete muset zvládnout alespoň na základní úrovni více jazyků a pochopit celou řadu technologií. Odměnou je svoboda - přestanete přemýšlet, jaký jazyk se učit a naopak budete přemýšlet jak jednotlivé díly skládačky propojit, aby to dávalo jako celek smysl a pokrylo co nejlépe potřeby daného projektu.

kolemjdoucí

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #19 kdy: 16. 07. 2015, 13:14:00 »
Asi mne tady všichni vynesou v zubech :), ale pokud máš širší ambice, neuvažuješ jen o ČR/SR a přemýšlíš o výhledu 5+ let, tak tam určitě zahrň i Javascript, samozřejmě včetně kompletního zvládnutí rozšíření ES6/ES7 (popř. Typescript), node.js, buildovacího prostředí a základního ekosystému. Po takovýchto lidech bude v dohledné době pořád poptávka.
To je sice pravda, ale zároveň je to asi to nejhorší programování, co si člověk může vymyslet, a obor s největší koncentrací podprůměrných programátorů. Už jenom ten zmatek kolem buildování a balíčků - NPM, Grunt, Gulp, Brunch, Bower... Sotva se člověk jeden naučí a přepíše projekt do něj, už je cool nějaký jiný a všichni na něj přechází...

Doporučuju si stáhnout libovolný frontendový projekt a udělat "find node_modules -iname \*.js -exec cat '{}' \; | wc -l" - i pro jednoduché projekty je to v řádu statisíců. Jako jestli do tohodle brajglu chce někdo dobrovolně nastoupit, tak má mou upřímnou soustrast...

Ono je to vždy o úhlu pohledu... učit se od zoufalců samozřejmě nemá cenu, v JS existuje obrovské množství top open source projektů, učit se dá tam, lze si vybrat z několika style guidů, existují návrhové vzory, jinak ta filozofie JS je v otevřenosti a volnosti podobně jako v Javě, a nemám na mysli jen frontend. Je potřeba si umět vybrat a pak za to nést odpovědnost.

Pro mne osobně je .NET mrtvý už jen svou vazbou na jedinou (reálně) a z mého pohledu ne moc zrovna šťastnou platformu.

A ještě jsem v původním příspěvku zapomněl dodat, že pokud směřuješ k systémovým věcem, tak určitě nevynechat go. Je neuvěřitelné kolik top systémových věcí v tom za poslední dobu vzniklo.


Radek Miček

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #20 kdy: 16. 07. 2015, 13:22:46 »
Slušná úroveň programátorské „kultury“ - dokumentace, abstrakce a modulárnost.

Dokumentace ano. Bohužel s abstrakcí je to slabší a s modularitou naprosto zoufalé (to platí i pro .NET). Charakterizoval bych to spíše jako antimodulární - především kvůli tomu, že podtypový polymorfismus je nominální a nikoliv strukturální.

Citace
zvládnout alespoň na základní úrovni více jazyků a pochopit celou řadu technologií.

Podle toho pak vypadají výsledné programy.

Citace
Odměnou je svoboda - přestanete přemýšlet, jaký jazyk se učit a naopak budete přemýšlet jak jednotlivé díly skládačky propojit, aby to dávalo jako celek smysl a pokrylo co nejlépe potřeby daného projektu.

To je iluze. Odměnou vám bude zvýšená míra rizika, že se něco přestane dále vyvíjet nebo se to bude vyvíjet tak, že to nebude kompatibilní s vaším programem, takže ho budete muset předělat.

iwtu

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #21 kdy: 16. 07. 2015, 16:20:59 »
A pokud se na to první zaměstnání teprve chcete připravovat, napište si něco v obou jazycích. Pro mne je u čerstvého absolventa důležité, zda má s programováním nějakou zkušenost a tedy ví, do čeho jde (nějaký semestrální projekt je minimum). A pak aby měl zkušenost s nějakým mainstreamovým procedurálně-objektovým jazykem (Java, C++, C#, Python, PHP, Object Pascal...), aby bylo jasné, že je kompatibilní s potřebným způsobem uvažování. Jestli pak umí Javu nebo C# je mi jedno, protože stejně ve skutečnosti neumí ani jedno :-) Umí v daném jazyce akorát kódovat, a to se snadno naučí i v jiném.

+1

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #22 kdy: 16. 07. 2015, 16:39:10 »
A ještě jsem v původním příspěvku zapomněl dodat, že pokud směřuješ k systémovým věcem, tak určitě nevynechat go. Je neuvěřitelné kolik top systémových věcí v tom za poslední dobu vzniklo.
Taky bych se za Go přimlouval, jeden z mála zajímavých jazyků, které v posledních deseti letech vznikly. Akorát pro freelancing to moc není - bude chvilku trvat, než v tom nějaké kšefty budou a je nemalá šance, že nikdy nebudou... (v ČR)

Dokumentace ano. Bohužel s abstrakcí je to slabší a s modularitou naprosto zoufalé (to platí i pro .NET). Charakterizoval bych to spíše jako antimodulární - především kvůli tomu, že podtypový polymorfismus je nominální a nikoliv strukturální.
No jo, jenže jaké jazyky strukturální podtypy mají? Vím jenom o Go a aspoň v jistým smyslu to jsou Elixir a Haskell. Čili pro freelancera nic moc výběr ;)

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #23 kdy: 16. 07. 2015, 22:07:18 »
Dokumentace ano. Bohužel s abstrakcí je to slabší a s modularitou naprosto zoufalé (to platí i pro .NET). Charakterizoval bych to spíše jako antimodulární - především kvůli tomu, že podtypový polymorfismus je nominální a nikoliv strukturální.

Ale pořád je to lepší než situace v PHP. A to je ten praktický pohled. V akademické debatě bychom asi došli dál, ale na to zas nemám dostatečné vzdělání :-)

To je iluze. Odměnou vám bude zvýšená míra rizika, že se něco přestane dále vyvíjet nebo se to bude vyvíjet tak, že to nebude kompatibilní s vaším programem, takže ho budete muset předělat.

Promítáte si tam něco, co jsem ani neřekl. Rozhled a znalost několika přístupů k věci je výhodou a často i nutností. To ještě neznamená, že budu používat nevhodné technologie, jen abych je vyzkoušel. Chcete proti tomu něco namítat?

mon

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #24 kdy: 17. 07. 2015, 08:47:39 »
zavisi aky freelancing, tak java ma vacsie uplatnenie v biznis svete, lebo je toho viac napisane v jave. c# je menej projektov pisanych a bohuzial je tam asi 20x menej pouzitelnych kniznic ako v jave napisanych.
v startupovom svete je to inak, tam trocha viac prevlada c# nad javou, alebo vo webovom svete je to zasa uplne ine..

ak sa chces naozaj uplatnit, uc sa obe naraz a uc najma principy enteprise a web kniznic/frameworkov. dostanes sa do stavu ze to mozes porovnavat a vyberat si spravny nastroj na dany problem.

ostatne jazyky sa pouzivaju, ale menej

p.s. javascript sa uc tiez, ale len ako podporny jazyk, lebo v stave ako je teraz je nepouzitelny ako hlavny pre vacsie aplikacie s vacsim poctom vyvojarov...



kolemjdoucí

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #25 kdy: 17. 07. 2015, 10:00:34 »
p.s. javascript sa uc tiez, ale len ako podporny jazyk, lebo v stave ako je teraz je nepouzitelny ako hlavny pre vacsie aplikacie s vacsim poctom vyvojarov...

citation needed?

To že se v Česku ve velké míře vyvíjí stejně jako před dvaceti lety, tzn. že se nažene 30 pseudo programátorů, kteří sotva prošli úvodním školením a spolu se nějak snaží něco splácat neznamená, že to je takto správně. Tyhle bludy lidí, kteří se kdysi o JS lehce otřeli, neříká jim nic ES6/ES7 a další moderní trendy, ale stále plácají to své...
V JS se běžně píší velké projekty s nimiž se může měřit jen málokterý z těch, které vznikají tady v Javě/.NET. Že ty Javovské mají třeba 3x více LOC není problém JS. Netvrdím, že JS/node je univerzální odpověď na vše, to určitě ne a hlavně ne v běžném korporátním prostředí, ale pokud někdo napíše to co ty, tak jen prozrazuje svou neznalost.

Tady je poměrně známá analýza od PayPalu.

lok

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #26 kdy: 17. 07. 2015, 10:22:32 »
V JS se běžně píší velké projekty s nimiž se může měřit jen málokterý z těch, které vznikají tady v Javě/.NET.

To jednoduše není pravda, patrně jsi se ještě v životě s větším projektem nesetkal. Průměrný vývojář JS při pouhém pohledu na libovolný větší projekt zažívá pocit jako když se dítě zvyklé na pískoviště dovede na stavbu činžáku.

Filip Jirsák nepřihlášený

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #27 kdy: 17. 07. 2015, 11:08:22 »
V JS se běžně píší velké projekty s nimiž se může měřit jen málokterý z těch, které vznikají tady v Javě/.NET.
Takže jsou to větší projekty než třeba bankovní systémy nebo systémy veřejné správy? Byl by nějaký příklad takových projektů v JavaScriptu? A ideálně i základní použité technologie, např. Node.JS nebo něco jiného.

F.

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #28 kdy: 17. 07. 2015, 11:10:06 »
No to ani c# zvláště po té co byl .Net uvolněn jako open source a kdy se díky tomu mono neustále zrychluje. Navíc wisual studio je opravdu asi ten nejlepší nástroj na vývoj jaký kdy byl.

Proto vsichni pouzivaji resharper? :-)

PsychoIT

Re:Java nebo .NET pro budoucí freelancing?
« Odpověď #29 kdy: 17. 07. 2015, 11:18:02 »
Javascript je naprosto odporný a hnusný jazyk, odfláknutý. Nikdy nebyl zamýšlen za účelem ke kterému byl stvořen. Jediný masově používaný jazyk který je ještě větší ekl je PHP, to je na tom podobně.

Co stojí za úspěchem Javascriptu je podpora na klientech včetně jablečných věciček a potom jednotlivé knihovny jako jQuery a nebo Node.JS a tucet dalších věcí. Javascript se veze, doslova parazituje, na masovém rozšíření webu. Žádný jiný klientský skript není prakticky podporovaný a do budoucna už se ani nepočítá s podporu pluginu.

Javascript je jazyk se super knihovnami, jako jazyk je ale na prd. Zkuste si v něm třeba spojovat skripty ve který je "use strict;" a není, každý jeden musíte obalit do funkce (a tady je i na vině HTTP že se to tak musí optimalizovat). A nebo globální proměnné, che che. A co teprve čísla, není oddělený typ pro celé a reálné čísla, tudíž to ani není plnohodnotný jazyk! Vše pěkné na tomto jazyce je prostě hack a nebýt V8 tak není ani Node.JS a vše by se dělalo tak jak má, tedy třeba v C++/Boost Asio a nebo v Javě.

Jediný horší jazyk je PHP, ten se v současné době veze na nízké ceně hostingů, VPS kde si třeba rozjedete Javu, RoR, Python je prostě přece jenom dražší! Ještě větší ekl než Javascript, a drží se jen díky frameworkům a existujícímu software. Tak nam nad humnusem jménem PHP běží celkem použitelný CakePHP a nebo ohýbatelný Drupal, nějaké ty eshopíky atd. Opět úspěch díky aplikacím, nikoliv kvůli kvalitně akademicky navrženém jazyku!