As a follow-on to my last post, I was thinking recently about the nature of IDE usage. More specifically, I was thinking about the motivations behind the usage of particular tools.
It seems to me we use specific IDEs for three reasons:
1) Dictated at work
2) Personal preference/familiarity
3) Task-based solutions (i.e. solves a specific problem at point X)
As I mentioned, I have recently reverted back to MyEclipse as my primary IDE from a period of using NetBeans for the same. But note I said "primary IDE." I still have a few different options, based on what I think will do best at the time. Example: I still use NetBeans for refactoring. I haven't yet found a better option, and I just like the way it works. So, I'll pull that in from time to time. Of course, MyEclipse is installed and used regularly. I keep an install of base Eclipse running to test some plugins and when I need to do something quick and dirty. I have a handful of other things I'm trying and testing at any given time.
My point is that I see a lot of flame warring based on IDE preference as opposed to functionality preference. If something does the job well, I'll use it. I'm not a zealot. So, being the agnostic I am portraying myself to be, I move from tool to tool as dictated. This basically covers my second two reasons for IDE useage.
The "dictated at work" theory is a bit more obtuse, as the dictations can range from "we're only doing free Eclipse" (my prior job) to "you must use IntelliJ" (the one before that). The danger here is that developers as a whole (me included) both love and hate these edicts. My life is easier if I'm in control of all my tools, but I have to play nice with my co-workers who are in control of theirs, builds are breaking, QA sux, etc. But if we are completely standardized across the boards, I feel more irritated at my boss for being...well... bossy and limiting.
So I'm left with the catch 22. My compromise currently is flip-flopping back and forth between tool suites based on needs, not on religion. I don't doubt many others are behaving similarly.
I am wondering: is this behavior "ok" or is it something to be frowned upon? Will we ever get to a true al-la-carte mode where I can select from a real list of things that will all play nice together, or will the vendor lock-in of project structures always tie my hands? I'm tired of flip-flopping back and forth. But right now, it's a necessary evil. Is there any relief in sight?
Monday, August 11, 2008
Subscribe to:
Post Comments (Atom)
1 comment:
I am all for having choices. But in this case, taking into consideration benefits and drawbacks, I subscribe to the one-only IDE model.
The reason for this is that an IDE really is the primary facilitator between you and getting the job done. That doesn't necessarily mean one IDE is really the best at everything. But to me, being good enough for x (and knowing it inside out for y and z) is superior to being the best at x (but not really knowing how to do y or z).
The major caveat is the lack of a unified project system, I still wonder why this was never solved in a JSR or something. Ant and Maven somewhat help on that but they are still not de-facto project descriptors, Eclipse and JDeveloper still rely on their own proprietary formats.
So I have settled on NetBeans. It is not the fastest (Eclipse is), it is not the pretties (JDeveloper is) and it is not *the best* (IntelliJ is). But it represents the de-facto path which suits me and our team (Ant as build system, GroupLoyout/Matisse as layout manager etc.) and it's "good enough". Furthermore, I do believe NetBeans exhibits phenomenal future proofing in that Swing finally got fast enough, Sun finally realized it's worth focusing on the tools and the community seems to be flourishing.
Post a Comment