<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programmer&#039;s Notes &#187; feedback</title>
	<atom:link href="http://programmersnotes.info/tag/feedback/feed/" rel="self" type="application/rss+xml" />
	<link>http://programmersnotes.info</link>
	<description>Notes on the web-development and artificial intelligence.</description>
	<lastBuildDate>Mon, 18 Jul 2011 13:20:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>NetBeans 6.5 for PHP &#8211; My Experience</title>
		<link>http://programmersnotes.info/2009/05/22/netbeans-65-for-php-my-experience/</link>
		<comments>http://programmersnotes.info/2009/05/22/netbeans-65-for-php-my-experience/#comments</comments>
		<pubDate>Fri, 22 May 2009 07:00:48 +0000</pubDate>
		<dc:creator>Konstantin Mirin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[choice]]></category>
		<category><![CDATA[experiece]]></category>
		<category><![CDATA[feedback]]></category>

		<guid isPermaLink="false">http://programmersnotes.info/?p=260</guid>
		<description><![CDATA[Quick overview of the NetBeans 6.5 features that are useful for the web-development with PHP


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2><a name="intro">Introduction</a></h2>
<p>Personal productivity depends on the tools greatly, so I pay much attention to the programs I use. My previous post in this field was about <a href="http://programmersnotes.info/2009/03/01/mysql-workbench-the-database-modeling-tool-for-mysql/">MySQL workbench</a> which I consider the best free DB design tool for MySQL.</p>
<p>When I started coding PHP, I used Linux so I used Kate, which only had syntax highlighting and allowed to save multiple files opened as a project <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Next was Quanta, the Linux IDE for PHP. I spent lots of time developing there until I installed trial version of Zend Development Environment (ZDE) 5.5. That was really cool. I liked it very much and used for quite long time. Around half a year ago I heard about NetBeans and decided to try it out. I was thinking quite long about it, I didn&#8217;t have enough time to install and go through all it&#8217;s functions. Finally I saw that I will never have this time, so I started using it around 1.5 months ago. While using, I was putting down some notes about the things I liked and the ones I didn&#8217;t. So now I just want to present my list <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-260"></span></p>
<h2><a name="advantages">Advantages</a></h2>
<p>What I really liked about NetBeans is that it is &#8220;the only IDE you need&#8221;. It has excellent Java support, good HTML, JS and PHP support and it even has C++ support, but I didn&#8217;t try it out, I use the old good Visual Studio 6 <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />
So here are the things I liked:</p>
<ul>
<li>HTML support is excellent. It founds tag mismatch, highlights start and end tags (this is extremely helpful when you deal with large portions of bad-formatted code</li>
<li>When you&#8217;re in HTML scope, and typing &#8220;&lt;p style=&#8221;, it adds double quotes automatically! Little, but very nice feature <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Code formatting is great in everywhere. When working in Zend Studio, I was using 3rd party tools to format HTML, NetBeans does it perfectly. As for other languages, the only problem I have with it is that NetBeans puts opening curly bracket on the same line as loop or function definition, I like putting it on the next line so I see opening and closing brackets one under another. However, it highlights the opposite bracket, so it&#8217;s not a big problem <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Greatest thing I got there is normal debugging in PHP, not just &#8220;echo&#8221;, &#8220;print_r()&#8221; and &#8220;exit&#8221;. NetBeans integrates with XDebug and it is VERY convenient. It provides normal info as any other debugger &#8211; stack trace, local variables, superglobals, watches etc. It saves great amount of time. The only drawback is that NetBeans starts debugging session slowly, but it is definitely faster, than &#8220;echo&#8221; and &#8220;exit&#8221;</li>
<li>When switching from Zend Studio, I experienced some inconveniences because NetBeans uses other shortcuts. However, it provides more useful shortcuts than ZDE, and I got used to it quickly</li>
<li>When you code in languages like JS or PHP, where using variables without declaration is not compilation error, it is a common mistake to misspell variable and then get some interesting bugs. That&#8217;s where variable highlighting helps greatly. In NetBeans you can put cursor into any variable and in a second you&#8217;ll see all occurrences of this variable in the file. That is also very helpful when you are digging through someone&#8217;s code</li>
<li>Search is also much better, than in Zend. When you search in files, search results are grouped by file. When you search in the file, you get all occurrences highlighted. This is also very useful when you&#8217;re looking into someone&#8217;s code or performing some refactoring</li>
<li>Commenting support is also great. For example, you write some //comment. If the line is long, you want to break it into several lines and press enter when you&#8217;re inside the line. NetBeans inserts line break and next line continues as comment! This is so helpful when you&#8217;re commenting some file and your comments are quite long.</li>
<li>PHPDoc support is also great. The fact, that you get help for function, its arguments and return value if you specify function description in the PHPDoc format wasn&#8217;t new to me, but if you start writing PHPDoc comment for the ready function and put &#8220;/**<enter>&#8220;, you immediately get full PHPDoc template &#8211; all arguments list with <type> placeholders, @return keyword, so everything remained is only put actual description, everything is automated. That&#8217;s great! The only thing I&#8217;d like to add here is that when function definition is changed, it should update PHPDoc comment &#8211; remove correspondent line or add more variables <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I guess, that&#8217;s a dream</li>
<li>Very useful feature is auto-reloading files. You don&#8217;t need to reopen log every time it is updated. However, there is a slight disadvantage &#8211; if file is deleted in the file system, it doesn&#8217;t propose to save a copy like Zend does.</li>
<li>It has built-in diff tool. It is MEGA-useful <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I have to compare files quite frequently, I was using WinMerge before that, but it was inconvenient. NetBeans integrates everything in one environment and it is very nice!</li>
<li>Auto-complete is better, than in ZDE, it takes scope into consideration. However, it is sometimes buggy.</li>
<li>In NetBeans you can view your DB in the same IDE, perform queries, view tables structure and much more. This tool is not as good as phpMyAdmin, so I am using the latter most of the time. Main reason is that NetBeans is slow when switching from code mode to the DB mode. But maybe that&#8217;s my PC <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<h2><a name="disadvantages">Disadvantages</a></h2>
<p>And now some things I didn&#8217;t like:</p>
<ul>
<li>Code templates are worse, than in Zend Studio. This thing is really simple there and behaved as supposed. In NetBeans I add some template, e.g. &#8220;echo &#8216;&lt;pre&gt;&#8217;.print_r($var,true).&#8217;&lt;/pre&gt;&#8217;;&#8221; for the &#8220;pri&#8221; keyword. And sometimes it doesn&#8217;t appear, sometimes it is inserted with additional <tab></li>
<li>There is no PHP or JS help integrated into IDE. In Zend Studio I could select php function and click &#8220;F1&#8243; and get full help. In Aptana IDE there is the same for JS, but there is noting like this here! Why? Is it something complex?</li>
<li>No FTP support without additional plug-ins. I didn&#8217;t have time to explore this feature, but I don&#8217;t like the fact I have to install something more for such common feature <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>There is UML package for Java, why there is nothing like this for JS?</li>
</ul>
<h2><a name="conclusion">Conclusion</a></h2>
<p>Anyway, despite of the disadvantages, I think, that NetBeans is better, because it offers even more features, than Zend, but for free! And it&#8217;s really good with Java <img src='http://programmersnotes.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I especially liked refactoring there. Just put the name of the class and everything is changed correspondently!</p>
<p>What are your thoughts about NetBeans? Are you using/planning to use it? What are your workarounds for the disadvantages I noted? Can you add more &#8220;pros&#8221;?</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a title="Click me to see the sites." href="#" onclick="$$('div.d260').each( function(e) { e.visualEffect('slide_down',{duration:2.5}) }); return false;"><strong><em>Liked the post? Bookmark it</em></strong></a>
<br />
<div class="d260" style="overflow:hidden">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;title=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;title=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;title=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;T=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;title=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;title=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience+@+http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fprogrammersnotes.info%2F2009%2F05%2F22%2Fnetbeans-65-for-php-my-experience%2F&amp;t=NetBeans+6.5+for+PHP+%26%238211%3B+My+Experience" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://programmersnotes.info/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
<a style="font-size:90%;text-align: right; " title="Click me to hide the sites." href="#" onclick="$$('div.d260').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); return false;">Hide Sites</a>
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d260').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://programmersnotes.info/2009/05/22/netbeans-65-for-php-my-experience/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

