Dlaczego Kotlin jeszcze nie wyparł Javy?

Dlaczego Kotlin jeszcze nie wyparł Javy?
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 16 godzin
  • Postów:3277
0

Mam na myśli to, że mając klasę w Javie, można ją przetłumaczyć (w większości przypadków nawet automatycznie) na Kotlina, bez zmieniania jej zewnętrznego interface'u. W drugą stronę podobnie. Nulsafety w Kotlinie jest compile time, więc w Javie tego zwyczajnie nie ma i trzeba się z tym pogodzić, albo iść w Optional, czy inne vavr. Streamy z kotlina są przyjemniejsze, ale znowu da się je odtworzyć w Javie. Oczywiście, po takim szybkim tłumaczeniu kod wygląda paskudnie.

Modyfikatory dostępu - default w Javie jest porażką i Kotlin faktycznie robi to lepiej, podobnie zresztą jak klasy generyczne, ale nadal nie są to problemy nie do rozwiązania - można podbić jedno i drugie do public (tak, będzie źle), gorzej z typami generycznymi, to w tym przypadku trochę się już trzeba nakombinować.

Nie ma co toczyć świętej wojny, wiadomo, że Kotlin ułatwia pisanie i czytanie kodu, oraz prowokuje swoimi cechami do pisania go dobrze. Banał - konieczność wpisania przed każdą zmienną var, lub val wymusza świadomą decyzję (zamiast wynikającej z lenistwa) czy chcemy użyć zmiennej, czy stałej. Nazwane i domyślne parametry zwalniają z zastanawiania się, jakiej kombinacji parametrów ktoś będzie chciał użyć. I oczywiście suma tych detali sprawia, że całość robi dużą różnicę.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
3

@piotrpo:

Mam na myśli to, że mając klasę w Javie, można ją przetłumaczyć (w większości przypadków nawet automatycznie) na Kotlina, bez zmieniania jej zewnętrznego interface'

Ale mając klasę w Kotlinie, nie możesz jej przetłumaczyć na Javę.... co wyżej pokazałem.
Co kończy dowód. Kotlin to nie Java.

I oczywiście suma tych detali sprawia, że całość robi dużą różnicę.

I to jest to. Suma tych detali sprawia, że mamy zupełnie nowy język. W którym pisze się inaczej niż w javie, choć nie trzeba i teoretycznie można pisać po javowemu. Tylko, że to jest bez sensu.
(btw w Scali też można pisać jak w Javie - to tzw. scava, obecnie raczej zapomniana technika).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 16 godzin
  • Postów:3277
0

@jarekr000000: Tylko ja nie twierdzę, że Kotlin to nie jest osobny język programowania. Natomiast nadal uważam, że nie ma naprawdę dużych różnic pomiędzy K i J. Można używać zamiennie kodu w jednym projekcie, bardzo zbliżone schematy dziedziczenia, wyjątkiem są miejsca gdzie projektantów Kotlina dopadła klauzula sumienia (np. static, generyczność, podział na moduły). Widząc w którą stronę idzie Java, to jest spora szansa, że za jakiś czas będzie tego więcej, ale wciąż - to są 2 języki, a Kotlin wciąż jest przypudrowaną Javą, co ma swoje dobre strony (nie stał się kolejnym "ezoterycznym", niszowym językiem typu groovy, ale też wady - musi zachowywać kompatybilność ze szrotem i w dodatku podążać za zmianami, bo w końcu za jakieś 15-20 lat w końcu w korpo zaczną używać czegoś powyżej J8.

jarekr000000
No właśnie nie zgadzam sie na tą przypudrowaną javę. Kotlina można używać jako przypudrowanej javy, ale to tylko jedna z dostępnych opcji. Można też używać Kotlina jako Scali z połamanymi zębami, albo TypeScriptu dla ludzi, którym sie nie spieszy.
wiciu
  • Rejestracja:ponad 11 lat
  • Ostatnio:12 dni
  • Postów:1205
0

Kotlin, to Java + syntactic sugar. Wszystko co jest zrobione w Kotlinie da się uzyskać w Javie w podobnej lub tej samej liczbie linii kodu. Ficzery, które nie są wbudowane w język są zaimplementowane przez zewnętrzne biblioteki (nawet korutyny mają odpowiedniki w Javie - np. Quasar i Fibers). Można oczywiście dyskutować nad tym, że jest to third-party library, ale praktycznie każdy projekt w Javie (i Kotlinie też) korzysta z jakichś zależności. Jedynie w Androidzie Kotlin ma sens, ponieważ nie można tam korzystać z najnowszej Javy i Google wspiera ten język w dokumentacji i swoich bibliotekach, choć i tak już powoli podbijają tam wersje Javy. Kotlin daje ten plus, że wymusza pewne dobre praktyki, jak np. domyślna niemutowalność obiektów i odporność na NPE, ale i tak można je łamać pisząc kod do d**y. Natomiast trzymając się pewnych reguł, można pisać dobry kod w Javie i uniknąć problemów, które sprawia Java sama w sobie. W typowym, dobrze napisanym projekcie backendowym, nie widzę specjalnych wartości dodanych z Kotlina względem Javy.

edytowany 2x, ostatnio: wiciu
R1
Na backendzie kotlin też ma sens, radzę spróbować.
Grzyboo
Wszystko co jest zrobione w Kotlinie da się uzyskać w Javie w podobnej lub tej samej liczbie linii kodu nieprawda
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
5

Alez glupoty gadasz, ehh.

Brzmi to jak zaklamywanie rzeczywistosci zeby usprawiedliwic sobie, dlaczego sie nie chce nauczyc czegos nowego :)


λλλ
edytowany 2x, ostatnio: stivens
jarekr000000
Każdy programista kiedyś przechodzi przez etap germańskiego architekta.
Aventus
@jarekr000000: co to germański architekt?
somekind
Taki najeźdźca, tylko że architekt.
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 16 godzin
  • Postów:3277
2

@wiciu: Jeżeli Kotlin jest lepszym językiem niż Java (a to chyba dość oczywiste), to niby dlaczego nie warto go używać na backendzie, skoro i tak jest lepszy? Jak do tej pory jedyny problem który napotkałem po stronie backendu, to brak wsparcia niektórych narzędzi dla Kotlina np. w GCP debugger obsługiwał tylko Javę i opóźnione wsparcie dla Kotlina po stronie jednego narzędzia do analizy statycznej, którego raczej nie używasz.

Zobacz pozostałe 37 komentarzy
stivens
aczkolwiek ten argument a null-safety można złamać, i tak jest z d**y bo programista nie powinien chciec psuc swojego kodu. A null-safety jednak bardzo czesto pomaga. W Kotlinie mozna CELOWO zepsuc a w Javie jest ZAWSZE zepsute.
stivens
Jak zrobisz DSLa w Javie i jak bedzie wygladal? https://kotlinlang.org/docs/type-safe-builders.html
wiciu
W javie podobnego DSLa można uzyskać za pomocą wzorca builder, tylko nie będzie nawiasów klamrowych.
stivens
Builder w Javie to tak srednio przypomina DSL. Ale powiedzmy, ze efekt podobny pomijajac wzgledy wizualne.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0
Sampeteq napisał(a):

Tak jak w tytule. Dlaczego Kotlin, język dużo lepszy od Javy i którego można z Javą mieszać, jeszcze jej nie wyparł z rynku albo robi to bardzo powoli? Oczywiście chodzi mi o backend, apki webowe. Wiem, że Kotlin już jest oficjalnym językiem Androida.

Bo nie ma potrzeby zmieniać języka, frameworka itp. jak tylko pojawi się coś nowego. Pojawienie się Kotlina nie spowodowało, że Java nagle jest nieużywalna. Java jest taka sama jak wcześniej. Tak samo ktoś może powiedzieć o iPhone - dlaczego ktoś jeszcze używa modelu z poprzedniego roku, skoro właśnie pojawił się nowy model?
Dla osoby, która zaczęła naukę programowania od Kotlina czy Scali, używanie Javy 1.8 może wydawać się niedorzeczne. Mimo opinii tej osoby Java 1.8 dalej jest używana. Może studentowi chce się bujać między językami i frameworkami. Ma na to czas i chęci. A firma nie wyda miliona na przepisanie całego tylko dlatego, że ktoś w internecie powiedział, że Java ssie.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostałe 7 komentarzy
PerlMonk
@somekind: Dobrze napisałem. Żeby uczynić Javę używalną, musiałbyś spróbować jej użyć.
somekind
Nie, wtedy byłaby używana, ale nadal nieużywalna. A Twoje presupozycje są całkiem z d**y.
stivens
@somekind: tak jak juz pisalem pod innym postem, prawda jest ze z Zakopanego do Gdanska mozna dojechac koniem. Ale ludzie w XXI wieku wola samochod do tego i jesli beda zmuszeni zrobic to koniem to beda czuc bol z tego powodu. Dla ludzi ze sredniowiecza to natomiast normalka i nie beda narzekac :) Jeszcze sie beda cieszyc ze maja konia i nie musza na piechote.
stivens
Kon w 2021 roku jest taki sam jak w 1400 roku. Pojawienie sie samochodow nie sprawilo, ze nagle wszystkie umarly.
somekind
No, a poza tym jak jak dodasz do konia trochę lukru, to będzie jak samochód.
S9
  • Rejestracja:około 4 lata
  • Ostatnio:około 2 lata
  • Lokalizacja:Warszawa
  • Postów:1092
2

@PerlMonk: Twój argument miałby sens gdyby nie powstawały nowe aplikacje. O ile przepisanie starej kobyły rzeczywiście jest bez sensu i słabe, to nowy (mikro)serwis można napisać w Kotlinie.
A jak ktoś umie Jave to Kotlina nauczy się w tydzień maks dwa.


edytowany 2x, ostatnio: scibi_92
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2

@scibi_92: nowe projekty też są pisane w Javie. Dzieje się tam niezależnie od tego czy widzisz sens.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
3

@PerlMonk: ale takie decyzje nie sa podejmowane pod wzgledem technicznym (czyt. nie pada java jest lepsza - a nawet jesli pada to raczej trudno to na powaznie brac) ale czysto subiektywnym. A ten subiektywizm polega na tym, ze nie umiemy, nie chce nam sie uczyc. :P


λλλ
edytowany 1x, ostatnio: stivens
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2

@stivens: tekst, że "Kotlin jest lepszy" padło w pierwszym poście tego wątku. To właściwie nakreśliło kierunek w jakim zmierza ta dyskusja. Nie jest to bynajmniej rzetelne i obiektywne porównanie języków.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
edytowany 1x, ostatnio: PerlMonk
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
2

No bo jest. Jedyne co Java ma lepsze to wieksza spolecznosc. Ale to jest takie bledne kolo bo cos jest popularne bo jest popularne.


λλλ
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1

Wydać ocenę z kosmosu każdy może. Jak już pisałem, ta ocena nie ma żadnego wpływu na wiele projektów. Decyzję podejmują osoby... które mają wpływ na projekt.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostałe 8 komentarzy
stivens
@PerlMonk: jak chcesz sie tak przepychac glupimi komentarzami to "co jak kon zdechnie"?
PerlMonk
To nie pisz głupich komentarzy.
stivens
Ale tak to wlasnie dziala. Dla Ciebie to przeciez oczywiste ze koniem sie da. I to prawda ze sie da. Ale dla mnie ciezarowka jest lepiej, szybciej, wiecej.
stivens
I zeby nie bylo ze odlecialem. To ze ludzie w sredniowieczu uzywali konia do transportowania towaru po calym kontynencie bylo dobre. Wtedy nie bylo za specjalnie alternatywy. Ale anno domini 2021 chyba zadna powazne firma transportowa by tak nie robila, chociaz "dziala" :)
stivens
W szczegolnosci tutaj nie chodzi o to czy cos jest konieczne, absolutnie wymagane, tylko o to czy cos jest lepsze.
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
1

Nom. Ale jak niby to stoi w opozycji do:

@PerlMonk: ale takie decyzje nie sa podejmowane pod wzgledem technicznym (czyt. nie pada java jest lepsza - a nawet jesli pada to raczej trudno to na powaznie brac) ale czysto subiektywnym. A ten subiektywizm polega na tym, ze nie umiemy, nie chce nam sie uczyc. :P
?


λλλ
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1

@stivens: nie ma potrzeby, żeby to stało w opozycji.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
2

No to chyba sie zgadza. Decyzje podejmuja osoby, ktore maja wplyw na projekt ale niekoniecznie taka decyzja musi byc uzasadniona technicznie.


λλλ
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1

Na pewno nie jest technicznym uzasadnienie z internetu w stylu "Kotlin jest lepszy", bo to tylko ocena. Techniczne aspekty są np. wydajnościowe albo finansowe. To są twarde dane.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
2

Null safety majace wplyw na awaryjnosc/dostepnosc a przez to na finanse to dobre dany czy slabe?


λλλ
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1
stivens napisał(a):

Null safety majace wplyw na awaryjnosc/dostepnosc a przez to na finanse to dobre dany czy slabe?

Czy użycie tego spowoduje, że moja firma zarobi 20 milionów w ciągu pół roku?


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
1

Czy użycie tego spowoduje, że moja firma zarobi 20 milionów w ciągu pół roku?

A czy uzycie Javy to sprawi? XD Moze jeszcze zapytaj czy Ci da niesmiertelnosc bo bys tak chcial? Nie uciekaj w absurd.


λλλ
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1

No tak, Oracle używa Javy i zarabia dużo więcej.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
edytowany 1x, ostatnio: PerlMonk
stivens
wynikania przyczynowo skutkowego stwierdzono 0
SA
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:94
3

@PerlMonk: Mam wrażenie, że jesteś trollem i twoje komentarze nic nie wnoszą do tematu.

p_agon
Odniosles mylne wrazenie.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1
Sampeteq napisał(a):

@PerlMonk: Mam wrażenie, że jesteś trollem i twoje komentarze nic nie wnoszą do tematu.

Napisałem, że decyzja odnośnie wyboru języka należy do osób utrzymujących projekt. Dlaczego uważasz, że to trolling?


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
PA
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 lata
  • Postów:426
1
PerlMonk napisał(a):
stivens napisał(a):

Null safety majace wplyw na awaryjnosc/dostepnosc a przez to na finanse to dobre dany czy slabe?

Czy użycie tego spowoduje, że moja firma zarobi 20 milionów w ciągu pół roku?

Niestety takie coś skaluje się wedle istniejących obrotów firmy.
Stronka restauracji nie zarobi/straci 20 milionów przez buga, którego można było uniknąć, gdyby typy były mocniejsze - bo to nawet nie jest blisko skali na jakiej taki biznes operuje.

Napisałem, że decyzja odnośnie wyboru języka należy do osób utrzymujących projekt. Dlaczego uważasz, że to trolling?

I te osoby jakoś dożywotnio się zapisały na utrzymywanie tego projektu? Ewentualnie potem będzie można sobie przepisać projekt, jeżeli skład się zmieni?

stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
2

Wydać ocenę z kosmosu każdy może

tylko kto tutaj wydaje oceny z kosmosu? Osoby ktore uzywaly wczesniej Javy i sie przerzucily na Kotlina (wiec maja doswiadczenia z tym i z tym) czy osoby, ktore cale zycie klepia w Javie i nawet nie czuja potrzeby sie przyjrzec glebiej co to za keczup? Bo "w Javie i tak sie da wszystko zaklepac, czasami tylko troche wiecej kodu trzeba albo brzydziej jest, czasem NPE wywali produkcje ale no generalnie dziala to po co zmieniac".


λλλ
edytowany 6x, ostatnio: stivens
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0

I te osoby jakoś dożywotnio się zapisały na utrzymywanie tego projektu? Ewentualnie potem będzie można sobie przepisać projekt, jeżeli skład się zmieni?

Te osoby mogą przeanalizować sytuację i stwierdzić czy przepisać projekt. Każdy zespół może wziąć pod uwagę różne rzeczy a innych nie zauważyć. Podam przykłady:

  • czy będzie trzeba płacić za licencję,
  • ile czasu potrwa przepisywanie,
  • czy będzie można użyć tych bibliotek, które mamy,
  • czy dzięki tym zmianom poprawki do projektu będą powstawać szybciej,
  • czy i jakie jest wsparcie producenta/ społeczności.

Jeśli projekt jest bardzo duży, to może się okazać, że lepiej napisać apkę od nowa, niż kopiować jeden do jednego. To jednak wymaga planowania, projektowania itp. To też jest koszt. Firma może nie mieć kasy na utworzenie nowego zespołu. A jeśli miałby to robić ten sam zespół, to nie dość, że muszą utrzymywać dotychczasowy projekt, to jeszcze pisać nowy. To potrwa. Pozostałe wymienione przeze mnie punkty też da się rozwiązać, ale wszystko może wymagać czasu, czyli kasy.
Przy przepisywaniu apki od nowa wychodzi kolejna rzecz: jest ona projektowana według obecnego stanu wiedzy. Pierwsza wersja w Javie mogła powstać 20 lat temu. Teraz może być inne podejście do programowania, może być więcej specjalistów. Aplikacja może być lepiej zaprojektowana nie dlatego, że ktoś użył języka X, ale dlatego, że obecny zespół zrobił to lepiej. A może język miał na to wpływ. Albo jedno i drugie. Ktoś może mieć mylne przekonanie, że tylko przesiadka na nowy język spowodowała zmianę na lepsze.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 16 godzin
  • Postów:3277
3
part napisał(a):

Niestety takie coś skaluje się wedle istniejących obrotów firmy.
Stronka restauracji nie zarobi/straci 20 milionów przez buga, którego można było uniknąć, gdyby typy były mocniejsze - bo to nawet nie jest blisko skali na jakiej taki biznes operuje.

Ale czas developmentu i stabilizacji ma znaczenie dla kosztów projektu, a zmniejszenie o połowę unchecked exceptions ma wpływ na ilość pracy, jaka będzie potrzebna

Napisałem, że decyzja odnośnie wyboru języka należy do osób utrzymujących projekt. Dlaczego uważasz, że to trolling?

I te osoby jakoś dożywotnio się zapisały na utrzymywanie tego projektu? Ewentualnie potem będzie można sobie przepisać projekt, jeżeli skład się zmieni?

Mówimy o decyzji Java/Kotlin. Jeżeli jesteś programistą Java, to potrzebujesz kilku godzin na przerobienie tutoriala nowego języka i jesteś programistą Kotlin, mającym taki sam potencjał jak w Java. Potrzebujesz jeszcze kilku tygodni pracy w tej technologii, żeby zacząć myśleć po Kotlinowemu, ale taski jesteś w stanie robić praktycznie od razu. Przez trzy dni ponarzekasz, że jest "inaczej", po miesiącu będziesz czuł ból wracając do kodu w Javie. Ale nawet jak już do niej wrócisz, to będziesz lepszym programistą, bo np. nawyk unikania nulli zostaje, kiedy kompilator spuszcza ci łomot co chwilę znajdując miejsca gdzie jednak o czymś zapomniałeś.

Charles_Ray
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 14 godzin
  • Postów:1873
6

Kotlin nie wyparł Javy, bo Javowcy nie mogą tam zrobić staticów, ani z cichca zwrócić nulla ;)

Tak na serio, to chyba trzeba kogoś, kto zapitchuje Kotlina w zespole (a zwykle też wyżej w org). Mało nowych aplikacji powstaje w Kotlinie, bo zwykle startują je doświadczeni developerzy, którzy jeszcze nie poznali Kotlina (może nie chcą poznać, bo przecież wtedy byliby juniorami).


”Engineering is easy. People are hard.” Bill Coughran
Zobacz pozostałe 23 komentarze
WeiXiao
nie wiem, niby tak, a z drugiej strony jakoś bałbym się robić refactory narzędziem, które nie jest AST-aware. A co z Intellisensem np. co dany typ ma?
jarekr000000
Dowcip jest taki, że jakbym miał zwykły projekt w haskellu to by to intellij nawet nieźle ogarnął ( byłaby nawigacja po kodzie i podpowiadanie). Ale mam kobyłki, gdzie haskell to i tak jeden z najbardziej prostolunijnych języków, jest skomplikowany build i ide padają.
jarekr000000
@WeiXiao: no właśnie - przyzwyczajenia ze średnio typowalnych języków, z jakimiś niebezpiecznymi elementami typu refleksja w runtime. W haskelku w najgorszym razie dostaniesz błąd kompilacji, a i do tego trzeba pecha.
vpiotr
Pod Windows najlepszy uniwersalny tool do refactoringu: https://www.powergrep.com/
jarekr000000
Żeby nie było: https://preview.redd.it/dbdshzzflgd31.jpg?auto=webp&s=989c6f6e8f7c2e81803aae6c110b565a59e773f4 jakkolwiek, IDE w takich językach nie jest aż tak niezbędne do życia jak w javie
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
2

Wychodzi na to, ze Kotlin nie wyparl Javy bo Javovcy nawet nie poswiecaja chwilki zeby przejrzec dokumentacje Kotlina. I mimo nie przejrzenia tej dokumentacji, nieprzeczytania ksiazki czy cokolwiek oglaszaja wszem i wobec w internetach, ze przeciez Java ma wszystko to co Kotlin :P chociaz nawet nie wiedza tak na prawde co ten Kotlin ma.

Zalacznik:
screenshot-20211103151857.png

To troche tak jakby ktos od C wszedl do C++ ale nie nauczyl sie niczego co C++ dodaje wzgledem C. I wtedy jedyna roznica dla niego jest to, ze zamiast uzywac kompilatora gcc to uzywa g++. No i mowi potem wszystkim, ze ten C++ to przeciez nic nie dodaje i rownie dobrze mozna w C pisac. No kompiluje sie przeciez. Ale logiki brak.


λλλ
edytowany 6x, ostatnio: stivens
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
2

Wychodzi na to, ze Kotlin nie wyparl Javy bo Javovcy nawet nie poswiecaja chwilki zeby przejrzec dokumentacje Kotlina

Po pierwsze:
No jasne.
A dlaczego mieliby? To nie jest jakiś obowiązek. Jest tony innych języków i dokumentacji, których nie przeczytali ani Javowcy, ani Kotlinowcy. A niektóre byłyby nawet bardziej przydatne.

Po drugie:
Wyciągasz ogólny wniosek z kilku przypadków.

Po trzecie:
IMO nic czytanie tej dokumentacji by nie dało. Doputy człowiek nie poczuje, że jednak zupełnie inaczej się pisze to będzie powtarzał pierdoły o lukrze syntaktycznym.
Coś takiego samego odbywało się w czasach C/C++ - jak ktoś jako C++ widział C z klasami (czyli dominujący styl jeszcze 20 lat temu) to mógł być lekko rozczarowany co do hype.


jeden i pół terabajta powinno wystarczyć każdemu
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)