{"id":101,"date":"2006-05-01T15:11:15","date_gmt":"2006-05-01T22:11:15","guid":{"rendered":"http:\/\/www.redmonk.com\/cote\/wp\/?p=101"},"modified":"2006-05-01T15:11:15","modified_gmt":"2006-05-01T22:11:15","slug":"help-spread-netbeans-virally-with-the-profiler","status":"publish","type":"post","link":"https:\/\/redmonk.com\/cote\/2006\/05\/01\/help-spread-netbeans-virally-with-the-profiler\/","title":{"rendered":"Help Spread NetBeans Virally with the Profiler"},"content":{"rendered":"<p><a href=\"http:\/\/profiler.netbeans.org\/images\/screenshots50\/14_sol_big.png\"><br \/>\n<img><\/a><\/p>\n<p>One of <a href=\"http:\/\/www.redmonk.com\/sogrady\">Steve<\/a>&#8216;s <a href=\"http:\/\/blogs.zdnet.com\/Burnette\/?p=83\">bookmarks<\/a> reminded me of <a href=\"http:\/\/profiler.netbeans.org\/\">the profiler in NetBeans<\/a>. I started using the Profiler (or JFluid as it was called back then) about a year ago when I was working at <a href=\"http:\/\/www.bmc.com\">BMC<\/a>. Large scale Java development always calls for a profiler sooner or later, especially when you&#8217;re (a.) writing a platform for other to write code for, or, (b.) pulling in data from across the network. Inevitably, someone else writes code that doesn&#8217;t clean up after itself, or there are networking or file system issues (usually caused by us) that eat up handles or eat up memory by not closing out threads. As I recall, Windows had a handful of quirks in these areas that caused several of the dread OutOfMemory exceptions.<\/p>\n<h2>When You Need a Profiler Yesterday<\/h2>\n<p>When it comes to profilers free is your best bet. Unless you&#8217;ve been wise enough to plan ahead and purchase a profiler, in a bureaucratic shop, you won&#8217;t have enough time between purchasing a profiler and fixing the memory leak. You usually need to figure out the memory leak in a matter of days because you&#8217;re always finding them right before release. See Murphy&#8217;s Law. Good luck getting a purchase through that quick at a large company. And even if you could do it quickly, the simple act of buying a product instead of downloading it is going to eat up precious time. While you could get trials of profilers, in my experience, developers are leery of anything that requires them to fill out paper work, for example, after the 30 day trail ends. It&#8217;s tough charging for profilers.<\/p>\n<p>Thankfully, there are several free profilers available. Many of them are difficult to setup and not well documented. The NetBeans Profiler is neither of those, however: setting it up is easy, and the community around it (as <a href=\"http:\/\/www.flickr.com\/photos\/_jon_\/\">The JC<\/a> found out) is responsive enough to fill in any holes in documentation and fix bugs. I had a fantastic experience using it.<\/p>\n<h2>Viral<\/h2>\n<p>The only &#8220;problem&#8221; with it is that it&#8217;s in NetBeans instead of Eclipse. I say problem because I was and am an Eclipse coder. I haven&#8217;t used NetBeans for years. However, the NetBeans profiler is so good that we ignored that problem and went through downloading and setting up NetBeans to use it.<\/p>\n<p>Put another way, the NetBeans Profiler was the reason I started using NetBeans again. While I didn&#8217;t use it for development, I downloaded and installed it, and I&#8217;d be lying if I said I didn&#8217;t think of trying out NetBeans again for development.<\/p>\n<p>In that sense, I&#8217;m very much echoing <a href=\"http:\/\/blogs.zdnet.com\/Burnette\/?p=83\">Ed Burnette<\/a> comments that tools make or break the IDE. Based on my anecdotal experience, the NetBeans Profiler could be a powerful viral way to market NetBeans. Once a developer download and uses the profiler, NetBeans has a window of opportunity to sell it&#8217;s IDE side.<\/p>\n<p>Building on that, I&#8217;d like to see NetBeans promoting the profiler every chance they get. While I appreciate both the coolness and functionality of  <a href=\"http:\/\/developers.sun.com\/prodtech\/javatools\/jscreator\/\">Creator<\/a> and <a href=\"http:\/\/www.netbeans.org\/kb\/articles\/matisse.html\">Matisse<\/a>, my feel is that the profiler seems to have taken a back-seat to those two. That&#8217;s at least been the case in the conversations and reading I&#8217;ve done; I&#8217;ll be curious to see if my perception is the same after JavaOne. (Perhaps, at <a href=\"http:\/\/javaposse.com\/\">Dick Wall<\/a>&#8216;s suggestion, I&#8217;ll squeeze some time in for <a href=\"http:\/\/www.netbeans.org\/community\/articles\/javaone\/2006\/nb-day.html\">NetBeans day<\/a> and see what the haps are there.)<\/p>\n<h2>MyProfiler<\/h2>\n<p>From the other angle, you could see someone making a <a href=\"http:\/\/www.redmonk.com\/jgovernor\/archives\/001350.html\">Genuitec move<\/a> and porting the NetBeans Profiler to Eclipse. Of course, that&#8217;d be a good move for <a href=\"http:\/\/www.genuitec.com\/\">Genuitec<\/a> to do themselves;&gt; Or, even more &#8220;other angle,&#8221; the NetBeans Profiler team could port the profiler to Eclipse. It&#8217;d be a strange, but exciting day, to see the usual dueling technology camps (in this case, NetBeans vs. Eclipse) model start to crack from the inside.<\/p>\n<p><b>Disclaimer:<\/b> Sun, Eclipse, IBM, and BMC are clients.<\/p>\n<p><!-- technorati tags start --><\/p>\n<p>Technorati Tags: <a href=\"http:\/\/www.technorati.com\/tag\/eclipse\" rel=\"tag\">eclipse<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/ibm\" rel=\"tag\">ibm<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/ide\" rel=\"tag\">ide<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/javaone\" rel=\"tag\">javaone<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/jfluid\" rel=\"tag\">jfluid<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/netbeans\" rel=\"tag\">netbeans<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/profilers\" rel=\"tag\">profilers<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/programming\" rel=\"tag\">programming<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/performance\" rel=\"tag\">performance<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/sunw\" rel=\"tag\">sunw<\/a><\/p>\n<p><!-- technorati tags end --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of Steve&#8216;s bookmarks reminded me of the profiler in NetBeans. I started using the Profiler (or JFluid as it was called back then) about a year ago when I was working at BMC. Large scale Java development always calls for a profiler sooner or later, especially when you&#8217;re (a.) writing a platform for other [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-101","post","type-post","status-publish","format-standard","hentry","category-programming"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/101\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/media?parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/categories?post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/tags?post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}