Java 10 oficjalnie dostępna

Java 10 oficjalnie dostępna
2
Wibowit napisał(a):

Boisz się używać bibliotek?

Czyli ułomny język to plus. Lepiej używać bibliotek napisanych przez innych, żeby zamaskować ograniczenia języka. W javie od zawsze tak jest - lambd nie było, to biblioteka retrolambda i jeszcze z 5 innych, kolekcje biedne to Google zrobił Guava Collections itd itp itd. Tak można bez końca.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 8 godzin
2

Czemu plus? To, że jest inaczej niż w C# to nie zbrodnia. Nowe bajery powinny być po to, by rozwiązać jakiś konkretny problem, a nie kopiować składnię z C# dla samego kopiowania.

Adnotacjami Lomboka da się załatwić dużo więcej niż same propertiesy - Lombok generuje buildery, konstruktory, hashCode, equalsa, toStringa itp itd Do tego też chciałbyś ekstra składnię czy może już nie, bo C# takiej nie ma?

Mam wrażenie, że dla C#-owców jedynym słusznym kierunkiem rozwoju Javy jest upodabnianie jej do C#-a. Jak coś jest inaczej to jest źle.


"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.
edytowany 7x, ostatnio: Wibowit
Azarien
C# ma goto, a Java nie. Koniecznie trzeba dodać goto do Javy :-)
KA
sama prawda w tym komentarzu
SP
@Azarien tu akurat Java jest fajniejsza bo zamiast goto pozwala nadawać pętlom etykiety
P7
  • Rejestracja:około 9 lat
  • Ostatnio:20 minut
  • Lokalizacja:Warszawa
  • Postów:89
1

Biały Lew,

ok to wszysttko się zgadza, ale te ułomności to pewien kompromis. Dla biznesu i ludzi którzy decydują w co władować korporacyjne miliony, nie jest najważniejsze czy dany język ma taki czy taki ficzer tylko pewna przewidywalność samego języka , dostępności programistów itp. Przykładowo:

Kopiuj
new Thread(()-> System.out.println("backward compatibility"));

Thread był jdk 1.0, lambdy niemal 20 lat póżniej

edytowany 1x, ostatnio: Pablitto77
1
Wibowit napisał(a):

Czemu plus? To, że jest inaczej niż w C# to nie zbrodnia. Nowe bajery powinny być po to, by rozwiązać jakiś konkretny problem, a nie kopiować składnię z C# dla samego kopiowania.

Adnotacjami Lomboka da się załatwić dużo więcej niż same propertiesy - Lombok generuje buildery, konstruktory, hashCode, equalsa, toStringa itp itd Do tego też chciałbyś ekstra składnię czy może już nie, bo C# takiej nie ma?

Mam wrażenie, że dla C#-owców jedynym słusznym kierunkiem rozwoju Javy jest upodabnianie jej do C#-a. Jak coś jest inaczej to jest źle.

To nie jest "coś inaczej". To niezależne osoby dopisały te biblioteki, żeby niedociągnięcia i braki samego języka były chociaż trochę mniej uciążliwe. Tak jest z Lombokiem, tak było z Retrolambda, tak jest z Guavą itd itp

R3id4k
Apache Commons ? ... A sorki Wibowit niżej już wyjaśnił ...
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 8 godzin
3

No i chwała im za to. Zrobili i gotowe.

Niedociągnięć w każdym języku można znaleźć co najmniej miliard. Tobie nie podoba się brak propertiesów, komuś innemu na propertiesach w ogóle nie zależy, ale chciałby coś innego. Nawet gdyby propertiesy były to i tak klasy usiane byłyby automatycznie wygenerowanymi equalsami, toStringami itd, więc i tak byłoby dziadostwo. Lombok załatwia sprawę kompleksowo, nie jest półśrodkiem.

Możesz rozjaśnić o co chodzi z Guavą? Jak dla mnie to biblioteka jak wiele innych, np Apache Commons: https://commons.apache.org/ - te też są niby dowodem na ułomność Javy? A może do biblioteki standardowej Javy wrzućmy miliard klas, każdy będzie miał coś dla siebie.

Retrolambda natomiast wygląda mi raczej na ciekawostkę niż sensowne podejście. Wsteczna kompatybilność w Javie polega na tym, że można przestarzały (ale działający, więc cenny) kod odpalić na nowych wersjach Javy. Odpalanie nowego kodu Javowego na przestarzałych wersjach Javy moim zdaniem mija się z celem, no chyba że u kogoś upgrade Javy jest tak bolesny, że woli kombinować jak koń pod górę.


"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.
edytowany 4x, ostatnio: Wibowit
KA
Odpalanie nowego kodu Javowego na przestarzałych wersjach Javy moim zdaniem mija się z celem, no chyba że u kogoś upgrade Javy jest tak bolesny, że woli kombinować jak koń pod górę. okey racja, ale kiedy istnieje cały wielki ekosystem napisany w Java 1.6 a biznes nie wyraża zgody na przejście na Java 10 albo chociaż Java 8 to byłoby fajnie móc pisać w nowym stylu. Ten problem rozwiązuje Kotlin..
Michał Sikora
Michał Sikora
Trochę nie rozumiem tego ataku na Retrolambdę. Czasami upgrade jest bolesny, bo biznes nie pozwala. Czasami jest niemożliwy, bo ekosystem nie pozwala. Na Androidzie Retrolambda była przez długi czas zbawieniem, bo nie trzeba było pisać Pana Tadeusza w kodzie. Teraz na szczęście jest Kotlin albo desugar/D8, ale i tak Retrolambda była/jest bardzo użyteczna i przydatna.
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Myślę akurat że istnienie pierdylardia bibliotek do Javy to tylko jej spora zaleta :)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
FI
FI
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 4 lata
  • Postów:471
1

co do lombkowa, to czy wam tez sie wykladal srednio ~2 dni w intellij? normalnie dzial, zadnych zmian, odpalasz a tu taki CHVJ,

KA
dziala bez problemu
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
2

Nie mam większych problemów z działaniem Lomboka. Działa ok. Tylko ta cała składnia, niestety powoduje odruchy:
Lombok


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 2x, ostatnio: jarekr000000
Wibowit
To, że istnieją lepsze alternatywy nie znaczy, że Lombok jest kiepski. No chyba, że ktoś jedną klasę adnotuje Lombokiem, Hibernatem, Springiem, JAXB i innymi rzeczami naraz - wtedy adnotacje Lomboka pogarszają sprawę. Ale to nie wina Lomboka, że ludzie robią klasy do wszystkiego.
Michał Sikora
Michał Sikora
Mam podobnie. Lombok fajnie, fajnie, ale kiedy na niego patrzę to jak z obrazka. Wolę już trochę więcej kodu samemu napisać i korzystać z AutoValue, jeżeli nie można np. z Kotlina.
WA
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:2
0

w koncu :)

WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 dni
  • Postów:3168
0

Kojarzycie czy da sie ustawic jakos w Intellij zgodnosc z Java 10? (u mnie maks 9ke pokazuje).

R3id4k
Na razie chyba tylko EAP ma wsparcie.
KA
  • Rejestracja:około 7 lat
  • Ostatnio:około 5 lat
  • Postów:30
0

Post zamienił się w konflikt C# vs. Java :) To ja dołożę swoje jako początkujący uczący się programista :) Poznaje C# (asp.net mvc, Entity Framework, Linq) i Jave(Spring Hibernate itp.) Do wyboru języka jest mam parę kryteriów

  1. Ogłoszeń o prace. W mojej okolicy w ostatnim czasie przeważa minimalnie Java. C# trochę mniej, ale jest jedno ale. Większość na Jave to utrzymanie aplikacji - co z tego, że jest Java 9, 10 i niedługo 11, jak z tego nie skorzystam przy utrzymaniu czy rozbudowie systemu? W C# ogłoszeń nie wiele mniej z tą różnicą, że do nowych projektów (np. nowy system dla jednego z banków).
  2. IDE. C# to VS 2017, a Java IntelliJ (ultimate) Jedno i drugie jest spoko, ale przyjemniej pracuje mi się w VS. Lepiej mi się je ogarnia. Jest chyba bardziej ustawne i chyba bardziej uporządkowane.
  3. Sam język. Jak ktoś słusznie zauważył C# to taka udoskonalona Java
1

No to Java... Czy moze olac i jednak Kotlin? ;)

Zobacz pozostałe 3 komentarze
jarekr000000
Ta statystyka wiele mówi dla programistów idących w ilość ofert, a nie jakość. Dla firm idących na ilość - również.
KA
Jakbym zatrudnial kotlinowca to liczylbym, ze zatrudniam doswiadczonego java deva co poznal kotlina. Oczekiwalbym tez, ze sie taki lubi uczyc i nie zatrzymal w rozwoju.
vpiotr
@jarekr000000: zdefiniuj pojęcie "programista idący w ilość ofert". Taki co lubi mieć wybór i oferty dostosowane do potrzeb?
KA
Mnie by interesowal Kotlin ale troche sie obawiam, ze np. zdechnie za 2 lata i stanie sie dlugiem publicznym. Ale na chwile obecna Kotlin raczej zostanie z nami na dlugo.
jarekr000000
@vpiotr no właśnie wybór dużej ilości w tym przypadku szczególnie niekoniczenie oznacza komfort. Java to jednak dużo starego syfu, ja przyznaję, że nawet ten syf lubię naprawiać, ale mam wrażenie, że jestem wyjątkiem. Co więcej w tym konkretnym przypadku (Kotlin), jęsli firma zaczyna w 2018 nowe projekty w Javie, a nie Kotlinie to od razu słabo świadczy o podejściu do technologii.
R3id4k
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:175
2

Nowe IntelliJ 2018 do pobrania. Zaraz sprawdzam, czy wspiera w pełni 10 :)

:)

screenshot-20180327222028.png

edytowany 1x, ostatnio: R3id4k
S1
Dzięki za info. :)
Tenonymous
  • Rejestracja:ponad 7 lat
  • Ostatnio:6 dni
  • Postów:425
0

I co, śmiga Java 10?

WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 dni
  • Postów:3168
0

Smiga. Chociaz u mnie cos sie w Intellij przycielo po zmianie na Java 10 i musialem zrebootwac IDE bo wczesniej gdy chcialem uzyc tej nowej konstrukcji z var wyskakiwal blad ze IDE nie wie co to jest.

Tenonymous
w jaki sposob? u mnie ten sam problem
R3id4k
W mnie zadziałało od razu, dziwne.
WhiteLightning
@Tenonymous: jak w ustawieniach SDK wybiera sie zgodnosc z wersja javy, tam byly dwa wpisy dla 10, przelaczylem, reboot i poszlo.
Tenonymous
faktycznie, byla taka opcja :D dzieki :D
0

Czy Java 10 szybciej kompiluje programy względem wersji Java 8?
Czy programy napisane z książki Java 8 skompilują się poprawnie pod Java 10?
Jak wgrać Java 10 pod Linux Mint 18.3?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 8 godzin
2

Jeśli dopiero zaczynasz przygodę z Javą to łatwiej będzie zacząć od Javy 8.


"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.
R3id4k
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:175
0

Jak ktoś mógł uczestniczyć "na żywo" to jest już dostępne nagranie >>> JetBrains Webinar: IntelliJ IDEA and Java 10

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)