The Source for Java Technology Collaboration
User: Password:



Richard Monson-Haefel's Blog

January 2004 Archives


You can make EJB better

Posted by monsonhaefel on January 31, 2004 at 09:53 PM | Permalink | Comments (66)

I'm currently working on the specification for EJB 3.0 (JSR 220). Our main goal is to make EJB easer to use. I'm an independent. I don't represent a vendor. Instead I try to represent the interests of J2EE application developers. To do that, I need to know what the development community wants.

What do you like or dislike about EJB? If it's broke, how should we fix it?

This is an excellent chance for you to make a real difference. All I ask is that you stick to the facts and your own experiences. Please try to avoid flames, zingers, and debates so that I can make the most of your feedback.

Open Source Developer: Will Work for Food!

Posted by monsonhaefel on January 21, 2004 at 11:06 PM | Permalink | Comments (23)

UPDATED: January 23rd, 2004

I've received a lot of mail and seen a lot of postings about this blog entry. Some of it has been supportive and some of it has been …. Well, not. The one thing that is common to all but a few of the responses is that people have misunderstood my point. This is good evidence that I did a poor job of articulating it – something writers struggle to avoid. Anyway, I offer the following as a clarification.

Here is the point of the blog:

The majority of open source developers are not paid for their contributions. I'm not talking about high profile core contributors; I'm talking about all the other people who make open source a success. What pains me is that some of the few who make a living doing "professional open source" try to paint the picture that everyone is making money. That's not true, and its not why open source works.

Open source works because it gives developers freedom of choice and expression. Developers get to choose which projects they work on and therefore the direction of their own technical growth. Developers get to choose what to contribute and how much. It's about freedom of choice.

People give all kinds of reasons for doing open source that are simply variations of the freedom of choice theme. For example, developers feel a need to "give back" to their community. Well open source makes that possible because it gives you the freedom to contribute code, bug fixes and documentation. Another reason given, is that people get involved in open source to "build their resume", which is just another freedom of choice. Open source lets you build practical experience in just about any area of software you are interested in – ask your employer if you can start doing game development on their time and see what they say.

I have worked as a professional open source developer, and sometimes I've been paid for my work. Today, I'm not paid to work on open source but I continue to contribute as best I can because it gives me the freedom to work on those things I find interesting.

Open source does offer the potential to make money - No doubt about it - but that's not why open source is successful. It's simply a benefit of the freedoms open source offers us as individuals. It's not about ego; it's about choice. It's about fulfillment and creative expression. Money is great. I'm all for it, but its not why I work on open source. I could make a lot more money working for a vendor, but then I wouldn't be able to choose what and when and how I do my work.

The simile that I gave of a "fine artist" was meant to illustrate the motivation of the average open source developer. I have a few friends that are artists. Some are commercial artists and others are non-commercial artists, sometimes called "Fine artists". My commercial artist friend has never had a lot of choice in the medium he works in or the subject of his work or even the creative direction. He does what the customer wants, which is how most successful business work. My non-commercial artist friends, the "fine artists", work in any medium they please, on any subject, in any way they want. The motivations of the fine artist are intrinsically the same as those of the open source developer – freedom of choice and expression.

Paradoxically, freedom always comes at a cost. You must give something up, usually something tangible like money, lives, comfort, and such things to have freedom. Most open source developers do not make money doing open source work (contributing patches, bug reports, helping others on the mailing list, etc.), but they do benefit. They have freedom.

*************************************************************************************************
Oringinal Blog Entry: Janaury 22nd, 2004

I have a friend who works in commercial software and makes a pretty good living – actually a real good living. He finds the "whole open source thing" quite incomprehensible. Why on earth would you waste hours of your own time creating software without pay? My wife wonders the same thing.

The truth is: The difference between open source developers and commercial developers is the pretty much the same as the difference between a starving fine artist and a fat and happy commercial artist. The commercial artist, if she is any good, is probably paid a decent amount for creating logos, advertising, album covers and such things for someone else. A person who creates fine art, on the other hand, isn't likely to make more than a pittance even if they are lucky enough to get a show. While it's true that that some fine artists make it big, this is relatively rare when you look at the whole population. So why do people choose to create fine art, rather than commercial art? Freedom. Fine artists get to work when they want, create what they want, take credit for their work, and in the end enjoy the public scrutiny of their peers.

The same is true of open source developers. While a few make really good money selling consulting and training and other services, the vast majority of open source developers don't make anything. But they do have freedom. Open source developers can choose which projects they will work on and how and when they'll do the work. In the open source world no one will tell you what projects you must work on, or when you should work, or how much you should do. That's up to you. For the most part you are free to be as creative with your code as you like – if your code is good it will be adopted. If its sucks it won't.

So the price of freedom of expression for most, if not all, open source developers is … well poverty. Ok, that's a bit of an exaggeration since a lot of open source developers have a day job, but that's just as telling. To do open source, you have to have a day job. You can't expect open source to feed your family or even your cat for that matter. As I said there are exceptions, but most open source developers do it for the love of writing software. While commercial software developers do a great job of feeding their families, open source developers do a better job of feeding their minds. In the end, you have to ask yourself which is more important: The things you own or freedoms you have.

Groovy, Baby!

Posted by monsonhaefel on January 13, 2004 at 12:12 PM | Permalink | Comments (3)

James Strachan and others have been working on an awesome new scripting language for Java called, Groovy. I met James at the ApacheCon conference last year and he made me a convert to Groovy – its really a beautiful language and fairly easy for Java developer to learn. What makes Groovy really cool is that it integrates seamlessly with Java programs and is actually compiled into Java byte code. You can call methods in classes in regular Java packages (classes) from Groovy and vice versa – that's powerful.

Groovy combines features of Python and Ruby (two popular scripting languages) into a Java friendly syntax. It makes working with object graphs (e.g. a bunch of business objects that have complex relationships) really easy – it's great for working with collections, XML and HTML. There is also support for regexp, SQL and scripting of Ant tasks.

Groovy saw its first release last December 2003, but its still very much a language with room to grow. If you are interested in getting in on the ground floor of what I believe will be an important new scripting language, than please visit the Groovy web site and see what you can do – testing code is always a big help. Personally, I hope to help with the documentation of this language.

The bottom line is that Groovy is not a replacement for Java – it’s a tool you can use to be more productive with Java. Groovy's not a silver bullet either. I can imagine lots of scenarios where I would prefer to work with the Java programming language, but its very useful in certain circumstances especially when organizing and filtering object graphs or text data – for example text files or XML or what have you.



Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds