Interview with Netbeans Director of Engineering Timothy Cramer

Discussions

News: Interview with Netbeans Director of Engineering Timothy Cramer

  1. Timothy Cramer, Director of Engineering for Netbeans, was interviewed by TSS, focusing on Netbeans' adoption rate, positioning, future capabilities, and - of course - comparison with Eclipse.

    Can you summarize exactly what Netbeans is?

    NetBeans is both an IDE and a Rich Client Platform (RCP). A Rich Client Platform is just a fancy name for the the minimal set of NetBeans plug-ins or modules needed to build a rich client application. Anything built on top of the NetBeans Platform can be called Rich Client Platform (RCP) application.

    Even the NetBeans IDE itself as well as other Sun Microsystems tools such as Java Studio Enterprise, Java Studio Creator and Sun Studio are built on top of the Netbeans platform.

    So, if you took any and all of the GUI type applications on your desktop, each and every one of those applications could be written as an RCP application built on top of the NetBeans Platform. For instance, your web browser, your e-mail program, your document editor... What distinguishes the NetBeans Platform here is that it is 100% pure Java -- that means it will run on any operating system supporting a 1.4 or later Java Virtual Machine. There's no need for a special distribution for a given operating system or window manager. That's the beauty of using pure Java and the NetBeans platform.

    How many people are using NetBeans today?

    We have had over 4.5 million downloads and a quarter of those have been in the past 6 months or so. Since the release of 4.0, we have seen extraordinary interest and adoption of NetBeans by the Java development community. And we just released the final version of 4.1 (recently).

    NetBeans was around far before Eclipse - why has Eclipse' visible marketshare grown so fast?

    Well... unfortunately from NetBeans 3.0 to 3.5, our usability and UI didn't have the greatest reputation.

    And in the meantime, IBM launched the Eclipse phenomenon with major marketing dollars. But, things have changed and NetBeans 4.1 is not your grandmother's NetBeans. Anyone who has not taken NetBeans for a spin since the 3.0-3.5 days is in for a really big surprise. Check out some of the stories of developers who switched from Eclipse to NetBeans: http://netbeans.org/switch/realstories.html.

    How would you differentiate NetBeans from Eclipse?

    That's easy -- ease of use and out-of-the box functionality. If decreasing complexity and increasing productivity are important to you -- and I can't imagine that they wouldn't be - NetBeans is the developement tool for you. With NetBeans you get everything you need right out of the box so you can start coding right away. There is no need to go hunting for additional packages that then have to be tested and configured just to get started. In addition, the Ant based project system that we introduced in 4.0 provides you with incredible flexibility.

    We blow Eclipse away with our out of the box support for J2EE 1.4 and the GUI Builder. If you can write an Ant script for your project or task, you can map a NetBeans action to that task. So, you can literally support any type of Java application development with NetBeans. You can even add NetBeans actions and map them to Ant tasks for operations such as J2EE deployment to any J2EE application server - there are blog postings out there demonstrating how it can be done.

    There has been alot of blogging about Swing vs. SWT..So let me just say this -- Swing is much easier to learn than SWT and all those blogs will support me on this. Swing, the NetBeans Platform and the NetBeans IDE are 100% pure Java - you are not being locked in to someone else's proprietary implementation. Also, the knock on Swing was performance. With the renewed emphasis on the developer for JDK 1.4.2 and JDK 5 there have been major improvements by the Swing team. Check out IntelliJ or NetBeans, both huge swing apps and very performant. NetBeans is all about the developer. We don't charge you anything to join or contribute to the community.

    What is your strategy to increase Netbeans adoption in the face of Eclipse?

    We already on our way to increasing NetBeans adoption and we have succeeded in doing so by listening to the developer and addressing his or her needs. With regards to the future -- let's just say we have some really cool things planned.

    Tell us about Coyote?

    Isn't that a cool code name? The coyote is a quiet and efficent animal that seems to thrive on the edges and is impossible to get rid of :-) The coyote project provides NetBeans developers with modules so that they can code in dynamic languages using the Netbeans IDE. Groovy and Jython are the two current languages we are targetting, but we expect that the project will provide a common framework that will allow support for more languages in the future. Once again -- this is all about giving the developers want they want.

    Dynamic languages are growing in popularity and the Java platform has always been able to support the use of languages other than Java itself. The combination is a boost to developer productivity.

    How many people are using NetBeans?

    We have nearly tripled (and that is conservative) our active user base in the past 6 months and this calculation is based on the number of users connected to the NetBeans autoupdate center on the web. Eclipse talks about 50 million downloads, but let's not compare apples and oranges here. There are users, there are product downloads and there are downloads of all those plug-ins.

    NetBeans 4.1 seems to be catering to J2EE, to the point where some J2SE modules (like applets) aren't even used. Is this a sign of where Netbeans' niche is? If so, why are some module types (JCA, in particular) not supported?

    NetBeans 4.1 does provide excellent support for J2EE 1.4 development. I am very proud of that- we wanted to make it easier for people- mere mortals -- to develop J2EE applications.

    But, that is not the only focus of 4.1. Mobility support is huge in this release - our J2ME support is second to none (and check out the new visual development!).

    Only NetBeans 4.1 provides a real solution to the device fragmentation problem. And with our robust J2ME support you have the ability to run your applications on vendor emulators and even do your debugging on the device itself.

    Besides J2ME and J2EE, we have great GUI development, VCS support, the Ant based project system I mentioned earlier and a full-fledged profiler based on JFluid technology. In addition, we have just integrated the very popular jvmstat/VisualGC JVM performance monitoring tool, and just put out a JMX module on autoupdate. With 4.0, we were the first, free IDE to provide JDK 5.0 support that gives you new language constructs in the editor as well as code completion & refactoring.

    Actually, NetBeans 4.1 is the opposite of niche..it is the most comprehensive development tool out there. It allows a developer to create mobile, desktop, web and enterprise appications all with one single tool.

    What's Netbeans' development model like? How do people write and publicize modules, how do people work on the actual product itself?

    We have had unprecedented interest in creating and publicizing modules for NetBeans: our excellent performance and support across all OS platforms including Linux make us very attractive here.

    In response to that demand, we are currently beefing up our samples, documentation and processes to make it easier to develop rich client applications with NetBeans. In addition, we're always looking for people who want to contribute their time and skills to the NetBeans community. There's several efforts underway with huge community involvement. We just announced that we open sourced some basic appserver plugin support for JBoss, WebSphere, and WebLogic, and that we're looking for contributors. Within hours we already had someone volunteering to do Geronimo.

    How many products are using Netbeans as a platform?

    Well -- you can't expect me to spill the beans (no pun intended) on some of our upcoming announcements. There are multiple ways in which an application can be developed to use the NetBeans platform. You can get the source, build the entire source tree and create an application that way or you can download the binary, develop a plug-in or module using the NetBeans IDE and bring that into the NetBeans Platform binary. Come to NetBeans Day (the day before JavaOne) - it's FREE and you don't have to be registered for JavaOne to attend -- you will hear about some exciting new things going on with NetBeans.

    What features does NetBeans offer as a rich client platform?

    The most important point - and I cannot emphasize this enough -- is that NetBeans is 100% Java so you know that it will run on any OS which supports a 1.4 or later JVM. There is no special sauce required for each and every operating system or window manager. Let's face it - 80% of the cost of software is maintenance - so having one source root and one installer has tremendous advantages.

    What's next for NetBeans?

    Stay tuned and come to Netbeans Day :-). We'll be showing off our new GUI Builder which will blow you away. We'll be talking about the Jackpot technology (originally developed by James Gosling). new technology in our VCS system, and a few surprises as well...

    Threaded Messages (96)

  2. I'm glad there is a viable FREE competitor to Eclipse. Eclipse overwhelming marketshare gives them too much power. For instance, I think JDK 5 adoption was slowed because Eclipse took too long to catch up. A viable Netbeans will keep the Eclipse folks honest (and vice versa).

    Anways, I wish IntelliJ would go free or open source so that they could expand their marketshare. Its my IDE of choice.
  3. I'm glad there is a viable FREE competitor to Eclipse. Eclipse overwhelming marketshare gives them too much power. For instance, I think JDK 5 adoption was slowed because Eclipse took too long to catch up.

    Absolutely! I find the idea of a 'de-facto' IDE for Java troubling for this reason. Far better would be a range of IDEs with a common plug-in API and easy migration of projects between them.
  4. I wish IntelliJ would go free or open source so that they could expand their marketshare. Its my IDE of choice.

    Get real :)) Eclipse developers are paid by IBM, Netbeans developers are paid by Sun.
    Who will pay for IntelliJ developers if they go free ? IntelliJ does not have hardware cache flow :))
  5. I wish IntelliJ would go free or open source so that they could expand their marketshare. Its my IDE of choice.
    Get real :)) Eclipse developers are paid by IBM, Netbeans developers are paid by Sun.Who will pay for IntelliJ developers if they go free ? IntelliJ does not have hardware cache flow :))

    Open Source advocates still believe money grows on trees.
  6. According to this, no big products can be developed in an open source fashion. But then, how do you explain JBoss (which relies merely on consulting and did very well last quarter), Geronimo (no cash what so ever, though not finished yet), LINUX (!), etc.

    There is nothing like cash flow, however, to QUICKLY develop software. Open sourc does tend to be slower - but it definitly works, and the advantages for being patient are that we can see the source code (fix it if desired), use it for FREE, better understand problems (as we can track them down to the actual code that "misbehaves", etc. You can't' do all that in a commercial product.

    cheers,
      Arik.
  7. Number of NetBeans users?[ Go to top ]

    It's quite revealing that when asked how many people use NetBeans, Timothy responds with a barrage of numbers, none of them actually answering the question.

    Here's a hint: it's pretty easy to triple your user base when you start with hardly any users.

    Anyway, NetBeans sounds interesting and it's come a long way, but it's depressing to see all these Sun employees sling mud and spread FUD instead of just letting their technical achievements speak for itself.

    --
    Cedric
  8. Number of NetBeans users?[ Go to top ]

    It's quite revealing that when asked how many people use NetBeans, Timothy responds with a barrage of numbers, none of them actually answering the question.

    I would imagine that it is a very tricky question to answer. How can you tell? Downloads does not equal to use. Although, I guess there might be some indication from the number of installed IDEs that connect to the NetBeans update site.
    Here's a hint: it's pretty easy to triple your user base when you start with hardly any users.

    True, but I don't think anyone would seriously suggest that NetBeans started with 'hardly any users'. I have been following it for years, and my impression (although I have no figures) is that it has always been reasonably popular, although it declined for a while during the 3.x stage. I have to admit I was amazed at it's popularity years ago with earlier pre-1.4.x Java versions because of the memory requirements on older machines and awful performance of Swing in those days. However, modern NetBeans is a different beast... a vast improvement.
    Anyway, NetBeans sounds interesting and it's come a long way, but it's depressing to see all these Sun employees sling mud and spread FUD instead of just letting their technical achievements speak for itself.-- Cedric

    It seems fair enough for a commercial company to talk up a product that they have invested years of work in.
  9. Number of NetBeans users?[ Go to top ]

    Fair points, Steve. I was a bit irritated by the interview so I vented somewhat :-)
    It seems fair enough for a commercial company to talk up a product that they have invested years of work in.
    Absolutely, but bad mouthing your competitors is bad practice and unethical.

    And it always comes back to bite you. Always.

    --
    Cedric
  10. Number of NetBeans users?[ Go to top ]

    Fair points, Steve. I was a bit irritated by the interview so I vented somewhat :-)
    It seems fair enough for a commercial company to talk up a product that they have invested years of work in.
    Absolutely, but bad mouthing your competitors is bad practice and unethical.And it always comes back to bite you. Always.-- Cedric

    I admit I found the style somewhat irritating as well, but I can't see anything that really seems that much like bad mouthing, except for the strange phrase 'proprietary implementation' in regard to SWT. The rest seems reasonably fair - I mean, it does 'blow Eclipse away' with out-of-the box support for J2EE and GUI editing.

    However, I am biased, as a new-ish convert to NetBeans :)
  11. Number of NetBeans users?[ Go to top ]

    I admit I found the style somewhat irritating as well, but I can't see anything that really seems that much like bad mouthing, except for the strange phrase 'proprietary implementation' in regard to SWT. The rest seems reasonably fair - I mean, it does 'blow Eclipse away' with out-of-the box support for J2EE and GUI editing. However, I am biased, as a new-ish convert to NetBeans :)

    I think Cedric was mostly referring to a recent blog entry where a Sun employee did lame nit picking about a Mike Milinkovich interview.

    This lame blog entry was particulary unethical and unprofessional and a few people talked to me about that these last 2 weeks.

    That was bad mouthing at its most.
  12. Number of NetBeans users?[ Go to top ]

    I admit I found the style somewhat irritating as well, but I can't see anything that really seems that much like bad mouthing, except for the strange phrase 'proprietary implementation' in regard to SWT. The rest seems reasonably fair - I mean, it does 'blow Eclipse away' with out-of-the box support for J2EE and GUI editing. However, I am biased, as a new-ish convert to NetBeans :)
    I think Cedric was mostly referring to a recent blog entry where a Sun employee did lame nit picking about a Mike Milinkovich interview.This lame blog entry was particulary unethical and unprofessional and a few people talked to me about that these last 2 weeks.That was bad mouthing at its most.

    I can only assume that discussion within a thread is mostly related to the material presented at the start of the thread. I have no knowledge of the blog entry you mention. Considering the phenomenal amount of bad-mouthing that Sun has been subject to over the years, with rants about them betraying Java by not open-sourcing their implementation, and about them being as bad as Microsoft because of their supposed attitudes to Linux, that I am prepared to give them a lot of leeway. (After all, it has been even suggested that the name 'Eclipse' is a rather silly anti-Sun joke).

    Also, a lot of nonsense is published on blogs and spouted by employees. I have even personally experienced bad-mouthing of one company's software products by employees working on another in the same company! (that company was not Sun, but one of their rivals).

    However, I do agree that publishing such stuff on blogs is unwise... I get the impression that many employees forget that comments on blogs and forums effectively form part of a company's marketing.
  13. J2EE support and GUI Editing[ Go to top ]

    IMO, integrated J2EE supports like wizards, assistants do not play a big role in "serious" projects. At the end you need to be able to execute everything outside your IDE (continuous build, etc.), so in this case what we need is a collection of Ant scripts. You can do everything IDE independent with Ant. Check out this thread in JavaLobby:
    IDE Lock-In:
    http://www.javalobby.org/java/forums/t18934.html

    My "dream" IDE would have following capabilities:
    1. All different kind of editors integrated (XML, Java, Ant, Text, Properties, Velocity, HTML, WML, UML, XMI, XUL, VoiceXML, etc.) with many "perspectives" -> text, visual, sound, debug, etc. Can you imagine to have visual presentation of Ant files for example?
    2. Support of refactoring for all editors above.
    3. Only using Ant to describe my project, no need to have additional IDE "project" files. All the classpath dependencies, etc. are available inside my standard Ant task. So, I can open my project by opening an Ant file ;-) 4. Map my Ant tasks to the keystrokes and menus in my IDE (NetBeans has this feature already but it still need additional project XML files). Forget JSR 198 (A Standard Extension API for Integrated Development Environments), use Ant instead. It's already there, no need to repeat yourself.
    5. Execute, build, etc. only with Ant (already available today with many IDEs).

    So, all in all forget all those wizards, assistants development, concentrate on more important things... editors, editors with many perspectives...

    Cheers,
    Lofi.
    EJOSA - OpenUSS.
  14. J2EE support and GUI Editing[ Go to top ]

    IMO, integrated J2EE supports like wizards, assistants do not play a big role in "serious" projects. At the end you need to be able to execute everything outside your IDE (continuous build, etc.), so in this case what we need is a collection of Ant scripts. You can do everything IDE independent with Ant. Check out this thread in JavaLobby:IDE Lock-In:http://www.javalobby.org/java/forums/t18934.htmlMy "dream" IDE would have following capabilities:1. All different kind of editors integrated (XML, Java, Ant, Text, Properties, Velocity, HTML, WML, UML, XMI, XUL, VoiceXML, etc.) with many "perspectives" -> text, visual, sound, debug, etc. Can you imagine to have visual presentation of Ant files for example?2. Support of refactoring for all editors above.3. Only using Ant to describe my project, no need to have additional IDE "project" files. All the classpath dependencies, etc. are available inside my standard Ant task. So, I can open my project by opening an Ant file ;-) 4. Map my Ant tasks to the keystrokes and menus in my IDE (NetBeans has this feature already but it still need additional project XML files). Forget JSR 198 (A Standard Extension API for Integrated Development Environments), use Ant instead. It's already there, no need to repeat yourself.5. Execute, build, etc. only with Ant (already available today with many IDEs).So, all in all forget all those wizards, assistants development, concentrate on more important things... editors, editors with many perspectives...Cheers,Lofi.EJOSA - OpenUSS.

    Nice post.

    However, I'm very strongly against the 'perspective' approach, where the entire IDE switches display for debugging etc. This seems to be to be far too much like an old-fashioned 'modal' approach. I prefer the ability to have a range of different types of view of a project open at the same time, with debugging tools and windows as such views.

    Regarding Ant use; the XML nature of Ant files means that even IDE-specific project information could possibly be included using appropriate namespaces, and can then be transparently ignored if Ant is run stand-alone or in other IDEs.

    [Incidentally, the way that XML is used in NetBeans project files is something I dislike. Upgrading to Netbeans 4.1 from 4.0 is irreversible (or at least requires a lot of hacking of the XML to undo). XML is not supposed to work like this. A format should be extensible without breaking existing uses, and I see no reason why NetBeans 4.1 should not have been able to extend NetBeans 4.0 XML files without breaking their continued use in NetBeans 4.0.]
  15. J2EE support and GUI Editing[ Go to top ]

    <steve>
    However, I'm very strongly against the 'perspective' approach, where the entire IDE switches display for debugging etc. This seems to be to be far too much like an old-fashioned 'modal' approach. I prefer the ability to have a range of different types of view of a project open at the same time, with debugging tools and windows as such views.
    </steve>

    Agree with you. We should be able to open *more than one* perspectives at one time. But IMO the concept of "perspectives" itself for one "object" is very nice and easy extendable.

    <steve>
    Regarding Ant use; the XML nature of Ant files means that even IDE-specific project information could possibly be included using appropriate namespaces, and can then be transparently ignored if Ant is run stand-alone or in other IDEs.
    </steve>

    ... and it would be very cool if they (IDE vendors) would use it! So we have already a solution for IDE *independent* plug-ins! ;-)

    Cheers,
    Lofi.
  16. J2EE support and GUI Editing[ Go to top ]

    Nice post.However, I'm very strongly against the 'perspective' approach, where the entire IDE switches display for debugging etc.
    I like perspectives, here's why.

    I do various tasks when using my IDE. The most common ones are editing and debugging, but also sometimes CVS/Perforce submission or resolution of merged files, etc...

    For each of these tasks, I like to have a different set of views available.

    When writing code: outline of the class, navigation through the classes of my project, "problems" window that lists the current errors, etc...

    When debugging: breakpoints, list of variables, stack frames, console output, etc...

    It makes sense to have some views in both cases (obviously, the source you are editing but maybe also the outline of the class, for easier navigation) and some others typically belong to one type of action: I don't really care to see my breakpoints when I am writing code.

    Therefore, it makes sense to be able to group all these views differently, both in terms of sets but also geographically. For example, when I am debugging, my source window is typically smaller than when I am editing because I don't need a full view of my source and I'd rather use the screen estate for the stack frame.

    Having realized that, the concept of perspectives makes a lot of sense: it's just a convenient way to group all your views together and give this grouping a name of your choice.

    Of course, you are not limited to the "Java" or "Debugging" perspective. Nothing stops you from creating an "RSS Reader" or "Picture editing" perspective by picking the views that make sense for this particular task.

    How do you handle this when you don't have the concept of a Perspective?

    --
    Cedric
  17. J2EE support and GUI Editing[ Go to top ]

    For example, when I am debugging, my source window is typically smaller than when I am editing because I don't need a full view of my source and I'd rather use the screen estate for the stack frame.......How do you handle this when you don't have the concept of a Perspective?-- Cedric

    Well, I guess this depends on how tidy you like your desktop! Mine is messy, with overlapping windows which I flick between as necessary. The 'perspective' arrangement of IDEs like Eclipse does not feel natural to me. I want to be able to open stack frame windows, watch windows etc. myself when or if I need them. I like to keep the same view of source whether I am editing or debugging, and I like seeing the breakpoints as I am editing.

    The reason for my preferences is probably because I used to be a Smalltalk developer, and in that environment there is no difference between running and debugging - it is all the same thing, and you can halt the code, inspect variables and edit/compile code at any time - no need for perspectives. (I am starting to get to this blissful state in NetBeans, as I have discovered the 'Fix' feature that allows me to re-compile methods in the middle of a debugging session).

    I guess this is just a matter of taste...
  18. J2EE support and GUI Editing[ Go to top ]

    Well, I guess this depends on how tidy you like your desktop! Mine is messy, with overlapping windows which I flick between as necessary. The 'perspective' arrangement of IDEs like Eclipse does not feel natural to me.
    But Perspectives let you do that!

    If you want, you just stick to one perspective and you open and close views as needed, like IntelliJ or NetBeans.

    Or you define your Java and Debug Perspectives to look exactly the same (probably more what you are asking for).

    But as you do that for a while, you realize that it's nice to be able to save and load arrangements of windows because closing and opening views all the time gets old very quick.

    That's what makes Perspectives so great: you get the best of both worlds.

    --
    Cedric
  19. J2EE support and GUI Editing[ Go to top ]

    Or you define your Java and Debug Perspectives to look exactly the same (probably more what you are asking for).

    I guess so. It just seems to me that perspectives add yet another layer of complexity (as against some simpler "save named arrangement of windows") to using an IDE. Look at the numbers of perspectives and the apalling number of menu options for a typical Eclipse+plugins situation, and I am reminded of aircraft cockpit control panel. I have used far simpler IDEs that have seemed to me to be far more powerful.
  20. J2EE support and GUI Editing[ Go to top ]

    Or you define your Java and Debug Perspectives to look exactly the same (probably more what you are asking for).
    I guess so. It just seems to me that perspectives add yet another layer of complexity (as against some simpler "save named arrangement of windows") to using an IDE. Look at the numbers of perspectives and the apalling number of menu options for a typical Eclipse+plugins situation, and I am reminded of aircraft cockpit control panel. I have used far simpler IDEs that have seemed to me to be far more powerful.

    In fact eclipse perspective is just that. A saved arrangement of windows. In addition, it let's you hide items in new, show view and menus, that you don't want. Perspective is a catchy name for customizing the IDE for a specific task.
  21. J2EE support and GUI Editing[ Go to top ]

    In fact eclipse perspective is just that. A saved arrangement of windows. In addition, it let's you hide items in new, show view and menus, that you don't want. Perspective is a catchy name for customizing the IDE for a specific task.

    I guess the thing I don't like is the way that it is pre-customised by others. An example is when I first install Eclipse and first run the debugger. I get a message asking if I wish to switch into the 'debugging perspective'. My thoughts when I see this are 'why are you even asking me this? No other IDE I have used needs to do this. If I want stack trace or watch windows open I will open them myself'. I feel that Eclipse is 'getting in the way' of what I want to do, which is to keep things as they are and only open other tools as needed. I know I can customise things in different perspectives, but I just can't be bothered - I am simply not interested in having to do this. Also, it seems that every plug-in I add to Eclipse wants to introduce a new perspective.

    I believe that an IDE should start simple and allow the user to add complexity when required. Eclipse seems to start complex and require the user to fine-tune everything. It is not just perspectives - the sheer amount of fiddling and configuration required to install and set up J2EE support or Java 5.0 support (at least for my code) in recent milestone releases has been tedious. With NetBeans, everything is already set up, and it is so simple and clean. I can get on with developing, and forget about having to customise the IDE.
  22. J2EE support and GUI Editing[ Go to top ]

    An example is when I first install Eclipse and first run the debugger. I get a message asking if I wish to switch into the 'debugging perspective'. My thoughts when I see this are 'why are you even asking me this? No other IDE I have used needs to do this.
    I totally agree with that but usability studies have shown that we're both wrong.

    It didn't used to be like that: for quite a while, Eclipse would automatically switch to the right perspective, but users protested and got confused, so the Eclipse team added this dialog (which you can dismiss once and for all by checking the box "remember my decision".
    I know I can customise things in different perspectives, but I just can't be bothered - I am simply not interested in having to do this.
    Then just respond "no" to the question and Eclipse will stop switching perspectives.

    I'm a bit puzzled by that, personally: I don't want to have to open all the various views (stack frame, variables, breakpoints) one by one every time I want to debug (and them close them manuall when I'm done), but that's what is good about Eclipse: it accomodates both your and my working habits.
    Also, it seems that every plug-in I add to Eclipse wants to introduce a new perspective.
    That's not always true, they all add views and sometimes perspectives. Again, you can mix and match. For example, once I have installed the Perforce plug-in, I hardly use the Perforce perspective but I do open the "view history" view in my Java perspective because it's convenient to have it around when I'm writing code.
    I believe that an IDE should start simple and allow the user to add complexity when required.
    I don't believe Eclipse starts that simple, but that's probably a matter of taste.

    Interestingly, NetBeans is going the exact opposite way of what you are asking: they say their out-of-the-box experience is superior to Eclipse's because NetBeans comes preinstalled with all kinds of plug-ins that let you do JSP, J2ME and application server development right away.

    I don't think any approach is better than the other one. NetBeans is obviously using this argument to try and differentiate themselves from Eclipse, but as you show it yourself, it's an argument that can backfire.

    --
    Cedric
  23. I gotta disagree here. The out of box experience is key. I hate going and installing a lot of different plugins. I especially hate finding out there's a plugin I could of use but didn't since I didn't know about it. And I like when all the plugins are debugged and tested together so they will just work.

    I don't see any reason not to include plugins. It can't be download size.
  24. J2EE support and GUI Editing[ Go to top ]

    I'm a bit puzzled by that, personally: I don't want to have to open all the various views (stack frame, variables, breakpoints) one by one every time I want to debug (and them close them manuall when I'm done),

    I just minimise the views I don't want to see at the moment.
    NetBeans is going the exact opposite way of what you are asking: they say their out-of-the-box experience is superior to Eclipse's because NetBeans comes preinstalled with all kinds of plug-ins that let you do JSP, J2ME and application server development right away.

    True, but these don't require any annoying perspective switches! I have no objection to lots of plug-ins being pre-installed.
  25. J2EE support and GUI Editing[ Go to top ]

    I suppose I am also in the minority here who hates perspectives.

    I have had more success teaching basic Java to employees using Netbeans than I have Eclipse. But then again, this has been teaching people who are used to coding on 3270 Emus.

    But all that said, I've just had more luck working with Netbeans, especially 4.x than I have with Eclipse. I pretty much just boot up eclipse to use a DB query plugin.
  26. <mike>
    I have had more success teaching basic Java to employees using Netbeans than I have Eclipse. But then again, this has been teaching people who are used to coding on 3270 Emus.
    </mike>

    In your case I would make my own perspective -> "3270 Emus" perspective ;-) which should be similar to their editor style... By doing this your students can feel at home with Eclipse. Again, you can combine many views in your own perspective.

    Cheers,
    Lofi.
  27. <mike>I have had more success teaching basic Java to employees using Netbeans than I have Eclipse. But then again, this has been teaching people who are used to coding on 3270 Emus.</mike>

    My experience was the same. I actually ended up using MED (a text editor) from some Java classes I taught because I found Eclipse just got in the way – we were spending too much time trying to learnt the IDE rather than learning the language.

    Most of the software that I like as a developer is software that I don't have to learn – it fits in with the way I think, stuff is where I expect it to be. In the Java IDE world IDEA tops the league for me, but I can't really cost justify it at the moment. I don't actually like Eclipse very much – I just find it rather counter intuitive – but the major issue I have with it is the amount of time it takes me to set it up. I generally reckon on about two days to get a usable Eclipse installation.

    I had some work to do yesterday and was using a new laptop so to avoid the set-up grief with Eclipse I downloaded Netbeans. I was up and running in less than an hour and despite having not used it before found the menus, general integration with my set-up and overall ease of use impressive to put it mildly. I'll be using it as my free Java IDE as choice in future backed up with Dreamweaver for doing web straight stuff.

    Despite some recent postings (mostly from the MS camp) about how good it would be for the Java world if Eclipse was the only show in town I tend to the view that having other useful products around is a good think. As well as a good, healthy collection of IDEs – IDEA, Netbans, and Java Studio Creator we're well supported in products like Dreamweaver, Coldfusion, Apple's Web Objects and so on. And in the main I think this drives better products. A lot of things we all take for granted (refactoring support, decent UML support) are still missing from the MS .NET stack.

    Now if only Netbwans has IDEA's code inspectors….
  28. <mike>I have had more success teaching basic Java to employees using Netbeans than I have Eclipse. But then again, this has been teaching people who are used to coding on 3270 Emus.</mike>In your case I would make my own perspective -> "3270 Emus" perspective ;-) which should be similar to their editor style... By doing this your students can feel at home with Eclipse. Again, you can combine many views in your own perspective.Cheers,Lofi.

    Talk about time I do not have... Nice idea, if you have the time/patience. Why bother if you have something else that does the trick?
  29. <cedric>
    I like perspectives, here's why.
    </cedric>

    Me too, here's why:
    http://www.theserverside.com/news/thread.tss?thread_id=34246#172567

    Cheers,
    Lofi.
  30. I think you mean _maven_ support[ Go to top ]

    I completely agree with the idea of figuring out you environment setup from your scripts, but it should be based on a declarative build config like Maven.

    Lofi: if you haven't looked at maven you should spend some time with it.

    IMHO, ant is actually quite procedural. Maven is getting a lot closer to being purely declarative and the benefits shine through once you start using it on more then one project.
  31. Maven and Ant[ Go to top ]

    <hugh>
    Lofi: if you haven't looked at maven you should spend some time with it.
    </hugh>

    I know Maven since many Open Source projects use Maven today and that you can use Ant inside Maven. I agree with you that "declarative" project description would be the way and Maven is already declarative. Comparing both Maven and Ant:

    Top-down approach -> Maven:
    - Declarative which is very good.
    - MavenIDE as plugins for IDEs which is not really useful yet. No direct support from standard IDEs. Writing many plugins for available IDEs at the market is not a trivial job (debugger, code completition, etc.), IMO ;-)

    Bottom-up approach -> Ant:
    - Procedural which is not a very good good approach. It is though possible to add declarative support to Ant. And I think (hope), this is just a matter of time... Maybe Ant 7.x?
    - Integrated support from all IDEs is already available (code completition, debugger, etc.). Very nice and stable. NetBeans has already integrated Ant for menus and keyboard shortcuts. Eclipse 3.1 added Ant debugger.

    If I were an IDE vendor I would choose the bottom-up style since I did my investment in Ant. Adding declarative project support in Ant is easier than to write a new Maven plugins..., IMHO ;-)

    <hugh>
    IMHO, ant is actually quite procedural. Maven is getting a lot closer to being purely declarative and the benefits shine through once you start using it on more then one project.
    </hugh>

    Ditto with Ant. You only need to have a collection of reusable Ant scripts. I managed to write a lot of different applications (Learning Management System, Controlling System, Banner System, etc.) on the top of EJOSA which only uses Ant scripts for its build and execution management and also using different IDEs.

    Some dicussion about this matter:
    http://www.javalobby.org/forums/thread.jspa?forumID=61&mode=flat&threadID=12166&start=0&msRange=15
    http://www.javalobby.org/java/forums/t18934.html

    Cheers,
    Lofi.
  32. Maven and Ant[ Go to top ]

    Maven: - Declarative which is very good.- MavenIDE as plugins for IDEs which is not really useful yet. No direct support from standard IDEs. Writing many plugins for available IDEs at the market is not a trivial job (debugger, code completition, etc.), IMO ;-)

    Since I'm one of the coauthors of mevenide (http://mevenide.codehaus.org) I would be interested in what way it's not useful yet.
    The mevenide netbeans support does have code completion, debugging (profiling is missing yet), deployment for webapps (partly) etc... So does Eclipse integration (jbuilder and idea are a bit behind)

    As long as the IDE exposes APIs for the various functions, it's definitely possible to write maven-based support there. Like other OS projects without a budget, the progress is slow though.
  33. Maven and Ant[ Go to top ]

    Maven: - Declarative which is very good.- MavenIDE as plugins for IDEs which is not really useful yet. No direct support from standard IDEs. Writing many plugins for available IDEs at the market is not a trivial job (debugger, code completition, etc.), IMO ;-)
    Since I'm one of the coauthors of mevenide (http://mevenide.codehaus.org) I would be interested in what way it's not useful yet. The mevenide netbeans support does have code completion, debugging (profiling is missing yet), deployment for webapps (partly) etc... So does Eclipse integration (jbuilder and idea are a bit behind)As long as the IDE exposes APIs for the various functions, it's definitely possible to write maven-based support there. Like other OS projects without a budget, the progress is slow though.

    a couple of things would be nice.
    1. create a new maven file
    2. create a new project file
    3. create a new maven or project file from a template
    4. on the fly merge 2 maven or project files and create a merged file


    I was considering implementing these myself. the hard part is finding the time to do it between all the other OSS projects I contribute to.

    peter
  34. Maven and Ant[ Go to top ]

    a couple of things would be nice.1. create a new maven file2. create a new project file3. create a new maven or project file from a template4. on the fly merge 2 maven or project files and create a merged fileI was considering implementing these myself. the hard part is finding the time to do it between all the other OSS projects I contribute to.peter

    Peter,

    thanks for your input. items 1-3 can be achieved without any special support on the mevenide side in netbeans. You can create arbitrary xml file, plus you can save your file as a template. You should get code completion for maven.xml/plugin.jelly files and for project.xml as well.

    In the mevenide code we provide higher level templates. We use maven's genapp plugin to generate a new project. So if you you have any home-made genapp template, it will be accessible in the IDE. That means not single files get created, but whole preset project, even possibly with code, or project/server/deployment setup.
    even better, I've created a project template that will allow you to create project templates and bundle them as netbeans modules. So you can easily create company wide project templates and distribute them to all developers.

    I'm not sure I fully understand your bullet number 4. please feel free to file it as enhancement into our bug tracking system, with more details enclosed. (http://jira.codehaus.org/browse/MEVENIDE)
  35. Number of NetBeans users?[ Go to top ]

    I think 'proprietary implementation' just stands for the fact SWT rely on libraries of the target OS. What's wrong with that ?
    Anyway, I can tell you that the responsiveness of NetBeans 4.1 GUI on my PowerBook is far better that the slugginesh GUI of Eclipse 3.0 (I could revised my opinion with the 3.1 release, which seems to be far more usable; improvement of the 'proprietary implementation' of the SWT on Mac OS X ?)

    Bertrand
  36. I wish IntelliJ would go free or open source so that they could expand their marketshare. Its my IDE of choice.
    Get real :)) Eclipse developers are paid by IBM, Netbeans developers are paid by Sun.Who will pay for IntelliJ developers if they go free ? IntelliJ does not have hardware cache flow :))
    Open Source advocates still believe money grows on trees.

    I think the open-source model has been proven to work in some cases, JBoss for instance. It is hard to envision an IDE vendor that is able to survive off consulting/training/support. Especially since Sun and IBM are throwing alot of effort into 2 great alternatives. I wonder how long a tool such as IntelliJ can survive in such a competitive market.

    Mike
  37. I think the open-source model has been proven to work in some cases, JBoss for instance.
    JBoss is a service company. They offer support for software that happens to be open source, but the same model works for closed-source software.

    The money comes from the service, not the fact that the software is open-source.

    Similarly, RedHat and MySQL have businesses that are doing okay but one might wonder how much of it is due to the open-source nature of what they support as opposed to just the quality of it.

    At the end of the day, very few of the MySQL users care that it is open-source: they are just happy that it is free and of high quality.

    --
    Cedric
  38. I think the open-source model has been proven to work in some cases, JBoss for instance.
    JBoss is a service company. They offer support for software that happens to be open source, but the same model works for closed-source software.The money comes from the service, not the fact that the software is open-source.Similarly, RedHat and MySQL have businesses that are doing okay but one might wonder how much of it is due to the open-source nature of what they support as opposed to just the quality of it.At the end of the day, very few of the MySQL users care that it is open-source: they are just happy that it is free and of high quality.-- Cedric

    I should think every 'open-source' company is a services company - that's the model. My point is that what JBOSS provides 'services' for is alot more complex and varied than an IDE. If IntelliJ can continue to thrive in such a competivie environment, then hats off to them.
  39. .At the end of the day, very few of the MySQL users care that it is open-source: they are just happy that it is free and of high quality.

    That's not true, for the same reason that Apache is taking it upon themselves to build a JVM with a GPL compatible license.

    If MySQL weren't open source, it would never get bundled into the standard distributions. That would have hampered its uptake - other open source RDBMS like PostgreSQL would have benefitted.
  40. .At the end of the day, very few of the MySQL users care that it is open-source: they are just happy that it is free and of high quality.
    That's not true, for the same reason that Apache is taking it upon themselves to build a JVM with a GPL compatible license.If MySQL weren't open source, it would never get bundled into the standard distributions. That would have hampered its uptake - other open source RDBMS like PostgreSQL would have benefitted.

    That is nothing to do with what the MySQL users care about - it is to do with what Linux distributors care about. There are many reasons why Apache are working on an open source Java (not just JVM), but I would suggest that there is little evidence that this is because of a mass demand from users.
  41. .At the end of the day, very few of the MySQL users care that it is open-source: they are just happy that it is free and of high quality.
    That's not true, for the same reason that Apache is taking it upon themselves to build a JVM with a GPL compatible license.If MySQL weren't open source, it would never get bundled into the standard distributions. That would have hampered its uptake - other open source RDBMS like PostgreSQL would have benefitted.
    That is nothing to do with what the MySQL users care about - it is to do with what Linux distributors care about. There are many reasons why Apache are working on an open source Java (not just JVM), but I would suggest that there is little evidence that this is because of a mass demand from users.

    You're confusing the point. Why does IE have 90% marketshare? Because it's bundled with Windows. MySQL has a large marketshare among Open Source RDBMS's for the exact same reason, and it is its license that allows it to be bundled with Linux distributions.
  42. I wonder how long a tool such as IntelliJ can survive in such a competitive market.

    Good product, reasonable price, and low overhead for their business ;-)

    JetBrains is doing fine.

    Peace,

    Cameron Purdy
    Tangosol Coherence: Clustered Shared Memory for Java
  43. "I wonder how long a tool such as IntelliJ can survive in such a competitive market."

    In addition to what Cameron said...

    IntelliJ kicks the crap out of the other two is how. :)
  44. "I wonder how long a tool such as IntelliJ can survive in such a competitive market."In addition to what Cameron said...IntelliJ kicks the crap out of the other two is how. :)

    The situation reminds me fight between Hercules and Lernean Hydra. :))
    More IntelliJ kicks the crap out of Eclipse and NetBeans, more stronger and better they become.
    And IntelliJ is not Hercules...
  45. Bill, I can't agree more. Note that IntelliJ ships for free to open source projects contributors. We have that from CodeHaus f.e. (it's the full version, not a limited one of course).
    Alex
  46. UML and Netbeans[ Go to top ]

    Do any plans exist for the provision of UML modeling capabilities in the next release of Netbeans?

    Brian
  47. UML and Netbeans:SUN and UML[ Go to top ]

    I was wondering the same, I that's why I prefer Eclipse It is out of JavaCentric issue. Eclipse is 100% development driven whereas NetBean is 100% j2ee/java driven. And we might think that Sun does not support the UML initiative.

    But It is not a main issue to compare both since all good UML plugin on eclipse are not free.
  48. UML and Netbeans:SUN and UML[ Go to top ]

    I was wondering the same, I that's why I prefer Eclipse It is out of JavaCentric issue. Eclipse is 100% development driven whereas NetBean is 100% j2ee/java driven.
     
    I don't understand what 'java driven' means, but NetBeans is certainly not driven only by J2EE. It has first-rate support for J2SE and J2ME. The bundled Swing GUI designer is one of the best I have used.
  49. There has been alot of blogging about Swing vs. SWT..So let me just say this -- Swing is much easier to learn than SWT and all those blogs will support me on this. Swing, the NetBeans Platform and the NetBeans IDE are 100% pure Java - you are not being locked in to someone else's proprietary implementation.

    Woh there. When did SWT become proprietary?

     Also, the knock on Swing was performance. With the renewed emphasis on the developer for JDK 1.4.2 and JDK 5 there have been major improvements by the Swing team. Check out IntelliJ or NetBeans, both huge swing apps and very performant. NetBeans is all about the developer. We don't charge you anything to join or contribute to the community.

    I agree that Swing is pretty fast these days, but its too bad that some of the font improvements that are going on in Mustang didn't make it into Tiger.
  50. Netbeans RCP vs Spring RCP[ Go to top ]

    I have always felt that there was always a need for some kind of swing based rich client framework. So I was glad to learn recently that Netbeans in fact provided such a thing.

    Also, the guys at springframework have been developing some kind of rich client platform:
    http://www.springframework.org/spring-rcp

    Does anyone have experience with both and know in what way the springframework-rcp differs from the already existing netbeans framework? Does it address some existing problem with the netbeans framework? I'm asking that becuase I knwo the Netbeans framework has been around for a long time whereas the spring-rcp is quite new - AFAIK.

    I had the impression that the netbeans framework isn't something they promoted too much but maybe I'm mistaken.


    Thanks.
  51. Netbeans RCP vs Spring RCP[ Go to top ]

    I have always felt that there was always a need for some kind of swing based rich client framework. So I was glad to learn recently that Netbeans in fact provided such a thing.Also, the guys at springframework have been developing some kind of rich client platform:http://www.springframework.org/spring-rcpDoes anyone have experience with both and know in what way the springframework-rcp differs from the already existing netbeans framework? Does it address some existing problem with the netbeans framework? I'm asking that becuase I knwo the Netbeans framework has been around for a long time whereas the spring-rcp is quite new - AFAIK.I had the impression that the netbeans framework isn't something they promoted too much but maybe I'm mistaken.Thanks.

    I do not have any experience with Springframework but had extensive experience with NetBeans platform for a couple years ago. So the following is based on my experience from two years ago.

    NetBeans platform as a basis for a fat GUI client has lot to offer. However, if you need a framework to build a "business" application, with features to talk to backend systems, NetBeans platform did not turn out to be our choice. One major obstacle with NetBeans platform was its complexity or better to say its difficult vocabulary. All in all, NetBeans platform is a very solid platform. You will get lots of features.
  52. RCP to build on...[ Go to top ]

    If I need to build a Rich Client with Swing or SWT I would take Eclipse RCP. On the top of Eclipse RCP you can use SWT or Swing. The choice is yours.

    Read this thread:
    http://www.javalobby.org/java/forums/m91821341.html

    Cheers,
    Lofi.
  53. not sure I agree[ Go to top ]

    There has been alot of blogging about Swing vs. SWT..So let me just say this -- Swing is much easier to learn than SWT and all those blogs will support me on this.

    I started out using Swing to build GUI's, which mean writing custom TableModel, TreeModel and layout managers. Doing something simple like assigning a tree node with a given icon is much easier with SWT than it is with swing. There are things about Swing I like, but overall, I find SWT API easier to learn and requires less work.

    peter
  54. What features does NetBeans offer as a rich client platform?The most important point - and I cannot emphasize this enough -- is that NetBeans is 100% Java so you know that it will run on any OS which supports a 1.4 or later JVM. There is no special sauce required for each and every operating system or window manager. Let's face it - 80% of the cost of software is maintenance - so having one source root and one installer has tremendous advantages.

    This answer was hilarious... can't this guy provide one real advantage of netbeans as a rich client platform? If being 100% is the only advantage why not use just java after all?
  55. This answer was hilarious... can't this guy provide one real advantage of netbeans as a rich client platform? If being 100% is the only advantage why not use just java after all?

    What you may not realize is that SWT is native, so it doesn't run everywhere java runs. It's only on whatever platforms Eclipse wants to port to.
    If you are using the Eclipse platform as your RCP, you should definitely make sure you're using Swing.

    Tim
  56. What you may not realize is that SWT is native, so it doesn't run everywhere java runs. It's only on whatever platforms Eclipse wants to port to.
    Which, as of today includes all Windows, MacOS and all the various Linux desktop UI's. This argument is a bit tired, don't you think? If you are using another operating system to write Java code, I would certainly love to know which one.

    The fact that Swing is *not* native, though, is a big deal. For example, my Windows desktop is set on single-clicking but when I open a file dialog in NetBeans, I need to double click (plus, it doesn't look like the native one anyway).

    --
    Cedric
  57. The fact that Swing is *not* native, though, is a big deal.

    This is an interesting topic, which I have been dealing with for years. The conclusion I have come to is that it really isn't that big a deal. There has never really been a consistent user interface on platforms such as Windows. Microsoft is always introducing new styles, and some developer kits have had their own styles and dialogs (remember the Borland 'look' as implemented by TPW and Delphi?). Now there are skinnable apps with all sorts of looks and control styles. It is just my experience, but I have no complaints from users about Swing apps on Windows or Linux. Indeed, one thing I really like about Swing is the ability to have a common L&F on all platforms, so users don't have to cross-train on Java apps when they move between platforms.
  58. This answer was hilarious... can't this guy provide one real advantage of netbeans as a rich client platform? If being 100% is the only advantage why not use just java after all?
    What you may not realize is that SWT is native, so it doesn't run everywhere java runs. It's only on whatever platforms Eclipse wants to port to.If you are using the Eclipse platform as your RCP, you should definitely make sure you're using Swing.Tim

    Just curious.. What platforms are you writing Swing apps for that Eclipse doesn't run on??
  59. This answer was hilarious... can't this guy provide one real advantage of netbeans as a rich client platform? If being 100% is the only advantage why not use just java after all?
    What you may not realize is that SWT is native, so it doesn't run everywhere java runs. It's only on whatever platforms Eclipse wants to port to.If you are using the Eclipse platform as your RCP, you should definitely make sure you're using Swing.Tim
    Just curious.. What platforms are you writing Swing apps for that Eclipse doesn't run on??
    Depends on what "run on" means. While lately it's changed - good for Eclipse! - running Eclipse RCP for *anything* on Solaris was enough to make you blow your cookies. It "ran," if you were willing to tolerate how, uh, non-native it felt.
  60. Depends on what "run on" means. While lately it's changed - good for Eclipse! - running Eclipse RCP for *anything* on Solaris was enough to make you blow your cookies. It "ran," if you were willing to tolerate how, uh, non-native it felt.

    Yes, now it runs perfectly on solaris 10 (better than on windows imho), but ... after you compile swt yourself. I still don't get why the hell they can't make solaris 10 build (for x86). The official answer is that they lack resources. Rather funny, considering that sol 10 is free and it is not hard to get a x86 PC. But still, I prefer to compile it myself than use NetBeans. Maybe it's because that default font which reminds me an ordinary swing text editor ?
  61. You just read the first line and started posting. If you read the rest it clearly answers your question.
  62. What features does NetBeans offer as a rich client platform?The most important point - and I cannot emphasize this enough -- is that NetBeans is 100% Java so you know that it will run on any OS which supports a 1.4 or later JVM. There is no special sauce required for each and every operating system or window manager. Let's face it - 80% of the cost of software is maintenance - so having one source root and one installer has tremendous advantages.
    This answer was hilarious... can't this guy provide one real advantage of netbeans as a rich client platform? If being 100% is the only advantage why not use just java after all?

    Well, using "just java" means you're writing all of the infrastructure yourself, so there's an actual benefit to using a rich client platform, as long as the barrier to use is low enough. I don't know if it is - I'm a server-side programmer, so RCPs aren't really my interest, I haven't tried to use Netbeans *or* Eclipse as an RCP.

    But I can see the benefit, just like J2EE is often done with "just java." I *could* do it myself, after all, with just J2SE... but golly, I wouldn't want to.
  63. I am one of those developers who downloaded NB4.1 after using it earlier and abandoning it for Eclipse about 3 years back.
    I am using both NB4.1 and Eclipse side by side for a month now. I am impressed with improved performance, GUI Editor but most importantly J2EE and MIDP support in NB4.1.
  64. Swing or SWT?[ Go to top ]

    for desktop tools, view sight effection is the most important. one aspect which i prefer eclipse is for its natural outlooking. i downloaded netbeans for several versions. but only a little using for try it.i admit that netbeans has made a big progress. but still not better than eclipse not only in its outlooking, openess and easy to use, and so on. what ide still in your desktop? for me, besides eclipse, one is necessary, that is jreator. the small guy also with an original windows application looking, also the same to easy to use. a very good aid-tool to develope java.

    what u based on decides what u can do. it is also the reason why eclipse can achive so much.
  65. Swing or SWT?[ Go to top ]

    for desktop tools, view sight effection is the most important. one aspect which i prefer eclipse is for its natural outlooking. i downloaded netbeans for several versions. but only a little using for try it.i admit that netbeans has made a big progress. but still not better than eclipse not only in its outlooking, openess and easy to use, and so on. what ide still in your desktop? for me, besides eclipse, one is necessary, that is jreator. the small guy also with an original windows application looking, also the same to easy to use. a very good aid-tool to develope java.what u based on decides what u can do. it is also the reason why eclipse can achive so much.

    Okay, I don't understand this. Everyone says Eclipse is "native-looking."

    It's not.

    It's got it's own look. I can tell when I'm looking at Eclipse by its look and feel on EVERY PLATFORM, just like I can tell I'm using IDEA by its look and feel on EVERY PLATFORM. The "native" thing is a red herring.

    Eclipse' response time has always been pretty good, though, granted - although the production releases of IDEA have always been excellent as well (and pure Swing), and now Netbeans is doing Swing well too.
  66. Swing or SWT?[ Go to top ]

    This is unscientific but if I have to rate the overall performance of the major IDEs, NetBeans is still at the bottom. I like a lot of what's in NetBeans, but I find the superior speed & performance of Eclipse too compelling, not to mention all the tool vendors building on Eclipse now. I'm afraid NetBeans is a small market opportunity at this point for Sun. IMO, IDEA also performs better than this version of NetBeans.
  67. Swing or SWT?[ Go to top ]

    This is unscientific but if I have to rate the overall performance of the major IDEs, NetBeans is still at the bottom. I like a lot of what's in NetBeans, but I find the superior speed &amp; performance of Eclipse too compelling, not to mention all the tool vendors building on Eclipse now. I'm afraid NetBeans is a small market opportunity at this point for Sun. IMO, IDEA also performs better than this version of NetBeans.

    You're an idiot if you determine quality by looking at speed alone. Sure, maybe Eclipse starts up faster (maybe), but does it come with full J2EE support? Web services? No, you've got to look around for plugins. With NetBeans it's all straight out of the box, so no surprise that it's slower.
  68. Swing or SWT?[ Go to top ]

    You're an idiot if you determine quality by looking at speed alone.

    Wow, easy there tiger...
  69. Please forgive me, but I'm very sceptical about all those ootb features like secific j2ee support, j2me support etc. I'm work for quite big financial company and we've never used this magic, ever! We always are taying code in IDE/tools agnostic way. We never use those wizards taing developers to magic behind IDE and making project depending on IDE. In fact all my developers use IDEs of their choices (Eclipse, NB, Emacs) and thing they *MUST* provide is standard (standarized) ANT build. I cannot imagine real, big application done clicking in wizards (Well, actually I can when I recall my VC experience:) with a lot of generated bloat. So, from my, humble view, ootb support for specific j2ee servers etc. is, maybe interesting, but not much more.
  70. .[ Go to top ]

    Please forgive me, but I'm very sceptical about all those ootb features like secific j2ee support, j2me support etc. I'm work for quite big financial company and we've never used this magic, ever! We always are taying code in IDE/tools agnostic way. We never use those wizards taing developers to magic behind IDE and making project depending on IDE. In fact all my developers use IDEs of their choices (Eclipse, NB, Emacs) and thing they *MUST* provide is standard (standarized) ANT build.

    Here is the beauty of NetBeans - it uses ant as native build system - for instance you use a j2me wizard to create a new project but the result is an ant build script with everything set up, ant script which is able to handle all the complexities of j2me programming like development for multiple devices, etc. You can further add your custom tasks, build the application outside the IDE, etc. And although you can edit directly build scripts it's much easier to use the IDE to manipulate project settings than do it manually.
  71. ant, ant, ant[ Go to top ]

    Here is the beauty of NetBeans - it uses ant as native build system[...]

    Probably completely off-topic, but I think ant sucks bigtime compared to make.
    I for one want Makefile support. I don't have the patience to spew out crappy pointy tags to just get a bloody file listing. My experience has been that everything you do with ant is at least twice as slow as using a native counterpart (for instance, XSL transformations versus xsltproc) and takes ages to figure out and it's a pain to look at all that XML crap.
    Granted, make and shell programming is not quite portable and not for non-unix heads...
  72. ant, ant, ant[ Go to top ]

    Here is the beauty of NetBeans - it uses ant as native build system[...]
    Probably completely off-topic, but I think ant sucks bigtime compared to make.I for one want Makefile support. I don't have the patience to spew out crappy pointy tags to just get a bloody file listing.

    Some of us have the same reaction to the awful Makefile format :)
    My experience has been that everything you do with ant is at least twice as slow as using a native counterpart (for instance, XSL transformations versus xsltproc)

    Totally off topic, but I recently benchmarked Java 5.0 XSL transformations against xstlproc. xsltproc was very much slower - up to 10x slower in some cases.
    Granted, make and shell programming is not quite portable and not for non-unix heads...

    Exactly. It is far easier to manage XML files in IDEs and with various editors.
  73. ant, ant, ant[ Go to top ]

    Totally off topic, but I recently benchmarked Java 5.0 XSL transformations against xstlproc. xsltproc was very much slower - up to 10x slower in some cases.

    Can I share the tests please ? I'd like to see that.
  74. ant, ant, ant[ Go to top ]

    Totally off topic, but I recently benchmarked Java 5.0 XSL transformations against xstlproc. xsltproc was very much slower - up to 10x slower in some cases.
    Can I share the tests please ? I'd like to see that.

    Sure. I report this in the following post:

    http://www.theserverside.com/news/thread.tss?thread_id=33120#165715

    If you trace back the thread you can get the XML involved. Any simple XSLT should show the same findings.
  75. ant, ant, ant[ Go to top ]

    Sure. I report this in the following post:http://www.theserverside.com/news/thread.tss?thread_id=33120#165715If you trace back the thread you can get the XML involved. Any simple XSLT should show the same findings.

    I have a not quite so simple transform where xsltproc runs circles around Java 1.4 and at times use that several times a day, part of a build cycle. I've dropped ant and embedded xsl transforms because ant took 30 seconds to build while the makefile took about 5. This did include the startup time for the JVM.
    I've the latest libxslt source code that includes the (probably) well known XSLTMark tests (google seems to think it's popular) that I'm going to run myself with Java 5 and libxslt. Cheers.
  76. ant, ant, ant[ Go to top ]

    Granted, make and shell programming is not quite portable and not for non-unix heads...
    Exactly. It is far easier to manage XML files in IDEs and with various editors.

    Well, I think it's far easier to manage a simple text format with any indent-aware editor than to manage XML files with any indent-aware editor, including the ones that take dozens of seconds to start up, chew on half of your ram to be able to just provide an outline and code completion to xml tags - the very fact that you'd do such a thing is proof that it's overly complicated.

    And just out of curiosity - what do you mean by makefile format, and what exactly is so awful about it ?
  77. ant, ant, ant[ Go to top ]

    Granted, make and shell programming is not quite portable and not for non-unix heads...
    Exactly. It is far easier to manage XML files in IDEs and with various editors.
    Well, I think it's far easier to manage a simple text format with any indent-aware editor than to manage XML files with any indent-aware editor, including the ones that take dozens of seconds to start up, chew on half of your ram to be able to just provide an outline and code completion to xml tags - the very fact that you'd do such a thing is proof that it's overly complicated.And just out of curiosity - what do you mean by makefile format, and what exactly is so awful about it ?

    Just open up a big Makefile. How do you search for dependencies with a text editor? How do you even search for make targets using a simple text editor? With XML the semantics are there in the tags, so it is trivial to manage and analyse. The fact that I could use a tool to edit XML files does not mean I have to; it simply means that XML is well suited for long and complex documents as its in-build semantics makes it easy to search, manage, transform, select subsets etc.

    I simply don't believe all that stuff about chewing up half the RAM, as XML can be opened in simple editors, or even editors tailored for Unix people like Emacs.
  78. ant, ant, ant[ Go to top ]

    Just open up a big Makefile. How do you search for dependencies with a text editor?
    Exactly as you would search for dependencies with a text editor in an XML file.
    How do you even search for make targets using a simple text editor? With XML the semantics are there in the tags, so it is trivial to manage and analyse.
    No, it's exactly the same thing and with a simple text editor it's not trivial at all, both with the XML based format and the Makefile.

    Also since you've mentioned Emacs, fire it up and load a Makefile then go
    Alt+x speedbar
    Alt+x font-lock-mode
    (or just use the menu options instead) and there you go, colors and makefile outline with declarations and dependencies, navigable and everything.
    Now try the same with a build.xml - font-lock-mode will come up but the speedbar will come up empty-handed - no outline, not even listing the xml file. This is on a pristine Emacs 21.3.1 NT5 build I've just installed on my home computer for the purpose of this exercise.
  79. ant, ant, ant[ Go to top ]

    Just open up a big Makefile. How do you search for dependencies with a text editor?
    Exactly as you would search for dependencies with a text editor in an XML file.

    No, as in the text editor you will only find occurrences of the words, there will be no indication of the context of that word. It might be the name of a file, or it might be a dependency or a target name.

    On the contrary, with XML you can search for a word delimited as a tag, even in a text file.
    How do you even search for make targets using a simple text editor? With XML the semantics are there in the tags, so it is trivial to manage and analyse.
    No, it's exactly the same thing and with a simple text editor it's not trivial at all, both with the XML based format and the Makefile.
    As explained above, it's far easier with XML.
    Also since you've mentioned Emacs, fire it up and load a Makefile then goAlt+x speedbarAlt+x font-lock-mode(or just use the menu options instead) and there you go, colors and makefile outline with declarations and dependencies, navigable and everything.Now try the same with a build.xml - font-lock-mode will come up but the speedbar will come up empty-handed - no outline, not even listing the xml file. This is on a pristine Emacs 21.3.1 NT5 build I've just installed on my home computer for the purpose of this exercise.

    So what? I can point to a range of KDE editors which when 'pristine' handle XML. Emacs has a plug-in for XML.
  80. ant, ant, ant[ Go to top ]

    I started off really wanting to write a detailed but moderated critique to the wave of wheel reinvention that has come about with XML and Java but just got sick of it half way through.

    The remembrance of the sickening displays of self-indulgence and utter ignorance in projects, documents and discussions surrounding such feats (think java mail server, java ldap server, java make, java ohfuckitalready) was unbearable.
  81. ant, ant, ant[ Go to top ]

    I started off really wanting to write a detailed but moderated critique to the wave of wheel reinvention that has come about with XML and Java but just got sick of it half way through.

    Somewhere I have some old Fortran data files. They were part of a series produced over the years. They were huge, and the format tended to vary over the years. The format was initially well documented, but drifted over the years, as some people decided that having data defined by column position was old-fashioned and using spaces would be enough. Or tabs. Or commas. This varied depending on where you got the file from. Of course, this kept breaking the code that read the file, and this code evolved into a complex file-format decoding system.

    Somewhere else I have some binary data files I had to reverse-engineer. The format of the files was documented. Well, almost. The developer had put in an extra byte or two here and there, and forgot to mention this in the code. It took some time to figure out how the data was stored, the word length, the endian-ness of the data and the way that strings were delimited (not C-style!).

    I should keep these files ready to present as examples to anyone who thinks XML tedious or unwieldy, as against what it really is - one of the best things to have happened to data formats in a very long time. In my opinion, anyway.
  82. ant, ant, ant[ Go to top ]

    I myself have worked with data files of all sorts and genres ever since I was 14. I've also designed or just implemented binary protocols. I speak fluently SMTP, POP3 and HTTP (not SSH though :) !).

    You may want to think about the following: every properly defined data format is exactly as well-defined as any other. You can produce invalid samples of anything. I have yet to as many binary formats fucked up as I have seen invalid XML produced by ASP and Java programmers that can't be bothered to use any particular framework to generate XML and instead use string concatenation. On the other hand, if you think about it, the chances of a programmer fucking up a binary protocol of general use are close to nil, since 99.999% of the time you cannot "speak" it unless you use tested, proven code that is provided as part of a system.
    So your arguments are irrelevant. My computer speaks daily huge amounts of mail protocols, http, oracle, postgresql, XDR, RPC, IIOP, writes a shitload of log messages - need I continue ? There is a _huge_, just huge amount of inter-systems, inter-process communication that is _not_ XML based and NEEDS NOT BE in order to be effective and without error.
    I'm _not_ saying XML is crap. It could have been better, indeed. It is indeed a fine way of storing some type of information, for some types of applications, in modest amounts. But it's also marketed and seen as a panacea by vendors and many developers alike.
    XML *sucks* as a general data format. Next thing along that line of thinking are XML databases. Good riddance. Look at the W3C page on XML again: it says that XML is simple, flexible text format, derived from previous work (SGML) and meant for publishing. TEXT. It grew to be a generic data format, good for anything from rewriting your makefiles to databases - say what ?! Software engineering my ass, it's lazyness in it's purest, unaltered form. What would you say to a team of construction engineers if when building your house they'd just come up and say you know, we'll build your house out of these huge plastic cubes, cause they're simpler to glue together than to use cement, mortar, bricks, steel - it would have 500 sq. feet with about 200 of actually usable space but you don't have a problem with that right ? Software engineering is not about making easy, comfy choices. It's about making hard but sound choices and implementing them properly. You can do that with XML as well, it just doesn't mean that XML is the "best thing" that ever happened to data formats or any other hippie slogan.
  83. ant, ant, ant[ Go to top ]

    You may want to think about the following: every properly defined data format is exactly as well-defined as any other.

    One of the design considerations of XML was that it should be 'properly defined' to a large extent without someone having to provide details of exactly how it is 'properly defined'. With XML, the ability to cope with change is built-in.
    So your arguments are irrelevant. My computer speaks daily huge amounts of mail protocols, http, oracle, postgresql, XDR, RPC, IIOP, writes a shitload of log messages - need I continue ? There is a _huge_, just huge amount of inter-systems, inter-process communication that is _not_ XML based and NEEDS NOT BE in order to be effective and without error.

    Sure - if everyone sticks to precisely specified formats. Picking the examples where this works well does not help justify this in other cases.

    I would suggest that log messages are an excellent example of where XML would be a very good idea, as this would allow someone who does not know the particular logfile format you use to parse your files. This is why Java logging APIs now allow this.
    You can produce invalid samples of anything

    Yes, but with XML you have the ability to know that the data is invalid.
    On the other hand, if you think about it, the chances of a programmer fucking up a binary protocol of general use are close to nil, since 99.999% of the time you cannot "speak" it unless you use tested, proven code that is provided as part of a system.

    Unless, as in the example I gave, you are in a situation where you have to "speak" it and someone has changed the format. I don't have to 'think about it', as I have practical experience of this.
    XML *sucks* as a general data format.

    All I can say is that a totally disagree. I have given examples in a previous post why.
    You can do that with XML as well, it just doesn't mean that XML is the "best thing" that ever happened to data formats or any other hippie slogan.

    As I expect reasoned debate, and not insults, I'll take the 'hippie' as a complement :)

    I would suggest that we have differing opinions because we work with different data. I too have been worked with a very wide range of protocols and file formats, over nearly 30 years. Forgive me if I am assuming wrong, but my impression is that you have worked in situations with nice, standard, defined, tested formats where everyone knows what is going on. I have regularly worked with obscure legacy files and formats and situations where formats have been defined by developers who were .. "enthusiastic novices". This is one of the intended uses of XML - to encode data so that formats can be easily transformed and updates and to prevent legacy file formats from becoming out of date. In my less-than-ideal world, XML works. These 'fraction of a percent' of cases of dealing with file formats are the ones that cost the IT industry a huge amount of money. I would humbly suggest that all file formats and protocols eventually become 'legacy', and in a few decades, a considerable number of developers and users may then wish that, for example, the native file formats of Microsoft Office in the 90s was XML. (OK, so not the database formats - I'm not suggesting we go that far!)

    Well, that's my view.

    Steve 'Hippy' Zara
  84. ant, ant, ant[ Go to top ]

    Less than ideal world has it been here as well. And I've had to work and continue to do so with proprietary data formats so as to be able to talk to diverse embedded devices. Custom built "assemblers" for declarative and imperative languages, variant x of protocol y - good, clean family fun for everyone !

    Peace man ! :)
  85. ant, ant, ant[ Go to top ]

    Less than ideal world has it been here as well. And I've had to work and continue to do so with proprietary data formats so as to be able to talk to diverse embedded devices!

    I think I may just be able to outdo that! I have had to reverse-engineer undocumented binary data formats and protocols in real time, where a mistake in the protocols would have caused expensive hardware damage (and nearly did)!
    Peace man ! :)

    And to you!
  86. come to Netbeans Day :-). We'll be showing off our new GUI Builder which will blow you away.


    Anyone know what features the upcoming GUI builder has? I think the ease of which a GUI can be built in NB 4 is terrific, however the code it generates is awful. So I'm torn between using the tool and living with the code it creates or writing Swing code manually, which is a pain. Maybe this will be addressed?

    Mike
  87. Check out this Javalobby thread:
    http://www.javalobby.org/java/forums/t18969.html

    Demo of "Matisse":
    http://www.netbeans.org/files/documents/4/475/matisse.html

    Cheers,
    Lofi
    EJOSA - OpenUSS
  88. come to Netbeans Day :-). We'll be showing off our new GUI Builder which will blow you away.Anyone know what features the upcoming GUI builder has?

    http://www.netbeans.org/files/documents/4/475/matisse.html
  89. come to Netbeans Day :-). We'll be showing off our new GUI Builder which will blow you away.Anyone know what features the upcoming GUI builder has?
    http://www.netbeans.org/files/documents/4/475/matisse.html

    This is fantastic! Now, how about bringing this same technology to the JSP/HTML arena supporting STRUTS/JSF and there will be no one able to touch this!
  90. I used NB extensively during before switching to Eclipse in '02 primarly because Eclipse consumed lot less memory than NBs. Recently I happened to use NB 4.1 beta which was the _only_ that offered Java 5.0 support, and I was truely impressed with the improvements that NB team have made over a period of time.

    I now look around only to realize that Eclipse has truly eclipsed NB across the spectrum. As with any typical mindset - Why fix if it aint broke, no one is even willing to even give NB a dry run. If developers are not going to even try it how can one switch??

    With that said, if Eclipse were to sputter with problems, only then folks will look around for alternatives. With more and more industry heavyweights (Borland) putting their weight behind elipse, I feel the only thing NB people could do is keep working on it to make NB even more better, and not just NB better but Swing as a whole.

    However, for NB folks there are still people out there who are still looking & using NB. So just keep going and just keep up the great work.

    Here are some value add I would like to see - UI plugins for esoteric technolgies like JESS etc.

    Thanks, -v
  91. AspectJ support[ Go to top ]

    When will AspectJ be supported in NetBean ?
    I really did not have a happy experience with netbean 3.5.
  92. Refactoring support[ Go to top ]

    I have tried it but refactoring support stinks even more than the one in Eclipse. Why in heaven do they spend resources in developing zillions of wizards, GUI builders, etc., when all they need is an excellent editor.

    In my opinion, they should first create great editor and then all the rest.
  93. Refactoring support[ Go to top ]

    <quote>I have tried it but refactoring support stinks even more than the one in Eclipse.</quote>

    This is very harsh. Eclipse refactoring is the best available in any of the IDEs available in the market. NetBeans is not good. But very good for a start.

    <quote>Why in heaven do they spend resources in developing zillions of wizards, GUI builders, etc., when all they need is an excellent editor.</quote>

    If what you want is only an editor, why don't you just try just jEdit.
  94. Refactoring support[ Go to top ]

    B>
    This is very harsh. Eclipse refactoring is the best available in any of the IDEs available in the market. NetBeans is not good. But very good for a start.
    B>

    In my opinion, IDEA has the best editor in the market. Eclipse trails behind ... netbeans trails even more.

    B>
    If what you want is only an editor, why don't you just try just jEdit.
    B>

    It's not the only thing I want, but it is the basis of everything else. If editor isn't any good, then IDE as a whole isn't much.

    My point was, that to be an effective developer, you need a good editor. Everything else is a plus, but lack of good editor hurts.
  95. Refactoring support[ Go to top ]

    <quote>I have tried it but refactoring support stinks even more than the one in Eclipse.</quote>This is very harsh. Eclipse refactoring is the best available in any of the IDEs available in the market. NetBeans is not good. But very good for a start.
    While "best available in the market" is a subjective term, note that most programmers I know consider IDEA's refactoring to be far superior to Eclipse' capabilities - which does, in my opinion, put Netbeans' innate refactoring capabilities to shame.
  96. Refactoring support[ Go to top ]

    I think the best refactoring support is in IntelliJ.
    Check it out and you will be amazed
  97. RefactoringNG[ Go to top ]

    If you want to define your own refactoring rules, try RefactoringNG (http://kenai.com/projects/refactoringng/pages/Home).