blob: adebefb5cc4d48d834edb10d5764ba7a6b49798e [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>What's the Difference between NetBeans Platform and Eclipse RCP?</title>
<meta name="DESCRIPTION" content="NetBeans Books">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>What's the Difference between NetBeans Platform and Eclipse RCP?</h1>
<p>When looking for a rich-client platform as the basis of your applications,
you will find that there are only two to choose from&#8212;the NetBeans
Platform and Eclipse RCP.
<p>The NetBeans Platform and Eclipse RCP are more similar than they
are different. Both provide a framework for desktop application
developers. In both cases, a large number of features are provided
out of the box, from a docking framework, to an action system,
to update facilities, <a href="https://platform.netbeans.org/description.html">and much more besides</a>. In both cases, a rich
set of <a href="http://bits.netbeans.org/dev/javadoc/index.html">APIs</a> are provided, accompanied by many <a href="https://netbeans.org/kb/trails/platform.html">tutorials</a>,
<a href="http://wiki.netbeans.org/NetBeansDeveloperFAQ">FAQs</a>, and several <a href="https://platform.netbeans.org/articles/books.html">books</a>.
<p>However, there <i><u>are</u></i> some very significant differences that
you need to be aware of when choosing between them.
<p><b>Comparison Chart</b>
<p><table class="full-width colapse">
<tr>
<th></th>
<th style="padding:13px" class="">NetBeans Platform</th>
<th style="padding:13px" class="">Eclipse RCP</th>
</tr>
<tr><td rowspan="1" style="padding:13px" class="b-all"><i>UI Toolkit</i></td>
<td style="padding:13px" class="b-all">Standard Swing toolkit</td>
<td style="padding:13px" class="b-all">SWT</td></tr>
<tr><td rowspan="1" style="padding:13px" class="b-all"><i>UI Design</i></td>
<td style="padding:13px" class="b-all">Free, award winning, Matisse GUI Builder</td>
<td style="padding:13px" class="b-all">Commercial alternatives</td></tr>
<tr><td rowspan="1"style="padding:13px" class="b-all"><i>Module System</i></td>
<td style="padding:13px" class="b-all">Standard OSGi module system <p>or NetBeans-specific module system</td>
<td style="padding:13px" class="b-all">Standard OSGi module system</td></tr>
<tr><td rowspan="1"style="padding:13px" class="b-all"><i>Build System</i></td>
<td style="padding:13px" class="b-all">Out of the box, Maven or Ant</td>
<td style="padding:13px" class="b-all">Proprietary</td></tr>
<tr><td rowspan="1"style="padding:13px" class="b-all"><i>JDK Support</i></td>
<td style="padding:13px" class="b-all">VisualVM, a NetBeans Platform application,<br/>is in the JDK,
so many JARs from the<br/>NetBeans
Platform are in the JDK too</td>
<td style="padding:13px" class="b-all">No equivalent support</td></tr>
<tr><td rowspan="1" style="padding:13px" class="b-all"><i>Training</i></td>
<td style="padding:13px" class="b-all">Free community-based trainings <p>for non-commercial
organizations</td>
<td style="padding:13px" class="b-all">No equivalent support</td></tr>
</table>
<p>
<p><b>Details</b>
<p>Below follow more details on each of the points in the table above.
<ul>
<li><p><b>UI Toolkit.</b> When you use the NetBeans Platform, you
will be programming with the official standard UI toolkit, which
is Swing. Eclipse RCP, on the other hand, makes use of SWT instead.
There are many advantages in using Swing instead of SWT. For example,
there are thousands of 3rd party libraries available in Swing, which
means that they are very easy to integrate into NetBeans Platform
applications. SWT does not have that kind of wideranging support
and therefore you will have far less 3rd party libraries to choose
from. An example is in the area of UI testing: while Swing has Jemmy
and similar tools, there are no great equivalents for SWT. In
addition, SWT requires that native libraries be included with
the end product, for each platform to which you deploy.
</p>
<p>Thanks to Swing's look & feel support, you can completely customize
the appearance of your application, so that it is totally unique
and doesn't resemble any other application on the NetBeans Platform:
<p><img src="https://netbeans.org/images_www/screenshots/platform/blueMarine_thumb.png"/>
<p>Many other screenshots of NetBeans Platform
applications can be found <a href="https://platform.netbeans.org/screenshots.html">here</a>.
<li><b>UI Design.</b> The award winning Matisse GUI Builder is
a standard part of NetBeans IDE. You can use it when prototyping
and designing your applications on top of the NetBeans Platform.
Its drag-and-drop capabilities and point-and-click features
make this an ideal environment for UI design. Many NetBeans Platform
users have cited this feature, together with the support for
Swing, as their main reasons for choosing the NetBeans Platform.
Eclipse RCP has
a similar tool, based on the Matisse GUI Builder, although it
is not free.
<li><b>Module System.</b> Both NetBeans Platform and
the Eclipse RCP makes use of the <i>de facto</i>
standard module system, which is OSGi. In addition,
the NetBeans Platform provides its own module system, based
the standard Java approach to modularity,
relying on an extension to the JDK 6 ServiceLoader class for
intermodular communication.
<li><b>Build System.</b> A feature specific to the NetBeans Platform
is the fact that its build system is based on Ant. Ant is
a standard, non-vendor specific build tool. As a result, you
are not locked into NetBeans IDE but can, instead, use the
command line to build your NetBeans Platform applications.
In fact, you can build NetBeans Platform applications out of the box
with Ant, and also fairly easily with Maven.
<li><b>NetBeans Platform in the JDK.</b> Since JDK 6 Update 7,
many of the JARs that make up the NetBeans Platform are part of the JDK.
The JARs need to be there because Java VisualVM, the new JDK tool,
is created on top of the NetBeans Platform. When building your
application on top of the NetBeans Platform, this fact
can be useful, both
for development and delivery purposes.
<li><b>Free Training.</b> The NetBeans team offers free <a href="http://edu.netbeans.org/courses/nbplatform-certified-training/">NetBeans
Platform certification</a> to universities, colleges, and schools, as well as
non-commercial institutions in general. (Write to users@edu.netbeans.org
if you are interested.) A customized version of this course
is available to companies, at a standard price. Eclipse RCP
does not offer free trainings of this kind.
</ul>
<h3>Further Reading</h3>
<ul>
<li><a href="https://platform.netbeans.org/testimonials.html">Customer Testimonials</a>
<li><a href="https://netbeans.org/community/articles/boeing-netbeans-platform.html">What
Made Boeing Choose the NetBeans Platform?</a>
<li><a href="http://netbeans.dzone.com/news/interview-porting-a-crm-applic">What
Made Sepix Choose the NetBeans Platform?</a>
<li>Two documents of presentations where Eclipse RCP
and NetBeans Platform were compared:
<ul>
<li><b>NetBeans Platform vs. Eclipse.</b> Slides by Jaroslav
Tulach and Lukas Barton.
<br>Download: [<a href="http://edu.netbeans.org/contrib/slides/netbeans-platform/nb-vs-eclipse.pdf">PDF</a>]
</li><li><b>NetBeans Platform vs. Eclipse.</b> JavaOne 2008
technical session by Kai Toedter and Geertjan Wielenga.
<br>Download: [<a href="http://edu.netbeans.org/contrib/slides/netbeans-platform/Eclipse-RCP-NetBeans-Platform- JavaOne-2008.pdf">PDF</a>]
</li></ul>
<p>
</ul>
<p>
</body>
</html>