phpbar.de logo

Mailinglisten-Archive

[php] Re: java vs. php

[php] Re: java vs. php

Daniel Lorch daniel at lorch.cc
Mon Nov 10 11:14:52 CET 2003


hi,

> Was hat die Sprache Java wirklich neues gebracht. Da ist etwas 
> cross-platform, aber sonst: wer hat's erfunde?

Meine Erfahrungen als Programmierer sind noch zu gering, um hierzu
eine Expertenmeinung abzugeben. Ich kann nur wiedergeben, was ich
beobachtet habe und freue mich natuerlich, wenn das in Frage ge-
stellt wird.

Die "Write Once, Run Anywhere"-Philosophie, die Du ansprichst, ist
schon lange nicht mehr primaerer Grund um auf die Java-Plattform
zu setzen. Was mich als Programmierer interessiert ist die Lang-
lebigkeit meines Codes: Wenn ich etwas schreibe, dann will ich,
dass
   1) der Code selbst in ein paar Jahren noch Gueltigkeit hat
      und nicht umgeschrieben werden muss, bloss weil sich die
      API wieder geaendert hat.
   2) mein dabei erworbenes Wissen erhalten bleibt. Die Zeit
      und Kraft, die ich aufwende um mein Wissens-Portfolio
      aufzubauen soll erhalten bleiben: Ich muss meinen Markt-
      wert aufbauen koennen, ich moechte mich vom Fleck be-
      wegen und Neues lernen und nicht Zeit damit verschwenden
      Altes zu revidieren, nur weil sich mal wieder die API ge-
      aendert hat.

Abstraktionen sind nichts Neues, aber in der Java-Plattform wird
sehr viel Wert darauf gelegt diese zu definieren und einzuhalten.
Beispiele:
   * JDBC: Abstraktion fuer RDBMS
   * JNDI (Java Naming and Directory Interface): Abstraktion fuer
     Directory-Services wie LDAP
   * JAXP (Java API for XML Parsing): DOM und SAX-API fuer XML-
     Parser
   * JVM (Java Virtual Machine): Abstraktion der Hardware-Plattform.
     int's sind ueberall gleich gross etc.
   * Java Servlets: Definiert die API zwischen Server und Komponente
     (analog zu CGI).
   * ..

Die Wohldefiniertheit dieser Abstraktionen ist nicht spezifisch zu
Java, aber dort wird sie (mehr oder minder) konsequent eingehalten.
Die Langlebigkeit des Wissens hat auch positive Einfluss auf die
Wirtschaft: Schreibe ich ein Buch ueber JDBC, kann das ueber mehrere
Jahre hinweg verkauft werden. Das ist nicht nur fuer den Verleger,
sondern auch fuer den Autoren attraktiv. Schulungen koennen angebo-
ten werden, ohne dass man befuerchten muss, dass in 2 Monaten die
API anders ist.

PEAR ist auf dem richtigen Weg, bloss braucht es seine Zeit, bis
sich diese APIs durchgesetzt haben. Schreib doch mal ein Buch ue-
ber Abstraktionen fuer RDBMSe unter PHP. Womit wuerdest Du anfangen?
"Es gibt viele Moeglichkeiten, u.a. .." und "in der Version 1.23 war
es so, aber in der Version 2.34 ist es total anders. Bis dieses Buch
gedruckt wird, koennte es sich nochmals geandert haben".

Abstraktionen sind wichtig. Siehe STL fuer C++. Nur PHP hat das
Problem ,dass es interpretiert wird, so dass der Zusaetzliche Co-
de die Laufzeit der Applikation verlangsamen koennen. "PEAR_DB
ist bloated" - und schon gibt's Leute, die dann mit "low-level
mysql_connect()" arbeiten und den ganzen Vorteil zunichte machen.
Wohl deshalb (als Randbemerkung) ist es wichtig eine gute und
freie Virtual Machine zu haben, die performant Bytecode ausfuehren
kann [1].

[1] http://www.edwardbear.org/pap.pdf

Ein Problem, das ich noch sehe, aber bei dem ich nicht ganz sicher
bin: PHP's fehlende Typensicherheit muesste Polymorphie verunmoegli-
chen, oder irre ich mich?

-daniel



php::bar PHP Wiki   -   Listenarchive