Welche Sprache für kleine Tools am Server

@virtus der Benchmark ist von zend - ich würde denken die wissen was sie tun - dennoch ist die Frage natürlich nicht falsch > habe denen mal eine E-Mail geschrieben.
Keine? der Sprachen gibt es aber bei denen out of the box der Code prekompiliert ausgeführt werden kann? php, phyton, pearl werden doch alle interpretiert?
 
Uff, soviel hab ich mich damit noch nicht beschäftigt. Nutze halt hauptsächlich emacs. Aber wieso keine Key-Auth?
 
@virtus der Benchmark ist von zend - ich würde denken die wissen was sie tun - dennoch ist die Frage natürlich nicht falsch > habe denen mal eine E-Mail geschrieben.
Könntest du mich noch mal auf den Thread aufmerksam machen (PN), wenn du eine Antwort hast bzw. mir die Antwort zukommen lassen? Ich vermute fast, dass die ihre Zend-Engine genommen haben, um die Performanz von PHP zu testen.

Keine? der Sprachen gibt es aber bei denen out of the box der Code prekompiliert ausgeführt werden kann? php, phyton, pearl werden doch alle interpretiert?
Das kommt drauf an. Was heißt für dich denn "out of the box"? Out of the box kann das Betriebssystem überhaupt nichts mit *.php-Dateien anfangen.
Wenn du einen Interpreter installierst (apt-get install php5), und eine php-Datei aufrufst (php my.php) dann wird dein php-Quellcode durch den Interpreter gejagt. Wenn du einen Compiler installierst und deine PHP-Anwendung durch den Compiler jagst, dann wird z.B. bei PHC in C, bei HipHop in C++ übersetzt. Die Antwort, dafür was "out of the box" passiert hängt also davon ab, wie du dein Betriebssystem konfigurierst. Ich lehne mich mal weit aus dem Fenster und behaupte, dass die meisten Anwender einen PHP-Interpreter installieren und diesen in ihren Webserver einbinden. Insbesondere schätze ich, dass die meisten Amateure den Interpreter wegen der Einfachheit als FastCGI einbinden, während professionellere Anwender wohl auf PHP als Servermodul zurück greifen. Wobei letzteres ein wenig komplizierter, dafür jedoch performanter ist. Nichts desto trotz gibt es heute auch Anwender, die eben keinen Interpreter mehr verwenden, sondern PHP kompilieren. Facebook und Wikipedia seien da nur also prominente Vertreter genannt. - Ich zitiere meinen Beitrag dazu nochmal.

Die Performanz von PHP hängt stark damit zusammen, wie man PHP-Anwendungen ausführt:
- Einbinden des (originalen) Interpreters mittels FastCGI: Der Quellcode der PHP-Anwendung wird bei jedem Aufruf von einer neuen Interpreterinstanz ausgeführt.
- Einbinden des (originalen) Interpreters als Servermodul: Der Quellcode der PHP-Anwendung wird von einer Interpreterinstanz, ausgeführt.
- Zend-Engine: Der Quellcode der PHP-Anwendung wird in Bytecode übersetzt und dieser dann zur Laufzeit ausgeführt.
- PHC / Hip Hop Virtual Machine: Der Quellcode der PHP-Anwendung wird bei PHC in C, bei der HHVM in C++ übersetzt, das wird dann zur Laufzeit ausgeführt.

Die HHVM wird von Facebook entwickelt und dort konnte die Serverlast durch deren Einsatz um 40% gesenkt werden. Auch Wikipedia macht Gebrauch von der HHVM und in einer Mail wird von einer halbierten Latenz und Dauer zum Speichern von Seiten gesprochen. Die CPU Last sei durch den Einsatz der HHVM von über 50% auf 16% gefallen.
PHP:
Hip Hop:
Wikipedia/ Wikimedia: ;
 
@pn klar mache ich.
ja out of the box meinte ich php him self... wenn ich einen performance-test von php7 machen möchte würde ich ein php-script durch die php-cli jagen.
alle Arten der Einbindungen (fast-cgi, als dienst+ socket usw.) haben Abhängigkeiten zum Webserver usw. was aber zum reinen testen der php-enginge quatsch ist.

hiphop, phc usw. sind für mich erweiterungen / andere implementierungen .... die erst mal mit php native nichts zu tun haben.
 
Perl oder PHP? Pest oder Cholera? Aids oder Krebs?

Was ist das denn Für eine Frage? Perl ist eine Missgeburt von Sprache, die insbesondere bei den Datentypen grandiose Mängel hat. Und über PHP reden wir lieber nicht, alles abseits von Frontend würde ich nicht damit machen. Viel zu undurchsichtig, was da wann mit welchen Daten passiert.

Python ist mit Version 3 ganz nett, Ruby auch. GO werde ich jetzt mal eine Change geben und schauen was passiert, für komplexere Sachen nutze ich aber fast im Ruby, weil es mit Puppet so schön eingängig ist.
 
Tjo das kann nur jemand schreiben der keine Ahnung hat...
Nur weil man einen Entwickler nicht Gängelt und Verpflichtet!! Typensicher zu Programmieren - macht das eine Sprache nicht Schlecht. Wenn ein Entwickler das machen möchte und auf nummer *sicher* gehen möchte - kann er das in php durchaus machen.
 
Das PRoblem ist, ds dich PHP früher oder später zu irgendwelchen dirty hacks animiert. Ich habe noch keine wirklich sauberen Projekte in PHP gesehen, irgendwo ist immer so ein ganz komisches Konstrukt, welches mehr oder minder unwartbar wird..
 
Insbesondere schätze ich, dass die meisten Amateure den Interpreter wegen der Einfachheit als FastCGI einbinden, während professionellere Anwender wohl auf PHP als Servermodul zurück greifen. Wobei letzteres ein wenig komplizierter, dafür jedoch performanter ist.
Zweifel ich mal an. PHP als Servermodul kenne ich nur vom Apache. NGinx leitet den PHP-Code an einen Fast-CGI-Service weiter. Meinst du das? Trotzdem halte ich die Kombination in NGinx für performanter als die vom Apache.

für komplexere Sachen nutze ich aber fast im Ruby, weil es mit Puppet so schön eingängig ist.
Du verwendest "generell" eine Sprache, weil eine spezielle Anwendung darauf aufbaut? Interessant.

Das PRoblem ist, ds dich PHP früher oder später zu irgendwelchen dirty hacks animiert. Ich habe noch keine wirklich sauberen Projekte in PHP gesehen, irgendwo ist immer so ein ganz komisches Konstrukt, welches mehr oder minder unwartbar wird..
Ja, mit PHP kann man dreckig programmieren. Das kann man aber mit so ziemlich jeder Sprache (inkl. Ruby) auch.

Ich hab vor einigen Jahren nebenbei als PHP-Entwickler gejobbt. Mit PHP kann man wunderbar sauber und typisiert programmieren. Der C-/C++-Code in der Firma, in der ich die letzten 6 Jahre gearbeitet hab, sah da wesentlich dreckiger aus.
 
hiphop, phc usw. sind für mich erweiterungen / andere implementierungen .... die erst mal mit php native nichts zu tun haben.
Das stimmt so nicht. Wie gesagt, es ist nur ein anderer Ansatz mit dem Quellcode zu arbeiten. Keine Erweiterung/ "andere Implementierung".
Ob du die Zend Engine verwendest oder PHC oder HipHop ist zwar eine generelle (System)Entscheidung, die du triffst, ändert ja aber nichts an der Sprache als solche.
Facebook hat auch eine Art Ableger zu PHP entwickelt, die bis auf endlich viele Unterschiede kompatibel zu PHP ist. Da kannst du sagen, dass es eine Erweiterung/ andere Implementierung ist.


Und über PHP reden wir lieber nicht, alles abseits von Frontend würde ich nicht damit machen. Viel zu undurchsichtig, was da wann mit welchen Daten passiert.

Das PRoblem ist, ds dich PHP früher oder später zu irgendwelchen dirty hacks animiert. Ich habe noch keine wirklich sauberen Projekte in PHP gesehen, irgendwo ist immer so ein ganz komisches Konstrukt, welches mehr oder minder unwartbar wird..
Dann solltest du erst mal programmieren lernen und dich anschließend an PHP wagen. Deine Kritik ist auf mangelnde Kenntnis der Sprache/ Implementierung zurück zu führen. PHP erlaubt dirty Code, das kannst du aber auch in C, C++ oder C#.. Ich würde fast sagen, dass einzig Java dich genug gängelt, dass du keinen wirklich schmutzigen Code schreiben kannst.



Zweifel ich mal an. PHP als Servermodul kenne ich nur vom Apache. NGinx leitet den PHP-Code an einen Fast-CGI-Service weiter. Meinst du das? Trotzdem halte ich die Kombination in NGinx für performanter als die vom Apache.
Ich bezweifele nicht, dass nginx performanter als apache ist. Im Gegenteil, die Webserver sind mit unterschiedlichen Zielsetzungen entwickelt worden und die Performanzunterschiede ergeben sich aus den unterschiedlichen Zielsetzungen. Trotzdem gilt [außer es hätte sich da in den letzten Jahren etwas geändert, ohne dass ich und/oder Wikipedia es mitbekommen hätten]: Wenn du PHP über FastCGI einbindest, erzeugst du dir für jeden Aufruf eine neue Interpreterinstanz. Das ist ungleich unperformanter, als eine einzige Interpreterinstanz für beliebig viele Aufrufe zu halten.

Ich will es nicht zu komplex machen: Ein Server, der PHP als Modul einbindet wird immer nur eine Interpreterinstanz für PHP unterhalten. Ein Server, der PHP über FastCGI einbindet, der erzeugt für jeden Aufruf eine neue Interpreterinstanz. Bei 1 Mrd Aufrufen ist der Unterschied von PHP als Modul (1 Instanz) zu PHP mit FastCGI (1 Mrd) doch erheblich, oder? Dann müsstest du dir überlegen, welchen Performanzgewinn dir nginx gegenüber apache bringt und ob sich das in der Summe dann lohnt nginx+FastCGI,PHP oder apache+PHP-Modul zu verwenden.

Wobei ich dafür jetzt auch kein Profi bin. Irgendwo hört meine Arbeit dann auch auf und ich überlasse es anderen Optimierungen vorzunehmen.
Falls du Benchmarks erstellen möchtest und nähere Informationen hast, dann bin ich aber trotzdem sehr interessiert.
 
PHP kann mit FastCGI auch als Dienst und eine Socketverbindung eingebunden werden, php forkt dann nur je nach Anfragenhäufigkeit unterschiedlich viele Threads um die Arbeiten zu verteilen.
Ja gut @Virus den Ansatz kann ich nachvollziehen, ich denke das der Test mit dem php7 Binary der php-group gemacht wurde. Was in dem Screenshot nicht zu sehen ist - in dem Test wurde php7 auch gegen hhvm getestet


Zend wiederum ist ja wirklich eine Erweiterung / ein Modul für php selber und ist schon seid version 5 mindestens so oder so standardmäßig mit eingebaut. Ob es nun noch eine extra php implementierung von Zend gibt weiß ich nicht. Das so ein Test erst mal bei wenig Infos Fragen aufwirft stimme ich dir zu.
 
Du verwendest "generell" eine Sprache, weil eine spezielle Anwendung darauf aufbaut? Interessant.
Ich manage meine Server via Puppet und versuche, dann auch möglichst konsistent in der Anwendung zu bleiben ;)

Klar, manche Sachen lassen sich abseits Ruby besser lösen und das mache ich dann auch, aber sofern es möglich ist, ist Ruby einfach meine to-go Sprache :)
Ich hab vor einigen Jahren nebenbei als PHP-Entwickler gejobbt. Mit PHP kann man wunderbar sauber und typisiert programmieren. Der C-/C++-Code in der Firma, in der ich die letzten 6 Jahre gearbeitet hab, sah da wesentlich dreckiger aus.
War nur meine Erfahrung und kein Angriff gegen dich. PHP verleitet schnell dazu, irgendwelches Gefrickel aufzubauen, das KANN mit C++ schon wesentlich schwerer werden - klar, spätestens ab goto und änhlichem ist es offensichtlich, das der Entwickler keine Ahnung oder keinen Bock hatte.

Meiner Erfahrung nach (und die ist reichlich beschränkt) fällt bei PHP gern mal obskurer Code raus, genauso wie bei Perl. Da empfinde ICH Pyhton-Code oder Ruby deutlich angenehmer zu lesen.
 


Schwach, das zeigt nur wie wenig du von anderen Sprachen weisst, selbst beim "Typenstrengen" C# kannst du Typen komplett umschiffen indem du alles als "object" deklarierst.

Wenn du noch keine obskuren Eigenheiten einer Sprache gefunden hast, dann hast du noch nicht lange genug damit gearbeitet. Diese ganze Vielfalt gibts primär weil du bestimmte Dinge nicht vernünftig fixen kannst ohne andere kaputt zu machen, dafür sind Menschen zu unlogisch.

Mit C++ isses schwieriger unwartbaren Mist zu machen?:D
Hörst du dir überhaupt selber zu?
Allein die kleinere Community ist ein riesiges Problem.


Die ekligste Entwicklungsplörre(ich will hier nicht von SPrache oder Entwicklungsumgegung reden) ist meiner Meinung nach Lotus Notes. Das machen alle nur weils gut bezahlt wird. Das ist der Straßenstrich der Softwareentwicklung, man fühlt sich danach immer schmutzig, aber der Geldbeutel ist voller.
 
Ansichtssache, ich kann da jetzt keine wirkliche Objektivität erkennen, dafür "modisches" PHP bashing. Es gibt garantiert ne menge Tuts auf Wannabee Hacker Seiten die dir gleich super "beibringen" als als object zu deklarieren. Von daher hätte ich ganz gerne eine Definition von
"jeder rät dir, das nicht zu machen" und "die Sprache springt dir damit fast ins Gesicht"

Bei Ruby vs Python würde ich allein aus Community Gründen Python nehmen. Wo ist Ruby wirklich relevant im Moment?

Zu SAP:
Nein habe ich nicht, aber da es afaik das Einsatz Gebiet teilt glaube ich dir auch so.

Allerdings hab ich doch ein par kritische Fragen: Wie viele Abstürze der Entwicklungsumgebung sind da pro Tag normal und kann man "Kommentare" in der Realität benutzen?
 
Zurück
Oben