Friday, November 17, 2006

Einmal Java und zurück / 3

Jetzt schon der zweite Nachtrag zu Einmal Java und zurück / 1, weil mir jetzt noch Camping, a Microframework von Why the Lucky Stiff eingefallen ist. Ja, so kann man Webapplikationen auch machen:
Camping encourages short, elegant applications. In this example, we're going to skip the database and put together a simple home page with a few of your favorite links.
Ja, das will ich ausprobieren:
This tutorial is five pages long and takes about ten minutes. By the end you should have a little Camping site up. The last couple of pages is all database stuff, so you can quit a little early if you won't be using a database.
Zehn Minuten hat es bei Appfuse gedauert, bis alle Tests durchlaufen waren....

Einmal Java und zurück / 2

Und nach einigen Tagen intensiverer Beschäftigung mit Java, siehe Einmal Java und zurück / 1 dann noch auf den Weblog von Zed Shaw gestoßen, der meinem diffusen Unbehagen bereits wunderbar Ausdruck verliehen hatte:
"The experts will then saunter off to implement their Flaming Tower of Babel without any comments, horribly complex mock enabled tests, making sure EVERY SINGLE CLASS HAS AN INTERFACE, and ending every class with “Impl” because, well, that’s the best practice."
Ja, "Impl" hatte ich auch genug gelesen, und "Dao" und "Service", und Interfaces gab es auch jede Menge! Obwohl mich das Komplizierte durchaus auch schon beeindruckt hatte:
"What I notice is that my peers are progressing to more and more complicated and convoluted designs. They are impressed with the flashiest APIs, the biggest buzzwords, and the most intricate of useless features. They are more than happy to write endless unit tests to test their endless refactoring all the while claiming that they follow XP’s “the simplest thing that works” mantra."
Und ich stellte mir schon insgeheim die Befriedigung vor, das womöglich zu verstehen und zu durchblicken.... (Ich! Im Gegensatz zu allen anderen natürlich.) und hatte direkt vergessen, dass es anders, dass es vielleicht auch einfacher gehen könnte:
"I used to be this way. I used to love complicated designs and read everything I could about complicated technologies. But as I get more experienced and “older” as a programmer I find complex things just annoying. They aren’t a mental challenge to understand anymore, they are just irritating. I’ll pick apart the flashy crap, boil down the technology to its essence and then come up with a much simpler design for the task at hand almost every time."
Hhhmmm. Vielleicht sollte man es doch simpel versuchen...

Einmal Java und zurück / 1

Mit gehörigem Ehrgeiz habe ich mich in den letzten Tagen auf eine Expedition in das Javaland begeben. Ach, was heißt Java, es sollte schon Webentwicklung mit JSF, Spring, Hibernate, und Best Practices, und, und... sein. Verheißungsvoll wie das Springframework (Booohh!):
"As the leading full-stack Java/J2EE application framework, Spring delivers significant benefits for many projects, reducing development effort and costs while improving test coverage and quality."
Oder Hibernate (Aaahhh!)
"Hibernate is a powerful, high performance object/relational persistence and query service. Hibernate lets you develop persistent classes following object-oriented idiom - including association, inheritance, polymorphism, composition, and collections."
Was war dann noch? Ach ja, JavaServer Faces Technology (Oooohhh!)
"JavaServer Faces technology simplifies building user interfaces for JavaServer applications. Developers of various skill levels can quickly build web applications by: assembling reusable UI components in a page; connecting these components to an application data source; and wiring client-generated events to server-side event handlers."
Schon ein bisschen viel Technologien auf einmal, aber dafür gibt es AppFuse: Simplifying Java Web Development (Holla!):
"AppFuse is an application for "kickstarting" webapp development. Download, extract and execute ant new to instantly be up and running with a kick-ass Java webapp running on Tomcat/MySQL. Uses Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, jMock, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (Spring MVC, WebWork, Tapestry and JSF are also options)."
Und im bekam das sogar noch geregelt! Java, Eclipse, MySQL, Ant, Appfuse, Tomcat, stundenlang heruntergeladen, installiert, konfiguriert, dann "ant new", minutenlang werden Hunderte von Dateien erzeugt, die automatisierten Tests laufen dann fast 10 Minuten, bis der Tomcat alles gestartet hat, oijoijoijoi!, aber es geht!!, es geht wahrhaftig!!!, jetzt muss ich mich doch nur noch ein wenig in die erzeugte Applikation reindenken, und dann weiterentwickeln, und gut ist, oder?

Ab da machte sich langsam Ernüchterung breit..., wo ist da jetzt Spring? Wo ist Hibernate? Und wie spielt das zusammen? Wie verteilen sich jetzt die Aufgaben zwischen UserDao.java, UserDaoHibernate.java, User.java, UserManager.java und UserManagerImpl.java? Wo ist das wie verdrahtet?

Und ich merkte, wie ich immer unwilliger und gereizter wurde ob der kryptischen Namen, der komplizierten Sachverhalte, dieses - auf jeden Fall für mich - undurchschaubaren Wirrwarrs und Sammelsuriums an Klassen, Jar-Files und XML-Konfigurationsdateien. Und mich erfasste eine leise Sehnsucht nach simpleren, überschaubareren Lösungen! Ach, stimmt, da war doch was, ausgerechnet im Weblog eines der Väter von JSF, der JavaServerFaces, David Geary werde ich daran erinnert:
"Why is development with Rails so much faster than with JSF, Tapestry, Struts, or whatever? The single biggest reason is zero turnaround time. You make changes to your application, refresh the browser, and voila, instantaneous feedback."
Ja, Rails war da noch. Ruby on Rails.Und was muss ich dann noch auf der Webseite dieser Entwickler aus Hamburg, die eine "JSF-Spring-Bridge" entwickelt hatten, lesen:

Wir entwickeln inzwischen mit Vorliebe Web-basierte Applikationen auf Basis von Ruby on Rails. Wegen

  • des klaren Designs,
  • der eleganten Implementierung innovativer Konzepte und vor allem
  • der enormen Produktivität für den Entwickler

halten wir Rails für eine der wesentlichen Innovationen der letzten zehn Jahre im Bereich Webapplikationen.

Da war ich fast schon ein wenig angefressen....

Thursday, November 16, 2006

Ich weiß auch nicht...

Ich weiß auch nicht, es wollen mir keine Fotos mehr gelingen, für das Weblog habe ich auch keine rechten Ideen mehr, was ist nur los? Ob das mal wieder anders wird? Hoffentlich!