Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Perl Programmer -> J2EE Convert?

by Anonymous Monk
on Oct 12, 2005 at 03:47 UTC ( #499357=perlquestion: print w/replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks!

I hope I've posted this in the right place.

I'm a dedicated Perl Hacker. I've used perl and mod_perl for every web application I've ever worked on. I used to use perl4 and made the trasition to perl5 when that happened. I can't wait for perl6. I can make stuff happen. I love perl and write it better than I write english.

I am a programmer, I think I'm a good one. But I'm not a business person.

The problem is I have a new project I'm working on and I think it would be good to learn a new language/architecture. More importantly, I think J2EE is going to more saleable. An easer sell to tech people and an easier sell to VC (venture capital) people. These people want the latest buzz. J2EE has been around for a long time, but from my experience it is what peoiple want to hear.

So... my questions to all of you are simple:

1: How can I make perl/mod_perl more saleable?

2: How can I promote perl/mod_perl scalability vs. J2EE?

3: How to overcome the term scalability for people who really have nothing to worry about but think they do?

4: I don't see anything j2ee can do that I can't do with perl/mod_perl. Why is it percieved as "better"?

5: Is this just a marketing thing or is there something I am missing?

Thank for any insight you can provide. I appreciate it.

Replies are listed 'Best First'.
Re: Perl Programmer -> J2EE Convert?
by perrin (Chancellor) on Oct 12, 2005 at 04:57 UTC
    There are some things that J2EE has which you would have to build yourself if you wanted them in Perl. However, most of them are of no use to most projects.

    I often hear people say that J2EE is an "easier sell" to VCs, yet none of the most successful startups of the past few years have used Java as their primary language. The only I can think of is eBay, and that was a rewrite from C++. Java is definitely the language of choice in huge, slow-moving corporations, but startups often use Python, C, Perl, Lisp, etc.

    If people question you about the scalability of Perl, you might mention to them some of the companies that make extensive use of Perl: Amazon, Yahoo, Overture, TicketMaster, CitySearch, IMDB...

      This is an intersting perspective, and in fact, how I was thinking from the start. We don't have much cash and so getting things working quickly is of the utmost importance.

      I could have the service up and running twice as fast in perl/mod_perl as I could in J2EE. This means we'll make money faster, and I won't starve.

      BUT... my partner (not a programmer) as well as other techs I've asked for advice have insisted J2EE is the only way to go. I keep pushing but so do they...which got me on this whole worrisome path.

      I will write down and investigate your sample companies and present them to my partner... thank you.
        .. Asking non-programmers for this sort of advice sounds like.. Asking your grandmother how to fix the internals of your car (or some other suitably apt comparison that is failing to occur to me)


        Incidentally, even the ones who use Java tend to not use J2EE these days. eBay's rewrite was in Java, but they had to drop most of J2EE because they couldn't make it scale big enough. Now, there's practically no one else with the scalability challenges of eBay, but still...

        So, if you feel you need to use Java, consider using a lightweight approach based on open source Java tools.

Re: Perl Programmer -> J2EE Convert?
by adrianh (Chancellor) on Oct 12, 2005 at 09:31 UTC
    I think J2EE is going to more saleable. An easer sell to tech people and an easier sell to VC (venture capital) people. These people want the latest buzz.

    I have to admit this goes against my limited experience of VCs.

    The VCs I've been involved with do not give a flying fig about the technology involved. In fact, if anything, they have a bias against the "latest buzz". New stuff is untested and might not work. Other people tend to jump on bandwagons, so you instantly have more competition for the business if it's all built around a particular "new" technology.

    The only area that VCs care about technology is "How does it support the business plan?". Show that technology Foo can meet the business goals, and mitigate risks, better than technology Bar and they don't care what Foo actually is.

    How can I make perl/mod_perl more saleable?

    Generally - push out the usual success stories. Specifically - show how it will meet your specific business needs better (i.e. cheaper, faster, more flexibly, etc.) than the alternatives.

    How can I promote perl/mod_perl scalability vs. J2EE?

    Generally - show them success stories like the BBC where they're pushing 500 requests per second. Specifically get the expected numbers for your business domain, design an architecture that can scale, do a quick spike solution to demonstrate it works

    How to overcome the term scalability for people who really have nothing to worry about but think they do?

    Numbers. Dig out the business plans. Look at how many numbers you can expect. Design a nice decoupled system than can easily scale by just adding boxes. Say "Look - we can start here and if we're stupidly successful we can scale by adding N boxes to the datacentre at Foo for $XXX.

    I don't see anything j2ee can do that I can't do with perl/mod_perl. Why is it percieved as "better"?

    Off the top of my head:

    • J2EE has everything and the kitchen sink in one box. It's all pretty reliable. It all works fairly well. With mod_perl solutions you might have to write a bit more code in some places. You might have to spend more time evaluating N different CPAN modules.
    • Open Source scares some people.
    • Perl is used more generally and people confused "Perl was used for that small site" with "Perl can only be used on small sites".
    • Perl 5 is perceived as an end of life technology.
    • It's noticeably easier to find good Java developers (in my experience anyway)
    • Sun vs @Larry + N different CPAN authors
    • Better PR
    Is this just a marketing thing or is there something I am missing?

    I don't think it's just marketing (at least in the narrow sense of Sun spending money to promote Java) although that's certainly a component.

Re: Perl Programmer -> J2EE Convert?
by pg (Canon) on Oct 12, 2005 at 04:17 UTC

    You are not asking a simple question, and I don't believe there will be a simple answer. To be frank, even with the terminologies, you cannot expect everybody to understand them in the same way. What exactly is scalability? How are you going to measure it? You ask ten people, they are probably going to give you 10 different answers - all have different focuses. Not to say, a more serious question, do you have any benchmarks, or does anyone have?

    You left me wondering, are you looking for solid evidences that Perl are more strong in some areas, or do you want to hear some marketing stuff (without much serious research) - another set of buzz word?

      This drives the question home.... what does scalability mean for your average or above average site. We are not talking google or yahoo here.

      To tell you the truth, I've used Perl in many, high traffic sites. Scalability has never been an issue for me.

      But that is not what investors and other tech people will want to hear. They will assume, correctly or not, that those sites were not busy enough. They assume, most often incorrectly that they will have more traffic. Even if they only have 1000 employees.

      So I guess what I'm asking is why people think java better... why do they belive it will solve the problem? Why is scalability brought up so much for companies who clearly do not require the level of scale they think they do?

      These are marketing questions so I guess I'm asking for a good way to respond to these marketing people. Buzz words or not... that's what I *think* I'm up against.

      Or maybe I'm just going crazy and not focusing on the right companies to sell software to.

        Obviously you mixed up capacity with scalability.

        Scalalbility does not particularly care whether you have high traffic or 1000 employees. Scalability is about: whether you can easily configure the system to have the right capacity that you required, so that it uses the right amount of resources to support this capacity. For example, if you only have 1000 employees now, the system can be configured to use the right amount of CPU cycles, memories etc. to support this capacity. What if your company will double its size in 3 years, fine, we reconfigure the system and that process will be painless, so that it can support the traffic for 2000 employees, and probably use 110% more resources. Now you want to open up a sub-company that only has 100 employees with some low end computers, fine, we install a set of the software, and configure it to support only 100 employees, and the low end boxes fit greatly.

        This is scalability.

Re: Perl Programmer -> J2EE Convert?
by Moron (Curate) on Oct 12, 2005 at 11:50 UTC
    1) Focus on perl's unique selling proposition, which includes:

    - CPAN

    - the fact that only perl can be used to glue other programming environments together - for example, IPC:Open2 can farm functionality out to other languages and process the results. C and Java can't do that, causing expensive coding whenever something difficult or specialised comes along.

    2) 3) I don't know what your scalability issue is.

    4) It is perceived as better because most java programmers have never been exposed to solving the things perl can solve and so they don't know any better than to think this. There have also been some benchmarks on the internet that are biased against perl and in favour of java. But there are other benchmarks that make perl look better than java. The reason is that unless the tester has god-like skills, all the test is doing is testing the holes in the tester's knowledge. i.e. if it shows perl as slower it is demonstrating most likely that the test written in perl is naively written - it is not saying anything about perl itself.

    5) Java is proprietary, so there is a commercial interest in 'demonstrating' that java is better than perl. So yes, it is reasonable to say that the stories about java being better are rooted in propaganda - there is no huge corporation pumping out perl propaganda by comparison.

    I would advise preparing your own comparative analysis with your own benchmark tests that fairly address what you will actually run - perhaps some sample code in perl, java and whatever else that does a small but functionally and technically representative piece of the functionality the business will actually do.


    Free your mind

      "I would advise preparing your own comparative analysis with your own benchmark tests that fairly address what you will actually run - perhaps some sample code in perl, java and whatever else that does a small but functionally and technically representative piece of the functionality the business will actually do."

      This seems to me asking a bit too much work, even for a pitch to the VCs. Unless the OP has written benchmarks, it's unlikely he'll have it done in time for the pitch.

      But the main thing I'd like to ask is, hasn't anybody done this already? Some links pointing in this direction would be great.

      I see myself being in the OP's shoes sometime soon, and would love to get educated on this.

      So basically, where is the perl propaganda? The success stories linked above was good. Is there any benchmarking propaganda?

        I was sure you could google for perl advocacy, but it appears you'd need to dig more than I'm willing to dig for you. However, you can easily be amused, at least.
Re: Perl Programmer -> J2EE Convert?
by jdtoronto (Prior) on Oct 12, 2005 at 16:35 UTC
    Well, you ask an interesting set of questions, and others have provided you with many of the answers you seek. But allow me to give you another perspective. Over many years I have been hired by employers to sit on selection panels and by VC's and the like, to review proposals of various sorts. I have worked on everything from submarines and fighter aircraft to toll-roads and small web sites. I have one VC I do something for every couple of weeks or so. Here are some of our observations:

    JAVA A great tool for a large corporation where you can invest sufficient money and time in training. Not necessarilly a tool for start-ups or small concerns. Only touted for those environments by people who know nothing else it would seem!
    J2EE Okay, now we know we don't want to be involved in this!
    Python Hmmm, these guys are worth listening too, they may actually have something you know.
    ASP / .NET Oh dear, the development may go just fine, but the cost of operation, servers, sysadmins etc just doubled compared to *nix
    PHP Hmmm, yeah, look at the resume's again, these guys went to a community college didn't they! Maybe they can make it work, but it sure as heck won't scale!
    Perl Ahh, now we are talking. Listen carefully to these guys. My VC knows the Perl scalability story. mod_perl and Apache with a good framework goes down very well.

    About 6 months ago this VC put $250k into a start-up to create a portal for teenage sports fans. They had a functional demo, but not lots of graphics and Flash yet. The potential was obvious. They spent about half the money on Flash and graphic arts and launched on a single mod_perl server. But they had planned for scalability. And when after about a month they hit 1200gb/month of traffic and were using 8 servers the VC had made his money back and still had 40% of the company. The winning factors: perl, mod_perl, Apache and MySQL. He had evaluated a similar proposal a few weeks earlier for the same basic thing using JAVA and Flash. That project got funding elsewhere but we heard that last week their VC pulled the funding after nearly $400k, a big pile of Flash but only about 1/3rd of the functionality working.

    I only wish that I could get points on this VC's successes instead of my flat fee! But if you can go to a VC with a mock-up of the core functionality already done in Perl, then you are usually going to be streets ahead of the competition. It seems to me that the VC's like the idea of being able to get launched early and start seeing some cash flow, even if it takes time to build the big thing and do the major launch.

    So, unlike what somebody else said in this thread, the VC's _DO_ care about the technology. To them the choice of technology actually says a lot about the people proposing the deal. And please don't ask, my NDA's are all signed and up to date.


Re: Perl Programmer -> J2EE Convert?
by xdg (Monsignor) on Oct 12, 2005 at 20:45 UTC

    I'm surprised that no one has yet suggested fighting the J2EE buzzword by countering with another, instead: LAMP. If it's good enough for O'Reilly...


    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Re: Perl Programmer -> J2EE Convert?
by chrisSCM (Initiate) on Oct 06, 2011 at 13:24 UTC

    Same questions that I'm asking myself right now... I'm coming "from the other side", having taken part in J2EE-projects and seeing them all fail for one or another reason.

    One, might have been the "explicitness" of Java, or the necessity for blowing it all up, excessively. You just don't get things done fast and easily. And that's where Perl comes in - having programmed some stuff in Perl/Mason and some little modules for daily server administration, I see: Yes, in Perl, you get things done, quickly!

    That's why I would think Perl is superior to Java. But Java/JEE seems to sound better to "the market".

    How would Perl compare to JEE nowadays (6 yrs. later than the original post) - with respect to: completeness, connectivity, security, scalability, ...whatever is associated with the general fitness of JEE for any kind of business case - !? Is there anything self-contained, in Perl, that we could call "comparable" to JEE?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://499357]
Approved by GrandFather
Front-paged by monkfan
[Corion]: Cosmic37: Ah, see perlfaq4, about How do I compute the intersection of two arrays
[Cosmic37]: I am out of practice; I use Perl for scientific programming for number crunching
[Corion]: Cosmic37: Basically, you read one file into a hash, keyed by your key, and then match the lines from the second file to that hash
[Cosmic37]: note that the two files only have datetimes which may match whereas other data per line is different format in file1 and file2 - is that really intersection?
[jedikaiti]: Hi Monks
[Corion]: Cosmic37: Well, if you want to use only parts of a line for the key, see split or whatever other mechanism to extract the key from the line
[Corion]: Hi jedikaiti!
[Cosmic37]: is there a webpage for full CB for this chat rather than side panel chat?
[Cosmic37]: thank you for advice
[Cosmic37]: peach greets jedi

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (9)
As of 2017-06-29 16:21 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (672 votes). Check out past polls.