The End Of Java? (inaczej niż zazwyczaj)

1

Tak wiem, opowieści o śmierci Javy są ulubionym tematem, ale na jednej z nauczycielskich grup facebookowych pojawiła się taka wiadomość:

///////////////////////////////////////////////////////
Drogie koleżanki i koledzy. Chciałem zapytać się Was co uważacie na temat nowej decyzji Google'a. Chodzi mi dokładnie o zapowiedź nowego OS (Fuchsia) i zmian, które to wprowadzi (całkowita rezygnacja z języka Java). Jest oficjalne stanowisko i w teorii, maksymalnie do 5 lat zajmie im całkowite przejście na Fuchsie, a co za tym idzie, rezygnacja z Androida (oficjalne słowa z Google). Głównymi językami ma być Dart, C#, Swift. Nie ukrywam, że jestem trochę zniesmaczony, w swojej pracy wśród uczniów od zawsze promowałem Java'e jako język najbardziej rozpowszechniony, multiplatformowy, wielowątkowy z ogromnym wsprarciem i zastosowaniem. Teraz czuję się, jakbym ich oszukał ponieważ Java nie będzie już stosowana na urządzeniach mobilnych (5 lat...), pozostanie językiem backend'owym, a większość uczniów dlatego wybierała Java'e jako język do nauki.

Stanowisko Google w tej sprawie jest oficjalne i zatwierdzone, także pytanie pozostaje, co teraz? Wrócić do C? Uczyć kilka języków, ale bez wchodzenia w arkana? Uczyć dalej Java'y i obserwować co czas pokaże?
///////////////////////////////////////////////////////

Ponieważ sam pracuję jako nauczyciel i dokładnie to samo mam, co autor ww wiadomości, więc wrzucam tu z pytaniem nie tyle, czy Java Umiera I Czy Jest Sens Się Jej Uczyć, ale czy faktycznie tak będzie, że z języka, który miał być uniwersalny, faktycznie Java stanie się odpowiednikiem PHP dla biznesu? Bo aplety zostały wycofane, Android odejdzie, na desktopach i GUI Java się nie odnalazła chyba nigdy, więc co mówić uczniom? Jakie jest tego języka zastosowanie i przyszłość, jak myślicie?

3

Jakoś sceptycznie oceniam, żeby cokolwiek miało realne szanse wygryźć Windowsy z desktopów. Może się mylę, ale podejrzewam, że udział tego systemu w rynku będzie zbliżony do tego, co obecnie posiadają Linux i Mac razem wzięte.

A w temacie bycia nauczycielem - zależy to chyba od tego, czego się konkretnie uczy i na jakim poziomie. Oczywiste jest, że inaczej się prowadzi zajęcia w gimnazjum, inaczej na uczelni, a jeszcze inaczej na jakimś kursie dedykowanym jednej technologii. Ogólnie powinno się uczyć programowania - czyli sposobu rozwiązywania danych problemów, myślenia analitycznego i umiejętności przekładania tych myśli na język zrozumiały dla maszyny. A tak podchodząc do sprawy - wybór języka jest sprawą wtórną. Zresztą nawet dla dobra uczniów fajnie by było pokazać kilka alternatyw i możliwości, chociaż trochę naświetlić temat z różnych stron.

1

Stanowisko Google w tej sprawie jest oficjalne i zatwierdzone Mógłbym prosić o link do źródła?

[...] Java nie będzie już stosowana na urządzeniach mobilnych Od Google IO 2017 oficjalnym językiem androida jest Kotlin a nie Java. Fakt nadal to JVM ale Java na Androidzie odchodzi od lamusa już ponad rok.

Teraz czuję się, jakbym ich oszukał,[...] większość uczniów dlatego wybierała Java'e jako język do nauki. Tak wygląda świat IT, jedne języki zastępują inne, jedne frameworki zastępowane są przez inne. Trzeba to zaakceptować. Nie okłamywałeś ich, na swój poziom wiedzy/obeznania mówiłeś prawdę. Nie jesteś w stanie przepowiedzieć przyszłości - realia się zmieniły trzeba wziąć na to poprawkę.

1
  1. Gdzie owa oficjalna wypowiedź Google'a powodująca panikę?
  2. Większość wybiera Javę ze względu na Androida? A ile jest Androida wśród ofert dla Javowców? Jeśli większość się nastraja na Androida, a pracuje w backendzie to jest oszukana już teraz.
  3. Głównymi językami ma być Dart, C#, Swift - C# na platformie Androida? Jaki w tym sens? Co już w tym C# jest zrobione pod Fuchsię i przez kogo?
  4. Android to przystawka do Javy. Nawet gdyby go Google zaorało za 5 lat to to nie wstrząśnie to światem Javy, tak samo jak śmierć Windows Phone nie uśmierciła C#.
1

Java bez Androida nadal będzie miała się dobrze. O to czy Google porzuci Androida można pytać wróżbitów, bo Google jest firmą, która rzadko przedstawia swoje stanowisko jasno i klarownie. Nawet jeśli zdecydują się porzucić, to Android o ile wymrze w ogóle, to nie szybciej niż za jakieś 10 lub więcej lat.

lubie_programowac napisał(a):

[...] Java nie będzie już stosowana na urządzeniach mobilnych Od Google IO 2017 oficjalnym językiem androida jest Kotlin a nie Java.

Java jest nadal oficjalnym językiem na Androida. Od 2017 Kotlin jest oficjalnie wspierany obok Javy, ale Javy nie wyparł.

lubie_programowac napisał(a):

Fakt nadal to JVM ale Java na Androidzie odchodzi od lamusa już ponad rok.

Pewnie skrót myślowy, ale Android to nie JVM.

0

A Kotlin to nie czasem jest stworzony w Javie? Aby rozwijać Kotlina trzeba pisać kod w Javie czy nie? Dla mnie Java jest problematyczna, bo sporo staroci w niej jest i ten język staje się dziwny. Chętnie zobaczylbym Darta ale wymaga on jeszcze przynajmniej kilku lat i reorganizacji dokumentacji, poradników i popularności. To język rozwojowy a nie do korzystania ja codzień. Tak mi się wydaje.

1

Fuchsia's capability to run on universal devices, from embedded systems to smartphones, tablets and personal computers

Jakaś mała firemka podejmuje się pisania OSa?

jeszcze niech stanie się popularny, to bydzie eksploitów hehe

btw.

Can Google Fuchsia be used a web browsing OS yet?

No, It is in very initial phase. It just crashes with even layout changes.

Wróćmy do tematu za 3 lub 5 lat, i wtedy gdy będzie można ocenić czy za kolejne 5 lat to w ogóle zaczynało przypominać konkurencje :D

Czyli nadal możesz uczyć javy, bo zanim to pisklę wyjdzie, to któryś student już może mieć 10 lat expa w branży

Fuchsia has already caused internal disputes at least once, when Google's advertising department clashed with engineers over Fuchsia's increased privacy features. The ad team won that particular dispute (...) ciekawe czy to prawda :)

https://9to5google.com/guides/fuchsia/

0

Przeciez to się kupy nie trzyma, C# na mobilki zamiast Kotlina? WTF

3

Zastanawia mnie po co w ogóle robią tą Fuchsię? Jak na razie jedynym sensownym argumentem jest tworzenie OSa pod bardzo słabe urządzenia, ciągnące bardzo mało prądu (mniej niż smartwatch). Z drugiej strony jeśli tworzenie Fuchsii ma zająć im jeszcze wiele lat (podobno jak na razie jest tak zbugowana, że zmiana layoutu wykłada system) to te słabe urządzenia staną się dużo mocniejsze. Taki Raspberry Pi spokojnie może uciągnąć Linuksa, a jest super tanim i oszczędzającym prąd sprzętem.

1

Ciężko mi znaleźć jakiś rozsądny powód dla Fuchsii. Widzę teoretycznie dwa, ale to bardziej gdybanie.

  1. Google chce się odciąć od Javy ze względu na spory z Oraclem.
  2. Google chce stworzyć ekosystem w rodzaju Appla dla swoich urządzeń. Android jest teraz strasznie pofragmentowany. Aktualizacje systemu czy bezpieczeństwa są zależne głównie od dostawcy urządzenia. Jest to uciążliwe zarówno dla użytkowników jak i programistów.
1

@Wibowit: zgadzam się. Zresztą że znalezionych w necie opinii bardzo mi się spodobała taka, że w wypadku androida największym problemem jest interface. A Google chce zrobić nowe jądro (z którym nie ma problemów) i na to dać interface androida.

Tak samo nie czuję (pisze w oparciu o informację w necie) jakoś sensu wrzucania tego na desktopa.

Podsumowując - na mobilach dużo to nie zmieni, na kompach nie przyjmie się. WTF?

1
cerrato napisał(a):

@Wibowit: zgadzam się. Zresztą że znalezionych w necie opinii bardzo mi się spodobała taka, że w wypadku androida największym problemem jest interface. A Google chce zrobić nowe jądro (z którym nie ma problemów) i na to dać interface androida.

Tak samo nie czuję (pisze w oparciu o informację w necie) jakoś sensu wrzucania tego na desktopa.

Podsumowując - na mobilach dużo to nie zmieni, na kompach nie przyjmie się. WTF?

Wydelegowali tylko/aż 100+ devów, aby coś tam kodzili i obstawiam, że: jak wyjdzie to fajnie "hehe patrzcie mamy swojego OSa", a jak nie to ¯\_(ツ)_/¯

1

Google chce się odciąć od Javy ze względu na spory z Oraclem.

Nie trzeba do tego nowego jądra. Ba, nawet nie trzeba nawet wywracać Androida do góry nogami. Wystarczyłoby rozszerzyć natywne API tak by dało się z nim zakodować to samo co z poziomu Javy (bez kombinacji typu gadanie C++ z Javą).

Google chce stworzyć ekosystem w rodzaju Appla dla swoich urządzeń. Android jest teraz strasznie pofragmentowany. Aktualizacje systemu czy bezpieczeństwa są zależne głównie od dostawcy urządzenia. Jest to uciążliwe zarówno dla użytkowników jak i programistów.

By zmniejszyć fragmentację Google stworzyło Project Treble, który wszedł w Androidzie 8.0 Oreo. Nie wiem czy to dużo zmieni. Pewnie wsparcie będzie trochę dłuższe, ale nie sądzę by na dłuższą metę była jakaś rewolucja. Apple ma niską fragmentację, bo ma mało konfiguracji sprzętowych, na które musi przygotować nowe wersje iOSa. A na Androidzie chyba lepiej mieć starszą, a dopracowaną wersję systemu niż nowszą, ale przystosowaną do nowego sprzętu na szybko i bez odpowiedniej kontroli jakości.

Microsoft ma własny system nad którym ma 100% kontroli, własny język oprogramowania, itp itd a czy Windows Phone/ Windows Mobile/ Windows Ciucubabka/ whatever uchronił się od fragmentacji? Nie, chociaż konfiguracji sprzętowych dla Windowsa Phone było sporo mniej niż dla Androida. Microsoft zdecydował - na ten telefon udostępnimy nowe WP, a na tego nie. I tyle.

Apple to bardzo specyficzny producent, bo ilość modeli smartfonów można policzyć na palcach. Co prawda do liczenia trzeba też zaangażować palce u stóp, ale to dalej malutko w porównaniu do tego co się dzieje w świecie Androida. iOS 11 jest dostępny dla 11 konfiguracji sprzętowych smartfonów:
iPhone 5S
iPhone 6
iPhone 6 Plus
iPhone 6S
iPhone 6S Plus
iPhone SE
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
Które 11 modeli smartfonów z Androidem powinno mieć wsparcie przez co najmniej 5 lat, by można było powiedzieć że Google postarało się tak dobrze jak Apple?

0
Wibowit napisał(a):

Nie trzeba do tego nowego jądra. Ba, nawet nie trzeba nawet wywracać Androida do góry nogami. Wystarczyłoby rozszerzyć natywne API tak by dało się z nim zakodować to samo co z poziomu Javy (bez kombinacji typu gadanie C++ z Javą).

Tak i nie. Można to tak rozwiązać, ale wtedy efektywnie masz nowy ekosystem dla programistów. Dodatkowo, Google musiałby zadbać o jakąś bezbolesną migrację obecnych aplikacji Androidowych napisach w Javie, żeby firmy mogły kontynuować swoje produkty (o ile to byłoby w ogóle pragmatycznie osiągalne). Nowy system daje od razu dodatkową możliwość naprawienia błędów poprzedniego. Aczkolwiek zgadzam się, że nie trzeba całkowitej rewolucji, żeby pozbyć się Javy.

Wibowit napisał(a):

By zmniejszyć fragmentację Google stworzyło Project Treble, który wszedł w Androidzie 8.0 Oreo. Nie wiem czy to dużo zmieni. Pewnie wsparcie będzie trochę dłuższe, ale nie sądzę by na dłuższą metę była jakaś rewolucja.

Szczerze, tak średnio wierzę, że Treble będzie tak istotny, jak go zapowiadają. We fragmentacji systemu nie chodziło mi tylko o aktualiazcje, mimo że to o nich napisałem. Rzeczy takie jak Bluetooth, Wi-Fi, serwisy systemowe itd. potrafią się często i gęsto inaczej zachowywać w zależności od producenta. Pamiętam, że Huawei kiedyś zmienił wartość zasobu koloru transparent na kolor biały i jeżeli ktoś się odwoływał do tego zasobu, to mógł się zdziwić na tych telefonach. Innym razem, Samsung zmienił nazwę pól prywatnych z aktualizacją systemu i aplikacje na Samsungach zaczęły się crashować, bo jedna z popularnych bibliotek korzystała akurat z refleksji dla tej zmiennej. Wymieniać można długo.

Wibowit napisał(a):

Apple ma niską fragmentację, bo ma mało konfiguracji sprzętowych, na które musi przygotować nowe wersje iOSa. A na Androidzie chyba lepiej mieć starszą, a dopracowaną wersję systemu niż nowszą, ale przystosowaną do nowego sprzętu na szybko i bez odpowiedniej kontroli jakości.

Które 11 modeli smartfonów z Androidem powinno mieć wsparcie przez co najmniej 5 lat, by można było powiedzieć że Google postarało się tak dobrze jak Apple?

Dokładnie. Stąd też moje podejrzenie, że Google może chcieć sobie ujednolicić i zmonopolizować Fuchsię, ale to bajdurzenie przez wielkie B.

1

Ja tam bym się nie doszukiwał jakichś specjalnych przyczyn pracy nad tym systemem. Ot, taki mieli kaprys i już - a pokazywali nie raz, że lubią tak postępować. A że przy tym chcą wywrócić cały dotychczasowy układ do góry nogami to inna sprawa.

Mnie Fuchsia nie przekonuje, przede wszystkim dlatego, że nie lubię jednego rozwiązania do wszystkiego. Z tego powodu nie leży mi Xamarin czy JavaScript - jak coś jest do wszystkiego, to jest do niczego.
Pomijam już fakt, że Fuchsia wygląda jak Android na komputer, i dla mnie, jest to bardzo niepraktyczne.

Natomiast, żeby nie przesadzać już tak z krytyką, to fajna jest idea jądra - tutaj wygląda to całkiem sensownie.

0

Ciekawe tylko czemu G szuka dżawowców. Pewnie przez przekorę.

0

Rzeczony artykuł: https://www.bloomberg.com/news/articles/2018-07-19/google-team-is-said-to-plot-android-successor-draw-skepticism a w nim takie rzeczy:

Tytuł:

Project ‘Fuchsia’: Google Is Quietly Working on a Successor to Android

Quietly oznacza iż Google niczego oficjalnie nie powiedziało. Tutaj w zasadzie można by zakończyć czytanie, ale idźmy dalej.

W artykule mamy wielokrotnie takie kwiatki jak:

According to one of the people
one person said

A więc dalej nie ma nic oficjalnego. Ponadto określenia użyte w artykule nie stwarzają wrażenia, że projekt jest poważny:

More than 100 engineers are working on skunkworks Fuchsia OS
For more than two years, a small and stealthy group of engineers within Google has been working on software that they hope will eventually replace Android
But Pichai and Hiroshi Lockheimer, his deputy who runs Android and Chrome, have yet to sign off on any road map for Fuchsia, these people said.
Despite the engineering pedigree and support for Fuchsia, Google has yet to unveil a real-world use of the software
One person who has spoken to Fuchsia staff described the effort simply: "It’s a senior-engineer retention project."

Przygotowywanie się pod Fuchsię to bardzo ryzykowny zakład.

0
lubie_programowac napisał(a):

Stanowisko Google w tej sprawie jest oficjalne i zatwierdzone Mógłbym prosić o link do źródła?

Autor odpisał mi na FB tak:

///////////\//\///
Z oficjalnej konferencji Google IO 2018. Dodatkowo wspolpracuje z pracownikami Google i potwierdzili

Na forach zagranicznych ludzie strasznie trabia na ten temat. Quora jest czerwona.
///////////\//\///\

4

Nie zdziwiłbym się gdyby Google chciał, żeby Fuchsia zastąpiła Androida, ale jest ogromna różnica między oficjalnym stanowiskiem a tym, że ktoś komuś gdzieś powiedział na konferencji. Z tym trąbieniem na zagranicznych forach, to też nie do końca. Śledzę to raczej na bieżąco i jest więcej pytań niż jakichkolwiek odpowiedzi. Tak naprawdę, to każdy widzi co chce. Znajdziesz artyukuły o wszystkim - "React Native wygra", "PWA jest zbawieniem", "Natywne apki są przyszłością", "Rynek mobilny odejdzie do lamusa", "Rynek mobilny silniejszy niż kiedykolwiek", "Android niedługo zostanie zastąpiony przez Fuchsię", "Flutter odpowiedzią na wszystko", "Google rozważa Swift jako język na Androida". Każdy będzie chwalił swój grajdół.

Jedyne co można z tego wszystkiego wynieść, to nie przywiązywać się do technologii.

0

Odpowiedź autora jest mocno niepoważna. Bez podlinkowania źródeł każdy sobie może tak napisać

1

"Wycieki pracownicze" już się ludziom znudziły, więc mamy teraz "Google Is Quietly Working on a Successor to Android" z tym że projekt jest dostępny w sieci.
https://fuchsia.googlesource.com/

No i te "sekretne artykuły" wszędzie... https://arstechnica.com/gadgets/2018/01/googles-fuchsia-os-on-the-pixelbook-it-works-it-actually-works/

1

Składnia Darta jest bardzo podobna do Javy, przesiadka to pryszcz.

0

Java kojarzy się z początkiem XXI wieku, apletami, starym, brzydkim i wolnym GUI, topornym i brzydkim Eclipse oraz Netbeans. 2018 a ludzie nadal piszą w tym brzydkim Eclipse, który nie potrafi zrobić estetycznego ciemnego interfejsu, tak samo Netbeans. Może warto odciąć się od staroci i na nowo zrobić język który będzie pozbawiony dziwnych konstrukcji językowych i nie będzie wyglądał jak JavaScript że swoimi ({{{}}}) ;D

1

Java kojarzy się z początkiem XXI wieku, apletami, starym, brzydkim i wolnym GUI

C++ kojarzy mi się z latami 90-tymi, starym, paskudnym i cholernie wolno działającym systemem :]

Zresztą co za różnica z czym się starym prykom Java kojarzy? Może się nawet im kojarzyć z kupą, nie ma to większego znaczenia. Emeryci są uprzedzeni do smartfonów, a Błękitny Kura do Javy.

0

A mi Java kojarzy się ze snem (bo czy to sen, czy to jawa jest)

No i w pracy też się zdarza przespać (żart :) )

1

Fuchsia to system modularny oparty na architekturze mikrokernela. Google chce na nim stawiać wszystko. Od pralek i lodówek po PC. Pisany jest z myślą o IoT.. Nawet jeżeli Google by się z wycofało z Andka to nie ma szans by Android jako projekt upadł ponieważ jest on otwartoźródłowy i cała masa różnych korpo i poniejszych firemek będzie nadal go wspierać. A co do GooglePlay to już istnieje wiele różnych alternatyw. Nawet gdyby rzeczywiście wprowadzono Fuchsię w przyszłym roku to wycofywanie się z Andka zajmie pewnie dziesięciolecia, a poza tym wcale nie jest pewne, że rynek ten projekt przyjmie z entuzjazmem. Fuchsia być może podzieli los serwisów społecznościowych Googla, których popularność jest praktycznie zerowa. Na pewno fajne jest wielojęzykowe API, ale to czy uda się im to zrealizować i że projekt spotka się z entuzjazmem społeczności wcale pewne nie jest.

3

wcale nie jest pewne, że rynek ten projekt przyjmie z entuzjazmem

Problemem jest to, że biorąc pod uwagę pozycje Google oraz Androida, rynek za bardzo nie będzie miał nic do gadania. Po prostu - zostaniemy postawieni przed faktem, że Android znika, a zamiast niego jest coś innego. Ludzie po prostu uznają, że tak ma być i tyle. Może część przejdzie na apple czy Ms, ale ogromna większość nie będzie tego rozkminiać. Zwłaszcza, że dla przeciętnego śmiertelnika, przesiadka z Androida 4 na 6/7 jest i tak totalną rewolucją, więc przesiadka z Androida na coś innego będzie podobnie skomplikowana.

Po pewnym czasie nowy system wyprze Androida, a my - chcąc czy nie - będziemy musieli się dopasować. Twórcy aplikacji mobilnych przerobią swoje apki na "coś nowego", podejrzewam, że Google doda do "nowego" systemu (przynajmniej na początku) jakiś emulator Androida albo coś innego, co spowoduje, że będzie można odpalać apli androidowe. Developerzy zaczną pisać wszystko na nową platformę, a za kilka lat ludzie zapomną, że takie coś jak Android istniało...

1
cerrato napisał(a):

za kilka lat ludzie zapomną, że takie coś jak Android istniało

Przecież prawie wszyscy ludzie, używający telefonów, nawet dziś nie wiedzą że coś takiego jak Android istnieje. Wyjdź na ulicę, zrób ankietę (najlepiej wśród osób 50+) i zadaj pytanie, czy wiedzą co to Android.

2

Największym zagrożeniem dla javy to jest Oracle, który strasznie chce na javie zarabiać, ale jeszcze nie do końca chyba wie jak, przez co straszy różne większe firmy.

Wystarczy wspomnieć proces vs google lub najazdy prawników w sprawie korzystania z java flight recorder. Żeby było śmieszniej to cena za flight recorder była coś 5k usd za jeden core, więc firmy pukały się w czoło. Jeden gość mi mówił, że mieli wrażenie, że początkowo cena za ten komercyjny support to była na zasadzie: mamy nadzieję, że nikt tego nie kupi, bo będziemy musieli ten support faktycznie zorganizować. (Btw. ale niestety trochę firm kupiło :-) ).

Problem z tym, że sumy na razie zarabiane na javie to podobno totalne nic przy tym co oracle dostaje z baz danych i aplikacji (typu twory peoplesoft). To jest lekkie przekleństwo, bo z jednej strony widać, że oracle ma dużo więcej mocy (od Sun), żeby pchać javę do przodu (i to robi). Z drugiej strony przypadkowe ubicie Javy prawie ich nie zaboli.

Widać, że oracle kombinuje (odchudzenie javy - typu wywalenie JavaFX, odcięcie się od JavaEE) nowa polityka wersji i ma szansę coś zarobić, tylko jest obawa, że przedobrzy i wystraszy duże firmy (google chyba już wystraszył...).

Może dojść do systuacji, że fajny JVM z OpenJDK będzie, ale jak będziesz chciał mieć prawdziwie nieziemską wydajność (z GraalVM) to będzie trzeba popłacić i to sporo.
(Btw. znowu uważam, że to nic złego - np. azul od dawna żyje z "lepszego" vm, więc czemu oracle nie miałby na tym zarabiać? Tylko jest ryzyko, że ktoś coś przedobrzy).

Z ciekawostek - zmiana nazwy konferencji z JavaOne na CodeOne, jak również wprowadzenie programu dev champions (promowanie chmury oracla), który wypiera java champions powoduje, że jest niepewność nawet wśród ewangelistów javy.

W sumie dla mnie pytanie jest raczej o przyszłość JVM, a nie o Javę. Z javy łatwiej mi się wypisać niż z JVM.
I czy jakaś masa krytyczna firm przenienie sie na coś innego.

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