
<html>
<head>
<title>NetBeans IDE Testimonials</title>
<meta name="description" content="What people are saying about NetBeans IDE">
<meta name="NAV_LINK" content="Testimonials">
<link rel="stylesheet" type="text/css" HREF="../../netbeans.css">

<!-- ====================================================== -->
<!-- Please do not edit this file by hand, it is rebuilt    -->
<!-- automatically and your changes will be lost.  Contact  -->
<!-- webmaster for details.  Rebuilt at                     -->
<!-- #TIMESTAMP# 30 Oct 2010 04:13 CEST                      -->
<!-- ====================================================== -->
</head>

<body>

<h1>NetBeans IDE Testimonials</h1>

<P>People are saying great things about NetBeans - here's some of what we've heard about
recent NetBeans releases.  Thanks for your support and feedback!

Got something to say about NetBeans ?  <a href="/about/contact_form.html?to=1">Let us know!</a>

<ul>
<li><b>Sathish Kannath</b><p><code>I was glued to Eclipse since web development was easy with visual support, but it wasn&#039;t great, so I always looked for better options. Later I understood that powerful coding matters more than generated ones; so when I used NetBeans 6.8 and 6.9 I was surprised that I hadn&#039;t made the switch earlier. A really intelligent code editor and beautiful interface. &#40;Eclipse environment was a bit messy.&#41; Thanks guys for the best IDE in town. PS: Not to bash Eclipse, but now I use NetBeans more than Eclipse.</code>
<p></li>

<li><b>Richard Mclain</b><p><code>NetBeans is quite possibly the best free PHP editor on Mac OS X. NetBeans provides a host of features including syntax highlighting, project support, code navigation, unit testing, and code completion. My favorite part of the code completion is support for all classes in your project. Thus, it makes using a PHP framework a lot easier. It also has project templates for a lot of popular frameworks.</code>
<p></li>

<li><b>D Ferriman</b><p><code>I have been using NetBeans on Ubuntu for a year now, it is great. I am now switching from Rails development to Drupal, and it works for that too. I thought NetBeans as only being for Java &#40;which I do not know&#41; but it is now my favorite IDE.</code>
<p></li>

<li><b>Jaime Enriquez</b><p><code>Our company began using NetBeans about 2 years ago. We currently use it to develop j2me mobile applications, Brew applications as well as our in-house game development tools. We have found NetBeans to be a very easy IDE to use yet robust enough to handle any task needed. We have build several tools on the NetBeans platform and are very pleased with the results. We recommend NetBeans to any new developer that comes along. Thank you Netbeans.</code>
<p></li>

<li><b>Anzaan</b><p><code>NetBeans IDE is the best thing to happen in PHP world since sliced bread. I have used many different editors, Aptana, Eclipse PDT, Dreamweaver etc. But nothing beats the new NetBeans IDE in terms of features and ease of development. &#40;I could be biased here as I use NetBeans for java development and favour it over Eclipse and other Java IDEs, and for good reasons.&#41; ... Kudos to the NetBeans team for making perhaps one of the most significant contribution to the PHP community.</code>
<p></li>

<li><b>Angel Escobedo</b><p><code>I work in .net development, but in my last project I used NetBeans 6.1 IDE for J2EE, because we were running low on time. We really fell in love with the environmental tools and with the templates &#40;Spring and Struts&#41;. We used the GlashFish integrated server for a first demo, but then we changed to tomcat for the more complex work. It&#039;s impressive that this IDE has everything in one box. i think that now it is even more helpful with all the new features in 6.5. I love this!</code>
<p></li>

<li><b>Ray Gayton</b><p><code>I really love NetBeans for PHP. I had downloaded several different IDEs looking for one that would work  with PHP and have seamless integration with the database of my choice. I was also looking for an IDE with a good debugger. I had tried most of the popular IDEs. Komodo was the best until I found NetBeans for PHP. Unfortunately, I had already ordered Komodo when I came across NetBeans for PHP. NetBeans PHP blew the competition away. I installed it, setup a project, connected to MySql and Oracle all within a about 30 mins. You can&#039;t beat that! I only wish I had found NetBeans first! Thanks for a great IDE.</code>
<p></li>

<li><b>JR</b><p><code>I just wanted to say for the past year I have been struggling with Groovy support in<br />
Eclipse. I have tried NetBeans 6.0, 6.1, but for some reason I always had trouble getting<br />
Groovy and Grails support for it. I downloaded 6.5 Milestone 1 last month and have been using it every day for the past month and I just want to say THANK YOU! NetBeans 6.5 is by far the best Groovy/Grails IDE I have used. Please keep up the good work! Again, thank you!</code>
<p></li>

<li><b>Brian W</b><p><code>From a designer first and developer second, I&#039;ve tried the latest in Aptana and NetBeans. I waited to install NetBeans last but was that a mistake. I was really impressed with NetBeans&#039;s ease of use and the amount of tutorials a user can plug into once they&#039;ve completed the install. I&#039;m sticking with NetBeans/notepad&#40;from time to time&#41; here on out!</code>
<p></li>

<li><b>Adil Aliyev</b> - Software Developer, IDRAK Technology Transfer LTD, Azerbaijan Re

<p><code>In our research team we planned to make some visual components like windows-based applications for web platform.<br />
<br />
We wrote a project plan, and our student-programmers began writing for the<br />
components. We planned to make components which would take two months to write. <br />
<br />
Accidentally one of our developers saw NetBeans 6 JSF Visual Web Components. It had all components which we needed. We destroyed the team working on building components. :&#41; NetBeans and JSF technology saved us more time. Thanks NetBeans and Sun Microsystems.</code>
<p></li>

<li><b>Mike Jennings</b><p><code>I have been working on a new project recently for a client, where they wanted me to use NetBeans 6.1 beta as the IDE to do all of my development in. I was excited to have a reason to use the new NetBeans IDE because I have been hearing so many good things about it. To my surprise, since I hated the old versions of NetBeans, the IDE blew me away. I am now so impressed with it that even some of the minor bugs that I encountered are not enough to stop me from using it.<br />
<br />
The new NetBeans is by fare one of the fastest Java IDEs that I have used in a long time. The code completion and insight tool is so quick that the popups would get in my way sometimes. I love the way that the IDE uses Ant to compile and distribute your source code for you. That is refreshing, and seems to make the code more portable. The software seems to live up to all of its hype.</code>
<p></li>

<li><b>Abhrajit Mukherjee</b><p><code>NetBeans to the rescue:<br />
<br />
After wasting more than an hour putting the layout &#40;of a platform independent hard disk search software in place&#41;, I decided to download NetBeans. My computer is quite an old machine &#40;PIII 750Mhz, 256MB RAM&#41;, so didn&#039;t install NetBeans before. After installing NetBeans the speed was good considering my machine configuration. I started the NetBeans GUI Builder&#40;formerly Matisse&#41; and my layout was up and running in 8mins sharp. Wow! Kudos to NetBeans for saving my day. I won&#039;t say it was a breeze working with NetBeans, rather it was tornado.</code>
<p></li>

<li><b>Wayne Miller</b><p><code>Recently, I took two Java classes at the University of Pheonix. Primarily, I used TextPad<br />
to write all the script to create GUIs as part of class projects. Creating these GUIs with TextPad was difficult to say the least. Once class was over, I downloaded NetBeans 6.0 and found the Docs &amp; Support link. Very soon, I found that NetBeans makes child&#039;s play of creating GUIs. I love the drag and drop functionality.</code>
<p></li>

<li><b>Sushant</b><p><code>I started Java some 3 years ago. At that time, I was only familiar with C programming and little with VB. Unfortunately no one around me could guide me for it. A friend suggested that I needed to download JDK 1.4 to compile and run Java programs. When I was searching for JDK 1.4 I got links of NetBeans. After reading about it and the installation instruction, I downloaded it and installed it on my PC with little effort.<br />
<br />
At that time, there was no book in our library about Java. So I simply used to Drag &amp; drop and some blind exploration on NetBeans only. I downloaded some tutorials from various sites and tried them. Method listing and its javadoc was very helpful and slowly I got to work with many components well. I used to work mostly on GUI components. At that time I was so comfortable with these GUIs that I dared to grab a project in Java from a low Profile company from Delhi. Later came many books in our library and it greatly enhanced my skills. Especially the books from Sun Microsystem were really good.<br />
<br />
I owe my Java skills to NetBeans. It would have taken much longer if I have used any other IDE I believe.</code>
<p></li>

<li><b>Depriede</b><p><code>After three hours to try to implement my first web service in Eclipse, i did it in 10 seconds with NetBeans.... Thanks for all. NetBeans is fantastic! I always choose it when I can.</code>
<p></li>

<li><b>Graeme Rocher</b> - "The definitive guide to Grails" (page 337)

<p><code>Of the open source IDEs available, NetBeans provides the most advanced support for Groovy and Grails development. After making NetBeans one of the best Ruby IDEs on the market, Sun began investing in Groovy and Grails support, and with the release of NetBeans 6.5, the results of that investment have really begun to show.</code>
<p></li>

<li><b>Gene</b><p><code>When I started programming I was using notepad++ and really liked it but as projects got bigger and bigger and I needed support for frameworks and other features I started search for IDE rather than code editor. In just last 3-4 months I have tried Aptana PHP, EclipsePDT, NuShpere PHPed, Zend Studio Eclipse, Komodo Edit but never fell in love with them. But i downloaded NetBeans 6.5 3 days ago and I am already in love with it. In all other IDEs one or another feature is missing or they are very resource hungry. There are features which are available in NetBeans free of cost but you have to pay huge money to get those in other IDEs. Learning curve is also not as steep as Eclipse clones. It works out of box.</code>
<p></li>

<li><b>Grace Sojor</b><p><code>It all started back in 2005 when I was introduced to NetBeans while attending a national conference for Information Technology instructors and I was two years fresh from college. Then, it was unfortunate that our instructors didn&#039;t introduce to us NetBeans. I guess I am one of the lucky ones that my path crossed with NetBeans and I got hooked. I learned a lot in NetBeans and I appreciated programming more. The robust performance NetBeans provided with its GUI functions made it more appealing to me. That&#039;s how my love affair started with NetBeans. And these days, I definitely feel lucky that I have the chance to introduce this amazing IDE to my students.</code>
<p></li>

<li><b>Swoffenden</b><p><code>I&#039;ve always been in amazement at the beautiful application that is NetBeans. I love the IDE, the sharing it and the willingness to &quot;play well with others&quot;. It promotes a new breed of programming and creation and I couldn&#039;t be prouder to know and use this wonderful application.</code>
<p></li>

<li><b>Nilu</b><p><code>I&#039;d give it five stars especially for the DTrace integrations on Solaris and Linux. I liked it&#039;s memory leak detection tools. The syntax completion improved a lot and it moves faster on my machine. The cross references are getting better but there is a long way until they will match SlickEdit&#039;s performances. Also integrations with Glassfish and support for Python and Ruby improved.</code>
<p></li>

<li><b>Gabor Gossmann</b><p><code>For many months I couldn&#039;t use NetBeans. Now it has changed. It is a very professional program, with a lot of contact points, with a lot of programming languages. It&#039;s really great.</code>
<p></li>

<li><b>Peter</b><p><code>This is fabulous! I just completed the tutorial &quot;Getting Started with JAX-WS Web Services&quot;. I cannot believe how much the NetBeans 6.7 IDE does for me, in setting up the projects and routines, and generating the whole web-service call in a web client.  It&#039;s cake, for this long-time gnu-C vi programmer. The possibilities for our small company, just now starting the transition to web, are great. Thank you, IDE and tutorial developers!</code>
<p></li>

<li><b>Adam Spline</b><p><code>I have been using Elipse for several years for Servlet development.  I decided to give NetBeans a try, and I was amazed at the integration of the development environment.  In my experience, it takes much time to configure Eclipse to properly develop web components. Yet, right out of the box, NetBeans is pre-configured to develop, debug, and deploy web components quickly onto Tomcat &#40;which is included with the download&#41;.   While I am still surveying the features, I am impressed how quickly I could deploy a new web application.</code>
<p></li>

<li><b>S Mandal</b><p><code>I&#039;ve been using NetBeans since version 4.1 which was released back in 2005, primarily for Java work, and have now upgraded to v6.5. The development has been fabulous all the way, and the product is now at a level of maturity which rivals commercial grade products in many aspects. The clean and highly intuitive interface has always been nothing short of amazing. There haven&#039;t been too many times when I&#039;ve had to refer to some online documentation to find out a certain way of doing something, thanks to the so-very thoughtful UI. Best of all, the new PHP centric abilities in 6.5 are absolutely second to<br />
none! I&#039;ve been using a combination of tools for working in PHP so far &#40;6 years! ;&#41;&#41;, and it did get cumbersome from time to time. NetBeans 6.5 takes all of that away and gives you one rock-solid, all rounder, definite &quot;go-to&quot; tool for rapid and robust PHP development. This is really what I had been waiting for. 6.5 is a tremendous achievement for the NetBeans team, a huge thanks to you all.</code>
<p></li>

<li><b>Rajiv Perera</b><p><code>I work as a Software Engineer and for me NetBeans is like food to human. I have been using this IDE for 3 years as part of the application my company developed using the NetBeans RCP platform and today I am very confident about this IDE that i can recommend NetBeans as the IDE to any developer. Even our .Net team are also amazed by the features of it.</code>
<p></li>

<li><b>Salman Ahmed</b><p><code>Congratulations to all the developers and other people associated with NetBeans that put out the NB 6 release for winning the 2008 Jolt Award in the &quot;Development Environments&quot; category!<br />
<br />
I&#039;ve only been using NetBeans for about two months now, and this being my first experience ever with a Java development IDE has been tremendously positive - and productive! I&#039;ve been using various versions of MS Visual Studio on Windows over the past 10 years and I&#039;ve been used to the command line &#40;and gcc and make on UNIX&#41;, and I can say that NetBeans 6 is an awesome IDE product. There are a few rough edges here and there, but overall this is an awesome IDE.<br />
<br />
Congratulations to all the NetBeans developers and the NetBeans team for this release, and for winning the Jolt award. As a software developer, I know full well the hard work, effort, and dedication it must have taken to get to this point. Really well done everyone!</code>
<p></li>

</ul>


</body>
</html>
