Bringt php etwas wenn man JavaScript schon kann/lernt?

6 Antworten

Von Experte MrAmazing2 bestätigt

Wenn du wirklich JavaScript kannst und vielleicht auch eher dann nicht klassische serverside gerenderte Websites sondern eher moderne WebApps machen möchtest, dann würde ich das definitiv nicht mit PHP machen wollen.

Klar bringt dir das, bessere Chances auf Jobs weil du ein breiteres Skill set hast.

Aber, ich persönlich würde kein PHP machen wollen. Ich musste es in meiner Ausbildung lernen, ekelhafte Sprache. Ich finde das Konzept relativ überholt und Dinge wie asp.net wesentlich besser, wenn man schon eine andere Sprache lernen wollen würde.

Und mehr Erfahrung mit JS ist definitiv auch eine gute Sache, oft hat man mehr von eine Sprache + mehr Frameworks usw. zu lernen als zwei verschiedene Sprachen.

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

apachy  04.04.2022, 07:20

Server-Side-Rendering bringt auch viele Vorteile mit sich, warum der Trend auch immer mehr zu Frameworks geht, die theoretisch beides können. Sei es im Bereich JavaScript mit Next.js oder in anderen Sprachen wie Elixir mit dem PhoenixFramework.

Natürlich kann ich PHP auch einfach als REST API nutzen, wie man es meist mit Node macht und das HTML auf Clientseite zusammenbauen. PHP ist zwar gut für das Server-Side-Rendering, das ist aber kein Konzept, dass einem PHP aufzwingen würde.

Wobei gerade die Generierung von HTML in PHP natürlich relativ einfach ist und eigentlich nur HTML mit einer Templateengine entspricht, was PHP ursprünglich auch mal war.

In JavaScript muss man ja quasi Frameworks benutzen, um das halbwegs verständlich hinzukriegen mit akzeptabler Performance auf dem Client, wobei auch hier die Performance des Clients wichtig ist oder die Version des Browsers usw.

1

Nun jedes Wissen kann was bringen. Sowohl für das neu erlangte Wissen selbst, als auch für Sachen, die man mit vorhandenen Wissen verknüpfen kann.

Wo PHP eben glänzt ist Server-Side-Rendering. Das hat Vor- und Nachteile. Bzgl. der Performance sind Sachen die serverseitig gerendert werden gerade beim ersten Aufruf meist deutlich schneller. Dazu ist die Geschwindigkeit ziemlich unabhängig vom jeweiligen Client. Dafür trägt aber auch der Server die ganze Last und es wird nicht auf die Clients verteilt. Auch erlauben sie im Vergleich zu gängigen JavaScript generierten Seiten auf dem Client entsprechende Suchmaschinenoptimierung.

Mittlerweile gibt es durchaus Frameworks, die probieren die Vorteile dieser zwei Welten zu vereinen, wie das bei Next.js z.B. der Fall ist.

Ein wenig unschön finde ich bei JavaScript, dass man eben auch wirklich solche Frameworks brauch, um halbwegs effektiv arbeiten zu können.

Die Frage ist natürlich was du sonst noch so beherrscht. In der Web-Welt gibt es viele andere Sachen, die für einen noch nützlich sein können. Sei es der Umgang mit Datenbanken und SQL, sei es das Tooling rund um npm, Webpack und co., seien es generelle Paradigmen zur Programmierung, Clean Code, Clean Architecture bzw. Trennung von Domäne und Infrastruktur, Domain-Driven-Design, sei es Test-Driven-Development zur Entwicklung selbst, Refactoring oder näher an Sprachen dran statt einfachen JavaScript z.B. TypeScript.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

Würde ich in dem Fall eher nicht empfehlen.

Es ist meiner Meinung nach um einiges leichter, einfach Node.js für dein Backend zu verwenden, als extra eine neue Sprache wie PHP zu lernen, die fast genau den selben Zweck erfüllt.
Node.js erfordert aber etwas mehr Einarbeitungs-Zeit und Verständnis für HTTP-Requests, AJAX, etc. (wobei das meiner Erachtung nach gut ist, und du das DURCH Node.js auch super lernst!).

Hier hast du einen sehr guten Vergleich von Node.js zu PHP: https://www.geeksforgeeks.org/php-vs-node-js/

Positiv an Node.js ist vor allem auch, dass du alles mit einer einzigen Sprache machen kannst.

Ich habe mein ganzes Leben noch kein PHP gebraucht, und ich denke das kommt auch ziemlich aus der Mode, weil sich jetzt eben alles Richtung asynchrone Verarbeitung + dynamische Webseiten + Skalierbarkeit geht. PHP ist eher für serverseitig generierte statische Webseiten - Das will heute fast keiner mehr.

Ich denke du solltest als zweite Programmiersprache etwas lernen, was nicht nur im Web-Development Anwendung findet. Wie wär's mit Python, Java, C#, C++, Go, ...
Ich würde Java oder C# empfehlen, weil es definitiv nützlich ist, objektorientiertes Programmieren und eine typsichere Sprache zu beherrschen.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Je nachdem: Mit PHP kann man in kurzer Zeit ein gutes Backend Zaubern. Mit JavaScript -> NodeJS geht es auch, allerdings muss man da noch etwas drum herum basteln, damit es überhaupt klappt. Gerade für Anfänger würde ich deshalb PHP empfehlen. Anders als im JavaScript Frontend, kann man PHP Code nicht einsehen und somit ist dieser auch viel besser geschützt vor Manipulation. Am Ende wirst du aber entscheiden müssen, wenn du ein Backend brauchst, welche Sprache du wählst. Im Bereich Backend hast du viele Möglichkeiten. Fast alle Sprache funktionieren hier. Einige sind: PHP, NodeJS, Python, C#, Java, C++ usw.


fluffiknuffi2  04.04.2022, 03:01

Ja, aber zum einen verstehe ich es so, dass JS bereits erlernt wurde. Und zum anderen mit Node JS, womit dann auch „geschützte“ Backends gebaut werden können. Sprich Frontend und Backend sind grundsätzlich schon abgedeckt.

2
FaTech  04.04.2022, 03:05
@fluffiknuffi2

Das es mit NodeJS geht, sagte ich doch. Das JS erlernt wurde, wurde gesagt, ja, aber dennoch ist das Browser JS (Was hier vermutlich gemeint war) nicht NodeJS, wodurch man sich erstmal umgewöhnen müsste, da es ein paar Eigenheiten gibt und die ganzen Funktionen drum herum, damit man den Server erstmal zum laufen bekommt, bevor man den part der Website schreiben kann, muss man auch erstmal verstehen und lernen. Dahingehend ist PHP einfacher. Server installieren und direkt loslegen mit dem Website Part

1
regex9  04.04.2022, 03:30
@FaTech

Das geht mit Node.js genauso schnell und einfach. Man braucht es lediglich installieren, das Serverskript von der offiziellen Seite kopieren und starten/ausführen.

0
MrAmazing2  04.04.2022, 03:58
@regex9

Wenn ich mal die beiden Codes vergleiche:

// starting Node.js server
$ node app.js

    // app.js source code
    var http
    = require('http');
http.createServer(function(req, res) {
        res.writeHead(200, { 'Content-Type' : 'text/plain' });
        res.end('Hi Programmer\n');
    })
    .listen(8080, '127.0.0.1');
console.log('GeeksForGeeks Server running at http://127.0.0.1:8080/');

-

// starting php server
$ php -S localhost:8000

// index.js file code
<?php
echo 'Hello! This is GeeksForGeeks';
?>

Dann muss ich schon sagen, das man bei Node.js einiges mehr verstehen muss.

HTTP-Request, HTTP-Response, Header, Content-Type, Statuscode, ....
Bei PHP ist das alles versteckt.

Ich denke bei PHP steigt die Komplexität dann auch noch, je schwieriger das ist, was man umsetzen will, aber so beim Standard-Code ist der Unterschied schon krass und Node.js deutlich wissens-fordernder.

1
MrAmazing2  04.04.2022, 04:01
@MrAmazing2

Copy-Pasten kann natürlich jeder, aber damit man den Code umbauen kann sollte man auch verstehen.

0
BeamerBen  04.04.2022, 04:03
@FaTech

Nein, PHP ist da eigentlich nicht wesentlich einfacher. Ich weiß noch als ich das erste mal nginx mit PHP aufgesetzt habe.

Klar kann man sich einfach XAMPP installieren, aber die Leute wissen dann trotzdem nicht was sie damit tun.

Und so groß ist der Unterschied von Node zum Browser auch wirklich nicht, ganz sicher nicht vergleichbar mit JS vs PHP.

1

PHP ergänzt HTML in idealer- und unkomplizierter Weise!

Tatsächlich gibt es haufenweise Websites, welche HTML5, PHP und Javascript einsetzen. Denn es gibt gewisse Aufgaben, welche mit PHP nicht oder nur mit umwegen realisierbar sind.


Lqndnsmq 
Beitragsersteller
 04.04.2022, 21:35
Denn es gibt gewisse Aufgaben, welche mit PHP nicht oder nur mit umwegen realisierbar sind.

Hast du vielleicht beispiele für solche aufgaben ?

0