Skip to content

Instantly share code, notes, and snippets.

@AndreasS2501
Last active December 8, 2019 13:35
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndreasS2501/e674bdd160e95f054807f34082a7260e to your computer and use it in GitHub Desktop.
Save AndreasS2501/e674bdd160e95f054807f34082a7260e to your computer and use it in GitHub Desktop.

https://news.ycombinator.com/item?id=11941656

In my opinion the two are talking not from the same perspective.

https://twitter.com/hendekahedron/status/745719174828298240

To understand their different contexts we can look where their relationship to the computing industry comes from.

Rich Hickey

Rich Hickey worked in the computer industry as a programmer for many years. He created or worked on big systems in C++ and Common Lisp (http://www.codequarterly.com/2011/rich-hickey/ ). Rich once said that creating a new programming language is an act of insanity. I think to a certain degree he is right. Very Few industry programmers create out of frustration a new programming language. and yet he did and build the biggest active Lisp community arround it.

On a side note its interesting to see how Common Lisp people see it as a strength that in CL there is very few, if any, idiomatic code: https://www.reddit.com/r/lisp/comments/4oo1cp/common_lisp_for_clojure_programmer/d4eec68 Clojure is in many respects regarding work-flow and best practices quite the opposite but that is where clojure's appeal actually comes from! It says: Hey here is a Lisp, a almighty programming language and THIS is how you get benefit from it. In contrast CL would say: THIS is Lisp and you can do ANYTHING you want with it. But that Anything is just too abstract and time consuming for programmers in the industry who just want to get stuff done. This is also I think what steve yeggies problem with clojure is/was ( see his political PL's post)

So In this story Rich looked into the abyss that is created by our industry (systems growing in complexity and unreliability) and he sought for salvation. Knee deep into the mud that these systems produce he forged something which could contain some of it. Key features of clojure are immutability and simple data structures.

Rich used these properties in C++ and CL to make sense of the big ball of mud systems and it were these (IMO) that made clojure such a popular and reliable tool.

So one of the key propositions of clojure was simple data(structures). And it was/is a success. Then how on earth can Alan Kay dispute data?

quote from the HN topic: "What if "data" is a really bad idea?"

Alan Kay

That quote is quite challenging if you look at it from Rich's perspective (which I tried to superficially tried to describe above). I love it. Alan Kay often gives such blunt statements like his on linux: "there is hardly something interesting in the linux kernel". To make sense of that we need to understand his perspective and relationship with the computing industry. So while Rich worked as a programmer many years in the industry. Alan has worked as a researcher and principle inventor for decades. He literally has seen the field growing up. Back up our original question: Why would "data" be a really bad idea? So if Rich Hickey's goal is to create a tool that can make sense of (big ball mud) systems, I think it is Alan Kays goal to make the computer revolution (https://en.wikipedia.org/wiki/Alan_Kay#Early_life_and_work) happen. For that goal you do not (only? or to a certain degree) need to understand systems. But its MUCH more interesting to think about how to create systems that can talk to each other. Which are able to convey meaning (see AK comment in the HN debate on "It's not "Big Data" but "Big Meaning"). Now if you only have data. Like "42", you can not convey meaning. Maybe you don't need to or don't want to. But I think for Alan Kay it is imperative to find a way to be able to do so. That's why he create his "objects", this is what he means when he talks about "processes". Data which can convey meaning or context. Interestingly the debate on hackernews then shifts towards set theory. And I am very encouraged by recent efforts of the mathematical community to bring programming and mathematics together with concepts like HoTT (https://en.wikipedia.org/wiki/Homotopy_type_theory)

Now you may ask but how does this help the "industry" to do what they do today. And the answer is (IMO) it does not. That's the problem with most of Alan Kay's Ideas you have to think out of the box, outside of the computing industry, you have to look at computing as a medium (see computer revolution). It does need something to be able to do that. Other than reading about Alan Kay's work it helped me personally to read the Dijkstra diaries ( http://www.cs.utexas.edu/users/EWD/ ) which are an incredible resource if you want to know more about the history of computing and the profession of "programming" and their relationship with society.

Conclusion

So if you see those two perspectives on the term "data" you can see why they do not agree. One uses data as a concept to create a technical solution for the industry. The other one compares it as a method to judge its applicability for achieving the computer revolution (or a sub goal therof - communicating with aliens). In my opinion it is not necessarily bad that they do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment