Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Dyskusja] PHP a Node.js


Gość Pan Szymek

Rekomendowane odpowiedzi

Opublikowano

To temat do dyskusji, w której możecie wskazać subiektywne zalety i wady obu technologii. Języki te mogą mieć szeroki wachlarz zastosowań, dlatego chciałbym, aby skupiać się głównie na zastosowaniu w tworzeniu aplikacji internetowych. 

 

Osobiście uważam, że Node jest bardzo wygodne, nie trzeba konfigurować serwera WWW, dzięki npm z łatwością można zainstalować dodatkowe pakiety, operacje na MongoDB również są przyjemne. Jednak preferuję PHP, bo pomimo że JS często wygrywa składnią (metody we wbudowanych typach), to ma wiele wad pokroju braku możliwości wykorzystania globalnego try catch, ogromnej ilości callbacków lub promises, brak obsługi wątków i moduły są mniej wygodne od zwyczajnego wykorzystania przestrzeni nazw.

Opublikowano

PHP:

- Ogromna popularność, a co za tym idzie tak samo duża społeczność

- Duży wybór wśród frameworków

- Wraz z przyjściem PHP7 wzrost wydajności

- Composer (PHPowy odpowiednik NPM'a)

- IMO przyjazna składnia

- Dostępność materiałów

 

To tak na "szybko". Pewnie jeszcze by się sporo tego znalazło :D.

Opublikowano

Generalnie możliwości obu tych technologii są bardzo do siebie zbliżone.

Wadą PHP są ludzie, którzy robią negatywny szum wygłaszając opinie oparte o stereotypy lub rzeczywiste niedoskonałości tego języka z poprzednich (już dosyć starych) jego wersji. Oczywiście nic nie jest doskonałe i PHP też nadal nie jest.

Wadą JavaScriptu jest jego odmienność. Jest on oparty o prototypy, co jest bardzo trudne do zrozumienia dla osób początkujących. Drugą taką trudną rzeczą jest asynchroniczność, która wymaga trochę innego spojrzenia na projektowanie aplikacji, szczególnie dla osób, które nie miały dużej styczności z innymi językami programowania. Język ten nie jest dobry dla amatorów programowania.

 

Jeśli dla node manager paczek jest zaletą, to dla PHP zaletą jest znakomity Composer umożliwiający zarządzanie zależnościami w projekcie.

 

 

 

Osobiście uważam, że Node jest bardzo wygodne, nie trzeba konfigurować serwera WWW

No tak, w nodeJS taki serwer trzeba napisać samemu. Ma to swoje wady i zalety. Node jak i PHP mogą również działać bez takiego serwera.

 

 

 

nie trzeba mieć otwartej przeglądarki do np. tweetowania

A w PHP i innych językach trzeba mieć otwartą przeglądarkę? Wszystko przecież można wykonywać z poziomu wiersza poleceń.

gamedevmania.com

Opublikowano

Zalety node w stosunku do php:

  • możliwość wygodnego programowania funkcyjnego (funkcje jako obiekty pierwszej kategorii, domknięcia, mnóstwo funkcyjnych bibliotek) - czyli ogólnie krótszy, czytelniejszy, bardziej komponowalny kod,
  • mega elastyczny model obiektowy,
  • izomorficzność (możliwość wykorzystania kodu także po stronie klienta),
  • asynchroniczność jako centralny koncept - w połączeniu z promisami i generatorami bajka,
  • ogólnie JS to bardziej ekpresyjny i lepiej przemyślany język (szczególnie w wersji ES6+).

Wady node w stosunku do php:

  • więcej nauki (choć dla mnie to nie wada, zważywszy na to co dostajesz w zamian),
  • więcej konfiguracji serwera.

 

@Writen

Wg mnie prototypy są prostsze i bardziej intuicyjne niż sztywne dziedziczenie klasowe. Problemem może być zrozumienie funkcji konstruktorów, ale to chyba najgorszy sposób pisania OOP w JS (choć niestety najpopularniejszy, bo imituje dziedziczenie klasowe).

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Na początek: Why does php suck. Chociaż PHP7 zmienił sporo rzeczy na lepsze, to cały czas czkawką odbijają się błędne decyzje projektowe sprzed paru/parunastu lat. Node.js wprowadził dużo świeżości i za kilka lat zdominuje rynek moim zdaniem. Już teraz sztandarowy PHPowy Wordpress coraz bardziej przymila się do JavaScriptu i node.

 

Ale i tak PHP nie zginie do końca, zbyt wiele istniejących już systemów i aplikacji go używa. I nikt nie kwapi się, żeby przepisywać to na inne technologie. :)

Programowanie, muzyka, piwo i przemyślenia rodem z ławki spod monopolowego. Nie wchodź! fireveined.pl

Opublikowano

@Fireveined

Jakby PHP tak bardzo ssał to by już dawno duże platformy przymierzały się do przejścia na inny język. Poza tym nie tylko "PHP Sucks" https://whydoesitsuck.com/why-does-javascript-suck/. Jak dla mnie wśród programistów robi się to samo, co wśród użytkowników OSów. Milion powodów dlaczego Wina ssie, dlaczego pingwin ssie i dlaczego Mac'i ssą. To, że błędne decyzje odbijają się czkawką nie znaczy, że tak musi być do końca. Choćby fakt, że node powstał PO PHP mogło pozwolić mu na uniknięcie pewnych błędów, bo jego projektanci widzieli jakie błędy popełnili Ci od PeHaPka. PHP7 pokazał, że poprawiają pewne aspekty i idą w dobrym kierunku, kto wie, może wyjdą w końcu z dołka. Hejterzy byli, są i będą, a artykuły takie jak ten wyżej będą powstawać. Wszystkim nie dogodzisz. Co się stanie z rynkiem webdevu w mojej opinii? Pewnie to samo co jest obecnie z innymi językami, nic wielkiego. Będą bardziej popularne, będą mniej popularne, ale nie będzie coś takiego, że nagle wejdzie jakiś język i wszystkie kaput lub zostaną na większą skalę wyparte. O ile się nie mylę Java miała być gwoździem do trumny C++, jak widać ma się całkiem dobrze.

 

Hejt na większość rzeczy, nie tylko języki programowania czy choćby OS'y, bierze się zazwyczaj "z tyłka", a nie z racjonalnych pobudek.

 

Jeszcze co do przymilania się WordPressa do JS'a. Pytanie na ile jest to wina użytych technologii, a ile w tym jest błędów programistów. Może stwierdzili, że już tak się zakopali, że w sumie łatwiej będzie wszystko przepisać na nowo. Nie wiem, nie śledzę WP'ka, bo nawet wśród PHPersów nie jest zawsze jakoś wybitnie wychwalanym tworem (szczególnie jak ktoś wpada na pomysł użycia WooCommerce ^^).

 

Chyba wszystko, pewnie po drodze w tekście jest milion przejęzyczeń i jakichś drobnych błędów, ale co mi tam, YOLO :yay:.

Opublikowano

Jakby PHP tak bardzo ssał to by już dawno duże platformy przymierzały się do przejścia na inny język.

 

Każda zmiana technologi, szczególnie przy istniejących projektach, to koszty. Taniej wychodzi utrzymywanie istniejących rozwiązań.

 

 

 

Pewnie, JS nie jest idealny, ale w artykule masz "It’s a terrible language with numerous flaws, though it does have a bright future." I teraz właśnie jest ta "bright future" :D Node.js, ES6, TypeScript, mnóstwo frameworków, bibliotek i narzędzi. JSowy światek pędzi do przodu z szaleńczą szybkością, może nawet trochę zbyt szybko.

 

 

 Choćby fakt, że node powstał PO PHP mogło pozwolić mu na uniknięcie pewnych błędów, bo jego projektanci widzieli jakie błędy popełnili Ci od PeHaPka.

Owszem, tak pewnie było. Projektanci node mieli łatwiej, ale czy to coś zmienia? Mogli uchronić się przed pewnymi błędami, więc się uchronili. Dobrze dla nas.

Programowanie, muzyka, piwo i przemyślenia rodem z ławki spod monopolowego. Nie wchodź! fireveined.pl

Opublikowano

Nie mówię, że to źle. Chodziło mi bardziej o to, że przed teamem PHP jest cięższe wyzwanie, bo oni muszą uporać się z tym, z czym języki po PHP niekoniecznie musiały mieć problem. Co do przepisania projektów, wiem, że to są koszta, ale chodziło mi o to, że jakby PHP był, aż tak zły jak niektórzy go kreują (były artykuły typu "PHP musi umrzeć") to by raczej to zrobili. Śmiech na sali, że jakby PHP umarło to by kwikła strona, na której pojawił się ten wpis ^^. Zobaczysz, że jeszcze trochę i powoli zacznie to wszystko zwalniać, bo w końcu "ile można" :P. Ja życzę zarówno PHP, jak i JS wszystkiego dobrego. Czas pokaże co z tego wszystkiego wyjdzie :D.

Opublikowano

Sam często używam PHP, gdy muszę machnąć jakiś prosty skrypcik. Ale takie jest już prawo dżungli - przetrwają tylko najsilniejsi, a nie Ci, którzy gdzieś tam z tyłu próbują doścignąć resztę :D

Programowanie, muzyka, piwo i przemyślenia rodem z ławki spod monopolowego. Nie wchodź! fireveined.pl

Opublikowano

@Wolen

Przytoczony przez Ciebie artykuł jest bardzo słaby, po pierwsze: autor nie zna dobrze JS, po drugie: duża część była nieaktualna już w momencie pisania artykułu, a biorąc pod uwagę, że artykuł był edytowany pod koniec lutego tego roku to już w ogóle żal i dezinformacja:

 

1. Globalne zmienne:

Temat nieaktualny od momentu wprowadzenia 'strict mode' (ES5!):

'use strict';
a = 1;
console.log(a); // Wywali błąd -> Uncaught ReferenceError: a is not defined

W ES6 takie zachowanie jest domyślne, nie trzeba deklarować 'strict mode'.

 

2. Brak odpowiedniego scopingu: wyeliminowane w ES6 za sprawą let i const.

 

3. Literały, obiekty:

"Anyway, those wrappers are not particularly useful and probably confusing and unnecessary at best."

Boxing ma na celu umożliwienie wywoływania metod także na literałach, autor nie wie o czym pisze.

 

Operator typeof nie jest co prawda zbyt przydatny, ale język daje sensowną alternatywę, wystarczy napisać prostą funkcję:

function getType(x) {
    return Object.prototype.toString.call(x).slice(8, -1);
};

lub w ES6:

const getType = x => Object.prototype.toString.call(x).slice(8, -1);

i mamy elegancko:

console.log(
    getType('a'),          // -> String
    getType(1),            // -> Number
    getType({}),           // -> Object
    getType(function(){}), // -> Function
    getType([]),           // -> Array
    getType(undefined),    // -> Undefined
    getType(null)          // -> Null
); 

------

 

Oczywiście język ma trochę wad i zdecydowanie są lepsze języki, ale jak krytykować to z sensem.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Tamten artykuł nie miał być przykładem mówiącym, że JS ssie.  Każdy język ma pewne pozostałości po dawnych czasach lub jakieś udziwnienia, które są i pewnie będą. Ja jako programista PHP akceptuje takie typowanie zmiennych jakie jest, a nie inne i muszę się z tym pogodzić, ale jest to bardziej kwestia przyzwyczajenia. Z czasem nabieram wprawy i praktycznie w ogóle mi to nie przeszkadza, ale dla kogoś kto programuje w innym języku może to być nie do pomyślenia, ale działa to też w drugą stronę. W odpowiednich rękach żaden język programowania "sucks". Szkoda tylko, że przez moje podlinkowanie tego durnego artykułu straciłeś czas na rozpisanie się, kiedy mój wpis nie to miał tego na celu :P.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...