phpbar.de logo

Mailinglisten-Archive

[php] php vs. java

[php] php vs. java

Enrico Weigelt weigelt at metux.de
Sam Jun 26 22:59:57 CEST 2004


* Martin Rabl <martin.rabl at rablnet.de> schrieb:

<snip>
> >Das geht auch nicht - Du kannst es allenfalls nachbauen. Internerne
> >Strukturen kannst Du da nicht übernehmen.
> Gehen tut es schon, man erkennt auch die Verwandtschaft ... allerdings 
> muss ich viele PHP-Tricks weiiiiit umgehen - beispielsweise 
> 3-fach-Hashes ... in Java helfe ich mir da mit einer Hashtable in einer 
> Hashtable in einer Hashtable ... geht teilweise, aber man kann da ganz 
> schön den Überblick verlieren.

Naja, das ist (IMHO) weder besonders übersichtlich noch einigermaßen
performant. AFAIK kann java nicht von Natur aus Hashes (müssen also 
in Java selbst gecoded werden), bei PHP hingegen ist das direkt im
Interpreter integriert (schnelle C-Implementation) und kann somit deutlich
performanter laufen.

Bei einer Java-Implementation wäre es also sinnvoller, die Strukturen
dahingehend umzuklappen, daß Du eine Table von Template-Records hast, 
statt einen Record von Arrays. Das sollte aber sicher auch in PHP etwas 
Performance-Gewinn bringen, wenn man da z.b. ein Template nur einmal 
über den Hash suchen muß und die Referenz immer wieder verwenden kann.
Bei der Gelegenheit bietet es sich evtl. auch gleich an, die einzelnen
Templates auch wiederum in Objekte zu kapseln.

Z.b. könnte patTemplate::addVar($template,$name,$value) 
nun so aussehen:
{
    $tmpl = & $this->templates{$template};
    $tmpl->addVar($name,$value);
}

Wenn man viel auf ein bestimmtes Template zugreifen will, dann holt man
es sich eben nur einmal via patTemlate::getTemplate($template) und 
greift dann direkt drauf.

<snip>
> >Wenn Du magst, können wir daran ja zusammen bauen ... ;-)
> C ist bei mir lange lange her (1996?) ... warum nicht? zumindest kann 
> man sich ja austauschen.
> BTW: ich glaube, eine patTemplate als PHP-Extension wäre eine nette 
> Sache ...
Das war auch das Ziel :)

<snip>
> "Sauber" im Sinne von guter Programmierung: brav Variablen deklarieren, 
> Member deklarieren (in der patTemplate sind die immer ad hoc auf die 
> Objektwelt losgelassen worden ;-) ) usw.
> Mir fällt es ein wenig schwer das genau zu defnieren, aber ich denke, 
> Du siehst die Richtung, die ich meine.
Okay, das stimmt. 
Evtl. läßt sich da aber mit den PHP-eigenen Warnungen noch etwas anfangen.

btw möchte ich ohnehin auch erstmal ein Testbed für patTemplate bauen,
bevor ich da etwas weiterentwickle. Man findet Fehler dann deutlich besser
und kann zumindest erstmal sehen, ob eine neue Version überhaupt 
sauber funktioniert.

<snip>
> >- php hingegen hat das direkt in der engine eingebaut und kann es
> >recht schnell handlen.
> Hashes ist nicht alles, aber saupraktisch - ich gebs ja zu ;-))
ACK. Das fehlt mir etwas an Java - oder gibts das mittlerweile ?
(Nein, ich meine da jetzt keine Hashtable-Klasse, sondern ein Sprachkonstrukt)

<snip>
> Im Ernst: PHP hat im Vergleich zu Java (zumindest seinerzeit, 2000) 
> unheimlich viele hilfreiche Funktionen gehabt, die ich teilweise erst 
> mühevoll nachbauen musste. Fileupload mit dem Browser mit Java? Kaum 
> eine Chance, weil nicht dabei wie in PHP. Man musste es sich selbst in 
> Java nachbauen (ich fand dann eine freie CS-Klasse, die das managte). 
> Mittlerweile wird es ein wenig besser, Apache Commons hält viele 
> "Räder" vor, die nicht mehr neu erfunden werden müssen.
> PHP hat halt viel drin ...
PHP hat IMHO schon etwas zu viel drin. 
Das meiste kann sicherlich beim Compilieren auch rauslassen, aber es 
fehlt noch ein vernünftiges QM-System, mit dem man leicht testen kann,
welche Features da sind und welche eine bestimmte Anwendung braucht.

<snip>
> >>Andererseits kann man mit JSP halt auch schön so Sachen wie EJB etc.
> >>nutzen ... hat auch was für sich.
> >>Und wirklich langsam ist das auch nicht, erscheint mir jedenfalls so.
> >Sowas gibts ja wohl für php auch - SRM - habs aber noch nicht probiert.
> Kann man aber meiner Meinung nach überhaupt nicht miteinander 
> vergleichen.
hmm. Ich kann mich über keines der beiden auslassen, weil noch nicht
probiert, aber eine gutangelegte Vergleichsstudie wäre mal nicht verkehrt :)

<snip>
> >>... na ja: bis auf Struts und JBoss und Eclipse und ... PHP5.
> >Dumme Frage: was sind Struts.
> Ein Framework für Webanwendungen, http://jakarta.apache.org/struts/
Ah. Muß ich mir mal genauer anschauen.

Ich hab mir ein paar Toolkits gebaut, die offenbar ähliches in php 
realisieren, aber lägst noch nicht so durchstrukturiert. Beispielsweise
hab ich da ein Modul für mehrseitige Formulare, mit denen man u.A.
irgentwelche Datenbank-Objekte anlegen oder bearbeiten kann - dabei 
modelliert man die Felder mit deren Typen und Constraints und definiert,
wie sie auf die Templates abgebildet werden. Interessant wäre dann 
auch noch ein Tool, um die Templates leichter zu entwickeln - vielleicht
ja sogar irgentwie grafisch.

Wenn hier Interesse daran besteht, kann ich den Code ja mal posten. 
Ist noch nicht sonderlich viel.


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact at metux.de
  cellphone: +49 174 7066481
---------------------------------------------------------------------
 -- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops --
---------------------------------------------------------------------

php::bar PHP Wiki   -   Listenarchive