googleapis / google-http-java-client :: NetHttpRequest.java xD
A wy jak dogrzewacie zimą, znajdziemy tu koneserów tworzących nowy threadpool per http request?
@Shalom: A CompletableFuture nie zablokuje Ci wątku na zwykłym blokującym zapisie? Bo jak tak, to masz zagłodzenie przy dużym obciążeniu.
Meh, z jednej strony ile się nie namarudzi na Springa i jego internalsy to jedno, a z drugiej człowiek używa sobie niby popularnych lekkich alternatyw pokroju Javalina i odkrywa, że przy sporym obłożeniu taki framework nie potrafi poprawnie obsługiwać async contextu, bo jego implementacja servleta od 3 lat nie jest thread-safe xD
@Dzikoysk: ja tam ciągle spotykam kotlinowców zachwyconych korutynami (w androidzie na pewno). Korutyn nie lubię - głównie za zmarnowany potencjał - można było zrobić async dobrze, a wybrali ograniczoną i w sumie męczącą w użyciu implementację.
Ja szanuję za starania, ale jakby rozumiem czemu można ich nie lubić. Imo chyba największy problem, to że próbują adresować kilka kwestii na raz i ostatecznie nie dowieźli tego w za dobrej formie. Z jednej strony mogli napisać kolejny wrapper na reactive streamy na poziomie składni, a z drugiej poszli dalej i spróbowali imitacji fiberów. To by było nawet spoko, ale gdyby jasno ograniczyli się do kodu faktycznie działającego w tym ekosystemie (czyli stricte dedykowane std i libki które mogą zostać tylko na tym zbudowane), bo dodanie do tego compatibility z Javą i innego niereaktywnego API trochę robi z tego magic boxa i powrót do zabawy z weryfikacją integralności apki w runtime, a nie na poziomie kompilatora. No nic, na pewno jest to kolejny stymulant do tego by w ogóle o myśleć o takich rzeczach w Javie, szkoda że niestety wychodzi z tego rozwiązanie pośrednie na drodze tej ewolucji, a nie jakiś faktycznie fajny finalny produkt.
Została wydana nowa wersja serwera aplikacji EuroAP – 7.4.0. Najnowsze wydanie oferuje szereg poprawek i usprawnień w wielu subsystemach oraz zachowuje kompatybilność wsteczną. Więcej w artykule.
https://pl.euro-linux.com/blog/euroap-7-4-0-jakie-nowosci-dostarcza-najnowsza-wersja/
We wrześniu 2021 wydaliśmy wersję 7.4.0 serwera aplikacji EuroAP. Najnowsze wydanie oferuje szereg poprawek oraz usprawnień w wielu subsystemach.
https://pl.euro-linux.com/blog/euroap-7-4-0-jakie-nowosci-dostarcza-najnowsza-wersja/Na spotkaniu pesymistów i krytyków:
Nie wiem jak do tego doszło, ale na The Computer Language Benchmarks Game Haskell przegonił Javę :D
Chociaż różnice wydajności od OCamla po Lispa są tak małe że pewnie przy kazdej publikacji nowego raportu są totalne zmiany w miejscach (Kilka miesięcy temu Haskell był szybszy niż OCaml, a teraz OCaml jest szybszy niż Java i Haskell :D )
UPDATE
Chyba za mało śmiejących się buziek dałem w tym wpisie żeby ludzie się zorientowali że nie traktuję tego porównania całkowicie serio :D (Zwłaszcza jak różnica między niektórymi językami jest tak mała i w przeciągu roku jest przeskok OCamla o co 4 miejsca :D )
Więc doklejam tu kilka śmiejących się buziek :D :D :D :D :D :D :D
"Czy głównym celem tych benchmarków jest konfudowanie ludzi?" Można przeczytać w History jaki był cel pierwszego autora (porównanie języków skryptowych). Jaki jest aktualny cel teraz to ja nie wiem :D "może są one po to, żeby programistom nie było zbyt nudno i żeby mogli się spuszczać nad swoim ulubionym językiem." Jak ktoś się spuszcza nad językiem programowania to jego sprawa. Jakbym chciał spuszczać sie nad tym jaki mój ulubiony język jest szybki to zacząłbym pisać w Ruscie :D Ani Java, ani Haskell nie trafią pewnie nigdy na podium najszybszych języków programowania. A jeśli trafią to będzie to pewnie inna Java lub inny Haskell niż znamy dziś (Z o wiele większą ilością niskopoziomowego kodu) :D Chyba za mało śmiejących się buziek dałem wtym wpisie żeby ludzie się zorientowali że nie traktuję tego porównania całkowicie serio :D Zwłaszcza jak różnica między niektórymi językami jest tak mała i w przeciągu roku jest przeskok OCamla o co 4 miejsca :D
Free Pascal ma już lepszą efektywność niż C++ — i to mi odpowiada. ;)
Chociaż ciul wie, nie umiem czytać tego wykresu.
Ciekawe, Oracle zamierza dawać extended support dla Oracle JDK 8 do 2030 roku, a dla JDK 17 do 2029 roku. Czyli kolejny raz potwierdzone - Java 8 to Cobol 21 wieku.
Źródło*
@0xmarcin: jedna rzecz, która stale kuleje w ostatnich latach to javafx. Co różna wersja i dostawca JDK to co innego w JavaFX nie działa. Fakt, że to dość niszowa technologia i chyba wszyscy istotni gracze już ją olali.
@jarekr000000: dlatego samo JavaFX zaleca generowanie całych obrazów aplikacji, w JDK 16 jest to bezproblemowe i działa dla Win/Lin/macOS (mam parę takich projektów na GH). O ile wszystkie biblioteki zależne używają JPMS to bułka z masłem. Bez JPMS trzeba się trochę napocić. Jedyn problem z takim podejściem jest taki że aktualizacja JDK == aktualizacja aplikacji, a JDK ma łatki security dosyć często...
Cała magia
wyjaśniona ;)
Celem tego projektu jest pokazanie, w jaki sposób działa dependency injection framework np. Spring.
Repozytorium zademonstruje krok po kroku, w jaki sposób zbudować własny framework. Oczywiście jest to tylko uproszczona forma. Spring jest rozwijany od prawie 20 lat przez setki programistów, więc ledwo zbliżymy się do niego. Jednak repozytorium pokaże koncept takiego frameworka i udowodni, że nie kryje się tam żadna magia.
https://github.com/Patresss/Java-Own-Framework---step-by-step/blob/main/README_pl.md
Contribute to Patresss/Java-Own-Framework---step-by-step development by creating an account on GitHub.
https://github.com/Patresss/Java-Own-Framework---step-by-step@Aventus: Pan poczeka. Programiście .net nie mają dużej ilości problemów przez to, że często mają jedyną słuszną implementacje problemu X.
Dałem gwiazdkę. Co ciekawe kiedyś próbowałem zrobić kontener z obsługą generyków (czyli symulacją generyków tak żeby dało się resolvovać np. CommandHandler<FooCommand>
i to jest masakra. Poległem na tym zupełnie, w C# nie mają takich problemów tam to po prostu działa. Abstrahując od mojej uwagi, fajny projekt.
Shalom@Afish:
CompletableFuture z timeoutem
chyba by trochę jednak pomogło ;)