Sun has released a beta edition of the upcoming version 5 of NetBeans. The most notable feature in this new release is the Matisse GUI Builder (demo) which makes it significantly easier to develop Swing GUIs. Other improvements include more refactoring tools, better CVS integration, support for more application servers, better support for web-development, and small tweaks to the editor.
cougheclipsecough
One of the more notable new features of this release is the new profiler. Anyone who has used this profiler before (in beta it can be used with older IDE releases) knows that this profiler in no way gives territory to commercial variants.
cougheclipsesuckcscough
This new release looks great! I like Eclipse, but lately have found myself using Netbeans more and more. Seem like a more complete package for JEE developement. I was using a group of plug-ins in Eclipse to give me what Netbeans gives me out of the box.
the flash demo of the new gui builder doesn’t work, it starts ok, but a couple of seconds later all images dissapear and you can only hear the voice!
The gui builder in Netbeans is pretty powerful, but it is not as fast or as easy to use than the GUI builder in Eclipse.
I hope that the newer version is also easier.
Not on OS X. Eclipse’s VE doesn’t even run on OS X and Jigloo is stuck with only designing SWT apps (don’t ask me why). As it is, Netbeans is the only IDE with a decent GUI Builder for Java on OS X.
Not on OS X. Eclipse’s VE doesn’t even run on OS X
and Jigloo is stuck with only designing SWT apps (don’t ask me why). As it is, Netbeans is the only IDE with a decent GUI Builder for Java on OS X.
There’s an object in SWT called SWT_AWT. It’s the bridge between the two frameworks. Unfortunately, on OSX (carbon – which they both use), the event loop has to be on thread 0, and so, there is no practical way to run two event loops on one thread (yet). Look up the bug on the SWT bugzilla. There’s a huge list of people waiting for this to get fixed – every GUI builder, and a bunch of others.
You’re right, you are stuck with Netbeans for Swing GUIs, but you could also use XCode if you didn’t need a cross-platform tool. ๐
If you feel slighted that SWT claims to be cross-platform but this one bug is holding up gobs of projects, feel free to head over to the Apple camp and gripe at them. The SWT guys were nice enough to tell me to contact the Apple folks and see if I could help out. The Apple folks never bothered to write me back when I offered help. ๐
Hopefully one day it will get fixed, but in the mean time, it really broadcasts the concept that Eclipse fails miserably at being cross-platform (when in reality it’s actually a pretty good framework).
You’re right, you are stuck with Netbeans for Swing GUIs, but you could also use XCode if you didn’t need a cross-platform tool. ๐
If I didn’t want cross-platform, I’d be using Cocoa and Objective-C. But it’s a real shame that SWT doesn’t work as intended on Apple. Whoever is to blame, they better fix it soon as Eclipse is a nice IDE.
>The gui builder in Netbeans is pretty powerful, but it is not as fast or as easy to use than the GUI builder in Eclipse.
>I hope that the newer version is also easier.
The last sentece leads me to believe you are actually commenting the quality of the GUI builder without having tried it. I hope I missinterpreted the above. Otherwise please stop spreading opinions of things you know nothing of. The GUI builder in NB5 is a rewrite and should not be compared to the one in 4.1.
Cheers,
Patrik
You should learn to read what people write before you comment. I wrote I hope that Netbeans new version is also easier than former version, I did not say that it was not.
I wrote about my experience with NB 4.1, and Eclipse 3.10. If you think otherwise then tell us why.
This thread is about the 5.0 beta. Why would you choose this place to tell the rest of the world what you think of a specific module of an earlier version that has few similarities with the current? Context dear, context.
/Patrik
Eclipse’s gui builder?! What are you smoking?
There is the biggest problem for me; if the damn Eclipse GUI tool worked, I’d be using it straight away, but that isn’t the case.
What would be nice is something that is easy like how VS.NET do it, place a widget, double click on it, and add code; sure, it isn’t pretty, and probably gives programming purists bad nightmares, but at the same time, the fact of the matter is, the world runs on quick and dirty solutions, not overly academic designs and techniques that are preached in universities.
The GUI builder is dramatically improved over all previous versions of Netbeans. I gave it a try just a few days ago, and it is EASILY_ the best GUI builder on the market.
The properties panels and event hookups could be a little cleaner, but otherwise even in the beta this thing is amazing!
I did a quick webapp with NB. My previous experience was without IDEs, with ANT and doing manual tasks.
NB is the ultimate tool for web applications. It gives you all you need integrated and out of the box. NB 5 is even better in areas where it was lacking against Eclipse.
I find myself using Eclipse as my primary IDE, simply because it has a lot more plugins available that make my life a little easier. But, I’d switch to Netbeans (or any similar IDE, for that matter) if I could find a free UML plugin! Something like the UML features in Sun Java Studio Creator would be perfect. The ability to do round-trip engineering in UML is something that is really missing from open source IDEs. I know that Oracle’s JDeveloper supports this feature, but why aren’t there any similar plugins for Netbeans or Eclipse?
The GMF (Graphical modelling framework will be here soon. This will provide a graphical UML designer based on the UML2 metamodel. It’s based on EMF and GEF, so should be good.
So will there ever be a NetBeans (or Eclipse, for that matter) that does not require 512 megs of RAM to run sluggishly and 760 megs (or more) of RAM to run satisfactorily?
Or is it just the nature of the beast, when you write a large, multi-featured IDE in Java, that it has to be a massive resource hog, being that everything in Java is an object and all objects are allocated on the heap (to be garbage collected – another resource consumer), and everything inherits from something (increasing the footprint of objects), and the JVM uses huge amounts of memory, and the GUI toolkits are massive?
I mean, even little old jEdit takes what seems like an eternity to launch. And it’s just a simple programmers text editor.
Is it even possible to write a desktop app in Java that doesn’t either look horrible, execute really slowly, or consume massive amounts of memory (or any combination there of)?
Is it possible to write a J2EE app that isn’t endlessly complex, with all the huge, complicated APIs and endless competing frameworks that are supposed to make things more simple but only add to the complexity?
I don’t mean to flame here. Due it’s popularity and numerous job opportunities (I’m a systems analyst and developer by trade, using a variety of platforms and databases and hardware and languages including C, C++, a little Java, ASP, PHP, etc), I’ve been studying and coding Java/J2EE for about 3 years now, and I’ve tried really hard to like it and possibly adopt it as one of my tools in my career toolbox. But the more I learn about Java, and the more I use it, the more I get disgusted by it. I’d rather enjoy what I do when I go to work, then have to deal with what appears to be a super bloated and maddeningly complex development tool.
Thus, I would love to see a “Lite” version of NetBeans or Eclipse. And I would love to see Java apps that look good, run fast, and don’t consume massive amounts of memory. I would love to see J2EE apps not be a total PITA to develop, test and deploy. I would love to be proven wrong in my current views of Java.
I can’t comment on the Desktop apps et al because I’ve never written one of any significance.
Is it possible to write a J2EE app that isn’t endlessly complex, with all the huge, complicated APIs and endless competing frameworks that are supposed to make things more simple but only add to the complexity?
But I can comment on framework complexity.
The complexity comes from, at its base, the complexity of the problem: 3 tier application development with open systems.
I, too, lament the difficulty in creating creating applications of the most base functionality against not just J2EE, but any 3 tier architecture.
Part of it is simply that the plumbing is exposed to you, for good and for ill. Another part is that the nature of the architecture is such that it simply has a lot of bloody plumbing.
Next, you have the common OO patterns and paradigms. Something as simple as Model-View-Controller.
In the most abstract high level view, if you consider a modern OO 3-Tier app, you have: model, view, controller (1st tier), model (2nd tier), data model (3rd tier).
That’s 5 seperate components even before you reach the gate. Next you have the parts that manage the communications between the tiers. Say, RMI or SOAP for Java from Tier 1 to Tier 2, and then JDBC from tier 2 to tier 3.
So, that’s 2 more components.
Next, they’re loosely coupled. Folks don’t seem to write code anymore as much as bolt it together (For example, the Spring framework). So, you have to manage the configurations representing that glue. While not actual code components, they are components of the application nevertheless. I argue that today configuration files have almost been elevated to the level of “code” in terms of their use and complexity.
So, lets’ toss in 2 more components, again, to configure the interchange between the tiers.
Now we’re up to 9 components. 9 steps to get from what you see on your screen to the data stored in the RDBMS.
In the past, with tightly integrated “single tier”, and even with client/server computing, most of those components were smashed flat into the runtime of the environment (say, DBase, PowerBuilder, even VB).
Your “view” seemed to have an almost straight path into the heart of the database. In those days you had your “screen” and the database, 2 components, and that was pretty much it.
Today, we have a lot of flexibility because we’ve taken what appears to be a 2 component process and exposed all 9 aspects of the transaction. Unfortunately, not only have we exposed them, but we seem to have inherited responsibility for them.
This flexibility is what gives us a lot of power. You can change each component at will and reinvent your application much more easily than you could back then.
It was difficult to use DBase code against a SQL database back in the day, vs its native DBF files for example. Or, if you wanted move your PowerBuilder applications from the desktop to the web, say.
So, now we’re in the world of not buying pre-assembled toys to help with our work, but rather boxes of ill-fitting Lego(tm) blocks, building out applications from their most base components. Integrating all of the flexibility becomes very complex, and we have to be quite explicit about it (being as we’re not only working with the hard nosed and picky computers, but with ill specifying whim powered marketers and managers).
When we had limited computer possibilities, we had more constraints. More contraints is less flexible. Compare creating a screen for a typical Black and Green 80×25 TTY with Reverse Video (w00t! Smart terminals!) and a modern GUI with colors, graphics, buttons, proportional fonts(!!), etc. etc.
The latter is MUCH more difficult to do “right”. Hell, it’s even hard to make one that looks like crap! But all of the screens look like crap on a TTY.
So, in the past where you could pound out code using screen generators, and what not, you could make screens all day long, work with the limited UIs no more sophisticated than Function Keys. These apps were “easy” simply because they could do so little. When you talked with management, etc, “No” was a perfectly valid answer. “Can I get this in yellow? and bigger letters?” “No. It’s a Wyse 50, it only comes in green.”
Now, of course, it simply ain’t so.
Not only do we have an infinitely flexible/complex architecture, we get to fight incompatible tools (IE vs Firefox, for example) and protocols (SOAP interoperability between Java and .NET anyone?), things not even necessarily PART of our application, and certainly not part of the business problem (Move Orders from Customer Service to Fulfillment).
Before it was fighting termcap entries, or printer escape codes. Getting forms to line up straight in the tractor feeds.
But that’s where this is all coming from. We have literaly boundless flexibility and with it comes associated complexity.
The real shame is that most of that flexibility is really only necessary for 15% of the app, particularly internal back office applications (vs some customer facing thing where display and such are really important. You don’t put green bar printout from the dot matrix in the annual report, for example, but it’s fine for accounting.).
But even though it’s only lightly applicable, we pay the price on every component.
You can look at something like Oracle’s ADF, which is supposed to make this kind of thing “easy”, and see all of the stuff it generates and handles automatically, but while it seems helpful, it’s a hard question of it really helping at all.
I don’t have a solution, but I can simply say that, particularly when we hit the web, application development speed, progress and productivity made a sharp nose dive, and I don’t see it getting any better.
The beauty of something like MS running VB (notably VB 6) is that, since it “eliminated” most of your choices (language, OS, Database, etc. etc.), it speeds up development and productivity. But you end up with an app circa 1992, for good and for ill.
Wow, great post, J2EE does have a lot of problems with being almost too flexible, and paying for it in terms of development time. Having worked with both J2EE and .Net, I’d say at least .Net gives you a bit less flexibility, but at least it is a bit quicker. I guess that’s why so many smaller webapps are using php and now ruby on rails.
Hi, the flash demo works, I’m the author so I can guarantee it ๐ There may be a pause at the beginning if you have a slow connection, try to refresh the URL and it should work. If it still doesn’t work please contact me at roman dot strobl at sun dot com and let me know your OS / browser / flash version. Thanks!
Nice demo. It worked for me although at the beginning, the image seemed to be 5 seconds in advance on the voice.
My experience with the flash demo was similar. A few seconds in it goes blank with only voices (even though it has supposedly loaded fully before this on my fast connection).
After another 15-30 seconds or so it comes back and works fine, though. I just wish it were a little more in depth, as it really doesn’t do justice to just how good this thing is.
this is the greates missing piece for me to really start appreciate netbeans.
Also will 5.0 be lighter/faster or flower/fatter than 4.1 ?
VE is very slow, that the big problem
and create a gui with it is harder thant netbeans new tool, mantisse
the new layout with mantisse is very easy to use…
the only tool who are similar to new layout with mantisse is jigloo
One important improvement in NB 5.0 that nobody mentioned here (or at least i didn’t see it!) is the new module development wizards that help you to build plugin-modules for NB or to even build applications on top of the NB platform….
I can see the potential of NB after the addition of these features, and obviously the NB development team deserves a great deal of praise.
great job NB team! good luck….
the Profiler just got a face-lifting! so beautiful!
http://profiler.netbeans.org/docs/help/whatsnew-m9.html
the Mobility Pack (for Java ME) is very powerful as well, btw.
I personally Like NetBeans more than Eclipse, although I’ve used Eclipse frequently as of this late. I just hope NetBeans can have a lite package where you can plug in various extensions to it to suit your need later on.
Nice to see, that Netbeans are getting better. I wouldn’t like to be a commercial IDE developr these days, when two such good development platforms like Eclipse and Netbeans are available for free.
However, as Linux is my primary platform I stick with Eclipse for a little longer, at least until java 6 is out, as Netbeans is a swing application and that doesn’t work too well on Linux.
Another reason to stay with Eclipse would be that Eclipse seam to be a better cross language tool. It is very nice to have similar interface for all the languages you develop for, Eclipse more and more starts to look like an emacs for the point and click generation while Netbeans seams to be a more pure java tool.
About swing on Linux, are you doing the export AWT_TOOLKIT=XToolkit thing? It fixed the main problem I had with swing in linux, the fonts.
Actually my problem is that it is impossible to type certain characters on internationalized keyboards. This is a over five year old bug that is finally getting fixed in java 6.0 to be expected next year.
is my IDE of choice simply cause I have worked with it most and the improvements in the Beta of 5.0 are quite staggering. I think Netbeans needs to me able to deal with JSPs and autocomplete better, have features for xml and definitely as one poster already pointed out, support uml really well. Also a nice pluging for java3d would be great. There was a project at netbeans that was based on scenegraphs and such…and I think it would be great if it got completed.
It looks almost like Visual Studio 6 in terms of IDE and functionality, very futuristic.
hmm.. if we could have a Ruby on Rails plug-in for NetBeans …
…is the ability for the IDE to include all the jar files and other resources into the final build of the application so that the final jar file contains all the libraries required to run the app. I dont think Netbeans deals with that good at all. That and really fast and intuitive code completion.