Hello blogging world. I’ve been putting off this first blog post for months and months. I’ve written up multiple unfinished articles but none seemed like the right place to start. Yet my starting point has been in my head all along and I kept looking right past it. So here it is. I’ll start with my adventures in learning Grails coming from PHP.
Before we jump into the subject heres a little background on myself. I’m a software developer with 8 years professional experience and 11 total years experience. Those years have taken me through PERL, ColdFusion, ASP, PHP, JSP/Servlets, ASP.Net and ColdFusion 8 on the web side, C/C++ and Java non-web projects and various other proprietary frameworks and technologies. Somehow I always end up in the web realm and get a bit tired of it and that will be a common theme throughout this blog. In fact it will come up when I explain my attempted exodus from PHP. If you’re wondering about the name of this blog I chose it for two reasons. Much of this will chronicle my adventures in coding overnight since thats mostly when I have time to work on these things. The other is because my wife and I considered sharing this blog as she is a PM/Analyst and we’d talk about topics from both the developer and PM/Analyst side. We’ll see if that second reason ever materializes. ;-)
So where do I begin with why I’m trying to leave PHP? Unlike many of the people I’ve seen leaving PHP I’m not bashing it. I don’t have a big problem with the quirkiness of the language or lack of being a OOP based language as one of my first languages was C and its not much different to me. In fact until now PHP was my platform of choice for the web over all the other platforms I’ve used. In my opinion most complaints about it have come from people seeking “do it all for me” frameworks that may not have the programming skills to do it themselves. I actually fell in love with the Zend framework because it gives you tools to use instead of forcing you to paint by numbers. I think I’m smart enough to be let loose with some coding freedom. :-)
So with all this praising why am I leaving? Well for starters as stated earlier I sometimes get tired of working in the web realm and thats where the goodness of PHP ends. Its great for the web because its built around the web. Outside of the web it doesn’t stack up well. Currently I do a lot of data integration work in Java on my job (which helps with my web boredom) and it would help to be able to share libraries and code across my web and integration projects. Its also been a few years since I’ve done any desktop application work and I’d like to toy around with some. Java isn’t big on the desktop but who knows…maybe I’ll end up pushing that issue one day. Then there’s the mobile market which is becoming hot and I happen to be a fan of the Android OS and I want to do some work in that space as well which centers around Java. In fact I may find my job pushing me into that space anyway. So call it laziness or whatever but I’d like to consolidate some of my work. I’m probably always going to be in the web business but I want that time to also go towards improving my skill set for those other spaces. If you’re connecting all the dots this obviously points to Java.
I like Java for everything except ironically for the web. For one on the web I’ve GOTTA have my dynamic language. I’m too used to it. Having used MVC in one form or another for some time I couldn’t stand the thought of going back to one off JSP’s either. And every MVC framework I looked at seemed to be heavy on wiring components together with XML which I’m not a fan of from experience. Yet Java solved some of the other dislikes I was starting to have about PHP. It has more robust application servers, its a more powerful language and overall feels like less kludgey of a solution. I think it was some database driver issues with Oracle and SQL server that finally put me over the top with kludgeyness. I said to myself if Java could just have the dynamic goodness of PHP I’d switch. Less than a week later a friend of mine tells me about alt.net where I first discover Groovy and of course consequently Grails.
No I did not initially fall in love with Grails and I’m still not quite there. For one its a rather opinionated framework…maybe not as much as others but its still rather locked down to a basic idea of how things should be done. However I did fall in love with Groovy. You couldn’t ask for anything sweeter than a dynamic language integrated so well into Java. You can swap Java and Groovy out both at the code level and at the compiled component level. Its great! So initially I began writing an MVC framework that would work as a simple library that can be used in any Java web project. There would be little forced structure or project setup and you could use pieces as you wanted them. But after doing some looking at Grails I found there was a ton I could learn from the project. The fact that I don’t care for opinionated frameworks doesn’t take away from the fact that the Grails developers have done some great work and incorporated some great ideas into their project. Plus so far its opinionated nature hasn’t got in my way. So I decided to try working with Grails while pulling together ideas possibly for my own less opinionated framework on the side.
So thats where I am and thats where this blog will begin. I’ll talk about my experiences with Grails and my ideas for an alternative framework possibly sprinkled in with my current PHP work. I’ll also get into other non-web projects as I seek to have some fun with other types of software. Some of these projects I’ll hopefully complete and some I know good and well I may never complete. I just start on some of them as learning exercises. So I hope you’ll stay tuned to my overnight coding adventures. I promise all of my posts won’t be so long. ;-)