Paul Johnson
paulspontifications.blogspot.com · Personal blog · on HN since 2007
Paul Johnson writes about Haskell, functional programming, software patents, and how programmers work.
What HN saysHN links it for the post on Haskell versus C speed, which one commenter could not reproduce, and for the argument that software patents are patents on math.
17HN people shared it
7linked it in comments
12stories submitted
408story points
10 years agolast shared
2007people per year2026
Most-shared posts
- 1Patent 5,893,120 reduced to mathematical formulae4 people · 177 points · first shared 2011 · 39 comments on HN
- 2When Haskell is Faster than C2 people · 162 points · first shared 2013 · 115 comments on HN
- 3Why the banks collapsed and how a paper on Haskell can help next time2 people · 3 points · first shared 2008 · 1 comments on HN
- 4An Under-Appreciated Fact: We Don't Know How We Program1 people · 33 points · first shared 2008 · 28 comments on HN
- 5Is Functional Programming the new Python?1 people · 19 points · first shared 2008 · 13 comments on HN
- 6Bilski says software is not patentable1 people · 7 points · first shared 2010 · discussion on HN
- 7Software has CivEng Envy1 people · 3 points · first shared 2013 · 1 comments on HN
- 8Do software developers have a fiduciary duty to users?1 people · 2 points · first shared 2016 · discussion on HN
- 9Disruptive Innovation and Walmart Linux1 people · 1 points · first shared 2007 · discussion on HN
- 10Managing Risks in Company IT1 people · 1 points · first shared 2012 · discussion on HN
- 11When haskell is faster than c1 people · first shared 2013
- 12Software has civeng envy1 people · first shared 2015
- 13When haskell is faster than c1 people · first shared 2013
- 14Composability and productivity1 people · first shared 2009
What HN people wrote when they linked it
TheNewAndy · 2013-01-19
Before you go and rewrite everything in Haskell for speed, it might be worth trying to reproduce the results from here. I tried to and C was much faster than Haskell:
http://paulspontifications.blogspot.com.au/2013/01/when-haskell-is-fas…
spookylukey · 2013-01-21
This article starts by totally misrepresenting the original article (http://paulspontifications.blogspot.co.uk/2013/01/when-haskell-is-fast… by saying that it said "Haskell beats out C when it comes to speed".
If you bother to read even the TLDR of the original article you 'll find it says something completely different, which makes this article pretty poor as a response.
raphman · 2011-11-01
'Patent 5,893,120 reduced to mathematical formulae':
http://paulspontifications.blogspot.com/2011/04/patent-5893120-reduced…
davorak · 2011-08-03
As far as I can tell all software patents are patents on math. Here is one example of a software patent reduced to mathematics and logic the extends it to all software patents:
http://paulspontifications.blogspot.com/2011/04/patent-5893120-reduced…
seanp2k · 2011-05-16
http://www.google.com/patents?q=online+payment&btnG=Search+Patents Pretty much all of these are idiotic.
See also: http://paulspontifications.blogspot.com/2011/04/patent-5893120-reduced…
Software patents are stupid because you're trying to patent A WAY OF DOING SOMETHING and not A PRODUCT, even if said product is built from ways of doing something.
Example: I patent "A method for storing data on physical storage using blocks" and sue everyone. There are people who try to patent RAM and storage: http://www.google.com/patents?q=a+method+for+storing+data&btnG=Sea…
I'd wager that most of those are invalid patents / should be abolished.
eru · 2009-04-06
Yes. It makes composing larger programs out of smaller programs easier. Especially if functions have to be real mathematical functions, and can't have any side-effects.
"Composability means that you can put two bits of code together and important correctness properties will be preserved automatically. This does not mean, of course, that the composition is automatically correct in a wider sense, but it does mean that you don’t introduce new bugs merely by sticking two things together." (http://paulspontifications.blogspot.com/2007/09/composability-and-prod…
paulajohnson · 2015-03-30
I wrote a rebuttal of the "blueprints for software" analogy a couple of years ago.
http://paulspontifications.blogspot.co.uk/2013/01/software-has-civeng-…
TL;DR: Source code is the blueprint for software.
However that doesn't mean I completely disagree with Lamport's arguments. Specifications are necessary in large-scale software because otherwise you can't know if you have actually implemented everything the program is supposed to do. When you release it the end-users get angry and insist that they told you in that email / meeting / watercooler conversation last year how important it was that the program frobnicate the warbles.
Lamport makes much of formal specifications. I agree that in some cases they do add value; trying to prove the correctness of a distributed protocol in any other way is dumb. But in my experience once you get up into application-level requirements a formal specification is basically source code you don't know how to compile; there is no formal correctness criteria against which you can verify it, and the stakeholders can't understand it in order to verify it.