http://www.perlmonks.org?node_id=312872


in reply to Re: Re: J2EE is too complicated - why not Perl?
in thread J2EE is too complicated - why not Perl?

For me, an example of an "enterprise level requirement" is a need for an accepted series of design patterns and underlying technologies for supporting software transactions accross multiple machine boundries with completely different transaction methodologies.

For example having an atomic software transaction which needs to update a series of databases (perhaps Oracle and MS-SQL, as an example) as well as fire off some CICS transactions and to be incredibly nasty, an update to an LDAP system. This is where going with an IBM J2EE stack makes sense, and this is where they "shine" as an enterprise application framework. From monitoring the livelyhood of your system with a Tivoli installtion, to perhaps using MQ for asynchronous message beans (oh, it seems that the mainframes are busy doing reports for 1/2 of the day, and we need an infrastructure that provides transparent asynchronous transaction execution) to being able to leverage it with a bunch of webbie programmers by giving them a custom tag environment to work within from within JSPs, and knowing that this environment is multi server failover "guaranteed" due to Websphere server clustering.

That's the sort of thing that's "enterprise" to me. 99% of the work in the software world is sure as hell *not* enterprise :) (At least in my humble experience...) Oh, and to finish off, yes, I do know that all of this is doable with Perl... hell, I'm sure it's doable with emacs lisp :) It's just that Perl doesn't have a quijillion dollar corporation betting their reputation on continuing to iterate through these tools and make them better and more suited to similar "enterprise" needs.

  • Comment on Re: Re: Re: J2EE is too complicated - why not Perl?

Replies are listed 'Best First'.
Re: Re: Re: Re: J2EE is too complicated - why not Perl?
by perrin (Chancellor) on Dec 10, 2003 at 22:22 UTC
    Just curious -- have you ever actually written Java code to do the kind of thing you're talking about here (transactions across heterogenous systems), and if so, how difficult was it? One thing that occurs to me is that the high-end vendors who sell these database systems typically also sell some kind of two-phase commit option that will work across competitors systems, so that could be an option for systems built using Perl.

      I have... across a mainframe / oracle / mssql boundry. It was not exactly the most fun thing in the world I've ever done, though I am reticent to admit (btw, I don't like java on a "personal preference" level), using Java did make it considerably easier. The mainframe vendor (IBM) already had a great many objects we could use to interface with MQ and CICS... Oracle behaved in an intelligent manner (they have too much invested in java to not at least *attempt* to behave in an intelligent manner), and the MSSQL work... actually, now that I think about it, someone else completely did that work :)

      i'm not saying that it's not likely and possible that if such a framework and series of libraries existed for perl, it wouldn't be equally suited. i just *personally* have no experience with perl on that level, nor have I successfully in my googling found a vendor (or preferably vendors) that provide a perl framework with such functionality. *sigh*, what a shame.

        If I had to do this in Perl, I would look at what the database vendors have to offer. Oracle and IBM both sell products for two-phase commit across multiple databases from different vendors. They also both implement the XA standard.

        Frankly, it doesn't sound that hard to build a very basic transaction monitor that would do two-phase commit across XA databases, probably tracking state with a local transaction-capable database like SQLite. The thing is, it's probably not worth the trouble to build it. There is just so little call for this sort of thing in real-world applications. Most companies are trying to do simpler things, like basic replication. When something comes along that could conceivably be done with two-phase commit, even the DBAs typically choose to go with something less safe but much simpler. I suspect the main customers for distributed transactions are the financial industry.