Re: Whither scripting? Will scripting wither?
by dimar (Curate) on Feb 01, 2006 at 00:19 UTC
|
This kind of dynamic has been going on since antiquity. Scripting will always have a niche, and 'enterprise-scale' development will too. Rarely it is based strictly on nuts-and-bolts practicality. Let's not forget: human beings are always subject to political pressure, the desire to feel 'knowledgable' and 'prestigious', and the desire to make things difficult for potential competitors through barriers to entry (turf preservation).
You see it in every realm of human activity, which includes programming and language design.
For people with a 'nuts-and-bolts' inclination, this "political" aspect can be a bit frustrating and bewildering. Nevertheless some PHBs realize that if they don't use Oraclefoo or Javawhiz for high-profile projects, there is a certain level of 'prestige loss' (and perhaps other issues) that cannot be quantified in mere nuts and bolts.
In some industry segments, this is not a major factor; but for universities, large corporations, utilities, financial institutions and other realms where prestige and reputation is the name of the game, you can just bet you are more likely to be Oracalized than MySQLated.
=oQDlNWYsBHI5JXZ2VGIulGIlJXYgQkUPxEIlhGdgY2bgMXZ5VGIlhGV
| [reply] |
Re: Whither scripting? Will scripting wither?
by adrianh (Chancellor) on Feb 01, 2006 at 11:27 UTC
|
'm not suggesting that there aren't real applications that need the protections that layered code and team-oriented development using design patterns and Application Servers et al provide
Not that you can't do those applications in Ruby or Perl or Lisp or whatever too...
I'm more and more of the opinion that most language choice is made for cultural/social reasons rather than technical reasons.
| [reply] |
|
|
| [reply] |
|
|
Add to that key extensions like Hibernate, Jakarta, and JBoss, and you have an entire system that can be an order of magnitude more complex than Embperl/Apache/MySQL. Is it better? Well, it sure ain't faster, but, yes, it will be more scalable.
Well - I'd have to disagree with that :-) I've had more problems with scaling Java systems than I have with Perl ones. Not that this was due to any deficit in Java per se, just that J2EE led them to modularise the systems in a way that could only scale by buying bigger hardware, rather than more hardware.
It's just as simple to write a scalable and reliable Perl application (or Ruby, or Python, or Lisp, or whatever) as it is to write a Java one. Most of the expertise in producing something reliable and scalable sits in the developers head rather than in the language.
| [reply] |
|
|
|
|
|
|
I agree with most of your points. I don't have enough experience with large management structures to say anything concrete about it, but it does sound plausible that most decisions in those environments aren't primarily based on technical considerations.
One thing that puzzles me though, is that you say that J2EE is a lot slower, yet more scalable than the perl/apache/mysql solution. I don't understand that at all. Surely the slowness implies that you need more boxes to reach the same level of service?
I find making mod_perl apps scalable a breeze: the standard Apache reverse-proxy setup combined with a replicated/clustered mysql setup means that:
- I can have any number of frontend webservers
- Those reverse-proxy to any number of mod_perl application servers
- Those communicate with any number of database servers
That means there is no single point of failure, and increasing scalability simply means adding another box to one of the tiers. Since mod_perl apparently outperforms J2EE, that means you need less machines for the middle tier.
For me, that says a LAMP setup can be both cheaper to start with, quicker to develop, and easier to scale.
It's entirely possible to set up this 3-tier model on a single machine, and I generally do so for my clients if they anticipate growth. Moving it to a multi-machine setup is a piece of cake, and doesn't require specialised perl skills. In my opinion, this means a LAMP setup is both extremely effective for small or starting businesses, but equally (cost)effective for large businesses.
Unless I miss something blindingly obvious, the only thing in favor of J2EE would be cheaper developers; but you'd need more of them (which means you need more managers), and they have to work harder, with more complex tools, to reach the same level of service.
| [reply] |
|
|
|
|
|
Re: Whither scripting? Will scripting wither?
by demerphq (Chancellor) on Feb 01, 2006 at 16:30 UTC
|
It seems like you consider Java not to be a scripting language. I don't understand why. As far as i can tell java meets all the requirements of a scripting language.
And it seems to me that there is no case at all to say that scripting is going to go away, ever. The fact is that scripting languages solve a whole bunch of problems of traditional software development and because of this they will never go away.
What criteria do i use to say something is a scripting language? The following:
-
Does not compile to native machine code but instead runs on a virtual machine of some sort.
-
Does not require (one might even say does not allow) the user to manage memory.
---
$world=~s/war/peace/g
| [reply] |
|
|
I don't understand why.
I understand why. Because it's verbose. Very verbose. If nothing else, this alone keeps it from being seen as a "scripting" language by nearly everybody. If you think, "This task is so simple it shouldn't take me more than 5 minutes to write a script to do it", you're not going to reach for Java. (Of course, there's always the hammer/nail syndrome; but those whose only hammer is Java probably don't believe in "scripting" anyway.)
Does not compile to native machine code but instead runs on a virtual machine of some sort.
I don't think so. There's little to stop Java or Perl compilers from targeting real machines; and a Java or Perl "real machine" could be constructed. In the real world :-), compilers for C targeting virtual machines have been around a long time. So this really can't be a discriminator.
Essentially, whether a language is a "scripting" language or not is really in the mind of the programmer. It's about ease of use; about how quickly one can go from problem to algorithm to solution. Whether the machine running that solution is real or virtual rarely if ever enters into that thought process.
perlfaq1: Is it a Perl program or a Perl script?
Most of the above is a regurgitation of a discussion that occurred in the chatterbox.
We're building the house of the future together.
| [reply] |
|
|
| [reply] [d/l] |
|
|
| [reply] |