# [OT] OO webprogrammierung

## _hephaistos_

halloa,

ich möchte mich im berech webprogrammierung etwas weiterentwickeln. hab jetzt einige zeit mit php(4/5)/perl regex/xml/xsl usw programmiert, aber die objektorientierung in php5 is doch nicht so toll, wie gedacht...

daher möchte ich mich weiterentwickeln. in frage kommen momentan für mich Java (Servlets) oder C# (mod_mono).

hat jemand erfahrung mit beidem und kann mir sagen, warum ich eines nehmen soll und das andere nicht? mit würde C# fast besser gefallen, aber die frage ist, ob mono (mod_mono) schon so weit ist??

eine andere frage: kann man auch mit C++ webprogrammierung machen? google hat mir nicht wirklich was vernünftiges ausgespuckt. wenn ja -> please paste me a link howto  :Smile: 

danke im voraus!

ciao

----------

## Ragin

Warum kommst du mit PHP5 nicht zurecht? Ist insgesamt recht Java ähnlich geworden...

Ansonsten ist Java recht gut (in Verbindung mit JSP).

C++ kannst du natürlich auch nutzen. Dabei musst du die Ausgabe einfach an die Konsole in HTML schreiben und die kompilierten Programme ins CGI-BIN (oder ein anderes ausführbares Verzeichnis) kopieren und kannst sie da ausführen lassen.

----------

## _hephaistos_

 *Ragin wrote:*   

> Warum kommst du mit PHP5 nicht zurecht? Ist insgesamt recht Java ähnlich geworden...

 

java ÄHNLICH is gut  :Smile: 

ich möcht einfach mal was anders als php -> too easy  :Smile:  is ja meiner meinung nach keine wirkliche programmiersprache...

weiters php PARST bei jedem seitenaufruf. das is bei komplexen seiten (zB zusätzlich mit xml und xsl) dann schon aufwändig

 *Quote:*   

> C++ kannst du natürlich auch nutzen. Dabei musst du die Ausgabe einfach an die Konsole in HTML schreiben und die kompilierten Programme ins CGI-BIN (oder ein anderes ausführbares Verzeichnis) kopieren und kannst sie da ausführen lassen.

 

aha! so "einfach" is das? einfach cgi-bin und apache macht den rest? hast du erfahrung damit?

thx

----------

## Earthwings

Ich programmier mit PHP 4 objektorientiert, die Unterstützung ist zwar recht rudimentär, aber für so Web-Schnick-Schnack IMHO ausreichend. Man muss ja nicht mit Kanonen auf Spatzen schießen  :Smile: 

Mit Java Servlets hab ich auch mal gearbeitet. Ist zwar schön, man kann Eclipse benutzen etc., aber PHP ist irgendwie doch geeigneter. Mit den Servlets halst du dir ganz andere Probleme auf.

----------

## _hephaistos_

 *Earthwings wrote:*   

> Ich programmier mit PHP 4 objektorientiert, die Unterstützung ist zwar recht rudimentär, aber für so Web-Schnick-Schnack IMHO ausreichend. Man muss ja nicht mit Kanonen auf Spatzen schießen 
> 
> Mit Java Servlets hab ich auch mal gearbeitet. Ist zwar schön, man kann Eclipse benutzen etc., aber PHP ist irgendwie doch geeigneter. Mit den Servlets halst du dir ganz andere Probleme auf.

 

ja, ich weiß auch, was OO ist und was es heißt mit PHP OO zu programmieren. aber da ich einfach von der webprogrammierung nicht wegkomme  :Smile:  und aber eine andere sprache vertiefen will (java und c/c++ lern ich) muss ich halt die sprache ans web anpassen  :Smile: 

servlets: von welchen problemen zB sprichst du?

thx

----------

## c07

 *hephaistos6 wrote:*   

> kann man auch mit C++ webprogrammierung machen?

 

Unter Gentoo ist das sogar das Angemessene, weil ja eh alles aus den Quellen gebaut wird. Die Kommunikation mit dem Server funktioniert wie sonst auch: Über Environment, stdin und stdout. Wie im CGI-Standard beschrieben. Das funktioniert mit praktisch jeder Programmiersprache.

----------

## Earthwings

 *hephaistos6 wrote:*   

> servlets: von welchen problemen zB sprichst du?

 

Aus Sicht des Programmiers fand ich die ganze Handhabung sehr umständlich (tomcat andauernd neu starten, bei Fehlern im Code aussagelose Fehlermeldungen). Außerdem ist die Anbindung ans System (Auslesen von Server-Variablen, Auswertung von Post/Get) schlecht bzw. bedarf viel Code. Ohne JUnit und andere Werkzeuge wäre es ein ziemlicher Spaghetti-Code geworden, fürchte ich.

----------

## _hephaistos_

@Earthwings: aha - guter Einwand! thx. aber is ja meistens so, dass bei OOP halt etwas MEHR code für kleine dinge von nötigen ist. dafür kann man strukturmäßig (abstraktion, interfaces etc) viel machen...

was zB in PHP NICHT geht -> statische typbindung...

aber die entscheidung macht ihr mir nicht leichter  :Smile: 

----------

## Earthwings

 *hephaistos6 wrote:*   

> @Earthwings: aha - guter Einwand! thx. aber is ja meistens so, dass bei OOP halt etwas MEHR code für kleine dinge von nötigen ist. 

 

Richtig, nur kommt der zusätzliche Code auch daher, dass man in Java viele Standard PHP-Funktionen etwas "ausführlicher" schreiben muss.

 *Quote:*   

> 
> 
> dafür kann man strukturmäßig (abstraktion, interfaces etc) viel machen...
> 
> was zB in PHP NICHT geht -> statische typbindung...
> ...

 

Yepp, PHP erfordert da mehr Disziplin. Auch die implizite Variablendeklaration kann ein übler Fallstrick sein.

 *Quote:*   

> 
> 
> aber die entscheidung macht ihr mir nicht leichter 

 

Probier es halt mal aus, ist auf jeden Fall die Erfahrung wert. Ein paar Dinge kann man auch sehr elegant damit erledigen.

----------

## _hephaistos_

 *Earthwings wrote:*   

>  *hephaistos6 wrote:*   @Earthwings: aha - guter Einwand! thx. aber is ja meistens so, dass bei OOP halt etwas MEHR code für kleine dinge von nötigen ist.  
> 
> Richtig, nur kommt der zusätzliche Code auch daher, dass man in Java viele Standard PHP-Funktionen etwas "ausführlicher" schreiben muss.

 

jo, php is eh nett und simpel  :Smile: 

 *Quote:*   

> Probier es halt mal aus, ist auf jeden Fall die Erfahrung wert. Ein paar Dinge kann man auch sehr elegant damit erledigen.

 

jo, das hab ich schon und werd ich auch weiter machen. wollt halt zusätzlich hören, was ihr so meint.

aber danke einstweilen  :Smile: 

ciao

----------

## Ragin

Also insgesamt ist Java nur gewöhnungsbedürftig.

Der Code wird zwar wirklich größer (ich programmiere beides und muss sagen, dass Java für mich nur wirklichen Sinn bei Sicherheitsrelevanten Seiten (Banken/Versicherung...) macht. PHP ist zwar inzwischen auch auf einem hohen Level angekommen, aber gewisse Dinge sind mit PHP einfach nicht ganz so gut kontrollierbar wie in Java.

Allerdings ist das ganze Tomcat-Zusammenspiel nicht so das wahre. Ein weiteres Problem ist der gute Port 8080. Diesen kann man zwar umstellen, aber dann geht der Apache nicht mehr auf dem Port oder man lässt beide zusammenarbeiten, aber dafür treten schnell Probleme bei der Stabilität auf.

Vorteile und Nachteile sind glaube ich unterm Strich bei beiden Sprachen gleich.

Aber mal eine andere Frage: Warum vermisst du statische Methoden? Was willst du machen, dass du das dringend benötigst?

----------

## moe

Ich hab zwar keine Ahnung davon, will aber auch mal was sagen  :Wink:  : Neben Java, Perl und PHP gibts auch noch Python, und sogar ein mod_python, sowie andere cgi-basierte Python-Einbindungen für den Apache. Ausserdem kann man in Python auch mit 2 Codezeilen einen eigenen Webserver "programmieren". Allerdings dürfte dieses Feature für Produktiv-Systeme wohl eher nicht in Betracht kommen.

Aber wie gesagt, kenn mich weder in fortgeschrittener Webprogrammierung, noch in Python wirklich aus..

----------

## _hephaistos_

 *Ragin wrote:*   

> Warum vermisst du statische Methoden? Was willst du machen, dass du das dringend benötigst?

 

oohhhhhh no!! keine statischen METHODEN. statische Typbindung.

es gibt in PHP eh statische methoden  :Smile:  mehr oder weniger...

typbindung. zB verschiedene datenbanken (mysql, ms sql, db2 usw)

```

MyDatabaseAbstraction dbVar;

dbVar.doQuery();

```

und dann am ende wird halt eine klasse instanziert. das geht mit php mehr oder weniger schon auch. aber so "schön" ist es halt nicht...

wie gesagt: mir gehts einfach drum, dass ich mal was anders kennen lern...

ciao

----------

## Squiddle

als gentoo user solltest du natürlich Python mit Zope Application Server nehmen  :Smile: 

ansonsten Java (aber JSPs, Servletprogrammierung is Müll, braucht man zuviel Disziplin)

C++/cgi mag für kleine Projekt noch gehen, danach hatt man aber soviel Aufwand wenns um multithreaded und Datenbankzugriff geht.

Da kommt dann Java und Python voll zum Zug mit den Open Source Application Servern die halt für Lau sind. (Leider kenn ich keine C++ Application Server  :Sad: )

Nachdem ich mich jetzt mal etwas genauer mit Java beschäftigt habe muss ich aber sagen, nimm lieber Python wenn du sowieso neu anfangen musst, das ist sauberer aufgebaut (Java hat VIEL zu VIELE Sonderfälle (native typen und die absolut hirnrissige Sonderbehandlung der Klasse String (Operatorüberladung für + und = , Call by Value für Strings! (absolut krank))

Dafür ist die Klassenbibliothek einfach nur nett  :Smile: 

Und wenn du dann OOP kannst, dann kannst du auch ohne Probleme zu Java(Unternehmensapplikationsentwicklung) oder Ada(sicherheitskritische Steuerungssoftware (->AKWs)) wechseln um später Kohle zu verdienen  :Smile: 

----------

## _hephaistos_

hi,

weiss net, mir gefällt die syntax von python net... mag lieber die c-syntax  :Smile: 

 *Quote:*   

> ... und die absolut hirnrissige Sonderbehandlung der Klasse String (Operatorüberladung für + und = , Call by Value für Strings! (absolut krank))

 

damit hab ich kein problem

 *Quote:*   

> Und wenn du dann OOP kannst, dann kannst du auch ohne Probleme zu Java

 

also OOP (für fortgeschrittene) kann ich schon (denke ich) und daher möcht ich ja von PHP weg, weil PHP einfach nur (IMHO) "PSEUDO OOP" is!

cirio

----------

## Ragin

Wenn du was anderes kennen lernen willst schau dir einfach mal Java an.

Vorteil: Du kannst damit (ausser du machst reine Servlets/JSP Programmierung) auch normale Programme programmieren, die dann Plattformunabhängig funktionieren.

Allerdings musst du in Java extrem Performanceoptimiert arbeiten. Ich habe schon den Fall gehabt, dass ein Script knapp 2 Minuten gebraucht hat bis es fertig war und optimiert lief es dann mit ca. 20 Sekunden.

Wenn du dir ein entsprechendes Buch dazu kaufen willst kann ich dir

Performant Java programmieren .

von Hendrik Schreiber

ISBN: 3827320038

Gebundene Ausgabe - 328 Seiten - Addison-Wesley

empfehlen.

Wenn du einige der Grundregeln beachtest bekommst du auch recht schnell gute Programme/Scripte hin.

Das Problem an der Webprogrammierung in C ist halt, dass sie recht untypisch ist. Einzigster Vorteil daran wäre, du kannst auch C-Programme für die Konsole schreiben. Aber für eine Webanwendung würde ich eher Sprachen verwenden, die daraus ausgelegt sind, für das Web da zu sein  :Smile: .

----------

## hirnstrudel.de

hab leider nich viel zeit, muss dringend aufs klo ... dumme apfelschorle.

aber was noch gar nicht zur sprache kam ist ruby *in den raum werf*

OO skriptsprache mit unterstützung für fcgi.

----------

## spielc

Yup JSP und Servlets sind sicher etwas gutes wenn mal was andres sehen willst und nebenbei lernst auch noch Java programmieren und das ist sicher nix verkehrtes. Von CGI würd ich DRINGEND abraten (Jeder aufruf der seite=neuer Prozess am Server), wenns UMBEDINGT C++ sein muss (wovon ich schon von haus aus abrate da, C++==  :Twisted Evil:  sprich Satan  :Razz:  ) dann FastCGI... Was vielleicht auch noch eine möglichkeit wäre, ist Asp .Net (ich glaub Mono kann das auch) oder XSP... Asp .Net hab ich (noch) nicht ausprobiert muss aber noch dieses Semester ein Projekt damit machen dann kann ich mehr dazu sagen

----------

## _hephaistos_

@Ragin: danke für die buchempfehlung! sowas hab ich gebraucht

@hirnstrudel.de: ruby --- hmmmm nein danke  :Smile:  mag momentan keine NEUE prog-sprache lernen. so richtung java/c# bzw. c++ wär mir recht 

//EDIT: is auch keine c-syntax. sondern soa art vb/python style  :Smile: 

@spielc: DAS ist natürlich ein grund NICHT cgi zu verwenden. wusste ich nicht.  daher hake ich das auch mal ab.

nachdem eh noch keiner mod_mono richtig getestet hat (ich auch noch nicht ausführlich. nur vor einem halben jahr mal...) werd ich das mal machen.

thx einstweilen.

----------

## Robelix

 *hirnstrudel.de wrote:*   

> hab leider nich viel zeit, muss dringend aufs klo ... dumme apfelschorle.
> 
> aber was noch gar nicht zur sprache kam ist ruby *in den raum werf*
> 
> OO skriptsprache mit unterstützung für fcgi.

 

Wenn's schon im Raum liegt kann man's ja aufgreifen...

Hab' in der letzten Zeit einige Wundergeschichtchen über Ruby+Rails gehört. Und da ich nicht an Wunder glaub' will ich mir das mal genauer anschauen. Hast du vielleicht gute Tutorials, Artikel, Buchempfehlungen oder Ähnliches auf Lager?

robelix

----------

## Gekko

http://home.vr-web.de/juergen.katins/ruby/buch/

Das ist recht nett find ich.

(@robelix: Übrigens, das Design Deiner Seite find ich supergut   :Surprised:  )

----------

## MatzeOne

Ein gutes Buch zur Java-Programmierung ist auch Galileo Computing: Java ist auch eine Insel (kostenlose Onlineversion)

----------

## lorschy

```

emerge cgicc

emerge mysql++

```

damit mach ich alles, is zwar manchma umstaendlich aber es geht.

samplecode ist in den jeweiligen packeten enthalten.

----------

## Ruad

Dann zeig ihm aber doch auch direkt die aktuelle Version.  :Wink: 

----------

## reptile

kann ich auch nur empfehlen, die insel ist ein gutes buch. aber online würd ich das nicht lesen wollen, höchstens mal was nachschlagen.

----------

## Scruffy

Erstmal: Sehr löblich, dass Du Dir eine echte objektorientierte Programmiersprache aneignen möchtest.  :Wink: 

Wenn man sicherheitstechnische Aspekte berücksichtigt und Aspekte wie Wiederverwendung, Kapselung, Vererbung, etc. der Objektorientierung, dann geht an Java kaum ein Weg vorbei.

Ein sehr guter Einstieg bietet die Sun Seite -> www.javasoft.com mit vielen Tutorials. Ebenso kann ich Dir zu TheServerSide.com raten. Hier gibt es auch viele Tutorials und einige Bücher zum kostenlosen Download.

Wirkliche, gute Webanwendungen werden mit J2EE, JSP, XML, Hibernate und Struts geschrieben. Du solltest Dir auch Pattern wie Frontcontroller, Filter, MVC, etc aneignen.

Es gibt viel zu lernen, pack's an.   :Very Happy: 

----------

## Scruffy

Hab gerade noch einen interessanten Link gefunden mit ner Menge Tutorials zu Struts und Hibernate!

http://www.laliluna.de/tutorials.html

----------

## _hephaistos_

 *Scruffy wrote:*   

> Erstmal: Sehr löblich, dass Du Dir eine echte objektorientierte Programmiersprache aneignen möchtest. 

 

na endlich mal einer, der weiß, worums geht  :Smile:  php ist nicht ECHT OOP.

naja, java kann ich eh schon halbwegs, daher werd ich nun die servlets verwenden.

mal schauen, ob ich das mit tomcat und userordner einrichten etc. checke  :Smile: 

thx!

ciao

----------

## Scruffy

 *hephaistos6 wrote:*   

>  *Scruffy wrote:*   Erstmal: Sehr löblich, dass Du Dir eine echte objektorientierte Programmiersprache aneignen möchtest.  
> 
> na endlich mal einer, der weiß, worums geht  php ist nicht ECHT OOP.
> 
> naja, java kann ich eh schon halbwegs, daher werd ich nun die servlets verwenden.
> ...

 

Viel Spass... 

Wie gesagt: Zu Servlets und Tomcat gibt's super Tutorials. Wenn Du Dein erstes Servlet baust, kannst Du Dir direkt mal das Frontcontroller Pattern ansehen. Das kannst Du direkt mit einbauen. Es ist relativ simpel, aber sehr effektiv.

Und schau Dir mal Struts an! (Apache)

http://struts.apache.org/

http://habweb.de/struts/

----------

## _hephaistos_

hi,

das mit den struts schaut super aus!

thx für die links.

ciao

----------

## MatzeOne

 *Ruad wrote:*   

> Dann zeig ihm aber doch auch direkt die aktuelle Version. 

 

Upps    :Embarassed: 

Danke  :Smile: 

----------

## section

HI,

ich finde Java auch recht gut mir gefällt der Aufbau und die Objektorientiert heit.

Man kann mit Java so gut wie alles vermöglichen. Auch wenn viele Leute

immer noch sagen mal soll das gute alte c. verwenden ich halte allerdings mehr von Java.

Mfg,

sec

----------

## _hephaistos_

halloa,

so, erste testphase läuft. tomcat hab ich nun halbwegs zum laufen gebracht  :Smile:  mit dem eclipse plugin funktioniert das auch recht einfach.

ABER: ich muss, um änderungen wirksam zu machen den kompletten tomcat neu starten... hab im web nichts gefunden... hat jmd. eine idee oder ist das normal so?

thx

----------

## Ragin

Wie hast du das Eclipse-Plugin für den Tomcat unter Linux zum laufen gebracht?

Wenn ich das unter Gentoo versuchen will muss ich zig Rechte abändern und 5x beten gehen...

Edit: bitte bitte lass die Finger von Torque. Klingt zwar alles superschön, wenn es heisst DB unabhängig mit Datenbanken zu arbeiten und das ganze noch objektorientiert, aber die Performance ist derart mieß, da du viele Funktionen von SQL nicht nutzen kannst (es wird halt alles recht generisch gehalten) und du musst so viel mehr programmieren um z.Bsp. JOINS ordentlich hinzubekommen (insbesondere, wenn du Felder aus mehreren Tabellen benötigst), dass es nur noch ein Hohn ist damit zu arbeiten.

Ich muss es leider öfter nutzen, habe aber schon Programme mit einer Laufzeit von 2 Minuten mit Torque auf 20 Sekunden ohne Torque kürzen können.

Das mal nur als Beispiel. Diese DB war zwar auch ein Extremfall, aber es kann immer mal passieren, dass es ohne solche Frameworks für SQL schneller geht (aus meiner Erfahrung her ist das auch zu 99% der Fall, auch wenns meist nur ms sind).

Es gibt einfach Dinge auf dieser Erde, die manuell schneller sind als schicke Hilfsmittel  :Smile: .

----------

## hirnstrudel.de

 *Robelix wrote:*   

> Wenn's schon im Raum liegt kann man's ja aufgreifen...
> 
> Hab' in der letzten Zeit einige Wundergeschichtchen über Ruby+Rails gehört. Und da ich nicht an Wunder glaub' will ich mir das mal genauer anschauen. Hast du vielleicht gute Tutorials, Artikel, Buchempfehlungen oder Ähnliches auf Lager?

 

nur den artikel im vorletzten linux magazin  :Wink: 

----------

## _hephaistos_

 *Ragin wrote:*   

> Wie hast du das Eclipse-Plugin für den Tomcat unter Linux zum laufen gebracht?
> 
> Wenn ich das unter Gentoo versuchen will muss ich zig Rechte abändern und 5x beten gehen...

 

na, hab nur /opt/tomcat5 lesbar für den user gemacht.

in der allgemeinen web.xml hab ich das "invoke" servlet eingetragen.

eclipse lass ich in /opt/tomcat5 gar nichts schreiben.

er hilft mir hauptsächlich, die benötigten jars zu laden, die ich für die servletprogrammierung brauche -> und das reicht mir eigentlich schon. tomcat neu starten etc is natürlich auch nicht drin.

 *Quote:*   

>  bitte bitte lass die Finger von Torque.

 

hmm hab nie gesagt, dass ich das nehme. ich werde mir (wie in php) eine eigene datenbankklasse schreiben (und ein db interface). damit bin ich eigentlich LEICHT ausgekommen...

niemand eine idee zu meinem restart problem?

thx,

ciao

----------

## Ragin

Genau das gleiche Problem hatte ich auch.

Ich konnte den Tomcat einfach nicht (neu) starten oder stoppen.

Da durch dieses Plugin Tomcat-Meldungen in der Eclipse Konsole ausgegeben werden usw. ist dieses Plugin recht sinnvoll bei der Programmierung.

Das mit Torque war nur nen Hinweis, falls du mal auf die unendlich dumme Idee kommen solltest.  :Smile: 

----------

## _hephaistos_

 *Ragin wrote:*   

> Genau das gleiche Problem hatte ich auch.
> 
> Ich konnte den Tomcat einfach nicht (neu) starten oder stoppen.

 

KANN ich ja eh -> will aber nicht nach jeder änderung einer klasse den gesamten tomcat neu starten -> das ist mein problem...

ciao

----------

## Ragin

Das sollte aber Eclipse autom. regeln.

Wenn nicht drücke einfach <Strg> + b in der Datei, die du geändert hast. Danach sollte diese neu kompiliert und entsprechend neu geladen werden.

----------

## _hephaistos_

 *Ragin wrote:*   

> Das sollte aber Eclipse autom. regeln.
> 
> Wenn nicht drücke einfach <Strg> + b in der Datei, die du geändert hast. Danach sollte diese neu kompiliert und entsprechend neu geladen werden.

 

hmmm compiled wird das file ja neu -> aber tomcat übernimmt die änderungen irgendwie net...

is das bei dir nicht so?

thx

----------

## _hephaistos_

na ok -> habs jetzt auch in der doku gefunden... das ist wohl so  :Sad: 

naja, hat ja auch seinen vorteil, weil der server das teil dann wahrscheinlich nur 1x lädt etc.

jetzt weiß ich auch, was earthwings mit "das neustarten ist lästig" (oder so ähnlich) gemeint hat  :Smile: 

ciao

----------

## Ragin

Ich hab jetzt Eclipse zwar nur unter Windows am laufen (da das Tomcat Plugin nicht sauber funktioniert hat und Lombozz (JSP-Editor-Plugin) nicht für die neue Version läuft (was bei Gentoo ja drin ist), aber ich muss Tomcat eigentlich nur händisch neu starten wenn ich was beim Struts in der XML-Datei ändere (neue actions anlegen...).

Werde das vielleicht die Tage nochmal unter Linux versuchen, da mich das Windows mehr aufregt als es mir nutzt.

----------

## citizen428

 *c07 wrote:*   

>  *hephaistos6 wrote:*   kann man auch mit C++ webprogrammierung machen? 
> 
> Unter Gentoo ist das sogar das Angemessene, weil ja eh alles aus den Quellen gebaut wird.

 

Oh, dann wäre Python & Bash (Portage) und Perl (ufed) doch aber sicherlich auch angemessen, oder?   :Rolling Eyes: 

----------

## Scruffy

 *citizen428 wrote:*   

>  *c07 wrote:*    *hephaistos6 wrote:*   kann man auch mit C++ webprogrammierung machen? 
> 
> Unter Gentoo ist das sogar das Angemessene, weil ja eh alles aus den Quellen gebaut wird. 
> 
> Oh, dann wäre Python & Bash (Portage) und Perl (ufed) doch aber sicherlich auch angemessen, oder?  

 

Weder C++ noch Python ist für grössere Projekte der Web!entwicklung angemessen. Wie schon gesagt, für grössere Projekte führt momentan kein Weg an Java/JSP und Jakarta Struts vorbei. 

Bei der Verwendung von anderen Sprachen bzw. Tools, ist es sehr schwierig Design von Implementierung zu trennen. Python ist nebenbei nicht objektorientiert und C++ hat eine der größten Schwächen in der Zeigerverwaltung, die Fehlerquelle Nr. 1.

----------

## Gekko

 *Scruffy wrote:*   

> Python ist nebenbei nicht objektorientiert

 

Aha. Zurück an den Start.

Dann ist ja alles was ich über Python bis jetzt gelesen habe falsch?

Komisch.

----------

## Teetante

 *Quote:*   

> Python ist nebenbei nicht objektorientiert und C++ hat eine der größten Schwächen in der Zeigerverwaltung, die Fehlerquelle Nr. 1.

 

Wie bitte?

Ich kann ja Menschen verstehen, die Java und das ganze Zeugs sehr mögen (ich gehöre nicht dazu), doch diese Behauptung zeigt nun doch ein deutliches Wissensdefizit im betreffenden Bereich.

Python ist sehr wohl objektorientiert, für meine Begriffe sogar deutlich weitreichender und intuitiver als Java.

Bitte wirf mal einen Blick in die Doku auf www.python.org

Des weiteren gibt es sehr wohl diverse Möglichkeiten ohne Jakarta Schrunz und Java grosse Webapplikationen zu realisieren.

- Python mittels Zope als Application Server erlaubt die Verwendung des MVC Design Patterns fabelhaft

- PHP + Smarty ist auch eine gute Möglichkeit dieses zu realisieren

edit: Tippfehler

----------

## citizen428

 *Scruffy wrote:*   

> Weder C++ noch Python ist für grössere Projekte der Web!entwicklung angemessen. 

 

Aha. Sag das den Entwicklern von Zope, ich fürchte die wissen noch gar nicht dass sie mit einer unangemessenen Programmiersprache arbeiten. 

Ich find es zwar schön dass du Java magst, und es ist für manche Aufgabenstellungen sicherlich auch eine gute Wahl, deswegen sind andere Sprachen aber noch lange nicht unangemessen. Ein Blick über den Tellerrand schadet da manchmal gar nicht...

----------

## Scruffy

Jep... Habt Recht. Hab mir nochmals die Definition von Python angesehen. War der Meinung, dass Python dynamisches Binden nicht unterstützt. Aber Python unterstützt: Vererbung, Polymorphismus und dynamisches Binden, Klassen, Automatische Speicherplatzverwaltung, eine objektbasierte modulare Struktur und Datenabstraktion. Also kann man sie nach Betrand Meyer durchaus als objektorientiert bezeichnen. Mea culpa. 

Meyer setzt ja noch die Mehrfachvererbung hinzu, die ist m.E. aber mehr ein Hindernis, als eine Offenbarung. Wer schon mit Mehrfachvererbung und virtuellen Basisklassen in C++ gearbeitet hat, kann davon ein Lied singen. 

Aber trotzdem bleib ich bei meiner Aussage, dass C++ ne gefährliche Sache ist. Es gibt so viele Fallen in dieser Sprache, in die selbst Entwickler mit einer Menge Erfahrung immer wieder tappen. Hier reicht nur mal ein Blick in Scott Meyers "Effective C++" und "more effective C++"

Aber Python sollte ich mir nochmal genauer ansehen.   :Wink: 

----------

## Ragin

Mit C++ kann man genausoviel falsche machen wie in Java/PHP/Perl/CGI/ASP und wie sie alle heissen.

Wer es gut beherrscht kann damit auch sauber arbeiten.

Der Vorteil von Java ist halt, dass es sehr typenspezifisch ist und auf exakte Deklarationen achtet. Es kann also nicht vorkommen, dass man größeren Müll produziert (ausser in der Logik), da Java vorher eh kracht. Allerdings sollte man arg darauf achten wann ein Wert Null ist und ob das auch abgefragt wird. Java wirft bei etwas Unachtsamkeit auch schnell einen NullpointerException.

@Scruffy:

Warum geht eigentlich kaum ein Weg an Struts in Verbindung von Java vorbei?

Ich nutze es zwar auch teilweise (gerade mit den Taglibs habe ich noch nichts weiter gemacht, da es einige Probleme damit bei einem Projekt gab, wo andere Lösungen besser waren), konnte aber noch keinen derartigen Vorteil entdecken, dass ich es unbedingt nutzen muss.

----------

## Scruffy

@Ragin

Also ich hab's erlebt, dass ohne eine vernünftige Verwendung von Taglibs der Source-Code immer mehr verkommt, wenn er ständig zwischen Designern und Implementierern hin und her bewegt wird.

Mit Taglibs können auch die Designer im Dreamweaver die Seite optimal gestalten, ohne sich um den Steuercode kümmern zu müssen. Mit reinen JSP  oder mit ASP ist das kein Spass. Da wird der (X)HTML Source super unleserlich und sehr schlecht wartbar.

Aber vielleicht hast Du ja noch ein paar andere Erfahrungen gemacht. Hab bisher grössere Projekte mit Struts, JSP, Servlets und ASP umgesetzt. Struts hat mir in Kombination mit JSP bis jetzt noch am besten gefallen. Vor allem, das Framework und die Möglichkeit mit J2EE vernünftige Patterns zu benutzen, wie Frontcontroller oder Filter.

Andere Erfahrungen würden mich natürlich auch brennend interessieren.

BTW: Klar, kann man mit C++ tolle Sachen machen. Ich selbst habe seit 92 Erfahrung mit C++ und habe selber als Softwareentwickler über 4 Jahre Programme mit C++ entwickelt. Das Problem ist nur, dass ich neue MA lieber mit Java arbeiten lasse, als mit C++. In einem Softwareprojekt mussten wir 2 neue Mitarbeiter einarbeiten, die schon Erfahrung mit C++ hatten. Trotzdem sind sie in fast jeden Fettnapf getreten. Der Aufwand war immens. 

Java ist keine Offenbarung, ganz und garnicht. Es gibt immer noch zu viele Sachen, die mir an Java auch nicht gefallen. Aber m.E. gibt es im Moment kaum vernünftige Alternativen. Eiffel vielleicht... (Scherz)   :Wink: 

----------

## Deever

 *Scruffy wrote:*   

> Meyer setzt ja noch die Mehrfachvererbung hinzu, die ist m.E. aber mehr ein Hindernis, als eine Offenbarung. Wer schon mit Mehrfachvererbung und virtuellen Basisklassen in C++ gearbeitet hat, kann davon ein Lied singen.

 "Wenn $Programmierer von $Programmiersprache keine Ahnung hat, ist $Programmiersprache schuld daran." Oder einfacher und technischer ausgedrückt: PEBKAC! Man ziehe sich mal ein paar Beiträge im Heiseforum bei einer Meldung über einen Buffer Overflow rein...lauter "C ist gefährlich !!11"- und "Wer C einsetzt, handelt fahrlässig !!++!1"-Luser!

 *Quote:*   

> Aber Python sollte ich mir nochmal genauer ansehen.  

 Ist ganz geil. Das Fehlen von Scopes finde ich zwar etwas schade, aber man kann den Code auch von anderen Entwicklern sehr gut lesen.

JSP, Servlets und Strutz muß ich mir mal ansehen! Benutzen hier alle Tomcat, oder auch andere "Application Server"?

@hephaistos6: Warum testest du deine Programme nicht außerhalb des Servers? Gerade bei solchen Sachen lohnt es sich IMHO, die Objektorientierung auf die Spitze zu treiben, also für alles eine separate Klasse zu schreiben.

Gruß,

/devLast edited by Deever on Mon Dec 06, 2004 3:17 pm; edited 1 time in total

----------

## Teetante

 *Scruffy wrote:*   

> 
> 
> Java ist keine Offenbarung, ganz und garnicht. Es gibt immer noch zu viele Sachen, die mir an Java auch nicht gefallen. Aber m.E. gibt es im Moment kaum vernünftige Alternativen. Eiffel vielleicht... (Scherz)  

 

Hattest Dir ja vorgenommen, Python mal nen Blick zu gönnen, vielleicht ändert sich so Deine Sichtweise doch nochmal  :Wink: 

----------

## Ragin

Hmmm...

Ich denke mal es kommt immer darauf an, wie man die JSPs aufbaut.

Solang man eine rel. gute Trennung zwischen Funktionalität und Layout hat ist der Code in den JSP eigentlich fast nur HTML und nur bestimmte Inhalte werden dann ausgegeben.

Die Taglibs finde ich auch recht interessant. Bisher wollten wir sie einmal einsetzen, hatten aber Probleme bei der Übergabe von Links an JavaScript o.ä. (weiss nimmer genau woran es gescheitert ist, aber wir mussten den Code wieder zurückschreiben und "normale" JSP/HTML Programmierung verwenden.

Ich kenne auch große Projekte die fast ausschließlich mit Struts Taglibs arbeiten und damit super zurecht kommen. Ist wohl auch eine Frage ob man ein Projekt bei 0 beginnt oder irgendwann mal sagt "Ok, wir könnten auch, da wir eh eine Lösung finden müssen". Dann wirds wahrscheinlich schwerer.

Beim nächsten Projekt werde ich mal schauen, ob ich da mit Taglibs besser komme.

Direkte Probleme konnte ich mit Java (keine Offenbahrung) nicht feststellen. Was mich nur stört ist, dass der Code teilweise enorm groß wird, obwohl er mit anderen Sprachen annehmbar klein und übersichtlich ist, wenn man alles gut strukturiert.

Von den Servern, die keine richtig gute Co-Existenz zu Apache herstellen können (nur über andere Ports, aber nicht über den gleichen) möchte ich hier nicht anfangen. Bisher haben wir immer wieder festgestellt, dass ein Zusammenspiel von Apache und einem Java-Container (Tomcat/Resin) nie so stabil läuft wie beide getrennt.

Das wars aber im Endeffekt mit den Nachteilen. Man sollte halt abwägen, ob man mit Kanonen auf Spatzen schießt (Java für eine kleine News-Seite) oder ob man wirklich auf Sicherheit u.ä. achten muss und auch ein annehmbar großes Projekt dahinter hat, dass sich der Aufwand in Java auch lohnt.

Für die meisten Seiten reicht auch eine gut programmierte PHP Version zu.

----------

## _hephaistos_

 *Deever wrote:*   

> @hephaistos6: Warum testest du deine Programme nicht außerhalb des Servers? Gerade bei solchen Sachen lohnt es sich IMHO, die Objektorientierung auf die Spitze zu treiben, also für alles eine separate Klasse zu schreiben.

 

dh: in java einfach mal "normal" ausführen??

hab mir am woe jboss + eclipse + lomboz (J2EE) angeschaut und bin ehrlich gesagt nicht sehr erfreut. mir scheint das ganze ein wenig "übertrieben".

Vielleicht ist das nur mit den "Beans" so... werd mir jetzt mal reine "servlets" bzw. struts anschauen. aber tomcat immer neu starten, sobald sich ein file geändert hat, find ich gerade in der "lernphase" etwas überaufwändig  :Smile: 

thx für eure comments!

ciao

PS: ja, C++ mehrfachvererbung ist ein heisses eisen! aber, wir brauchen uns hier nicht um eine programmiersprache streiten! jeder nimmt das, womit er am besten zurecht kommt. und wenn einer glaubt er muss eine neue datenbank in javascript (kein schreibfehler) programmieren, dann soll er das doch machen oder?  :Smile: 

----------

## Deever

 *hephaistos6 wrote:*   

> dh: in java einfach mal "normal" ausführen??

 Naja, du entwickelst halt deine Business Logic zuerst ohne Server und bindest die nachher ein.

HTH!

/dev

----------

## Ragin

Wenn das tomcat Plugin richtig funktioniert sollte er auch autom. den Server neu laden wenn etwas geändert wurde.

Ansonsten gibt es bei der Tomcat-Manager-Oberfläche auch eine Option, mit der man den Tomcat neu starten kann.

Ansonsten gibt es irgend einen Befehl, der alles neu läd, aber leider fällt mir das grad ned ein  :Sad: .

Wir haben sowas auf Arbeit mal geschrieben, damit wir uns das einloggen auf dem Server und neu starten (was ja auch zu Ausfällen führt) mehr oder weniger ersparen können.

Wenn du so eine Option direkt in deinen Controller-Konstruktor schreibst könntest du das zum entwickeln ja nutzen. Danach würde ich das aber entfernen (falls du rausfindest, wie das war).

----------

