JAVA, PHP czy Node.js

Odpowiedz Nowy wątek
2013-12-27 13:31
0

Witam, od jakiegoś czasu zajmuję sie tylko i wyłącznie frontendem. Powoli zacząłby mi się przydawać chociażby podstawowy backend. Jeśli chodzi o backend to moja wiedza jest tylko taka, że w miarę ogarniam SQLa, robiłem najbardziej podstawową obsługę GET i POST w Javie (jako zadanie na uczelni, prosta obsługa formularza i model wykonuje jakieś obliczenia na podanych danych).

No i teraz nie chciałbym uczyć się czegoś niepotrzebnego. Z tego co widzę ostatnio ogromną popularność zyskuje node.js, ale wiem też, że niewiele hostingów (przynajmniej polskich) obsługuje node'a. Jave umiem o tyle o ile, nie należy ona do moich ulubionych języków, no ale powiedzmy, że mógłbym przysiąść bardziej gdyby się okazało, że jest najlepszym wyjściem z tej trójki. No i PHP, o którym słyszałem tyle skrajnych opinii że masakra. Czy nauka node.js, który ma zdecydowanie inną logikę niż np. PHP ma sens, jeśli w moim przypadku server-side'owe umiejetności są na naprawdę niskim poziomie.


Pozostało 580 znaków

2013-12-27 13:49
0
Mossar napisał(a):

robiłem najbardziej podstawową obsługę GET i POST w Javie

Java!=JavaScript

Wydaje mi się, że nauka PHP jest ważniejszym elementem, bo to fundament działania strony internetowej. JS zawsze można wyłączyć w przeglądarce i wtedy bach... :)

Pokaż pozostałe 22 komentarze
Przypomnę, że dyskusja była jednak na inny temat. Może skończmy po prostu temat? - turson 2013-12-27 15:09
g**no a nie PHP. Mało kto się przejmuje IE starszym niż 8 (więc HTML 5 jak najbardziej pasuje). O JSie pisałem wyżej. Wszystko sprowadza się do tego, że dane trzeba też walidować po stronie serwera (o ile mamy backend). A po stronie serwera nie musi być PHP (które jak pisałem wyżej - ssie po same kule). Więc twoje stwierdzenie, że PHP to podstawa można o kant d**y. Piszę aplikacje internetowe od dłuższego już czasu i od czasów gimnazjum nie tykam się PHP. Więcej, uważam go za jeden z najgorszych języków programowania jakie istnieją. - hauleth 2013-12-27 15:09
@turson Moze po prostu zrozum, ze smieszne jest porownywane js client-side z php server-side i mowienie, ze php jest lepszy bo nikt walidacji nie wylaczy ;D - n0name_l 2013-12-27 15:15
Kompletnie się nie rozumiemy :) - turson 2013-12-27 15:19
@turson albo nie potrafisz się porządnie wysłowić. Osobiście widziałem parę aplikacji, które wcale nie miały BE. Wtedy cała twoja teoria o PHP leży i kwiczy. - hauleth 2013-12-27 15:25

Pozostało 580 znaków

2013-12-27 13:59
0
turson napisał(a):
Mossar napisał(a):

robiłem najbardziej podstawową obsługę GET i POST w Javie

Java!=JavaScript

No bez przesady, chyba nie myślałeś, że mylę te dwa pojecia. Tak jak pisałem, używałem HTTP Servleta w Javie z Glassfishem do obsługi GET i POST.

Wydaje mi się, że nauka PHP jest ważniejszym elementem, bo to fundament działania strony internetowej. JS zawsze można wyłączyć w przeglądarce i wtedy bach... :)

No właśnie w związku z możliwością wyłaczenia JS, użycia jakiś NoScriptów, etc. Dlatego też zastanawiał mnie sens używania Node.js.


edytowany 2x, ostatnio: Mossar, 2013-12-27 14:00
niektórzy mylą dlatego zapobiegawczo tak napisałem :P jak zacząłeś pisać w javie aplikacje webowe to ja bym w tym kierunku się rozwijał - turson 2013-12-27 14:03

Pozostało 580 znaków

2013-12-27 14:29
3

Node.js działa po stronie serwera, więc skutek wyłączenia JS w przeglądarce byłby taki sam jak przy każdej innej technologii backendowej.

Moim zdaniem, zamiast babrać się w PHP i/ lub generowanie HTMLa na serwerze, idź od razu w RESTa oraz we frontend w frameworku JavaScriptowym. Backend możesz np zaklepać w Javie i Pythonie, żeby sobie poćwiczyć łączenie różnych technologii :]


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2013-12-27 15:23

Podstawowym pytaniem jest jakie języki znasz najlepiej. Wolisz JavaScript, Javę, Pythona, Rubiego, Perla, czy co tam chcesz? Jak bardzo jesteś oblatany w tych językach. Mówisz, że pisałeś FE - czyli znasz dobrze JavaScript. Jeśli tak to Node.js. Jeśli zajmowałeś się bardziej webmasteringiem (czyli HTML + CSS) to warto zacząć od nauczenia się właśnie JSa i RESTa od strony przeglądarki (możesz też spróbować od razu jakiegoś Backbone, Ember, Angular). Potem spróbować również sił w BE, a tam masz całą kawalkadę języków i technologii:

  • Ruby - Rails lub Sinatra
  • JavaScript (Node.js) - Meteor i co tam jeszcze jest
  • Java/Scala - JSP, Spring, Play
  • Groovy - Grails
  • Python - Pylons, Django
  • .NET - ASP.NET
  • PHP - Zend, nie wiem co tam jeszcze się używa

Ogólnie hostingiem na razie się nie przejmuj. Na czas nauki nie potrzebujesz żadnego hostingu, a jak już będziesz miał co hostować to nie będzie miało znaczenia czy jest to hosting w Polsce czy za granicą. A za granicą masz całe multum hostingów/SaaS'ów/PaaS'ów i IaaS'ów do użycia:

  • Windows Azure
  • Google App Engine
  • Amazon EC2
  • Heroku
  • Rackspace
  • AppFog
  • i dużo dużo innych

Część z nich możesz uzyskać nawet ze zniżką lub za darmo na pewien okres czasu lub do pewnej ilości zasobów.

tl;dr
Przejrzyj sobie co jest dostępne i wybierz z tego. Nie ma praktycznie złych wyborów (choć ja za taki uważam PHP).

Pozostało 580 znaków

2013-12-27 16:14
0
winerfresh napisał(a):

Podstawowym pytaniem jest jakie języki znasz najlepiej.

Dość długi okres czasu pisałem m.in. gry 2d w C++, z C++ przeszedłem powoli na C#, ale nie mogę powiedzieć, że C# znam, bo niewiele w nim robiłem. Z konkretów jedynie aplikacja winformsowa do wyostrzania bitmapy przy użyciu bliboteki asemblerowej. Jave zacząłem ogarniać w tym semestrze z racji tego, że mamy taki przedmiot, ale nie jestem fanem tego języka. JavaScriptu kiedyś nienawidziłem, składnia i logika wydawała mi się strasznie ciężka, ale od czasu kiedy używam go częściej, zaczynam go lubić i rozumieć. Dlatego też myślałem o Node i prawdopodobnie nawet jak będę robić w czym innym to chętnie poznam node.js. Jeśli chodzi o Ruby, Pythona czy PHP to moja wiedza jest całkowicie zerowa.

Jeśli zajmowałeś się bardziej webmasteringiem (czyli HTML + CSS) to warto zacząć od nauczenia się właśnie JSa i RESTa od strony przeglądarki (możesz też spróbować od razu jakiegoś Backbone, Ember, Angular).

A mógłbyś przybliżyć trochę tego RESTa, jak to w praktyce wygląda? Bo z tego co czytam to jest to wzorzec, ale niestety pierwszy raz się spotykam z tym.

  • JavaScript (Node.js) - Meteor i co tam jeszcze jest
  • Java - JSP, Spring, Play
  • .NET - ASP.NET

Właściwie to to są trzy możliwe wybory w mojej sytuacji. Poczytam więcej o nich i zastanowie się dokładnie co wybrać.


edytowany 1x, ostatnio: Mossar, 2013-12-27 16:15

Pozostało 580 znaków

2013-12-27 16:27
1

REST (eng. REpresentational State Transfer) to jest wzorzec architektoniczny, który używa czasowników HTTP do określania akcji wykonywanych na obiektach. Używa on CRUD by określić jaka ma być akcja, a URL jest identyfikatorem obiektu. Dzięki temu jesteśmy w stanie zapewnić API przez ten sam interface przez jaki udostępniamy standardowe widoki. I. e. adres /users/trevor odpowiada za jakiegoś użytkownika - przy pomocy zapytania GET możemy dostać informacje o nim takie jak imię, nazwisko, etc. Przy pomocy zapytania PUT aktualizujemy dane tego użytkownika, a zapytaniem DELETE usuwamy go. W ten sposób rozwiązujemy 2 problemy - prefetchingu oraz API.

Jeśli używałeś coś Javy to może Ci się kojarzyć coś jak SOAP. REST jest znacznie lżejszą i bardziej logiczną wersją Web Services. Do poczytania: http://rest.elkstein.org/2008/02/what-is-rest.html (jest trochę przestarzałe, ale podstawy ogarniesz).

Poza tym zalecam naukę JSa bez jQuery. Naucz się manipulować DOMem przy pomocy "surowych" funkcji, jak document.querySelector[All], przy pomocy podstawowych elementów DOM (https://developer.mozilla.org/en-US/docs/DOM/DOM_Reference). Dzięki HTML 5 jest to niewiele trudniejsze niż używając jQuery, a na pewno ogarniesz więcej.

edytowany 1x, ostatnio: hauleth, 2013-12-27 16:31

Pozostało 580 znaków

2013-12-27 17:52
0
winerfresh napisał(a):

Poza tym zalecam naukę JSa bez jQuery. Naucz się manipulować DOMem przy pomocy "surowych" funkcji, jak document.querySelector[All], przy pomocy podstawowych elementów DOM (https://developer.mozilla.org/en-US/docs/DOM/DOM_Reference). Dzięki HTML 5 jest to niewiele trudniejsze niż używając jQuery, a na pewno ogarniesz więcej.

Czytałem ostatnio jeden z wpisów Ferrante o jQuery o tym, że w wielu przypadkach lepiej korzystać z czystego JSa. Ale nie zaczynałem JSa od jQuery wbrew pozorom, do pierdółek wizualnych dotyczących pojedynczego elementu wykorzystuje JQuery (lub jeśli się da CSS3), ale gdy kod dotyczy większej ilości odwołań do elementów DOM to już staram się stosować JS bez frameworków.

Dziękuje bardzo za rozbudowane odpowiedzi :)


99% podstawowych animacji da się uzyskać bez jQuery. Co innego z grami czy innymi takimi (ale wtedy jQUery jest za słabe). - hauleth 2013-12-27 18:12
Ja sobie zdaje sprawę z tego i na pewno wiecej to daje jeśli chodzi o poznanie języka. Ale w niektórych przypadkach różnica między użyciem funkcji jQuery a czystego JSa jest po prostu pomijalna, co innego gdy się robi w tym JSie coś poważniejszego. Co nie zmienia faktu, że więcej bym się nauczył gdybym się starał wszystko bez jQuery robić. - Mossar 2013-12-27 18:20
Poważniejsze rzeczy też da się zrobić bez jQuery. Przydatne biblioteki to np. Mustache czy Lazy.js, które znacznie upraszczają pewne rzeczy. jQuery jako manipulator DOM już jest IMHO passe. - hauleth 2013-12-27 18:26
Ja właśnie miałem na myśli, żeby poważniejsze rzeczy robić czystym JSem. A co do mustache i lazy to jeszcze nie ogarniałem tego, ale chętnie sprawdzę. - Mossar 2013-12-27 18:29

Pozostało 580 znaków

2013-12-27 18:31
0

Do node.js próbowałem podejść kilka razy, jeśli masz projekt > 100 linijek to robi się gehenna, milionowy poziom zagnieżdżenia callbacków i w ogóle. To się nie nadaje do tworzenia czegoś innego niż nieskomplikowane aplikacje do zadań specjalnych.


Women were the reason I became a monk - and, ah, the reason I switched back...
Poczytaj o promises. - hauleth 2013-12-27 18:50
Solić promisy, jest przecież async.waterfall. Ale nodejs ssie i tak. - somekind 2016-09-16 14:05

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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