It’s right here
I have been ranting to my students about Windows again recently. I do this whenever I’m forced to use it. The only thing that makes me use it these days is when I need to get something that I’m teaching working for my poor students who need to use it. This usually results in me playfully getting accused of being biased, of being one of those crazy mac-zealots that has tunnel vision. I usually just laugh it off and say something like, “If you only knew!”
I have finally thought about this enough, at least for now. I have decided that I’m going to create a framework for use in my classes and for any personal java programming I might do in the future. I know, I know, the world really doesn’t need yet another framework. But, this one is a bit different, I promise.
Part of what is driving my quest is how frustrated I have become with trying to create java web applications. My job that takes up most of my time is being a teacher. That doesn’t leave me much time to create private side projects. Whenever I have a great idea for a project that will enhance my teaching experience or just sounds fun I just dread the idea of doing it in java. For years I have wondered if I was the only one. Then my colleague who is the .NET expert in my department mentioned that he was doing a side project in PHP. I thought it was very telling that neither of us wanted to code for fun in our area of expertise. That made me start the search for more coding joy.
This is an EPI-Pen. They come in pairs and this one’s twin saved my life yesterday. I’m allergic to the stings of bees, hornets, and yellow jackets. Yesterday I was about to see a play at an outdoor theater. It was a perfect October day here in Wisconsin, sunny and in the mid-seventies. I was with my family and we were all excited to see a play together. But, we were outdoors in the fall when the yellow jackets are very aggressive and I got stung just 5 minutes before curtain time.
I got a 17” MacBook Pro and it is changing the way I work. My new shiny laptop replaced a 12” PowerBook that I thought was the best computer on the planet. But, with the old laptop I really needed external monitors to get any real work done. I even bought monitors to leave at client sites so that I wasn’t constrained by 1024×768 pixels.
The MBP has 1680×1050 pixels in a 17” screen and this seems to be some sort of optimal sweet spot. I have a friend who has a 15.4” laptop with 1920×1200 pixels and the size of each pixel is just too small. He has to blow up all the fonts in order to use the machine. But, some things can’t be adjusted like that and he is not happy with the computer. He is looking at mine with great envy!
I have an Apple 23” display that is gorgeous and an office in my house that I made myself and an expensive chair to sit in. I just realized that I haven’t been in my office for a couple of weeks. I can now work anywhere. I sit on my bed rubbing my wife’s back while she does homework on her laptop. I sit on the futon in the family room in front of the fire when it is cold. I sit on the couch in the living room waiting for the kid’s bus.
I love this freedom and I love this machine!
The first part of my quest to improve my java development experience is to identify what I like about using java. Here is a brief list.
I like the java programming language. Or, at least after 10 years of coding in it I feel comfortable. I don’t have to look everything up all the time. There is something to say about a mature environment with good tools and lots of libraries.
Writing a JSP page with JSTL is a very nice way to code a dynamic page. The code looks good and is clear.
I have been using and studying SQL for almost 20 years. I think in SQL. After trying every ORM library out there and trying to teach a few I find myself wanting to do my database access in straight SQL.
This is a good tool. I know that James Duncan Davidson is not fully happy with his baby these days but when doing java there is really no option. It can do everything including mopping the kitchen floor. For the simple approach I’m trying for here this is great.
I’m on a mission to save java. Let me be clear here, though. I’m not trying to save it for large java shops. They seem to think the low productivity and high complexity of J2EE are a normal part of the IT experience. I’m also not doing this for the vendors who are trying to make money from my art and my sweat. They make decisions based on an economic model that does not seem to include me. I don’t want to give them any money or any credibility anymore. No, I’m trying to save java for me, just me.
You see, there was a time when I really enjoyed java. It was the first modern language that was cross-platform and had garbage collection. It was not as dynamic and purely object-oriented as I hoped but people would pay me to use it and it was OK. I even wrote some big things that made people lots of money and created jobs. It was good.
But, now it is not. Can I make a java programming environment that I like again? Are there technologies and development environments that will add some joy back to the process of making java web applications?
Frankly, I don’t know yet. Stay tuned and we’ll see.
I am a really big fan of the iTunes Music Store. It improved my music buying experience. One example from early in iTunes life was one day my daughter came home from school and said she needed to buy “The Planets” by Holst and wanted to go to a store and get a CD. About a half an hour later I presented her with a freshly burned CD of a nice recording of the classic piece. Daddy was a hero and little magic that day!
So it was with that in mind that I anticipated the day when we could buy movies the same way. Sigh, it was not to be. Apple, either by choice or coercion has really goofed up with the new iTunes Store. I can’t buy a movie and burn it to a DVD with my shiny new Mac Book Pro with its dual-layer DVD burner. Why is this so important that it is a complete deal-breaker for me? In a word, kids.
I have kids who want to watch movies from any TV in the house. They will watch them over and over again until they wear them out. We have a DVD player in the mini-van that is fabulous for trips. We can’t tie up my computer or any other computer in the house for this purpose. And we won’t even consider getting a movie from ANY online source if we can’t burn a copy to a real DVD.
No Burn, No Sale
I really like TextMate on my Mac Book Pro. And, I really like using TextMate for Ruby on Rails, it’s just such a good fit. However, most of my students are using Linux or Windows. After getting asked many, many times for a recommendation for something like TextMate I have written up this article for using my old favorite editor jEdit