niedziela, marca 26, 2017

Java, JavaScript, Python, C++, C#? co ma przyszłość? 7 lat później ;-)

Ponad 7 lat temu napisałem posta o tym jakie języki programowania mają wg. mnie przyszłość.
Od lat nie czytam tam komentarzy, ale z tego co wiem w niektórych miejscach sieci zyskałem przydomek idioty ;-)

Dziś spojrzymy na problem inaczej :-)
Spojrzymy na problem tego, które języki mają przyszłość patrząc na to jak długo jeszcze mogą istnieć wg. efektu Lindy (albo Lindy's) i tego jak są teraz popularne i na kilka innych sposobów.

Bazować będziemy na założeniu, że jeżeli teraz język jest popularny, a istnieje już X lat to napisano w nim na tyle dużo kodu by jeszcze przez kolejne X lat z niego korzystać (to jest właśnie Lindy effect).

Przyjrzymy się językom, które wg TIOBE odpowiadają za 50% popularnych języków teraz. Czyli pierwszej 10 języków wg indeksu TIOBE ;-)

Z efektu Lindy's mamy tak, że oczekiwany czas życia danej rzeczy jest mniej więcej taki sam jak czas w jakim to coś do teraz istnieje.

Stąd mamy:
1) C do 2062 roku,
2) C++ do 2054 roku,
3) Python i VisualBasic do 2043 roku,
4) Java, PHP, JavaScript, Delphi do 2039 roku,
5) C# do 2033 roku,
6) Swift do 2020 roku.

Ale w końcu niby Java i Delphi są w tym samym wieku, ale jednak w Java'ie napisano dużo więcej kodu...

Można by przypuszczać, że jeśli 2 języki istnieją podobną ilość czasu i pierwszy jest popularniejszy od drugiego to ten popularniejszy dłużej będzie żył.

W takim przypadku mamy:
1) C,
2) C++,
3) Java,
4) Python,
5) VisualBasic,
6) C#,
7) PHP,
8) JavaScript,
9) Delphi,
10) Swift

[docieramy do takiej listy biorąc iloczyn wysokości na liście języku wg popularności (czyli dla Java'y to 10, a dla Swifta 1) i wysokość na liście wg wieku języka]

To wygląda sensowniej, jednak Java powinna być mimo wszystko wyżej niż VisualBasic, bo choć VB jest starszy to napisano w nim najpewniej mniej kodu.

Dobrze by było znać ilość linii kodu, które istnieją, ich wiek i to jak często się zmieniają... Tego nie znamy.
Znamy za to orientacyjne pensje dla programistów używających danego języka, wtedy ranking wygląda tak:
Java,
Python,
C#,
JavaScript,
C++,
C,
PHP

Niestety dla Swifta, Delphi i VisualBasica trudno o te liczby... ale można założyć, że chociaż Swift z nich jest najmłodszy, to najłatwiej o pracę w nim... z tym, że to jest oprogramowanie głównie dla konsumentów. Bez dowodu założę, że programiści Swifta zarabiają podobnie jak ci od C#, a ci od VisualBasica i Delphi tyle co ci od C.

Tutaj dygresja, rynek próbuje wyceniać pracę programistów bazując na tym ile jest kodu w danym języku, w końcu jeśli jest więcej kodu w języku X, a za mało programistów w stosunku do ilości kodu który istnieje i który trzeba napisać to pensje będą rosły bo wszyscy będą konkurowali o ograniczoną ilość programistów, a z drugiej strony programiści będą do tego języka przybywać by mieć więcej pieniędzy.

Stąd ostateczny ranking języków w które warto inwestować to:
Java,
Python,
C,
C++,
C#,
JavaScript,
PHP,
Delphi,
Swift.

Języki swoją pozycję zawdzięczają tutaj temu jak długo istnieją i jak najpewniej będą jeszcze istniały, temu jak dużo można w nich zarobić i temu jak są teraz popularne.

Dlatego młody programisto lub młoda programistko :-)
Jeśli chcesz mieć pracę za rok, 10 lat i 20 lat to Twoimi językami powinny być:
Java,
Python,
C,
C++,
C#,
JavaScript,
PHP,
Delphi,
Swift.

Z tym, że Java i PHP prawie zawsze oznaczają wcześniej lub później kontakt z JavaScriptem, a C i C++ nie płacą już tak dobrze (najlepsi dev'owie mogą tu zarobić olbrzymie pieniądze, ale to trzeba być wtedy najlepszym).

Stąd polecam Java'ę, Pythona, JavaScript.
Java to język softu enterprise, nawet przeciętny developer może tu nieźle zarobić.
Python jest ostro używany w machine learningu, a do tego szybko się w nim pisze aplikacje webowe.
JavaScript jest po prostu assemblerem dzisiejszej sieci.

Nie odradzam C, C++, C#, Swifta.
C i C++ pozwalają dobrze zarobić, ale trzeba tu być w top 10% albo i to 1% programistów, cała reszta pisze coś w małych firmach jako kod do sterowników i podobnych rzeczy.
Swift staje się popularny, ale jednak w nim tworzy się tylko oprogramowanie dla iOS, a tam jest coraz mniej pieniędzy bo web zżera natywne aplikacje.
C# to enterprise i aplikacje dla Windows, w enterprise oznacza jednak preferencję dla rozwiązań MS.

Odradzam Delphi i PHP.
PHP jest świetne do pisania "małych" aplikacji webowych (można i duże, ale to jest trudniejsze), praca jest, ale raczej w firmach krzakach które nie płacą najlepiej.
Delphi to Windows, okienka. Mało takich aplikacji już powstaje i raczej będzie ich jeszcze mniej. W biznesie aplikacje webowe zjadają aplikacje natywne, rynek konsumencki jest trudny.

Ten "ranking" nie ma nic wspólnego z tym jak język jest fajny, bardziej z tym jak łatwo o pracę teraz i w przyszłości.
Metoda jest całkowicie nienaukowa :-) acz nie bazuje aż tak bardzo na moim widzimisię sprzed 7 lat.


Podobne postybeta
Java, JavaScript, Python, C++, C#? co ma przyszłość?
A jednak Pythona warto ;-)
Wyważanie otwartych drzwi
Czemu strony only for IE są złe.
Naprawdę nienawidzę...