Skip navigation
1 2 Previous Next


16 posts

Working together with Duke Award winner and Java Champion Fabiane Nardon and the also Duke Award Winner and NetBeans Dream Team member Sven Reimers I have presented talks that discusses the Future Java Developer, the most recent ones in JavaOne Brasil and JFokus. Admittedly, we are not particularly visionaries, and our "future" is pretty grounded on experience today. Although during the talk we make some specific previsions, we're really not trying to foresee the far future nor even debate the future of the Java Technology. The idea is to look at what developers, specially the ones working with Java, can do today, to prepare their own future. Here, I'd like to present some of the main points of the talk.

Software development has always been an unique opportunity. It is what Malcolm Gladwell in his book "Outliers" calls Meaningful Work: "work that is autonomous. Work that is complex, that occupies your mind. And work where there is a relationship between effort and reward --for everything you put in, you get something out".

An important point about "meaningful work" that Gladwell makes is that it takes time for someone to master. He presents research in different fields -- music, computers, law, agriculture -- that correlate 10 thousand hours of doing a meaningful work, with being successful on the specific area. Gladwell shows that those that put that many hours are successful, and those that are successful, did put in that many hours. Gladwell also discuss that there is no such thing as a "born" genius, in short, the old saying "1% inspiration and 99% perspiration" is not only true, but inevitable.

Preparing for the future means putting now enough of those 10k hours in things that will allow you  to become better and relevant in the future. With that in mind, software development gives us some interesting benefits, that for lack of a better word, I'll call here freedoms. Some are old freedoms, existing since software started to be developed, some are more recent ones, that we are lucky to be right on time to benefit from.

Freedom of Imagination

As the Dilber cartoon says: "try to get this concept through your thick skull: the software can do whatever [you] design it to do". Your imagination is the limit. The lack of constraints make software something hugely powerful, and extremely complex. As a corollary, get through your thick skull that software development is hard, and it is not going to become easy just because there is a new language, new framework or new tool. In 1975 Edsger Dijkstra wrotethat "Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians." Got the idea of how hard it is? Developers that get excited doing the hard things and that work on their freedom of imagination will always be ahead of the pack.

Freedom to Run Anywhere

Java was not the first, but was the technology that popularized the "run anywhere" idea. This is not a Java-only benefit: since the industry broke free from the lock-in that developers had in the 90's, developers learned that they can write software that runs in multiple environments. Today, in one way or another, all development technologies are trying to give you this freedom. Well, maybe not all... But this is something that we should not "un-learn": do not let yourself become tied to a single vendor or single platform. Choose technologies that give you ample opportunities to experiment with multiple environments, this is the only way to have now the freedom to experiment today with things that will be valuable tomorrow, and also, to guarantee that, when devices, platforms and vendors disappear, you don't get dragged into the drain with them!

Run anywhere has another side that is as important: once a lot of the code can run in multiple devices, manufacturers can create new devices easier. We are seeing this trend with Android: by leveraging developers knowledge and tools, and allowing (even if only to a certain extent) developers to target multiple devices, it created a strong marketplace that many vendors could participate. With most of the development technologies targeting multiple platform, the future will bring even more devices, and the opportunity will be open to those that keep their freedom to run anywhere.

Freedom to Learn and Build

Open source is a world changing phenomenon, and may be the most important thing for software developers. Like Bart, repeat 10 thousand times, "Open Source is good for me, I'll fully embrace it". It is, and you should. If you plan to reach 10k hours of software development, you need to work on software that you are excited to work on, that you are passionate about. And if you want to be ready for the future, you need to be able to learn from what exists and build on other's work, and build with others, and have others building on what you did. If the future is built on what you helped build, you will be in the right spot when the future happens, you'll be making it!

Open source has many other advantages, for companies and governments, and users. But no one benefits more then the developer. The sooner you realize this, the sooner you'll learn to value your freedom to learn and build.

Freedom to Work Anywhere (and with Anyone)

Work from anywhere is a lifestyle that will become more common as time goes by. This has many implications, the most obvious one is that you can choose a great place to live at, and this is not something to ignore. But there is the other side of it: if you need to put 10k hours in something, it needs to be something you like, and chances are, that the best people doing whatever is that you like will not be seating in the next cubicle. Working from anywhere works both ways, for you and the people you're working with. To work with the best people, work with them no matter where they are: they will not move to your area just because. So, choose what you want to work on, you can work on anything from anywhere with anyone, at least when we're talking about software development. That also means you need to cope with working with people that are far away from you, be it physically, culturally, financially, linguistically or whatever. Respect that. Free yourself from the constraints of the work place, pursue your freedom to work from anywhere and with anyone, it will open big opportunities.

Freedom from Hardware

Recently there is some buzz about the 3D printing thing, how it will turn manufacturing on its head. Imagine, you need to manufacture something, and you don't need to worry about building a manufacture plant to do it, all you need is your ideas and design capabilities. Won't this be amazing? Yes it will. But if you're a software developer this is true today! Any idea you have, you don't need to buy/order/install/build a datacenter: you have all the machines you need, 5 minutes away. Dozens of cloud providers are doing the behind the scenes work, all you need is a good idea, and your code. Oh, remember the multi-platform thing we said earlier? Yep, it is valid for cloud too: make sure you don't get stuck to one of those guys, so choose smartly how you go about it. Of course this is not without it's issues, there are many. But the freedom to test, implement, grow and even throw away your ideas is already changing software development. And if you think cloud computing is the same old thing of having a server co-located somewhere, you really need to goplay with it right now. Free your ideas from hardware constrains, it takes time, so start now.

The future is your future...

As you can see, those possibilities are all true today. But, realistically, they are not the day to day reality of most developers. But it can be yours. So, what about the future? The future has more and more developers benefiting from those freedoms, and that means, more ideas being able to see the light of day, more open source to learn and build from, more devices and vendors to run the code that is developed, more people working together from different places.

Yes, that does means there will be more challenges: we'll need more code able to run concurrently for one. We'll need to benefit from the multi-core machines that are showing up. Our frameworks will need to support cloud environments. And yes, languages will show up that will benefit from those things better than the languages that exist today, and there will be new frameworks and abstractions that will allow us to be more productive on this environment. None of that is news: this is the development world. Remember, software development is complex, and no matter how the vendors try to put it, it is not about to become any simpler.

There will be a huge amount of developers coming from development countries like the BRIC (Brazil, Russia, India, China) and others (Africa, Indonesia...), that will have access to more learning because of open source, more chances because of cloud computing, and more jobs because of remote work. Software development will be more inclusive, because those freedoms will give more developers the opportunity to make their 10k hours, and join in. More developers means more ideas, more devices, more frameworks, more languages, more communities, and more open source. Software development is a mixture of engineering and art, and more artists can only be a good thing!

So, in short: to survive the future: learn to deploy in the cloud, while keeping your vendor and platform independence. Learn to work with people from multiple cultures, joining the open source revolution, so you become a better developer and a more connected one. From open source, learn to build on top of what others built, and to develop simple solutions so others can build on top of what you do. Think of services, cloud will provide that, and the new connected devices will require it. Neal Ford talks about the "Polyglot Programmer", because "applications of the future will take advantage of the polyglot nature of the language world." Become one!

And, finally, what if you're a Java developer? You're on the right track. You understand the importance of multi-platform and standards. Java is one of the most important language for open source software, and Java's most important features are themselves open source, so you'll be at ease there. Java is also the main focus of the cloud providers and Java software like Hadoop form the backbone of many cloud environments. Most cloud frameworks are done in or directly support Java. Not to mention that all of the important cool new languages that are being talked about run on top of the JavaVM and integrate well with your Java libraries and knowledge.

In the end, what matters is your passion: to prepare for the future, choose something you're excited about, consider the cloud, build it as and with open source software, join in or attract people from anywhere. Keep your independence. You'll do great!


This article is crosposted to my personal blog at week, Oracle officially nominated SouJava for an Executive Commitee seat on the Java Community Process (JCP), to each I have been indicated as the group's representative. Since then, I have received many e-mails, and started writing this lines several times but couldn't get too far... There is no simple messaging in regards to the JCP those days, and to even start, it means touching on all the large issues that are at stake, including Apache, Harmony, Android, OpenJDK, JSE, TCK, JSPA, open source, Oracle and everything else... Not surprising: the JCP is the crossroads where everything Java meet at some point.

So, I'll start simple and let all those issues for other posts...

SouJava was nominated for the JCP. The group is an important and active Java Users Group, based in São Paulo, Brazil, have a few tens of thousands members and host activities in several cities in the country. SouJava has been working with the JCP for a long time: it was the first JUG to join the program and has been promoting the JCP in Brazil for years. SouJava worked heavily to get the Brazilian Government to participate and recognize the importance of the JCP, and to get open source, standards and Java into the government agenda. SouJava pushed Brazilian developers to participate in the JCP and many of the group's directors have joined JSRs helping build the group's experience. SouJava is respected by developers, companies and government, and is part of the important discussions about software development in Brazil. Having helped connect the Java and the open source communities in Brazil, the group had an important participation on the open sourcing of Java. SouJava will bring its passion for the Java technology into the JCP to fight for transparency and participation.

As for me, I have been involved with the JCP for a long time. JCP's Patricksays that I'm one of the first individuals to join as a member, and I have participated in the backstage discussions of many of the issues that happened. I consider the JCP one of the most important cornerstones of the Java technology, Java's most important feature.

For a long time I felt at ease with the JCP, since Apache was part of the EC. Geir Magnusson is a long time friend, and the fact that he was fighting for the things I believe, made me feel that I had someone to defend my rights. I respect and understand Apache's decision to leave the JCP, but for me, once Apache and Geir decided to step down, I felt loosing my direct connection to the Process.

Personally, I see this as an opportunity to join the fight for more transparence and better developer participation in the JCP as well as working to make sure the Process respect the needs of open source communities. My discussions so far with Oracle make me believe that we are aligned on some of those issues, and it is clear we already agree on disagreeing in others. This is fine, disagreements are part of the process.

There are still many steps ahead: SouJava needs to run the election and receive the approval of JCP members. If the members understand our participation is beneficial, we'll need to get into the discussion and work out our proposals with Java developers. We understand will not be easy, and it is hard to make a difference. But the group is strong and independent, will not shy away from the discussions and hard decisions.

I'd like to thank all for the supportive e-mails. I'm really excited with the opportunity, and will do my best to deserve the support I have received. To be honest, I'm also a bit scared on the size of the challenge. I hope we can measure up the expectations.

[this blog also posted at]


My... Preciousss! Blog

Posted by brjavaman Jan 13, 2011

My personal site is being updated... Or actually, redone... I wanted to do this for some time, the new domain exists for over a year. The old site was really outdated. The design was copied in the past century from the Sun intranet site, the graphics came from a friend that is today an acclaimed designer, but at the time was still learning. The site used a series of Velocity templates and Ant scripts to generate HTML and then upload it. Once I lost the whole thing years ago on a bad laptop crash, the site stayed, stale and aging... Time to move on!

Even this blog needs some recovering... I haven't posted for ages...

Since I just passed 1000 followers on twitter (@brjavaman), this is a good time to launch my new site and resurrect this blog. And to encourage people to learn about the site and come back to the blog, I'll give away one of the precious items of my personal Java items collection: a brand new JavaRing, from the batch that was saved from JavaOne 1998. It is a collector's item, still on the plastic bag it came on, with the instructions manual. The batteries are supposed to run for 10 years, probably out by now, but this should not diminish it's charm.

Want to run for it? Here is the deal: when I get to 1123 followers (just a cool number...), I'll randomly (probably via choose someone that is following me to get the JavaRing. It needs to be a person: if it is a list or group, a magazine or a company, I'll choose someone else. One last thing: since it will be Campus Party next week, the sooner I'll run the draft is Friday, January 21st. If we reach the 1123 mark before that, we'll just have to wait...

You can help out that the 1123 mark arrives sooner rather then later: I'll twit some Java tips everyday, and you can RT them. That way, we can promote Java and get to your JavaRing faster! Point people to so they know what to do!

So, welcome (again) to my little space on the Internet!

This week I'm participating of Campus Party, an Internet and multimedia show-party-hack-a-ton-craziness that is happening for the second time in Brazil. Campus Party is a 24 hours, 7 days event, that merges software, internet, music, culture, talks, booths and of course, tents and very little sleep. The main focus of the event is sharing: knowledge, pictures, music, information, fun. The event is just starting, and you can see some pictures here.

I'm helping organize the Software Livre track, where we'll have lots of talks about many open source technologies, including Java and Open Solaris. It is great to be with good friends, organizing a cool event!

One gratifying experience happened today, to get the event starting with full force: leaders from OpenSolaris User Groups of all parts of Brazil met for a few hours, to discuss the status of the community, and plan for future joint activities. They also shared their experiences, and difficulties, and lots of technical discussions. It is always gratifying to see a User Group start, with passionate people, with lots of energy. It is even more special to see User Groups joining together to share experiences, and work together.

What reminds me that last week several JUGs in the US started theJUG USA organization. I'll just take the time here to congratulate them, and wish the new organization lots of success. Associations of User Groups like JUG USA, the Worldwide JUGs Community, efforts like the meetings JUGs in Brazil did for so long, and of course, this newly started OpenSolaris User Groups discussions that just happened here at Campus Party add a new level of organization to those groups, and help them understand that they are not alone, and that they are an important force to change and evolve the technology they advocate.

What else is going on on Campus Party that I'm interested in? I'll participate in lots of copyright discussions, and I already had loads of fun with puppets today. The event is just starting, but it is all set to be a great one!

We are always trying to shine some light to our kids, and teach them about right and wrong. A few things are pretty hard to explain. Copyright for one is a pretty complicated thing.

My daughter has frequently asked me about movies and music. Her friends tell her that they can download any music or movie from the Internet, and she asks me if this is true, and if I'll teach her to do it. Or our neighbor's kid keeps asking her why can't she run on the PlayStation the copied games that he has. And I try to explain to her that we really are not interested in pirated videos and our PlayStation is not "cracked", so it does not run the pirated games. I try to tell her about this thing called Copyright...

For her, this simple does not make a lot of sense...

But, yesterday, she asked me why she can't access her video on YouTube, and I found out that she hasn't been able to access it for some time now. So I went to take a look. And her video was removed because of "copyright claims made by a third party"... Now, go explain that to a 10 year-old kid...

The thing is: some time ago, when she was 8, she wanted to learn how to do a video, so, she made a little video with two string puppets. Recorded with an old digital picture camera, that had enough memory to record about 30s of video at a time. She basically did it all, I was mostly the puppeteer and supporter. Including choosing the song from one of our (paid for) CDs. "

Tangkuban Perahu is an active volcano near Bandung, in the west part of the Java island, Indonesia. Its last eruption was in 1983, and since then, there has been warnings about possible new activity. It is a very impressive place, with high stone walls and constant steam coming out from its crater. When you bathe on the hot spring waters on the side of Tangkuban Perahu, you feel a tiny bit of the power of the volcano. But Tangkuban Perahu is a very accessible place, and is the only volcano in more then 350 active Indonesian volcanos that you can just drive all the way to the crater. Amazing power, but with simplicity. NetBeans is a Java IDE, that combines amazing power, with simplicity. We just released NetBeans 6, and it is very good. The new editor infrastructure gives you a lot of productivity literally at your fingertips. Integrated JEE, JME, Profiler. Ruby support. All build on top of the NetBeans Platform, that lets you extend the IDE, or even create a totally new application on top of it. Once you're in the Java island, it is very easy to go visit Tangkuban Perahu, so don't miss if you ever have the opportunity. I was there, talking about NetBeans in the top of the Java island. And once you're a Java developer, it is very easy to try out NetBeans. So, take it for a spin, the download is a lot faster then a flight to Indonesia! And it is free. As in beer. But it is also "bebas" (freedom in Indonesian) - NetBeans 6 is distributed under the GPL and CDDL licenses. Many thanks to all of the developers that made such a great tool. The Sun engineers, the external contributors, the many translators and module developers. Also, the NetCAT team that is hunting for bugs and the NetBeans Dream Team that has participated a lot in many ways. And the many others that are part of this thriving community: NetBeans users, the web team, article writers, book writers, the NetBeans Magazine, the NetBeans TV, the NetBeans and Java User Groups, the NetBeans evangelists. Wow! Congratulations to all of you: it is a pleasure to be part of such a strong, active community. volcano3_lg.jpg And here, a small video with some other images of me and Juggy on the top of the Java Island:
I have been upset with myself for not blogging for way too long (not that I am a particular prolific blogger by any stretch of imagination...), and I wanted to return to the blogosphere. Well, once you are away for so long, any reason is a good reason to start, and I just found one. A few hours ago I eat a bagel sandwich in Heatrow, the London airport. I always love the European sense of humor and specially the subtle british humor. Most developers that I know appreciate good humor, and it does remind me of Brazil, where, as we say there, we lose a friend, but never the opportunity of a joke. What this have to do with a bagel sandwich? Well, the one I had in London came in a kind of paper "plate", and if you turned the plate upside down, on the bottom you could read: bagel.png "Sorry Mate, your beagle's either on the other side, or you've lost it" This did crack me up, specially the more "legalese" part in small letters, that they referred as "American Translation". I was needing something to make me laugh: I had just missed my connection to Moscow, and was waiting to get a plane to Istanbul, Turkey. I'm trying to get to Rostov-on-Don, a city in the south of Russia, where I'm an invited keynote speaker at the Rostov CIO Summit. Because I lost my connection, had I kept on my original course trough Moscow, I would arrive there too late to my other connection, where I would also change airlines. From past experience, this is where you fall in "no-airline-land", and not only I would end up spending the night in Moscow, I would be without any support or hotel. Not a good idea. I'm glad that Isabella, a nice and helpful British Airline operator, was very understandable and spent almost an hour with me, checking on my flight options. So, as I type this, I'm in Istanbul, Turkey, just passing through. Not a good way to see anything, but I can say that the airport here is amazing: I'm just in the international area, and this place is not only huge, but very beautiful, with large corridors, and very nice shops. But, the main reason why I'm writing this is to talk about User Groups. What bagels and missed planes have to do User Groups amazes even me, but for the past several weeks, I have been in such a crazy schedule of travels, visiting so may cities and User Groups, that they are all intermixed. While I'm going to Russia, I'm taking a few days break from the "Caravana da Tecnologia", a joint effort of several Java, Open Solaris and Linux User Groups in Latin America, Sun and many Universities, to discuss open source initiatives around Java and Open Solaris. During the course of the "Caravana", we're visiting 4 countries, 12 cities, more then 30 universities. And of course, many User Groups. But staying for a single day in each city does not allow us to see much, mostly airports (and an eventual bus station or two...) You should take a look at what the otherspeakers are saying about this joint effort. We had lots of fun, from eating shrimp with the JavaBahia JUG in Brazil, playing "futebol" (yes, yes, soccer) with the JUG in Uruguay and dining steak with the Linux Group in Argentina. But also, lots and lots of work, including giving 10 hours of talks right after an 11 hours bus trip between Buenos Aires and Cordoba, with only a quick shower in between (our flight was canceled because of some kind of trouble with pilots in Argentina). It has been very rewarding to work closely with the User Groups in this trip, and we are learning how we can collaborate even more. Juggy has been around too, as well as Jack Adams. During this year there was a lot going on around User Groups. Both in collaboration among Java User Groups, the fast evolution of the Open Solaris User Groups Communities, and even a much closer relationship between Java, Linux and Open Source User Groups, that was promoted with the release of Java as GPL in the beginning of the year. And lots more are coming along before the year ends: BeJUG and SouJava have just proposed a JSR to the JCP (still pending if it will be approved or not, but even if it is not, the organization needed to make this happen is the important thing here), and BeJUG is promoting the JavaPolis event in a few weeks, where JUGs from all over the world are already organizing a large encounter. PanamaJUG is joining many Latin American JUGs in their event in December, while the Brazilian NatalJUG hosts a 2 days event in one of the most beautiful beach cities in the world. Lets not forget that IndonesiaJUG organizes, together with the Indonesian Government, a large event in the Java island. The Open Solaris User Groups have a new home in, what is helping grow the community, and the collaboration among User Groups can be seen in the JUGs Map, and discussions around common projects like the Event Manager tool and the certificate generator. With all that, I'll spend a few days in Russia, and then will head back to visit a couple more cities and user groups. While I'm away, Caravana da Tecnologia goes on, and visits the Brazilian cities of Florianopolis and Natal. I wish I could be in all of those places and initiatives. But I'm glad I can't -- they are actually too many for anyone to be able to follow them all. This is the beauty of communities, user groups and open source: they are much larger then the sum of all parts. You should add yourself to it too!  

Late Holiday Picture Blog

Posted by brjavaman Dec 30, 2006
I enjoy submitting pictures of Duke for the yearly "Holiday Pictures" article. But this year, I missed the deadline, and when I noticed, the article was already up. Oh well, maybe next year... But then, I received a gorgeous onyx Penguin as a Christmas gift from my cousin and godchild, Clara. Even late, I just had to post this nice family shot that Duke, Juggy and Tux made me take in front of the Christmas tree. They look great together, and with thefull OpenJDK due in just a few months, I think 2007 will be the year those guys become inseparable friends. FamilyPicture_xmas2006.jpg That 2007 be a year that we can work together, bringing a better world to all. And if what we do don't look like much, that at least we have fun doing our best, and that we can open the way so others can follow and build on what we did. My best wishes to you and your family.  

I've been tagged by Simon, and then I discovered that those old snail-mail-chains, that turned into e-mail-chains, seem to evolve again, into blog-chains. I remember being part of a mail-chain that would send postcards to people on it. That was fun, and I did get several post cards from around the world. Then, somebody though about doing this with money, and spoiled the fun...

Well, what exactly should I say here that is of minimal interest? Here are five things about me that you probably don't care too much to learn:

  • I never wrote a book! I did have a small essay about Open Source Java included in the great "Open Sources 2.0" book. The funny part is that I think my article is the only one in the whole book that is not mentioned in the Introduction. Oh, you didn't read it either? That's ok! How about that for a well hidden secret?
  • I am a (very, very bad) pre-amateur ventriloquist. I don't think anyone ever saw me perform, so, that's probably in the category of untold secrets... If you are also curious on how thisancient, and very fun, form of artworks, there are a lot of resources out there. It is actually a nice illusion, and yep, you too can learn it!
  • One of my main interest is religion: I like to study and to discuss. It's probably the second genre in my book collection. This is an interesting theme that most people either shy away from, simply does not like to mention, or think that there is no room for discussion. I'm particularly found of Our Lady of Guadalupe, Patroness of the Americas. How can anyone resist studying such extraordinary subject once you learn about her eyes?
  • I have two beautiful daughters. Lara, the youngest one, is already 6 years old. Well, this is a secret only because my personal web site is so outdated, that most people still think that Juliana (that has already turned 8) is still a 2-years old baby! Now you know how good I am in creating HTML pages! That's two secrets in one go!
  • I'm also a long time player of Role Playing Games. So old in fact, that I still play Advanced Dungeons and Dragons in the World of Greyhawk (the level of excitement for this is so high that this EBay offer for a Greyhawk book received ZERO bids, and it was less then US$ 2!). I never got used to the advances that computer brought to this form of gaming. I hear that the MMORPG (Massive Multiplayer Online Role Playing Games -- they have increasing fancy names these days) are pretty fun, but I still like the thrill of using paper and dices... Maybe this is why I don't find too many people interested in playing!

Oh well, that's not too bad. I don't think it was particularly interesting to anyone either, but I now inflict the damage in the next pour souls: Danese, Roman, Michael and Geir, you're tagged!

Update: this tag-game is going around the blogosphere for a few weeks now. It started by Jeff Pulver, and went trough 28 other bloggers before reaching me. And I got it wrong: the idea was to tag 5 other bloggers... So, to correct my error, let me add Tim and Claudio. Oh, that makes 6... Well, one more won't hurt: hopping to start a Portuguese branch of the game, I tag Mario. You're all it!

Update: following Simon's lead, I started linking to the answers. Italic names above already joined the game.

I have just listened to Laurie Tolson talk about OpenJDK and now Mark Reinhold is talking about JDK 6. This is the official announcement of JDK 6, here in London. Since this morning, you can download the final version of the new version of the Java Platform.

Interesting times we are right now. In the last few weeks, we had the announcement of NetBeans 5.5, then Sun announced OpenJDK and now JDK 6 is out. I remember when all those announcements happened around JavaOne. I have to note that the JDK announcement happened in Europe, right before Javapolis.

Actually, this is the reason why I'm on this part of the world. Tonight I'll fly to Belgium, where starts today the Javapolis event. Javapolis is way up in the list of the most important Java events in the world, and with the organization of BeJUG, it is a Java Users Group event. Cool.

Talking about Java events, this week is the last week to submit papers to JavaOne! Have you submitted yours? Don't miss the chance, join together with other developers from your local JUG, discuss ideas and review each other's submission. Submissions are more and more elaborated, and the task to choose then is harder every year. So, don't leave for the last minute, and do not send a half-though submissions. Make sure your presentation is something your peers would like to go see when they read it. That will help you get there!


Moving to NetBeans Blog

Posted by brjavaman Nov 30, 2006

No, I'm not changing IDEs, I'm already a NetBeans user. But after 6 years, I'm coming back to work for Sun Microsystems, and have just joined the NetBeans Team.

I had a great time working at Sun in the past. I started in 1995, just a couple of weeks before Java was publicly announced, and was lucky enough to spend the following 5 years dedicating my work and a good deal of my personal life to the technology. At that time, Java was released "with source code". That was quite a mind-boggling news, not to mention the similar alien notion of platform independence. That was a life-changing event, that eventually did change the world. In the years that followed we had long discussions about freedom of choice. And I like to think that this helped a lot the later development of the open source community, and also the growth of Linux.

In Brazil, this was certainly true. When Java was launched, very few companies and developers acknowledged that other platforms beside Microsoft even existed. During years of Java evangelism we struggled with companies that wouldn't understand why platform independence was even an issue... Some did, and were very successful. And it was a pleasure to work with companies like Brazil's largest bank, Banco do Brasil, that in 1996 started its move to Java technology, training over 2000 developers and investing strongly in Java development. Many others made similar investments, including many government agencies that were looking for freedom of choice. Years later, when Linux started to became attractive, those Java early-adopters were able to immediately move their applications to Linux, and that fueled the Brazilian Software Livre revolution.

I left Sun to go help large companies like those to successfully use Java in order to create innovative solutions. Working for Summa Technologies, a consulting company focused in Java development, I had the opportunity to work in some very large and challengingJava projects, that had strong influence for the evolution of Java in Brazil.

While outside of Sun, as leader of a very active Java User Group, SouJava, I helped support the pioneer work done by the Brazilian Software Livre community. These guyschanged the country, and maybe a bit of the world. I'm honored tobe part of it, helping to integrate the Brazilian Java Community into the effort. SouJava also helped to construct a long-term strategy for software development in Brazil, by promoting the adoption of royalty free standards, implemented as open source software and supported in multiple platforms. This gives the long-term freedom and choice needed by Brazilian companies and also the government, that were badly burned by the predactorial market tactics of you-know-who.

After promoting the merits and even supporting the creation of open-source licensed Java Runtimes, and specially helping to bring people together on this discussion, I'm coming back to Sun right on time for more mind-bogglingnews-- the release of the JDK as OpenJDK.

This is a special moment for Sun, and especially for NetBeans. The NetBeans Community is growing worldwide; the new version (5.5) just came out and is getting strong adoption. Java 6 is nearly out and the platform is finally open source. There's a lot of excitement around the technology. For me, it feels like starting all over, like in 1995. As NetBeans Community Manager, I'll be able to work on things I'm passionate about, especially Java User Groups, the Open Source Community and theJava Developer Community. Could I ask for more?

To be honest, I'm still trying to figure out where I should start. I have some very initial thoughts, but I'd love to hear your opinions on what needs to be done, fixed, improved, expanded or even left as is inside the NetBeans Community. I'll try my best to make it a better, stronger, empowered community.

Thank you!

(PS.: Roman Strobl was kind enough to interview me for his great Podcast series. In the interview, we discussed some ideas and initial plans for working with the NetBeans Community. You can hear the interview here, but be warned that it was recorded before the open sourcing of Java, so, a few things may have changed since then...)

Date: April 9, 2005. Location: Pirenopolis, a small city in the center of Brazil. In a bucolic countryside, hours away from any major urban area, with cold waterfalls and butterflies using our hats as landing pads. Clumsy trying to climb our way trough this beautiful landscape, employees from companies like Sun and IBM; professors of some of Brazil's largest universities; hackers from Kaffe, Javali, Debian; directors of important organizations like Apache, JCP and SouJava. What would such a bunch of geeks be talking about in this far away land? We had just came out of a large packed two day technical Java and Open Source conference, Caf  
I just read at JavaLobby a discussion about what James Gosling said of open source developers and compatibility. I consider James a long time friend, and I think he is somewhat right. But the main problem on this Java and Open Source discussion is that there seems to be a lot of misinformation on both sides. We all need to get on the same page, or we'll always be discussing the wrong things... So, bellow is the post I did at JavaLobby. I'm copying it here too, because I have been active in many places, and my blog keeps falling behind, so, let me try to get all my thoughts in one place :-) The original JavaLobby message is at: usual, there's a lot of misconception from both sides. This is the hardest part on this discussion. As long as we hear this half trues from both camps, it is very hard for Java developers to take a position and act. I understand when James talks about the code being available since day one. Yes, it has. It is easy to forget that, but at that time there was no "open source definition" (that came in 1998), and most people hadn't heard of free software, specially on the business side. Java's code being put "available" at that time was a huge success and a unbelievably bold move of Java's original team (James included). I may digress, but this may very well have influenced Netscape to release their source code a few years later. Taking away a little of the free software philosophy, and making it more attractive to business, OSI created the notion that open source is a collaborative effort, that is made possible by the license, a F/OSS license. Well, one can very well argue that the Java licenses, although very restricted by the Open Source definition, did indeed create a collaborative environment, were Java evolved. This "community" is composed of many different companies, and it evolved well enough that many Java developers don't even care about the license. But as programmers, we all agree that we need to use the correct definitions. Now we have the definition of what open source is, and we should stick to it, or we just create this general feeling that we're being rude to others, by misusing their definitions. As I asked before, Sun should stop saying that "Java is Open Source enough". It does not means anything BTW. Java is a standard, and there is no such thing as an open source standard. There can be open source implementations of Java, that's something that makes sense talking about. But Sun's Java implementation is not Open Source. Period. And, that's fine! The fact that SunOne Application Server (J2EE Reference Implementation) is not Open Source never for a second undermined the importance and reality of JBoss (a certified J2EE implementation) or Geronimo (on its way to certification). This is the same on the Runtime side. And it is also true that it was not always possible to certify an open source implementation of a JCP standard (or even implement one), but this also has changed. And for the Java Runtime, it changed on the day Java 5 came out. So, the other side. It is not true that the Open Source implementations of Java cannot be certified. The JCP not only allows for it, but gives scholarships to groups that are interested in being compatible. Onno Kluyt has discussed this deeply with Dalibor Topic and other Open Source Java developers, and it is my understand that at this time, there are no pending issues on this regard. There are no hidden licenses that forbids this to happen, there will be no cost for the TCK if done by a non-profit organization, as there's no cost for Apache's Geronimo certification. And yes, there are ways of doing this in the open source way, in the open, with unfinished releases and many contributors form all over the world. Apache has proved this, we have to follow the lead. Java 5 implementations can be certified, for free, as open source. If you think this is not true, you have to read the JSPA and the Java License for the details. Or talk to me, or Dalibor (Kaffe), or Onno (JCP), or Geir (Apache), or... It is possible, and doable, but that does not mean it is easy. But the great work that has been done in Kaffe, Classpath, SableVM, GCJ, Jikes and many other projects that are implementing the Java standards as open source are real proof that this can be accomplished. But its success depends in part of Java developers understanding that these projects are exciting and important projects, as much or even more then Tomcat, JBoss or Geronimo. If you downloaded and tried early versions of these Open Source implementations of server side Java, you should also try out the Open Source implementations of the JVM. Now, is compatibility something that all Open Source developers want? Let's face it: no. Compatibility is hard, it means you have to implement things that no one uses, it means that you can't just go and do whatever you feel like. There are many half-done open source implementations of standards out there. There are even half-done proprietary implementations of standards, so this is not an Open Source thing! But the reverse is also true: there _are_ great, compatible, open source software out there! So, it is also not true that Open Source developers don't care about compatibility. I can vouch for the Kaffe, Classpath, GCJ, SableVM, Jikes developers that I know personally. They are committed to compatibility. They are so committed that before it was possible to have access to the TCK, they created their own "test suite" -- Mauve -- to try to achieve compatibility the hard way. James, how much more commitment can we have? How many companies have built their own test suites to guarantee Java compatibility? By putting effort in a private compatibility suite, maybe the open source community has something in common with Sun in regards to compatibility commitment? These are developers that have gone way out, to guarantee compatibility in a time when Sun would not provide any! So, let's cut this short. Half trues from both sides do not help the discussion. Let's call things by their correct names. It is not "Java is/isn't Open Source" it should be the "X implementation of the Java Standard is/isn't Open Source". Let's not say "open source enough", lets apply the definition: it either is, or isn't! And stop saying that it isn't compatible because it is not possible to be. It is possible, we have to care about it. And we do. I can't vouch for all open source developers, but Open Source Java Runtime developers do care about compatibility. So should you. Go run your application on top of a work-in-progress open source implementation. You'll be surprised with how much you can run on top of them today. Now, to make this a worthy discussion to everybody, let me finish with another question. Can we have a license that guarantees compatibility in some way, and that still gives developer the freedom they need? That is, can we combine compatibility with open source? The fact that many say that compatibility cannot be in the license is one reason that makes people think that Open Source developers don't care about it. But if compatibility is important, if we care about it, can we agree to it somehow? It is really important? I think the JCP took a good approach, and it is working with Apache. I don't think it is perfect, and surely it is not enough. Can we have a better way of handling compatibility? That do not take our freedom away? Freedom is always a compromise. Always. Would you compromise in behalf of compatibility? Why? Why not? And more important: how?  

I have been discussing for a long time how only open source is not enough for Governments. Although open source is a strong point of freedom it allows you to end up tied to a product, what may be not as bad as being tied to a vendor, but may bring you the same types of problems, specially if you are the government. But this is true for companies also.

In November 2002, me and several others from the Java Users Society, a large Java User Group in Brazil, created a long manifesto (Portuguese only), that tried to look into the discussion on open source usage by the Brazilian Government, from the point of view of the software developed by the government, that needs to rely on Open Standards and focus to be Multiplatform. This later turned into a well reviewd article, that better explained the ideas, and even featured concrete examples of the problems that you may face when all you care about is open source. Unfortunately for the time being both of these discussions are in Portuguese. Trying to explain a long article in a few lines is not easy, but the central idea is simple: open source is very important to the government, and to do it right, the government would be better off if it developed it's own software using open source software that are based on standards, and by developing multiplatform software, as a way to minimize lock in, and as such, maximize government freedom to decide it's technological future.

Maximizing freedom is usually not easy, and some difficult strategic decisions must be made. In regards to open source, it may mean for example, that the government will not use software that runs only on windows, or only on Linux (or any single platform), no matter how much this particular product's license says it is open source.

After discussing with the government for so long, and after seeing most of this discussion accepted in some very important areas of the Brazilian Government, we learned that governments really need a broad guarantee of freedom. Their systems, applications, data and software in general have such a long life, and may have such a large impact on a country's future, that by comparison, vendors and products need to be looked at as temporary at best. Although we have defended this idea for the sake of the Brazilian Government, I think this applies to most governments, and also to most companies that somehow develop software internally: minimizing the lock in for the software you write, will pay off in the future.

Now, someone that has also be giving a lot of though about this discussions, has come up with a name for this broad guarantee of freedom: Software Freedom.

In his recent blog, Simon Phipps explains that Software Freedom is more then the freedom for developers (that is guaranteed by open source), it needs to also guarantee freedom for users (deployers) and vendors. Simon calls for a combination of open source, standards and compatibility to guarantee Software Freedom. Although he has named it, and written a kind of manifesto, I think that theSincere Choice movement has similar views, although they do not mention certification explicitly as Simon does.

At first, this seems quite a task. How can you guarantee freedom to the developer, if you tie him with standards and compatibility requirements? How can you guarantee freedom for the deployer if you cannot restrict what developers can do? How you can innovate if you tie up your own hands trough standards? Hard questions. Can they be answered? Are those things so contradictory that we cannot guarantee all types of freedom at once?

In the Brazilian Government discussion, we are proposing ways to to that based on policies. That is, software developed by the government has to use standards if they are available, and if not, standards need to be either chosen or defined. It has to run in multiple platforms, no matter what technology or language you use to develop it. And open source implementations of those standards will be the ones that will provide greater freedom, and as such should be chosen if available. Is this enough? Probably not. But it is a good start.

From a first look, it seems that guaranteeing Software Freedom is not something that could be done by licenses only. And there are other important matters like Royalty Free standards and patents policies that would probably play a role in the discussion (but this would extend a lot this blog...).

I hope this idea is something that the community at large sees as important. I certainly agree with Simon and his Software Freedom Manifest, and from my experiences with government and companies, I agree that something must be done to guarantee other perspectives of freedom that not only the developer's freedom.

Of course, this has a large impact on Java.. The Java Community is largelly in favor of certification and compatibility, and this is said to be one of the main reasons why Sun refrains from releasing it's Java implementation as open source. Would Simon's blog be an indication that there can be ways of open sourcing Java that maintain compatibility? Can this be accepted by the open source community? Although I myself think that no matter what Sun does, we should create and support an open source implementation of Java, like a combination of Kaffe and Classpath for instance, I also do value compatibility more then "open source just to be open source". And I think that Simon's proposition could be one that we, as a joint Java-Open Source community, should look and discuss open minded.

Fortunatelly, Simon will be in Brazil this week for the 5th International Free Software Meeting, and I will have a premium chance to discuss with him this ideas. Hopefully, we can have an open discussion with both the free software community members and the Java community members present at this large event, and understand if this can lead us anywere.

The JCP is were we define the Java standards. It is an important process to guarantee at the same time that the technology evolves fast enough to keep it competitive, and also that it maintains the expected compatibility. To make this happen, the process has to reflect the needs and expectations of the full Java Community, not only the point of view of a few vendors.

But the JCP may be not what everybody wants. It may be that the process works in a way that you don't agree with. But we can't just complain. The JCP should be ourprocess, so, we better participate, to make it better.

There's a nice discussion on the JCP going on in the Wiki of, that proposes to Rethink the JCP. Do you have your ideas about it? Come join the discussion, to make the technology you use a better one.