[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