Jakie języki mają przyszłość? [zamknięte]

Jakie języki programowania mają wg. was przyszłość i dlaczego? Jakie mają wady i zalety? Których warto się uczyć, a które na razie ignorować?

Powód zamknięcia: Udzielono odpowiedzi na pytanie, poprawna odpowiedź została zaakceptowana

  • Cóż. C# zyskuje tempa od lat, w końcu zaczął się pojawiać wokół niego solidny ruch open source. Visual Basic i Visual Basic .NET są od lat najczęściej używanymi językami na świecie, tylko bez wielkiej widoczności - to są typowe środowiska programistyczne używane w korporacjach.

    Java jakby pogrążyła się w stagnacji, jako język - i ponoć traci developerów. Tak czy inaczej wciąż jest bardzo silna i warto ją znać.

    Ostatnio "na fali" są języki funkcyjne, głównie z uwagi na łatwe skalowanie i dystrybucję programów - tutaj warto zwrócić uwagę np. na Erlanga i F#. Nawet jeżeli nie zamierza się w nich programować, to warto je poznać - koncepcje programowania funkcyjnego to ciekawy paradygmat który, poznany, bardzo korzystnie wpływa na to jak się korzysta z klasycznych języków imperatywnych.

    Warto też poznać jakiś język dynamiczny... Osobiście lubię Ruby, za przejrzystość, ekosystem open source, dużą ilość materiałów. Alternatywnie - Python na przykład...

    Co jeszcze - językiem roku 2009 z całą pewnością był fatalny, ale wszechobecny JavaScript. Jeżeli ktoś się chce zająć webdevelopmentem, to musi go znać.

    Nie stawiałbym na PHP. Język przestarzały, brzydki, a rynek pracy jest tak zatłoczony że trudno o dobre stawki.

    No i zawsze jest dobra i dobrze płatna praca dla dobrych programistów C++. Ale to droga usiana cierniami, zwłaszcza jeżeli ktoś poznał najpierw język/środowisko, które robi za niego więcej...

    Jeszcze jedno. Warto być specjalistą w czymś, co mało kto zna. COBOL, ktokolwiek? Można zgarnąć naprawdę niezłą fuchę... jeżeli się lubi babrać w takim czymś.

  • PHP

    Język ten jest już bardzo powszechny. Nie jest to high-endowe rozwiązanie ale okazało się, że jest wystarczająco dobre i zawiera wszystkie potrzebne rzeczy do stworzenia każdego serwisu internetowego nawet Facebooka i Naszą Klasę.

    Erlang

    Wydaje się, że rozwiązania działające w czasie rzeczywistym i wymagające dużej skalowalności dobrze jest pisać w tym języku. Myślę że ten segment rynku będzie się rozwijać, dlatego już teraz warto zainteresować sie językiem w którym stworzono NKTalk na Naszej Klasie.

    Javascript

    Ten język czasem był wyśmiewany jako gorszy, skryptowy. Jednak czas pokazał, że jest on jednym z lepszych. Zyskuje coraz więcej zwolenników i stał się już standardem. Myślę, że wkrótce pojawi się wiele ogłoszeń pt. "Szukamy programisty Javascript". Jak ktoś kiedyś powiedział jeżeli coś ma zostać napisane, zostanie napisane w Javascripcie.

    Actionscript

    Język używany w Adobe Flash. Myślę że ten standard będzie konkurował wkrótce z Javą, która niestety nie przyjmuje się zbyt dobrze na stacjonarnych komputerach.

    Java

    Urządzenia mobilne, przenośne i pisanie dla nich aplikacji wkrótce stanie się popularne. Jeżeli ma zostać wypracowany standard to będzie nim Java. Na razie różni producenci eksperymentują z różnymi sposobami na development aplikacji, ale to niedługo ostygnie.

    C#

    Aplikacje desktopowe i trochę stron webowych (ASP.NET) będzie opartych o C#. Jest to dobrze przygotowany język, jest dużo ofert pracy. Można mieć solidną pracę w przyszłości znając ten język.

    Inne języki

    Poznanie każdego innego języka niszowego powoduje, że w przyszłości możemy trafić na atrakcyjne zlecenia związane właśnie z nim. A ponieważ mało osób będzie go znało i zarobki będą duże. Tak samo niektóre archaiczne języki są ciekawe, dlatego że wiele firm wciąż ma kod napisany w nich i ktoś musi go utrzymywać - tu również zarobki idą w górę ponieważ nie każdy chce uczyć się czegoś co wyszło już z mainstreamu. Do tej kategorii zaliczyłbym: COBOL, TCL, Assembler, C

    Których języków nie warto się uczyć

    Z powodu braku rozwoju, braku ofert pracy i malej liczby projektów nie warto się uczyć następujących języków programowania: Pascal, FoxPro, Delphi i VB.NET.

    Warto uczyć się jednego języka na rok. Nie zajmuje to dużo czasu, ale wymusza wysiłek intelektualny który pozwala człowiekowi spojrzeć na dotychczasowe problemy z nowego punktu widzenia. Przydaje się to nawet jeżeli nie będziemy danego języka używać.

    Jeżeli ten tekst był dla Ciebie przydatny naciśnij chmurkę i kciuk do góry

  • Przyszłość należy do PHP, być może Ruby itp.

    Wydaje się, że programowanie będzie ukierunkowane nadal na coraz wyższe poziomy abstrakcji, popularność zyska programowanie agentowe lub coś zupełnie nowego. Z drugiej strony spowoduje to zmniejszenie zainteresowania językami niższego poziomu, co może doprowadzić do deficytu programistów i paradoksalnie sprawić, że choć ofert pracy będzie mniej, za to zarobki wyższe.

    Jeśli chodzi o języki, których uczyć się nie warto. Wydaje się, że C++ będzie wciąż tracił na znaczeniu. Moim skromnym zdaniem przyszłości nie ma przede wszystkim Java. Spokojnie można sobie "darować" ten język już dzisiaj.

  • Być może warto też zacząć przyglądać się nowym wynalazkom łączącym zalety C#/Pythona i C. Czyli nowocześniejsza 'skryptopodobna' składnia ale kod kompilowany do kodu maszynowego procesora (uruchamiany bez maszyny wirtualnej). Mam na myśli vala i genie ( http://live.gnome.org/Vala ) ten pierwszy składnią przypomina C#, drugi pythona. Kompilator (wspólny dla obu) z kodu generuje kod C z wykorzystaniem gobject i dopiero ten kod jest kompilowany (za pomocą gcc) do kodu wykonywalnego. Możliwe jest też po prostu wygenerowanie kodu C i taka dystrybucja, co zwalania końcowego użytkownika z obowiązku posiadania kompilatora vala/genie.

    Język wydaje mi się ma przed sobą przyszłość a przy okazji jest dość dobrze udokumentowany:

    1. valaide: code
    2. Valadoc Online API Documentation
    3. Vala FAQ

    Projekt nie osiągnął jeszcze wersji 1.0 co powoduje, że API jest dość dynamiczne (aka nie do końca nadaje się w tej chwili do rozwiązań produkcyjnych bo kto lubi poprawiać swój kod tylko dlatego, że pojawił się nowy kompilator a ten pojawia się co 2-3 miesiace) ale same założenia mnie przynajmniej przekonują do tego, że warto się projektem interesować, bo być może rośnie nam tu mały .Net/Mono killer

    Prosty przykład:

    using GLib;
    public class Test.HelloObject : Object {
        public static int main(string[] args) {
           stdout.printf("Hello, World\n");
           return 0;
        }
    }
    

    skompilowanie valac hello.vala spowoduje utworzenie gotowej binarki hello. Ale można też valac -C hello.vala co spowoduje wygenerowanie pliku vala.c który można dystrybuować dalej nie w celu modyfikacji, ale umożliwiając skompilowanie programu bez konieczności posiadania kompilatora vala.

    Chcialem ten kod w C tu zamiescic, ale edytor w serwisie nie potrafi sobie poradzic z jego formatowaniem :D zreszta formatowanie (i samo wklejanie) kodu jest tu co najmniej dziwnie zrobione chyba

  • Ciężko stwierdzić, które z popularnych dzisiaj języków, będą równie popularne i pożądane przez pracodawców dnia jutrzejszego.

    Z całą pewnością jednak przyda się znajomość kilku pochodnych języków, a bardzo przydatnych w programowaniu.

    • UML, OCL - znajomość modeli jest użyteczna w pracy i wcześniej czy później przydatna będzie choćby podstawowa umiejętność czytania takich modeli,

    • Regex - wyrażenia regularne; bardzo przydatne i obsługiwane chyba przez większość nowoczesnych języków,

    • SQL - większość programów i aplikacji wykorzystuje do swojego działania bazę danych. SQL to zdecydowany lider i raczej jeszcze długo będzie utrzymywać swą pozycję. Znajomość standardu może być bardzo użyteczna,

    • XML (SOAP, XML-RPC, REST), XSLT - uniwersalny język przesyłu danych. W komunikacji komputer-inne urządzenia jest prawie zawsze wykorzystywany. W czasach, gdy coraz więcej rzeczy jest podłączanych do komputera, znajomość tego języka jest wręcz obowiązkowa,

    • JavaScript, JSON - interaktywny, bardzo ekspresyjny i jedyny o takich możliwościach i popularności dla stron internetowych. Z własnym formatem danych (JSON) stanowi silną konkurencję, która jeszcze bardzo długo utrzyma się na rynku, zapewne.

    Poza tym warto od czasu do czasu poczytać trochę o inżynierii oprogramowania, wzorcach projektowych, etc. Pozdrawiam :)

  • Ja osobiście postawiłbym na trzy języki/środowiska:

    1. JAVA - Tutaj generalnie można wyłonić dwa fronty
      • Technologie webowe takie jak: Serwlety, JSP, Java Server Faces, które naprawdę pozwalają na tworzenie rozbudowanych witryn zgodnych z popularnymi wzorcami projektowymi np. MVC.
      • Technologie mobilne. Może aplikacje midletowe są ostatnio coraz mniej popularne, ale znaczącą popularność zyskuje android dla, którego aplikacje jakby nie było oparty jest o Javę.
    2. .NET. W tym przypadku również można wyszczególnić dwa języki/technologie:
      • ASP.NET, który dzięki wbudowanym kontrolkom pozwala na naprawdę szybkie tworzenie rozbudowanych stron WWW, bez większej wiedzy programistycznej. Jest to konkurencja do Javy, w której jednak trzeba trochę więcej poprogramować, ale nic nie stoi na przeszkodzie by tworzyć i tutaj własny przemyślany kod.
      • C#, który pozwala na tworzenie w prosty sposób aplikacji konsolowych, okienkowych czy usług systemowych. O ile tworzenie aplikacji jest szybkie, łatwe i przyjemne o tyle same aplikacje często niestety zoptymalizowane.
    3. C++, jest to język niezwykle ważny, z długą historią i naprawdę warto go znać i wciąż się uczyć. Zapewnia on najlepszą optymalizację kodu a od programistów wymaga najwyższych umiejętności. No i jest również dobrze opłacany:)

  • Wydaje mi się, że C# przebije popularnością Javę - ma za sobą potęgę w postaci Microsoftu. Plusem Javy w tym momencie jest to, że jest open source, ale z drugiej strony Java wyraźnie traci popularność, a do tego zawirowania z Sunem raczej jej nie służą.

    Wśród języków skryptowych w mojej opinii PHP będzie tracił na popularności, jest w tej chwili jednym z najpopularniejszych języków, ale wiele osób rezygnuje z niego głównie ze względu na dużo przyjemniejsze dla programistów frameworki w Rubym czy w Pythonie. W tych też językach widzę przyszłość sieci, RoR czy Django zyskują na popularności, oprócz nich będą pojawiać się też inne frameworki, wydaje mi się, że PHP nie będzie potrafił osiągnąć większej popularności niż ma teraz.

    Chyba już zawsze w cenie będzie C, ale to język niskopoziomowy, można w nim napisać bardzo dużo, i chyba dobry hacker C nigdy nie będzie miał problemu ze znalezieniem pracy, ale świat zmierza w kierunku języków wyższego poziomu... ;)

  • Moje typy to na warto:

    Java - podstawowa technologia w rozwiązaniach Enterprise w sieci Web, coraz lepsza w programach okienkowych [choć daleko jej do doskonałości ;-)], rosnący udział w sektorze mobilny [bo cała Java ME i Android gdzie Java to podstawowy język programowania]. Najprostszy sposób do pisania kodu wieloplatformowego. Do tego szybka, ma świetne środowiska programistyczne i co równie ważne ;-) jest praca dla developerów Java'owych :-)

    JavaScript - podstawowy język strony klienckiej w rozwiązaniach Web, do tego znacznie przyśpieszył w ciągu ostatnich paru lat.

    C# - którego osobiście nie znoszę bo to wg. mnie taka popsuta Java, ale chyba teraz najłatwiejszy język do pisania aplikacji okienkowych, pozwala też na pisanie dla Weba z ASP.NET [choć bardzo "namawia" do mieszania warstwy prezentacji z logiką] i dla urządzeń mobilnych z Windows Mobile. Największą wadą jest przywiązanie do systemów z rodziny Windows [bo po prawdzie jest Mono ale miewa kłopoty z Garbage Colectorem i podobne], oraz w przypadku Windows wielkość samego Frameworku.

  • Biorąc pod uwagę, że google już dziś buduje system operacyjny bazujący na przeglądarce internetowej a właściwie będący na dobrą sprawę przeglądarką internetową wnoszę, że przyszłość mają języki w których najłatwiej i najszybciej można stworzyć aplikację webową. Wkrótce wieloplatformowość nie będzie miała znaczenia na czym straci m.in JAVA, ktorą nota bene uważam za mega kobyłe.

  • tutaj jest zestawienie obecnie najpopularniejszych języków: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Zaloguj się, aby dodać swoją odpowiedź