[Ocaml-biz] creating a household name

Brian Hurt bhurt at spnz.org
Sun Sep 12 11:57:52 PDT 2004


On Sun, 12 Sep 2004, Brandon J. Van Every wrote:

> Brian Hurt wrote:
> > >
> > > Ok, I have a 10,000 miles up question here.  Of any
> > > possible market or
> > > showcase project, what's going to make OCaml a household
> > > name?  I mean,
> > > the household doesn't have to be Joe and Jane Average, as they don't
> > > even know what C++ is.  But in households of techno-geeks,
> > > what's going to make people say "ah, yes, OCaml!"
> >
> > And any project less than that isn't worth spending time on?
> 
> It depends on what you mean by "less."  I definitely see a minimum
> necessary impact upon programmerdom.  

And if it has insufficient impact on programmerdom *IN YOUR OPINION*, I 
shouldn't bother working on it?

Because in my opinion, game technology is damned near irrelevent.  Among 
other problems, it's transient.  This year's top title is next year's $5 
remainder.  Getting an application like Open Office, or Mozilla, or Pro-E, 
written in Ocaml will be a victory for years if not decades.  Getting 
Doom-IV written in Ocaml will be a victory for months if we're lucky.

Another problem is that the fraction of the industry actually working on
games is miniscule.  I know hundreds of programmers in just about every
corner of the industry (including dozens who would love a killer linalg
package like I've described).  I know one guy (not counting you, Brandon)
who would like to get into games (he hasn't yet).  This isn't a
statistical sample, I'll agree- but compared to the number of people
writing "boring" business apps, or even the number of people writting
embedded realtime code, there is almost no one writting games.  Heck,
compared to the number of people in the CAD/CAM industry, there is almost
no one writting games.

There is one advantage game programming has.  Gaming is popular among 
students.  And so a lot of students start out thinking they want to write 
games.  They later discover that writting games is a lot like being a 
musician- it's glamorous and rewarding for the select few who make it, 
most people don't, however.

The problem with selling to this market, however, is that almost by 
definition they don't know anything.  They will actually be *less* 
inclined to take a chance on a radical new language, because they don't 
know how/why one language can be better than another.  And they will 
assume their '1337 skillz will overcome any minor deficiency their 
language of choice might have from the view point of some stuffy ivory 
tower theorist.


> > > I don't think sparse matrices are gonna even make a dent.
> 
> And I say again, I don't think this problem has that kind of street
> cred.

No.  I think it could have huge street cred.  I just don't think it'll 
have street cred on your street.

> 
> > B) A 3D engine would be usefull to you.  Not to me, not to
> > most people.
> 
> Au contraire!  There's the entire game industry, all the hobbyists, all
> the students, and all the people who simply play the resulting games.  A
> kickass 3D engine would have the street cred, of that I am sure.

So, let's see: who could use a real kick-ass numerical library?  There's 
the CAD/CAM people, definately.  All of the scientific/supercomputing 
people.  The game people (I just noticed TuxRacer has an ODE solver in 
it).  The students.  The engineers.  The mathematicians and computer 
scientists.  Anyone who uses Matlab currently.  Probably more.

> > I would argue that a killer linear algebra library- one with
> > performance
> > comparable to C++ but with the power of Matlab- would be more widely
> > usefull than a 3D game engine.
> 
> I wouldn't.  I think you are fantasizing unduly about people giving up
> their BLAS/LAPACK.  That's worse than asking people to give up their Vim
> for Visual Studio.  *WAY* worse.  

The only reason they haven't given up their BLAS/LAPACK is that nothing
better has come along.  All too often BLAS/LAPACK doesn't do, or doesn't
do well, what they need to do.  Mostly, they reimplement as need be- in
other words, they've already given up their BLAS/LAPACK.  But that doesn't
mean they're happy about it.

> > Both, however, pale in comparison to an
> > Ocaml version of J2EE.
> 
> I agree that the enterprise space is a much much bigger market, but I
> think you're underestimating the size of the game industry, and the
> amount of attention it gets from people because it's inherently a
> consumer marketing industry.  J2EE isn't readily apparent to everyone at
> BestBuy.

And if we were marketing to Joe Sixpack, that'd be a problem.  How do you 
tell, based upon the shrinkwrapped box you just picked up at Best Buy, 
what language the product is written in?  I can't tell.

By the way, I can not *imagine* any of the people working in the business 
logic end of the industry to say something like "Hey- let's use language 
X.  It was used to develop this game I really like, I think it'd be great 
for our core database app!"  

> > C) It's not applications that make or break a language, it's enabling
> > technologies.  Java really took off after J2EE.  C++ had the
> > MFC and the
> > STL.  Python had Zope.  Enabling technologies all, that
> > allowed a thousand applications bloom.
> 
> Ok, what is OCaml sorely missing in this regard?  What are the closest
> things it has to these various enablers?
> 
> I think beefing up SWIG would be a huge enabler.  Then all the C++
> programmers could move on to OCaml.  People could try out OCaml without
> a significant resource committment, as they could glom it onto existing
> code.

Notice the thing about the enablers I listed- they were all written in the 
languages they enabled.  While I wouldn't mind a better swig 
implementation, depending upon swig for our enablers is implicitly saying 
that the stuff written in C++ can not be written in Ocaml.

The 3D game engine is an enabler.  The linear algebra library is an 
enabler.  Something like J2EE, Tomcat, and/or Zope would be an enabler.

For the enabler to work, the designer has to know the applications being 
enabled.  Which is why, despite the fact that I keep not so subtly pimping 
a J2EE/Jakarta/Tomcat replacement, I'm not volunteering to help.  Because 
I don't know the market.  I may make some stupid decision (like assuming 
sparse matricies aren't that important) which would doom the entire 
project.

It's also why I'm not volunteering to help on the 3D game engine.  If 
asked to design one, I'd have done it completely in double precision.  You 
say this is a bad idea- and you know this market, and I don't.  What other 
wrong ideas do I have?

-- 
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
                                - Gene Spafford 
Brian




More information about the Ocaml-biz mailing list