<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>The Community Speaks: NetBeans IDE 6.5, My New Favorite IDE</title>
  <meta name="author" content="Ruth Kusterer">
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="description"
 content="Quotes collected from netbeans community blogs and expert reviews about the 6.5 release">
  <link rel="stylesheet" type="text/css" href="../../netbeans.css">
  <style type="text/css">
.hi {font-size:1.2em;font-weight:bold}
blockquote {line-height:150%}
  </style>
</head>
<body>
<h1>NetBeans IDE 6.5: My New Favorite IDE </h1>
<span style="font-style: italic;">December 2008</span><br>
<br>
<br>
A month ago, the NetBeans community released <a
 href="../../community/releases/65/index.html">NetBeans IDE 6.5</a>.
Since then users worldwide have enthusiastically reviewed the IDE's new
PHP scripting, database and web development features, and more! Below
are
excerpts from satisfied users, and some converts!<br>
<br>
<h2>For developing Ruby Code, I head straight for NetBeans</h2>
<blockquote>
I'm primarily an Eclipse user, but I keep hearing about NetBeans
through the Java Posse and heck, I even subscribe to the NetBeans
podcast to try and keep an eye on what's up. [...]
The new release maintains what I first saw in 6.1: <span class="hi">a
very fast, full featured IDE. It's dead easy to get going, and there is
loads of documentation.</span> I find the project view to be much more
useful and better organised than the eclipse view of the same.<br>
  <br>
One thing I did like very much is that there's <span class="hi">built-in
Maven support</span>. I downloaded the Java SE installation, went to
the plugins window and selected "maven". About a minute later I had a
working installation. Funnily enough, where I think
NetBeans really wins is the
dynamic languages support. [...] For developing Ruby code, I head
straight for NetBeans.
[...] Heck, the JavaScript support is pretty decent too.<br>
</blockquote>
<p align="right">
Dominic Mitchell, <a
 href="http://happygiraffe.net/blog/2008/11/20/netbeans-65/">Jabbering
Giraffe</a> (<a
 href="http://happygiraffe.net/blog/2008/12/10/netbeans-correction/">p.s.</a>)
</p>
<h2>...this package holds nothing but the sweet stuff</h2>
<blockquote>
  <p>The list of early access Python tools includes an editor,
debugger and choice of Python runtimes. [...]
NetBeans is gaining some ground among non-Java developers. It's now <span
 class="hi">one of the top two Ruby IDEs on the market</span>, said
Gartner analyst Mark Driver. [...] NetBeans broader language support is
turning NetBeans into more of a workbench along the lines of the
open-source Eclipse Framework, which, Driver said, makes it more
competitive with those market-changing tools.<br>
  </p>
With the arrival of Eclipse a few years ago, many industry
watchers expected NetBeans to fade away, as did other Java IDEs. But
the toolset continues to stand as perhaps the <span class="hi">Eclipse
alternative</span>...<br>
</blockquote>
<p align="right">
John K. Waters, <a href="http://adtmag.com/article.aspx?id=23650">Application
Development
Trends</a>
</p>
<h2>...a much more mature and easy to use product<br>
</h2>
<blockquote>
  <p>I am assisting my team in migrating over to use Netbeans
for most of our development. There are a few things that [Zend] Studio
does better, but Netbeans is just a much more mature
and easy to use product, even this early in their PHP support (I
used RC2 first and it was darn good.)
They fully support JavaScript Auto Complete for all types of JS
objects, something Studio does not do, and even support the use of
PHPDoc in Auto Complete for our in-house developed code.<br>
  </p>
</blockquote>
<p align="right">
laurin1, <a
 href="http://www.zend.com/forums/index.php?t=msg&amp;goto=19723&amp;S=f9ecb8c59d3f82cd7dbe462aaad893ef">Zend
user forum</a>
</p>
<h2>NetBeans even does some of the things better than Zend Studio</h2>
<blockquote>
  <p>NetBeans, however, does about 95% of what Zend Studio does.
[...] NetBeans even does some of the things better
than Zend Studio - which is definitely an achievement.<br>
  </p>
NetBeans debugger immediately worked with the xampp installation
I had on my PC. The installer already picked up my apache from there,
and when I fired up the debugger, <span class="hi">it worked seamlessly</span>.
Getting Zend Studio's debugger up and running was a bit more of a
hassle, and I actually needed to consult Google for that. [...] <span
 class="hi">NetBeans 6.5 is officially my new favorite PHP/web-dev IDE</span>.<br>
</blockquote>
<p align="right">
Jani Hartikainen, <a
 href="http://codeutopia.net/blog/2008/12/01/netbeans-65-review/">CodeUtopia</a>
</p>
<h2>...the NetBeans plugin system Just Works<br>
</h2>
<blockquote>
  <p>They must have really looked at a PHP developer's daily
job, because <span class="hi">everything you need is already in there</span>:
SVN, CVS, CSS, SQL, and even support for jQuery! This even works within
1 document: NetBeans figures out what's JavaScript, what's PHP, and
indexes &amp; highlights all elements accordingly. And you can even
connect to a MySQL database. This is all out of the box. </p>
  <p>And if a feature is missing, the NetBeans plugin
system Just Works. Go ahead &amp; install additional features.
No need for a science degree there. </p>
  <p><span class="hi">Code completion is fast &amp; accurate. Manuals
are integrated. Existing Eclipse projects can be imported</span>, no
need to keep separate workspace directories. Just switch back and forth
between NetBeans &amp; Eclipse (or your other IDE of choice) until
you've made up your mind.<br>
  </p>
</blockquote>
<p align="right">
Kevin van Zonneveld, <a
 href="http://kevin.vanzonneveld.net/techblog/article/my_new_ide_netbeans/">KvZ
TechBlog</a>
</p>
<h2>This tool is fantastic!<br>
</h2>
<blockquote>
  <p><span class="hi">NetBeans can communicate with xdebug!</span>
I've played with xdebug before, but I could never get along with it,
there was so much setting up you had to do, so many little things to
change that could effect the end result - it just didn't seem
practical, so I kept to my own debugging methods. NetBeans, however
changed this!<br>
  </p>
This tool is fantastic! Close to 5 years
I have been developing in PHP and not once have I come close to using
anything as good as NetBeans. <span class="hi">The interface is clean
and concise.</span> It's fast with no lag when you need to see the
method list. [...] It's a perfect tool for anyone who uses PHP, what
ever their level, <span class="hi">I am going to suggest NetBeans to
all of my friends and hopefully you will too!</span><br>
</blockquote>
<p align="right">
Richard Ive, <a
 href="http://xanox.net/blog/2008/12/10/php-debugger-netbeans-xdebug-awesome/">Rants
Raves and Tech</a>
</p>
<h2>...a full-featured web application development environment<br>
</h2>
<blockquote>
  <p>[Regarding PHP, HTML, CSS, JavaScript editor support] this
release has become a full-featured web application
development environment. [...] Also, Sun has enhanced its
support for C/C++ developers, allowing them to develop locally on any
supported platform, and then perform distributed builds on other
computers/servers, and even remotely debug in, say, a remote
production-like environment.<br>
  </p>
  <p>This release includes an enhanced database connection
interface
[...] and built-in support for database operations. [...] Overall, it's
not meant to be a replacement for a complete suite of database tools,
but a lot of effort was put into <span class="hi">allowing developers
to stay within the IDE for the operations that they perform the most</span>.
  </p>
  <p>Sun is looking to make it the <span class="hi">development
environment for cloud computing</span>. This is both in terms of
developer tools and services, as well as the deployment and maintenance
of applications.<br>
  </p>
</blockquote>
<p align="right">
Eric Bruno, <a
 href="http://dobbscodetalk.com/index.php?option=com_myblog&amp;show=NetBeans-6.5---The-Untold-Story.html&amp;Itemid=29">Dobbs
Code Talk</a>
</p>
<h2>...compares favorably to more established competitors<br>
</h2>
<blockquote>
  <p>For web developers, NetBeans 6.5 now supports Ruby and PHP
out of the box. Surprisingly, that support is so good that it now
compares favourably to more established competitors like
Eclipse, Komodo IDE, and Zend Studio.<br>
  </p>
NetBeans isn't a toy for learning Java anymore. These days, it's
  <span class="hi">a powerful, multi-language development environment
that's free</span> for the taking. If you work on sizable PHP projects
and you're not using an IDE like NetBeans, <span class="hi">you might
be surprised at how much time a tool like this can save you!</span><br>
</blockquote>
<p align="right">
Kevin Yank, <a
 href="http://www.sitepoint.com/blogs/2008/12/16/php-support-in-netbeans-65/">SitePoint
PHP</a>
</p>
<p><br>
</p>
<h1>Join Your Fellow Bloggers on Planet NetBeans</h1>
<p>
Thank you all for reviewing the new NetBeans release and giving us your
take on the new features! If you have more stories to share
with your fellow developers, add your blog to our <a
 href="http://www.planetnetbeans.org">Planet NetBeans</a> blog
aggregator—your source for NetBeans-related news and tips from all
over the world.
</p>
</body>
</html>
