# vorteile php gegenüber java?



## fariman (25. Aug 2007)

Hallo,
ich brauche für meine Studienarbeit zu wissen, was die Vorteile von PHP gegenüber der Programmiersprche Java sind? auch der Kostenfaktor soll verglichen werden.
Falls jemand mir was darüber schreiben kann oder Quellen eingeben kann wäre ich echt dankbar..


----------



## Kim Stebel (25. Aug 2007)

hier hast du eine vollständige liste der vorteile:


----------



## fariman (25. Aug 2007)

wo meinst du mit hier???


----------



## Kim Stebel (25. Aug 2007)

na hinter dem doppelpunkt


----------



## Gast (25. Aug 2007)

ich kann nichts lesen..!!!!


----------



## Kim Stebel (25. Aug 2007)

"ich kann nichts lesen..!!!!"
das liegt daran, dass da nichts steht


----------



## Gast (25. Aug 2007)

ich glaub du hast zu vieeeeeeeeel zeit, um den Menschen auf die Nerven zugehen.


----------



## Dante (25. Aug 2007)

hi, php ist eine sprache mit dynamischem typsystem, d.h. vorallem, dass du keine typen an deine variablen und funktionen schreiben musst. das hat einige vorteile (einfachere entwicklung) und einige nachteile (typumwandlungsprobleme, formale entwicklung).

Java hingegen hat ein statisches typsystem, das heisst du musst überall typen dranschreiben, das hat vorteile (der compiler kann mehr fehler finden, es macht formale softwareentwicklung einfacher) aber auch nachteile (man schreibt mehr, muss mehr planen, muss mehr denken  )

php bietet durch den geringen lernaufwand die möglichkeit schnell einzusteigen. Allerdings hat es, wenn die ersten Hürden gefallen sind, wenig strukturen zu beieten bzw. muss man sich die selbst entwickeln. Unter anderem ist die die Organisation von Projekten und deren Quellcode, Schnittstellen sowie Dokumentation. Es ist also eher etwas für erfahrene Leute, die mit den Freiheiten umgehen können, Anfänger bauen gerne Chaos.

Java hat hier durchaus Vorteile, da es eine eigene Struktur für Quellcode mitbringt (aber damit auch keine anderen erlaubt) und auch im Hinblick auf strukturierte formalisierte Entwicklung und Dokumentierbarkeit entwickelt wurde. Es ist also eher etwas für Erfahrene Leute, da sich Anfänger immer etwas schwer tun, die ganzen regeln, do's und don'ts zu begreifen.

In beiden Sprachen gibt es eine umfangreiche Standardbibliothek, in Java mag die größer sein, PHP bietet aber durchaus eine menge Dinge. Hier kommt natürlich zum Tragen, dass PHP es - anders als andere dynamische Sprachen  wie python oder ruby - nicht geschafft hat sich aus dem HTTP-Bereich wegzuentwickeln. Daher ist die PHP-Bibliothek sehr stark auf den HTTP-Einsatz beschränkt. Das ist bei Java natrülich anders. Was beim HTTP-Einsatz durchaus eigene Dynamiken entwickeln kann (ergo: hat auch wieder Vor- und Nachteile)

Der Kostenfaktor ist somit eigentlich nur für Webgeschichten interessant, hier müsste erstmal verglichen werden um welche Projektgröße es geht. Ich würde PHP hier ohne Probleme als geeignet für kleine und mittlere Projekte bezeichnen, große Projekte sind durchaus umsetzbar (es gibt dafür auch genug Beispiele, zB. Flickr) benötigen aber eine gute Organisation. In kleinen und mittleren projekten kommen die deutlichen Vorteile von PHP zum Tragen: es kann ein eher agiler Entwicklungsprozess gefahren werden, da man sich wenig um Frameworks, Schnittstellen und Datenstrukturen kümmern muss, sind schneller Ergebnisse da. In größeren Projekten werden genau wie in der Java-Welt inzwischen verstärkt Frameworks eingesetzt, die einarbeitungszeit nimmt sich hier wenig.

Java hat Vorteile in großen und sehr großen Projekten, da hier eine Menge Technik, Spezifikationen und Frameworks bereitsteht. Imho ist das der Bereich für den Java (in der Web-Welt) gedacht ist. In kleinen und mittleren projekten sind Dinge wie Servlet-Container und  Applicationserver unnötig und deutlich zu komplex und werden daher auch nicht eingesetzt.

Java benötigt hier natürlich deutlich besser ausgebildete Entwickler. Insofern scheint Java eher der Weg zu sein, den das Geld geht. Sprich es ist ein ausreichendes Budget da um eine ordentliche Lösung in Auftrag zu geben (ob die dann auch komt ist eine andere Geschichte). Ist hingegen das Budget knapp, die Firma noch Hart in Gründung oder man bastelt in der sprichwörtlichen Garage am neuen StudiKZ, ist Java eher ungeeignet, da hier weder das notwendige Entwicklungsteam da ist, noch ausreichend Vorarbeit in Sachen Planung und Konzeption geleistet werden kann.


----------



## Dante (25. Aug 2007)

achja, wie du gerade siehst: glaub den trollen nix, entweder haben die eh noch nie was ernsthaftes gebaut und machen nur nen dicken oder es sind Java-Monokulturen die nichts anderes mehr sehen (können).

Wenn du natürlich Argumente haben willst, warum du als Java-Programmierer zwar nicht Gott bist, aber doch kurz danach kommst, dann hör denen ruhig zu. Davon werden aber keine Projekte fertig und es kommen so auch keine Aufträge zustande 

Ich hab schon viele Aufträge in beiden Sprachen fertiggestellt. Man muss sich für jede Aufgabe das richtige Werkzeug aus dem Kasten holen. Auch wenn ein Schweizer Taschenmesser vielleicht ganz gut aussieht braucht man manchmal eben auch was anderes


----------



## Gast (25. Aug 2007)

Danke Dante für deine ausführliche Antwort.
hier geht um realisieren von einem Internet-Shop, hat java noch witere Kostennachteile php'sgegenüber, z.B. muss dafür unbedingt bestimmte nicht opensource Server eingesetzt werden oder ähnliches(es ist nähmlich vorausgesetzt dass ich java-Techniken und Frameworks sehr gut kann;-)


----------



## AlArenal (25. Aug 2007)

Allem Anschein nach erwartest du Zahlen, deine bisher genannten Anforderungen enthalten aber keine. Was soll man wohl auf die Frage "Was kostet ein Internet-Shop in PHP und einer in Java?" antworten?

Irgendwas zwischen umsonst und frag-mal-bei-Intershop-an ....


----------



## Noctarius (25. Aug 2007)

@ dante


> php ist eine sprache mit dynamischem typsystem, d.h. vorallem, dass du keine typen an deine variablen und funktionen schreiben musst. das hat einige vorteile (einfachere entwicklung) und einige nachteile (typumwandlungsprobleme, formale entwicklung)



Dies ist aus meiner Sicht genau der grösste Nachteil an PHP und einigen anderen Sprachen die diesen Ansatz verfolgen.

Das einzige was meiner Meinung dadurch passiert ist, dass man sich 1. im Normalfall nicht genug Gedanken über die zu verwendenen Typen macht (bzw was im Hintergrund passiert) und man 2. niemals eine genaue Fehlermeldung erwarten kann.


Ein weiterer entscheidender Unterschied ist, dass in Java Variablen erst dimensioniert werden müssen währen sie in PHP automatisch beim ersten Gebrauch dimensioniert werden (kommt davon dass sie keinen Datentypen haben müssen). Dies macht in PHP zwar weniger Schreibarbeit führt aber auch zu schnellen Fehlern wenn man einmal "Variable1" und einmal (ausversehens) "Variabl1e" schreibt und sich wundert warum die Ausgabe leer ist 

Noci


----------



## fariman (25. Aug 2007)

ich kenne durch mein Studium nur Vorteile von Java aus Programmiersicht, ich habe aber mein Projekt in PHP entwickelt da es einfacher und schneller geht, es reicht aber als Argument nicht aus, Kostenerspanis für ein Kleiunternehmen könnte schon ein gutes Argument sein z.B. beim Aufstellen des Schops, etc.


----------



## AlArenal (26. Aug 2007)

Nun, wenn Java stets  überlegen wäre, gäbe es nichts anderes. 

In der Tat gibt es auch unter den Javaisten kritische Stimmen:

http://www.russellbeattie.com/blog/java-needs-an-overhaul

Der Post ist von gestern und mit einem Blick auf den Lebenslauf des Autors wird klar, dass der Mann nicht mehr grün hinter den Ohren ist und - ganz nebenbei - dass sich sein Nachname 'biÄtti' ausspricht


----------



## tfa (26. Aug 2007)

Noctarius hat gesagt.:
			
		

> @ dante
> 
> 
> > php ist eine sprache mit dynamischem typsystem, d.h. vorallem, dass du keine typen an deine variablen und funktionen schreiben musst. das hat einige vorteile (einfachere entwicklung) und einige nachteile (typumwandlungsprobleme, formale entwicklung)
> ...



Das Problem von PHP ist, dass es nicht nur dynamisch, sondern auch noch schwach typisiert ist. Moderne Skriptsprachen wie Ruby oder Python sind streng typisiert und liefern selbstverständlich aussagekräftige Fehlermeldungen. 

Ein dynamisches Typsystem ist nicht per se schlechter als ein statisches. Es ist eben nur eine andere Philosophie, die zusammen mit Objektorientierung (für die meisten PHP-Programmierer auch ein Fremdwort) ein sehr mächtiges Werkzeug sein kann.

Zugegebenermaßen ist es nicht leicht, sich umzugewöhnen, wenn man jahrelang das statisch typisierte Java gewohnt war und nun mit Duck-Typing konfrontiert wird. Aber es lohnt sich.

tfa


----------



## Noctarius (26. Aug 2007)

Ich denke nicht, dass es am "Umgewöhnen" liegt, sondern es war eher auf Programmieranfänger bezogen, welche auf diese Art niemals lernen, dass man sich Gedanken über ein Programm macht bevor man anfängt es rutnerzuhacken 

Aber der schlimmere Nachteil ist auch der zweite von mir dargelegte, denke ich zumindestens.


----------



## tfa (26. Aug 2007)

Noctarius hat gesagt.:
			
		

> Aber der schlimmere Nachteil ist auch der zweite von mir dargelegte, denke ich zumindestens.



Was -- wie gesagt -- Schuld der schwachen Typisierung von PHP ist, nicht der dynamischen.

tfa


----------



## AlArenal (26. Aug 2007)

Noctarius hat gesagt.:
			
		

> Ich denke nicht, dass es am "Umgewöhnen" liegt, sondern es war eher auf Programmieranfänger bezogen, welche auf diese Art niemals lernen, dass man sich Gedanken über ein Programm macht bevor man anfängt es rutnerzuhacken
> 
> Aber der schlimmere Nachteil ist auch der zweite von mir dargelegte, denke ich zumindestens.



Das hängt eher von den Fähigkeiten des Lehrers als den Eigenschaften der Sprache ab. Skriptsprachen bieten einen viel einfaherern Einstieg in die Programmierung, mit schnellen Erfolgserlebnissen, die den Lernenden motivieren. Er kann zunächst die Grundzüge der Programmierung lernen, ohne es gleich mit OOP aufnehmen zu müssen (zumindest merkt er davon erstmal nichts).

Verschiedene Lehranstalten gehen da unterschiedlich vor. Die einen lehren als erste Sprache funktionale Sprachen, die anderen bleiben komplett bei einer Skriptsprache, fangen aber erstmal klein an.

Nehmen wir mal den Fall, dass ein Lehrer vor der Klasse steht,d avon ausgehen muss, dass noch keiner Vorkenntnisse hat und will denen die Lernenden ihr erstes Programm schreiben lassen:

*C++*

```
#include <iostream.h>

void main()
{
   cout << "Hallo Welt!" << endl;
}
```


*Java*

```
class MeinProgramm
{  
        public static void main(String args[])
        {
           System.out.println("Hallo Welt!");
        }
}
```

Bei C++ und Java kommt jeweils noch der Kompilier- und Ausführungszyklus hinzu, u.U. mit dem Hinweis Groß-/Kleinschreibung zu beachten.

D.h. die Lernenden lernen erstmal, dass man um einfach einen Text auszugeben viele Schritte völlig korrekt abarbeiten muss und viel Code schreiben muss, dessen Funktion und Nutzen noch völlig im Dunklen liegt. Der Lehrer muss sich überlegen, ob er das alles detailliert erklärt, was dazu führt, dass die Schüler frustriert werden und abschalten, oder ob er den Ansatz wählt "Schreibt erstmal nur ab, wir erklären das später mal.", was schneller zum Ergebnis führt, aber auch nicht gerade vertrauensfördernd ist.

In einer Skriptsprache starte ich den Kommandozeileninterpreter / die IDE und lege einfach los:

*PHP, Python*

```
print "Hallo Welt!"
```

*Ruby*

```
"Hallo Welt!"
```

Jeff Elkner dürfte mit seiner Entscheidung am College nicht mehr C++, sondern Python als erste Sprache zu lehren, viel im Denken von Kollegen bewegt haben. Seine Lehrunterlage, das selbstgeschriebene Open Source Buch "How to Think Like a Computer Scientist - Learning with Python" enthält auch seine persönliche Geschichte und seine Gründe: http://www.ibiblio.org/obp/thinkCSpy/preface.html

Kurzum:
Aus didaktischer Sicht ist Java ein Graus und das macht das lehren und lernen nicht einfacher. 
Ob und in welchem Maße jemand zu Spaghetticode neigt ist nicht eine Frage dessen, wieviel Zwang die Sprache ausübt, sondern wie gut man ihm Konzepte vermitteln kann. Die Todesstrafe hält in den USA ja auch keinen Mörder vom töten ab...


----------



## Noctarius (26. Aug 2007)

Gut aus dieser Sicht hast du mit absoluter Sicherheit Recht, kann ich schlecht einschätzen, da ich bereits lange programmeirt habe, bevor wir in der Schule damals Delphi bekamen. Die Sprache sowie die Lehrmethode des Lehrers (vllt verdanke ich meine Abneigung, Delphi gegenüber, auch ihm)  sind für mich ein Grauss.

Und trotzdem bin ich der Meinung, dass einen eine strenge Typisierug und vorallem strenges dimensionieren der Variablen hilft, sich vorab Gedanken über den Code zu machen. Aber auch hier nehme ich dir kurz deine (vermutliche) Meinung vorweg: Klar braucht man dazu ein ungefähres Wissen über Bits/Bytes/Strings und Ähnliches. Doch denke ich soltle ein Lehrer sowas eh erklären bevor er auch nur eine Zeile Quellcode an die Tafel schreibt


----------



## ice-breaker (26. Aug 2007)

Also ich entwickele ja seit einiger Zeit beides, für Web-Anwendungen habe ich mich aber seit langem für PHP entschieden, aus folgenden Gründen:
PHP ist komplett für das Web-Geschehen ausgelegt und darauf getrimmt, es kommt mit einer Hülle von Funktionen an, und auch sehr sehr guten Frameworks für schnelles Entwickeln (ZendFramework,Symphony, CakePHP, ezComponents, ...).
Der größte Vorteil ist die Zeitersparnis da solch eine PHP-Anwendung weit schneller getippt als nen Java-Programm.
PHP hat natürlich auch seine Schwachstellen, dass wird dir keiner verheimlichen, die schwache Typisierung ist teilweise wirklich ein Problem, wenn Datentyp jeweils gecastet werden, wie sie benötigt werden, allerdings ist mit sauberem Programmieren und dem Leitspruch "Never trust the Input" dies überhaupt kein Problem.
Dann ist ein weiteres Problem, dass PHP einen ähnlich schlechten Ruf mit Unwissenden Programmiern hat, so wie Java langsam sein soll, das Problem ist, dass wir mitlerweile bei PHP5 stecken (und PHP6 in absehbarer Zeit, 1-2 Jahren eintrifft) jedoch man oft noch Scripte finden, die scheinabr für PHP3 waren (keine Großen Scripte, aber oft von den "Noobs") und man dies dann verallgemeinert. Da findet man dann oft noch Dinge wie register_globals=on, safe_mode=off oder der Verlass auf magic_quotes=on.
Auch die Objektorientierung fand erst mit PHP5 einzug in die PHP-Welt, was sehr lange ein nicht zu unterschätzender Kritikpunkt war.
Aber die Zeit zeigt, was sich durchsetzt, und PHP hat gezeigt, dass es entgegen der vorrigen Meinung sich auf jedenfall für Enterprise-Anwendungen eignet (hatte man von MySQL auch nicht erwartet), denn Projekte wie flickr, seveload oder digg zeigen, dass solche Projekte auch mit Unmengen an Usern umgehen können.
Das Problem das man scheinabr mit PHP bei solch großen Projekten scheiterte lag nicht an der Geschwindigkeit sondern an der Datenbank, denn 60-70% der Zeit einer Anwendung gehen meist für die Datenbank drauf, und da meist auf MySQL gesetzt wurde und dieses auch nciht so schnell war bzw. sehr sehr oft wirklich falsch bedient wurde, scheiterte man an Projekten mit großen Peaks.

Achso, und eins kann ich dir mit auf den Weg geben, wenn du in einem Java-Forum fragst, wird dort PHP das beste, bei Java Java, bei Ruby...
Also wirklich qualifizierte Antworten zu bekommen ist schwer, man kann dieses Thema auch nicht ganz objektiv betrachten, das ist denke ich klar 
Solltest du noch Fragen zu PHP haben, kannste dich gerne melden 


Ps.: der Einstieg in PHP geht schnell, aber wirklich ordentliche Anwendungen brauchen eben ein gewisses Grundverständnisse, und da scheitert es meist wenn man in die Foren gugt oder sich kleine Scripte ansieht, das ist kein Problem von PHP sondern eigentlich von jeder Sprache, nur genau an diesen Personen werden Sprachen meist beurteilt.


----------



## Noctarius (26. Aug 2007)

> wenn du in einem Java-Forum fragst, wird dort PHP das beste


Den Satz mag ich  RAUS! *auf Tür zeig* 

Nee Spass beiseite, gewiss hast du Recht, dass in einem Java Forum mehr Javafreunde rumlaufen und doch denke ich, dass jeder subjektiv genug ist eine Meinung zu äussern.

Aber absprechen kann ich dir nicht, dass man in PHP schneller entwickelt als in Java. Auch gibt es ja mitlerweile Recht schöne IDEs, die erstens beim Entwickeln helfen, 2. auch vorab schon Fehler abfangen können (ein beliebter von mir ist immer noch der freudsche Verschreiber im Variablennamen).

Mit den Frameworks muss ich dir auch Recht geben. Gerade im Bereich AJAX (ja möächtiges Schlagwort - erschlagt mich nicht) gibt es sehr schöne Frameworks und mit entsprechenden Vorsichtsmaßnahmen (Checked SQL Statements) kann man auch Dinge wie SQL-Injection vermeiden, was bei den meisten auf PHP basierenden System einfach aus Unwissenheit oder Faulheit nicht gemacht wird.

Zu diesen kleinen "Peinlichkeiten" wie register_globals oder Ähnlichen behaupte ich jetzt einfach mal, dass es bei den meisten Bequemlichkeit ist, sich die Übergabeparameter direkt als Variablen geben zulassen. Und für den Enterprisebereich ist PHP auch gerüstet, besonders wenn man den Source vorab noch durch den Zend Optimizer jagt.

Abseits davon: Hatte PHP 4 nicht auch schon OOP Züge? (ich hab zwar mal kleinere Dinge in PHP gemacht, aber nichts Grosses)


----------



## me1357 (26. Aug 2007)

Noctarius hat gesagt.:
			
		

> Abseits davon: Hatte PHP 4 nicht auch schon OOP Züge? (ich hab zwar mal kleinere Dinge in PHP gemacht, aber nichts Grosses)


Die hatte auch PHP 3 schon, allerdings nicht so, dass es wirklich benutzbar war.

Was mich an PHP stört, ist, dass es an einigen Stellen eine ziemlich "verflachte" Syntax hat. So dass man zum Beispiel eine Temporäre Variable benötigt, weil eine Funktion ein Array zurückgegeben hat, von dem nur ein Element haben will.

Was für mich auch noch ziemlich inakzeptabel ist, ist die Sache mit den fehlenden Namespaces. Dieser riesige Haufen von Funktionen ist einfach Wahnsinn. Bei einer modernen Programmiersprache sollte sowas doch eigentlich kein Problem sein.

Außerdem besitzt PHP noch einige Eigenheiten, über die man im Alltag stolpert, wie safe_mode, magic_quotes oder die fehlende Unicode-Unterstützung.

Mit PHP 6 soll vieles besser werden, ich bin mal gespannt.


----------



## AlArenal (26. Aug 2007)

me1357 hat gesagt.:
			
		

> Noctarius hat gesagt.:
> 
> 
> 
> ...



..weswegen der/die Entwickler von Drupal gleich drauf verzichteten und OOP-Features ohne Verwendung von OO-Sprachfeatures in PHP implementierten.



> Was für mich auch noch ziemlich inakzeptabel ist, ist die Sache mit den fehlenden Namespaces. Dieser riesige Haufen von Funktionen ist einfach Wahnsinn. Bei einer modernen Programmiersprache sollte sowas doch eigentlich kein Problem sein.



Hinzu kommt, dass die vorhandene Funktionen nach Lust und Laune benannt wurden...

Sagen wir mal einfach, dass PHP ebenso geschichtlichen Ballast an Bord hat wie Java auch. Hier haben Python und Ruby sicher deutliche Vorteile in Sachen Klassenbibliothek, Klarheit der Syntax, ...


----------



## tfa (26. Aug 2007)

AlArenal hat gesagt.:
			
		

> Sagen wir mal einfach, dass PHP ebenso geschichtlichen Ballast an Bord hat wie Java auch. Hier haben Python und Ruby sicher deutliche Vorteile in Sachen Klassenbibliothek, Klarheit der Syntax, ...



Das ist korrekt. Bemerkenswert finde ich, dass Ruby genau so alt ist wie PHP. Python ist sogar noch ein paar Jahre älter. Das sagt einiges über diese Sprachen aus -- wie über PHP.

tfa


----------



## AlArenal (26. Aug 2007)

Das Problem von PHP war der plötzliche Erfolg. Auch war der Background der Entwicklung ein anderer als bei Ruby und Python.



			
				Wikipedia hat gesagt.:
			
		

> *PHP* wurde 1995 von Rasmus Lerdorf entwickelt. Der Begriff stand damals noch für Personal Home Page Tools und war ursprünglich eine Sammlung von Perl-Skripten, die Rasmus Lerdorf zur Protokollierung der Zugriffe auf seinen Online-Lebenslauf geschrieben hatte. Bald schuf Lerdorf jedoch eine größere Umsetzung in C. In dieser Programmiersprache wird PHP heute noch entwickelt. Das schließlich veröffentlichte PHP/FI (FI stand für Form Interpreter) war Perl sehr ähnlich, wenn auch viel eingeschränkter, einfacher, und ziemlich inkonsistent.





			
				Wikipedia hat gesagt.:
			
		

> *Python* wurde mit dem Ziel entworfen, möglichst einfach und übersichtlich zu sein. Dies wird durch zwei Dinge erreicht: Zum einen enthält die Sprache einen sehr mächtigen Funktionsumfang in nur wenigen Schlüsselwörtern, zum anderen wurde die grammatikalische Syntax reduziert und auf Übersichtlichkeit optimiert.





			
				Wikipedia hat gesagt.:
			
		

> *Ruby* wurde nach dem Prinzip der geringsten Überraschung (kurz: POLS für „Principle of least surprise“) entworfen. Rubys Designer versuchen, die Sprache so zu gestalten, dass Programmierer die Sprache intuitiv nutzen können. Matz sagt dazu: "Das Prinzip der geringsten Überraschung ist das Prinzip meiner geringsten Überraschung. Und es ist das Prinzip der geringsten Überraschung nachdem Du Ruby sehr gut gelernt hast."



Es ist wie bei Microsoft: Die sind nicht Marktführer weil ihre Betriebssysteme konzeptionell und in der Umsetzung allen anderen haushoch überlegen sind...

Und genauso wie MS auf Gedeih und Verderbe halbwegs abwärtskompatibel bleiben muss, sieht man sich auch bei PHP dazu verdammt. Anders sieht es bei Python aus. Da wird auch mal ausgemüllt und rafactored. Das nächste Release wird in einigen Punkten nicht abwärtskompatibel sein. Man könnte auch sagen, dass sich die drei über all die Jahre selbst treu geblieben sind.


----------



## kama (26. Aug 2007)

Hallo,


			
				Gast hat gesagt.:
			
		

> hier geht um realisieren von einem Internet-Shop, hat java noch witere Kostennachteile php'sgegenüber, z.B. muss dafür unbedingt bestimmte nicht opensource Server eingesetzt werden oder ähnliches(es ist nähmlich vorausgesetzt dass ich java-Techniken und Frameworks sehr gut kann;-)


Welche nicht Open Source Server muss man einsezten ? Reichen JBoss, Tomcat, Jonas, Geronimo, ... nicht ? Alles Open Source ohne Lizenzkosten einsetzbar ...

MfG
Karl Heinz Marbaise


----------



## kama (26. Aug 2007)

Hallo,



			
				AlArenal hat gesagt.:
			
		

> *C++*
> 
> ```
> #include <iostream.h>
> ...


Dem Dozenten/Lehrer würde ich einfach nur Sagen: Setzen sechs! Der hat nicht verstanden was da passiert.


```
#include <iostream.h>
int main()
{
   cout << "Hallo Welt!" << endl;
   return 0;
}
```



			
				AlArenal hat gesagt.:
			
		

> *PHP, Python*
> 
> ```
> print "Hallo Welt!"
> ```


Dem Dozenten/Lehrer würde ich auch nur Sagen: Setzen sechs!. Wenn schon dann so:

```
<?php print "Hallo Welt!"; ?>
```

MfG
Karl Heinz Marbaise


----------



## AlArenal (26. Aug 2007)

Das machts natürlich seitens der Lernenden gleich viel verständlicher und intuitiver


----------



## kama (26. Aug 2007)

Hallo,

wenn man es mal genau betrachtet bleibt doch am Ende übrig, dass weder PHP noch Java vorne liegen.

Die Kostenunterschiede ergeben sich meiner Erfahrung bisher nur dadurch, dass sich z.B. PHP Programmierer (vor allem Freelancer aber auch Angestellt) wesentlich billiger Verkaufen als Java Programmierer (ob das gerechtfertig ist, steht auf einem anderen Blatt).

Aber es geht nicht darum, ob nun PHP oder Java besser ist oder umgekehrt. Der Punkt ist der, wie Erfahren sind die Leute, die ich für ein bestimmtes Budget erhalte. 

Auch die Diskussionen über die Geschwindigkeit von Java bzw. PHP kann man nur dann führen, wenn man genau vergleichbare Situationen schafft, die man auch tatsächlich vergleichen kann und leider werden meist Äpfel mit Birnen verglichen (anderes Thema).

Die Eigendliche Frage die sich stellt ist, welche Leute bekomme ich gerade ? Java Leute oder PHP - Leute...

Wenn ich Java Leute erhalte realisiere ich in Java bzw. in PHP mit PHP Leuten.

Das größte Problem ist aber die Erstellung der Anforderungen (Anforderungsanalyse, Pflichtenhefte, Fachkonzept etc.) und nicht ob in PHP oder Java realisiert wird.

Und meist sind die "kleineren" Firmen einfach nicht bereit in die Vorbereitung eines solchen Projekte Geld zu investieren, weil sie nicht sehen, dass Ihnen das später auf die "Füße" fällt. Sprich Wartungskosten, Erweiterbarkeit, Wartbarkeit, Skalierbarkeit etc.

Ich spreche nur mal kurz das Thema Versionsmanagement an, da heißt es dann oft, brauchen wir doch garnicht ....(vor allem im Bereich PHP...nicht repräsentativ..).

Die typischen Aussagen "Es geht in PHP einfacher" rühren daher, dass die Leute voher nicht richtig entwickelt haben. Keine Unit Test's geschrieben haben usw. oder keine System für 100.000 User entwickelt haben. Wenn man das gemacht hat, dann dauert die Entwicklung in PHP genau so lange wie Java bzw. umgekehrt. 

Das einzige Arguemt bzgl. der Kosten was mir derzeit effektiv einfällt sind die Betriebskosten für eine Lösung in PHP im Gegensatz zu der in Java. Ein PHP-Hostig bekomme ich derzeit an jeder Ecke...mit Java wird das schon schwieriger. Das würde aber voraussetzen, dass die Lösung dann später im Internet zum Einsatz kommt.
Innerhalb eines Unternehmens sind die Betriebskosten meiner Erfahrung nicht unterschiedlich zwischen PHP/Java ....


MfG
Karl Heinz Marbaise


----------



## AlArenal (26. Aug 2007)

Ich denke das kann man im Großen und Ganzen so unterschreiben.

Schlechtes Projektmanagement (wenn überhaupt vorhanden), Zeit- und Preisdruck bringen viele dazu Realisierungen in PHP zu bevorzugen, weil man schnell mal was ändern und austauschen kann.

Dass die scheinbar eingesparte Zeit später doch noch investiert werden muss und dadurch erneut Kosten entstehen (auf denen man entweder sitzenbleibt oder die man direkt oder indirekt an den Kunden weiterreicht), wird oft erst später klar - sowohl den Entwicklern als auch den Kunden.

"Geiz ist geil" ist leider auch in der Geschäftswelt ein Motto, nach dem viele ihre Aufträge vergeben, aber Folgekosten völlig außer Acht lassen (die auch oft erstmal nicht sichtbar sind, weil man mit Problemen und Nachbesserungen ja erstmal nicht rechnet)...


----------



## kama (26. Aug 2007)

Hallo,



			
				Dante hat gesagt.:
			
		

> Ich würde PHP hier ohne Probleme als geeignet für kleine und mittlere Projekte bezeichnen, große Projekte sind durchaus umsetzbar (es gibt dafür auch genug Beispiele, zB. Flickr) benötigen aber eine gute Organisation.


Genau da liegt ein Knackpunkt, der unabhängig von PHP und/oder Java ist. Die Organisation..



			
				Dante hat gesagt.:
			
		

> In kleinen und mittleren projekten kommen die deutlichen Vorteile von PHP zum Tragen: es kann ein eher agiler Entwicklungsprozess gefahren werden, da man sich wenig um Frameworks, Schnittstellen und Datenstrukturen kümmern muss,


Und genau fällt man dann in der Wartung, Erweiterbarkeit etc. schlicht auf die Fresse...(sorry, wenn ich das so hart formuliere).
Da ist dann nämlich vorbei....Bei einer entsprechenden Vorbereitung (Anforderungsanalyse etc.) passiert das nicht.




			
				Dante hat gesagt.:
			
		

> sind schneller Ergebnisse da. In größeren Projekten werden genau wie in der Java-Welt inzwischen verstärkt Frameworks eingesetzt, die einarbeitungszeit nimmt sich hier wenig.


Ich erwarte von einem Entwickler, dass er die Programmiersprache als auch die Frameworks beherrscht. Ich will als Kunde ja nicht die Einarbeitung bezahlen...



			
				Dante hat gesagt.:
			
		

> In kleinen und mittleren projekten sind Dinge wie Servlet-Container und  Applicationserver unnötig und deutlich zu komplex und werden daher auch nicht eingesetzt.


Das Problem ist nur, dass man für die Umsetzung im Bereich Web nun mal Servlet-Container benötigt...der Applicaiton-Server ist eine andere Sache...



			
				Dante hat gesagt.:
			
		

> Java benötigt hier natürlich deutlich besser ausgebildete Entwickler. Insofern scheint Java eher der Weg zu sein, den das Geld geht. Sprich es ist ein ausreichendes Budget da um eine ordentliche Lösung in Auftrag zu geben (ob die dann auch komt ist eine andere Geschichte). Ist hingegen das Budget knapp, die Firma noch Hart in Gründung oder man bastelt in der sprichwörtlichen Garage am neuen StudiKZ, ist Java eher ungeeignet, da hier weder das notwendige Entwicklungsteam da ist, noch ausreichend Vorarbeit in Sachen Planung und Konzeption geleistet werden kann.


Es hat nichts mit Java oder PHP zu tun, ob ein Entwickler ausgebildet ist oder nicht. Es muss in beiden Fällen seine Werkzeug, sprich die Sprache (PHP oder Java) beherrschen und vor allem auch die Probleme kennen. 
Wenn eine Firma in Gründung ist, dann soll Sie doch bitte die Finger von so etwas lassen. Oder sich aber mehr Geld besorgen und dann entsprechend sauber Planen. Dann hat man auch langfristig Erfolg.


Weiterhin wäre im Rahmen der Diskussion mal zu klären was ist denn ein:

kleines, mittleres, großes und ganz großes Projekt?

MfG
Karl Heinz Marbaise


----------



## Gast (27. Aug 2007)

ich bin geil aller


----------



## AlArenal (27. Aug 2007)

Gast hat gesagt.:
			
		

> ich bin geil aller



Geh doch was zum Spielen auf die Autobahn...


----------



## Noctarius (27. Aug 2007)

Gast hat gesagt.:
			
		

> ich bin geil aller



Tja jetzt können die Kleinen zwar mit Bauklötzen spielen, aber nimma mehr Ihre komische prache richtig schreiben "Alter" xD


----------



## byte (27. Aug 2007)

Oder es war ein Bot und die sprechen ja bekanntlich klingonisch.


----------



## The_S (27. Aug 2007)

oder er spricht einfach nur n Dialekt, bei dem "Alter" "Aller" ausgesprochen wird. Oder er ist religiös veranlagt und möchte Allah etwas mitteilen.

Fragen über Fragen ...


----------



## Jango (27. Aug 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Oder er ist religiös veranlagt und möchte Allah etwas mitteilen.


 :shock: Dass er geil ist?


----------



## The_S (27. Aug 2007)

Fanatiker halt


----------



## AlArenal (27. Aug 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Oder er ist religiös veranlagt und möchte Allah etwas mitteilen.



Soll er sich halt registrieren und ihm ne PN schicken...


----------



## The_S (27. Aug 2007)

Nö, den Benutzernamen gibts leider nicht


----------



## AlArenal (27. Aug 2007)

Ganz schön gottverlassen hier...


----------



## Jango (27. Aug 2007)

AlArenal hat gesagt.:
			
		

> Ganz schön gottverlassen hier...


Nö... Allah ist überall. Möglicherweise auch geil - wer weiß...  ???:L


----------



## Wildcard (27. Aug 2007)

Bitte back to topic...


----------



## ice-breaker (27. Aug 2007)

Noctarius hat gesagt.:
			
		

> > wenn du in einem Java-Forum fragst, wird dort PHP das beste
> 
> 
> Den Satz mag ich  RAUS! *auf Tür zeig*
> ...


*gg*
da hatte ich nun einen freudschen Versprechen :lol:
Achso, das Problem mit dem freudschen verschreiber wbei variablennamen kannst du geschickt lösen, in dem du das error_reporting auf E_ALL stellst, denn dann werden alle variablen die genutzt werden und nicht initialisiert wurden als PHP-Notice-Meldung ausgegeben (da lernt man dann mal sauberes Programmieren)




			
				Noctarius hat gesagt.:
			
		

> Abseits davon: Hatte PHP 4 nicht auch schon OOP Züge? (ich hab zwar mal kleinere Dinge in PHP gemacht, aber nichts Grosses) :lol:


ja es war möglich, aber eine Klasse war nicht viel mehr als ein lokaler Variablen und Funktionsnamen raum in dem es nur public Variablen/Attribute gab. Also große System ließen sich mit PHP4 zwar auch erzeugen, aber ich fand die "Objektorientierung" absolut verkümmert und unbrauchbar, mich wundert, dass flickr immernoch PHP4 nutzt.



Wegen dem Problem der Planung, ja, es ist wirklich so, dass bei Web-Anwendungen kaum geplant wird, auch UnitTesting ist da scheinbar ein Fremdwort, ich glaube, dass sind diese Firmen, die ein Projekt erstellt haben, verkaufen und vom Kunden nie wieder etwas hören, und das Projekt nie groß geworden ist. Denn sobald man einmal eine alte Anwendung massiv aufmöblen musste, weil vieles neues rein sollte wird man den Sinn erkannt haben.

*Also mal wirklich ein großes Lob an dieses Forum, in anderen Foren wäre ich für meine pro-PHP-Stellung zerrissen worden, da wirklich danke an euch für eure Toleranz.*


----------



## AlArenal (27. Aug 2007)

ice-breaker hat gesagt.:
			
		

> ja es war möglich, aber eine Klasse war nicht viel mehr als ein lokaler Variablen und Funktionsnamen raum in dem es nur public Variablen/Attribute gab. Also große System ließen sich mit PHP4 zwar auch erzeugen, aber ich fand die "Objektorientierung" absolut verkümmert und unbrauchbar, mich wundert, dass flickr immernoch PHP4 nutzt.



Drupal benutzt gar keine PHP-OO-Sprachfeatures und ist dennoch objektorientiert..


----------



## ice-breaker (27. Aug 2007)

AlArenal hat gesagt.:
			
		

> Drupal benutzt gar keine PHP-OO-Sprachfeatures und ist dennoch objektorientiert..



hmm, also so wie ich das eben überflogen habe, besteht die "db-klasse" nur aus reinen funktionen ohne klasse und sonst auf objekten wird direkt public über die var zugegriffen, also als OOP würde ich das net bezeichnen, da es gegen das Geheimnisprinzip (Kapselung) verstößt.

Aber streiten brauchen wir uns darum doch überhaupt nicht  Es gibt längst ordentliche Objektorientierung also können wir zufrieden sein, es dankbar annehmen und nutzen


----------



## AlArenal (27. Aug 2007)

http://api.drupal.org/?q=api/file/developer/topics/oop.html/5.0


----------

