Jak wie każdy programista Java, Oracle kupił firmę Sun, a przyszłość Java jest dość niejasna, zwłaszcza że Oracle chce zarabiać na JVM. Java jako język była również przestarzała w ciągu ostatnich kilku lat, niewłączenie zamknięć jest jednym przykładem (który może być zawarty w java 1.8). Jednocześnie wykorzystywane są niektóre nowe technologie, takie jak Ruby, Scala i Groovy dostarczać złożone witryny.
Zastanawiam się, czy istnieją firmy lub organizacje, które mówią, robią impulsy lub zaczynają korzystać z innej technologii, z pomysłem, aby przestać używać java do projektów zielonych pól, w taki sam sposób, jak 15 lat temu firmy migrowały z C ++, perl i inne technologie Java. Interesuje mnie również, jakie są wrażenia z tego wydarzenia, na przykład: planuję migrację do innej technologii za 2 lata.
Żeby było jasne, nie pytam, która technologia jest lepsza. Pytam, czy Twoja organizacja zamierza odejść z Javy w celu skorzystania z innej technologii.
Odpowiedzi:
Wcale nie - w rzeczywistości dużo inwestuję w Javę jako platformę w mojej firmie (startup rozwijający aplikacje i narzędzia SaaS do eksploracji danych).
Oto powody:
Wybór Javy jako platformy nie oznacza, że musisz używać Javy jako języka. Używamy Clojure jako podstawowego języka programowania aplikacji, od czasu do czasu przechodząc na Javę w razie potrzeby. Ale inne języki JVM, takie jak Scala i Groovy, są również świetne.
Osobiście nie martwię się o Oracle . Główna implementacja Java prawie na pewno będzie nadal open source ( OpenJDK ) i swobodnie dostępna. Jeśli Oracle zrobiło coś głupiego, inne duże firmy (w szczególności IBM i Google) zainwestowały zbyt wiele w Javę, aby sobie z tym poradzić, i mogły z łatwością rozwijać Javę bez pomocy Oracle.
JVM jest doskonałym środowiskiem wykonanie . Wieloplatformowa, bardzo wysoka wydajność, wyjątkowo dobra optymalizacja technologii JIT. Jest wystarczająco zbliżony do prędkości natywnej, że nie obchodzi mnie ułamkowa część, że jest on wolniejszy niż C / C ++, a ten narzut jest więcej niż rekompensowany przez prawidłowe odśmiecanie i zarządzane środowisko wykonywania kodu bajtowego itp.
Java ma świetny ekosystem bibliotek open source . Powiedziałbym, że jest to najlepszy ekosystem ogólnie z dowolnego języka. Oznacza to, że większość „ciężkich ładunków” pod względem infrastruktury została już wykonana, w bardzo wysokiej jakości. A fakt, że większość rzeczy, których potrzebujesz, to oprogramowanie typu open source oznacza, że nie musisz ponosić kosztów (zarówno pod względem pieniędzy, jak i czasu zarządzania) uzyskania licencji.
Eclipse to świetne IDE i zapewnia fantastyczny zestaw narzędzi do tworzenia solidnych aplikacji dla przedsiębiorstw. Używamy integracji Maven, JUnit, Git / SVN i wielu innych narzędzi, które są dostępne jako wtyczki Eclipse. Wszystko „po prostu działa”.
Wreszcie, jakie są inne opcje?
.NET jest jedyną platformą o porównywalnych możliwościach i osobiście lubię C #, ale blokuje Cię w technologiach Microsoft (gorzej niż Oracle / IBM IMHO) i nie ma takiej samej szerokości ekosystemu open source. Dobra dla sklepów Microsoft, ale nie, jeśli chcesz kontrolować swoje własne technologiczne przeznaczenie. I tak, Mono jest uroczy, ale nie mogę sobie pozwolić na postawienie firmy na platformie, która może, ale nie musi, utrzymywać działający poziom kompatybilności z głównym nurtem .NET.
Są też inne wspaniałe języki, które są bardzo dobre w tym, co robią (np. Ruby, Python, PHP, JavaScript), ale nie oferują przekonującego, kompleksowego odpowiednika platformy Java. Ryzyko polega na tym, że musisz zacząć sklejać wiele rzeczy w nieco mniej niż pięknej architekturze. Nie jest to problem przy tworzeniu stron internetowych, szybkich i brudnych aplikacji, ale mniej atrakcyjny dla długoterminowego rozwoju produktu.
C / C ++ jest świetny do programowania systemów i gier, ale jest po prostu zbyt skomplikowany / kosztowny / nieelastyczny do tworzenia nowoczesnych aplikacji internetowych.
Są też piękne języki, które kocham, takie jak Haskell, które są fantastyczne z naukowego punktu widzenia, ale po prostu nie mają branży / ekosystemu niezbędnego do uczynienia ich wiarygodnym wyborem platformy. Mogę również czerpać większość korzyści z nowoczesnego programowania funkcjonalnego, uruchamiając Clojure na JVM .....
Tak, to złożona decyzja. Ale podjąłem decyzję dotyczącą Java przede wszystkim po wielu rozległych badaniach i rozważaniach. Wciąż podejmowałbym dziś tę samą decyzję.
AKTUALIZACJA
Kilka słów o wyborze Clojure na JVM jako wybór języka. Głównymi motywacjami były:
źródło
Wszystko zależy od klienta.
Java zawsze będzie miała swoją małą niszę, w której ludzie będą się nią interesować z tego czy innego powodu, z tych samych powodów, dla których ludzie korzystają z .php lub .net, ale ostatecznie zależy to od wymagań i preferencji klienta.
Jeśli klient powie ... Chcę, aby ta aplikacja była w języku Java ... Czy możemy powiedzieć, że nie? prawdopodobnie nie ... jeśli powiedzą, że tak naprawdę nas to nie obchodzi ... czy zamierzamy napisać to w Javie? prawdopodobnie nie, ale to tylko spekulacje.
Mamy aplikacje napisane w Javie, które mają długą historię, ale wygląda na to, że klient skrupulatnie zastępuje WSZYSTKO marką Windows .... wyrocznia serwera sql ... unix / linux z serwerem 2008 ... i php i java z .net.
Jeśli tak się stanie, to tak ... chyba że pojawi się nowy klient i powie: hej ... chcemy, żeby to napisano w Javie ... będziemy używać .net.
źródło
Po pierwsze, nie pracuję w firmie produkującej oprogramowanie.
Ok, używamy Oracle jako naszej głównej bazy danych, w której przechowywane są wszystkie ważne informacje. Z tego powodu planujemy nadal używać Javy do wszystkiego, co ma związek z Oracle. Przejęcie firmy Sun przez firmę Oracle stanowi dla nas impuls do dalszego korzystania z języka Java do wszystkiego, co jest związane z Oracle.
Ale wszystkie aplikacje komputerowe są napisane w języku C #, ponieważ wszystko jest oparte na systemie Windows.
źródło
Aby odpowiedzieć na twoje pytanie. Nie.
W firmach o znacznych rozmiarach generalnie to nie programiści decydują o takich kwestiach, jak to, czy firma powinna odejść od Javy i przejść na coś innego. A dla typów, które podejmują te decyzje, ważne są inne czynniki niż te wymienione na liście.
Przeciwnie, myślę, że przyszłość jest jasna. Ewolucja Java będzie kontynuowana w wolnym, ale stałym tempie, a podstawowe technologie SE i EE będą nadal bezpłatne. Dla mnie jedynym prawdziwym obszarem niepewności jest to, co stanie się z walką między Oracle a Google. Ale tak czy inaczej, spodziewam się, że Android / Davlik będzie prosperować jako alternatywa dla Java ME ... ale tylko na platformy mobilne.
Może to irytować programistów, ale „zastój” jest w rzeczywistości konsekwencją zwrócenia uwagi przez Sun / Oracle na to, czego chce biznes ... język / platformę o długoterminowej stabilności.
Ponownie, z punktu widzenia zarządzania, jury decyduje, czy technologie te są lepsze we wszystkich obszarach.
Decyzja firmy o przejściu na nowy język wiąże się ze znacznymi kosztami i ryzykiem, zwłaszcza jeśli w języku „starszym” istnieje znaczna ilość istniejącego kodu.
źródło