HNHacker News
TopNewBestAskShowJobs

mencius

61 karma · joined August 16, 2007

submissionscomments
mencius··on Five problems with Google Android
No, the browser is definitely not just an application in Android. It is WebKit, which is in the framework layer.

Android can run any language that can compile to the JVM. On the other hand, compiling to Java bytecode really isn't much different from a source-to-source translation to Java text - at least not from the programmer's point of view. And have you ever programmed in an S2S environment? Sucko.

As for (2), you are absolutely right. The basic problem is that if the Web had been designed as an application platform from the start, the installable application would be dead.

But is the way to fix this to build a new installable application environment? Or a new network application environment?

mencius··on What's Wrong with CS Research
Read Michael Hiltzik's "Dealers of Lightning." It's a little more complicated than that.
mencius··on Liberal Arts Professors on Attending Grad School--Is it the same in Comp Sci?
Both these comments are dead on.

Never, EVER go to grad school the way I did - just noticing that your four years are up, and seeing where you have to apply next, so you can keep on proving how smart you are.

Going to grad school straight out of college is almost always a mistake in any field, and it is especially a mistake in CS. Spend a couple years as a working programmer first, ideally at a small company.

One, it may change your mind - this should be embraced, not feared. And two, if you do go to grad school, you will find you have much more perspective and depth than your fellow grad students.

Since there is no such thing as CS, every field is different. Some just decrement the "C". Others are perfectly healthy.

Without question the soundest field in CS is graphics. I wish to God I had gone into graphics. Digital image synthesis is actually applied math, of course, and any area of applied math that actually has a real application will serve you well.

Unfortunately, pseudoapplied math is very common and quite worthless. So be sure to look fairly deeply into any claims of applicability. A genuine applied field, such as graphics, will have a steady flow of innovations (and innovators) into actual industrial practice. If you don't see this, something, somewhere, is wrong. Trust the nose.

Also, when you apply, don't just select schools by reputation, as if you were applying to college. Pick the actual group you want to work with, and don't be shy about contacting professors.

mencius··on What's Wrong with CS Research
Try submitting this paragraph as your next grant application!

It is actually possible to make educated guesses as to what's interesting and what isn't. It is just very hard.

The management of the old Xerox PARC, for example, was very good at it. So were the people at DARPA - about 40 years ago. So, once, was Bell Labs. And so on.

Needless to say, the actual process of guesswork has nothing in common with the modern scientific budget process.

mencius··on What's Wrong with CS Research
It spoils the others because the relationship between science and personal honesty is extremely close and important. Science has to be utterly intolerant of nonsense. Its spirit is to attack it and take no prisoners. If you have this spirit - like D.J. Bernstein - you will not be welcome in any CS faculty that exhibits curate's egg nature, for fairly obvious reasons.

(I'm a particularly big fan of DJB because his very existence is a sort of counterattack - he's a programmer who's infiltrated the math department! Unfortunately there is only one of him, but we could certainly use a dozen more.)

mencius··on What's Wrong with CS Research
I don't disagree at all, but neither do I repent. I just think the world needs equal and opposite hyperbole.

But I also think it needs PL design - in the sense of Guy Steele, Paul Graham, Guido von Rossum, etc, etc, etc. And I do think the existence of "PL research" is a serious detriment to the organization and development of PL design. At the very least, they should be parallel subfields.

mencius··on What's Wrong with CS Research
I actually agree with all of this - in theory.

The problem is that the actual process by which this guesswork is done, actually right now in the real world, is nonsense. It is permeated by intentional distortions of reality. As a result, in my opinion, research is pointed in directions which a reasonable observer would guess are dry holes. The fundamental difficulty is that Congress is not a reasonable observer - it is a political one.

This is inextricable from the phenomenon of official research funding. I suspect that private philanthropic funding - the way it worked before WWII, a period in which there was no computer science, but quite a lot of other science - would do a much better job of "guesswork."

mencius··on What's Wrong with CS Research
"If you're so smart, why aren't you rich?"
mencius··on What's Wrong with CS Research
If you can't detect, a priori, which research projects will be successful, why in God's name do we have a grant process?

You're making my point for me, which is that the process of allocating research funding is driven by nothing other than political power.

The university system is built upon the premise that basic research can justify its funding annually by explaining to Congress the many benefits it will yield to American citizens. There is no "all of it" to fund. An infinite amount of funding will generate an infinite amount of research.

I can tell you exactly why the next big development in computing won't come out of type theory. It's because type theory, at least as it exists presently, is impossible for anyone with an IQ of less than 140 to understand. And it is getting more complex, not less complex.

Isn't a PL designer what I called Steele? Note that he doesn't call himself a PL researcher.

mencius··on What's Wrong with CS Research
In the rare cases that a programmer actually needs (dynamic) function composition, yes.

For very understandable reasons, most of the examples you see of higher-order FP languages tend to stress very intricate and elegant algorithms. But what is 99.999% of the actual functional programming that is actually done in the world? SQL and Web template transforms. About as intricate as a brick.

The result of having these incredibly high-powered, high-strung thoroughbred FP languages is that no one even thinks of these mundane tasks as cases of functional programming. But of course they are. FP is the natural generalization of declarative programming.

The real tragedy of Haskell is that, if the people who designed Haskell had actually been working on, say, XML and XSLT, XML and XSLT would not suck nearly so much.

I repeat that in almost all cases, dynamic construction of functions is unnecessary and can be eliminated. Otherwise, yes: write even more functions and pass around lists of function pointers.

But you're right that I could probably make the same point in a much less vitriolic way. Blame acid reflux.

mencius··on What's Wrong with CS Research
I wouldn't say it has to be usable by Joe Average Programmer, but if it's not - and it will obviously never be - it should have to explain why. And it shouldn't be described in any context, whether paper, grant proposal, or university press release, as anything else.

C, for example, should never come within a mile of Joe Average Programmer. But the world needs C, it needs the Linux kernel, etc, etc. For other things, this is not so clear.

You have to be able to judge the prospects of research programs. Otherwise, how do you separate the dry holes from the promising ones? There is an infinite set of dry holes in the world, and any of them is happy to accept all the funding you can give it.

mencius··on What's Wrong with CS Research
Also, when you're examining something that dubs itself "science," pointing out a spot of routine dishonesty, however small and irrelevant, is hardly indicating a "strawman." Shades of the [Curate's egg](http://en.wikipedia.org/wiki/Curate's_egg). I'm sure most of the entries on Enron's balance sheet were perfectly accurate, as well.
mencius··on What's Wrong with CS Research
I think what you are describing is program verification, not proof-carrying code.

In proof-carrying code, of course, the proposition you are proving may not be associated with the source code as an invariant. But if it isn't, why isn't it? It makes no sense to have one language for the invariant and another for the program.

For example, one use of PCC is to prove propositions about a bit of machine code, such as a packet filter. When you create an environment that can state propositions about machine code, you have created a typed assembler, whether you like it or not.

Most leaders in the Netflix challenge are (at) CS departments because CS departments are full of smart programmers.

mencius··on What's Wrong with CS Research
If you don't know the difference between what Guido van Rossum does, and what Andrew Appel, Luca Cardelli, Zhong Shao, etc, etc, do, you are clearly not a PL researcher!

I am not a budget analyst. What bothers me is that I think a field I admire is being mismanaged, not that it is driving the US (or any other country) bankrupt. The US has worse problems than a little bit of science pork.

mencius··on What's Wrong with CS Research
I think this is my favorite response ever to anything I've ever written.

I look forward to your rebuttal - if you could post a link to it in the Blogger comments, that would be ideal...