Facebook stellt Programmiersprache Hack vor



  • Zeus schrieb:

    TyRoXx schrieb:

    Shade Of Mine schrieb:

    Aber nicht alles was anders ist, ist immer nur schlecht.

    Fakt: Dollarzeichen vor jedem Variablennamen sind schlecht.

    Beweis?

    $Wie $oft $muss $ungarische $Notation $eigentlich $noch $widerlegt $werden?



  • TyRoXx schrieb:

    Zeus schrieb:

    ...

    Beweis?

    $Wie $oft $muss $ungarische $Notation $eigentlich $noch $widerlegt $werden?

    Hat damals ja nix damit zu tun...



  • Ich finde die Idee gar nicht so schlecht. Halbwegs elegant HTML zu generieren kriegt kaum eine Programmiersprache hin, ganz zu schweigen von C++. Da ist PHP so ziemlich die beste Sprache. Auch wenn es viele nicht einsehen, die Sprache ist sehr elegant und bietet viele Tricks, die man zur HTML-Generierung oft braucht.

    Wenn dann eine Sprache kommt, die grösstenteils kompatibel mit PHP ist, um ein Vielfaches schneller läuft, mehr Features anbietet und Open Source ist -- super!

    @TyRoXx: Ist ja genial, wenn du Facebook in einer Woche von Grund auf neu programmieren könntest und es dann zehnmal so schnell läuft und tausend mal wartbarer ist 👍



  • C++ ist die ungarischste Sprache überhaupt, denn es wird unterschieden ob ein Member statisch ist oder nicht:

    a::f(); // statisch
    a.b(); // nicht statisch
    

    Tod dem C++!



  • Shade Of Mine schrieb:

    asfdlol schrieb:

    was soll das rumge-dollarzeiche bringen? nur um zu indizieren ob ein bezeichner ein parameter ist? richtig mühsam, ich hab in c++ nie das problem, das nicht zu wissen / erkennen.

    Du kannst
    echo "Hallo $user" schreiben.
    Es hat schon seine Vorteile.

    Das wäre ja auch so möglich, ohne dass man das auch außerhalb von Strings so schreiben muss.

    Diese Dollarzeichen-Konvention kommt von Shell-Sprachen, die auf Substitution von Strings basieren. Jeder Text ist erstmal ein String: echo Hallo, und bestimmte Zeichen triggern Substitutionen, beispielsweise einer Variable durch ihren Inhalt. Wenn man von diesem Modell wegwill -- meines Wissens ist es in PHP nicht mehr üblich, Strings ohne "" zu schreiben -- braucht man das Dollarzeichen nicht mehr.



  • prohack schrieb:

    Ich finde die Idee gar nicht so schlecht. Halbwegs elegant HTML zu generieren kriegt kaum eine Programmiersprache hin, ganz zu schweigen von C++. Da ist PHP so ziemlich die beste Sprache. Auch wenn es viele nicht einsehen, die Sprache ist sehr elegant und bietet viele Tricks, die man zur HTML-Generierung oft braucht.

    😃 witzig. Aber kennzeichne die ironischen Teile deines nächsten Beitrages bitte. Du könntest hier noch jemanden auf Ideen bringen.



  • Bashar schrieb:

    Das wäre ja auch so möglich, ohne dass man das auch außerhalb von Strings so schreiben muss.

    Keine Frage. Aber man kann immer alles besser machen.

    Der Fakt bleibt, dass es in gewissen Situationen praktisch ist, dass Variablen keinen Kontext brauchen.
    Denn darum geht es ja. Das $ gibt Kontextlos die Variable an. Das ist nicht immer schlecht.

    Gerade was Textverarbeitung betrifft ist das einfach enorm praktisch. So Sachen wie heredocs gibt es in C++ ja garnicht.

    Weiters hat man ja auch zB
    foo>foo->bar()
    was sehr schoen dynamischen Code erlaubt. Klar geht es besser - ich will hier nicht behaupten $ vor Variablennamen ist die beste Erfindung ever. Aber sie ist nicht nur schlecht. Es hat Vorteile und Nachteile.

    Und @TyRoXx:
    Du hast keine Ahnung wie Facebook funktioniert. Wieso willst du hier mit mir darueber diskutieren?



  • Shade Of Mine schrieb:

    So Sachen wie heredocs gibt es in C++ ja garnicht.

    Bin da nicht so sicher.

    #include <iostream>
    
    int main()
    {
    	std::cout<< R"BEREICH(
    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>My First Heading</h1>
    
    <p>My first paragraph.</p>
    
    </body>
    </html>
    	)BEREICH";
    }
    


  • volkard schrieb:

    Shade Of Mine schrieb:

    So Sachen wie heredocs gibt es in C++ ja garnicht.

    Bin da nicht so sicher.

    Und wie fuege ich hier Variablen ein?
    zB will ich ja
    <p>Hallo {$user->getNickname()}</p>
    haben. Das wird in C++ dann schon etwas tricky.



  • Variableneinfügen ist nicht gefordert, daß sich was heredoc nennen kann, würde ich sagen.



  • @TyRoXx
    Was soll das dumme Gebashe hier?

    Wieso ist es schlecht, wenn man etwas verbessert? Und dass Hack ne Verbesserung gegenüber PHP ist, sollte wohl klar sein.



  • volkard schrieb:

    Variableneinfügen ist nicht gefordert, daß sich was heredoc nennen kann, würde ich sagen.

    Nein, aber ohne irgendeine Form von String-Interpolation sind Heredocs viel weniger praktisch.

    Das $-Beispiel ist nicht so gut, es gibt auch massig Sprachen, die nur zur String-Interpolation irgendwelche Prefixes oä. brauchen ("#{variable} in einem Ruby-String" vs. variable in Ruby). Solche kleinen Syntax-Seltsamkeiten fallen mir aber ehrlich gesagt mittlerweile überhaupt nicht mehr auf, das sollte doch niemand mehr bemerken, der mehr als ein, zwei Programmiersprachen kennt. Syntaktische Warzen hat jede Sprache, die tatsächlich auch verwendet wird, zuhauf.

    Zum Thema: Ich mag PHP auch _wirklich_ nicht, aber Hack ist in meinen Augen durchaus sinnvoll; zumal Facebook das ja schon länger selbst verwendet. Habe den Talk zu Type Checking und Type Inference bei Facebook schon vor einiger Zeit gesehen.

    Natürlich ist Hack nicht darauf ausgelegt, eine wunderschön designte neue Sprache zu sein, sondern darauf in der Praxis PHP-Entwicklern die Arbeit an bestehendem PHP-Code zu erleichtern und den Schritt für Schritt zu Hack zu konvertieren. Alles andere wäre aber auch nicht praxistauglich oder spannend. Für Facebook (und viele andere PHP-Shops) macht sowas durchaus Sinn.



  • 80% der Anwendungsentwicklung wird in PHP erledigt. Es wäre schön wenn FB das alles der Allgemeinheit zu Gute kommen lassen würde.



  • Ist eure Kritik an dieser Sprache ernsthaft ob man jetzt ein $ vor die Variablennamen schreibt?

    Ich weiß ja nicht, aber solche Spitzfindigkeiten sind das Letzte wonach ich eine Sprache auswähle...



  • volkard schrieb:

    Variableneinfügen ist nicht gefordert, daß sich was heredoc nennen kann, würde ich sagen.

    Das stimmt natuerlich, aber wir haben im Kontext von kontextlosen Variablen darueber geredet - und ein Vorteil von kontextlosen Variablen ist eben, dass man sie in solchen Situationen wie heredocs oder sonstige Textverarbeitung einfach sehr praktisch Nutzen kann.

    Das ist auch keine Kritik an C++, sondern so ist es einfach. Das $ vor einem Variablennamen ist in vielen Situationen unnoetige Schreibarbeit, aber in manchem ist es praktisch.

    nman hat natuerlich Recht das es bessere Loesungen gibt wie es zB Ruby macht, das ist in Ruby schoener. Generell ist Ruby ein viel schoenere Sprache als PHP, das duerfte wohl Niemand bezweifeln 😉



  • Da war kein Gesprächskontext, der

    Shade Of Mine schrieb:

    So Sachen wie heredocs gibt es in C++ ja garnicht.

    wahr macht. Über den Sinn von $ mache ich noch keine Aussage.


Anmelden zum Antworten