[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Industry versus academia

> I don't think that making money directly off of programming languages is
> the point, though.  Perl, python, and java are all free (for suitably
> flexible definitions of "free") and yet it is possible to generate revenue
> from them once they get popular merely by doing consulting.

But I was trying to answer the popular "why doesn't industry"
question.  If a company wants to make money by consulting, their
best bet is probably not to start by creating a new language.
Look at any large consulting company and tell me that they ought
to be in the business of trying to create and promote a new
programming language.  If their goal is to take a bunch of
consultants and cause revenue to happen, that's probably not
the most high-ROI way.

Microsoft with C# is an unusual case because (a) Microsoft can
just DEEM a new user community into existence using their
huge influence, not to say monopoly power, and (b) Microsoft
has a very specific strategic goal in mind, namely to kill the
Java platform.

Sun with Java was a strange confluence of the planets.  They really
did Java because James Gosling wanted to do a language, because he
just wanted to, and he got to have a little group which kept coming
up with various business justifications, none of which really turned
into anything until the Nth one, which was "browser applets", which
suddenly made the whole thing really take off and find a foothold.
That's an unusual thing involving a lot of luck and being in the right
place at the right time.  It's very hard to plan for and orchstrate
such a thing.

> One thing that I've always hoped would happen (but hasn't yet) is that new,
> advanced languages would be able to do things that are not merely difficult
> or tedious in existing languages, but well-nigh impossible.  In that case,
> and assuming what they do is valuable to industry, I think industry types
> would rush to hire pointy-headed academics who know about monads and
> continuations etc., simply because that's the only way the job is going to
> get done.  
> To choose an example: let's say that someone invents a programming language
> Foo that has the property that programs in Foo can be automatically
> verified for correctness before use (this is of course a long-standing holy
> grail of the programming languages field, but never mind).  Let's say that
> programming in Foo requires abstruse knowledge of category theory,
> hyper-monads, supercombinators and ultra-continuations that very few people
> have, but that is essential in order to give Foo the property of
> verifiability.  Now suppose that you need software for air traffic control.
> If the software fails, people could die.  Are you going to hire a Foo
> programmer or a C++ programmer?  I think in cases like this the Foo
> programmer is the clear choice, because what he/she produces simply can't
> be produced by the C++ programmer in any practical sense.
> The fact that sophisticated languages haven't caught on in industry is
> largely a function of the fact that what they do can also be done (however
> more tediously) with more conventional languages.  The increase in
> productivity for the top 1% of programmers isn't enough to justify them in
> the eyes of a manager, and I'm not sure I blame them.

Yes, if you could come up with a scenario like that, it might work.
You need a business plan that takes into account how many people are
writing hyper-critical software, how much they'd truly be willing to
pay for your language/compiler/tools, whether they could really find
the wizards to learn it and use it, how many such wizards there are
and how much you can charge per seat, and whether that provides enough
revenue to pay for running the shop you need to produce all those goodies
that you want to sell.

-- Dan