| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css" |
| media="screen"> |
| <meta name="author" content="Tinuola Awopetu"> |
| <meta name="keywords" |
| content="NetBeans IDE, NetBeans Platform, NetBeans Dream Team, Emilian Bold"> |
| <title>NetBeans Dream Team Interview: Emilian Bold</title> |
| </head> |
| <body> |
| <h1>Series: Meet the Dream Team Members</h1> |
| <span style="font-style: italic;">(In January 2007, we announced the 11 |
| charter members of the <a |
| href="http://wiki.netbeans.org/wiki/view/NetBeansDreamTeam">NetBeans |
| Dream |
| Team</a>, a community-oriented group of highly skilled NetBeans users |
| devoted to promoting NetBeans and working on the NetBeans Project. In |
| these interviews discover who they are, why they are passionate about |
| NetBeans and what goals they have for the NetBeans project.)</span><br> |
| <br> |
| <br> |
| <h1>Emilian Bold</h1> |
| <h4><img style="width: 213px; height: 240px;" |
| alt="NetBeans Dream Team Member Emilian Bold" |
| src="../../../images_www/articles/interviews/emilian-bold.jpg" align="left" |
| hspace="5" vspace="5">Emilian, Please tell us about yourself.</h4> |
| I work as a full-time consultant in Timisoara, Romania, and I make my |
| living mostly doing <a href="http://platform.netbeans.org/">NetBeans |
| Platform</a> development. I'm pretty |
| passionate about it. I left my previous job specifically to work on |
| NetBeans Platform projects after I had written enough blog posts about |
| the platform to feel confident that it was a |
| good development choice. Since then I've always had my hands in |
| platform-code in some way or another.<br> |
| <br> |
| I've also done server-side stuff or clustering code but always |
| something connected to the platform. Basically I'm more of a Java |
| desktop-programming guy but I have found some passion for clustering |
| recently. I also <a href="http://emilian-bold.blogspot.com/">blog</a> |
| about the NetBeans Platform.<br> |
| <br> |
| <h4>Why do you work exclusively with the NetBeans Platform?</h4> |
| The NetBeans Platform is a tried and tested framework for modular |
| development of Swing applications. With the platform, the worry of how |
| best to implement menu bars and combo boxes has been taken care of; all |
| you have to do is just use them.<br> |
| <br> |
| The main benefits of working with the NetBeans Platform are speed and |
| quality. Knowing that the platform is of top notch quality means I can |
| focus on the business logic. By speed I mean not only development speed |
| due to proper API usage and basically not reinventing the wheel but |
| also Swing speed. The platform is amazingly snappy and with the |
| customized look and feel, people sometimes can't believe it's a Java |
| application.<br> |
| <br> |
| Thanks to the platform's open-source nature and that it's been around |
| for a while, the codebase is better than what I would usually write.<br> |
| <br> |
| <h4>What is your favorite API in the platform?</h4> |
| The Lookup API is the backbone of the NetBeans Platform and I like it |
| the most. It encourages you to implement a proper SPI and have a |
| modular architecture and modular code. One might say that any |
| programmer will implement modular code, but the truth is that it is |
| either incomplete or comes late in the game and thus requires too much |
| refactoring. But with the module system and the Lookup API you get |
| modular code from the start. Sure, this will be refactored and will |
| evolve in time but it is a better starting point.<br> |
| <br> |
| <h4>Are you currently working on any major RCP projects?<br> |
| </h4> |
| I have a year-long RCP project for a big banking |
| company. It's a rich desktop client with a server back-end and also a |
| cluster on the side for massive financial simulation. I can't say more |
| about it though because I have a non-disclosure agreement with the |
| company. But I can provide two screenshots that show the usage of the |
| Explorer & Properties APIs, Matisse, JFreeChart and Visual Library |
| in the NetBeans Platform.<br> |
| <br> |
| <table |
| style="text-align: left; width: 50%; margin-left: auto; margin-right: auto; height: 45%;" |
| border="0" cellpadding="2" cellspacing="2"> |
| <tbody> |
| <tr> |
| <td style="vertical-align: top;"><a |
| href="../../../images_www/articles/bold-rcp1.png"><img |
| alt="RCP Screenshot 1" |
| src="../../../images_www/articles/bold-rcp1-icon.jpg" |
| style="border: 0px solid ; width: 294px; height: 179px;"></a><br> |
| </td> |
| <td style="vertical-align: top;"><a |
| href="../../../images_www/articles/bold-rcp2.png"><img |
| alt="RCP Screenshot 2" |
| src="../../../images_www/articles/bold-rcp2-icon.jpg" |
| style="border: 0px solid ; width: 299px; height: 211px;"></a><br> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <br> |
| I'm also trying to bring back the standalone editor (which is now |
| discontinued) in the NetBeans Platform. The NetBeans Editor API is |
| probably the biggest asset of the IDE and it's a shame people can't use |
| it in their standalone applications. True, there are few that may need |
| this feature but those that do will surely appreciate the quality and |
| the function it provides.<br> |
| <br> |
| If I have enough time, I would also like to finish my <a |
| href="http://emilian-bold.blogspot.com/2008/01/netbeans-platform-autoupdate-via.html">BitTorrent |
| AutoUpdate integration</a>. It's a feature for the platform that I |
| thought |
| about for a long time and finally figured out in January. How to allow |
| the NetBeans Platform to download modules from the Update Center via |
| BitTorrent. And I don't mean pirating movies here, I'm just talking |
| about a smarter download method than pure client-server. To me it makes |
| sense not to hammer the netbeans.org server but to allow users |
| worldwide to chip-in and share with others, thus reducing the load. I |
| just thought it was a pretty cool idea.<br> |
| <br> |
| What I need to do next is have two functional torrent download |
| implementations. The current one is based on the Snark library and I'm |
| not entirely sure of the compatibility with trackers. So I would like |
| another torrent downloader extracted from the Azureus codebase (which |
| is open-source Java). These two will implement a common SPI and |
| register themselves in the Lookup.<br> |
| <br> |
| I would have something like this SPI: |
| <tt>com.example.TorrentDownloadProvider</tt> with a <tt>downloadTorrent(URL |
| torrent)</tt> method. Each implementation would register their |
| implementation in |
| META-INF/services and then my URL handler can just pick one from the |
| Lookup (based on some user option maybe): <tt>Lookup.getDefault().lookup( |
| TorrentDownloadProvider.class)</tt>.<br> |
| <br> |
| The second part would be actually providing update centers which are |
| torrent-based. Now, the update center is just an XML file, so hosting |
| that should be easy and rather painless bandwith-wise. We just need to |
| keep it in sync with the main update centers. The problem is that we |
| need to seed the files via torrent trackers somehow (and I'm not sure |
| there's an “open-source” tracker that can do this for us).<br> |
| <br> |
| Ideally I would have people download the module, select the prefered |
| downloader (Azureus engine or Snark) then register to our Torrent |
| Update Center. And that would be it!<br> |
| <br> |
| Of course, the API/SPI will be a bit more complicated and the user must |
| be allowed to set various options like how much to share, maximum |
| speed, etc.<br> |
| <br> |
| <h4>What features in the NetBeans Platform would you encourage people |
| to explore?</h4> |
| This can be a bit hard to do because I'm so knee-deep in it |
| that I sometimes take things for granted and fail to realise what |
| impression they might have on others. But the most interesting features |
| of the platform that I tell people about are its modular nature and the |
| auto-update feature. These scream “good quality product” to me. When |
| you write modular code and also provide your customers with an update |
| center it sends a nice message: “Not only do we support this, but we do |
| it with minimal disturbance to your workflow”. Telling the user to |
| re-download a big setup is laziness when you could just let the program |
| update itself.<br> |
| <br> |
| <h4>What could be improved in the NetBeans Platform?</h4> |
| A problem that I have long noticed about the NetBeans codebase: we have |
| good quality code with nice features, but sometimes it's just too |
| platform-specific. Some developers already have huge codebases and |
| don't want or can't afford a migration to the platform, but they just |
| find a particular feature nice: like the new Diff module or the |
| “progress bar” we have from the Progress API. I think it would help our |
| cause to just make sure some of the code works as standalone. This |
| would allow developers to gradually adopt NetBeans Platform APIs up to |
| the point when they realize that a migration might be worth making. Or, |
| even if they don't migrate, they will still use and care about the |
| open-source piece of code they have from us.<br> |
| <br> |
| <h4>Is NetBeans IDE and Platform adoption high among developers in |
| Romania?</h4> |
| Java developers in Romania are fairly Eclipse-centered. A large problem |
| is that Eclipse usage is so big that new developers don't have an |
| option. They select Eclipse because it's what others use or they pick |
| it because that's how the project they've signed on to works.<br> |
| <br> |
| I do try to evangelize NetBeans IDE and Platform. Sadly we don't have |
| JUGs here so it all boils down to the very few main programming-related |
| events where I put on presentations about |
| NetBeans. I gave a NetBeans Platform talk recently at ITFest |
| Romania. It |
| was a small crowd of students and some high-school seniors. I was quite |
| technical and got some blind stares in the room. But some heads were |
| shaking so even young programmers “get” the idea behind the platform (I |
| touched mostly modularity, Lookup, auto-update).<br> |
| <br> |
| In order to get a higher share for NetBeans among the developers here I |
| think we need more presentations and trainings. People need to be |
| made aware of the features it has and how it can replace or complement |
| Eclipse. For example, the NetBeans Profiler that comes by default now |
| with the IDE is a top-knotch product. Years ago, good Java profilers |
| were mostly commercial products, and the NetBeans Profiler might be a |
| good entry point to show people the IDE's other features. <br> |
| <br> |
| <h4>How would you convince an Eclipse RCP user to give the |
| NetBeans |
| Platform a try?</h4> |
| It depends on what they do with Eclipse RCP. If they already have a |
| huge SWT codebase and they want to use existing Eclipse plugins then |
| they are kind of stuck. On the other hand, with a Swing desktop |
| application |
| there's little that Eclipse RCP seems to offer there (except the OSGi |
| module system which is nice). The NetBeans Platform has a good Swing |
| Windowing API and other useful APIs such as Nodes, Properties and |
| Explorer, which really cut down development time and are quite easy to |
| use.<br> |
| <br> |
| <h4>As a Dream Team member, how do you contribute to the NetBeans |
| project?</h4> |
| In the past year or so, I've had a rather busy period with my |
| consulting business, so I've dedicated less time than I would have |
| wanted to NetBeans. I'm waiting for things to settle down so that I can |
| once again have a routine that involves a big chunk of Platform work.<br> |
| <br> |
| In the past month, I've been active in the community with some emails |
| on the public and internal mailing lists. I post bugs as I find them |
| and I'm working on getting the Editor API working (again) in standalone |
| mode. This was a nice feature in the pre-6.0 world which is now gone as |
| few people used it. Well, I'm working now to bring it back and it's |
| nice to see a simple desktop application have a CSS editor with syntax |
| highlight for free. By simple desktop application I mean application |
| that isn't platform related.<br> |
| <br> |
| I also did a photo shoot for the NetBeans 6.0 launch—I had my face on |
| the website—so I guess modeling is always a choice if this consulting |
| work gets stale!<br> |
| <br> |
| <h4>Your last name must bring up quite a few puns. What's the |
| origin?</h4> |
| “Bold-italic-underline.” “The Bold and the Beautiful.” I've heard them |
| all and I've gotten used to them. It also means “pin” (like the needle) |
| in |
| Romanian so that's a source of even more jokes from the Romanian |
| perspective. I |
| think the name might be of British or German origin but I have never |
| found out. One day I'd like to trace it and my lineage and create a |
| family |
| tree. But I'm saving that for my “retirement” hobby list.<br> |
| <br> |
| <h4>Thank you, Emilian, and good luck with your projects!</h4> |
| <br> |
| <a href="http://emilian-bold.blogspot.com/">Emilian Bold's Blog</a><br> |
| <div style="text-align: right;"><span style="font-style: italic;">(April |
| 2008)</span><br> |
| <span style="font-style: italic;"></span></div> |
| <span style="font-style: italic;"></span><span |
| style="font-style: italic;"></span> |
| <h2>More Dream Team Profiles</h2> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-bien.html">Adam |
| Bien</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-brabant.html">Vincent |
| Brabant</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-chandler.html">Wade |
| Chandler</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-giudici.html">Fabrizio |
| Giudici</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-plewe.html">Joerg |
| Plewe</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-senger.html">Vinicius |
| Senger</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-silva.html">Edgar |
| Silva</a><br> |
| <a |
| href="https://netbeans.org/community/articles/interviews/dreamprofile-urrutia.html">Ibon |
| Urrutia</a><br> |
| <br> |
| </body> |
| </html> |