Jest to temat, który powoduje najwięcej sporów w środowisku programistów back-endowych. Każda technologia ma swoje plusy i minusy. Jedne są młodsze, inne starsze, ale te, które są rozwijane do dziś starają się iść z duchem czasu i stosować najlepsze rozwiązania. Nie zawsze to, co nowe jest najlepsze. Nie zawsze to co najstarsze zostało zapomniane i jest bezużyteczne w dzisiejszym świecie IT. Każda popularna biblioteka jest i będzie rozwijana tak długo, jak długo będą ludzie, którzy poświęcą na to swój czas.
Dlaczego wybór ten jest istotny patrząc z perspektywy powstającego Start-upu?
Każdemu przedsiębiorcy zależy na minimalizacji kosztów. Jedni z nich szukają jak największych oszczędności już na starcie, a inni patrzą nieco bardziej w przyszłość. Obserwując rynek IT w ostatnich latach można zauważyć wysyp nowych technologii webowych oraz pod API, które bardzo szybko zyskały zwolenników. Klienci chcą bowiem najtańszych i najnowszych rozwiązań – nie zdając sobie przy tym sprawy z konsekwencji takiego wyboru. Bardzo często kierują się przy tym trendem panującym na rynku. Jedno zapytanie do Google o jakąś technologię i zasypani jesteśmy postami na blogach, które ją wychwalają, przedstawiają wykresy rosnącego zainteresowania w ostatnim czasie. Najciekawsze jest to, że każda z nich jest teraz najpopularniejsza. Dobry marketing robi swoje. Jeśli źle wybierzemy, to prawdopodobnie za jakiś czas będziemy zmuszeni do zmiany. Napisanie aplikacji od nowa nierzadko jest bardziej opłacalne niż ratowanie tonącego statku.

Typowe problemy pojawiające się po nieprzemyślanym wyborze Frameworka
Problemy wieku dziecięcego

Błędy
Każda nowa technologia zmaga się na początku z błędami, których nikt się nie spodziewał. Z czasem wychodzą łatki, które je poprawiają, ale nie ma nic gorszego dla programisty niż błędy w kodzie samego frameworka i czekanie na poprawki.
Mała społeczność
Świeża technologia zrzesza wokół siebie małą liczbę programistów i stąd na pomoc czy poprawki trzeba czekać dłużej. Jeśli coś jest testowane przez większą liczbę osób, to błędy wychodzą szybciej. Łatwiej też szukać pomocy, kiedy ktoś już sobie poradził z problemem podobnym do Twojego i opisał swoje rozwiązanie w Internecie.
Problem ze znalezieniem programistów
Nowa technologia kusi młodych programistów wysokimi zarobkami. Niestety ciężko jest znaleźć specjalistów spośród tłumu ludzi, który składa się w większości z osób początkujących.
Mała liczba gotowych bibliotek
Im mniej programistów interesujących się daną technologią tym mniej gotowych rozwiązań. Problem jest ten jednak dużo poważniejszy. Co zrobić w przypadku, kiedy już zdecydujemy się jakąś bibliotekę wykorzystać, ale za jakiś czas pojawi się nowa, lepsza, bardziej popularna albo – co gorsza – wykorzystywana przez nas przestanie być rozwijana? Będziemy musieli dokonać zmiany, a każda zmiana to dodatkowe koszty.
Problemy staruszka

Mocno w tyle
W tyle za najnowszymi rozwiązaniami, które przyśpieszają wytwarzanie oprogramowania i czynią nasze aplikacje bezpieczniejszymi.
Malejąca społeczność
Programiści zmieniają kierunek rozwoju, kiedy zauważają, że mogą mieć problem ze znalezieniem pracy za parę lat. Stąd ich liczba stopniowo spada.
Problem ze znalezieniem nowych programistów w przypadku rozrostu projektu
Co, jeśli Twój pomysł okaże się strzałem w dziesiątkę, ale za parę lat zabraknie na rynku programistów, którzy będą w stanie dalej rozwijać Twoją aplikację? Jest to pytanie, które powinieneś zadać sobie już dziś.
Dlaczego w IT Hero stawiamy na Javę oraz Spring Framework?
1. Java jest językiem programowania, który powstał już w roku 1995. Niektórzy tłumaczą, że jest to jej wada, bowiem jest przestarzała. Nie zapominajmy o tym, że dzisiejsza Java ma już niewiele wspólnego z tym co było lata temu. Nowe wersje wychodzą co pół roku a sam język jest bardzo często prekursorem nowych rozwiązań. W roku 2002 powstał Spring Framework – szkielet tworzenia aplikacji, który znacznie przyśpieszył wytwarzanie oprogramowania i do dziś jest najbardziej popularnym frameworkiem w tym języku. Dlaczego tak się stało? Dobrze wyjaśnia to ten artykuł. Frameworki takie jak Struts, GWT, Vaadin, Grails umierają ze względu na malejące zainteresowanie, które już teraz jest znikome. W roku 2012 powstał Spring Boot – jeden z wielu komponentów Spring Framework, który dodał mu skrzydeł i zostawił daleko w tyle alternatywne rozwiązania. Jak ma się sytuacja w przypadku innych języków programowania? Jakie tam rządzą frameworki backendowe?
Python
„On the whole, there are a number of Python web frameworks whose popularity will remain intact in 2018. But the developers will still evaluate the pros and cons of each of these popular Python web frameworks according to precise needs of individual projects. Hence, the choice of Python web framework will differ from one developer to another in 2018. The Python developers can also use several Python interpreters like PyPy for efficient programming.”
http://www.mindfiresolutions.com/blog/2018/03/python-web-frameworks-2018/
Ruby on rails
“On the whole, the developers have option to choose from an array of web frameworks for Ruby programming language. Most of these web frameworks are open source and free. Some of these web frameworks facilitate full-stack web development, whereas as others are simple and lightweight. But the Ruby developers must remember that each Ruby web framework has its own pros and cons. Hence, they must compare these Ruby web frameworks according to precise needs of individual projects.”
http://www.mindfiresolutions.com/blog/2018/06/ruby-web-frameworks-2018/
Node.js
“We have looked at ten of the best-known Node.js frameworks that are available today and have seen that all of them have their strong points. So, how to make the right choice for your project?
Naturally, you should start with the type of project; analyze its specifics and the way they can be matched by each of the frameworks.”
https://da-14.com/blog/10-best-nodejs-frameworks
PHP
“Which PHP framework is the best? Each framework has pros and cons and every developer has different coding styles and preferences. We hope you find a framework on our list that is valuable to you and your team.”
https://stackify.com/php-frameworks-development
Jak widać, wybór jest spory i niejednokrotnie trudny, ponieważ z roku na rok wychodzi jakaś nowa alternatywa. Z tego względu Java wraz z Springiem to jedna z niewielu naprawdę pewnych opcji, które gwarantują, że aplikacji nie trzeba będzie przepisywać na nowo za parę lat. Bardzo dobrze widać to w świecie JavaScript. Tutaj co roku wychodzi coś nowego, co szybko zyskuje na popularności. Niestety tracą na tym zazwyczaj przedsiębiorcy. AngularJS pojawił się całkiem niedawno, a już traci na popularności na rzecz Reacta. Jest szansa, że Angular albo React utrzymają się na dłużej wśród topowych frameworków, ponieważ zostały stworzone przez internetowych gigantów, jakimi są Google oraz Facebook. Niemniej jednak nikt tego zagwarantować nie może. Czas pokaże.

2. Żaden język programowania nie zrzesza wokół siebie tylu programistów co Java. Jedynym sposobem na przybliżone oszacowanie zainteresowania wybranym językiem programowania jest weryfikacja ilości zapytań o składowe tego języka w wyszukiwarkach typu Google, Bing, ale także na portalach takich jak StackOverflow, Wikipedia. Zajmuje się tym firma TIOBE, która stworzyła TIOBE Index.

Wciąż najwięcej mamy programistów Javy, wciąż oni otwierają najwięcej repozytoriów open-source (https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages/) i zainteresowanie tym językiem wcale nie maleje. Może ma na to wpływ fakt, że jest to język, którego uczy się na uczelniach wyższych? Nowe pokolenia programistów znają Javę.
3. Najwięcej ofert pracy skierowanych jest właśnie do programistów Java. Język ten wykorzystuje się w wielu sektorach: w medycynie, w bankowości, w IT. Tendencja ta utrzymuje się od lat.

Wybór technologii, na jakiej zamierzasz opierać działanie swojej aplikacji – nie jest łatwy. Bardzo duże znaczenie ma liczba doświadczonych programistów, ale także napływ osób, które zaczynają programować w danym języku. Jeśli chcesz zaoszczędzić na procesie wytwarzania oprogramowania, to z pewnością wybierzesz technologię, która jest stosunkowo młoda. Podążanie za trendami niesie jednak ze sobą duże ryzyko. W IT Hero stawiamy przede wszystkim na stabilność, bowiem chcemy zapewnić naszym Klientom wsparcie przez wiele lat. Nawet jeśli programiści Java nie należą do najtańszych na rynku, to jednak taka inwestycja zdecydowanie się opłaca.
Oczywiście nie negujemy pisania API w innych językach niż Java. Każde rozwiązanie ma swoje plusy i minusy. W tym artykule skupiłem się jednak na popularności frameworków na przestrzeni czasu, bowiem trzeba brać to pod uwagę przy projektach, które mają istnieć na rynku przez co najmniej 3 lata.
Jakie jest Wasze podejście do tego tematu? Jakie frameworki według Was są już w fazie umierania, a które czeka świetlana przyszłość? Spotkaliście się już tego typu problemem, że trzeba było napisać całą aplikację od nowa, w innej technologii? Podzielcie się swoją opinią w komentarzach. Dzięki!
Bardzo dobry artykuł. Wreszcie ktoś poruszył ten temat. Z większością się zgadzam i sporą rotację frameworków zauważam także jako programista PHP, który zaczynał od Zenda, potem przesiadł się na Code Igniter, następnie Symfony a obecnie korzystam z Laravela. I to wszystko na przestrzeni 8 lat. Można powiedzieć, że było to w głównej mierze spowodowane oczekiwaniami klientów, którzy brali pod uwagę wyłącznie najnowsze frameworki. Pomimo tego, że Symfony wciąż ma się dobrze, to jednak wszyscy uparli się na Laravela.