# Diplomarbeit: CMS (Java oder PHP?)



## cleo123 (21. Oktober 2004)

Hallo,

ich möchte als diplomarbeit gerne ein cms programmieren, habe mich aber noch nicht entschieden, ob ich das mit java oder php mache. die einen empfehlen mir php, da schneller, die anderen sind für java, da leichter erweiterbar.

Vielleicht kann mir jemand von eigenen Erfahrungen berichten?

Danke!


----------



## Sven Petruschke (21. Oktober 2004)

Sowohl Java, als auch PHP sind leicht erweiterbar, wenn Du entsprechend elegant programmierst. Aber ehrlich gesagt finde ich es recht hart, zu fragen, was besser dazu geeignet ist. Wenn Du Dich in beiden Sprachen nicht auskennst, ist es nicht empfehlenswert, ein komplettes CMS als Einstieg darin zu programmieren und das auch noch als Diplomarbeit abzugeben. Da erziehlt jeder Java- oder PHP-Programmierer mit 6 Monaten Erfahrungen bessere Ergebnisse. Zudem solltest Du den Aspekt der Datenhaltung nicht vergessen.

Aber um genauer auf Deine Frage einzugehen: Ich fühle mich mit dem Umgang in PHP weitaus sicherer, als mit Java und würde daher eher zu ersterem zurückgreifen. Das hat den Grund, weil PHP serverseitig abläuft und benutzerseitig keine Möglichkeit besteht den Quelltext einzusehen. Java-Appletts könne decompiliert werden, sodass die Logik der Client-Komponente, sowie die Datenübertragungstechnik einsehbar sind. Aber ich bin kein Java-Experte! zudem müsste dann die Clientkomponente immer erst vom Server geladen werden. Bei PHP ist die Schnittstelle zum Benutzer normales HTML, CSS und ggf. JavaScript.

Urteile selbst. Vielleicht solltest Du die Frage auch noch einmal im CodersTalk-Forum stellen?

snuu


----------



## JohannesR (21. Oktober 2004)

Es geht nicht um JavaApplets, sondern um Servlets oder JSP.
Wenn du beides kannst, nimm Java. Wenn du nicht von beidem kannst... Hast du ein Problem.


----------



## Vaio82 (21. Oktober 2004)

Also mal im Ernst, weshalb sollte ein CMS in Java leichter zu erweitern sein? 

In diesem Zusammenhang hängt es von Dir ab, ob Du überhaupt in der Lage bist in Java eine performante, dynamische GUI zu programmieren    (In PHP ist das ja nicht wirklich eine Herausforderung)

Ich würde Dir raten, dass Du Dir erstmal Gedanken zu 2 Kernthemen machst: 

Datenhaltung:
(Wurde schon angesprochen). Beispielsweise wäre XML auch etwas sehr schönes für Dich. Ich habe das vor einigen Wochen mit Actionsscript (Flash), XML und einem Servlet gemacht. 

Szenario:
In welchem Umfeld soll das später eingesetzt werden? Mal im Ernst, wenn Du das durchziehen solltest, könntest Du damit im Anschluss noch etwas Geld verdienen. Wenn es nur für kleine Unternehmen ausgerichtet ist, die nur Inhalte im Web publizieren wollen, dann nimm PHP.

Ist es allerdings in der Business-Welt angesiedelt, beispielsweise mit einem gewissen Workflow für Backendsysteme (SAP R3/ Siebel,...), nimm Java, nimm Dir einen Trainer und lass Dich 2 Tage im Bereich der Java Server Faces schulen, danach solltest Du die GUI's mit verbundenen Augen generieren können. Wenn Du dann noch ein wenig Logik & Ehrgeiz besitzt sollte das kein Problem werden.

Wünsche Dir aller bestes Gelingen und denk daran, erstmal lange, lange überlegen und nicht sofort mit dem programmieren anfangen!

Beste Grüße,
Claus



Wenn Du die Sprachen nicht kennst, gerade die Java-Welt, dann nimm PHP.


----------



## JohannesR (21. Oktober 2004)

Claus Gronemeier hat gesagt.:
			
		

> Also mal im Ernst, weshalb sollte ein CMS in Java leichter zu erweitern sein?


Naja, irgendwie schon. Da Java sehr OOP-Orientiert ist, kann man natuerlich die Basisklassen extenden...


----------



## Vaio82 (21. Oktober 2004)

Klassen sind aber auch nur das halbe Leben... : - )


----------



## _voodoo (21. Oktober 2004)

Auch ich gebe mal meinen Senf dazu, der nicht direkt von mir stammt aber
aus einem Gespräch mit jmd ...

Hab mich gestern erst mit dem Chefadmin von Studentennetzwerk meiner
Uni unterhalten und er meinte unser neues Studentenportal wird komplett in
Java gemacht wobei der Benutzer keine Javaclient aufm Rechner benötigt.
Die Sache ist dann auch schneller, weil da irgendwelche Javamodule in den
RAM geladen werden und die Seite somit nicht für jeden Besuch neu verar-
beitet werden muss (á la PHP). Außerdem ist die Sache weit sichere meinte
er, z.B. sind Injunctions auch nicht mehr möglich, bzw. nicht mehr so einfach 

Was Java und OOP angeht wurde es mir so erklärt: Man muss gezwungener-
maßen mit Klassen arbeiten ...

.voodoo

(p.s. nicht schlagen wenn ich was falsch erzähle)


----------



## hpvw (22. Oktober 2004)

Man kann mit java natürlich auch mit static Quasi-Nicht-OO programmieren, aber mein Gewissen ist auf jeden Fall deutlich gequälter, wenn ich mit Java so'n "" mach, als wenn ich mit PHP einfach drauf losschreibe.
Mich "zwingt" Java wesentlich mehr OO zu arbeiten als PHP.
Außerdem kenne ich keinen PHP-Editor, der vergleichbar mit Eclipse ist.
Auch nicht die PHP-Module von Eclipse.
Wenns für 'ne Diplomarbeit ist, wahrscheinlich noch in Informatik oder ähnlichem Studiengang, würde ich auf jeden Fall in Java programmieren.
Außer natürlich, Du zwingst Dich in PHP streng objektorientiert zu arbeiten.
Meine ganz persönliche Meinung ist, dass man mit PHP nicht so sauber programmiert, wie mit Java, ich zumindest nicht. Ich weiß auch nicht, wie viele OO Möglichkeiten PHP4 oder auch PHP5 (da hab ich erst recht keine Ahnung) im Vergleich zu Java bietet.
PHP hat natürlich den Vorteil, dass es extrem auf Webausgabe, sprich HTML, spezialisiert ist und ich ad hoc nicht wüßte, wo ich in Java fertige Funktionen, wie nl2br oder htmlspecialchars finde, die müßtest Du Dir dann evtl selbst in einer eigenen Klasse schreiben.
Hoffe ich konnte auch die ein oder andere Anregung zu Deinem Vorhaben geben,
Gruß hpvw


----------



## vogtländer (22. Oktober 2004)

Ich denke mal, die Frage nach der Sprache stellt sich zunächst einmal überhaupt nicht. 

Denn wenn es die Aufgabe sein soll, ein CMS als Diplomarbeit in sagen wir 6 Monaten zu programmieren, dann wirst du wohl kein Dipl.Inf. werden, denn zuerst kommt der Entwurf mit diversen Anforderungs-, Ist-Soll-Analysen, mit UML-Entwürfen etc. Das wird wohl soviel Zeit in Anspruch nehmen, dass das Programmieren ausfällt. Achso, unterschätze das reine Schreiben nicht, dafür brauchst du sicher auch nen ganzen Monat. Kaum zu glauben, aber der redaktionelle Teil hats auch in sich.

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.

just my 2 cents


----------



## JohannesR (22. Oktober 2004)

_voodoo hat gesagt.:
			
		

> [...]unser neues Studentenportal wird komplett in
> Java gemacht wobei der Benutzer keine Javaclient aufm Rechner benötigt.


Das sag ich ja die ganze Zeit, es geht hier um Servlets bzw. JSP, *nicht* um JavaApplets!



> Die Sache ist dann auch schneller, weil da irgendwelche Javamodule in den
> RAM geladen werden und die Seite somit nicht für jeden Besuch neu verar-
> beitet werden muss (á la PHP).


Servlets sind im Prinzip kleinen Programme, die auf die GET bzw POST-Request reagieren, und afaik sauschnell.
JSP ist auch nett, ist ein bisschen wie PHP.
Neu verarbeitet werden muss die Seite auf jeden fall, wenn ich mich recht erinnere.



> Außerdem ist die Sache weit sichere meinte er, z.B. sind Injunctions auch nicht mehr möglich, bzw. nicht mehr so einfach


Injections, und das kommt nur darauf an, wie der Programmierer programmiert.



> Was Java und OOP angeht wurde es mir so erklärt: Man muss gezwungenermaßen mit Klassen arbeiten ...


Was ja nichts schlechtes ist, oder?


----------



## JohannesR (22. Oktober 2004)

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.


----------



## vogtländer (22. Oktober 2004)

Johannes Röttger hat gesagt.:
			
		

> Nunja, nur Java beherrscht echtes OOP, was PHP von sich nicht behaupten kann, nichtmal in Version 5.



Das musst du mir mal näher erklären.


----------



## Christoph Bichlmeier (22. Oktober 2004)

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...


----------



## JohannesR (22. Oktober 2004)

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.


----------



## vogtländer (22. Oktober 2004)

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.


----------



## cleo123 (23. Oktober 2004)

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


----------



## Christoph Bichlmeier (30. Oktober 2004)

> 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.


----------

