[Ocaml-biz] language religions

Brandon J. Van Every vanevery at indiegamedesign.com
Sun Oct 3 16:16:34 PDT 2004


M.J. Stahl wrote:
>
> I talked to a school mate of mine about my theories concerning where
> software development needs to be headed, and that direction is in
> DSL's (ie, Language Driven Development -- god I hate those buzz-wordy
> phrases).  His comment to me was, "..but compilers are hard to write".
> Damn, he's right. I couldn't agree more, but I only believe this is
> true because we don't teach people how to write compilers from the
> get-go.

If you really believe that, then I think you're ignoring industrial
practices.  Installed base matters.  Tools and libraries that are
finished already, matter.  Workers trained in specific skills already,
matter.  There's always going to be a lot of industrial inertia in
languages, until computers can figure out the languages themselves.
People aren't looking for the job of writing the basic tools from
scratch over and over again.  They're looking to just get on with what
they really need to do.  My job isn't to write a compiler, my job is to
ship a game.

In fact, I laugh - sardonically - every time I read a GameDeveloper
Magazine postmortem about some game project that screwed up its
schedule, because it had some 'smart' compiler guy who insisted on
writing Yet Another Scripting Language from scratch to implement a big
chunk of the game in.  Of course such a tool is never mature.  Of course
it delays the art production pipeline, because people must wait for it.

Why do people keep doing this?  Because the techies all want to 'have
fun' and use someone else's free money to implement their toy projects.
Stressed-out employees low on the food chain don't care if something
hurts the company's bottom line.  They don't think too hard about
whether it's going to make them completely miserable during production,
either.  They cross that bridge when they come to it, using heroics.  In
the beginning they just say, "I wanna write a compiler!" and they go do
it.  And predictably, it sucks.  Predictably, it's far more work than
they planned for.  Usually for not much value add.  Did they really
expect to solve all the performance and ease-of-use problems of
language-dom in the course of 1 personal effort on 1 game project
lasting 18 months?  Come on, get real.

> All in all, I don't have a solution to this marketing quandry.

We have lemmas, however.  Industrial inertia matters; it's not just
'nonsense' that can be educated away.  Once you realize that most people
are going to take the simple bonehead approach to what language they
use, then you realize you're talking about making people switch from one
perfunctory language to another.

You're not talking about devising esoteric toolkits for customizing
languages to specific problem domains.  That's the province of gurus.
To be effective it'll remain so; I pointed out the foibles of the game
developer knuckleheads above, who just want to play R&D on someone
else's nickel.

Now, you might *market* all the 'way kewl' language transformations that
various people do in OCaml.  If you wanted to appeal to techies about
'techie kewl' things.  But you wouldn't run out and devise such a
toolkit, expecting the masses to come.  It ain't gonna work and it ain't
gonna get done.  The *empty talk* is worth something, i.e. "OCaml is
great if you want to transform 3 languages into sliced bread!"  The
*guru* is worth something.

> And I
> personally think any PR in favor of OCaml will just look like
> evangelism, and people will turn a deaf ear.

Spoken like a true Techie.  Techies are notorious for saying they don't
like being marketed to.  Yet people market to them all the time anyways.
Marketing is a very cynical profession: what the consumer *says* he
wants is unimportant.  What the consumer *does*, what he actually buys
into, is important.  So you figure that out, and that's your marketing
strategy.

> OCaml needs a champion,
> and not one of flesh, but one of bytes. And I have never been good at
> figuring out what those were, so I focused on languages, and let the
> other people write the applications in them. =)

I'm working on the Nebula Device 3D engine
http://nebuladevice.cubik.org, myself.  I'm also working on The Great
Computer Language Shootout, http://shootout.alioth.debian.org/ .  In
both cases, I've made OCaml a secondary concern.  I have to wade through
all these 'up front' issues before OCaml will have any value to me.  If
the river runs too deep, I won't try to ford it.  I'm also willing to
see how far I can get with the 'shallower' approaches, at least in the
short term.


Cheers,                     www.indiegamedesign.com
Brandon Van Every           Seattle, WA

Taking risk where others will not.




More information about the Ocaml-biz mailing list