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

RE: Industry versus academia




> the abstraction level significantly, etc.  In the end, a 100x productivity
> factor *due to the tools* is probably way conservative, once you take into
> account debugging and long-term maintenance costs - it's just that the costs
> in question have been hidden by blindness.

No question that tools are key, _if_ they are used. The reason I say tools
are secondary for many business is illustrated by Y Store. Yahoo _had_
good tools (lisp dev environemt for Y Store) but threw them away.
Clearly some would say Yahoo's problem isn't a lack of good tools but a
lack of good business sense.

It is sad that we can make the great tools only to have companies which
are too blind to use them. Note that this isn't an argument to not worry
about creating great tools, just that as a community we could focus some
energy on helping companies like Yahoo become more effective tool users.
Maybe that is out of the scope of PL people, though you could say
understanding your audience is part of effective language design.

> > meanwhile the problems Brooks pointed out long ago are still here.
>
> Yes, but this is a little like the argument "don't go to space, there are
> people starving in Africa", (although I should probably have picked a less
> arguable Good Thing than space exploration).  If there are problems that are
> truly hard to solve, or unsolvable, that doesn't mean we shouldn't address
> ones that are more easily solvable.

Point well taken. Maybe this is a more specific analogy: "It would be a
shame for Arc not to be developed because Yahoo moved Y Store to C++."
Convincing Yahoo that they made a mistake may be hard but I think in
generally getting businesses to depoliticize languages may be worth the
effort, as much as it might be.

> means it's not obvious how to get there from here.  So a valid point I'd
> take from what you're saying is that the ROI on improving tools is
> uncertain - which is undeniable.  That doesn't mean it shouldn't be pursued.

Correct. I see many companies making mistakes akin to Yahoo's and thus I
think ROI on improving tools _for bussinesses_ might be limited until this
changes. Note, I think the ROI on tool development has always been high
for the PL community, it does not have the same politics and
inefficiencies.

> > BTW Lisp solved these problems almost half a century earlier.
>
> You mean the first versions on the IBM 704?  :)  Lisp raised the bar to a

Good point, I got carried away. In the context of CL and ML it does seem
like Java is way behind. Many things about Java only seem nice when
comparing to C++. Ada had better generics in the 20th century.

> BTW, the "nasty casting issues" in Java are a result of its type system - an
> area where the academic languages do much better.  This is a big example of

Why use a lang with a broken type system? Arg! Frustrating for someone who
believes in using dyanmically typed languages for the types of programs
people write in Java.

> Anyway, assuming you accept the complaint, what is it that keeps the average
> programmer from doing better?  The Sapir-Whorf hypothesis is an old favorite
> in programming language discussions, and it applies here - language dicates,
> or at least influences and constrains, thought.  We have large numbers of
> programmers who think in Java, VB, etc.  That's a problem!  If you want
> programmers to be less mediocre, you have to give them a language that they
> can think less mediocre thoughts in!

Yes! And more importantly you have to train them to think in these less
mediocre languages. Lisp requires a more abstract thinking mode, which I
think is one of the reasons why smart (and mathematically inclined)
people like it, but maybe that makes it more dificult for mediocre people
to learn. I think education is the answer here. (People mentioned that you
can ofcourse teach scheme to MIT undergrads but I think mortals could
benefit from it as well, maybe it takes more than a semester.)

> > I think its time to focus on some other issues which might
> > get more bang for the buck.
>
> Like what exactly?  Are you talking about other kinds of software that needs
> to be developed, or should we just give up on software and focus on human
> resources?  Might not be a bad idea...

I think more resources need to be focused on teaching software
development. At many universities it seems like undergraduate PL classes
are an afterthought.

> > Funny you should mention this. In my graduate compilers course our
> > semester long group project is to write a Python compiler which generates
> > x86 machine code. I couldn't agree more here!
>
> So, aren't you being a little schizophrenic?  (Join the club.)  If we need
> faster/better tools that support high-level abstractions, shouldn't we be
> working on them?

Yes :) I think a fast Python implementation would be very helpful. I'm
spending a lot of my waking hours on this. We're taking some insight from
SPITBOL for the 360 (highly dynamic language, very fast implementation)
and hoping they translate into a fast x86 Python implementation. I really
hope Chandler and Mitch Kapor can help show how viable Python is. That
being said, Python won't help companies like Yahoo if they aren't smart
enough to use it. I should note that Google does use Python. Seems right.
If PL issues were the only company gene I'm sure Darwin would have his ax
out. Given that PL choices are far from the only company gene (as PG
mentioned earlier) we could try to figure out how to get companies hooked
on appropriate technologies, not hooked on lock-in technologies like
VC++/Java.

> In developing your Python compiler, have you noticed places where the design
> of the language lead to unavoidable performance issues, which could be
> improved by a different design?  Dynamic dispatch is an interesting topic in

I think dynamically languages can overcome the performance issues. Think
how much more energy has been spent on C compilers.

Todd Proebsting mentioned at LL2 that he thinks the next big lang will
actually be slower than the current one, so it might not even be such an
issue. As web apps overtake desktop apps writing in C-like languages will
be less and less attractive.

> > I'm all for academic advances in industry. I would love to see ML replace
> > Java/C# as the language your pointy headed boss demands.
>
> I don't actually think that's the answer.  There's work to do on both sides.
> I think that's what this list is supposed to be about.  :)

Better languages and programmers better trained to use them, what more do
we need?


Eli