Tag Archives: Eclipse

Lots of cool Java news this week!

JavaFX plugin, GoogleGears, and GWT

I just ran across this article, which tells how to use Eclipse for building JavaFX.

And, GoogleGears is all the rage today too.  GoogleGears is a browser extension that lets developers create web applications that can run offline.  VERY cool.  It was rolled out at the Google Developer Days (today, but sadly not offered in Ann Arbor).

Oh, and I almost forgot to mention that Google Web Toolkit (GWT) version 1.4 beta was released too.

Here's Bruce Johnson's (he's the tech lead) blog on the changes:

http://tinyurl.com/2jl46e

All in all, a pretty good week to be a Java developer, I think.

Eclipse for SWT Development

Review/notes from May 1 meeting

On Tuesday, May 1, Carlus Henry from the Grand Rapids Java User Group, presented "Eclipse for SWT Development" at the Ann Arbor Java User Group.  He declared himself an Eclipse Enthusiast.  He drew a distinction between an evangelist and an enthusiast and declared that evangelists get paid for their admiration and enthusiasm!

In any case, he was definitely enthusiastic about both SWT (Standard Widget Toolkit) and Eclipse.  Since I use Eclipse, but all of my GUI building has been in Swing, so I was really interested to hear more about SWT.

SWT is pretty famous for its ability to maintain the native look and feel, and performance, by harnessing the JNI (Java Native Interface).  I recently met Josh Marinacci, of the Swing team, and I've seen what really cool things can be developed with Swing, so I definitely think that Sun is not sitting on their hands in this regard.  Over at SwingLabs, there's some very cool stuff to look at, including the Nimbus Look and Feel. 

SWT is used for Eclipse plugins and RCP (Rich Client Platform, for which SWT is the widget toolkit).  Eclipse itself is written using RCP.  One disadvantage of SWT over Eclipse is in terms of Resource Management.  Native calls mean that managing resources become the programmer's responsibility, specifically.  The parent-child relationship (tree structure of widgets) does make this easy, but you have to know to manage it.

From Carlus' demo, I didn't feel that the layout was any less cumbersome in SWT than in Swing, just different, and so an additional learning curve is required on top of Swing layout management, if you already understand that.

I didn't leave the meeting hot to try SWT any time soon.  Honestly, with what I've seen Josh and SwingLabs doing, I'm really pleased with the new things that you can accomplish in Swing, and I'm looking forward to seeing the screencast from his "just 1 line of new code" at JavaOne this week.

It took me a while to get this review out, and in the meantime, IBM pulled its support for the Visual Editor in Eclipse (GUI builder for SWT applications).  I'm left wondering what that means, especially considering Matisse is such a full featured editor for Swing development (see *** Wall (of the Java Posse)'s article on using Matisse)

I really enjoy meeting Carlus.  He's an excellent speaker and I look forward to hearing him speak again sometime soon.  He's also heavily involved in the software community in Grand Rapids and he and I have promised to share resources to do what we can to promote software development, share JUG speakers, etc. in Michigan.  And I sure hope that Carlus sends an abstract for CodeMash 2008!

SWT

Eclipse

SWT Visual Editor: Dead?

Swing Labs

NetBeans 5.5

NetBeans Milestones downloads

Will it be SWT or Google Analytics on Tuesday? Or Both?

Tuesday, May 1 Ann Arbor Technical Meetings

It's the first week of the month, and so the Ann Arbor area is hopping with user group meetings.   I already mentioned the AACS meeting (Ruby on Rails), but there are also meetings on Eclipse for SWT Development and Google Analytics at the ITZone.  The Python User Group meeting, which would typically take place on Thursday May 3, is postponed until May 16, for a special event with Stephan Diehl (who will talk about stackless python and pypy).

So here are the meeting announcements for each of the Tuesday night talks.  I guess if you're resourceful, you could attend both, since the Google analytics talk goes until 7 and the Eclipse talk doesn't start until after the open networking at 7 (so probably 7:30)!

——————————————————————————

At the AAJUG meeting, Carlus Henry speaks on:

Eclipse for SWT Development

Date: Tuesday, May 1st, 2007
Time: 7:00PM – 9:00PM EDT

Open Networking starts at 7 PM.

Meeting Location:
Washtenaw Community College, WCC BE158

 http://www.wccnet.org/search/roomlocator/index.php?room=BE158&bego=Go 

PRESENTATION:
===========

I. Introductions
    A. Who am I?
    B. Who are you?
II. Presentation Goals
III. What is SWT
    A. Setting up Eclipse for SWT Development
    B. SWT Demo
VI. What is JFace
    A. JFace Demo
VIII. Eclipse RCP
    A. Case Studies
    B. Demo

 
—————————————————————————————

At the ITZone, Jeff Gillis introduces and demos Google Analytics, a free web site analytics solution from Google used by web site owners and marketers to better understand their users' experiences, optimize content and track marketing performance. Google Analytics also shows advertisers' data about their AdWords ROI so that they can purchase more appropriate keywords and track Ad Group performance.
Date: Tuesday, May 1, 2007.
Networking starts at 5.
Program 5:30-7.
Costs: Members are free, Nonmembers are $25, and students are $5.
Jeff Gillis – Associate Manager, Google Analytics
Jeff has been with Google for more than three years, working on AdWords operations, and since Google acquired and renamed Urchin, with the Google Analytics team. He focuses on marketing and operations for the service, and is a regular contributor to the official Google Analytics blog (http:// analytics.blogspot.com ). Before joining Google, Jeff was a technical solutions specialist for ParentWatch.com in New York City. He graduated with a BA in Literature from Stanford University.

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.

Cool Tools

Java Tool Recommendations

Many of our customers come to us, asking for tool recommendations. Choosing and evaluating tools is an incredibly time consuming endeavor. But I got some GREAT recommendations at the Programming the New Web conference, hosted by Bruce Eckel last week in Crested Butte, CO. I’ll try to capture some of those that I found most interesting here, and will try to fill in the blanks as time permits.

In my opinion one of the most intimidating things about Java programming is choosing tools. Microsoft programmers have it easy. Yeah, they’re shoe-horned into their tool selection, but at least they don’t have to go out and evaluate a bunch of (ill suited) tools on their way to creating that first project! Of course, they’re free to choose tools outside of Visual Studio, but do they? Really? Probably only the really stubborn ones!

Yeah, Linux and Java programmers are a stubborn bunch. We like our tools and we like the flexibility to choose them. I so strongly prefer the Unix command line that I run MKS on my Windows box (and will admit to a preference of VIW over WordPad, ssshhhh). But for NEW programmers on the block, it’s a lot to deal with.

So here’s a shortlist of software to use for Java development …

Development Environment: Eclipse (no surprise here)

Unit Testing: JUnit (another given)

Code Coverage: EMMA (use Maven plugin)

Functional Testing: FIT

Quickstart WebApp Development: AppFuse

Version Control: Subversion

Continuous Integration: CruiseControl

Detecting Duplicate Code: PMD’s Copy/Paste Detector (CPD)

I’ll add more as I come across them in my notes.