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

Industry versus academia

The LL1 workshop opened with a panel discussion on "Worse Is Better",
the ultimate question of which was, how come industry isn't picking
up on all the great advances being made in computer languages over
the last ten or even twenty or even thirty years?

As someone who has crossed over from the MIT/Symbolics/Lisp world
into the very commercial world of BEA, and being near the
technical-strategy-making part of BEA, I think I am positioned
pretty well to bring at least one useful perspective to this

If you go up to the 50,000 foot level and look at the world of
programmers and computing, what you see is that the kind of 
people who are on this mailing list are rather in the minority.
In fact, the whole world of people who can do system programming,
who can build little languages, and even those who can use
language extensibility mechanisms to make good, well-designed
language extensions (including those who can use Lisp macros
for good and not for evil, so to speak) is really very small.

The great majority of computer programmers out there don't have
the kind of background that most people on this list do.  These
are just guys trying to get a job done.

Please do not tell me that it is easy to teach them all Scheme,
and justify that statement by explaining that undergraduates who
have won an extremely competitive admissions process into elite
universities like MIT and Brown and Rice, who are extremely
motivated to get good grades, and who are taught by the best
professors the country has to offer, who work extremely hard for
a semester studying, who are full-time students and don't have
to support families and do a full-time job and can just study
and study and study, are capable of becoming good Scheme programmers.

The big world out there has a WHOLE LOT more people who are really
not qualified to go near C++, Java, C#, and so on, but can get
by in Visual Basic.

If you are a big financial or telecom company, you have a lot of such
programmers, and solving THEIR problems is your big problem.  You want
to make it possible for business programmers to write business programs,
without having to hire extremely elite guys, meaning guys who know
all about concepts like transactions, security issues, etc.  You
want to be able to hire from a much larger pool of Visual Basic
programmers who know how to do business logic but not system programming.
That's the problem you need solved.  That's what you'll pay money for.

>From the point of view of industry, coming up with cooler languages
that are cool for elite programmers may be lots of fun, but there
just isn't a lot of real-world revenue there.  Especially when
programming languages are generally a free thing these days.

If you want your idea to move from academia to industry, there simply
has to be a plausible way for industry to make money from it.  It's
hard to make money by coming up with a great new programming language.

Maybe one approach to the original question is to ask why cool ideas
from academia aren't making it out to the general public in the form
of free software or open software, in light of the fact that it's hard
to make money from selling programming languages.

One answer might be found by looking at what Gregor Kiczales and his
co-workers have done with Aspect Oriented Programming and AspectJ.
I think this is a great success story of a really cool new language
technology and how you can get people to really use it.  One thing we
can learn: it's not easy.  It took years to get the ideas really worked
out, to figure out how to make it possible for people to migrate smoothly
into the new idea (by making the Java-based AspectJ), to do all the
tools and Emacs integration and Eclipse integration and all kinds of
hard work those guys have done.  I am extremely impressed and I think
you could do a lot worse than to look at these guys as a model.

-- Dan
> Francois-Rene Rideau said:
> >
> >> I don't think it's a lot to ask, but I've often found myself
> >> reading language descriptions or manuals, and after
> >> five chapters found nothing about how to open a file...
> >>
> >> At that point I lose interest.
> > Maybe you're looking at the wrong place.
> > Try the example database.
> > Try to search the documentation:
> > 	Select D S Space C Space o p e n Space f i l e Return
> >
> Fine, but if I have to *hunt* to discover how a language deals
> with files and strings, it is a clear indication that the language is
> made for a domain quite different from the one in which I work.
> The question was related to personal criteria.
> If a language is so cool that it is worthless for systems programming,
> I may want to read about it, but will absolutely not use it.
> kk