I think I am going to throw up if another person I know comes over to me and tells me how much he or she loves their new PowerBook. I have nothing against Apple hardware and I know they make some really great hardware as well as software. (I happen to love my iPod) This is not because I am a Windows/Linux guy – this is because a lot of people I know are getting on the Apple bandwagon following the herd mentality. I have heard so many comments from people who say that they got a Mac because ‘insert-your-own-book-author-pseudo-thought-leader’ has a Mac. It’s great to explore new things, gadgets, etc. and discover ways to improve your computing environment. I use Windows as my primary desktop with Linux acting as my WebLogic, Tomcat, CVS, and MySQL server. I am very happy with that setup and I know I want to get a Powerbook someday and check it out. I am sure I will be very happy with it but my concerns revolve around all the money I’ve spent on software for my Windows box. Some of the things that I use on a daily basis like IntelliJ IDEA are a non-issue as IDEA runs great on a Mac. And I know I would find comparable replacements for a lot of things I use on a daily basis but I’ve got my environment setup to the point where everything just works. I have nightly automated backups of my desktop, I have Remote desktop working so that I can connect to my home machine from anywhere in the world and many other processes where I am not sure if spending more time and money relearning or repurchasing software will be worth my while. But I am completely open to the possibility and hope to find a nice little PowerBook under the Christmas tree.
Before this starts sounding like a rant about Mac, let me clarify. This is NOT a rant about Macs rather it is rant about people that will blindly follow whatever this other ‘cool’ person is doing without giving it any thought. I don’t doubt that Mac’s are a great choice for majority of the people using them. In fact, I have friends that have been Mac users’ for as long as I can remember. Mykl, the Webmaster at Marquette University has always been a Mac user – ever before OS X. I’ve known Mykl for almost 12 years now and he has never used a Mac because he thought it was cool. In fact, I harassed him relentlessly about his choice at every opportunity. Another friend of mine, Pete has also been a Mac user for as long as I’ve known him. He even lost out on a job at my last place of work because the hiring manager thought he was ‘too passionate’ about his requirement of a Mac. And there are many more like Mykl and Pete. They use Mac’s for the right reason – They don’t use it because they think it makes them look cool by association.
The lack of critical thinking goes beyond hardware choice. I cannot tell you how many emails I get from people I know that start out like, “I’m trying to do this in Hibernate and I can’t get it to work”. Ok – Let’s put the cart before the horse. This is another classic scenario where everyone’s blogging about Hibernate and so I have to use it. People are selecting solutions first and them trying to fit their problem domain around it. In this scenario, the person was trying to leverage a ton of existing stored procedures from an old application that they had acquired. This was before Hibernate 3.x where you couldn’t call stored procedures. You would think that before you select a solution and start development, you would spend a few minutes checking out the documentation website to see if the solution can actually do what is required.
Again, this is NOT a Hibernate rant. The same applies to Spring, AJAX or anything else perceived to be ‘cool’ or new. Now I know the desire to learn something new and there is nothing wrong with that. In fact, I typically will spend countless number of hours and work and home trying out new frameworks, solutions, etc to see if they can offer me an edge. Are these new ‘things’ solving an existing problem in a creative way that is going to simplify my life? And so I play a lot, but I don’t do it in applications that I am getting paid to write. After ‘playing’ with something, I will try and adopt it for my day job if and if only if the value it offers far exceeds the learning curve for the other developers.
The problem is that too many people use all of the latest open-source framework(s) or commercial software without realizing the pitfalls. So when the project fails, who gets the blame? Not the person who chose an inappropriate solution – it’s always the framework or product. Hibernate sucks and so my project failed or Struts sucks, as my application takes too long to load. You get the idea.
What I would like to see is for people to question things a little more. Don’t just assume that because it comes from Apache, it has to be good. People need to start thinking critically, independently and start taking a pragmatic approach to things. Take time and discover for yourself why something is good because you’ll discover something that people pan and ignore may be the best thing since sliced bread in your environment.