4 ms·
I first learned about serious Perl development working for eToys.com. The web application scaled to a cluster of hundreds of machines and saw extremely high tra
by mmaunder 16y ago
I first learned about serious Perl development working for eToys.com. The web application scaled to a cluster of hundreds of machines and saw extremely high traffic. We had a large team working on it without any problem. The European warehouse management system was also written in Perl and was my baby.
After seeing what Perl can do in terms of development speed, maintainability and speed of execution I've never looked back. I've worked on a ton of great projects since then and today I run my own startup with a tiny team, a tiny cluster and we serve over 600 application requests per second all from modperl, nginx, apache and mysql.
I've seen languages come and go over the years and here's what I've thought:
Java: In the late 90's I wrote a few java apps thought it was a cool language. But I didn't like that it was proprietary. I also had the opportunity to ask Steve Balmer about the Visual J/Sun lawsuit while I was at Credit Suisse. The whole thing just turned me off and I moved on. Thankfully I did, because today it's still dog slow to develop and to execute and now it' belongs to Oracle.
PHP: Embedding your code in your HTML seemed like a bad idea and still does.
C: I've seriously considered switching to C for web apps over the years, but the performance gains haven't justified the increased complexity and added time to code or prototype.
Ruby: I first dabbled in Ruby in 2005 but realized it was Perl in the early 90's and that startups are risky enough. I still eye it keenly, but it just can't touch ModPerl's performance and stability and more importantly, it's availability of libraries. It will one day though and then I may just drop everything and join the party.
Javascript on Node.js: This is the most exciting development and web languages since Perl simply because you can write asynchronous apps (single thread that handles 1000000's of clients concurrently) in a high level language. I'm already using Node and am REALLY looking forward to more libraries being available and to them being more stable. Things like db drivers, crypt libs, date, html and text manipulation libs. Node is the way of the future.
- michaelchisari 16y agoPHP: Embedding your code in your HTML seemed like a bad idea It's a terrible idea, but it does have the advantage of giving you a good way to separating the wheat from the chaff. Solid PHP programmers never (or very, very rarely) embed PHP code in HTML.
- mmaunder 16y agoYes, you're absolutely right and some of the greatest apps ever written are PHP apps e.g. Wordpress and Facebook. I should add, all the languages above are capable of creating the next Facebook. In the startup context, the most important thing is using what you are most productive in. Longer term you need to think about things like how hard it is to hire Ruby devs or how expensive C devs are or that you'll need 3.4 as many CPU's to run Ruby sequential tasks vs Perl (according to those benchmarks posted anyway). A word about benchmarks: The mostly don't matter unless you're at Facebook scale and trying to eek out another 3% profit margin or unless you're running a widget (or similar) business that relies on massive app volume for distribution with very thin margins. If you're a 2 person show writing a regular app like a dating site, classified ads site, etc, then by the time you're doing any kind of volume, you're going to be so massively profitable that you really won't care about these benchmarks. Also these days people and their time are way more expensive than hosting fees.
- ido 16y agoThankfully I did, because today it's still dog slow to develop and to execute and now it' belongs to Oracle. Can you name a language beside assembly, c and (in some cases) c++ that executes faster than java, in any significant way in anything but very uncommon circumstances? Nobody says you have to like java, but unsubstantiated anti-language propaganda doesn't really add much to the conversation (as perl user you should be the one to know ;)
- jchonphoenix 16y agoFortran is, in fact, faster than C.
- ido 16y agoYou can probably find a couple of other languages (ocaml?), but among the languages in common usage today (including perl) java is firmly within the performant bracket.
- grayrest 16y ago> Can you name a language beside assembly, c and (in some cases) c++ that executes faster than java, in any significant way in anything but very uncommon circumstances? The VM is great, but the Java community's "best practices" are insanely stupid. It doesn't really matter how fast your VM is when web requests are going through a couple dozen filters or getting serialized/deserialized to XML.
- brown9-2 16y agoNo one is forcing you to use other people's best practices, poor choices can be made in any language.
- grayrest 16y ago> No one is forcing you to use other people's best practices This is only true if you only work on your own code or you call all the technical shots. Part of working with other people is coming into agreement on how things are done. When you're working on someone else's code, you play by their rules. Nobody forces you to do this, but if you don't you're generally not someone most programmers would want to work with, professionally or privately. This tends to occur on the job when you get something dumped on you with a time constraint. Your options are to use other people's practices, argue that yours are better (which usually requires a restructure and pushes back the time constraint), or quit. Nobody forces you to go for the first option but the second two are the more difficult paths.
- m0shen 16y agoJavascript on Node.js: This is the most exciting development and web languages since Perl simply because you can write asynchronous apps (single thread that handles 1000000's of clients concurrently) in a high level language. Have you tried AnyEvent or Twiggy for Perl?
- bsaunder 16y agoI've been using AnyEvent for several months now and really like it. It took some work to mentally sync up with it initially, but once it clicked I was happy I took the time.