Witam,
Może ktoś mi wytłumaczyć dlaczego w sieci panuję taki hejt na Jave ? I dlaczego ludzie wypisują głupoty pt. "Java jest wolna", "Java jest niebezpieczna" ?
Z góry dzięki.
Ze względu na jej przeszłość. Pierwsze wersje nie pałały szybkością, a aplety osadzone w przeglądarkach nastraszyły ludzi.
Java nie ma typów unsigned :P
typowy flame jak: konsole/pecety, xbox/ps, android/ios, windows/linux
Każdy język ma zwolenników i krytyków (konstruktywnych), ale i krytykantów. Do każdego języka można się o coś przyczepić, a jeżeli jest popularny (Java, JS, C++ itd) to i hejt mocą statystyki będzie częstszy.
Sarrus napisał(a):
Java nie ma typów unsigned :P
Signed/unsigned to tylko kwestia interpretacji. Dla tych, którzy naprawdę potrzebują arytmetyki na unsigned, zapewniono odpowiednie statyczne metody, jak np. Integer.compareUnsigned(int x, int y)
Ja osobiscie nie lubie javy bo nie ma var
;p
Jak to mówią, są dwa typy językow: te, na które ludzie narzekają i te, których nikt nie używa :D
Ja nie lubię Javy bo jest trudna i ciężko spamiętać nazwy klas.
Jedno jest pewne, ten kto hejtuje Jave nigdy nie programował w RPG czy COBOL.
Ba, nie ma nawet bladego pojęcia co to oznacza.
Z drugiej strony prawdziwy programista by się tymi językami nie skalał ;-)
http://web.mit.edu/humor/Computers/real.programmers
http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html
Ze wszystkich produkcyjnych języków (takich które wykorzystuje się poza szkołą) Java jest całkiem niezła.
Na pewno lepsza niż C++ (chociaż nie ma tylu ficzerów - to jednocześnie wada i zaleta).
Ale świat idzie do przodu i być może niedługo Java zostanie wyparta z miejsc gdzie zarabia się kasę (banki, finanse, korporacje - np. przez Scalę).
C++ zostało kiedyś wyparte z wielu frontów przez Javę / C#, teraz Javę wypierają Scala, Groovy, JavaScript (część wizualna).
JavaScripta też próbują atakować z różnych frontów (CoffeScript, TypeScript, Kotlin, Dart), ale to na razie tylko próby.
Bo nie ma proprtiesów, przeciążania operatorów, partiali, argumentów domyślnych w metodach, typów prostych, wskaźników, dziedziczenia wielokrotnego, można wymieniać braki przez pół dnia.
Java to zabawka. Ekosystem javy to śmietnik, bez ładu i składu (tylko Android SDK + Android Studio są jako tako ogarnięte). Natomiast wszystkie pozostałe frameworki, biblioteki i biblioteczki gryzące się wzajemnie między sobą to syf kiła i mogiła.
java jest krytykowana bo 'jest wolniejsza od c++' a przeciez kazdy lubi szybkie programy ;)
edit: swoja droga to zwykle nie warto sluchac krytyki jezyka programowania od osob ktore nigdy w nim profesjonalnie nie pracowaly
Szczery Jacek napisał(a):
Bo nie ma proprtiesów,
wlasciwosci to lukier skladniowy na metody. czesto poprawia czytelnosc, czesciej powoduje problemy bo ktos 'sprytnie' pakuje tam logike
Szczery Jacek napisał(a):
przeciążania operatorów,
ile razy trzeba faktycznie przeciazyc operator? 2 razy przez cala kariere? :)
Szczery Jacek napisał(a):
partiali,
kolejna rzeczy wprowadzajaca balagan w kodzie i zachecajaca do wrzucania ui + logiki w jedna klase.
Szczery Jacek napisał(a):
argumentów domyślnych w metodach,
najlepszy sposob aby skomplikowac sobie zycie, zrobic kilka przeladowanych metod z roznymi zestawami parametrow domyslnych...
Szczery Jacek napisał(a):
typów prostych,
zakladam ze chodzi o 'struct' co ma znaczenie wylacznie w systemach o krytycznej wydajnosci... i nawet wtedy nie jest to problemem, juz bardziej bym marudzila o przymusowy boxing w generykach
Szczery Jacek napisał(a):
wskaźników,
straszna wada, po prostu nie da sie bez nich zyc
Szczery Jacek napisał(a):
dziedziczenia wielokrotnego,
w zyciu sie nie spotkalam z uzasadnionym uzyciem wielokrotnego dziedziczenia
Szczery Jacek napisał(a):
Java to zabawka.
pewnie dlatego jest uzywana do systemow przewalajacych miliony dolarow na sekunde. albo ratujacych zycie.
Szczery Jacek napisał(a):
Ekosystem javy to śmietnik, bez ładu i składu
oczywiscie ze jest pare wtf'ow w javie i jdk co nie zmienia faktu ze kiepsko o lepsza alternatywe dla wielu zastosowan
oczywiscie ze jest pare wtf'ow w javie i jdk co nie zmienia faktu ze kiepsko o lepsza alternatywe dla wielu zastosowan
Zaciekawiłaś mnie. Możesz podać przykład takiego zastosowania, gdzie .NET nie będzie równie dobry lub lepszy?
W C# też nie ma typów prostych, a przynajmniej specyfikacja języka takich nie definiuje.
aurel napisał(a):
Możesz podać przykład takiego zastosowania, gdzie .NET nie będzie równie dobry lub lepszy?
systemy serwerowe (linux) z wymaganiami low latency.
na codzien programuje w obu i wole .net ale bez popadania w fascynacje ;)
somekind napisał(a):
W C# też nie ma typów prostych, a przynajmniej specyfikacja języka takich nie definiuje.
No co pan nie powiesz: https://msdn.microsoft.com/en-us/library/aa711900(v=vs.71).aspx
Dlaczego duża część krytykuję Jave ?
krytykuje
Może ktoś mi wytłumaczyć dlaczego w sieci panuję
panuje
taki hejt na Jave
Javę
?
Bez spacji przed znakiem zapytania.
Z góry dzięki.
Proszsz.
Szczery Jacek napisał(a):
somekind napisał(a):
W C# też nie ma typów prostych, a przynajmniej specyfikacja języka takich nie definiuje.
No co pan nie powiesz: https://msdn.microsoft.com/en-us/library/aa711900(v=vs.71).aspx
A co ma specyfikacja Visual Basic .NET do C#?
Względy estetyczne, kod w C# jest ładniejszy.
QwertzOne napisał(a):
Względy estetyczne, kod w C# jest ładniejszy.
obyś trollował
C# jest super ale jest uruchamiany przez CLR i to jest jedyny mankament tej technologi.
Wielki Kot napisał(a):
C# jest super ale jest uruchamiany przez CLR i to jest jedyny mankament tej technologi.
Wielki Kot napisał(a):
C# jest super ale jest uruchamiany przez CLR i to jest jedyny mankament tej technologi.
mankament? wyjasnij co masz na mysli, bo troche smierdzisz trollem ;)
katelx napisał(a):
Wielki Kot napisał(a):
C# jest super ale jest uruchamiany przez CLR i to jest jedyny mankament tej technologi.
mankament? wyjasnij co masz na mysli, bo troche smierdzisz trollem ;)
Bo jest mit, że to co na maszynie jest wolne. Tylko C/C++ !
Jeszcze wracając do tematu dla mnie Java jest idealną platformą, bo nie jestem od niczego zależny i mam potężne wsparcie w community :)
makabratabra napisał(a):
Jeszcze wracając do tematu dla mnie Java jest idealną platformą, bo nie jestem od niczego zależny i mam potężne wsparcie w community :)
O jakiej niezależności Ty piszesz? Aplikacje w C++ są kompilowane w przypadku Windowsa np. do formatu Portable Executable (nie mówię o Visual Studio gdzie zdaje się i C++ jest kompilowane do kodu pośredniego pod .NET albo innych targetach) więc na tym systemie uruchamiają się jako programy które są przenośne i nie wymagają instalacji runtime, jak JRE czy też .NET w przypadku C#. A jak w JVM są jakieś błędy to chyba powinno to rzutować na aplikacje w kodzie pod tą platformę (przecież jar nie uruchamia się jako samodzielna aplikacja). Chociaż w przypadku javy to z tego co widziałem niektóre aplikacje są dystrybuowane i z runtime, więc nawet JRE nie trzeba instalować.
Na temat szybkości można by sobie też dyskutować, tylko zastanawiam się jakie dla usera ma znaczenie jeżeli coś się wykona w 1 a 2 ms, w takiej aplikacji desktopowej i ten nawet tego nie zauważy. Zostawmy tu może te szybkie gry wideo.
Zasadnicze założenie w przypadku javy jest takie, że aplikacje mają się uruchamiać na różnych systemach operacyjnych bez potrzeby kompilacji pod Windows/Linux/Mac jak to jest w C++ czy tam pascalu. No ale coś za coś. Musisz przecież zainstalować to runtime, które jest jednak rozwijane przez poteżną korporację więc chyba jesteś zależny od Oracle :-)
Oczywiście można sobie hejtować i pisać, że C++ jest szybszy, nie ważne że koszt aplikacji jest znacznie większy. Mówię o zastosowaniach kiedy to bez problemu JAVA się nada albo .NET.
Witam,
Może ktoś mi wytłumaczyć dlaczego w sieci panuję taki hejt na Jave ?
Wynika to prawdopodobnie z tego, że Java ma mniej zwięzłą składnię niż inne języki, co sprawia, że programiści Javy są mniej produktywni i bardziej sfrustrowani ilością WTF w kodzie.
Mały Kot napisał(a):
Wynika to prawdopodobnie z tego, że Java ma mniej zwięzłą składnię niż inne języki, co sprawia, że programiści Javy są mniej produktywni i bardziej sfrustrowani ilością WTF w kodzie.
proponuje wziac sie za kodowanie w jezykach takich jak k albo q, pewnie 100x bardziej zwiezle od javy :) 100 krotny wzrost produktywnosci gwarantowany (zakladajac ze jest odwrotnie proporcjonalny do LoC)
obawiam ze ze ilosc wtf w kodzie jednak nie zmaleje...
frustracja zalezy od konstrukcji psychicznej programisty. np. dla mnie duzo bardziej frustrujace sa one-linery, bledy zwiazane ze wskaznikami, brak dobrych narzedzi, brak wsparcia dla platformy na ktorej pisze, powolnosc developmentu, powolnosc w runtime... te wszystkie cechy jednak zwykle javy nie dotycza.
Co masz do one-linerów? Przecież to jest piękne...
>>> n = 50
>>> print sorted(set(range(2,n+1)).difference(set((p * f) for p in range(2,int(n**0.5) + 2) for f in range(2,(n/p)+1))))
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
albo:
>>> print reduce(lambda(a,b),c: (a+[c],b) if c > 60 else (a,b + [c]), [49, 58, 76, 82, 88, 90],([],[]))
([76, 82, 88, 90], [49, 58])
Mały Kot napisał(a):
Co masz do one-linerów? Przecież to jest piękne...
mylisz kod produkcyjny, uzywany do prawdziwych aplikacji utrzymywanych przez wielu programistow latami, ze smieciami wpisywanymi w interaktywna konsole na swoj wlasny uzytek i zapomnienie zaraz po uruchomieniu