Jan 22
Ein Neubeginn
Nun, über ein halbes Jahr habe ich mich jetzt mit Softwareentwicklung und Objektorientierung beschäftigt. Immer im Hinterkopf meine Browsergame Idee gehalten und festen Glauben in PHP in Verbindung mit viel JavaScript im Browser gehalten. In diesem Moment, da ich versuche mir alles schön herzurichten um wirklich loszulegen, springen mir die Schwierigkeiten mit PHP nur so entgegen.
Zuerst suche ich eine geeignetes Test-Framework, am besten BDD getrieben. Für JavaScript wimmelt es nur so von solchen Frameworks: Screw.Unit, jsspec, jspec, inspec etcetc. PHP bietet genau eines: PHPSpec, dessen Projekt vor über einem Jahr eingeschlafen ist. So bleibt nur noch PHPUnit, welches nicht wirklich BDD zulässt.
Okay, also mache ich mich daran meine IDE einzurichten und ein paar Klassen anzulegen. Netbeans stellt sich aber als sehr schwachbrüstig heraus, was Refaktorisieren in PHP angeht. Die Java Aufgaben für die Uni habe ich mit Eclipse gelöst, daher ist das mein nächster Anlaufpunkt. Naja, Eclipse ist auch nicht viel besser, aber moment, da gab es doch Zend Studio für Eclipse, das mich früher schon mehrfach enttäuscht hat, als es nach Version 5.5 mit Eclipse vereint wurde. Mittlerweile ist es allerdings in Version 7.1 und bittet seine Nutzer doch von 5.5 umzusteigen. Gut, denke ich mir, vielleicht ist es wirklich besser geworden.
Fehlanzeige, Zend geht seit Version 6.0 den Bach runter, die neue Version untstützt nichteinmal Drag and Drop von Text im Editor, ohne das kann ich einfach nicht arbeiten. Wieder runtergeschmissen (das dritte Mal, ich glaub nicht, dass ich das so schnell wieder versuche).
Nun steh ich da, mit dickem Hals auf PHP. Je mehr ich darüber nachdenke finde ich nur Nachteile, weil ich an PHP festhalten will, um irgendwann einmal eine Referenz zu haben und das Spiel auf jeden Webspace klatschen zu können. Nun, das muss nicht sein, wieso all diese Schwierigkeiten in Kauf nehmen, nur um dann einen Haufen Kinder am Hals zu haben die mit der Objektorientierung nicht klar kommen.
Wenn ich mich jetzt gegen PHP entscheide stehen mir plötzlich alle Möglichkeiten offen: Python, Java, … Aber ich weiß etwas besseres:
JavaScript serverseitig! Damit muss ich auch nicht mehr Code duplizieren wenn ich reiche Funktionalität im Browser haben will, weil ich die gleichen Scripte, die auf dem Server laufen, auch im Browser laufen lassen kann (gut, mit ein paar Feinheiten), trotzdem ist das viel besser, als den Code in PHP und JS duplizieren zu müssen.
Nun habe ich die Wahl, JavaScript serverseitig ist mittlerweile mit einigen verschiedenen Grundsystem möglich. Aptana Jaxer bietet sich an, da ich die IDE bereits für JavaScript nutze. CouchDB wäre mal ein interessanter Ansatz.
Insgesamt wird das ganze um einiges Noob-feindlicher, was aber sowieso schon zur Debatte stand.
Weitere Infos kommen, sobald ich mich entschieden habe.
Edit: Ich habe den Artikel eine Woche zurückgehalten, um nicht irgendwelche voreiligen Entscheidungen in den Raum zu stellen.
Seitdem wurde ich weiter enttäuscht: Mein Favorit Aptana Jaxer scheint nicht mehr wirklich gepflegt zu werden – in der IDE lässt es sicht nicht mehr installieren, auf der Aptana-Seite ist es verschwunden und auf jaxer.org sind bereits einige Links tot. Schade, das Projekt sah vielversprechend aus.
Alternativen gibt es zum Glück genug, bisher sieht Myna am vielversprechendsten aus. Ich habe die Entscheidung allerdings ein wenig verschoben und schreibe vorerst die Clientseite und verlagere danach Elemente nachträglich auf den Server.
Insgesamt beabsichtige ich einen sehr fließenden Ablauf im Browser zu erreichen. Die Ajaxabfragen werden dann im Hintergrund ausgeführt, nach Möglichkeit unabhängig von der momentanen Aktion des Users, damit es nicht zu Wartezeiten kommt.
Januar 30th, 2010 at 20:53
Ich hoffe, Du entscheidest dich für Java. Nachdem ich mich ein Jahr intensiv damit beschäftigt habe, möchte ich PHP auch nicht mehr gerne anfassen 😉 Der einzige Grund, der mich bisher abgehalten hat ein JNova (ernsthaft) zu starten ist, daß ich eher ein Team-Player bin…
Januar 30th, 2010 at 21:51
Ich habe Java an der Uni und sehe die Vorteile, die diese Sprache bietet. Mir gefällt aber die Protoypen Idee in JavaScript und ich sehe einen großen Vorteil darin Scripte auf Client- und Serverseite verwenden zu können. Zudem halte ich mir für Java alles offen, wenn ich ein Framework auf Rhino Basis verwende. Sobald es zu Performanceproblemen kommt lässt sich somit umsteigen.
Februar 7th, 2010 at 23:06
Igitt, Java, unmengen von unschönen statischen Definitionen etc.
Dann doch schon lieber bei php bleiben oder auf schönes Python umsteigen 🙂
Mit Jaxer ist es in der Tat komisch, habe das mir vor geraumer Zeit mal geladen, aber als eclipse-plugin… Nur kann ich nicht wirklich viel mit eclipse anfangen, ich brauch einfach nur ein kleines schnelles Programm^^
Bezüglich der Datenbank scheint mir CouchDB/MongoDB/… für viele Dinge aber aus meiner Sicht nicht so geeignet, da es ja nur nach dem Key-Value prinzip funktioniert und somit nicht immer ohne gewissen Overhead in der Programmiersprache genutzt werden kann
Insgesammt ist es aus meiner Sicht immer schön, wenn man mit Adaptern/Interfaces etc. als Layer über dem eigentlichen System arbeitet, da man da dann recht bequem das an die eigenen gegebenheiten anpassen kann (man kann es dabei trotzdem richtig schön noob-feindlich machen ;))
Februar 8th, 2010 at 20:54
Hast du mal gesehn wie gut man Java mit Eclipse/Netbeans refaktorisieren kann? Und das vor allem weil es statisch ist.
Ich setze aber auf JavaScript, Python/Ruby sind auch sehr schön, geben mir aber nicht die Möglichkeit client- und serverseitig die selbe Sprache einzusetzen. Browser sprechen nunmal JavaScript.
CouchDB habe mir auch nochmal näher angeschaut, wäre aber nicht in der Lage ohne eine zweite relationale Datenbank zu arbeiten und habe das deshalb auch wieder verworfen.
Einen Layer kannst du übrigens nur sehr schlechte über die Abstraktion Datenbank (Relational+Dokumentorientiert) spannen, da heißt es entweder oder. Für verschiedene Datenbanken wie Postgres/MySQL wird es natürliche eine Abstraktion geben, ich weiß aber noch nicht ob ich mich auf Stored Procedures verlegen will, dann wird das alles an einen Datenbanktyp gebunden.
März 18th, 2010 at 15:29
Wieso nimmst Du nicht Assembler wenn Du Noobs ausschließen möchtest? Egal, irgendwie erinnerst Du mich an mich selbst. Viel zu viel Perfektionismus um in absehbarer Zeit fertig zu werden. ^^
März 18th, 2010 at 18:33
Assembler ist nicht der richtige Ansatz, aber ich denk das weißt du selbst ;D
Perfektionismus… ja. Schon oft genug hab ich das wegen diesem Trieb alles verworfen. Momentan bin ich aber auf der richtigen Spur 😀