Czy opłaca się jeszcze uczyć Javy?

0

Witam. Studiuję informatykę, wczoraj rozmawiałem z kolegą i powiedziałem że chciałbym programować w Javie a on powiedział, że to zły wybór bo dni Javy są policzone i niedługo wyjdzie z użycia. Czy możecie się wypowiedzieć na ten temat? Z góry dziękuję!

7

Nie opłaca się, jeśli jesteś w Rosji. ;)

0

Tak, też o tym słyszałem, ale serio pytam o pracę i przyszłość w tym zawodzie.

1

nikt nie wie co się stanie
java jest na zbyt wielu urządzeniach i ma zbyt wiele rozpoczętych projektów żeby nagle zniknęła
tak samo jak każdy inny język
jak zacznie znikać to na pewno to zauważysz i zdążysz się "przebranżowić"

spekulacje na temat tego co się będzie dziać w IT zazwyczaj są błędne

0

Obecnie tyle ogromnych systemów stoi w Javie, jest rynek aplikacji mobilnych, JavaEE i apki webowe... Jak dla mnie to jeszcze sporo czasu ta Java uciągnie.
Chcesz się uczyć - to się ucz. Jak będziesz umiał porządnie programować, to zmienisz Javę na dowolną technologię :)

0

ja tylko jeszcze podpowiem że to bardzo nieprzyjemny język; jest bardzo prosty i brakuje dziesiątek mechanizmów które byś polubił z innych języków
frameworków i platform jest tyle że nie ma czegoś takiego jak "znajomość javy" - znajomość bibliotek podstawowych nie wystarczy na znalezienie pracy w tym języku a wymagania w każdej pracy są inne

0

niedługo wyjdzie z użycia

To spytaj kolegi znawcy co się stanie z tymi tysiącami aplikacji biznesowych które stoją na javie ;] O Androidzie to nawet nie wspominam bo nie ma co kopać leżącego. Wygląda to na opinię kogoś kto pojęcia nie ma do czego się javę stosuje.

0

Kolega to pewnie pełen pasji programista php? Jak tak to wszystko wyjaśnia :D

3

Może chce Cię odwieść by mieć potem mniejszą potencjalną konkurencję. ;)

0

Parafrazując klasyka "Wieści o śmierci Java są mocno przesadzone".
Taki wątek powraca mnie więcej co 6 miesięcy i jak dla mnie jest męczący i jest przejawem zwykłego hate'rstwa ugruntowanym funboy'stwem innego języka.
Załęże się, że ten "mądry" kolega w następnym zdaniu zachwalał inny język np C#.

0

Mówiono tak o C++ gdy pojawiła się Java. Mówiono tak o COBOLu jak pojawił się C++ i Basic. Mówiono tak o wielu językach gdy pojawiały się jakieś nowe rozwiązania. Ja mam takie pytanie ile szanowny kolega ma lat doświadczenia w IT. W ilu projektach brał udział? Jakie ma podstawy by tak jednoznacznie wyrokować o losie tej czy innej technologii?
Jak w poniedziałek piłem piwko z Wujkiem Bobem (dla niedowiarków mam zdjęcia) to padło pytanie dlaczego uważa, że języki dynamiczne są przyszłością i co oznacza to dla Javy. Jaka była odpowiedź? Java będzie sobie istniała i będzie jej dobrze, zacznie ewoluować w stronę języków dynamicznych (składnia!), ale nie będzie tak, że za rok czy dwa zupełnie zniknie z rynku.

0

No i wujek Bob nie wyjaśnił dlaczego? Napisałeś tylko że wywróżył, że Java będzie po części dynamiczna.

0

@Wibowit > http://www.slideshare.net/CoryFoy/dynamic-languages-are-the-future w dużym skrócie można powiedzieć, że jezyki dynamiczne pozwalają na lepszą separację poszczególnych elementów kodu, tym samym można tworzyć kod szybciej. Warunek - bezpieczeństwo jakie obecnie zapewnia kompilator sprawdzający typy będzie zapewnione przez zastosowanie TDD. Zatem może nasze wnuki będą tak kodować :D

1

Warunek - bezpieczeństwo jakie obecnie zapewnia kompilator sprawdzający typy będzie zapewnione przez zastosowanie TDD.

Whoa. Ileż to musiałoby być testów, żeby zastąpić chociażby system typów w Scali? Nie mówiąc już o tym, że dynamiczne typowanie rozwala podpowiadanie składni.

Scala ma jeden duży problem, który spowalnia wzrost jej popularności - prędkość kompilacji i opóźnienia sprawdzania składni (w tym podpowiadania) w IDE.

0

Dlatego też należy do takich przewidywań podchodzić sceptycznie.

0

Generalnie tak, java już praktycznie wymiera. Jak jesteś na studiach to nie marnuj swojego czasu na nią bo za rok czy dwa wszystko co do tej pory było w niej będzie przepisane na lepsze języki, np C#. Powodzenia!

Dlatego np teraz jest takie parcie na ludzi ze znajomością Javy, bo żeby przepisać kod na inny język to trzeba go zrozumieć.

2

@archu, przepisać? Ciekawe kto za to zapłaci.

0

Tak właściwie to od ilu lat Java jest jedną z przodujących technologii na rynku? :D

1

Prawie wszyscy czepiacie się słówek, ale temu koledze pewnie chodziło, że Java zacznie po prostu tracić na popularności. Język nie musi przestać być używany, żeby nie było sensu się go uczyć. Po prostu jeśli popularność się zmniejszy, to stawki zaczną spadać i bardziej opłacalne będą inne języki.

0

tu jest poprzedni flame: Dlaczego Java nie ma przyszłości?

0

Pytanie tylko, czy on chce uczyć się javy, gdzie ten język będzie jego pierwszym językiem programowania. Nawet autorzy wielu książek o javie nie polecają jej jako pierwszy język do nauki. Warto by było znać wpierw jakiś pascal czy C. Z łatwych i przyszłościowych to jeszcze ruby i python. Na wykresie widać że java powolutku traci i spada, natomiast C-0bjective, python, ruby zyskuje w szybkiej skali .
http://bankfotek.pl/image/1697036.jpeg

0

Oprócz tego czy coś się opłaca w jakimś tam wydumanym sensie ważne jest też czy coś się lubi. Jak się nieszczególnie lubi, a idzie za kasą to raczej wielkiej kariery się nie zrobi, no chyba, że zostanie się menedżerem jakimś i przestanie klepać. Za to jak się coś lubi, to jest motywacja do tego, by to dobrze ogarniać, być na bieżąco, itd Do tego jest duża szansa, że będą inni co lubią, a więc będzie się dało złożyć czy znaleźć zespół robiący naprawdę dobre rzeczy. A wtedy konkretna kasa będzie.

Trzeba tylko wziąć pod uwagę to że nie tylko sam język jest ważny, ale też wsparcie i biblioteki. Dlatego egzotyczne języki nie są dobrym wyborem jeśli chodzi o podstawę kariery.

Między językami kaczo typowanymi a statycznie typowanymi jest duża różnica w sposobie programowania. Np ja bardzo nie lubię języków kaczo typowanych więc ich unikam. Po co miałbym się w kółko irytować?

Jeśli już opłacalność jest takim dużym priorytetem, to trzeba sobie zadać czy w ogóle jest sens bycia programistą jakiegokolwiek języka. Bo być może bardziej opłaca się zostać lekarzem, bankierem, prawnikiem, etc?

0

Nie lubię Javy, ale według mnie jej główną zaletą jest właśnie to, że jest niesamowicie statyczna i w dużej mierze przewidywalna, co pozwala na stworzenie niesamowitych narzędzi do statycznej analizy kodu, refaktoryzacji, pozwala to na robienie niesamowitych narzędzi (Eclipse, Netbeans...).

Lubię języki dynamiczne/skryptowe, i w nich najczęściej piszę (najczesciej JS, Python), ale jednak narzędzia do nich nie są tak doskonałe jak np. do Javy czy do C++ i mam wrażenie, że w dużej mierze odpowiada za to sama natura języków (kacze typowanie, brak typów zmiennych, dynamiczne właściwości), która utrudnia twórcom oprogramowania tworzenie dobrych narzędzi u dobrych IDE (jeszcze np. nie spotkałem edytora/IDE do JavaScriptu, który by mi w pełni odpowiadał. Zazwyczaj edytor był "trochę mądry", trochę podpowiadał składnię, trochę pomagał w refaktoryzacji, trochę analizował -- ale w porównaniu z tym co można zrobić w Javie w Netbeans czy Eclipse albo w VC++ to jest to po prostu słabe.

Dlatego nie sądzę, żeby Java stała się językiem dynamicznym, bo by musiała być w pewien sposób gorsza, jeśli chodzi o wygodę korzystania z narzędzi programistycznych. Ja to widzę tak --- jeśli masz język, w którym każda zmienna ma swoj wiadomy z góry typ, jeśli masz dopracowaną składnię, jeśli masz bardzo rygorystyczne reguły co można, a czego nie można, masz organizację plików w moduły --- to łatwiej jest zrobić dobre IDE, niż jeśli masz język dynamiczny, gdzie panuje wolna amerykanka, gdzie dopoki nie uruchomisz programu, nawet nie mozesz byc pewien jaki zmienna bedzie miec typ...

0

Mam nadzieje że Java straci a zyska Scala. Pisanie w Javie to masakra. Głównie mam na mysli boilerplate.

0

Obecnie to chyba nie ma nic co może Jave zastąpić, coś co jest oficjalne wspierane, muliplatforomowe i wykorzystywane w dużych projektach, popularne (dostępność materiałów do nauki). Moim skromnym zdaniem Java SE jest prostsza niż C#, po prostu mniej bajerów. Gorzej już jest z EE i frameworkami(pewnie kilkanaście, tak wiem że głównie spring, ale spring też jest duży z tego co czytałem), gdzie np C# jest ASP.NET MVC, w Pythonie przeważnie Django, w Rubym są railsy więc tutaj poziom trudności się zmienia. Jest jeszcze Android, chromebooki (tutaj też pewnie aplikację na nie w Javie się piszę).

1

LukeJL Dlatego najlepsze szybkie IDE do niezależnie jakiego języka nie może być napisane w języku skryptowym tylko w C/C++ lub innym kompilowanym jak Pascal. Nawet Eclipse, Netbeans, JCreator czy Intelij potrafi się nieźle rozjechać i wszystko poprzestawiać, a jak masz słabszy sprzęt troche wolno to wszystko działa. Taki Monodevelop działa dużo szybciej i jest mniej zasobożerny. Codeblock, kdevelop, qtcreator naprawdę przyzwoite i szybkie IDE, do tego masz różne wersji i wtyczki pod pythona, ruby itp...

Zawsze mnie zastanawiało to, po co dany język musi się trzymać ciągle tej samej przestarzałej składni, skoro raz na kilka dobrych lat mógłby odświerzyć i ludzie w końcu po jakimś czasie by się przeżucili na nowy, całkiem nowoczesny standard. Wtedy java by miała krótszą składnie C++ by był bardziej czytelniejszy, a najlepiej jak by go odłączyć od C i tą całą kompatybilność wstecz. Taki odświeżony język był by jak nowy, mógłby na nowo zebrać wszystko to co najlepsze do kupy, czytelną składnie, porządne zmiany jako super standarc w całości do zmiany. I tak są ogromne rożnice między Javą 1.2 a 1.8 więc dlaczego takie drobne poprawki do korekty zamiast to wszystko poprawić, tak jak to zrobiono w C#. Wybrali co najlepsze z C/C++ Javy, Pascala, Delphi i opakowali w nową nazwę. Można zrobić to samo tylko trzymać się ciągle tej samej nazwy języka, okreslajac jako standard hardkor.

0

Tzn w którejś wersji C# zerwano wsteczną kompatybilność z wcześniejszymi wersjami?

0
Wibowit napisał(a):

Tzn w którejś wersji C# zerwano wsteczną kompatybilność z wcześniejszymi wersjami?

W C# nie, ale w .NET tak, może o to chodziło przedmówcy?

0

Nie lubię Javy, ale według mnie jej główną zaletą jest właśnie to, że jest niesamowicie statyczna i w dużej mierze przewidywalna.

Ciągle mówimy o Javie?

0

Wtedy java by miała krótszą składnie C++ by był bardziej czytelniejszy, a najlepiej jak by go odłączyć od C i tą całą kompatybilność wstecz. Taki odświeżony język był by jak nowy, mógłby na nowo zebrać wszystko to co najlepsze do kupy, czytelną składnie, porządne zmiany jako super standarc w całości do zmiany

Odpowiem krótko: Python 3.0. Zerwanie kompatybilności wstecznej na poziomie kodu źródłowego spowodowało ogólnie bardzo duży zastój w adopcji języka i zamrożenie wielu projektów na wersji 2.x przez bardzo długi czas.

Scala zrywa jedynie kompatybilność binarną co wersję, zachowując kompatybilność na poziomie kodu źródłowego (czyli tak jak to jest mniej więcej w C++) i samo to już wprowadza niezły zamęt i problemy - jest to jedna z głównych przeszkód do używania Scali w korporacjach, które lubią stabilność i przewidywalność.

Jedyna słuszna droga, to powolne oznaczanie niektórych udogodnień jako @deprecated, i usuwanie ich po pewnym czasie, na tyle długim aby wszyscy mieli czas zaktualizować kod. Jednak patrząc na to ile projektów nadal używa Javy 1.4 (!), to i tak pewnie byłyby poważne protesty przy usuwaniu czegokolwiek nawet sprzed 10 lat.

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