Christoph: Engagement der ASF bzgl. Java - Verh. Perl u. PHP

Beitrag lesen

Moin.

"Turing-Vollständigkeit bezeichnet [...]

Ist also eine Aussage, was die grundsätzliche Rechenfähigkeit angeht, oder? Nicht aber, was das herstellen eines/r Sockets/verbindung oder das Forken eines Prozesses angeht?

Richtig. Aber die Fähigkeit 'Socket-Erstellung' ist keine Eigenschaft der Programmiersprache, sondern der Laufzeitumgebung. Skriptsprachen sind beispielsweise sehr stark an die Fähigkeiten gebunden, die ihnen die Laufzeitumgebung bereitstellt; möchte man hier Funktionalität hinzufügen, muss diese erweitert werden, was im Fall von PHP wohl eine Neukompilierung des Interpreters erfordert(?).

Die Frage, die du hast, lautet also eigentlich: Wieviel Funktionalität stellt mir die Laufzeitumgebung der Sprache bereit, und wie einfach ist es, neue Funktionalität hinzuzufügen?

Im Fall von PHP ist die Laufzeitumgebung der Interpreter. Möchte man hier zusätzliche Funktionalität, muss dieser neu kompilert werden.

Im Fall von Java ist die JVM die Laufzeitunmgebung, Erweiterungen sind durch JNI möglich.

C unterscheidet sich davon nicht grundsätzlich: Die Laufzeitumgebung ist hier das Betriebssystem zusammen mit den verwendeten Bibliotheken.

Geschwindigkeit: PHP < Java < C

(PHP=Perl=Python) < (Java = ASP) < (C = C++ = ASM) ?

Zumindest, was die Größenordnung betrifft...

Verfügbarkeit von Bibliotheken: JavaScript < PHP < Perl

Trotz Pear und den bereits zu Hauf verfügbaren Funktionen?

Dazu musst du jemanden befragen, der sich mit CPAN und PEAR besser auskennt - ich weiß nur vom Hörensagen, dass CPAN einfach SEHR unfangreich sein soll...

Mir ist scheints noch nicht die Motivation für die Erfindung von PHP klar.

Filt dir Wikipedia weiter?

Hinkt der Vergleich sehr, wenn ich sage, PHP ist wie ein kleineres schweizer Taschenmesser, dass eben weniger Funktionen hat, dafür aber leichter inder Hosentasche zu tragen ist. In den Funktionen, die es hat, ists mit dem großen aber ident?

Hardwarenähe: ASM < C < Java

ups - damit das konsistent mit meinen anderen Aussagen ist, müssten die < eigentlich > sein ;)

Abstraktionsgrad: ASM < PHP < Lisp

Abstraktionsgrad will heißen, dass noch mehr Funktionalität in einzelnen Funktionen gebündelt ist? Smalltalk, findet das dort auch seinen Platz?

Damit wollte ich irgendwie Ausdrücken, wie 'high level' eine Sprache ist. Das betrifft dann Dinge wie Typisierung, Bindung von Bezeichnern, verzögerte Evaluierung, Erweiterbarkeit der Sprache.

Lisp ist konzeptionell eine sehr elegante Sprache, die Dank Lisp-Makros den Syntax-Baum (AST) des Programms modifizieren kann und es damit erlaubt, die Sprache in dieser selbst zu erweitern.
Smalltalk ist zwar eine rein objektorientierte Sprache, bietet aber ähnliche Möglichkeiten.

Christoph