aspose file tools*
The moose likes Groovy and the fly likes How to sell Groovy in Java shop? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Languages » Groovy
Bookmark "How to sell Groovy in Java shop?" Watch "How to sell Groovy in Java shop?" New topic
Author

How to sell Groovy in Java shop?

Hussein Baghdadi
clojure forum advocate
Bartender

Joined: Nov 08, 2003
Posts: 3479

Hi.
How to sell Groovy in a Java shop?
I have been promoting Grails framework among my team mates, they liked the concepts of the framework but they frowned when they knew it uses Groovy at its main programing language.
Thanks.
S Davis
Author
Ranch Hand

Joined: Feb 07, 2006
Posts: 40
Hmmm -- I wonder what they are most concerned about?

If their concern is that Groovy is a "foreign" language, I like saying that Groovy _is_ Java. It is written in Java. It runs on the JVM. It compiles down to bytecode just like Java. You can call Groovy from Java, Java from Groovy, etc. If I handed them a JAR full of compiled Groovy bytecode, they wouldn't be able to tell in the least calling it from Java.

In terms of Grails, I'd ask which technology they don't like about it. Spring, Hibernate, Xerces, Jakarta Commons.* -- the only Groovy in Grails is the glue holding everything together. If I had to hazard a guess, I'd say that Grails is probably 75% Java or more. A Grails app is a standard JEE WAR with WEB-INF/lib, WEB-INF/classes, etc. It deploys to Tomcat, JBoss, WebSphere, WebLogic, etc. I started out with Grails at the 0.3 level knowing that if anything went wrong -- ANYTHING -- that I'd be able to back out to JSPs, Servlets, POJOs, you name it.

Adding Groovy to a project involves dropping a single JAR into the classpath. That's a pretty low-risk proposition if you ask me. You don't have to rewrite a single line of Java to accommodate Groovy. It snaps into any Java 1.4, 1.5, or 1.6 environment.

I'm not bashing Ruby or Rails here -- honestly -- but that could be a much tougher sell to a conservative Java organization. "Yeah, it doesn't use our IDE, or our deployment server, or our build process, or the language that everyone already knows..." That's really not FUD against RoR -- it is a brilliant framework if you're not tied to legacy Java apps. But this reason is _exactly_ why I am so excited about Groovy and Grails -- they are a perfect match for legacy Java apps. Same IDE, same deployment server, same build process, same language that everyone already knows. Drop a single JAR into the classpath and go.

If they are still concerned, start using it for testing and admin utilities -- nothing that actually goes into production, but all of the ancillary tools surrounding it. Once you have used it for a while off the critical path, they might warm up to the idea.
Alaa Nassef
Ranch Hand

Joined: Jan 28, 2008
Posts: 467
Hmmm -- I wonder what they are most concerned about?


I know that groovy IS java, but since it has its own syntax, people are mostly afraid of:
  • Learning curve
  • Maintainability

  • The second one is what people are afraid of the most. They would think that if the program is written in a foreign language, it would be harder to maintain, since they will not be able to know how to maintain that foreign language. What they should know is that groovy has a really fast learning curve, and (as you have said) "Groovy _is_ Java".


    Visit my blog: http://jnassef.blogspot.com/
    Jim Yingst
    Wanderer
    Sheriff

    Joined: Jan 30, 2000
    Posts: 18671
    To be fair, "Groovy is Java" is a bit of an oversimplification. All existing Java code will run as Groovy, great. (Though not always with the same result.) But the reverse isn't really true. If a company spends a year or two developing a lot of code in Groovy but the language doesn't catch on elsewhere, then later maintenance will be more difficult as they've got all this code in a funky niche language that few people know how to program in. At least, that seems like a potential concern. Still, that sort of concern is an issue with most any new technology really, and Groovy should be easy for others to pick up in the future when they join the project, even if it doesn't become big elsewhere.
    [ February 20, 2008: Message edited by: Jim Yingst ]

    "I'm not back." - Bill Harding, Twister
    Liz Ardu
    Greenhorn

    Joined: Feb 20, 2008
    Posts: 7
    This is a constant struggle for me. I have so much trouble trying to convince people in our Java shop to even try Groovy. Many are willing to dump *years* of legacy Java code and re-write everything in Ruby, but try Groovy? Nah.

    I have been able to get a few started on the Groovy by using it for unit tests and mocks. We have a goal of 100% code coverage so Groovy has proven useful in that aspect. But the interest for development is just not there (yet).

    I have an upcoming tech time presentation so I'm hoping to spread the word.

    I just wish the name was something better than "Groovy". Honestly, I think that turns off a few.
    Gregg Bolinger
    GenRocket Founder
    Ranch Hand

    Joined: Jul 11, 2001
    Posts: 15299
        
        6

    Originally posted by Liz Ardmore:
    I just wish the name was something better than "Groovy". Honestly, I think that turns off a few.


    Yea, cause these hugely popular languages don't have odd names at all

    Java - coffee
    Ruby - Stone/Jewel
    Perl - Stone/Jewel
    C# - Musical Note
    Lisp - I talk funny
    BeanShell - really?
    Python - Snake


    Google sure is a silly name.

    :roll:


    GenRocket - Experts at Building Test Data
    Jim Yingst
    Wanderer
    Sheriff

    Joined: Jan 30, 2000
    Posts: 18671
    A few years ago when the Groovy home page had a wiki page for alternate names (is that still around somewhere?) I suggested Grüvi. Actually I rather liked another suggestion, Jade (Java alternative to Perl or Ruby, all gemstones). Unfortunately then we might get called Jaded programmers. Personally I like the name Groovy, but guess I can see how some people might have an irrational prejudice against it.

    On another front, Amazon currently has a listing for The Definitive Guide to Grails, 2nd Edition, to come out this June, supposedly. Of course Amazon release dates are often meaningless this far in advance, especially for computer books. I notice that Graeme Rocher has acquired a co-author for this edition, some new upstart of an author I don't recognize. I don't know if this new guy knows anything about Groovy/Grails, but I guess we'll see.
    [ February 20, 2008: Message edited by: Jim Yingst ]
    Liz Ardu
    Greenhorn

    Joined: Feb 20, 2008
    Posts: 7
    True, those other languages also have odd-ish names, but their names are just in a whole different category than "groovy". Maybe cause I'm a 60s child, it's just the hippie connotation. Tell me that when you talk to someone who's never heard of Groovy that they don't give you the snicker, eye roll, or dumb look before they say "no thanks".

    Sorry, I didn't mean start another "why is the name weird" debate. This topic is how-to get the shop to use Groovy. I ended my previous reply with that flippant comment cause I think more in *my* shop would give it a second thought if it had a less-odd name. My 2 cents.

    BeanShell - hugely popular? hmmm... I loved the Beany before I found Groovy but no one I know uses it much less has ever heard of it.
    [ February 20, 2008: Message edited by: Liz Ardmore ]
    Jim Yingst
    Wanderer
    Sheriff

    Joined: Jan 30, 2000
    Posts: 18671
    Oh, and Python is named for Monty Python, not the snake. But book publishers can more cheaply print pictures of non-copyrighted snakes than of Cleese and company. Too bad...
    [ February 20, 2008: Message edited by: Jim Yingst ]
    Jim Yingst
    Wanderer
    Sheriff

    Joined: Jan 30, 2000
    Posts: 18671
    alias granite=groovy

    "Yes, we're shifting to the Granite programming language. It's much more reliable than that silly Groovy thing. You were right to block us on that move, yessir..."
    Liz Ardu
    Greenhorn

    Joined: Feb 20, 2008
    Posts: 7
    Granite? okay, now we're talking. It sounds so much more ... solid. I'll announce the new name to the team tomorrow and see how many ruby fanboys make the jump.

    We have this Java ballistics model that has been written, tweaked, perfected over the years. I was trying to explain to a ruby-wanna-be team that with Groovy we could take advantage of the legacy Java codebase yet move to a more modern language. With Ruby, they'd have to re-write that whole ballistics beast. It'd take several man-years to re-code and re-validate. We have to make this thing called profit. We don't have budget or schedule to re-do working solid code. One guy actually said "re-writing it would be good experience for the team. It'd help us get over the ruby learning curve". !!! He was serious!
    Alaa Nassef
    Ranch Hand

    Joined: Jan 28, 2008
    Posts: 467
    Originally posted by Liz Ardmore:
    One guy actually said "re-writing it would be good experience for the team. It'd help us get over the ruby learning curve". !!! He was serious!


    If you have managerial authorities, fire this guy right away . OH MY GOD! Serious? Spending several man years to get over the learning curve? WOW!

    Well, I believe that your real point of strength would be that groovy and java speak the same language internally, so you won't have to change a line of code of our legacy code.
    J Alexander
    Greenhorn

    Joined: Feb 20, 2008
    Posts: 4
    I did a short presentation on groovy, but nobody was really sold on it. I emphasized Groovy's support on the JVM and the JSR.

    We have some sharp people. Their main objections are
    1. performance?
    2. support (as in vendor support)?
    3. does it really save time or anything important?
    4. seriously, in production?

    We have so much unholy garbage to maintain, maint. was not an issue. Some of us could create disasters in one language just as well as another.

    Like a lot of things in a large corporation, we cannot sell any good ideas to management or other developers. The only approach that seems to work for us is to build it and they will come. When we wanted to get developers to use Cruise Control and automated testing, a couple of us had to just make it happen and then show others how it worked. Few people want to get something started. They'd rather just jump on with what is already running.

    So, you could use Groovy in something that is used internal, (highly visible to developers but not putting your company on the line). Just find a need that could be met with Groovy in a reasonable amount of time. Prove it out, make it happen so people will ask "So, this is in Groovy/Grails?". Even if it's a utility to automate a common task. Better yet, make it vanilla but customizable, create a couple custom examples and show developers how to extend it.

    I also just stuff "Groovy" or "Grails" in conversations with some developers just little enough to not annoy anyone much.
    Hussein Baghdadi
    clojure forum advocate
    Bartender

    Joined: Nov 08, 2003
    Posts: 3479

    I like Groovy naming.
    Consider your self in an interview:
    I'm a Groovy programmer
    Sounds good
    Mark Herschberg
    Sheriff

    Joined: Dec 04, 2000
    Posts: 6037
    Originally posted by J Alexander:

    Like a lot of things in a large corporation, we cannot sell any good ideas to management or other developers. The only approach that seems to work for us is to build it and they will come. When we wanted to get developers to use Cruise Control and automated testing, a couple of us had to just make it happen and then show others how it worked. Few people want to get something started. They'd rather just jump on with what is already running.


    I don't know you or your company, and I didn't see your pitch so don't take this personally--it may not even be relevant to you, but I'll share one piece of advice from a number of times I've seen people in your situation. Often the problem is management, it's the person selling. The problem is that the seller is usually someone who is not a manager (usually developer, architect, QA, IT) as such the seller talks about what's important to the seller, but not what's important to the manager.

    In the case of groovy, someone might be selling improved productivity. Yes, the manager cares about that. But what about the risks? Is it proven to really increase productivity or is that just what people are saying? Does it scale? Is it stable? Will it integrate with other systems in other departments that never expected to connect to? When this app gets extended in 2 years will you hit a limitation in the technology? Can you find new hires with experience in that technology?

    There was a famous saying in the 1960's, "nobody every got fired for buying IBM." New technologies typically start on the fringes (in our industry startups). Your typical Global 1000 manager doesn't want to take risks. He can handle being 50% late on an SAP project because people know what SAP is and they know problems arise (so even if it's his fault, he can blame it on the nature of the project), but if you use a new technology and something goes wrong, your peers and your own managers say, "why did you take such an unnecessary risk? you could have done it with Java/.NET and avoided this problem" (whether or not that is actually the case).

    The best way to sell in is find the nail for which this is the hammer. In particular, find a project that means a lot to the manager (pet project for which he doesn't have resources), or critical project that is a pain in his side in which this would make a big impact. By the latter I don't mean a critical major project that can't fail--he won't take the chance--but rather something already a big mess where you say, "give me X man weeks and I can get a stopgap solution in place" and the manager is desperate enough to give it a shot.

    --Mark
     
    It is sorta covered in the JavaRanch Style Guide.
     
    subject: How to sell Groovy in Java shop?