Es gibt anscheinend zwei Möglichkeiten, ein Webserver-Backend einzurichten. Sie können einen LAMP-Stapel mit dem serverseitigen Code in PHP oder Python (oder Ruby oder JavaScript, die nicht mit einem P beginnen) verwenden. Diese Skriptsprachen werden in der Regel dynamisch eingegeben, mit allen Nachteilen in Leistung, Korrektheit und Wartungsfreundlichkeit, die dynamisch typisierte Sprachen mit sich bringen, aber es ist einfach, den Server zu aktualisieren, da die gesamte Seitengenerierungslogik in externen Skripten gespeichert ist.
Der andere häufig verwendete Hauptarchitekturstil ist ASP.NET, bei dem die Seitengenerierungslogik in kompiliertem Code geschrieben ist. Hierbei werden in der Regel statisch typisierte Sprachen verwendet, sodass Sie Code erhalten, der den Vorteil eines Compilers bietet. Die gesamte Seitengenerierungslogik wird jedoch auf dem Server kompiliert. Wenn Sie also etwas ändern müssen, müssen Sie den Server herunterfahren und Ersetzen Sie es durch einen neuen Build.
Das wundert mich also. Gibt es serverseitige Skriptsprachen, die statische Typisierung verwenden, um das Beste aus beiden Welten zu erreichen?
quelle
Antworten:
UPDATE: Aktuellere Lösungen umfassen AtScript
Sie sollten Google Dart ausprobieren .
Die Eingabe ist optional. Dies bedeutet, dass Sie Typanmerkungen hinzufügen können, die zur Laufzeit im "überprüften" aka Entwicklermodus aktiviert werden. Sie sind jedoch nicht erforderlich, und die Sprache bietet viele Vorteile anderer dynamischer Sprachen wie Python. Der Editor führt jedoch eine Inferenz durch, um Ihnen zu helfen, Fehler im Voraus zu finden. Die Dart-VM ist schnell und kann Schnappschüsse erstellen, was die Startzeit um das 10-fache beschleunigt. Es kompiliert auch bis zu Javascript und es ist schnell .
Der Hauptnachteil dabei ist, dass es sich um eine etwas neue Technologie handelt, daher gibt es nicht so viele Bibliotheken dafür, und ehrlich gesagt ist die Interoperabilität mit Javascript nicht so einfach, wie es sein sollte. Außerdem befindet sich die Sprache noch in der Entwicklung, sodass von Zeit zu Zeit grundlegende Änderungen vorgenommen werden.
quelle
Ihre Frage basiert auf mehreren falschen Annahmen.
Python und Ruby werden vor der Ausführung zu Bytecode kompiliert. Der Vorgang erfolgt automatisch, aber Änderungen an der Anwendung erfordern einen vollständigen Neustart. Node.JS verhält sich genauso, wird jedoch zu Maschinencode kompiliert.
ASP.NET-Code kann vorkompiliert und auf den Server kopiert oder bei Bedarf dynamisch aus dem Quellcode auf dem Server kompiliert werden. IIS verarbeitet beide Arten von Updates ohne Ausfallzeiten (die ersten Anforderungen nach dem Update sind langsam.) Mit Python und Ruby sind Updates ohne Ausfallzeiten möglich. Bei so vielen Bereitstellungsoptionen ist dies jedoch keine Selbstverständlichkeit.
Auf dieser Basis würde ich meinen, dass Sie mit jeder .NET-Sprache zufrieden sind.
quelle
Es gibt keinen Grund, warum eine kompilierte Sprache stark typisiert oder schwer zu aktualisieren sein muss.
Vielleicht möchten Sie sich einige der erlangten Web-Setups wie Cowboy, Webmachine und Stickstoff ansehen. Mit Dialyzer können Sie eine sehr gute Typprüfung auf Korrektheit durchführen und Module zur Laufzeit im laufenden Betrieb neu laden, da erlang so konzipiert wurde, dass Software-Upgrades ohne Unterbrechung bestehender Benutzer durchgeführt werden können.
Außerdem kann eine Webmaschine (die ich am häufigsten benutzt habe) recht schnell sein. Ich habe gesehen, dass Webmaschinen auf API-Endpunkten von weniger als 10 ms auf einem kleinen Amazon EC2-Knoten durchschnittliche Antworten haben!
Wenn Sie eine statische Eingabe wünschen, probieren Sie das Yesod- Framework für die Haskell-Sprache aus. Haskell ist stark typisiert mit einem sehr reichen Typensystem.
Ich habe es nicht persönlich benutzt, aber die Leute, die es benutzen, lieben es.
quelle
IMHO, die beste statisch typisierte Web - Skriptsprache ist D .
Wie interpretierte Skriptsprachen kann es Skripts im laufenden Betrieb und mit Blitzgeschwindigkeit kompilieren.
Die Sprache selbst fühlt sich wie ein stark typisiertes, leistungsstarkes JavaScript an, das beispielsweise viel leistungsfähiger als Go ist.
Alle parallelen Inhalte sind wie in PHP versteckt und die Vorlagen werden in nativem Code kompiliert.
Schwer zu finden, besser als das ...
quelle