Mailinglisten-Archive |
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