Title: JavaTM IDE Shootout
1JavaTM IDE Shootout
Eclipse, Emacs, IDEA, JDeveloper, NetBeansTM
Software
- Don Coleman
- Joel Confino
- Peter Koletzke
2Goal of This Session
You know your text editor is great, but do you
really know what youre missing?
Discover the best and the worst of five of the
most popular JavaTM technology IDEs
3Agenda
- Overview of the playing field
- Common features
- The best and the worst of
- Eclipse
- Emacs
- IntelliJ Idea
- JDeveloper
- NetBeansTM software
- Discussion and Q A
4Overview of the Playing Field
Eclipse
- Open Source License
- Free
- Java technology IDE uses the JDT plugin set
- Runs on any platform with both a JVMTM software
and SWT implementation (Windows, Linux, SolarisTM
OS, AIX, HP-UX, Mac OS X) - Graphical Interface
- http//www.eclipse.org/
5Overview of the Playing Field
Emacs
- Open Source License
- Free
- Use the JDEE ECB Plug-ins
- Runs on Linux, Mac OS X, Windows, most UNIX
platforms - Both text-based and graphical interfaces
- http//www.gnu.org/software/emacs/emacs.html
- http//jdee.sunsite.dk/
- http//ecb.sourceforge.net/
6Overview of the Playing Field
JetBrains IntelliJ IDEA 4.0
- Commercial License
- Price
- Personal License - 249
- Standard License - 499
- Runs on Windows, Linux, Mac OS X
- Graphical Interface
- http//www.intellij.com/
7Overview of the Playing Field
Oracle JDeveloper 10g
- Commercial License
- Price
- Full version 995
- Free download with no time limit for evaluation
- Runs on Windows, Linux, Solaris OS, HP-UX, Mac OS
X - Graphical Interface
- http//otn.oracle.com/products/jdev
8Overview of the Playing Field
NetBeans Software
- Open Source License
- Free
- Runs on any platform with a Java virtual machine
- Graphical interface
- http//www.netbeans.org/
9Common Features
Dont leave home without them
- Code completion
- Structure view (fields/methods/properties)
- CVS Integration
- Ant Integration
- Plug-ins (though API varies)
- Easy access to JavaDocTM tool
- Some J2EETM platform features
- Debugger support
- Error highlighting
10Agenda Progress
- Overview of the playing field
- Common features
- The best and the worst of
- Eclipse
- Emacs
- IntelliJ Idea
- JDeveloper
- NetBeans Software
- Discussion and Q A
11(No Transcript)
12Eclipse
The good
- Open source / Free
- Trivial install
- Starts fast
- SWT UI looks good and is very responsive
- Can save screen layouts called perspectives (e.g.
one for coding, another for debugging, another
for profiling) - Refactoring support (rename, move, pull up, push
down, extract interface, use supertype where
possible)
13Eclipse
The good
- Java source code scrapbook editor (select a code
snippet, evaluate it, and display the result as a
string, save snippets) - Excellent plug-in support
- Many commerical plug-ins available, including
OptimizeIt, JasperAssistant, profiling,
Hibernate, regular expression testers, etc. - Includes templates and text shortcuts (generate
getters/setters, delegate methods, system output,
method declarations, loops) and template
generation with a syntax like the JSPTM
architecture
14Eclipse
The good
- Good CVS/ANT integration
- Local version control
- Shows javadoc for a class or method as a tooltip
(mouse hover), and when using code completion - Good navigation (declaration, type hierarchy,
call hierarchy, supertype, filename) - Multiple projects in same window, the build for
one project can depend on another project - Includes error-highlighting, spell check
- Large, active developer community
15Eclipse
The bad
- The platform is not Java language-specific, thus
some terms and procedures are too generic - Potentially higher learning curve (for example,
the menus are not intuitive) - Version 3.0M8 (which is beta) had some
performance issues, 3.0RC6 looks better 3.0
Final out June 30th - No out-of-the-box JSP technology support
16Eclipse
The ugly
- Too generic hard for new developers to get a
handle on
17Eclipse
Summary
- Open source
- Free
- Very strong plugin support (some free some
commercial) - Large feature set, higher learning curve
18Agenda Progress
- Overview of the playing field
- Common features
- The best and the worst of
- Eclipse
- Emacs
- IntelliJ Idea
- JDeveloper
- NetBeans Software
- Discussion and Q A
19(No Transcript)
20Emacs
The good
- Lightweight, compared to many IDEs
- Split buffer to simultaneously edit multiple
files - Auto indentation (hit TAB and code goes to the
right position) - Key bindings for commands (We don't need no
stinkin' mice) - Completely customizable (If you don't like
something, change it) - Many custom packages are available (plug-ins)
21Emacs
The good
- Code completion (most people don't realize this
is available) - Wizards for common features (imports, implement
interface, getters/setters, delegate methods,
etc.) - Ant integration
- Excellent CVS integration
- J2EE Technology Wizards (new Session/Entity
beans) - JavaDoc tool skeletons for easy documentation
22Emacs
The good
- Keyword and template expansion
- Regular expression search and replace
- Embedded BeanShell scripting environment
- Supports languages other than the Java language
- Supports XML and DocBook
- Free
- Highest version number, darn it!
- Not vi
23Emacs
The bad
- Code navigation not as good as other IDEs
- Learning curve for key bindings
- Cut and paste with problems with some other
applications (UNIX) - Installation and configuration is a bit complex
- JSP technology support limited
- Refactoring
- LISP
- Old school UI
24Emacs
The ugly
Need we say more?
25Emacs
Summary
- Java Technology Development Environment for Emacs
(JDEE) is essential - Emacs Code Browser ECB is a nice addition
- Powerful tool, but not as slick as "modern" IDEs
- Not for everyone it needs to fit the way you work
26Agenda Progress
- Overview of the playing field
- Common features
- The best and the worst of
- Eclipse
- Emacs
- IntelliJ Idea
- JDeveloper
- NetBeans Software
- Discussion and Q A
27(No Transcript)
28IntelliJ IDEA
The good
- Assists you "on the fly" (adds imports, completes
quotes and braces, prompts to handle exceptions) - Can avoid mouse almost entirely hot keys
include - Surround with try/catch with appropriate
exceptions - Surround with other blocks (synchronized,
if/while, etc.) - Implement/override methods
- Create getters/setters/constructors
- Create equals and hashcode methods
- Most dialogs are easy to navigate by keyboard
- Great templates (iterate array/collection, main,
stdout) - Smart about choosing types and variables for
templates
29IntelliJ IDEA
The good
- Excellent navigation, no need to wade through
packages or structure trees - Excellent refactoring (extract variables,
methods, interfaces, push, pull, etc.) - Code folding (hides imports by default, lets you
collapse large methods, comments or arbitrary
blocks of code) - Outstanding CVS integration
- Check one box and it works no need to configure
anything or check out the project again - Auto adds/removes files in CVS when moved or
renamed - Slick graphical diffs
- Editor highlights diffs in the gutter/margin
30IntelliJ IDEA
The good
- Ant integration (Ant task bar, code/property
completion within Ant build files even without
DTD) - JUnit Integration (right-click to run test/all
tests) - Excellent XML support / code completion
- For EJB beans, generates warnings or errors for
mismatched interface/impl methods, use of
inappropriate APIs (File, etc.) - For JSP pages, import handling, error display,
and code completion for custom tags and
scriptlets - Local version control
- Plug-in API, lots of plug-ins available
31IntelliJ IDEA
The bad
- Popup advice doesnt interrupt typing, but
sometimes obscures code - Multiple projects multiple windows
- Limited J2EE platform-based server integration
- Great for the seasoned developer, not
point-and-clickers - Not open source
32IntelliJ IDEA
The ugly
- Modules
- Project setup was simple and intuitive in v3
- v4 wants you to arrange your project in modules
to support Web and EJB architecture features - Overall, project setup is more of a pain
- Okay once you get used to it, but could
definitely use improvement!
33IntelliJ IDEA
Summary
- Really understands Java technology
- Accelerates your way of coding instead of
interrupting the flow with wizards or mouse
clicks - Error highlighting and helper functions are so
good youll never need to compile - Not free, but well worth the price
34Agenda Progress
- Overview of the playing field
- Common features
- The best and the worst of
- Eclipse
- Emacs
- IntelliJ Idea
- JDeveloper
- NetBeans Software
- Discussion and Q A
35(No Transcript)
36(No Transcript)
37Oracle JDeveloper
The good
- Every step of the life cycle in one tool
- UML, coding, debugging, profiling, deployment
- Choice of development styles
- Coder/Visual Declarative/Everything in between
- Visual Editor for JSP spec./HTML, JFC/Swing API
AWT - Visual Struts Page Flow modeler
- Visual Design of Java language, EJB architecture
- Code-View/Design-View Synchronization
- No separate generation stepalways synchronized
- Underlying code always accessible
38Oracle JDeveloper
The good
- Choice of Application Servers, DBs
- Deployment wizards for Oracle AS, BEA, JBoss,
Tomcat - Choice of Persistence Architecture
- EJB, TopLink, JavaBeansTM, ADF Business
Components - Built in J2EE platform-based container
- Ant, CVS, JUnit integrated into the IDE
- Extensive Web Services and XML support
- Database development features
- Extension SDK and many plug-ins
39Oracle JDeveloper
The good
- End-to-End J2EE Development Framework
- Based on Model-View-Controller Architecture
- Built in Design-Patterns
- Visual and Declarative development
- Technology choice for each layer
- Complete version with no time restriction
downloadable from http//otn.oracle.com - Only 995 for the full version
40Oracle JDeveloper
The bad
- Only one packaging with all the features
- Limited refactoring support
- Only 3 of the UML diagrams
- Excellent support for the Oracle DB but not
perfect for other databases - Not many books about it out there
- Requires a strong PC (512mb)
- Doesnt integrate with PVCS and MS VSS
41Oracle JDeveloper
The ugly
- JDeveloper's interface looks a little outdated
compared to modern UIs.
42Oracle JDeveloper
Summary
- Complete and Integrated
- Full development lifecycle
- One tool for Java, Web Services, XML, PL/SQL
- Easy to Use and Productive
- Improved coding productivity
- Visual and declarative development
- Oracle Application Development Framework (Oracle
ADF) - Standard, Open, and Extensible
- Support for latest J2EE standards
- Open source framework integration
- Open Extension API
43Agenda Progress
- Overview of the playing field
- Common features
- The best and the worst of
- Eclipse
- Emacs
- IntelliJ Idea
- JDeveloper
- NetBeans
- Discussion and Q A
44(No Transcript)
45NetBeans Software
The good
- Stores project settings in an Ant build file
- Can use existing Ant file for fast project setup
- Doesnt default to being too helpful
- Not the NetBeans software you remember
- No longer need to mount filesystems
- CVS integration very smooth
- Open Source
- Can use as application framework/platform as well
as IDE
46NetBeans Software
The bad
- Limited refactoring
- Too many configuration options
- Latest versions dont have great documentation
- Release cycle too fast for presentations where we
submit slides in advance!
47NetBeans Software
The ugly
- Often a generation behind commercial offerings
(hopefully v4 will be stable when you read this)
48NetBeans Software
Summary
- Easy to install and run on any platform that has
a Java virtual machine - Competitive features
- Great architecture
49Agenda Progress
- Overview of the playing field
- Common features
- The best and the worst of
- Oracle JDeveloper
- Eclipse
- Emacs
- IntelliJ Idea
- NetBeans Software
- Discussion and Q A
50Summary
An IDE for every twisted personality
- JDeveloper Productivity, thankfully with no
vendor/technology lock-in - Eclipse A free IDE for experienced developers
- Emacs Use it if you love it
- IntelliJ When you want an IDE that thinks like
you do - NetBeans Software Why would you want to use
anything else?
51Your turn
51
52JavaTM IDE Shootout
Eclipse, Emacs, IDEA, NetBeans Software,
JDeveloper
- Don Coleman
- Joel Confino
- Peter Koletzke