
| ||||
about why the best of possible worlds would involve Oracle building on top of the platform and moving JDeveloper's Oracle functionality over to NetBeans as Platform modules. It's not like we are talking a huge technology bridge - say like moving to an alien, native API - no both NetBeans and JDeveloper are built using the Swing toolkit. Get with it, Oracle. Move your developers to a great Java Platform solution and and the best IDE available. [Update : I found this out just now, yet another very recent adoptee of the NetBeans Platform, is NASA. You can read the details here .]
| ||||
|
|
|
| If you need an overview of what's in Java EE 6, there is a helpful webinar, Java EE 6 Overview, that you may be interested. John Clingan (GlassFish Group Product Manager ) and Harpreet Singh (GlassFish Product Marketing) give the talk. Also in the same place are talks on - An Overview of GlassFish, Migrating to GlassFish Application Server and Learning GlassFish for Tomcat Users. |
| If you missed it - there is a new whitepaper on how to deploy GlassFish in a cloud, Getting Started in the Cloud with the Sun GlassFish Portfolio. This paper describes how to take advantage of the Sun Glassfish Portfolio in the Amazon Elastic Compute Cloud (EC2) public cloud environment. The examples in this paper focus on running applications using the Sun GlassFish Enterprise Server in the EC2. |
| Shay Shmeltzer's (from Oracle's JDeveloper group) blog provides an interesting view. In my mind, it is a demonstration of how you can remove the context of real information from a chart and offer a view. The results on this have been in for some time. JDeveloper developers use it because it allows them access to Oracle's product APIs, databases and tools (period). Most developers that use NetBeans probably have never bought a Sun server or bought a Sun software product (unfortunately for Sun). The NetBeans crowd is there by choice - they have not been captured and locked in. Shay seems to have carefully avoided linking to my charts and posts. Why ? Because it would have made the following point and warned about the trick that gets played in his blog with the following graph. He shows this chart - | |||||||||||||||
Shay also attempts to explain why JDeveloper really does have a community. Shay, I know it has a community but from every indication it doesn't seem to be very big and it is very, very focused on Oracle's proprietary products and APIs. Since we mention surveys, personally, I like Developer.com's voting for Product of the Year - it doesn't pretend to be impartial - users simply vote for the products they use and like. Interestingly, NetBeans won the IDE of the Year last year. I didn't see JDeveloper on the runner's up list..anyway back to the topic at hand - the study you reference is, not surprisingly, skewed in a number of ways and well, we can all pick a favorite survey or study. First, it refers to Java IDEs - NetBeans does C, C++, RoR, Python, PHP, and bunch of other non-Java languages. Which, of course, we know JDeveloper does not. So, with very little effort, you can see that JDeveloper playing in only the Java space is going to have less developers. You can see from the next chart that there is more to software development than Java. NetBeans does all those languages on the chart- and that ends up where JDevelopers falls down very badly -
The point that is missed is that most reasonable people understand that NetBeans has a much larger community even if they use (questionable) readership survey numbers. Oracle would be hopefully focused on addressing on how to make these communities larger and more vibrant. I can think of a couple of ideas to do that. One way is to announce real choice to your JDeveloper community by doing the following plugins for NetBeans :
Would Oracle really do that ? Give developers and JDevelopers a choice by creating NetBeans plugins for their proprietary APIs and tools ? I actually think this would demonstrate a real understanding of what both of these communities should be about. |
| NetBeans IDE 6.8 Beta is available. I've been using it and it seems pretty solid. There is an information page, release notes, installation instructions and new tutorials to look at. It includes support for Java EE 6, support for Facelets (JSF 2.0), improved support for JavaFX, improved Kenai support, full PHP 5.3 support, better Maven support, added Ruby improvements, C/C++ support and much more. You can download it here. Lots of details of the release can be found at the New and Noteworthy Page. |
| In reflecting further on this topic (started in part 1), there are even larger aspects to this that don't have anything to do with the small population of JDeveloper users (that was about size mattering), there is another aspect to all this that deals with scope. And that in the end matters just as much. Let's take a look at a jobs chart. A while back I gave up on the usefulness of comparing the number job numbers of one IDE versus another relative to jobs. The vast, vast overwhelming majority of Java job postings don't bother specifying an IDE. In the chart below you can see the red line is Java jobs and the others relate to specific IDEs. In fact, the only ones that do specify an IDE is if they have something very unique that needs to be done - something like Eclipse plugin development, NetBeans plugin development or JDeveloper ADF development. Otherwise why should they ? The total number of jobs that are using Java dwarfs those jobs needing specific Eclipse, JDeveloper and NetBeans needs. If you look at the chart it is staggering - it is literally as if IDE specific jobs don't exist. Now if you remove the overall category of Java jobs and compare them to each other - they look interesting only because you have lost the real context of the comparison. The main context is Java in this chart - remove it and you lose perspective of how many developer jobs specify Java and don't specify an IDE. The majority of that big number of Java jobs either are using Eclipse or NetBeans or IntelliJ. Most JDeveloper developers are pushed into using JDeveloper by the need to do an Oracle product. For example, It is unusual to see a mobile developer freely choosing JDeveloper over Eclipse or NetBeans. It's not that it can't happen - it just is that for all practical purposes it doesn't happen with any meaningful numbers because that is not a particular strength of JDeveloper. This unfortunately for JDeveloper happens across other topic areas. JDeveloper as seen from the Google trendline in the previous blogposting is not a choice of the vast numbers of developers.
That chart was only for Java where NetBeans, Eclipse, IntelliJ and JDeveloper compete. This next chart (with the exception of the Java red line) is where JDeveloper is nowhere to be found and NetBeans has support .
This is why Oracle has missed a huge, huge opportunity.
|
I recently bought a new inexpensive laptop (a simple MSI A6000-029US, 16" screen, Intel Core 2 Duo Processor T6600, 4 GB of memory and a 320 GB drive) at a local Office Depot. I had some questions so I went back. The person at the help desk looked at my computer and said - "Oh, you use NetBeans". I asked them if they used it - they did. We talked for awhile about all things NetBeans can do and then I had to go. It's an interesting reality that I bumped into. First, four years ago, I doubt I would have had this conversation. The size of the NetBeans community has really grown outward and it has a footprint that extends beyond Java into some of the most popular languages being used today. It also has excellent Java tools that make it extremely attractive - from a sophisticated profiler to the best Swing GUI designer to a visual web construction facility. Second, NetBeans has succeeded in creating a large open-source -based ecosystem. NetBeans has grown very rapidly - no doubt at the expense of other IDE's such as JDeveloper. Most new Java developers start with Eclipse or NetBeans or IntelliJ - I don't think I have ever met anyone that started learning Java with Oracle JDeveloper. It's possible they are out there somewhere - but its such a small subset. That's because the primary purpose of JDeveloper is oriented around ... well ... Oracle. If you are not particularly interested in Oracle's products ... it a low probability event that you will chose Oracle as your IDE - even if you are not a beginner. Even so I was interested in seeing whether Oracle would understand that NetBeans has a large developer ecosystem that dwarfs JDeveloper and a platform that companies actually use for a multitude of purposes - NetBeans Rich Client Platform, Java EE, Java ME, Java SE, JavaFX, Groovy/Grails, Ruby, Scala, Wicket, C/C++, OpenOffice apps, Python, JavaScript and the list goes on and on, with the latest addition being Clojure . Oracle's recent announcement with regards to NetBeans :
In one way, this was somewhat welcome news that they recognize that NetBeans has a huge following (not quite as big as Eclipse but NetBeans has been gaining). Oracle, on the face of their words, plans to offer NetBeans. However this is a pretty typical corporate-speak announcement that does little for Oracle except barely avoiding animosity from this community. I've used Google Trends to provide a view on the trendlines between three IDEs - I've excluded Eclipse from this graph - Eclipse currently has the largest community. Using Google trends we can look at NetBeans, Oracle JDeveloper and IntelliJ IDEA:
It should be mentioned at this point - that JDeveloper is actually third behind IntelliJ IDEA (another excellent IDE). I think Oracle missed a real opportunity to actually leapfrog out of their straight-jacketed thinking on software development. JDeveloper is not a platform in any recognizable use of the word other than in a very strange mutation which describes anything created by any IDE as a platform. This, of course, is not the commonly used definition of a platform found in NetBeans and Eclipse. There are enough applications built ontop of the the core Platform APIs of the Eclipse and NetBeans platforms that this shouldn't be a source of confusion. What should have happened, Oracle should not have missed a beat and should have announced work on Oracle plugins for NetBeans and active Oracle support of NetBeans. This type of announcement would have brought a large and some-what skeptical NetBeans community much closer to Oracle. It would have been a big win for Oracle. NetBeans will continue to grow either way - but Oracle has missed a big chance to really change perceptions and at the same time move their tools to another level. What JDeveloper lacks is buzz, a wealth of community developed plugins, a wealth of support for other languages and a very, very large community. And of course it does not offer a platform in the NetBeans and Eclipse sense of the word. This is a huge missed opportunity for Oracle. |
| If you are interested in Java DB (or Derby) you might want to check out a talk by Kristian Waagan. You can start by downloading the presentation, Getting Acquanted with Apache Derby, and then watching the video. Rick Hillegas, a member of the Java DB Technical Team, gave another very nice presentation, A Java DB Overview. You can see the video here. Rick also has a nice writeup tutorial/article, Introducing Java DB 10.5.1.1, where he goes through a the features of the release. There is a nice Java DB (Derby) tutorial on how to use all the database features in NetBeans to work with Java DB, Working with the Java DB Database. It walks you through configuring the database, registering the database with NetBeans, starting the server, creating a database, connecting to the database, creating tables, adding table data, deleting tables, using an external SQL script and recreating tables from a different database. One area that often comes up is database tuning - there is an article, Tuning Derby, which you may be interested in as well. Finally David Van Couvering wrote a nice example of using Java DB, Synchronizing a Web Client Database : LocalCalendar and Google Calendar. More resources here. | |
|
|
|
| What is a MapReduce application ? Basically - MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a function (map) that processes a key/value pair and generates key/value pairs a function (reduce) that merges all the values associated with the same key. Details of this approach can be found here and here. The Apache Hadoop [1] project is a free open source Java MapReduce implementation. You can visit the Hadoop project and get more information. A new NetBeans-based IDE for Hadoop users has been made available. Hadoop Studio "makes it easy to create, understand, and debug map-reduce applications based on Hadoop, without requiring development-time access to a map-reduce cluster. The studio provides a real-time workflow view of a map-reduce job, which displays the individual inputs, outputs, and interactions between the phases of a map-reduce job. The workflow view of a job updates in real time with the developer's code changes. It then generates Java sources and compiles them into a binary jar file, which can be run on a normal Hadoop cluster." You can learn more about Hadoop Studio by visiting (a) Hadoop Studio's site and Hadoop's freshmeat site. [Thanks to Toni Epple for the pointer] |
|
|
It's Gadget-Friday. JavaFX Mobile. The HTC Diamond (a Windows Mobile phone) was demoed running JavaFX. Peter Pilgrim provided an audiocast on the HTC Diamond/JavaFX phone from JavaOne 2009 and Terrance Barr has a screencast from the same event. I think JavaFX will shine on larger screen- size phones. The New LG Chocolate. For those of us that like our iPhones too much - we need to get a life or a Nokia E71 (which is a better phone - you know like to be able to make, receive calls and clearly hear the other person). I like my iPhone but it doesn't stop me from being downright envious of what I'm seeing coming from LG. Check out the new (BL40) LG Chocolate - it's not out yet, but, wow! The LG Chocolate will have a 4 inch, hi-definition display with a 21:9 aspect ratio. Resolution will be 800 x 345. Note that it contains a 5 Megapixel camera with flash and Schneider-. Don't know the software specs on this but it does look flashy - and I suspect that this is the first of many more cellphones (this is a mass-market phone as opposed to as smartphone) in the same class. Rumor has it that it will use Adobe's Active Flash UI (1) and use LG's own OS. More at Geek.com, Mobile Crunch and PMP Today.
| ||||
| As a pointer - it should be noted that DZone/JavaLobby provides a discussion to my blog posting which has now been posted on DZone, "What's Wrong with JavaFX and What Needs Fixing. I refer to some of those comments below. Overall, some very good comments have provided more food for thought on the topic. Someone pointed out - ekschi.com: Thoughts on an JavaFX Article and some twittering on the topic - but the discussion is at DZone. Anyone that has been around the Java ecosystem for some years knows that the community goes through a lot thrashing about and gnashing of teeth before things get put right. I think JavaFX has a singular chance at this moment to put things right. When I wrote my blog on JavaFX and my hopes around fixing it- I was hoping to see a couple of things :
In looking at the comments, I was happy to see that a number of people had a few more thoughtful additions to my comments. One point was an observation by tmilard was that some of the Swing apps looke(a Swing Mashup) which are both d very '90's. The counterpoint to this argument is BlueMarine (an RCP app) and Aerith (a Swing Mashup) which are both visually stunning applications. There is no question that some of these apps use a fair amount of text
I really think that the JavaFX framework which has as its underpinnings Java, Java2D and Swing should have as a simple Java ecosystem responsibility - two-way interoperability. In my mind the lack of this functionality disables a number of really interesting possibilities with the technologies and at the same time makes JavaFX a simple product rather than an integral part of a larger, interoperable ecosystem. The building of a Swing/JavaFX two-way ecosystem bridge would allow not simply access to JavaFX from Swing (which in itself would be important) - but it would allow a much larger advantage in the form of coupling Rich Client Platforms - NetBeans, Eclipse and others to leverage it. So when I said that the current one-way bridge that exists is "apparently artificial' - it gets to the heart of the fact that you have a Java/Java2D/Swing substrate where JavaFX sits atop amazingly has no real way for Swing apps to leverage the features of JavaFX. This is a shame because this would be the fastest way to adoption of JavaFX and would also provide an RCP coupling that would benefit JavaFX. To adopt the current one-way bridge is a real failure of imagination which needs to be fixed. It is quite clear that JavaFX has many excellent features - but let's get on with fixing these outstanding issues that many would like to see fixed. | ||||||||||
| ||
| ||
| ||
| With recent spate of Rich Internet Application frameworks - such as Flex, Silverlight and more recently JavaFX (script) it is clear that there is a lot of confusion over using a Java-based RIA framework such as JavaFX or using a Rich Internet Platform based on Java such as the Eclipse RCP or NetBeans RCP. Of course - there shouldn't be any confusion except that Sun seems to have created the confusion by leaving open doors to dark rooms. First, JavaFX is hardly a replacement for something like the NetBeans RCP or Eclipse RCP - its target, in my opinion, only fills a small but important segment - small rich media internet applications. As a point of reference, there are tons of Swing-based apps - some that qualify as being excellent rich multi-media apps . I've been looking for some nice examples and found some that really impressed me. A few examples that I found on the NetBeans site (the descriptions are included as well) :
All of these applications seem to share three things in common - they are built using the NetBeans Platform, they are data-intensive applications that in most cases are of a mission critical nature - people use them to do real work and an intense number of data aspects need to to be visible (textually or graphically or both). The NetBeans Platform constitutes a framework for getting difficult things done relatively quickly - not simply from the standpoint that it provides a wealth of resources and allows the architecting of large modular software but it also allows integration with other frameworks. Slightly different Swing-based demos such as Aerith (code is here) provide excellent demonstrations of what one can do with Swing graphically. They leverage not only Swing but also - Java2D, OpenGL, Timing Framework (for animations), SwingX, Matisse, Google Maps, Flickr, Yahoo! and more. This is an example of the beauty of a nice open non-proprietary set of frameworks all playing together with open interfaces to web services. Note among these frameworks are a number of the residents at SwingLabs. So let's add Aerith to our list- since the code is out there and it offers an example along with some very flashy functionality. A few more :
---- Please note the second part in this series - Follow-up On Fixing JavaFX and the discussion on DZone . |
| Zembly has an interesting addition - Zembly Client Library - it is a library that allows JavaFX to use Zembly services. You can learn more on this from the Zembly blog, Using the ZCL/JavaFX Library, which walks you through building a JavaFX app and leveraging Zembly services. In another example, Build a JavaFX/ZCL Facebook App, shows you how to create an app which performs a local search for a coffee shop. Note that with NetBeans 6.7 there is a plugin allowing you to use Zembly's Web API Gateway Client Library. Check out the tutorial, Using the Zembly Web API Gateway Client Library with NetBeans IDE. |
| Two very cool items on Java DB. The first is the arrival of version 10.5.1.1 - you can download it from the Download section of the Java DB site. There is also a new tutorial, Introducing Java DB 10.5.1.1, which describes some of the new features. The new release introduces in-memory databases. Also introduced are generated columns (a column whose contents are computed from the values of other columns in the same row) and the OFFSET/FETCH (syntax which was recently added to the ANSI/ISO SQL standard), SQL roles. |
Indaba Music, a music collaboration service, has launched a new version of its Session Console 2.0. The new Session Console is built with JavaFX. The session console is a digital audio workstation that allows musicians recording, mixing and editing of music as a collaboration adventure. Think of multiple musicians collaborating with various
* Recording: High-quality audio recording directly to Indaba * Clips Library: Choose from hundreds of Creative Commons-licensed loops * Real-Time Effects: Chorus, reverb, EQ, flanger, and more. * Online/Offline Use: Use the console anytime, anywhere. This is a killer idea. Check out more on Indaba Music here. You can also read more about it at TechCrunch and Wired. | |
|
|
|
| The only IDE you will ever need is out with a new version. NetBeans IDE 6.7 has been released. You can find out all the details about what is in NetBeans IDE 6.7 by visiting the Release Information and the Features pages. Also check out the new intro-screencasts page and tutorial and docs pages. There is a NetBeans IDE 6.7 Overview screencast. NetBeans.tv also has the same tutorial. If you are on Twitter - check out Netbeans tweets. Go check it out and download it now. |
OpenSolaris 2009.6. Another part of CommunityOne 2009 was the launching of a brand new version of OpenSolaris . I have recently upgraded one of my PCs to a 2.5 Ghz Dual Core Intel box. I decided to try out (first) Microsoft Windows 7. I have no Windows boxes at home and so I decided to kill off Ubuntu (note I like Ubuntu it is a good OS) in favor of a Windows box (shock!). However, between there and here a few things happened. Windows 7 RC is in early access and I wasn't able to get it working on my system. So I did the next thing on the list - load the latest version of Solaris 2009.6. I installed it - which was a breeze - then I used the new easy to use network package management system to get lots of software. Then dropped NetBeans 6.7 RC2 onto it. Then I started playing with it. I'm somewhat stunned by (a) the fast performance, (b) by the incredible ease of use features (found my wifi,
|