Witam wszystkich,
Możecie mi doradzić jakiego języka back end-owego warto się uczyć? Idąc w kierunku aplikacji webowych, na tą chwile znam html, css oraz w małym stopniu js, nie mam planów szukać pracy jako programista zamierzam tworzyć sam dla siebie dla samo rozwoju i zastanawiam się nad wyborem języka, jak myślicie?
Skoro chcesz programować tylko dla siebie to dlaczego nie spróbujesz napisać małych aplikacji w kilku językach i wybrać ten, który Ci przypadnie do gustu ?
Najniższa bariera wejścia to chyba Python.
Jak coś wiesz z JS'a to może... JS :D To w końcu również język backendowy (node.js). Albo Python, jak wspomniał LukeJL.
Teraz to node.js jest na topie bo uczysz się js i masz język do backendu i frontendu. Chyba już nawet ruby i railsy powoli schodzą z top. Wątpie też czy TypeScript wyprze JS, a do dużych serwisów po stronie serwera to może jeszcze coś ugrać Kotlin i Scala?
A możecie mi coś więcej powiedzieć na temat (node.js) do jakich projektów najlepiej się nadaje? i co myślicie o PHP a, w szczególności o wersji 7?
Nic sie nie zmieni. Na polskim rynku nadal niepodzielnie dominowal bedzie php, szczegolnie ze ekosystem PHP przezywa delikatny renesans. Laraval (klon RoR) i PHP7 sprawiaja ze jest to coraz nowoczesniejsze przyjemniejsze narzedzie prawcy.
RoR, Djnago, Express.js nadal pozostana nisza rynkowa devweby - nisza, ktora pewnie zawsze bedzie platna 30%-50% wiecej od PHP
The choice is urs.
Tak właściwie, można by się tutaj sprzeczać nad tym co jest lepsze, a co gorsze.
Wyboru powinieneś dokonać sam, pisząc bardzo proste apki w każdym z rozwiązań.
Przeleciałem po CGI w perlu, php, RoR, oraz django od pythona.
Z mojego punktu widzenia RoR przewyższa każdą technologię w prostocie i szybkości budowania aplikacji.
Python zaraz za nim, lecz czasasmi trzeba "omjać" problem "na około", szczególnie przy wątkach.
PHP to wdzieczny język ale niestety już nie dzisiejszy przez swoje bezpieczeństwo.
CGI w perlu, wszystko za długo trwa.
node.js - to ciekawa technologia lecz nie pchałbym się w jeszcze nieprzetestowane technologie.
Wybierz to w czym czujesz się najlepiej, jest taka różnorodność programistów, bo każdy czuje się dobrze w czymś innym ;)
Z hostingami node.js nie ma problemów https://github.com/nodejs/node-v0.x-archive/wiki/Node-Hosting
tak samo ze stabilnoscią i frameworkiem express.js czy narzędziem npm. Oczywiście najwiecej na node.js psioczy konkurencja która chce utrzymać stare technologie jak najdłużej. http://blog.end3r.com/129/node-js-czyli-serwer-w-javascript-zbior-przydatnych-linkow/
Skoro chcesz tworzyć dla siebie to:
- nie kieruj się przy wyborze języka hostingiem- praktycznie wszystko postawisz tak samo łatwo na Heroku albo innym podobnym serwisie
- spróbuj kilku różnych języków, aby wybrać ten, który Ci się najbardziej podoba- nie myśl, że w X zarabia się więcej, bo będąc dobrym w Y możesz zarobić tyle samo
- śledź informacje odnośnie tych technologii, poznaj ich zalety i wady od osób, które posługują się nimi na produkcji
- ucząc się któregokolwiek z języków i frameworków, łatwiej Ci będzie się przesiąść na coś innego, bo poznasz fundamenty wspólne dla każdej aplikacji webowej (w zasadzie prawie każdy framework korzysta lub wspiera MVC itp.)
A teraz konkrety:
W Polsce i na świecie największą część tortu aplikacji webowych kosi PHP. Teraz z PHP7 według benchmarków stronki na nim są 20-70% szybsze niż na wersji piątej. Ma on kilka bardziej rozbudowanych frameworków- Laravel, Zend, Symfony oraz microframeworki pokroju Silexa czy Slima. Składnia PHPa jest dosyć niespójna, ale samo kodzenie w nim jest porównywalne do pisania w jakimkolwiek innym obiektowym języku.
Dalej można wymienić:
- Java + Spring/Play: toporny, ale standardowy język, cieszący się ogromną popularnością i masą bibliotek
- Kotlin/Scala: w moim odczuciu pochodne Javy, które mają być przyjemniejsze od Javy i mają parę fajnych bajerów
- Ruby/Rails: szybki, wygodny i "magiczny" framework, w którym pisanie może być bardzo przyjemne, o ile przestrzegasz narzuconych reguł. Dobry dla małych aplikacji, z większymi dochodzi spory problem ze skalowalnością, przez co sporo firm rezygnuje z Railsów przy większych aplikacjach.
- Python/Django: mniej popularne od Railsów rozwiązanie w naszym kraju, więc i mniejszy popyt na koderów Pythona. Django jest zbiorem bardzo wielu gotowych rozwiązań, pozwala na większą uniwersalność niż Railsy mniejszym kosztem (routing regexpem, możliwość tworzenia widoków (kontrolerów) na dwa sposoby- funkcje albo klasy, które dziedziczą po gotowych klasach frameworka, co znacząco upraszcza kod, ale też nieco ogranicza)
- Node.js/Express, nie mam zbyt wielkiego doświadczenia, ale jest to dobre rozwiązanie dla osób, które dobrze znają JSa i już korzystają z Node'a jako frontendowcy, bo znają npma i wiedzą jak z niego korzystać
- asp.NET: bogata i wygodna alternatywa dla PHP. Język jest w moim odczuciu ulepszeniem Javy i C++.
Są też jeszcze znacznie mniej popularne drogi- niszowe, związane z jedną firmą, trudnym językiem albo powstałe dosyć niedawno np. ColdFusion, który jest modny w Stanach i dla którego jest kilka frameworków (ColdBox, podobny do Railsów CFWheels), Perl, który jest Perlem (i ma Dancera i inne frameworki) oraz Elixir z Phoenixem, które są super szybkie, oparte na VMce Erlanga, ale mają inną składnię i podejście do web frameworka i dopiero zyskują uznanie programistów.
TL;DR:
Kieruj się składnią języka. Praktycznie każdy dostępny język do tworzenia stron oferuje framework MVC i ma narzędzie do automatycznego zarządzania dodatkowymi bibliotekami (a czy to będzie się zwało gradle, pip, gem, mix czy nuget to wszystko jedno).
To co byś polecił osobie która nie zna javascript, node.js raczej odpada, a nauka od podstaw PHP 7 nie ma sensu. Lepiej brać na start ruby on rails lub django?
Ale ja bym chciał nowoczesny język jako backend, to python bez django, pyramid jest tam tak często stosowany? Coś do starupów, aplikacji i małych serwisów, nie interesuje mnie Java(JVM) i C#.
Python bez django, pyramid
Raczej rzadko się pisze web w Pythonie nie używając frameworka. To znaczy możesz, np. za pomocą cgi czy wsgi, ale nikt tego nie robi - bo i po co. Jak nie chcesz większego frameworka używać, to spróbuj Flaska, który jest bardzo minimalistyczny.