Wpis z mikrobloga

Siemano mireczki, powoli zaczynam naukę javy, jesteście w stanie polecić jakiegoś dobrego youtubera albo dobre źródła do nauki? Mam ten problem, ze przelecialem wszystkie filmiki TheCherno z c++ i gość był dla mnie bogiem w tłumaczeniu, ale teraz jak szperam po filmikach z javy to same hindusy i różne mega low quality materiały ;/
#cpp #java #programowanie
  • 18
@RETOVSKEJ: Też potwierdzam słowa Kilerasa, Javy w dzisiejszych czasach nikt nie używa do mobilnych apek. Jedyne projekty jakie jeszcze znajdziesz to jakieś legacy code sprzed wielu lat. Poza tym Koltin to o niebo lepszy i bardziej nowoczesny język. Mniej boilerplate, nowowczesne funkcjonalności, wbudowane extensions e.t.c. e.t.c.
@rex1313:

Poza tym Koltin to o niebo lepszy i bardziej nowoczesny język.


Tylko w porównaniu z zacofaną pseudo-Javą of Googla, która jest zgodna na poziomie źródeł z Java 6 i nie ma nawet lambd. A przypominam że mamy już rok 2022 i oficjalnie Javę 17, która ma 99% tego co ma Kotlin, i tylko na Androidzie można sobie pomarzyć. Dlatego Kotlin na zawsze będzie niszowym językiem co najwyżej jednej platformy i
@Krolik: Z tego co wiem kotlin też zdobywa popularność w Spring, anyway dyskusja tutaj było o aplikacjach mobilnych, tam nie użyjesz Java 17, co najwyżej 8 (wersja używana przez googla ma lambdy, nie ma niektórych rzeczy z normalnej 8 np LocalTime), która już jest bardzo zacofana względem kotlina. Fakt też jest taki, że absolutnie żaden nowy projekt na Androida nie będzie zaczynany w java.
Tylko w porównaniu z zacofaną pseudo-Javą of Googla,


@Krolik: Z tym się nie zgadzam, akurat Kotlin to jeden z przyjemniejszych języków jakich dane mi było używać. Wprawdzie nie używałem scali, ale używałem współczesnego C#, pythona, javascript es6, Java (9 używałem max, więc może potem jest lepiej), TypeScript (o ile się liczy jako język ;P) Wśród wszystkich powyższych kotlin wypada najlepiej
@rex1313: Nie wątpię, że jeden z przyjemniejszych, bo tak jak napisałem wyżej, Kotlin został zerżnięty praktycznie całkowicie ze Scali, która też jest bardzo przyjemnym językiem, ale miała wszystko to samo ponad 5 lat wcześniej.

Natomiast to, że jest przyjemny nie oznacza, że jest nowoczesny czy innowacyjny. IMHO jest raczej właśnie dość konserwatywnym, odtwórczym, nudnym językiem, który nic nowatorskiego nie wniósł do programowania - ot, mieszanka kilku sprawdzonych koncepcji które inni mieli
@Krolik: Typescript o ile wydaje się nowoczesny, to o tyle wydaje się jeszcze niedojrzały. Widziałem union types, co do nullability nie widziałem jakie ma zalety w stosunku np do kotlina. Kotlin ma to dość dobrze rozwiązane, poza zwykłymi optional ma jeszcze let i run, albo elvisa. W Typescript wg mnie leży smart casting, który w koltinie jest bardzo przyjemny. Osobiście nie byłem nawet w stanie zrobić switcha na typach, gdzie w
@rex1313:

Kotlin ma to dość dobrze rozwiązane,


Ma to dość słabo rozwiązane, bo:
1. Wymaga specjalnej składni, podczas gdy inne języki (TS, Rust, Scala, Haskell) ogarniają to składnią generyczną, którą ogarniają wszystkie monady. Czyli Kotlin jest pod tym względem bardziej skomplikowany niż Scala.
2. Nie jest generyczne, jest ograniczone tylko do wbudowanego typu - ten mechanizm nie zadziała np. dla własnego Try czy Either.
3. Nie komponuje się nawet samo ze
@rex1313:

wg mnie nowoczesny język powinien redukować boilerplate


Przez 20 lat pracy nie widziałem aby boilerplate code był przyczyną problemów bądź spowolnienia w projekcie. Po pierwsze pisanie kodu (wklepywanie znaków) praktycznie nigdy nie jest wąskim gardłem projektu. Po drugie generację boilerplate code zwykle daje się łatwo zautomatyzować (np. szablony i autogeneracja w IDE).

Natomiast prawie zawsze przyczyną problemów były:
* Niedostateczny poziom abstrakcji lub pomieszanie poziomów abstrakcji (czyli np. jedna klasa
@sorek: @Krolik: @rex1313: @Killeras: Widzę panowie że znacie się na temacie to może coś podpowiecie.

Wybrałem javę bo potrzebowałem języka który pozwoli w nieco praktyczniejszy i przystępniejszy sposób tworzyć róznego typu appki, poczynając od biurowych, mobilnych, do może jakichs czatów internetowych i może prostych gierek multiplayer. Wszystko to w celu poszerzenia wiedzy i nabrania troche ogólnego poglądu jak wyglądaja podstawowe koncepty w programowaniu różnego rodzaju aplikacji. Taka trochę
@RETOVSKEJ: Jeśli umiesz c++ to każdy język będzie dla Ciebie prosty, ale będziesz miał też mniej kontroli, więc w sumie tutaj wybór zależy od projektu. Robisz jakąś apkę, która wymaga świetnego performance, gdzie wysoko poziomowy język jest bottleneckiem, wtedy lepiej użyj C++, ale tak naprawdę w większości przypadków tego nie potrzebujesz, bo bottleneck będzie absolutnie niezauważalny - szczególnie, że z tego co piszesz myślisz o jakichś ogólnych prostych konceptach. W tym