<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Richard Monson-Haefel&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/" />
<modified>2008-01-02T17:42:16Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/monsonhaefel/110</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2004, monsonhaefel</copyright>
<entry>
<title>My new role in the Java industry</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/07/my_new_role_in.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-07-19T15:52:51Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.448</id>
<created>2004-07-19T15:52:51Z</created>
<summary type="text/plain">Although I will remain a very intersected observer and occasional commenter, I will not continue to be a Java activist. </summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[This is probably the last blog entry I will be making here on Java.net. I plan to move my blog to my own Web <a href="http://www.monson-haefel.com">site</a> and maintain a lower profile in the industry.  In fact, this blog entry is to announce a change in my relationship with the Java community. Although I will remain a very intersected observer and occasional commenter, I will not continue to be a Java activist. 
<p><p>
As I reported in a previous blog I accepted a position as Sr. Analyst for <a href="http://www.burtongroup.com">Burton Group</a>. I&#146;m still pretty new to that organization but I&#146;ve never failed to be impressed by the level of integrity they demand from their staff. Shortly after signing on I was asked to sign an 8 page document agreeing to maintain neutrality in the industry. Many analyst firms engage in dubious pay-to-play projects with vendors, such as writing &#147;white papers&#148; that are essentially vendor marketing materials falsely presented as independent analysis.  Burton Group doesn&#146;t do that kind of work (and never has); their customers are predominately end users companies, not vendors. In fact, vendors that do subscribe to their analysis services do so to learn more about future trends &#150;Burton Group never writes vendor reports for hire.
<p>
Anyway, this desire for neutrality is pervasive through out Burton Group. In fact, when I was discussing working for them they told me that their analysts tend avoid active involvement in organizations that might bias their opinions. In my case, it was thought that my position on the JCP Executive Committee and my work on various JSRs (including EJB and J2EE) was a conflict of interest. How can I fairly analyze an industry for which I am a booster, advocate, and active participant?  Burton Group didn&#146;t require me to resign from these activities as a condition of employment, but the question they posed gave me pause. Before I joined them, I decided that it was in the best interest of our clients that I maintain independence.
<p>
Originally, I had planned to send a letter to each JSR, the JCP EC, and open source projects announcing my resignation.  I still plan to do this, but it occurred to me that my allegiance belongs first and foremost to the end user community, so I&#146;m announcing my resignations in a venue that is public rather than private.  (The exception is the EJB 3.0 (JSR 220) expert group from which I resigned a couple weeks ago.)
<p>
As of today, I am resigning from the JCP Executive Committee, all JSRs in which I&#146;m involved, and the Geronimo and OpenEJB open source projects.  I will no longer participate in these organizations, except as an outside analyst, and I will not join any other organizations that may be perceived as a conflict of interest.
<p>
I believe, in my heart, that I&#146;m taking the high road. That I&#146;m being true to my mission for Burton Group.  I know that there will be a lot of people who will second guess my motives &#150; we live in an industry in which the truth is, well &#133; often ignored in favor of FUD and self-advantage. That&#146;s fine, but for those who know me know that I&#146;ve been truthful in this blog entry.
<p>
Thanks to everyone who has read my books, e-mailed me their opinions, and have supported me throughout my Java career.  Thank you also to those who do not agree with me: In most cases you have given me a different perspective on issues and have had a positive influence on my thinking.
<p>
Although I&#146;m changing my involvement in the Java community, I will continue to voice my opinions on things that I, and my clients, feel are important. I&#146;ll be writing reports on J2EE and Java as well as other topics.  Hopefully, my industry experience will provide value to our customers &#133; time will tell.
<p>
Thank you,
<p>
Richard
]]>

</content>
</entry>
<entry>
<title>OpenEJB: The BEST way to test EJBs</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/06/openejb_the_bes.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-06-11T17:10:10Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.914</id>
<created>2004-06-11T17:10:10Z</created>
<summary type="text/plain">If you&apos;re not using OpenEJB to test and develop, you&apos;re hurting your project.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Distributed</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[The server side has published an article by N. Alex Rupp on how to use OpenEJB for testing your EJB applications.<p><p>

<a href="http://www.theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries">Advanced EJB Testing with OpenEJB</a><p>

David Blevin's and I founded OpenEJB some five years ago to create a fast and lightweight EJB container system that could be easily embedded in any application (its even been used in handheld devices). I stayed with the project for the first couple of years, but haven't been very involved in it since. David Blevins, on the other hand, has kept the project going and has continuously improved it (along with a small army of volunteers). Today OpenEJB the EJB container system used with Apache Geronimo - its very powerful, fast, and best of all lightweight.
<p>
The fact that OpenEJB is so lightweight and embeddable is why it actually serves as an excellent EJB testing tool. It starts up and deploys EJBs is seconds (that right I said seconds, not minutes).  In addition, it provides a robust and fully compliant EJB container system - one that is used by Apache Geronimo for production enviorments.
<p>
Rather than create some type of home spun "moch" container system use OpenEJB. All the hard stuff is done - you don't have to re-invent the wheel. As you'll see in Rupp's article, OpenEJB is ridiculously easy to work with and provides you with the best EJB testing framework available today.
<p>
I would go a bit further and encourage people who are using commercial products like WebLogic and WebSphere to use OpenEJB in development. A developer can deploy and redeploy his EJBs over and over again quickly, giving him time to focus on developing his EJBs rather than waiting for a server to start-up and deploy an J2EE application - a process that I believe saps as much as 80% of development time.]]>

</content>
</entry>
<entry>
<title>My adventure in Self-Publishing</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/06/my_adventure_in.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-06-02T18:57:34Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.1585</id>
<created>2004-06-02T18:57:34Z</created>
<summary type="text/plain">Self-publishing can work, but it didn&apos;t work out for me. Here&apos;s why ....</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[A couple of years ago, I tried starting a micro-book publishing company, Titan Books Inc.  I get questions about self-publishing all the time, because understandably authors want more control and they want to make more money on their books. The following is a description of my experiences in self-publishing. For me it didn't work out, but there others who have made it work (e.g. Dave Thomas and his Pragmatic Book Series) and to them I tip my hat.
<p><p>
It turns out that publishing was both easier and harder than I had expected.  I
found that with some research and work I was able to publish a couple of
excellent books of professional quality.  Both of the books I published are
workbooks or companion guides to my EJB book.  They were very well
received and very successful in some ways and not so successful in others.
For example, the free download versions of these books did great!
People loved them. The sale of paper editions by me directly and through
Amazon.com were less successful for a variety of reasons.  Most importantly,
was the workload of daily operations and marketing.
<p>
I discovered after about six months that I was spending way too much time
marketing and managing the production and sale of the workbooks. At first I
sold them directly to customers on-line from my own Web site. I used
Yahoo!Store and was very satisfied with how it worked, but I was spending a
lot of time (at least 20 hours a week) fulfilling orders and managing
day-to-day operations. For me it was a very unprofitable venture.  I also
found out that people were shy of buying books from my web site because they
didn't trust my publishing company as a vendor. I don't blame them.  I rarely
give out my credit card info to companies I don't know.  In an attempt to
reduce my work in fulfillment (not to mention directly customer support) I
started to exclusively sell through Amazon.com's Advantage program.
This required that I sell the books to Amazon.com at wholesale (actually 45%
of cover price) which sapped my profits enormously, but it turned out to be a
lot easier for me personally. Once a week or so I would ship out a bunch of
books all at once per Amazon.com's request.  One destination, one client, one
package -- it all became much easier. But again, the revenue was diminished
by 55%! Which hurt my profits and the royalties I paid to the authors.
<p>
In the end I gave up on the whole dream of publishing for one reason:  For me, it was
too much work for too little profit.  I think a person could still make this
whole thing work if they were smarter than I was about fulfillment and
marketing. Not a big stretch since I'm only human and tend to have
limitations.   I ended up selling the rights to the workbooks to O'Reilly,
which allowed me to cover some but not all of my expenditures. Like I said,
it came out as a loss in the end but only monetarily.  The adventure was
worth it.
<p>
What I learned is that publishers earn their money. I don't think they are
raking in a lot of money like I used to. It's very difficult to manage the
production process, marketing, sales to retailers, etc.  With only 1 out of
10 books breaking even, its clearly a numbers game and not that great of
one.  Grocery stores make about 3% profit (something I learned consulting in
the Consumer Package Goods industry) and I'll bet publishers are somewhere in
that ball park (Just a guess).  Personally, I'll stick with the middlemen and
traditional publishers. They fulfill a
purpose and, in my opinion, are necessary to get books from my typing fingers
to the eyes of my readers.]]>

</content>
</entry>
<entry>
<title>How Tomcat Works, the book.</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/05/how_tomcat_work.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-06-01T04:11:56Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.212</id>
<created>2004-06-01T04:11:56Z</created>
<summary type="text/plain">There is a very good book on how Tomcat works.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>J2EE</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[A couple years ago I tried my hand at self publishing books. Specifically, I created my own publishing company, Titan-Books Inc., and published three companion workbooks to my O'Reilly EJB book.  The authors and editor did a wonderful job and the books turned out great. However, I quickly discovered that (a) it was lot of work running even a small publishing company and (b) I wasn't making much money at it.  To make a long story short, I sold the rights to the books to O'Reilly, lost some money, but learned a lot about myself and the publishing industry. 
<p><p>
A few months back, maybe a year ago, I was contacted by Budi Kurniawan. Budi wanted advice on self publishing - I don't even remember what I told him, but he says it was helpful so there you are.  Last week Budi contacted me to tell me he has successfully written and self published his first book, <i><a href="http://www.amazon.com/exec/obidos/tg/detail/-/097521280X">How Tomcat Works</a></i>. You can buy it directly from Budi and get a 45% discount (<a href="http://www.brainysoftware.com/">www.brainysoftware.com</a>) or from <a href="http://www.amazon.com/exec/obidos/tg/detail/-/097521280X">Amazon.com</a>. How cool is that!?
<p>
Well, I've been reading Budi's book and I have to say that it's really excellent. I mean, I can't put the thing down! His writing style is really straight forward and engaging. The book is in need of some serious copy editing, that's for sure, but in many cases those little rough spots add to its home-grown charm.
<p>
Budi's book, <i><a href="http://www.amazon.com/exec/obidos/tg/detail/-/097521280X">How Tomcat Works</a></i> teaches the reader exactly how the Apache Tomcat Servlet engine works. Budi starts with a very simple (3 classes) web server and slowly, over the course of a dozen chapters, enhances that example until it becomes Tomcat.  It's a really cool approach to explaining the inner workings of a system and I just love it. I'm staying up way too late reading the thing and learning a lot about how Tomcat works. 
<p>
You don't have to be rocket scientist to appreciate the book or understand it. If you have intermediate to advanced Java skills and know something about Servlets, you'll have no problem at all and you will learn a lot.
<p>
I hope the book continues to be as good as the first couple of chapters. If it is, I'll probably become its biggest booster. In my opinion, knowing how the software you use works under the covers is far more important than anything else you can learn. Patterns and APIs are fine, but nothing beats knowing how things really work. The best in the business have this type knowledge, so if you want to be the best at Servlet development, than this book is for you. ]]>

</content>
</entry>
<entry>
<title>My Apology to Bruce Tate</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/05/my_apology_to_b.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-05-23T06:51:02Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.1229</id>
<created>2004-05-23T06:51:02Z</created>
<summary type="text/plain">I&apos;ve been fortunate to be a speaker at several No Fluff, Just Stuff (NFJS) symposiums this year. In my opinion, they are exceptional events. The speakers are excellent and real nice guys (sorry haven&apos;t seen any female presenters yet this...</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[I've been fortunate to be a speaker at several No Fluff, Just Stuff (<a href="http://www.nofluffjuststuff.com/index.jsp">NFJS</a>) symposiums this year. In my opinion, they are exceptional events.  The speakers are excellent and real nice guys (sorry haven't seen any female presenters yet this year).  In addition, the audience tends to be smaller so everyone gets to ask questions and participate.
<p><p>
While I've had a great time and made many new friends on the speaking circuit, I own an apology to Bruce Tate, the author of <i>Bitter Java</i> and <i>Bitter EJB</i>.  You see, at each of these NFJS symposiums we have a couple of panel discussions in addition to regular tutorials. Invariably the panel discussion turns to the merits of EJB.  Understandably, Bruce and I don't always agree on the question of EJB, so it frequently turns into a  point-counter-point discussion.  Although I try very hard to present what I think is reasonable and fair counter arguments to Bruce's points, I sometimes get a little over zealous. In the past couple of panel discussions that I shared with Bruce, I ended up inadvertently insulting him.  
<p>
This weekend in Colorado, after hearing Bruce express the opinion that EJB 3.0 was basically Hybernate and that Gavin King was writing the entire CMP spec, I provided my own opinion on the topic.  I'm part of the EJB 3.0 JSR so I'm privy to the discussions between all the expert group members.  So, I said: Although we owe a debt of gratitude to Gavin and the Hybernate project (as well as Spring, PicoContainer and other open source projects) CMP 3.0 is not Hybernate and Gavin is not the sole author of that part of the specification. If you were ask Gavin himself &#150; a very honest person AFAICT - I'm sure he would tell you that there is a lot of give and take in the design of EJB 3.0 and everyone is working hard on it - anything else you hear is pure non-sense.   
<p>
While all this is true, I went a bit far by saying at the end of my counter point that, "I hoped that my explanation set Bruce straight."  Well that was rude of me and for that I apologize.  Bruce Tate has contributed a lot to the EJB community and has helped us better understand many of EJB's drawbacks.  He doesn't need me to "set him stright" on anything.
<p>
Bruce,  I'm sorry.
<p>
Richard]]>

</content>
</entry>
<entry>
<title>A new deck of cards: I found a Job!</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/05/a_new_deck_of_c.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-05-18T23:08:42Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.853</id>
<created>2004-05-18T23:08:42Z</created>
<summary type="text/plain">I&apos;m now employed by The Burton Group</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[

Last week I posted the blog titled <a href="http://weblogs.java.net/pub/wlg/1268">9 of Clubs Seeks a new Deck of Cards</a> which basically talked about me not being able to find work very easily and kicking off a job hunt.
<p><p>
Well the good news is that I have accepted a job as a Sr. Analyst at <a href="http://www.burtongroup.com/">The Burton Group</a> &#150; I start May 24th.
<p>
Although I found the job the old fashioned way, through networking, I wanted to thank everyone that responded to my original blog entry and offered support, advice, leads, and occasionally a Job.  Thank you. I'm very grateful.
<p>
When I made that post I fully expected to get flamed, but I figured it was worth showing a little vulnerability so that people understand that (in at least my case) working on the JCP EC and the JSR Expert Groups and Open Source comes at a cost &#150; even if there are very real benefits.
<p>
I'm really looking forward to working with The Burton Group. They are a top notch and very respected organization that has a more technical focus than Forrester and Gartner &#150; anyway its right up my alley.
<p>
Thanks again to all those who responded &#150; it was a very positive experience and I'm grateful.
<p>
Richard]]>

</content>
</entry>
<entry>
<title>9 of Clubs Seeks a new Deck of Cards</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/05/9_of_clubs_seek.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-05-06T22:31:52Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.207</id>
<created>2004-05-06T22:31:52Z</created>
<summary type="text/plain">Guess what? I need a job too.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[<center><a href="http://weblogs.java.net/pub/wlg/1308">Update</a></center>
<p><p>
Recently I had the honor of being named one of the 53 most influential people in the Java industry by The Middleware Company. My card was the 9 of Clubs &#150; I have no idea how to interpret that distinction. Obviously, it&#146;s a nice complement especially considering that the votes came from developers who subscribe to TheServerSide.com mailing list &#150; a resource I consult regularly even if the threads are frequently hijacked.
<p>
You would think that a guy in this deck of cards is probably making gross amounts of money and living a leisurely life. I can't speak for the other people on the list, but that doesn't describe my life at all.  I work really freaking hard &#150; as hard as anyone reading this blog &#150; and I don't own a yacht or drive a Lamborghini. I'm not poor by any stretch of the imagination, but I'm not going to make the Forbs list anytime soon.
<p>
The truth is being an independent is hard work. I've been at it now for about five years and its never been a cake walk &#150; ok occasionally it's been easy, but most of the time its not.  For the most part I'm busting my butt trying to convince companies that I'm worth what I'm worth even if John and Jane Doe charge a faction of the price. The truth is, I'm usually over qualified for most consulting gigs so the spectrum of opportunities available to me is actually less than the average developer. 
<p>
I heard once that winning an Oscar in Hollywood is a double edge sword.  Actors who win are recognized for the quality of their work, but subsequently find it hard to find work. I even heard it descried as the Oscar "Death Knell": Its great to win, but its better to get nominated. This is probably a bit of hyperbola and I don't mean to compare my meager success to winning an Oscar, but the truth is: Success is measured in many ways and peer recognition &#150; while wonderful &#150; doesn't always translate into big bucks and loads of free time. 
<p>
After more than five years of going-it-alone, I finally asked for help. This Monday I decided to try my luck for the first time with the grape vine. Although I have frequently helped others find work, I've rarely asked for help myself. Why? Well I guess I felt that I should be able to find my own work. Also it&#146;s a matter of pride. I don&#146;t like to ask for help.  I don't want my peers to know that its hard for me to find work that fits my skills and pays well &#150; everyone seems to assume that if your well known you automatically make tones of money. Its not always true. 
<p>
I've been very involved in the Java industry. Two months after I started learning Java I started the Wisconsin Java User's group &#150; that was back in the spring of 1996. Since than I've volunteered for all sorts of things from open source projects to JSRs and I'm proud of what I've accomplished. The culmination of all this altruism was being voted into the JCP Executive Committee last fall &#150; an honor I've take very seriously. 
<p>
I've done good things for our industry, but I feel its time to step back and let others have the glory.  I have a family now. My boy, Henry is about 2 1/2, and my daughter, Olivia, is just 9 months.  I need to look inward toward my family and put them first. That means I need to find a stable job with some longevity and hopefully something with a lot less travel.  I think I was honored with the 9 of clubs because I've donated so much of my time to the Java community &#150; people will probably laugh at that, but I can't think of any other reason. Working on expert groups, open source, and the JCP consume enormous amounts of time, but pays nothing, zip, zilch. That's ok, I knew that going into these endeavors and its expected that I should be able to leverage my contacts and name recognition into a living. I have done that to some extent, but it hasn't been easy. You still have to find work that fits your credentials and sell yourself at rates that are affordable &#150; these are usually contradictory objectives after a certain point.
<p>
OK, so why this blog? Well, I'm hoping that someone will read it and say "Hey, I got just the job for this guy!  What's his e-mail address?" (btw it is <a href=mailto:Richard@Monson-Haefel.com>Richard@Monson-Haefel.com</a>).  Head hunters and other professional placement guys should not bother to contact me - you guys are evil.
<p>
There is another reason: On occasion I've had people ask me how they can manage their career to become more successful &#150; to be more like me.  This always makes me wince. I've been fortunate &#150; no doubt about it &#150; but I wouldn't recommend my life style to anyone. It&#146;s a lot of work with very little pay.  As I said, peer recognition is great &#150; its probably the best recognition you can have &#150; but making a living is not a bad thing either. I'm honored to be counted in that deck of cards with the likes of James Gosling, Rod Johnson, Gavin King and others &#150; but its time to join a new deck &#150; one that gives me more time with my family and actually pays a salary.]]>

</content>
</entry>
<entry>
<title>JSR-241: Groovy  A New Standard Programming Language for the Java Platform</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/03/jsr241_groovy_a.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-03-16T13:23:29Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.610</id>
<created>2004-03-16T13:23:29Z</created>
<summary type="text/plain">Creating a new, standard language for the Java Platform</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[<a href="http://www.jcp.org/en/jsr/detail?id=241">JSR-241: The Groovy Programming Language</a> proposes the standardization of a new programming language for the Java Platform  one that is on equal footing with the Java programming language.  Groovy is an <a href="http://en.wikipedia.org/wiki/Agile_programming_language">agile</a>, dynamic programming language like Python, Perl and Ruby, but it's designed specifically for the Java Platform and is completely interoperable with conventional Java programs.  Groovy is not a replacement for the Java programming language; its a complement to that language. It fills a niche that is in demand by developers but is currently neglected by the Java Platform.   
<p><p>
Until now the Java programming language has reigned supreme as the standard programming language for the Java Platform.  It has served us well for close to nine years, but it cannot be all things to all people. And it shouldn't. The Java Programming language, like C++ and C#, is a strongly and statically typed programming language. While this type of language, sometimes called a "conventional" language, is useful for solving many problems, it is not a panacea. Conventional programming languages are very exacting, meaning that you have to dot every 'i' and cross every 't' in order for the program to compile. This orthography of statically defining all the types may result in more predictable code, but it also tends to slow developers down.
<p>
An alternative to conventional programming languages are agile programming languages like Python, Ruby and Perl among others. These agile languages have long been called "scripting" languages, but that term is not, IMO, sufficient. Many in IT perceive scripting languages as layman languages that sacrifice technical sophistication for easy of use.  This may be true of some scripting languages, but it's certainly not the case with Python, Ruby or Perl. These are dynamic and powerful programming languages that happen to use less syntax to accomplish more.
<p>
To be perfectly honest, although I'm listed on the JSR as a co-spec lead, I'm a Johnny-come-lately to the Groovy bandwagon. Groovy already has a grass roots following and all the credit for the development of Groovy goes James Strachan and other contributors to the <a href="http://groovy.codehaus.org/">Groovy open source project</a>.  I'm not a language designer, but I understand the power that languages like Python and Ruby offer developers and I believe it is time for the Java Platform to include an agile programming language.  It's this personal conviction that led me to initiate and co-develop JSR-241 with James Strachan and Gier Magnusson of Apache. My role as a specification lead is to manage the progression of this JSR through the JCP and author the Groovy Language Specification  two tasks that can be terribly distracting to those doing the really hard work of developing the JSR itself.  
<p>
Groovy represents the beginning of a new era in the Java platform, one in which the Java community embraces language diversification and harnesses the full potential of the Java platform. Its the recognition that the Java is more than a programming language; its a robust platform upon which multiple languages can operate and co-exist. To me this has always been the unrealized promise of the Java Platform. 
<p>
The Java programming language is, simply put, a convenient abstraction for the real language of the Java platform: byte code.  As a user-friendly abstraction for byte code the Java programming language is powerful, but it's not omnipotent. There are circumstances in which a different language, an agile programming language, is more expressive and productive.
<p>
So why Groovy? Why not Jython or JRuby? Why not one of the dozens of other programming languages that are designed to run on the Java Virtual Machine?  It's my opinion, and I believe the opinion of those who support this JSR, that Groovy is the best choice because it was built from the ground up for the Java Platform and uses syntax that is familiar to Java developers, while leveraging some of best features that Python, Ruby and Smalltalk have to offer.  Jython and JRuby are excellent examples of how existing languages can be ported to the Java platform, but they are, after all, ports. They use syntax that is not designed with Java developers in mind and they are founded on a completely different set of code libraries. Groovy is designed for Java developers and its foundation is the standard APIs of the Java Platform.  ]]>

</content>
</entry>
<entry>
<title>The New York Times on Amazon.com Fraud</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/02/the_new_york_ti.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-02-16T04:22:52Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.1445</id>
<created>2004-02-16T04:22:52Z</created>
<summary type="text/plain">The New York Times reports on Amazon.com&apos;s fraud ridden review process, but they missed the point.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[The New York Times recently published a <a href=http://www.nytimes.com/2004/02/14/technology/14AMAZ.html?hp">story</a> about authors anonymously posting bogus five star reviews on their own books.  I was not mentioned in the article, but I was interviewed by the reporter, Ann Harman  she had read a <a href="http://weblogs.java.net/pub/wlg/665">blog</a> I posted previously about fraud in the Amazon.com review process.Anyway, I think the reporter missed the main point. The issue is not anonymous reviews, its the use of fake identities to post bogus reviews. 
<p><p>
There is, in my opinion, only one solution to Amazon.com's fraud-ridden book review system: Only customers who purchased the book from Amazon.com should be able to post a review on that book. Reviewers should be allowed anonymity, as long as Amazon.com keeps track of the reviewer's real identity.  Amazon.com should not allow any Tom, Dick or Harry with a Yahoo! Or HotMail Email address to post reviews on any books they want  that's the system they have now and it has resulted in a review process that cannot be trusted.  If you buy the book from Amazon.com, then you can review it. ]]>

</content>
</entry>
<entry>
<title>13 improvements for EJB</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/02/13_improvements.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-02-09T11:31:34Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.582</id>
<created>2004-02-09T11:31:34Z</created>
<summary type="text/plain">In my last blog entry I asked what we should do to make EJB better - this blog entry reports on your feedback.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[My last blog entry, "<a href="http://weblogs.java.net/pub/wlg/971">You can make EJB better</a>" generated a lot of feedback from developers on Java.net and <a href="http://www.theserverside.com/discussions/thread.jsp?thread_id=23670">TheServerSide.com</a>. I waited until Sunday night to review them so that people would have enough time to post their comments.
<p><p>
What struck me, after counting and grouping relevant posts, was that the developer community desperately desires a simpler programming model for EJB. 
<p>

In particular developers appear to be most interested in the following:
<blockquote>

1. Ditch CMP or make it simpler like Hibernate or JDO<br>
2. Use a POJO programming model<br>
3. Add support for Interceptors/filters/AOP.<br>
4. Eliminate/Consolidate the component interfaces (remote, local and endpoint).<br>
5. Make deployment descriptors more like XDoclet<br>
6. Instance-level authentication/entitlement.<br>
7. Replace the JNDI ENC with Dependency Injection (a.k.a. IoC).<br>
8. Add a Mutable Application Level Context<br>
9. Support development and testing outside the container system.<br>
10. Define cluster-wide singletons for EJB.<br>
11. Clearly specify and standardize class loading requirements.<br>
12. Standardize the deployment directory structure for EJBs.<br>
13. Support Inheritance.<br>
</blockquote>
Support for these top 13 features are shown in the order of preference. In other words, most people wanted number "1: Ditch CMP or simplify it like Hibernate/JDO". Of course these rankings are suspect because there were only 131 relevant "nominations" (out of 240+ postings). Still, this anecdotal pole provides us with some idea of what developers are looking for.
<p><p>
Some of the items can be grouped together to give more weight to a particular approach. For example, item 1, 2, 4, 7, 9 and 13 all seem to point at a CMP programming model that is more like Hibernate.  Hibernate uses a POJO programming model with dependency injection (IoC) and is not dependent on client interfaces. In addition, Hibernate applications can be developed and tested without a container system.  A tip of the hat to Galvin King and crew.
<p>
Other items were interesting but not surprising like asking for an XDoclet-like vendor-agnostic deployment processes. This is a big concern of mine since EJB isn't really portable in its current incarnation  you can't just drop an EJB JAR into most J2EE servers without adding some vendor specific deployment information. Actually this aligns nicely with the request that EJB define a standard directory structure for deployments similar to Web components.
<p>
The mutable application level context was a surprise for me. Standardization and specification of class loading behavior was not a surprise. Requests for instance-level authorization was also expected  it's something developers have been asking for since EJB 1.0.
<p>
I was delighted to see so many posts on this subject. Clearly people feel there is much to be done. I was less excited to see the thread wander off into Spring vs. JBoss vs. Mike Spille territory  but I found those posts interesting too. 
<p>
Obviously, there are better mechanisms for measuring public opinion than a blog. Perhaps someone will take on the task of organizing a more accurate pole, but for me the information and posts were very informative. I read every one of them. I greatly appreciate the time and effort so many put into responding.  Thank you.
<p>
I'm sharing these findings with the JSR 220 (EJB 3.0) Expert Group and expect your comments will generate a lot of discussion and a great deal of solid action by the group members. Keep an eye on JSR 220, eventually it will make it into public review at which time you'll have something solid to review and comment on. Your feedback is critical to the success of EJB.]]>

</content>
</entry>
<entry>
<title>You can make EJB better</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/01/you_can_make_ej.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-02-01T05:53:39Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.474</id>
<created>2004-02-01T05:53:39Z</created>
<summary type="text/plain">What&apos;s right and wrong with EJB today?  It&apos;s about time someone asked for your opinion, don&apos;t you think?</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[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. 
<p><p>
<i><b>What do you like or dislike about EJB? If it's broke, how should we fix it?</b></i>
<p>
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. ]]>

</content>
</entry>
<entry>
<title>Open Source Developer: Will Work for Food!</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/01/open_source_dev.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-01-22T07:06:08Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.1398</id>
<created>2004-01-22T07:06:08Z</created>
<summary type="text/plain">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.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[<p>

<b>UPDATED: January 23rd, 2004
<p>
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.
<p>
Here is the point of the blog:
<p>
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.
<p>
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.
<p>
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. 
<p>
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. 
<p>
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. 
<p>
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. 
<p>
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.
<p>
*************************************************************************************************</b><br>
<i>
<b>Oringinal Blog Entry: Janaury 22nd, 2004</b>
<p>
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.
<p><p>
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.
<p>
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. 
<p>
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.
</i>]]>

</content>
</entry>
<entry>
<title>Groovy, Baby!</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2004/01/groovy_baby.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-01-13T20:12:16Z</issued>
<id>tag:weblogs.java.net,2004:/blog/monsonhaefel/110.639</id>
<created>2004-01-13T20:12:16Z</created>
<summary type="text/plain">Groovy is a cool, open source, Python/Ruby like Java compatable scripting language.
</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[James Strachan and others have been working on an awesome new scripting language for Java called, <a href="http://groovy.codehaus.org/">Groovy</a>. 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.
<p><p>
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.
<p>

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 <a href="http://groovy.codehaus.org/">web site</a> and see what you can do  testing code is always a big help.  Personally, I hope to help with the documentation of this language. 
<p>
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.  ]]>

</content>
</entry>
<entry>
<title>What&apos;s Richard Monson-Haefel up to in 2004?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2003/12/whats_richard_m.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-12-28T06:42:11Z</issued>
<id>tag:weblogs.java.net,2003:/blog/monsonhaefel/110.262</id>
<created>2003-12-28T06:42:11Z</created>
<summary type="text/plain">For 2004, RMH is planning to write a paper and possibly a book on the J2SE, working on the JCP EC, JSR 220, and Geronimo, and consulting.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>
<dc:subject>J2SE</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[Now that the <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321146182">J2EE Web Services</a> book has been published and I'm wrapping up work on the 4ed of the EJB book, I can talk a little about what I'm planning to do in 2004.
<p><p>
So what's next? I've wanted to write a book on J2SE for a couple of years, but since this space is already crowded I've put it off.  Recently, however, I've decided to test out some material for such a book - I may post it on the Internet.  The purpose of the book, tentatively titled <i>This is Java</i>, is to explain how Java works under the hood.  If all goes well, the material will be easy to read and accessible to intermediate developers and άber-wonks alike. 
<p>
In addition to working on <i>This is Java</i> I'm going to be very involved in the <a href="http://www.jcp.org/en/participation/committee">JCP Executive Committee</a> this coming year.  There are a lot of specs going through the process now and probably a lot more to come, so this will take up a fare amount of my time.  I'm also working on <a href="http://www.jcp.org/en/jsr/detail?id=220">JSR-220</a> (EJB 3.0) and the Apache <a href="http://incubator.apache.org/projects/geronimo.html">Geronimo</a> and the <a href="http://openejb.sourceforge.net/">OpenEJB</a> projects.  Of course all these efforts are more or less philanthropic since they don't pay cash.  To earn a living I'll be spending about 20 hours a week consulting and/or doing some training  nothing solid to report on that end yet.]]>

</content>
</entry>
<entry>
<title>Explicit vs. Implicit Programming Models for J2EE</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/monsonhaefel/archive/2003/12/explicit_vs_imp.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-12-17T05:03:35Z</issued>
<id>tag:weblogs.java.net,2003:/blog/monsonhaefel/110.384</id>
<created>2003-12-17T05:03:35Z</created>
<summary type="text/plain">J2EE needs an alternative, simplified set of component models and APIs.</summary>
<author>
<name>monsonhaefel</name>

<email>Richard@Monson-Haefel.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/monsonhaefel/">
<![CDATA[Over the past four years the various J2EE APIs (EJB, Servlets, JDBC, etc.) have become more and more sophisticated and, unfortunately, more complicated.  As a result the learning curve has become ridiculously steep  for every API in J2EE there are dozens of types and hundreds of methods and a bazillion books designed to make them easier to understand.  The increase in sophistication is necessary because enterprise software is inherently complicated, but do the APIs need to reflect the complexity of the underlying systems or should they hide the complexity?  I argue that the J2EE APIs should reflect complexity as well as hide it by offering both implicit and explicit programming models.
<p><p>
An explicit programming model, by my definition, is one that reflects the complexity of the underlying system by offering developer very precise fine-grained control.  An example of an explicit programming model is EJB, which gives developers a lot of control over how enterprise beans interact with their container system and serve requests. EJB is explicit, because it exposes a lot detail about the underlying system to the developer. An explicit programming model like EJB offers developers a lot of control, and therefore flexibility, but at a cost. Explicit programming models tend to be complex and difficult to master.
<p>
An implicit programming model, also by my definition, is one that hides the complexity of the underlying system.  I can't think of any good examples of implicit programming models in J2EE today.  All the standard J2EE APIs are pretty much explicit.  Something that comes close, IMO, is the JAX-RPC Service Endpoint (JSE) component, which is really just a POJO (plain old Java object). The JSE allows you to develop sophisticated Web services but doesn't require familiarity with SOAP, http, or even the Servlet APIs. Its not prefect: You still have to know about the JNDI Environment Naming Context to do something useful, but its a start in the right direction.
<p>
Personally, I would like to see all of the J2EE components and APIs offer a simpler, optional, programming model. One that can be easily mastered by novices but allows users to incrementally leverage more sophisticated features as needed.   ]]>

</content>
</entry>

</feed>