Neue Sprache zusätzlich zu PHP?

Lesezeit: 10 Minuten

Benutzer-Avatar
Eber Freitas Dias

Ich bin ein PHP-Entwickler. Ich mag PHP! Es ist eine wirklich gute Sprache, wenn Sie wissen, wie man sie benutzt, aber ich weiß, dass sie es erlaubt sehr schlechte Gestaltung manchmal.

Es erinnert mich an JavaScript, das gute und schlechte Teile hat. Ein bestimmtes Projekt, CoffeeScript, versucht, sich nur auf die guten Teile zu konzentrieren, was Sie dazu zwingt, guten Code zu schreiben.

Ich habe darüber nachgedacht, ob etwas Ähnliches mit PHP gemacht werden könnte … Eine neue Syntax, die nur zu gutem PHP-Code kompiliert werden würde, um all die neuen und aufregenden Dinge zu nutzen, die wir mit PHP 5.3 bekommen können.

Also, um einigen Leuten voraus zu sein, frage ich: Warum eine neue Sprache auf PHP aufbauen, wenn Sie einfach Ruby oder Python oder etwas anderes verwenden können?

  • PHP ist überall einfach einzusetzen
  • Die Sprache selbst hat viele gute Eigenschaften und Ideen
  • Es gibt viele gute Bibliotheken, die in PHP geschrieben sind

Also, meine eigentlichen Fragen hier sind…

  • Ist das eine dumme Idee? Warum sollte es sein? Glaubst du, CoffeeScript ist dumm?
  • Wie fängt jemand an, eine neue Sprache über einer anderen zu erschaffen? Ich weiß nichts darüber, aber ich würde gerne lernen. Wo soll man anfangen?

  • Interessant. Von so etwas (oder besser gesagt einem “sauberen” PHP-Fork) träume ich schon lange. Dies würde eine große Community-Traktion erfordern, um etwas zu erreichen, aber es wäre ein würdiges Projekt …

    – Pekka

    15. Januar 2011 um 15:14 Uhr

  • Nicht konkurrierend, aber verwandt: Das Suhosin-Pflaster hardened-php.net

    – Pekka

    15. Januar 2011 um 15:15 Uhr

  • Wenn Sie mich fragen, sollten Sie dies unbedingt tun (ich halte CoffeeScript auch für sehr ordentlich) und die Möglichkeit nutzen, eine Sprache zu erstellen, die überhaupt entworfen ist (um nicht zu sagen richtig) – aber andererseits verwende ich Python 😉 Siehe zahlreiche Fragen auf SO, um Informationen zum Erstellen einer Sprache zu erhalten, und seien Sie gewarnt, dass dies eine große Aufgabe sein kann.

    Benutzer395760

    15. Januar 2011 um 15:39 Uhr


  • Vielleicht möchten Sie einen Blick darauf werfen phpreboot das ist ein PHP-Javascript-Cross für die JVM. Und auch pihipi Dies ist ein Metacompiler, der lauffähiges PHP aus einer PHP+Python-ähnlichen Hybridsprache generiert.

    – mario

    15. Januar 2011 um 16:11 Uhr


  • Lebt Eber in einem Paralleluniversum, in dem PHP nicht eine der schlechtesten Sprachen ist, die jemals geschaffen wurden, oder vermisse ich hier den Sarkasmus?

    – Soz

    19. Januar 2011 um 18:19 Uhr

Die Idee ist definitiv nicht dumm, besonders wenn sie gut ausgeführt wird.

Ich mag Coffeescript sehr, aber es hat auch Nachteile. Das Debuggen eines Coffeescript-Skripts erfordert immer noch das Lesen des generierten Javascript-Codes, was mühsam sein kann, da Sie ihn nicht selbst geschrieben haben.

Ich habe gehört, dass Jeremy Ashkenas, der Schöpfer von coffeescript, nach dem Lesen begonnen hat, an coffeescript zu arbeiten „Erstellen Sie Ihre eigene freaking awesome Programmiersprache“ von Marc-André Cournoyer.

Viel Glück!

  • Danke für die Buchempfehlung 🙂

    – Eber Freitas Dias

    15. Januar 2011 um 15:34 Uhr

  • Aber um fair zu sein, die JS-Ausgabe von Coffeescript ist sehr gut lesbar und meistens ziemlich nah an der Eingabe.

    Benutzer395760

    15. Januar 2011 um 15:41 Uhr

Benutzer-Avatar
Andreas Skirow

Der Grund, warum CoffeScript eine gute Idee ist, liegt darin, dass Entwickler Code in einem Client-Browser ausführen möchten haben Javascript verwenden; Die einzige Möglichkeit, in einer anderen Sprache zu programmieren, besteht darin, diese Sprache in Javascript umwandelbar zu machen.

Ich bin mir nicht sicher, ob dasselbe wirklich für die serverseitige Programmierung gilt. Wenn Sie Probleme mit PHP haben und eine neue Sprache verwenden möchten, gibt es keinen wirklichen Vorteil, wenn diese Sprache PHP generiert.

Andererseits wäre eine Sprache, die PHP sehr ähnlich ist, aber einige der Fehler behoben hat, eine großartige Idee.

  • Ja, es gibt einen Vorteil beim Kompilieren nach PHP (das hat OP auch gesagt!): So wie JS auf der Clientseite allgegenwärtig ist, ist PHP auf der Serverseite allgegenwärtig -> einfach zu hosten.

    Benutzer395760

    15. Januar 2011 um 15:35 Uhr


Benutzer-Avatar
DigitalRoss

Hach, tolle Idee. Meine Meinung, teilweise widersprüchlich…

Es gibt Präzedenzfälle dafür, schlechte Sprachen zu zivilisieren, indem man ihnen Syntax-Präprozessoren voranstellt.

  • In den frühen Tagen von Unix war Fortran beliebt und ungefähr die einzige portable Sprache, da die meisten Maschinen keinen C-Compiler hatten. Aber das Vanilla Fortran des Tages hatte nicht einmal eine Blockstruktur wenn-dann-sonstnur eine alberne Einzelaussage wenn oder ein if-goto. Also, die Ratte für wurde als Präprozessor für Fortran-66 implementiert.
  • Ich glaube, es gab (gibt?) Cobol-Präprozessoren, die sich vermutlich mit der Ausführlichkeit und den Einschränkungen früher Cobol-Dialekte befassten.
  • Bis heute werden von Unix abgeleitete Systeme mit einem Makroprozessor namens m4 ausgeliefert.
  • Heute sind vor allem mehrere CSS-Präprozessoren verfügbar Sass und WENIGER.

Aber…

  • Lass es einfach sterben, und je früher desto besser
  • Das Problem liegt nicht wirklich in der Syntax.
  • Ich sehe nicht viel von einer JavaScript-PHP-Parallele. JavaScript ist eine großartige Sprache. Es ist so etwas wie das Gegenteil von PHP.
  • Ich bin mir nicht sicher, warum Sie sagen, dass PHP eine großartige Sprache ist. Es ist eines der schlimmsten. Jedes anständige Feature ist ein Patch oder Repatch in einer aktuellen Version.
  • Wie Sie bemerkt haben, gibt es bereits eine korrigierte Version von PHP: Sie heißt Rubin und als Sprache ist es nahezu perfekt. Es gibt eine andere reparierte Version namens Python. Die Welt wäre langfristig besser dran, wenn wir die besseren Systeme unterstützen würden.

  • Die Sache mit Ruby ist, dass es schwierig sein kann, damit loszulegen, besonders wenn Sie mit (den recht verbreiteten) Rails arbeiten. Sobald Sie laufen, ist es großartig … aber es erfordert Anstrengung, dorthin zu gelangen. PHP hingegen ist so ziemlich immer einsatzbereit – stecken Sie eine index.php in Ihr Doc-Root, und es läuft fast immer ohne Zwischenfälle. (Wahrscheinlich, weil jeder PHP verwendet, was erfordert, dass jeder in der Lage ist, es einzurichten.) Dass ist, was ich an PHP mag. Die Sprache selbst ist scheußlich, aber wenn du jetzt etwas sehen willst, JFW > perfekt. Ich bin nicht vertraut genug mit Python, um das zu kommentieren.

    – chao

    16. Januar 2011 um 23:24 Uhr

  • Ich sehe dort nicht viel darüber, wie man unter einem vorhandenen Apache-Server läuft (bei weitem das häufigste Setup auf Linux-Boxen, auf das ich gestoßen bin). Das ist das Problem. Ich kann Apache nicht einfach ersetzen, da es ein Dutzend anderer Sites (PHP und andere Nicht-Ruby-Sites) bedienen könnte – aber mit :3000 (für Mongrel? oder ist das WEBrick?) oder :4567 (für Sinatra) oder Was auch immer in den URLs ist, fühlt sich für mich einfach falsch an. Warum sagen sie den Leuten nicht, wie sie Apache einrichten, um das Zeug an den Ruby-Server weiterzuleiten? Das sollte ein Standardteil der Dokumentation IMO sein.

    – chao

    17. Januar 2011 um 0:01 Uhr


  • WEBrick ist hauptsächlich für das persönliche Debugging gedacht, obwohl ich vermute, dass eine kleine Site es ausführen könnte. Das normale Setup ist Apache (oder nginx) + Passenger oder vielleicht Mongrel. Jeder Administrator oder Web-Ingenieur sollte in der Lage sein, dies einzurichten. Wenn Sie es nur für die Entwicklung ausführen möchten, führen sowohl Rails als auch Sinatra automatisch einen Server für Sie aus. Sprechen Sie über die Einrichtung eines echten Online-Servers oder nur über die Einrichtung zum Debuggen?

    – DigitalRoss

    17. Januar 2011 um 0:37 Uhr

  • Ich spreche davon, einen echten Server einzurichten. Ich habe es geschafft, mit Rails eine dürftige kleine Entwicklerseite einzurichten; Es ist ganz einfach, denn wie Sie bereits erwähnt haben, startet Rails einen Webserver für Sie. Aber Apache so einzurichten, dass er mit Mongrel oder was auch immer spricht … es ist wahrscheinlich nicht so schwer, aber es ist auch nicht sehr gut dokumentiert.

    – chao

    20. Januar 2011 um 0:58 Uhr

  • Die Ähnlichkeit ist nicht sehr stark, aber es gibt eine Million billiger Webhoster, auf denen Sie nur PHP-Skripte ausführen können. Und fast alle Sonstiges Webhoster können Auch PHP ausführen.

    – Prof. Falken

    30. September 2013 um 12:40 Uhr

Es ist jetzt hier. EIN neue Sprache was für PHP das ist, was CoffeeScript für Javascript ist. (d. h. großartig.)

SCHNEESCHRIFT

Snowscript-Code sieht so aus:


fn how_big_is_it(number)
    if number < 100
        <- "small"
    else
        <- "big"

Die PHP-Ausgabe sieht so aus:


function how_big_is_it($number) {
    if ($number < 100) {
        return "small";
    } else {
        return "big";
    }
}

Alles, was es jetzt braucht, ist Sie.

Wenn es für PHP wäre, was so etwas wie Sass für CSS ist, würde mich das interessieren. Aber was genau würden Sie hinzufügen wollen? Oder wollen Sie nur das Schlechte ausmerzen?

Und was würdet ihr schlecht finden?

  • Der Link, den ich zu der obigen Frage gepostet habe, enthält einige der schlechten Designentscheidungen, die mit PHP getroffen werden können. Das Hauptziel wäre es, die schlechten Dinge auszusortieren, aber auch eine bessere Syntax für einige Dinge zu implementieren, wie zum Beispiel … Ermöglichen Sie den Zugriff auf grundlegende Daten als Objekt und führen Sie Dinge aus wie: $string = ‘Foo|Bar’; $array = $string.split(‘|’);

    – Eber Freitas Dias

    15. Januar 2011 um 15:29 Uhr


  • Oh ja, ich stimme vielen Dingen in dieser Liste zu … stimme damit überein, sie loszuwerden, das heißt. Das wäre in der Tat eine edle Aufgabe … Ich werde dies mit großem Interesse verfolgen.

    – Siebenseekatze

    15. Januar 2011 um 15:37 Uhr

Benutzer-Avatar
Felix Geisendörfer

Das Schreiben eines PHP-Syntaxtransformators wäre wahrscheinlich ein nettes Projekt.

Vergessen Sie jedoch nicht, dass die Standardbibliothek von PHP ein riesiges Durcheinander ist. Das aufzuräumen, wäre eine viel größere Aufgabe.

  • Der Link, den ich zu der obigen Frage gepostet habe, enthält einige der schlechten Designentscheidungen, die mit PHP getroffen werden können. Das Hauptziel wäre es, die schlechten Dinge auszusortieren, aber auch eine bessere Syntax für einige Dinge zu implementieren, wie zum Beispiel … Ermöglichen Sie den Zugriff auf grundlegende Daten als Objekt und führen Sie Dinge aus wie: $string = ‘Foo|Bar’; $array = $string.split(‘|’);

    – Eber Freitas Dias

    15. Januar 2011 um 15:29 Uhr


  • Oh ja, ich stimme vielen Dingen in dieser Liste zu … stimme damit überein, sie loszuwerden, das heißt. Das wäre in der Tat eine edle Aufgabe … Ich werde dies mit großem Interesse verfolgen.

    – Siebenseekatze

    15. Januar 2011 um 15:37 Uhr

Benutzer-Avatar
NikiC

Je mehr ich darüber nachdenke, desto unrealistischer klingt es. Der Grund ist einfach: Gibt es tatsächlich sind solche Sprachprozessoren bereits. Zwei davon (obwohl PHP nicht als Implementierung, sondern nur als Kompilierungsziel verwendet wird) können gefunden werden hier. Aber einfach niemand benutzt sie.

Ja, wenn der Compiler selbst in PHP geschrieben wäre, würden wahrscheinlich mehr Leute ihn verwenden. Aber ich sehe wirklich keinen Weg, wie ich das populär genug machen könnte, um die Arbeit wert zu sein.

Ein weiteres großes Problem ist, dass die Leute meistens an ihre großartige Code-Hervorhebungs-, Code-Vervollständigungs- und Code-Inspektions-IDE gewöhnt sind. Ohne IDE-Unterstützung zu erhalten, wird sie wahrscheinlich nur jeder verwenden (und IDE-Unterstützung kann nur erhalten werden, wenn viele Leute sie verwenden …)

Gedanken?

  • Zufällige Gedanken: Bestehende Sprachen, die auf PHP abzielen, erfordern einen Kompilierungsschritt, der den normalen PHP-Entwicklungszyklus unterbricht. JS ist als Zielsprache vielleicht attraktiver, weil Quellkarten werden breit unterstützt. PHP (aus verschiedenen Gründen) ist eine schreckliche Sprache zum Schreiben von Compilern – es ist im Allgemeinen einfacher/einfacher in JS. Vervollständigung/Inspektionen sind keine PHP-spezifischen Probleme – jede neue Sprache ist damit konfrontiert; Die IDE-Unterstützung für PHP selbst ist nicht großartig. Und Kotlin verwendet einen inspirierenden Ansatz, der in der Lage ist, in beide Richtungen zu transpilieren.

    – mindplay.dk

    7. Juli 2016 um 14:49 Uhr

1317640cookie-checkNeue Sprache zusätzlich zu PHP?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy