Kotlin ma szanse zaistniec?

0

Witam, mam metlik w glowie. Kilka dni temu uslyszalem o Kotlinie, ktory jest nowym jezykiem. Czy ma on szanse zaistniec? Czy za kilka lat znajdzie on swoje miejsce w korporacjach? W ogole ma to jakis sens jezeli Kotlin dziala na maszynie wirtualnej Javy (po co pisac w czyms "pobocznym")? Czy to nie jest krotkotrwaly trend? Mozna pisac nim pod wszystkie biblioteki Javy (czy moze byc problem ze spojnoscia?). Jest na tyle "dojrzaly" zeby nadawal sie do ogromnych projektow? Kotlin korzysta z klas Javy czy ma jakas swoja wlasna dokumentacje? Ja do stracenia niby nic nie mam, Jave znam na poziomie darmowego kursu Javastart, ale czy uczac sie Kotlina znajde prace za te 2, 3 lata? Wiem, ze na niektore moje pytania mozna gdybac, ale zapraszam do dyskusji.

Aha Kotlin korzysta z klas Javy czy ma swoja dokumentac? Jezeli znacie jakis solidny tutorial to tez prosilbym o linki. Dzieki ;).

1

Moim zdaniem powinienes jeszcze dalej douczyc sie Javy (bo poki co jej nie umiesz) i zaczac prace jako Java Junior Developer. Potem nawet jak Kotlin stanie sie popularniejszy latwiej Ci bedzie sie go nauczyc i emigrowac na Kotlina.

4

Kotlin to droga do Scali
Scala prowadzi do Haskella

czyli warto : po to, żeby się nauczyć programować jak człowiek. W Javie jest to niestety dosyć trudne.

0

Ten Kotlin korzysta z klas Javy? Nie ma wlasnej dokumentacji technicznej?

0

MrHyperion moglbym prosic o link do tej dokumentacji? Aktualnie jestem na tel. i byc moze z tego powodu nie moge znalezc.

0

Tak, Kotlin korzysta z klas Javy. Można nawet mieszać kod Javy i Kotlina w jednym projekcie. Dokumentację znajdziesz tu: https://kotlinlang.org/ Na tej samej stronie znajdziesz również linki do tutoriali, książek, a także edytor online w którym można pisać w Kotlinie, bez instalowania czegokolwiek na swoim komputerze.

1

@jarekr000000: a możesz wyjaśnić czemu ?

0

Z Javą jest trochę jak z liczbami rzeczywistymi. Intuicyjne i spójne na pozór, ale spróbuj tylko rozwiązać x^2 = -1 i cała ta elegancja się wyrypuje.

W Javie niby wiadomo, że warto używać obiektów niemutowalnych, ale spróbuj tylko to robić, a zatrzesz nawet gamerską klawiaturę.
Niby wiadomo, że warto pisać kod generyczny... ale weź tylko się rozpędź, a ubije cię nawiasami <<<<.

1
Chory Szewc napisał(a):

Kilka dni temu uslyszalem o Kotlinie, ktory jest nowym jezykiem.

Względnie nowym - rozwijają go od 6 lat. Aczkolwiek prawdą jest, że wersja 1.0 wyszła rok temu z lekkim hakiem.

Czy ma on szanse zaistniec?

Ma, skoro już zaistniał.

Zostać namaszczonym przez Google jako oficjalnie wspierany język programowania na Androida - platformę, która ma jakieś 80% rynku w sektorze mobilnym - to nie jest byle co.

W ogole ma to jakis sens jezeli Kotlin dziala na maszynie wirtualnej Javy (po co pisac w czyms "pobocznym")?

Analogicznie można by się pytać, jaki sens ma Java - przecież teoretycznie można bezpośrednio klepać kod bajtowy dla maszyny wirtualnej : ) Każdy język programowania jest tylko pewną warstwą abstrakcji. Jedne spełniają się w tej roli lepiej, inne gorzej..

Kotlin korzysta z klas Javy czy ma jakas swoja wlasna dokumentacje?

Oczywiście że ma własną dokumentację. Oczywiście że dostępne są wszystkie API Javy (nie rozumiem, czemu zakładasz, że jedno z drugim musi się wykluczać). Dodatkowo ma swoje własne biblioteki standardowe (z dokumentacją).

czy uczac sie Kotlina znajde prace za te 2, 3 lata? Wiem, ze na niektore moje pytania mozna gdybac, ale zapraszam do dyskusji.

Dyskusji, czy ty za trzy lata znajdziesz pracę? : ) No, to dyskutujmy! Temat otwarty! :)))

2
Chory Szewc napisał(a):

Witam, mam metlik w glowie. Kilka dni temu uslyszalem o Kotlinie, ktory jest nowym jezykiem. Czy ma on szanse zaistniec? Czy za kilka lat znajdzie on swoje miejsce w korporacjach? W ogole ma to jakis sens jezeli Kotlin dziala na maszynie wirtualnej Javy (po co pisac w czyms "pobocznym")? Czy to nie jest krotkotrwaly trend? Mozna pisac nim pod wszystkie biblioteki Javy (czy moze byc problem ze spojnoscia?). Jest na tyle "dojrzaly" zeby nadawal sie do ogromnych projektow? Kotlin korzysta z klas Javy czy ma jakas swoja wlasna dokumentacje? Ja do stracenia niby nic nie mam, Jave znam na poziomie darmowego kursu Javastart, ale czy uczac sie Kotlina znajde prace za te 2, 3 lata? Wiem, ze na niektore moje pytania mozna gdybac, ale zapraszam do dyskusji.

Aha Kotlin korzysta z klas Javy czy ma swoja dokumentac? Jezeli znacie jakis solidny tutorial to tez prosilbym o linki. Dzieki ;).

Jako świeżo upieczony junior software developer dam Ci rady:

  • naucz się dowolnego języka do poziomu napisania projektu, którego nie będziesz się wstydził,
  • jeżeli nie umiesz angielskiego lub masz braki to szybko je uzupełnij do poziomu B1/B2,
  • stwórz dobre CV - wyślij je, zdobądź prace.

Czas wykonania tych rad określiłbym na od 6 miesięcy do nieskończoności. Ale jak już wjedziesz w środowisko to będziesz już widział co warto robić, czego nie warto. Bo wyczuwam u Ciebie syndrom szukania najprostszej drogi - też to miałem. Jak przeczytałem że w javie są $$ to szybko do javy, jak widziałem że jest sporo ogłoszeń w PHP'ie dla juniorów to siadałem do PHPa - w ten sposób zmarnowałem z pół roku. Później olałem wszystkie kupoburze na forach, artykuły na blogach, ilość ogłoszeń w mojej okolicy w poszczególnych technologiach i skupiłem się na nauce. Przyniosło efekty. Jeszcze jedna rada - olej takie kursy, książki są bardziej wartościowe i zazwyczaj dają Ci zadania do których nie tak szybko musisz dojść, problem z tymi kursami jest taki że często kończy to się przepisywaniem cudzego kodu.

2

Wątpię, czy jest sens uczyć się Kotlina zamiast Javy - ale jako język dodatkowy, jak najbardziej. Po pierwsze rozwija to nas samych, po drugie dobrze o nas świadczy na zewnątrz (nawet jeśli praca nie wymaga znajomości Kotlina).

A po trzecie, projekty tworzone w Kotlinie, nawet pozostając w znacznej mniejszości, będą to projekty raczej nowe, raczej tworzone przez ludzi lubiących swoją profesję i niebojących się nowych technik - innymi słowy projekty generalnie atrakcyjniejsze, niż dłubanie w kolejnym starym trupie. Znajomość tego języka może zatem otworzyć nam drzwi do przyjemniejszej pracy, choć samej Javy nie zastąpi.

Warto przy tym dodać, że nauka języka programowania samego w sobie nie wymaga wiele wysiłku. Znając już parę języków, nowego mogę się nauczyć w parę dni (oczywiście o ile będzie wykazywać pewien stopień pokrewieństwa z dotychczasowymi). Przy nauce programowania wyzwaniem wagi ciężkiej nie jest przecież znajomość składni, tylko API, bibliotek, platformy, ekosystemu itd. To tam jest sporo do nauki. A to wszystko mamy współdzielone.

0

Najważniejsze to nauczyć się chyba po prostu programować. Oczywiście przejście z jednego języka do 2 to nie jest kilka dni, ale Java ma bardzo dobre wsparcie społeczności, jest dużo materiałów itd. Ja na razie zostaje przy samej Javie bo jest jeszcze dużo rzeczy które chciałbym się douczyć, lepszego OOP, wielowątkowości, podstaw funkcyjnego, zobaczyć różne kontenery DI (planuję coś zrobić z użyciem Guice) i testowania kodu

0
scibi92 napisał(a):

Ja na razie zostaje przy samej Javie bo jest jeszcze dużo rzeczy które chciałbym się douczyć, lepszego OOP, wielowątkowości, podstaw funkcyjnego

Programowanie funkcyjne w Javie to jak siodłanie krowy. To jest właśnie jeden spośród względów, dla których przesiadka na Kotlin byłaby najbardziej wskazana.

0

Wiem że programowanie funkcyjne w Javie jest "ubogie" i z tego powodu za kilka miesięcy #Scala

0

Gorzej jeśli język wciąga Cię w manowce - czyli w rozwiązywanie problemów, które sam sobie tworzy i niczemu innemu nie służą.
Wtedy to strata czasu, a nawet cofka.
Taką role "czarnej dziury dla mózgu" kiedyś pełnił BASIC,
potem C,
i tak samo jest niestety z wynaturzeniem Javy opartym o Spring lub JavaEE.

0

Zgadzam się z poprzednikami, nie ma sensu uczyć się samego Kotlina, u mnie Android devowie bez wcześniejszej znajomości Kotlina po miesiącu komfortowo w nim pisali. W Android Studio masz ponadto możliwość konwersji klasy javowej na kotlinowa co też ułatwia sprawę. Co do sytuacji za kilka lat myślę, że ostanie IO googla mówi samo za siebie. Plus już dziś są firmy, które piszą backend w Kotlinie

0

Dziekuje wszystkim za wypowiedzi. Nie ma co eksperymentowac aktualnie. Lepiej trzymac sie przy nauce tego jezyka, ktorego nauke juz rozpoczalem ;).

1

Kotlin ma przed sobą świetlaną przyszłość, ale jak wiele języków nie jest uniwersalny.
Jeśli planujesz pracę w środowisku JVM to wg mnie Kotlin jest ciekawszym rozwiazaniem niż Scala (jak już się nauczysz Javy).

Dlaczego?

Kotlin również działa po stronie przeglądarki.
Niby Scala ma te same rozwiązania, ale chyba podąża w bardziej przekombinowanym kierunku. (komuś coś to przypomina? np. C++?)

Tak naprawdę to nikt nie wie co będzie za 3 lata, ale Scala dla mnie dziś wygląda trochę jak mielizna, na którą kilku ludzi się władowało bo myśleli że znaleźli ląd.
Możliwe że w Polsce Scala będzie jakiś czas jeszcze się rozwijała, my zawsze jesteśmy opóźnieni. Póki co mam więcej ofert z zachodu z Go niż ze Scalą (jako dodatkami do Javy).
No a Python to jest chyba wszędzie. Intel go nawet wpycha specom od HPC (chociaż go już dawno używają).

0

Python? Ten język ze wsparciem OOP bez prywatnych metod? Scala jest chyba dobra do rzeczy związanych Data Science

0
Chory Szewc napisał(a):

MrHyperion moglbym prosic o link do tej dokumentacji? Aktualnie jestem na tel. i byc moze z tego powodu nie moge znalezc.

Pisząc w Kotlinie korzystasz głównie z klas Javowych, więc będziesz przeglądać głównie dokumentację Javową. Z tego wynika iż Javę trzeba znać (tzn składnię języka), bo w dokumentacji Javowej często będą kody Javowe jako przykłady w objaśnieniach.

Niby Scala ma te same rozwiązania, ale chyba podąża w bardziej przekombinowanym kierunku. (komuś coś to przypomina? np. C++?)

Mógłbyś rozwinąć? Gdzie i co podąża?

4

Z tą mielizną Scali jest trochę tak, że jak się poprogamuje więcej to cała reszta języków staje się troszkę odrażająca. Z wyjątkiem Haskella.
A co do Go. To wreszcie naprawdę dobrze zrobione C i nadaje się do robienia prostych tooli. Ale robienie w tym czegoś większego musi boleć.
(Ten dowcip z Go był niedawno popularny:
Go has generics...

0

To co @jarekr000000 uważasz że Scala jest spoko?

1

Spoko jest słabo zdefiniowane. Na "skali" eleganckości języka jest dość daleko od Clojure - to trzeba przyznać. Natomiast pozwala używać technik, których nie za bardzo można w Javie czy Kotlinie (głównie typeclass). Na dzień dzisiejszy niewiele jest ciekawych alternatyw: Haskell i Clojure (oba eleganckie). Haskell dopiero zaczyna wchodzić na produkcję, a Clojure jest ekstremum, którego dynamiczne typowanie trochę mnie odrzuca - ale znam gości zakochanych w tym. Clojure jest zabójczy bo nie umiem czytac kodu w Clojure - ale umiem w tym pisać... intuicyjnie -nigdy się nie uczyłem - przeraża mnie to.

2

Niektórzy ludzie są przeciwnikami języków funkcyjnych, ponieważ uważają, że taki kod jest dużo mniej czytelny niż kod napisany w języku imperatywnym. Często przy tym powołują się na słowa Martina Fowlera:

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

0
Haskell napisał(a):

Niektórzy ludzie są przeciwnikami języków funkcyjnych, ponieważ uważają, że taki kod jest dużo mniej czytelny niż kod napisany w języku imperatywnym.

Przeważnie ci ludzie mają o wiele większe doświadczenie w używaniu języków imperatywnych. Nie rozumiem jak ktoś może uważać że kod na górze jest czytelniejszy od tego na dole, pod warunkiem że zna składnię obu języków: https://gist.github.com/borkdude/533beb1b833828092c35

1

Jak ktoś tkwi mentalnie na przepisywaniu słów/bajtów z rejestru do rejestru i do pamięci to faktycznie kod funkcyjny nie będzie dla niego czytelny..
Ale da się z tego wyleczyć.

0

Dlatego najlepiej od początku uczyć ludzi takiego programowania (Scheme nie bez powodu było pierwszym poznawanym językiem na MIT w lepszych czasach), tak jak ten pan:

1

A mi się wydawało że nie powinno się być fanatycznym i czasami używać programowania imperatywnego a czasami programować funkcyjnie :)

1

Tak z pewnych nieoczywistych oczywistości. Zasadniczo nie ma "jednego" programowania funkcyjnego.

Co innego dynamicznie typowany Clojure, co innego hybrydowa Scala, a co innego czysty Haskell, co innego Type Level w tych ostatnich.
Można włazić na różne poziomy "static hyping".

Na użytek lambda Conf zrobili taką drabinkę ze skillami :
http://lambdaconf.us/downloads/documents/lambdaconf_slfp.pdf

(ja tam gdzieś siedzę na poziomie 2 (Fire Lubline) - jak większość...).

1

Haskell jest czystym językiem funkcyjnym o statycznym typowaniu (bla bla bla...), a tak naprawdę gdzie się może on przydać w typowym programowaniu? Czy ktoś może orientuje się jak ten język sprawdza się w połączeniu z websocketami albo z uczeniem maszynowym? Czy jeśli chodzi o biblioteki/frameworki to ma jakieś, które przebijają inne języki na głowę?

1 użytkowników online, w tym zalogowanych: 0, gości: 1