Diplomarbeit: CMS (Java oder PHP?)

vogtländer hat gesagt.:
Die Frage nach OOP stellt sich im Vergleich von PHP und Java auch nicht, denn in beiden Sprachen kann man objektorientiert programmieren und für ein CMS als Diplomarbeit muss man objektorientiert entwerfen, sonst wird's wohl wieder nix mit Diplom.

Nunja, nur Java beherrscht echtes OOP, was PHP von sich nicht behaupten kann, nichtmal in Version 5.
 
Ich finde es doch etwas befremdlich, dass Tips gegeben werden der Art "nimm PHP, ist besser. Mit Java kenne ich mich nicht so aus".
Wenn es eine Diplomarbeit werden soll, ist die Sprache sogar zweitrangig. Wichtiger sind hier fast noch die Konzeption von Schnittstellen, UML und die Art der Datenspeicherung darunter. Selbst bei SQL-Datenbanken gibt es je nach Anforderung geeignetere und weniger geeignete Systeme.
Bezügl. PHP und Java: das PHP5-Objektmodell orientiert sich ganz arg an dem von Java: Interfaces, abstrakte Klassen usw. (was deren Syntax und Arbeitsweise angeht versteht sich). Das Java serverseitig langsamer läuft als PHP ist auch eine Mär: das trifft nur auf den ersten Aufruf einer JSP-Seite zu, wenn diese intern in ein Servlet übersetzt wird. Server wie Tomcat verfügen über ein gutes Pooling.
In meinen Augen ist Java insofern erweiterbarer, als dass sich mit den "Bordmitteln" bereits mehr anstellen lässt als in PHP. Nehmen wir als Beispiel das Filtern von Bildern (z.B. Ränder schärfen): in PHP musst du entweder eine Erweiterung in C schreiben oder du machst es direkt in PHP, indem du Pixel für Pixel eines Bildes bearbeitest (mit dann undiskutablen Laufzeiten). In Java sind das nur ein paar Zeilen, mit den Klassen Kernel und ConvolveOp. In solche Bereiche stößt zwar ein Durchschnitts-Programmierer nie vor, für Profis sind solche Überlegungen allerdings relevant. Und hier schließt sich der Kreis zum Anfang: wie will man entscheiden, welche Technologie man einsetzen will, wenn man noch keine klare Vorstellungen davon hat, was das fertige Programm leisten soll?
Übrigens teile ich die Bedenken von vogtländer. Gerade auf die Planungsphase sollte man genügend Zeit verwenden. Das minimiert die Probleme bei der Implementierung...
 
vogtländer hat gesagt.:
Das musst du mir mal näher erklären.
Eine Sprache, die nicht als OOP-Lang geplant war, laesst sich nicht mit Funktionen, sie OOP-Faehigkeit vorgaukeln, OOP-Faehig machen. PHP5 haette von Grund auf neu programmiert werden muessen. Wurde es aber nicht, es bekam nur den OOP-Aufsatz. Ein bisschen wie die Fenster-Produkte einer von uns allen heiss geliebten Firma in Redmond. ;)
 
Johannes Röttger hat gesagt.:
Eine Sprache, die nicht als OOP-Lang geplant war, laesst sich nicht mit Funktionen, sie OOP-Faehigkeit vorgaukeln, OOP-Faehig machen. PHP5 haette von Grund auf neu programmiert werden muessen. Wurde es aber nicht, es bekam nur den OOP-Aufsatz. Ein bisschen wie die Fenster-Produkte einer von uns allen heiss geliebten Firma in Redmond. ;)
Ach so ist das. Naja, ich denke mal, der Entwurf ist wohl wichtiger als die technische Realisierung im Hintergrund.
 
Hallo!

Danke erstmal für die vielen schnellen Antworten.

Hier nun noch einige Infos:
Ich schreibe das Diplom für den Studiengang Medieninformatik (soll ein Dipl.-Informatiker werden). Das Thema CMS gefällt dem betreuenden Prof gut, habe mich allerdings auch schon gefragt, ob man mit diesem Tehma eine sehr gute Note bekommen kann, gibt es ja wirklich schon tausendfach...

Ich habe Programmiererfahrung sowohl in Java als auch in PHP, nur leider fehlt einem bei Uni-Projekten doch der Bezug zur Praxis, vor allem was die Größe der Projekte angeht. Zur Zeit arbeite ich an meinem ersten größeren Projekt für die Uni (Struts, Tomcat, JSP, JDO), steckt aber alles noch in der Planungsphase (Pflichtenheft, UML usw.), bringt mir also auch noch nicht wirklich viel. Was mir fehlt, ist die Erfahrung in der Praxis (Sicherheit, Performance...). Ein Freund hat mir erzählt, in seiner Firma wird jetzt das CMS in Java eingemottet, weil es zu langsam war, sie wollen auf PHP umsteigen.

In der Firma, in der ich neben dem Studium arbeite, wird ausschließlich in PHP programmiert, dort raten mir natürlich alle zu PHP. Natürlich ist wirklich die Planung und Dokumentation der Diplomarbeit wichtiger, ich würde aber das System auch gerne ausprogrammieren, deshalb sollte es keine Jahre dauern.
Leider ist mein betreuender Professor kein Programmierspezialist, sondern eher Datenbankprofi, so dass er mir, was die Programmiersprache angeht, keine Tipps geben kann. Vielleicht sollte ich mich da mal mit einem anderen Professor zusammensetzen.
Aber über weitere Tipps von euch würde ich mich natürlich freuen!

gruß, cleo
 
Ein Freund hat mir erzählt, in seiner Firma wird jetzt das CMS in Java eingemottet, weil es zu langsam war, sie wollen auf PHP umsteigen.
Dann war es einfach schlecht programmiert, keine gescheites Pooling der Datenbankverbindungen usw. Das Prob liegt oft weniger in der Sprache als in der Schwierigkeit der Handhabung derselben. Hier ist PHP insofern "schneller", als dass man damit oft weniger Dinge hinbastelt, die die Performance killen. Anderes Beispiel C++: super schnell und flexibel. Wenn man es beherrscht. Schreib aber mal eine Rekursion und verbastel einen Zeiger, und du wirst sehen... Ich tu mich schwer, ein "schnell" bzw. "langsam" einer Programmiersprache zuzuordnen. 1) gibt es Sprachen, die ursprünglich zu einem bestimmten Zweck geschaffen wurden wie Perl oder PHP, 2) ist die Native-Implementierung des Compilers/Interpreters in der Regel in C und die Erfahrung im Compiler- und Interpreterbau so groß, dass die Unterschiede kaum mehr ins Gewicht fallen. Lediglich die automatische Optimierung scheint mit Dauer der Verfügbarkeit anzuwachsen. Wo Java wirklich langsam war, das waren dicke Bibliotheken wie Swing, die selbst fast ausschließlich in Java geschrieben wurden. In elementaren Operationen nähert sich Java allerdings stetig C++ an, was Sprachdesign und Performance angeht (siehe Java 5).
Dass ein PHP-Programmierer dir zu PHP rät, liegt wohl in der Natur der Sache. Ist aber keine Info, auf die ich mein Urteil stützen wollte.
Ich sehe dies nun so:

Vorteil Java: du hast darin scheinbar schon Erfahrung (gerade mit Dingen wie Struts, die da relevant werden), und Java wird an der Uni meist gerne gesehen
Vorteil PHP: es ist einfacher und fehlerfreier zu programmieren (eigentlich ist PHP so ziemlich das einfachste, was gibt), und selbst als Anfänger (aber Informatiker) hättest du es in ein paar Wochen so weit drauf, dass du dich an ein CMS ranwagen könntest. Genug Code-Beispiele flattern im Netz auch rum, um einen ersten Einblick zu kriegen, was im CMS enthalten sein soll.
 

Neue Beiträge

Zurück