Leciwe cechy Javy [Dyskusja]

Leciwe cechy Javy [Dyskusja]
0

Czy to zagmatwane programowanie obiektowe w Javie jest naprawdę lepsze od tego z Pythona, Ruby czy Go? Serio? Co w nim takiego łatwego i fajnego?

Zobacz pozostały 1 komentarz
Maciej Cąderek
Maciej Cąderek
Co z nim? Polecam ciekawy artykuł: https://labs.ig.com/static-typing-promise Dwa języki w których na pewno nie chciałbym pracowac na samym końcu (trzeci wykres).
KA
statyczne typowanie > dynamiczne typowanie
jarekr000000
@Maciej Cąderek ciekawy wykres - ale nie wiem na ile można wyciągąć rozsądne wnioski. Współpracowałem ( raczej na zasadzie zabawy i żeby poznać języki) z zespołem w Clojure i w Erlang i to byli po prostu starzy wyjadacze. I chyba ta próbka jest pod tym względem zafałszowana - sądze, że projekty w tych jezykach przyciągają raczej seniorów. A takim to nawet JavaScript nie przeszkodzi :-) (ale fakt, że oba języki godne uwagi).
jarekr000000
@Maciej Cąderek Ciekawe, że HASKELL słabo wypada - w środku stawki. A to mocno okrzepły język, raczej nie wybierany przez juniorów (?). A ja nadal nie doszedłem do poziomu, w którym potrafiłbym popełnić w Haskellu błąd (cześciej bywa, że nie potrafię czegoś napisać) (pisalem tylko drobne zabawowe projekt, amatorsko, dlatego pewnie nie rozumiem problemu). Tak czy siak ten jeden punkt daje mi to myślenia....
Maciej Cąderek
Maciej Cąderek
@jarekr000000 No ja myśle, że cos może być w prostocie tych języków, jak wskazuje autor artykułu. Uczę się Clojure i jestem zachwycony prostota i spójnością. Kupę dobrych rzeczy przenoszę z niego do JSa, w którym póki co klepię.
katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
0
Złoty Orzeł napisał(a):

Czy to zagmatwane programowanie obiektowe w Javie jest naprawdę lepsze od tego z Pythona, Ruby czy Go? Serio? Co w nim takiego łatwego i fajnego?
oczywiscie ze tak, chocby ze wzgledu na dobre narzedzia (co wynika z silnego, statycznego typowania i oczywiscie popularnosci). w takim srodowisku duzo latwiej zachowac dyscypline a jesli jej nie ma to zrefaktorowac. fajnego to niekoniecznie, no ale co kto lubi, ja preferuje ten mniej zagmatwany kod, niezaleznie od jezyka ;)

0

Nie powiedział bym że Java jest prostsza i przyjemniejsza, a na pewno mniej zagmatwana obiektowo od Pythona, Ruby czy Javascript. Masz tu odpowiedzi fachowców z branży którzy określają prostotę nauki wyboru języka programowania i Java jest zawsze na końcu w skali trudności nauki zaraz przed C++. Radzą zaczynać wejściem w programowanie od Pythona lub PHP. Pan M. Zelent poleca dopiero na samym końcu zabrać się za trudne rozbudowane kobyły korporacyjne typu Java czy C#.

edytowany 1x, ostatnio: Shalom
vpiotr
Java jest banalna w porównaniu do innych języków. PHP jest bardziej złożony - jeśli chcesz być w nim dobrym programistą - zawiera wiele nieścisłości, luk i nieoczywistości, a API języka to jakaś zbieranina. Obiektowosc w JavaScript trzeba sobie wyobrazic.
Maciej Cąderek
Maciej Cąderek
Ty Zelenta sobie daruj, bo to pośmiewisko na tym forum, nie autorytet.
Maciej Cąderek
Maciej Cąderek
Co do JavaScriptu - tu jest taki problem, że sposobów na pisanie obiektowego kodu (nawet samo tworzenie obiektów) jest kilka, choć nie powiem - jak sie wybierze odpowiedni subset to jest mega wygodnie.
Shakaz
Poważnie reagujecie na tego trolla? :D
NG
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 7 lat
  • Postów:278
0

lubię Javę i zawsze ją lubiłem (dobre wspomnienia ze studiów), niestety w niej nie pracuję

takie pytanie:

jak to jest z kompatybilnością wsteczną javy?

jeżeli kod był pisany w Java 6, a nagle przyjdzie uruchomić w Java 8 to będą problemy?

na ile % jest kompatybilna wstecznie (50%? 100%?)

edytowany 2x, ostatnio: aurel
azalut
w teorii to chyba powinno bez problemu, w praktyce gorzej.. problem sie pojawia jak np serwis aplikacyjny obsługuje jave 6, wtedy problem jest przejsc do 8semki (chyba ze mnie skłamali)
Black007
Nie zauważyłem żeby były jakieś problemy. Teoretycznie nawet z 1.3 na 1.8 dałoby rade :).
0

na ile % jest kompatybilna wstecznie (50%? 100%?)

Tego to chyba twórcy Javy nie wiedzą ;) Odpalałem starsze (bardzo prostackie aplikacje w nowym JRE i nie było problemów). Wydaję mi się, że jak coś nie jest "deprecatated" to kod powinien ruszyć w nowym środowisku.

Java jest fajna i przyjemna, ale wszelkie biblioteki niezależnie czy idziesz w web czy w mobile to jakieś monstrualne kobyły. Szczególnie Java EE, czy nawet "lżejszy" Spring. Liczba modułów, bibliotek, zależności - myślę, że to wszystko przytłacza początkujących. Ktoś tu pisał, że Java jest jednym z trudniejszych języków. Sam język może nie, ale ten cały "eko system" to już wymaga wielu lat poznawania. Spotykam się z opinią, że w Javie jest dużo "czarów i magii" - w sensie, że dużo rzeczy odbywa się w niezrozumiały sposób (to opinia nie moja, a zasłyszana).

azalut
co do magii to prawda, szczegolnie w springu. ale czy to jest na wiekszym poziomie niz w RoR to nie wiem, bo w nim nie pisałem :P mysle ze podobnie albo już bardziej (dodajmy do tego jeszcze JHipstera i w ogole po temacie)
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1
NieGooglujMnie napisał(a):

lubię Javę i zawsze ją lubiłem (dobre wspomnienia ze studiów), niestety w niej nie pracuję

takie pytanie:

jak to jest z kompatybilnością wsteczną javy?

jeżeli kod był pisany w Java 6, a nagle przyjdzie uruchomić w Java 8 to będą problemy?

na ile % jest kompatybilna wstecznie (50%? 100%?)

Mogę odpowiedzeć na to pytanie - bo robię to dość masowo....

Generalnie z wsteczną kompatybilnością kodu "aplikacji" jest mało problemów. Najwięcej problemów było przy przechodzeniu z java 1.4 do 5.0.
Normalnie pomaga przekompilowanie kodu (w sumie to nawet nieczęsto trzeba) i zwykle jest dobrze. Nawet powiem, że jest zaskakujaco dobrze! i nawet deprecated to tylko straszak - do tej pory mało rzeczy wypadło naprawę - mimo gróźb.
(szczerze, to nawet nie pamiętam nawet jednego ficzera co by wypadł z JDK... ale pamięć nie jest moją mocną stroną)

Problem bywa chwilowy z wszelkimi frameworkami, aplication serwerami które dorzucają magię (JavaEE, Spring, OSGi) typu analiza i manipulacja bajtkodu. Z narzędziami do monitoringu itp. Tu zwykle twórcy frameworku muszą się dostosować i czasem trzeba chwilkę poczekać na jakąś wersję serwera. Ale potem jest OK! (Od dawna wszystkie (prawie) główne serwery i frameworki są przystosowane do Javy 8.)

Java 9 ma szansę wprowadzić więcej problemów (zwłaszcza frameworkom i serwerom) - ale zobaczymy.

(Niestety z powodu jednego durnego serwera EE - do jasnej ! mam całą grupę projektów, które mi teraz tkwią na Java 6 !!! (ok, jest więcej przyczyn, m.in security)).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
0

To zapytam znawców tematu, jaki teraz nowoczesny framework na topie poza Swing jest do Javy 8? Play a może kierunek na JavaFX?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
0
Szklany Pomidor napisał(a):

To zapytam znawców tematu, jaki teraz nowoczesny framework na topie poza Swing jest do Javy 8? Play a może kierunek na JavaFX?

Nie piszesz dokładnie do czego framwework -Swing i JavaFX do dekstopu (JavaFX jakąś tam niszę ma).
Play to Web, w webie się więcej dzieje - ale na pewno Play nie jest bardzo popularny w Javie.

A co do web:

Modne nadal jest nie pisanie weba w Javie. (Może na wiosenną kolekcje będzie coś nowego, ale niewiele na to wskazuje). Server Java serwuje JSON + Sockety. A całość klienta JavaScriptem (TypeScriptem) z jakimś frontendowym frameworkiem - (jest ich tylko z 1500 więc łatwo wybrać). Brzmi może durnie, ale jest naprawdę całkiem wygodne. Serio.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 4x, ostatnio: jarekr000000
Shalom
Sockety - mam nadzieje że chodzi o websockety ;)
jarekr000000
@Shalom - tak, tak - z weba nie przyszło by mi nic innego do głowy. Btw: nie pamiętam kiedy ostatnio gołego socketa (java.net) w Javie oprogramowywałem (ale możliwe, że to było już w XXI wieku).
R3
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 2 lata
  • Postów:320
0

To chyba wlasnie kompatybilnosc wsteczna wlasnie zabija dynamiczny rozwoj jezykow ;) ale moze to i dobrze.. ;)

edytowany 1x, ostatnio: rav3n
0

C++ kompatybilność wsteczna jakoś nie zabiła, rozwija się standard C++17 jest odśmiecacz pamięci podobny do Javy i inne ficzery. Przy okazji możemi ktoś napisać jakiego frameworku użyto do napisania aplikacji WhatsApp , Java, Android-SDK i co?

Burdzi0
Załóż konto i swój temat ;)
KR
W C++ 17 odśmiecacz podobny do Javy? Ha ha ha. Dobry żart. To jakiś troll?
Burdzi0
@Krolik anonimy tak mają ;)
0

a niby czemu c++ mialby umrzec skoro nawet cobol jeszcze dogorywa ;)

Slyszalem plotki, ze C++ ma miec cos w stylu goroutines ;)

0

W programowaniu liczy się szybkość wykonania...
http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=nbody

jarekr000000
No to był wiarygodny benchmark........ NIE! (No chyba, że testujesz w kategorii programów działających do pół minuty :-) ). Ale wtedy to 10 , 20, czy 30 sekund nie robi różnicy).
0
Mały Młot napisał(a):

W programowaniu liczy się szybkość wykonania...
http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=nbody

Gdyby każdy był wymiataczem we wszystkich językach to tak. Ilu znasz programistów którzy potrafią taki asm napisać że będzie wydajniejszy niż gcc? W programowani liczy się żeby spełnić cele i kryteria narzucone przez klienta, kropka.

0
Mały Młot napisał(a):

W programowaniu liczy się szybkość wykonania...
http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=nbody

A dobór narzędzi do odpowiedniego zadania się nie liczy?
Chyba nie ma języka, który byłby 'do wszystkiego' ...

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:dzień
3
Mały Młot napisał(a):

W programowaniu liczy się szybkość wykonania...
http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=nbody

Sprawa wygląda tak, że Java osiąga najlepszy czas 22.53s, natomiast najszybsza przenośna wersja C++ osiąga 19.20s. Wszystkie szybsze wersje C++ są nieprzenośne, bo wykorzystują bezpośrednio instrukcje procesora - widać to po kawałku kodu: #include <immintrin.h>. Wersja C++ która osiąga 19.20s ma w opcjach kompilacji między innymi -O3 -fomit-frame-pointer -march=native -mfpmath=sse -msse3, więc kompilator miał wolną rękę, by samemu wykorzystywać rozszerzony zestaw instrukcji. Mimo tego cudów nie zrobił. Należy też pamiętać, że w C++ie nie dostajemy w standardzie sprawdzania indeksów tablic czy sprawdzania czy wskaźniki są nullowe.

Ale ta mała różnica w wydajności i tak nie ma znaczenia, bo w biznesie liczy się spełnienie żądań klienta, a nie pompowanie własnego ego. Mimo iż w Javce pisze się wyraźnie szybciej niż w C++ie to i tak mało który poważny projekt nadąża za wymaganiami funkcjonalnymi klientów i regulatorów. Na pewno nie ma czasu na robienie mikrooptymalizacji. Wyjątków od tej reguły jest procentowo niewiele.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
KR
Przez -fomit-frame-pointer takiego kodu nie da się debugować, a jak się wywali to nawet stacktrace nie dostaniesz.
0

@jarekr z tego co czytam to każdy pisze że Play to bardziej do Scala pasuje, a od wersji 2.0 to już całkowicie olał Jave. Ale jak Spring i Hibernate to norma wśród pracodawców to ok, trzeba się z tymi starociami pogodzić i zaznajomić. Mam pytanie czy jest praca w czystej Javie bez żadnych frameworków, poza Androidem, gdyż Android też ma jakieś swoje dodatkowe opcje przyspieszające pisanie apek. Nie wiem może pisanie oprogramowania do pralek, lodówek i tv typu Bosch, LG, Samsung wymaga jedynie czystej Javy?

jarekr000000
Nie wiem co to jest ta czysta Java. Używam w codziennej pracy mnóstwa bibliotek (wydaje mi się, że za dużo - ale to takie lenistwo). Natomiast używam tych, które rozwiązują moje problemy. Dependency Injection itp - nie jest moim problemem. Mapowanie ORM (typu Hibernate) jest czasem moim problemem, aczkolwiek po x latach, stwierdzam, że w zespole to narzędzie powoduje więcej problemów niż rozwiązuje. Nie mogę tu niestety polecić dobrego rozwiązania (wydaje sie że może JOOQ - ale nie używałem). Polecam nie używanie baz danych... (=> Event Sourcing i NODB).
jarekr000000
Właśnie uświadomiłem sobie, że wiem co to jest czysta Java- przecież robię o tym wykłady, ale przeważnie uprzedzam, że bezuzyteczne....
n0name_l
@Czarny Pomidor AFAIR @katelx nie używa w pracy żadnych takich frameworków.
katelx
z takich powszechnych javowych standardow to w pracy uzywam jedynie junita
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:dzień
0

@jarekr z tego co czytam to każdy pisze że Play to bardziej do Scala pasuje, a od wersji 2.0 to już całkowicie olał Jave.

Podaj źródło. Play 1.x jest napisany w Javie. Play 2.x jest napisany w Scali, ale ma w pełni funkcjonalne API Javowe. Akka też ma API Javowe. Sam Lightbend mocno stawia na promowanie swojego stosu technologicznego wśród Javowców, bo takie ma biznesowe nastawienie. Wcześniejsze nastawienie tylko na Scalę nie sprawdziło się z biznesowego punktu widzenia.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
8
Burdzi0 napisał(a):

Dlaczego Dżawa zostaje tym językiem z czarnej listy? Dlaczego składnia tak bardzo podobna do języka C++ jest już niewydajna, nieaktualna, a Cpp używa się dłużej do dziś dzień?

"Wydajność składni" - ciekawe określenie. ;) Ale wbrew pozorom ma ono jakiś sens i jest to dość poważne zagadnienie.
Generalnie składnia języka składa się z elementów, mechanizmów i koncepcji wspólnych dla wielu języków. Instrukcje warunkowe, pętle, klasy, funkcje, procedury, konstruktory, właściwości, interfejsy, rekordy, dziedziczenie, wielodziedziczenie, pattern matching, tuple, wskaźniki, przekazywanie przez wartość/referencję, lambdy, delegaty, domknięcia, inferencja typów, typy generyczne, itd.
Java od zawsze miała tych elementów bardzo mało - dzięki temu jest prosta, ale jest też mało ekspresywna - bo trzeba napisać więcej kodu niż w wielu innych językach, aby osiągnąć pożądany efekt. Do tego Java rozwija się wolniej niż inne języki (w sensie wolniej zdobywa nowe mechanizmy) i jest bardzo konserwatywna, więc nie dziwi mnie, że ktoś określił ją mianem "leciwej".

I teraz należy sobie odpowiedzieć, czy to dobrze, czy to źle?

  1. Prostota. Generalnie jest to zaleta - po pierwsze dlatego, że czyni język łatwym do nauczenia się, po drugie dlatego, że kod, który polega na małym zestawie możliwych konstrukcji dość łatwo się czyta (o ile nie został zagmatwany siecią dziwnych zależności), nawet jeśli jest go dużo.

  2. Rozwój. Generalnie rozwój jest dobry, ale też nie można przesadzać. Niektóre języki rozwijają się dziwnie i wprowadzane są do nich konstrukcje czyniące język kompletnie niespójnym (a więc zmniejszające jego czytelność) i niepotrzebnie go komplikujące (a więc zwięszające trudność nauki/próg wejścia). Lepiej chyba rozwijać się wolniej niż popełniać tego typu błędy.

  3. Ekspresywność. Kod to zło. Generalnie im mniej kodu tym lepiej, bo zmniejsza to szansę na błędy, mniej czasu trzeba przeznaczyc na jego czytanie, łatwiej poprawiać błędy czy wprowadzać nowe funkcje. Mała ekspresywność to zło.

Aby napisać czytelny kod, który realizuje jakieś zadanie, najlepiej mieć prosty i ekspresywny język. Czyli nie Javę. Jeżeli nie przeszkadza nam pisanie boileplatu, i nie jesteśmy zainteresowani mechanizmami bardziej zaawansowanymi niż pętle i ify (czyl jesteśmy mainstreamowymi programistami), to Java jest chyba optymalnym wyborem.

Burdzi0 napisał(a):

Mam prawo martwić się tym, że poświęcę najbliższe n-lat na naukę programowania w Javie, a jak przyjdzie co do czego to będą potrzebowali kompletnie innej wiedzy.

Nie ucz się programowania w Javie, ucz się programowania w ogóle. Czyli: dzielenia problemów na podproblemy, organizacji kodu w klasy i metody o jednych odpowiedzialnościach, reużywania elementów, sensownego nazewnictwa. I nie kopiuj - zawsze jak będziesz chciał skopiować jakiś kawałek kodu, to zastanawiaj się, czy nie da się tego zrobić bez kopiowania.
Przy takim podejściu kod nawet w JS wygląda prawie sensownie.
Niestety, ale nasza branża się bardzo dynamicznie zmienia, frameworki żyją góra kilka lat (w JS kilka dni). Do tego wiele zależy od mody i marketingu dostawców technologii.

Nie szukam, znalazłem - pytanie brzmi czy nie był to strzał w kolano.

Na pewno nie. W Javie dużo już zostało napisane, i wiele jeszcze zostanie napisane. Nie umrze przez kilkadziesiąt lat, i raczej wątpię, żeby przez najbliższe 10 cokolwiek ją dogoniło w oprogramowaniu enterprise. Pisanie w niej to dobry wybór pod wzgledem zawodowym. Jeżeli jej ubóstwo Ci nie przeszkadza, to w ogóle się nie masz czym przejmować.

Ale tak ogólnie to ja nie jestem dobrym doradcą w kwestii wyboru języka pod karierę, bo sam niczego nigdy nie wybierałem. Po prostu zacząłem pisać, a inni mi zaczęli za to płacić.

@Burdzi0, jak sam pewnie już zauważyłeś - trudno jest merytorycznie rozmawiać o Javie, bo programiści tego języka w zdecydowanej większości są niemerytoryczni. Czego zresztą dowód masz w tym wątku - sami zdołali siebie powyzywać od debili i bydlaków, a gościa, który ma prawie 20 lat doświadczenia w Javie nazwano hejterem, bo myśli trzeźwo i widzi w niej wady.
Do tego zdołali obrazić także Ciebie, bo zamiast łykać bezrefleksyjnie propagandę postanowiłeś pomyśleć samodzielnie i podzelić się swoją refleksją. Chyba po prostu nie pasujesz do ich grona.

Żeby rozmawiać merytorycznie trzeba mieć wiedzę i doświadczenie. Ja w trakcie swojej kariery pracowałem dla kilkunastu firm z różnych branż, i w żadnej nie było homogenicznego środowiska, w którym wszystkie projekty stały w jednej technologii. Zawsze jakoś ze sobą koegzystowały projekty w Javie, PHP, Pythonie, RoR, Node.js, .NET, Oracle Forms, VB6 i wielu, wielu innych. Tutaj generalnie za ekspertów próbują uchodzić ludzie, którzy pracowali dla 2-3 firm klepiąc fasolki, i na tej podstawie wygłaszają opinie, że tylko Java ma sens.
No i jeśli do tej ignorancji oraz braku doświaczenia dołożysz:

  1. Ograniczony umysł - innym określeniem nie da się nazwać ślepej wiary w świetność jedynego języka jaki się zna.
  2. Dysonans poznawczy - ktoś tu ma straszny ból tyłka o pozycję C# w TIOBE).
  3. Sporą hipokryzję - wielu Javowców ma tendencje do gardzenia "cukrem składniowym" innych języków, ale jak te same cechy z ogromnym opóźnieniem trafiają do Javy (np. propertisy i type inference z Lomboka, albo lambdy i stream API), to nagle uznają je za cud techniki i dowód na nowoczesność Javy. :D
  4. Kompletna paranoję - w każdym wątku na forum, w którym ktoś krytykuje w jakikolwiek sposób Javę, ich reakcja jest natychmiastowy atak na C#, nawet jeśli nikt wcześniej o tym języku nawet nie wspomniał.
  5. Obłudę - nawet ci Javowcy, którym Java z uwagi na swoją toporność przestała pasować i piszą w Scali, nadal w każdej dyskusji na temat wad Javy twierdzą, że to idealny język.

To po prostu zastanów się, czy na pewno chcesz mieć z nimi coś wspólnego. ;)

Zobacz pozostałe 12 komentarzy
KA
Delphi, Haskell, Scala, C. XDDD ta dyskusja to jakiś wtf https://www.youtube.com/watch?v=AL7RvNfGEqs
Burdzi0
@karolinaa nie mam wiedzy to pytam - feel free to correct me ;)
KA
http://www.pracuj.pl/praca/Java http://www.pracuj.pl/praca/Haskell http://www.pracuj.pl/praca/Delphi również polecę Ci Haskella albo Delphi . ale mi zbytnio nie ufaj, bo jestem psycholką
Aventus
@somekind "(...)ich reakcja jest natychmiastowy atak na C#, nawet jeśli nikt wcześniej o tym języku nawet nie wspomniał." No co Ty, zapominasz że to polskie forum? "Jeśli nie z nami to z NIMI"... ;)
Burdzi0
@karolinaa mam tę wygodę, że dopiero niedługo piszę maturę (technik informatyk btw) i mam czas jeszcze na zabawę innymi językami ;)
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:dzień
0

Dysonans poznawczy jest wtedy, gdy ktoś nie lubi Javy, a podnieca się Javiwzmami w swoim języku :P


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Burdzi0
  • Rejestracja:prawie 9 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Futurama
  • Postów:887
0

@somekind Jestem naprawdę pod wrażeniem. To jest najdłuższy, najbardziej treściwy i chyba najrzetelniejszy post jaki widziałem na forum. Serdeczne dzięki, odpowiedziałeś na wszystkie moje pytania (nawet te, których na forum nie zadałem). Będę do tego posta często wracał ;)


Bite my shiny metal ass!
Life throws you an error code like that, you don't have the luxury of a ZnVja2luZw== pop-up explanation *Robię projekty studenckie, pisz priv ;) *
0

No muszę przyznać, że niektóre "nowości" Javy to stare rozwiązania dobrze znane z innych języków. Zobaczymy co za 270 dni przyniesie "dziewiątka"...

0
Burdzi0 napisał(a):

@somekind Jestem naprawdę pod wrażeniem. To jest najdłuższy, najbardziej treściwy i chyba najrzetelniejszy post jaki widziałem na forum. Serdeczne dzięki, odpowiedziałeś na wszystkie moje pytania (nawet te, których na forum nie zadałem). Będę do tego posta często wracał ;)

Tekst jest długi i nawet zabawny, ale z rzetelnością to nie przesadzajmy ;) (Prawie) Każdy chwali swoje, a wydźwięk jest taki, że C# nie ustępuje Javie - co jest absolutną nieprawdą :D

Burdzi0
Ma mnie przekonać do tego jakiś anonim? Rlly?
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0
somekind napisał(a):

Jeżeli nie przeszkadza nam pisanie boileplatu, i nie jesteśmy zainteresowani mechanizmami bardziej zaawansowanymi niż pętle i ify (czyl jesteśmy mainstreamowymi programistami), to Java jest chyba optymalnym wyborem.

no już bez przesady. jaki boileplate? przecież jest lombok?
no i same pętle i ify - przecież java8 to nie są same pętle i ify. dodali nawet Optionala.

Ja pozostawię post @somekind'a bez komentarza, bo wydał mi się chamski w stosunku do ludzi programujących w javie, że oni są inni albo że te środowisko jest chamskie czy fanboyskie. A tak nie jest i wystarczy choćby spojrzeć na top3 na 4progarmmers w tym miesiącu - wszystkie najbardziej pomocne osoby piszą głównie w javie. Dlatego bo to są pomocni ludzie


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
edytowany 1x, ostatnio: karolinaa
Zobacz pozostały 1 komentarz
somekind
@kq - co ostatnio napisałeś w Javie?
kq
@somekind jakiś program na zaliczenie albo ukazanie gotcha z autoboxingiem intów. Skąd to pytanie?
somekind
No bo z tego posta wynika, że piszesz głównie w Javie. To się zdziwiłem.
kq
@somekind o, faktycznie. Zaprzeczam, nie piszę w javie i niespecjalnie przepadam za tym językiem.
szarotka
oj łapiecie karolinę za słówka, top 2 to java
SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:około rok
3

Dopiero 3 odpowiedzi na post @somekind'a, a już potwierdzenie znalazły 2 punkty przez niego wymienione.

KA
ciekawe jakie
Shakaz
Smutne, ale prawdziwe ;)
0

Tekst jest długi i nawet zabawny, ale z rzetelnością to nie przesadzajmy ;) (Prawie) Każdy chwali swoje, a wydźwięk jest taki, że C# nie ustępuje Javie - co jest absolutną nieprawdą :D

Trzeba być leszczem żeby dawać się trollować na java vs c#, albo wierzyć że ms otworzy się na inne systemy operacyjne.

somekind
@some_ONE - a tu się potwierdził trzeci. ;)
0

@somekind

a tu się potwierdził trzeci. ;)

A to czemu? Uważam że java vs c# jest bez sensu bo c# nie ma za cel być wieloplatformowym, a przynajmniej nie jest.

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
3
Świetny Kaczor napisał(a):

Tekst jest długi i nawet zabawny, ale z rzetelnością to nie przesadzajmy ;) (Prawie) Każdy chwali swoje, a wydźwięk jest taki, że C# nie ustępuje Javie - co jest absolutną nieprawdą :D

No właśnie. Nie porównywałem niczego z Javą, żadnego C# nie chwaliłem, a Javowcy wszędzie ten język widzą. To już chyba nie jest zwykła paranoja, to jakieś urojenia prześladowcze. :D

karolinaa napisał(a):

no już bez przesady. jaki boileplate? przecież jest lombok?
no i same pętle i ify - przecież java8 to nie są same pętle i ify. dodali nawet Optionala.

No, jakieś osiem lat później niż u konkurencji, która według pokrętnej logiki niektórych z Javy zrzyna. :)

Wybitny Terrorysta napisał(a):

A to czemu? Uważam że java vs c# jest bez sensu bo c# nie ma za cel być wieloplatformowym, a przynajmniej nie jest.

Ignorowanie standardów ECMA, istnienia Mono czy .NET Core, to przeczenie faktom. A przeczenie faktom, które nie pasują do światopoglądu to właśnie dysonans poznawczy.

0

Ignorowanie standardów ECMA, istnienia Mono czy .NET Core, to przeczenie faktom. A przeczenie faktom, które nie pasują do światopoglądu to właśnie dysonans poznawczy.

Mono mogę spokojnie zignorować, .NET Core nie oceniam ale że tak się spytam jaki ma on związek z pierwotnym celem c#. Twierdzę że ms od początku olewał wszystko co nie windows i nie wmówisz mi że to "dysonans poznawczy".

somekind
Piszemy o teraźniejszości. Teraz mocno promują framework na wiele platform, a Ty i tak twierdzisz, że olewają. To jest to właśnie dysonans poznawczy.
0

Ma mnie przekonać do tego jakiś anonim? Rlly? - Burdzi0 dzisiaj, 14:30

Jeśli wierzysz, że tylko zarejestrowani użytkownicy piszą sensownie, a "anonimowi" bredzą, no cóż...:)

Burdzi0
Skoro, aż takim problemem jest ukazać choć trochę własnej osoby, czy wykazać odrobinę wysiłku jakim jest rejestracja, to nie mam zamiaru nawet czytać. Nie interesują mnie wypowiedzi osób, o których nie mogę nic powiedzieć. Chcesz sprawdzić czy dany user ma wiedzę? Sprawdzasz posty, możliwe, że też stacka. Anonimy są na tyle irytujące, że nic o nich nie wiesz. Znajdują się między nimi bardzo często trolle i szkoda mi na nich czasu. Może i masz trochę racji, ale nie wierzysz obcej osobie poznanej na ulicy, we wszystko co Ci powie...
0

Kilka osób broni C# i w ogóle dot net...

__Jak dla mnie __ platforma NET straciła swoją siłę i zalety wraz z końcem aplikacji desktopowych. W WinFormsach pracuje się genialnie, w WPF też nieźle, ale już w webowym ASP MVC już średnio - jakoś mi to nie podeszło zupełnie, choć na pewno znajdą się zwolennicy klepania stron w ASP MVC. Jedyne co się może podobać w platformie NET to IMO XAMARIN, ale czy się przyjmie to też trudno powiedzieć (jeszcze trochę mu brakuje do stabilnej, pewnej pracy). Samo Visual Studio też jest świetnym IDE (to IMO najlepszy produkt Microsoftu), ale co z tego, dobre IDE to za mało.

somekind
Niby powinienem to usunąć za offtop, no ale z drugiej strony szkoda kasować tych urojeń.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)