I figured it out. I'm sure you all know this already as usual.
I know my way around the web browser, HTTP, networking, etc as well as a good mechanic knows his way around engines and things that are in cars (clearly, I know nothing about cars). At work I can whip up a web server front end that does some amazing things in a couple of hours. I'd grab a Google infrastructure C++ low-level performance server to do the networking and process management grunt work, slap a python layer on top of it for fast UI prototyping, hook in a sane but rich templating layer, iterate a few times on the interactive code, and wahla - whatever real "function" I wanted to get done will take shape very very fast. I feel comfortable here in this mode, I'm used to it, I move really fast.
It didn't always use to be this way. Before Google I would do the same thing, but instead I'd create a new apache conf file on a linux server I was already running, HUP the server, run a few mysql CREATE TABLE commands, drop some php in a directory somewhere, and off I was running on the real code.
I just tried to do this again with my old linux server and it was hard. In fact, so hard that I pretty much gave up. I couldn't wget files I wanted because the server firewall was locked down hard (by me), so I scp'ed them in the other direction. I then couldn't run some third-party code because my php version is too old, but I'm not confident enough to risk messing up apache and all of the other hundred or so running sites by trying to upgrade that tonight. I see myself cursing the LAMPhp stack as stupid and clearly inferior to my Google Server / Python / Django Template stack that I hack around with these days. But if you step back even just a little, it's clear that the stack shouldn't even be any more than a peripheral concern. The app is what matters: In my case, there are virtually no performance concerns, the complexity of what I want to do is very small so the language can't matter. What matters is knowing what is familiar. This may not be true if I embarked on a serious project, but for what I want to do, it doesn't matter. Still, I can't shake this feeling that my more familiar stack is inherently far superior than my less familiar stack. I don't understand why I feel this way, but I can understand that this feeling is the why for most language wars. I wonder if most people use different languages and technologies enough to really realize this.
There are probably some inherently bad languages for any given project, but probably most common languages out there are good enough to not make much difference. Hear that Paul Graham and your Arc/Lisp or Steve Yegge and your NBL? Languages don't really matter, the fact that your project runs on language X is not a competitive advantage. Let me repeat that with some oomph: The fact that your project runs on language X is not a competitive advantage. The fact that my project runs on someone who just wants to get the application (aka: the job) done might actually be a competitive advantage.
2008-02-01
Why Language Wars
Posted by
Greg
at
12:06 AM
Subscribe to:
Post Comments (Atom)

0 comments:
Post a Comment