14 Stimmen

Skriptsprachen vs. kompilierte Sprachen für die Webentwicklung

Obwohl ich aus einem reinen PHP-Hintergrund auf der Webentwicklungsseite der Programmierung komme, habe ich auch viel Zeit mit C# und C++ auf dem Desktop verbracht.

Ich möchte wirklich keine Flammenkriege entfachen, aber:

Wann sollten Sie Skriptsprachen gegenüber kompilierten Sprachen für die Website-Entwicklung verwenden?
(und vice versa)

Nur um das klarzustellen: Für diese Frage definiere ich eine "Skriptsprache" als eine interpretierte Sprache wie PHP, Python oder Ruby und eine "kompilierte Sprache" als eine stark typisierte, kompilierte Sprache wie C#, C++, Java oder VB.

19voto

T.J. Crowder Punkte 948310

Es kommt darauf an :-)

Am...

  • ...wo und wie Sie die Anwendung einsetzen wollen
  • ...die Fähigkeiten der Ingenieure in Ihrem Unternehmen
  • ...welche Komponenten von Drittanbietern Sie integrieren oder einbinden möchten

Einsatz

Wenn Sie in der Lage sein müssen, die Lösung auf einer von Dutzenden möglichen Plattformen einzusetzen, sind Sie mit PHP vielleicht besser dran als mit Java (zum Beispiel). Es gibt Hunderttausende von Java-Hosting-Anbietern, aber wahrscheinlich gibt es Millionen von PHP-Hosting-Anbietern. (Und das sage ich als Java-Kopf, der PHP bestenfalls "so und so" findet.)

Dies gilt auch für OS. Mono beiseite, .Net Zeug wird Sie auf Windows-basierte Bereitstellung zu begrenzen (oder hinter der Schneide und mit sehr, sehr rigoros jede Komponente von Drittanbietern testen Sie bringen, um sicherzustellen, dass es nicht Mono... Probleme haben).

Skillsets

Es ist nicht trivial, sich in einer neuen Umgebung oder Sprache zurechtzufinden. Die meisten von uns lernen die Grundlagen ziemlich schnell, aber es kann sein, dass Sie nicht die besten Architektur-/Designentscheidungen treffen, weil Sie die Umgebung/Sprache (vergleichsweise) schlecht kennen. Fertigkeiten zählen.

Diesbezüglich: Die Einstellung von Fachkräften zählt. Ist es einfacher (und/oder billiger), PHP-Entwickler mit 3-4 Jahren Erfahrung einzustellen, oder Java-Entwickler mit 3-4 Jahren Erfahrung, oder C#-Entwickler, oder...?

Kaufen/Finden/Integrieren vs. Bauen

Mit welchen serverseitigen Komponenten oder Paketen wollen Sie in Ihrem Zielbereich der Entwicklung zusammenarbeiten? PHP hat eine . Eine ganze Reihe von Dingen ist dafür verfügbar, ebenso wie Java, C# oder ASP.Net. Aber es sind unterschiedliche Dinge (im Großen und Ganzen), so dass Sie wollen, um zu sehen, was Sie tatsächlich verwenden möchten.

Schlussfolgerung

Ich denke also, es geht weniger um die zusammengestellt vs. Drehbuch (in der heutigen Welt), sondern vielmehr darum, was nach anderen Kriterien am besten zu dem passt, was man erreichen will.

Nachtrag: Sowohl als auch

Und natürlich gibt es immer ein "sowohl als auch". Zum Beispiel arbeite ich im Moment in zwei voneinander unabhängigen Umgebungen, die beide eine Kombination aus geskripteten und kompilierten Ressourcen verwenden. (Eine davon ist Java + JavaScript über Rhino auf Tomcat, die andere sind kompilierte COM-Objekte + JScript [wiederum serverseitig] auf IIS).

3voto

Jay Punkte 4965

Ein Programmierer kann in jeder Sprache guten/schlechten, schnellen/langsamen, skalierbaren/nicht skalierbaren Code schreiben. Allerdings erschweren einige Sprachen und Technologien diese Aufgabe. Meiner Erfahrung nach kann man mit Skriptsprachen eine kleine bis mittlere Anwendung schneller erstellen als mit kompilierten Sprachen wie Java. Wenn die Anwendungen jedoch größer werden, eignen sich kompilierte Sprachen besser für diese Aufgabe. Ich denke, das liegt an der starken Typisierung von Objekten, tieferen Architekturschichten zur Verwaltung von Aufgaben und mehr QA-Frameworks, um zu überprüfen, ob die Dinge so laufen, wie sie laufen sollen, wenn Änderungen auftreten.

2voto

Rob Punkte 1738

Ich finde, das ist vor allem eine Frage der Meinung. Anfangs habe ich die vorkompilierten Webanwendungen, die asp.net bietet, gehasst, aber ich habe mich daran gewöhnt und hasse sie nicht mehr. Es hat Vor- und Nachteile:

Pro

  • vorkompilierte Webanwendungen sind einfach zu installieren, oft müssen Sie nur das bin-Verzeichnis aktualisieren
  • vorkompilierte Webanwendungen funktionieren gut
  • Sie müssen den Quellcode nicht hochladen, was imho gut ist.

Betrug

  • Das Aktualisieren einer vorkompilierten Webanwendung bedeutet im Allgemeinen, dass die Webanwendung zurückgesetzt wird. Wenn Sie also den Sitzungsstatus nicht geändert haben, werden alle Sitzungen beendet und alle Personen abgemeldet.
  • Die Wiederherstellung einer großen Webanwendung kann einige Zeit in Anspruch nehmen, die zu der Zeit hinzukommt, die Sie benötigt haben, um die Änderungen überhaupt erst zu schreiben. Ich bin manchmal ungeduldig.

Ich mochte es schon immer, wie einfach es ist, eine Datei in einem PHP-Projekt zu aktualisieren, ohne das Projekt neu erstellen zu müssen. Andererseits hat .net eine nette IDE, die es einem erlaubt, alles zu debuggen, vom Backend (C#, VB.net) bis zum Frontend (Javascript), in einem Paket. Aber noch einmal: Beide haben Vor- und Nachteile.

2voto

gcbenison Punkte 11225

Ich würde nicht so scharf zwischen kompilierten und interpretierten Sprachen unterscheiden - das ist wirklich nur ein Implementierungsdetail und ändert sich mit der Zeit (schneller als sich die Sprachen selbst ändern.) Ein typisches Beispiel - dank Facebook, PHP ist jetzt eine "kompilierte Sprache". auch. Ein weiteres Beispiel: Ich genieße die Webentwicklung mit Schema - und meine bevorzugte Durchführung der Regelung läuft jetzt mit einer VM und ist in diesem Sinne mindestens so kompiliert wie Java.

Ich denke also, dass man sich auf die Ausdruckskraft der Sprache, ihre Leistung und ihre einfache Bereitstellung konzentrieren sollte - kompiliert oder interpretiert ist nur insofern wichtig, als es sich auf diese Dinge bezieht.

0voto

zildjohn01 Punkte 11099

Ich bin ein großer Fan von kompilierten Sprachen, und sei es nur wegen der statischen Typisierung. Andererseits sind Skriptsprachen sehr praktisch - man muss sich nicht mit Binärdateien herumschlagen, sondern nur mit Textdateien, was ein großer Gewinn für Webserver ist.

Letzten Endes ist es egal - verwenden Sie die Sprache, die Sie beherrschen und mit der Sie sich am wohlsten fühlen, wenn es um die jeweilige Aufgabe geht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X