• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Umfrage: Für neuartiges Shopsystem

Also das scheint doch nur auf´den ersten Blick schneller, in Wirklichkeit ist
es doch so, das jedes dieser einzelnen System für sich alleine laufend
entwickelt wurde. Da braucht jedes Teil ein Backend, die Sessions und
Varaiblen sond ganz unterschiedlich. Die Webservereinstellungen die bei
der einen Version noch fuktionierten, gehen dann im Zusammenspiel mit
den Rest Fragmenten nicht. Das eine setzt schon ganz modern auf
Unicode, OOP und PHP5 und MySQL, das andere ist wie es üblich
ist noch MySQL 3.x /4x lastig.. Du erkennst das Problem oder?
Du hast zwei .wars, das eine setzt auf JRE 1.3 und das andere auf 1.5 auf. Das eine nutzt eine MySQL Datenbank mit spezifischen SQL-Befehlen, das andere setzt Oracle OCI mit transparent Failover und nativem Connection Pooling (weil sonst kein Failover) ein. Jetzt führ die beiden mal zusammen. Du erkennst das Problem oder?

Mit hat mal so ein Stratege den Auftrag gegeben XT Commerce und
seine bereits über zig tausend Zeilen PHP Code über mehrere Jahre
gewachsene Codestruktur zu verheiraten. Anfroderung, bau das
mal da ein und mach das Multimandantenfähig. Davor haben sie
es 2 Jahre schon bergeblich mit vorherigen Mitarbeiten und auch
hochbezahlten Externen versucht. Alles mist, sowas geht selten
gut. XTC wird seid 1999 entwickelt, kannst Dir ja schon denken wie
viele Hacks da drin sind (ca 70.000 Zeilen Code).
Mir fehlt hier irgendwie der Zusammenhang, zwischen diesem Beispiel und Deiner blinden Java-Lobhudelei. Das genannte Beispiel funktioniert doch genauso mit - über die Jahre gewachsenem - Java Code gleicher Größenordnung.

Ich gehe so vor:
1.Minimaler Prototyp der Modulartig angelegt wird
2.Dann das nächste Modul und irgendwann steht das Basesystem
3.Sobald das Basesystem steht, kann man die Mechanismen schon
nutzen und wird automatsich schenller.
4.Und da das ganze in Java läuft ist man auch noch produktiver
Je größer und komplexer, desto schneller entwickelt es sich und mit Java ist man auch automatisch produktiver.
Ich lass das mal so stehen, aber wenn Du codest, wie Du schreibst, dann gute Nacht.
 
Zuletzt bearbeitet:
Du hast zwei .wars, das eine setzt auf JRE 1.3 und das andere auf 1.5 auf. Das eine nutzt eine MySQL Datenbank mit spezifischen SQL-Befehlen, das andere setzt Oracle OCI mit transparent Failover und nativem Connection Pooling (weil sonst kein Failover) ein. Jetzt führ die beiden mal zusammen. Du erkennst das Problem oder?

So lange es sich bei dem Treiber um den ThinClient Driver von ORACLE
handelt (den ORACLE auch ausdrücklich empfiehlt) ist das kein Problem.
Wenn es der Class 2 oder Class 3 JDBC Driver ist, ist es normalerweise
auch kein Problem, da man sich immer noch im JDBC API bewegt.
Haarig wird es dann, wenn JINI Libs, die Native aus der JRE rauslangen
und mit dem Betriebssysten verquickt sind ins Spiel kommen. Das ist aber
nicht der Weg wie es laufen sollte. Der Normale DB Zugriffstreiber
verbindet sich via Java Socket System nach draussen und ist
selnst 100% pure Java Code. So lange diese Spielregeln beachtet
werden (was der Standard ist) hat man keine Probleme.


by the Way; Javs 1.3 ist uralt und hat längst den End of Lifecycle
hinter sich gelasssen. Wer solch unsupportetes Zeugs einsetzt
(in der Gegenwart) ist wohl selber schuld. Aktuell ist Java 1.6
und bald mit OpenJDK Java 1.7 also Java 7.

Je größer und komplexer, desto schneller entwickelt es sich und mit Java ist man auch automatisch produktiver.
Ich lass das mal so stehen, aber wenn Du codest, wie Du schreibst, dann gute Nacht.

Du bist mit Java, bei steigender Komplexität deshalb schneller, weil der
Code wartbarer bleibt, besser strukturiert und lesbarer ist und besser
debugbar und profilebar. Ein PHP Programmier hat den Browser zu Fehlersuche, der Java Entwickler einen ausewachsnen Debugger der genau
zeigr was zur Laufzeit im Code passiert und welche Variable mit welchen
Wert belegt ist.

Ist doch klar das es schneller ist.
 
Ist doch klar das es schneller ist.
Allenfalls interessant die Resultate des Plat_Forms Contest
Results — Plat_Forms

Du hast Dich für eine bestimmte Technik entschieden, das ist ok.
Durchaus interessant dürfte allerdings die Frage sein, wo Du ansetzt: Ich nehme an, Du hast ein Framework im Kopf wie bspw. Struts oder JSF(ich nehme nicht an, dass Du von Null auf einem Servlet aufbaust)? Und falls Du alles neu erfinden musst/möchtest: Welche Ideen nimmst Du für Dein Projekt mit? (Mit Java mag man einen unverhältnismässig hohen Schreibaufwand betreiben, zum Studium, was es für Design Patterns gibt und wie diese vernünftig (oder auch nicht) angewendet werden, bietet bereits das JDK eine Fülle an Material).

Die Wahl eines geeigneten Frameworks und die Auswahl geeigneter Pattern dürfte Deine Produktivität erheblich beeinflussen - die Sprachwahl allein hat für mich dagegen untergeordnete Bedeutung.

EDIT:
by the Way; Javs 1.3 ist uralt und hat längst den End of Lifecycle
hinter sich gelasssen. Wer solch unsupportetes Zeugs einsetzt
(in der Gegenwart) ist wohl selber schuld.
Die Informatiker-Binsenweisheit, dass Programmcode u.U. länger lebt, als Dir lieb ist, kennst Du schon, oder?
 
Zuletzt bearbeitet:
So lange es sich bei dem Treiber um den ThinClient Driver von ORACLE
handelt (den ORACLE auch ausdrücklich empfiehlt) ist das kein Problem.
OCI != Thin

Wenn es der Class 2 oder Class 3 JDBC Driver ist, ist es normalerweise
auch kein Problem, da man sich immer noch im JDBC API bewegt.
Haarig wird es dann, wenn JINI Libs, die Native aus der JRE rauslangen
und mit dem Betriebssysten verquickt sind ins Spiel kommen. Das ist aber
nicht der Weg wie es laufen sollte. Der Normale DB Zugriffstreiber
verbindet sich via Java Socket System nach draussen und ist
selnst 100% pure Java Code. So lange diese Spielregeln beachtet
werden (was der Standard ist) hat man keine Probleme.
Außer denen, dass im Code Referenzen auf Spezialfunktionen (transparent Failover, Connection Caching, Statement Caching, usw.) und für das jeweilige andere DBMS inkompatible SQL Statements drin sind.

by the Way; Javs 1.3 ist uralt und hat längst den End of Lifecycle
hinter sich gelasssen. Wer solch unsupportetes Zeugs einsetzt
(in der Gegenwart) ist wohl selber schuld. Aktuell ist Java 1.6
und bald mit OpenJDK Java 1.7 also Java 7.
Egal, ob Dir das in den Weg passt oder nicht. Erzähl mal Deinem Großkunden, dass seine vor 7 Jahren entwickelte und immer noch tadellos laufende Applikation voll Grütze ist und er sich mit solch unsupportetem Zeugs doch selbst ins Knie schießt. Anders als in Deiner Fantasie gibt es Software die über mehrere Jahre läuft, supportet und erweitert wird.
Vergleiche das mal mit Deinem Beispiel über XT Commerce.

Ich kann es gerne nochmal wiederholen, denn die eigentliche Kernaussage hast Du immer noch nicht begriffen (wie auch Dein nachfolgener Auswurf deutlich macht):
Schlechten Code kann ich mit jeder Programmiersprache schreiben. Manche Sprachen sind zwar restriktiver als andere, aber das ist für viele "Künstler" kein Hinderungsgrund. Der bloße Einsatz einer Technologie / Plattform / Programmiersprache hat _keinen_ Einfluß auf die Qualität des Codes.
Anders ausgedrückt: A fool with a tool is still a fool.

Du bist mit Code, der besser strukturiert und lesbarer ist, bei steigender Komplexität deshalb schneller, weil er wartbarer bleibt, und besser debugbar und profilebar.
Ich habe Deinen Humbug mal für Dich umgeschrieben.
Du siehst ohne Java macht der Satz mehr Sinn.

Ein PHP Programmier hat den Browser zu Fehlersuche, der Java Entwickler einen ausewachsnen Debugger der genau
zeigr was zur Laufzeit im Code passiert und welche Variable mit welchen
Wert belegt ist.
Soso für PHP gibt es also keinen Debugger. Wozu hat Eclipse dann eine PHP Debug Perspektive? Vielleicht so als Placebo? Oder als Platzhalter, falls mal jemand einen PHP-Debugger erfindet?
Dein Halbwissen ist auch nicht von schlechten Eltern.
 
OCI != Thin

Außer denen, dass im Code Referenzen auf Spezialfunktionen (transparent Failover, Connection Caching, Statement Caching, usw.) und für das jeweilige andere DBMS inkompatible SQL Statements drin sind.

Wer zig tausend EUR für eine ORACLE Lizenz ausgibt, der weiß in der
Regel auch, wenn er sowas benutzt, das er sich auf properitären
Gebiet bewegt und muss sich dann doch nicht wundern wenn seine
Applikation nur mit ORACLE läuft. Es gibt sehr gute freie distributed
DB und Failoverpackages die mit 100% pure Java arbeiten wie z.B
Sequoia die sogar einen Mix aus verschiedenen RDBMS zulassen.

Egal, ob Dir das in den Weg passt oder nicht. Erzähl mal Deinem Großkunden, dass seine vor 7 Jahren entwickelte und immer noch tadellos laufende Applikation voll Grütze ist und er sich mit solch unsupportetem Zeugs doch selbst ins Knie schießt.

Die Großklunden die ich kenne haben meistens eigene IT-Abteilungen und
die sind in der Regel sehreinsichtig und stimmen einem Upgrade unter
Einhaltung bestimmter Releasebedingungen meist zu.

Anders als in Deiner Fantasie gibt es Software die über mehrere Jahre läuft, supportet und erweitert wird.
Vergleiche das mal mit Deinem Beispiel über XT Commerce.

Sagt ja auch keiner was dagegen. Ein Source der auf 1.3 basiert und auf
Standard JRE basierenden Funktionen läuft (was eigentlich immer so sein sollte) wird auch weiterhin laufen (wovon Du gerade sprichst sind übrigens
Java Desktop Applikationen, PHP ist aber nur eine Sprache für dynamsiches
HTML - das ist daher ganz sicher ein Vergleich von Äpfel mit Birnen).

Ich kanns nur wiederholen: Wer meint es muss mit "Gewalt" unstadardisierte
Native Verquickungen zum Betriebssystem zu bauen, der ist selber schuld.
SUN hat schon immer davon ageraten sowas zu machen und in jedem
Java Handbuch wird davor gewarnt. Es kann also keiner sagen, daß
er nicht wüßte was er da macht, er weiß es in der Regel ganz
genau, sich also darüber beschweren das es in späteren JRE's irgendwie
poblematisch wird ist wohl handfestes Eigenverschulden und kein
Java spezifisches Problem. Ich muss mich auch nicht wundern, wenn
ich meinen C Source auf AMD64 anpasseund das Programm dann auf
einem Intel nicht mehr läuft.

Ich kann es gerne nochmal wiederholen, denn die eigentliche Kernaussage hast Du immer noch nicht begriffen (wie auch Dein nachfolgener Auswurf deutlich macht):
Schlechten Code kann ich mit jeder Programmiersprache schreiben. Manche Sprachen sind zwar restriktiver als andere, aber das ist für viele "Künstler" kein Hinderungsgrund. Der bloße Einsatz einer Technologie / Plattform / Programmiersprache hat _keinen_ Einfluß auf die Qualität des Codes.
Anders ausgedrückt: A fool with a tool is still a fool.

Da gebe ich Dir recht.

Soso für PHP gibt es also keinen Debugger. Wozu hat Eclipse dann eine PHP Debug Perspektive? Vielleicht so als Placebo? Oder als Platzhalter, falls mal jemand einen PHP-Debugger erfindet?
Dein Halbwissen ist auch nicht von schlechten Eltern.

Das ist ja wohl kein Anständiger, objektorientierter Debugger wie im
Fall von Java, Und nur weil Eclipse ein Fenster ambietet, das die Parser
und Laufzeitfehler sturkturierter ausgibt, kann man wohl kaum von einem
richtigen Debugger sprechen. Vor allem da PHP ein native gelinktes Modul ist.
Um sowas vernünftig debuggen zu können, bräuchtest Du den passenden
C Source, sämmtliche Header oder alternative zur verwendeten Version
die Debug Symbols, damit Du auch siehst wie deine Expressions in die
Internen Strukturen von PHP verarbeitet werden.

Bei Java ist das völlig anders. Jeder 100% Compliant JVM hat Debug
Agents Connectoren die in die JVM schauen und detailliert berichten
welcher Thread wo, was gerade macht. Du siehst sogar, wo eine Endloss.
schleife oder ein Deadlock entsteht und kannst Code ändern und
mit repat fortsetzen.
 
Wer zig tausend EUR für eine ORACLE Lizenz ausgibt, der weiß in der
Regel auch, wenn er sowas benutzt, das er sich auf properitären
Gebiet bewegt und muss sich dann doch nicht wundern wenn seine
Applikation nur mit ORACLE läuft. Es gibt sehr gute freie distributed
DB und Failoverpackages die mit 100% pure Java arbeiten wie z.B
Sequoia die sogar einen Mix aus verschiedenen RDBMS zulassen.
Ursprünglich ging es darum zwei verschiedene Java-basierte-Applikationen zu einem Gesamtwerk zu verquicken, als Gegenargument zu Deinem, durchaus berechtigten, Einwand, dass es nicht so einfach ist verschiedene Systeme miteinander zu kombinieren. Nur Du beziehst dies vollständig auf PHP und mit Java ist es in Deiner rosa Welt überhaupt kein Problem gleiches spielend zu bewerkstelligen. Dabei gehst Du gar nicht auf die eigentliche Problematik ein, sondern hängst Dich an Minimalitäten oder Randbedingungen auf, die in meinem Beispiel nunmal vorgegeben sind (so konstruiert sie auch klingen mögen). Es ist ja schön dass es die Schuld des Kunden ist, dass er auf alten Mist oder proprietäre Techniken aufsetzt, aber Du bist doch derjenige, der alles als easy und mit "Java keine Problem" abtut. Bringt man dann aber ein gleichwertiges Beispiel auf Java-Basis, kneifst Du.

Die Großklunden die ich kenne haben meistens eigene IT-Abteilungen und
die sind in der Regel sehreinsichtig und stimmen einem Upgrade unter
Einhaltung bestimmter Releasebedingungen meist zu.
Die Einsichtigkeit mag durchaus vorhanden sein, nur können andere Gründe, wie z.B. Produktionsausfall durch geplante Downtime, schwerer wiegen. Und wenn das Aufrüsten eines Datenbankclusters auf das neueste Patchlevel länger dauert, als ein produktionsfreies Wochenende Zeit bietet, dann bleibt der Patch eben draussen.

Sagt ja auch keiner was dagegen. Ein Source der auf 1.3 basiert und auf
Standard JRE basierenden Funktionen läuft (was eigentlich immer so sein sollte) wird auch weiterhin laufen
Genauso wie Code, der mit PHP3 geschrieben wurde, auch heute noch laufen kann.


(wovon Du gerade sprichst sind übrigens
Java Desktop Applikationen, PHP ist aber nur eine Sprache für dynamsiches
HTML - das ist daher ganz sicher ein Vergleich von Äpfel mit Birnen).
Dann ist Dein Applikation Server auch eine Desktop-Applikation? Der braucht doch auch eine JRE, oder? Oder ist es für Dich eine Desktop-Applikation wenn ein Stück Software irgendwo im Backend oder als Middleware eingesetzt wird, ohne dass auch nur ein Stück HTML an irgendwelche Endgeräte ausgeliefert wird?
Und mit Software bezeichne ich generell alles, was irgendeine Programm-Logik enthält.

Ich kanns nur wiederholen: Wer meint es muss mit "Gewalt" unstadardisierte
Native Verquickungen zum Betriebssystem zu bauen, der ist selber schuld.
SUN hat schon immer davon ageraten sowas zu machen und in jedem
Java Handbuch wird davor gewarnt. Es kann also keiner sagen, daß
er nicht wüßte was er da macht, er weiß es in der Regel ganz
genau, sich also darüber beschweren das es in späteren JRE's irgendwie
poblematisch wird ist wohl handfestes Eigenverschulden und kein
Java spezifisches Problem. Ich muss mich auch nicht wundern, wenn
ich meinen C Source auf AMD64 anpasseund das Programm dann auf
einem Intel nicht mehr läuft.
Siehe oben. Das Problem ist nicht, dass es problematisch ist, das Problem ist, dass es keine ausschließliche Eigenschaft einer einzelnen Programmiersprache/-Umgebung ist, und dass Du mit Java davor nicht gefeit bist. Deine Abwehrreaktion spricht da Bände.

Das ist ja wohl kein Anständiger, objektorientierter Debugger wie im
Fall von Java, Und nur weil Eclipse ein Fenster ambietet, das die Parser
und Laufzeitfehler sturkturierter ausgibt, kann man wohl kaum von einem
richtigen Debugger sprechen. Vor allem da PHP ein native gelinktes Modul ist.
Um sowas vernünftig debuggen zu können, bräuchtest Du den passenden
C Source, sämmtliche Header oder alternative zur verwendeten Version
die Debug Symbols, damit Du auch siehst wie deine Expressions in die
Internen Strukturen von PHP verarbeitet werden.
Und welche Einblicke würde das Deep-Debugging bis in den Maschinencode bringen? Macht das eigentlich auch Dein Java Debugger, dass der Dich bis in den Maschinencode lässt - dabei meine ich nicht VM oder VM-Code, sondern tatsächlichen Maschinencode, weil das ist es ja, was Du anscheinend von PHP erwartest? Offensichtlich hast Du den PHP Debugger noch nicht wirklich getestet und hast völlig utopische Vorstellungen - die im Übrigen Deine Lieblingssprache selbst auch nicht erfüllt.
 
Dem wiedersprechen 100% garantierte API's
und die Tatsache das Java selber zu 90%
(also die Klassenbibliotheken sammt aller
Funktionen) selber in Java geschrieben sind.

Auch brauch ich mir um das Kompilat keine
Sorgen zu machen, denn die Classfiles lassen
sich auf jeder gleichen oder höheren ohne
Neukompilierung ausführen.
 
Dem wiedersprechen 100% garantierte API's
und die Tatsache das Java selber zu 90%
(also die Klassenbibliotheken sammt aller
Funktionen) selber in Java geschrieben sind.

Auch brauch ich mir um das Kompilat keine
Sorgen zu machen, denn die Classfiles lassen
sich auf jeder gleichen oder höheren ohne
Neukompilierung ausführen.
Thema verfehlt.
 
Um nochmal auf Albu's (vor)letzten Beitrag zu kommen:
PHP-Debugger gibt es fast wie Sand am Meer.

Und zu Dir:
Mittlerweile fängst Du an uninteressant zu werden.
Wenn Du Dein Vorhaben gerne mit Java umsetzen willst, dann tu es!
Anderen Leuten versuchen, Deine Sicht der Welt aufzwingen zu wollen, ist very uncool.
Wenn Du nun ergo genug Input für Deinen Ausgangspost gewonnen hast, wäre es sinnvoll, Dein Vorhaben in die Tat umzusetzen.
Falls Du aber weiterhin hier Dein Geplänkel fortführen möchtest, sei Dir an dieser Stelle versichert: Ich schließe einfach diesen Thread!

Also: Fang an Dein "Meisterstück" zu produzieren!

P.S. Ich bin mit meinem zwiebelbetriebenen Verbrennungsmotor auch noch nicht wirklich weiter gekommen... ;)
 
Naja, wenn Dich das glücklich macht, weil Du sonst keine Existenzberechtigung hast, mach ruhig, mir ists gerade egal. Wenn ich mir das Niveau hier so anschaue verliert man da sowieso nichts.
 
Es klingt wirklich sehr interessant, wie ausgerechnet Du von Niveau schreibst.
Aber es ist ja auch immer einfacher, von etwas zu schreiben, das man selbst nicht hat...
 
Java vs PHP:
Bei Java Application Server kannste Cluster bilden, bei PHP denk ich nicht.
Lass mich da aber gern eines besseren beleeren, da ich von PHP keine Ahnung habe.


Zielpublikum:
- Kleinere werden immer PHP Lösung nehmen
- Ganz grosse wie Otto setzen ja schon seit Jahren Intershop ein
- Bleibt blos der mittlere Bereich


Dauer:
Bei dem genannten Umfang biste echt Jahre drüber.
Hab nen Java Shop für Kunden geschrieben, naja nicht klassischer B2C Shop sondern spezielle Intranetlösung wo Filialen Bestellen, und bis ganz runter selbst codiert.
Setzte nur auf Sun-Software und so ziemlich überall auf aktuellsten Stand: Java 6, GlassFish 2, EE 5, JSF 1.2, MySQL 5
Mit Einlesen, Einarbeiten, Aufsetzen, Codieren, Providerwechsel, Testen bin ich jetzt über 2 Jahre dran.
Läuft zwar schon produktiv, aber schätz mal dauert mindestens noch 1 Jahr bis komplett
 
Bei Java Application Server kannste Cluster bilden, bei PHP denk ich nicht.
Mit dem Apache Server lassen sich schon Cluster bilden (der Apache Server lässt sich ja weitreichend konfigurieren, siehe z.B. Tannenbaums Globe Projekt, das (ursprünglich?) auf Apache aufsetzt, wenn ich mich recht erinnere). XING setzt ebenfalls auf php, die müssen da schon irgendeine Lastverteilung eingebaut haben. Da der Cluster wahrscheinlich einigermassen transparent gestaltet ist, sollte der Programmierer selbst davon nicht allzu viel bemerken.
Unter PHP ist dies insofern ein Problem, da man etwas an der defaultmässig eingebauten Sessionverwaltung schrauben muss, und diese z.B. durch eine Datenbank ersetzt. Dies ist jedoch möglich.

EDIT: Selbstversändlich wird niemand auf die Idee kommen die Software für die Verteilung der Anfragen in php zu schreiben. Das sind dann schon die Bereiche, wo man mit php nicht mehr weiterkommen dürfte.
 
Zuletzt bearbeitet:
Ist eine ganz einfache Sache, sowas erledigt sich von selbst.
Ohne Basis, und Du willst ja komplett neu entwickeln, hast Du allein kaum eine Chance eine solche Software innerhalb akzeptabler Zeit zu erstellen.

Neben der eigentlichen Programmierarbeit ist dabei profundes Wissen um die wirtschaftlichen/abwicklungstechnischen Bereiche absolute Voraussetzung, auch nach erfolgter jahrelanger Entwicklung eines Shopsystem möchte ich mir nicht anmaßen darüber alles zu wissen.

Von den sich ständig ändernden Regelungen von gesetzlicher Seite gar nicht erst zu reden.

Von den sich ständig ändernden Erfordernissen im Marketing will ich erst recht nicht reden.

Ein solches Projekt kann man nur in einem gut aufgestellten Team überhaupt stemmen. Alles andere ist komplett illusorisch.

Dann noch meine Anmerkung zum Thema Java oder PHP.
Den Benutzer interessiert es nicht in was das Ding programmiert ist, nur wenige sind überhaupt in der Lage in einem solchen System weiterzuentwickeln. Die meisten Leute wollen das die Kiste läuft, und das möglichst einwandfrei. Viel wichtiger als irgendwelche technischen Details sind denen das man das System bedienen kann, das man damit Marketing betreiben kann, kurz, das man mit der Software E-Commerce mit angemessenen Umsätzen realisieren kann.

Meist ist es gar nicht die Programmiersprache die die Performance bestimmt, das ist nur ein Faktor. Viel wichtiger ist eine saubere Programmierung, die meisten Systeme haben diesbezügliche Defizite, oftmals im Zusammenhang mit der Datenhaltung, also der dahinterliegenden Datenbank. Eine Optimierung mit Verstand kann an solchen Stellen Wunder wirken.
 
Zurück
Oben