Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Software Calculus - The Missing Abstraction (objectmentor.com)
22 points by fogus on July 6, 2010 | hide | past | favorite | 8 comments


I think that a lot of the comments arre missing an important point. What Newton gave the world wasn't important because it was a neat bit of maths. It was important because it suddenly put a whole range of physical phenomena and engineering problems within analytical reach. That's what we need now. The chances are that we've already got the answer, we just haven't got the notation sorted out yet.


If he is talking about computer science, then there probably will be more powerful abstractions discovered. If he is talking about software engineering, I think it will be a challenge. Just as there is not theoretically perfect design for a vehicle with cupholders and stereos, I don't think there will be a perfect abstraction for designing the next twitter. The underlying fundamentals may see drastic improvement, but I think we'd just take those and glom on even more cruft with our newfound abstractions.


Isn't that what these are for: http://en.wikipedia.org/wiki/Process_calculus


Despite the coincidental naming, no. That's "just another formal modeling tool" and isn't particularly likely to lead to a revolution in programming of any sort anymore than any other formal modeling tool that formally models the "same old" programming techniques the author decries.

I was tempted to link http://en.wikibooks.org/wiki/Haskell/Zippers , and now I guess I have, as another sort of "thing that happens to share terminology with calculus", but it is equally offtopic. Calculus here is metaphorically the same calculus that you looked ahead to when you were in middle school; a mysterious land where the impossible is trivial and full of strange concepts and funny squiggles. We are that middle schooler.

Really, though, it's fair to read this essay as "Gosh, I sure wish a silver bullet existed" and stretching only a bit further "If only there were some way to get around the fact it takes great programmers to make great programs". The silver bullet is that metaphorical calculus here, but it's a call for a silver bullet all the same. We can all nod in recognition of the desire, even as we are fairly sure nothing more will come of this than any other desire for the silver bullet.


Calculus is a nice mathematical explanation of certain specific things (functions, change, etc). Similarly we can hope to find nice mathematical accounts of specific software domains, but "abstraction in general" is just as broad as "mathematics in general" and we won't be finding a silver bullet anytime soon.


It sound like he's trying to fight the Church-Turing Thesis.

http://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis

I don't think he'll win.


No, I think mostly he's talking about something unrelated and very important. However, his last sentence is exactly as you say: "...In the end, however, an algorithm expressed in prolog can be translated into any of the other languages, demonstrating the eventual equivalence."

And in fact he's totally wrong about logic programming. It is a completely different way to think about things, just like what he's looking for, it just doesn't happen to make for shorter programs. A very good try though.


Just because something is turing complete doesn't mean it is also effective at managing complexity to whatever degree. Any computation that can be expressed in Python can be equivalently expressed in Brainfuck, but one will be much shorter and easier to understand.

Instead, he seems to be asking for a revolutionary solution to the concurrency problem (mixing synchronous and asynchronous execution). That's all well and good, but he'll have to find the back of the line :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: