From: | Michael Dunlavey <mikedunlavey44@gmail.com> |
Newsgroups: | comp.compilers |
Date: | Fri, 9 Mar 2012 16:07:33 -0500 |
Organization: | Compilers Central |
References: | 12-03-012 12-03-017 |
Keywords: | history, design |
Posted-Date: | 09 Mar 2012 16:39:01 EST |
Responding to postings by Rui Marcel and Ian Lance Taylor:
Is there a plateau? In C.S. grad school my fellow students and I were
proud that we were limited only by our imaginations. I've since come
to realize, at least in my case, that's a pretty severe limit.
Industry is a font of interesting, challenging, real-world problems
that could have served us well, but to which we had no exposure.
Later I taught at the college level for 4 years, but after that spent
the rest of my career in industry. I think C.S. academia is seriously
out of touch with reality. There needs to be a much stronger two-way
flow of information between industry and teaching than there is now in
C.S. My experience as an engineering student in Mechanical Engineering
and Civil Engineering was far different, in which partnership with
real practitioners brought a flood of realistic problems to solve into
the academic world, enriching it immeasurably.
I felt strongly enough about this that I wrote a book: "Building
Better Applications" which did not sell very well, but at least got my
ideas out there, which revolved around the application of information
theory as an underlying "physics" of computation. This affects two
areas in particular - performance tuning and
domain-specific-languages. These are not just "academic" matters, they
are very important in real software engineering.
Performance tuning is important because, while students are taught all
about big-O and algorithms, they write monstrously complicated systems
in industry that are orders of magnitude slower than need be, in
constant factors. They do not know how to tune for performance. They
have been told profilers are pretty good for that, starting with
gprof. It is hard to be charitable about this, but even the original
authors of gprof did not claim it was good for much. The only way I
can explain this is that the people teaching about profilers have
never had to significantly optimize a real piece of industrial
software.
Domain specific languages are important because, when properly done
(which they often are not) they allow programmers to achieve results
with one or two orders of magnitude less code and bugs, with far
better maintainability. What happens in academia instead is people are
following the latest butterfly - functional programming, logic
programming, whatever buzzword they think they can latch on to and
join friends to write papers surveying so they can puff their
publication count so they can get tenure. Just once they should go
participate in a real programming team and see what the real problems
are and see if they can do anything to help.
Grrr... ;-)
Michael R. Dunlavey, Ph.D.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.