My trip down the rabbit hole

By Apache on Wednesday 31 March 2010 22:58 - Comments are closed
Categories: Flex, Geekstuff, Java, Life, Work, Views: 2.778

Hello everybody,

Since what you can read below is merely meta-data about how I arrived at the subject of my blog. It probably won't be very interesting, except if you want some background info on how I ended up being a flex-guy. Feel free to skip ahead to my next blogpost immediately.
Since this is my first blogpost on tweakblogs and my previous blog has been at least 5 years ago, I used to blog about php/css/js and how they related to a little hobby project I had back in the days. Other than just an introduction it will help you understand where I am coming from and how I ended up here, writing about something called "flex". And with the release of flex 4 the timing seems right to highlight some of the features.
The first steps
Almost 10 years ago, inspired by reading /14 on got, I started messing about with PHP to have some dynamic content on my website. Then at school we had to build a project so I decided to do what everybody was doing at that time, I built my own forum-software. That inspired a me to develop a silly little framework, the big hype back then was templating engines to seperate layout from business logic. This was already better than echo'n code in php, but it still wasn't component based, so a good friend and co-developer Yannick Houbrix and I did some experiments on mixing components and templates.

With limited results such as these.

What I had learned so far:
  • PHP was not without flaws
  • Most of the frameworks available for PHP were immature at that time
  • Everybody wanted to invent his version of the wheel
  • Using html, & javascript to write "components" is painful
  • Just reloading to see your result is fun, quick and keeps you "agile"
School: time for experimenting
At school we started with some other languages, pascal, C, vb6, cobol, etc but later the focus shifted more towards java and it's frameworks like swing, jdbc, hibernate, spring, .. I remember that we got lucky with that one because spring was really becoming popular in those days.

For my internship the same friend as I worked on the php framework with and I, got a great chance to develop an eclipse RCP application, and it was my first experience with real use-cases and the UI's and custom components they require. I really like the SWT/JFace combination. It worked more intuitive than the swing TableModel (try setting a default column width) and overall it was pretty painless even though everything was new to us (and we had nobody to guide us during development since they had no in-house java-devs).

Again some valuable conclusions for myself.
  • Java is what I want, has more language features that I was missing before
  • There are some really nice mature frameworks based on nice ideas (object relational mapping, dependency injection, etc)
  • Building UI's and custom components is actually kinda fun
  • SWT/JFace had nice UI concepts such as data providers, label providers, ... they form a nice layer between the ui and the domain
  • Deployment/updates are easier to deploy on the web
I think you can conclude that I like to try new technologies, new frameworks, it's my passion. But since there is more demand for webapps than client apps on the professional market I went looking my dream stack.
Starting as a "consultant" & "The Dream Stack"
On the server-side I was already pretty hooked on java/spring/hibernate, although it doesn't need to be spring or hibernate specifically, but the basics I want is an orm and a di framework (other frameworks are added if the requirements warrant them). The ui technology was more difficult. I did some JSF@school but that definitely couldn't convince me, we mostly blamed the "young" age of the technology, it was the apache myfaces first release, but as time would tell it didn't change much.

I started a project where I was trusted with picking the stack so I gave GWT a try, and I have to say, the basic idea is fine, gmail was already there and many developers where dreaming of creating ajax apps as nice as gmail. But when I started looking for some components what I basically found were wrappers around existing html/javascript/css components, I know that now there are more native GWT components but at that time, it was a bit disappointing but already better than doing things manually.

And then when I started at my first "real" job as a java consultant, I was lucky enough to come into contact with a great flex-developer, and they actually gave me a chance to play around with flex and before I knew it I was working on a Java/spring/jpa/flex3 project (using graniteds as a remoting solution, but more on that in a later blogpost)
What to expect?
And this is where my next post will start, explaining in detail some of the strong points of flex, that imho make it stand out from other UI frameworks. I am sure there will be room for discussions like "flex vs html5" and "the flashplayer is a tool of satan". I have already converted some colleagues to using flex, and I have many others asking me for a tutorial in flex, or some extra explanation, and this is one of the major reasons of starting this blog. Not that there aren't plenty of good flex resources already, but I as soon as I get passed the basics in the first 3-4 posts, so I can refer to my earlier posts with more advanced themes like remoting (and the implications that arise when using orm/proxies/lazy-loading), some common ui usecases, some example apps and hopefully you readers will supply me with some questions/point of views that I can write about. , I will go on to the nice and funky stuff that isn't so obvious :)

And it doesn't have to be "just flex", sometimes I have funny stories about my life as well.

Btw: the reason why I chose have an English blog, I work in Brussels and I have some nice French speaking colleagues, so this is a nice compromise ;)