Tag Archives: NetBeans

Java IDEs at the Roundup

Discussions of IDEs, and the special challenges of having choice

The Java Posse has released yet another session from the Java Posse Roundup. I attended the Roundup in March, and we had a lot of great sessions, all of which were recorded and will be released over the next few months. They’re releasing about one a week so that they don’t overwhelm their bandwidth restrictions. Most of the sessions that have been released to date, were sessions that I had missed. The session that was released this week #115, on Java IDE’s, was one that I not only attended but also was responsible for convening. That simply means that it was a topic that I hoped that people would want to discuss, so I put a post-it note on the board, and people came. We had a great session, and I learned a lot.

If you want to download the recording for the session, you can get it at http://media.libsyn.com/media/dickwall/JavaPosse115.mp3, or from whatever you usually use to download such things (I subscribe with iTunes).

Oh, and yes, there’s a little bit of Microsoft-bashing, but also some accolades too. For one thing, it occurred to me that this is not a conversation that Microsoft developers would be having (i.e., which IDE to choose). Most people use Visual Studio, and that’s an appropriate choice. Yes, there are plug ins, but my bet is that 99% of the community doesn’t bother installing them. I suspect that useful things make their way into Visual Studio, much as useful things make their way into MyEclipse and NetBeans. And yes, I’m sure that there are enterprising developers who customize their environments, but I seriously doubt that Microsoft programmers face quite the same number of choices that Java programmers do when configuring a developer environment. That’s not a bash; that’s actually a compliment. Out of the box, Visual Studio is not only usable, it’s quite useful. With the Java tools, there’s not simply “a box”. There’s “the web”. Go forth, young (wo)man, and find your IDE. Then decide how to customize it. This approach is self-selecting, I think. The types of people who have been drawn to Unix and Linux aren’t put off by this approach. They see it as an advantage. I’m not exactly put off by it, but if you listen to my comments during the session, you will realize that I do struggle with the sense that it’s a waste, some of the time, but then again, I love the fact that people are so motivated to build cool tools that can be easily plugged in.

My biggest concerns with this approach are:

1.It’s hard for new developers to get started
2.Young developers, who expect an IDE as part of modern software development practices will be put off and not choose to develop in Java
3.Time spent evaluating and selecting an IDE, and choosing customizations for it is time that I don’t spend solving problems for my clients.

I haven’t looked at NetBeans in a while, and I will (soon) spend some time looking at that again. I’ve been pretty happy with Eclipse and in the spirit of getting work done rather than once again evaluating tools, I was pretty happy to stay with it. But with some of the new features that NetBeans 6 will provide, I’m thinking it’s time to look at it again.

In any case, what I got out of this session after experiencing it both in person and later, as an observer, I took away the following:

1.We all like (and alternately hate) our IDE's. Even if our "IDE" is vi. 😉
2.Everyone struggles to find that sweet spot of plugins to use with their IDE of choice.
3.If you are a plugin "developer", write good docs and promote the tool wisely so that others can learn about it. Don't produce a 1 hr video (not kind to searching). And make sure that the Java Posse knows about your plugin/tool.
4.A rating system would go a long way toward helping the mere mortals among us to help find cool and useful plugins, and shorten our own individual evaluation cycles.
5.nbextras is a good place to look for plugins for NetBeans.

I think that *** said it best. It really comes down to community. Active participation within the community, sharing about tools, etc. is really essential to knowing what you can do better.

NetBeans
Stable Release (5.5)
NetBeans in Progress
Milestone releases
Eclipse

IntelliJ's IDEA

Mylar
Plugin for Eclipse, discussed in the session
Findbugs
Plugin, discussed in the session

Java Posse Roundup: Day 2

Java Posse Roundup: Day 2

Session 1: Java Development Environments

I convened a session on Java Development Environments (IDEs, tools, etc.). My question was, “Is it a benefit or a detriment that we have choice in our tools?”. For comparison, when programming on the Microsoft platform, developers are given tools that work together out of the box. If they choose to add new tools to their arsenal, they can (especially see Jim Holmes book, “Windows Developer Power Tools”, which includes a lot of open source tools for use on the Windows platform.

In any case, as Java developers, we’re not only free to choose our own tools, but sort of forced into choosing and configuring. Yes, there are packages like MyEclipse and NetBeans which bundle things together, but the IDEs have gone back and forth many times in the past several years. I’ve personally tried at least half a dozen. Currently, I’m using Eclipse, but on the recommendation of the group here, I’m encouraged to give NetBeans another try.

The consensus of the group was generally that we’re glad to have options. I’m still left thinking, however, that we spend a lot of time spinning our wheels, evaluating tools, instead of actually solving problems for our customers (or employers).

Session 2: User Groups

The next session that I attended was on User Groups. Graham, a Crested Butte local, is considering starting a user group here, in Crested Butte. He was looking for ideas and suggestions about how to get started, while others were looking for ideas about how to grow their user groups or to keep people coming back.

I held the position of president of the Ann Arbor Computer Society for 2 years, and I got some great advice from past leaders of that group: DELEGATE. I’m not always good at it, but it’s a good objective. Having a strong leader that can delegate tasks to get done is pretty critical, I think. Several (3) of the guys in the session were from Atlanta, and the AJUG has a dynamic and energetic leader, and it sounds like he does a phenomenal job of keeping their user group going. In addition to an annual DevCon, which is well attended, they offer Job Postings for both potential employers and job seekers (JRecruiter). The Ann Arbor JUG also has this, but I want to look at what they’re doing in Atlanta, because it sounds more effective than the blog-like postings on the AAJUG.

Remote user groups (Taos, Crested Butte) face different challenges. There are few area users, and having a JUG may be too restrictive. It sounds like Dean from Taos and Graham from Crested Butte may create a more encompassing group that serves all software developers, rather than limiting to a JUG.

Chris Adamson was also in attendance. He is an editor for java.net, and he offered to help solicit updates for the JUG list that they maintain. GREAT IDEA, since they really have gotten out of date.

The basic “take-aways” from the session were:

1.Start small. None of the big groups started big. We all started with 2 or 3 people who wanted to get around and talk about cool stuff.
2.Have a compelling reason for people to attend meetings. Good content, opportunities to learn about jobs, etc.
3.Mix in local and national speakers, if you can. National speakers provide visibility to the group, while local speakers get experience talking to a group of people.

Some groups charge dues, while others are free. Some are corporate sponsored, others are not. You just have to find what works in your area.

I would love to create a “meta-group” of JUGs or other user group leaders who might communicate on an eGroup or such to toss ideas back and forth. Maybe we can start with the list on Java.Net?

Java User Groups on Java.net: http://tinyurl.com/36r2ku

Here’s a view of what Sun coined as the Top 50 JUGS:

http://wiki.java.net/bin/view/JUGs/SunTop50JUGProgram

Session 3: Convergence of Desktop/Web/Mobile

Joe Nuxoll convened a session on the convergence of desktop, web, and mobile application development. Questions were raised about how to determine which platform to develop for, or if it made sense to sometimes build a web app that could be used on a desktop. Mobile has its own set of challenges, but even so, we’re becoming more demanding about what we expect in mobile apps.

One real key is that a lot of time users don’t even know where they’re running up against web/desktop boundaries. One good example of this is Google Earth and Google Maps. Google Earth is clearly a desktop app but it accesses the web to get data that Google maps also uses. Sketchup is a nice application that also pushes these boundaries, in connection with Google Earth.

Joe’s pretty adamant about good user interface design, regardless of desktop or mobile or web. Everyone pretty much agreed that we have to use the right tool for the job, and that it’s not always clear what people need when looking at what people are CURRENTLY doing. Sometimes we need to mix stuff up and come up with a new way of interacting with the user. There are some really cool demos from demo.com that really push this envelope.