Live data from Hacker News

Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

infoq.com

51–60 of 104 posts

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#51
post #45

Earlier quoted context omitted.

None of us do "guardrail driving", but we still put guardrails on roads.

However, on most highways the guardrails are only on the dangerous sections. So sticking with this analogy, we should only need to use testing in the more intricate / complex parts of our code. However, current testing best practice seems to be to test everything possible, thus potentially wasting a lot of time and effort into aspects with a low ROI. There could be some lesson in this...

That's an interesting point. I've noticed that as I grow as an engineer, I still place a high importance on tests, but the type of tests I write and how I write them has changed a lot.

When I first started testing it seemed like the world suddenly got really scary and now I had to test everything. I ended up testing ridiculous stuff, things that the language would provide by default. (I did this in many languages which is why I don't mention a specific one).

What I've found valuable as I do testing (I do TDD) is that it has made me change how I think about design and composability.

I agree that there should be a greater focus on "what is appropriate to test" but even knowing how to write tests and what to test is a skill in itself.

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#52
post #5
post #3

Ugh. Why don't they release the presos as opposed to having to deal with synchronous video?

If you mean just the slides, most of them are in this github repo: https://github.com/strangeloop/2011-slides

Awesome! Thx!

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#53

Earlier quoted context omitted.

Any chance of releasing the videos somewhere that doesn't require Flash?

I watched it fine on my iPad, it should be viewable in an HTML5-mp4 capable browser I guess.

Sure enough, if I fake my User-Agent as an iPad, I get a tag referencing a .mp4, which I can then download and watch. Now if only infoq would provide a "download" link pointing to the same .mp4.

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#54

Great presentation, but it got me thinking. Am I wasting my time trying to get software just right? Is it worth my time to learn Clojure or Haskell, when I don't even know what I'll use it for? How many programmers do you know that are learning all kinds of languages and technologies and methodologies and other things to improve the quality of the software they write and yet will probably sit at a desk writing code f…

To me, Clojure is about as productive as banging out a script in Ruby. It's way more productive than writing the same thing in any language where I can't (easily, or at all) just fire up a REPL and start hacking. I can actually just crank out code that I use. It can be quick and messy. Clojure is not concerned with type theory and provable correctness. But the end result of a quick hack, in Clojure, is often somethin…

I kinda regret having chosen Clojure for my project. Its not that I can't express ideas in very little code, its just that my workflow is different from languages like Python.

In Clojure, it seems that I can't apply the method of spike solution (http://c2.com/cgi/wiki?SpikeSolution) and then refactor it into working code like I do with languages like Python or C.

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#55

Earlier quoted context omitted.

He says relying on tests and type-checking to verify a program still does the right thing after making changes is "guardrail programming".

The slide where this comes up (~15:45) is about debugging. I think the point Rich is trying to make on that slide is that a bug in production passed the type checker and all the tests. Therefore, tests are not solving the problem of building high quality systems. Rather, tests (and type safety) are "guardrails" that warn when you when you are doing something wrong (they are reactive). As Rich said on Twitter ( https:…

Okay, follow up, I watched half of the talk. Wow. What an insightful guy. I really enjoyed what I heard so far.

The section about testing and guardrails seems to have been blown way out of proportion. I fervently believe in Agile/XP practices, TDD and all such good things. But I'm not naive enough to say that "because I have tests, nothing can go wrong". And that seems to be his main point here.

It makes me think...it seems like all languages and methodologies have a "Way" of the language (call it the Tao of the language). The closer you get to "The Right Way of Doing Things" within a language, the more you reach the same endpoint. And I feel that's what Rich is talking about here.

What I like about this talk is that it could be useful for programmers of any caliber or toolset to hear. If I could have heard some of these principles when I was first learning BASIC, it would have been useful.

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#56
post #29
post #27

Earlier quoted context omitted.

Well, yes, IIRC he described one of his major goals with Clojure as enabling simplicity, or something like that. That Clojure's design follows his views on simplicity seems natural. Non-Clojure examples would help make the point. He does bring up examples from Haskell (such as type classes) in the talk in places, but doesn't dive deeply into them.

SQL and Prolog were also cited, but yes, nothing very deep (which I think is fine for this talk) I would love to see the programs that are generated from this philosophy.

Your comment made me take heart if I understand it correctly. Sometimes I feel I'm the only person out there who thinks SQL has a certain beauty and elegance.

I find it a little funny sometimes to hear all these "web scale" folks put down SQL, and then praise something like MongoDB because you can do map/reduce.

I saw a presentation by the author of the Lift framework in Scala and he made a bit of a joke saying "gosh...all this FP stuff...the folks who created SQL heard about that a long time ago".

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#57
post #56
post #29

Earlier quoted context omitted.

SQL and Prolog were also cited, but yes, nothing very deep (which I think is fine for this talk) I would love to see the programs that are generated from this philosophy.

Your comment made me take heart if I understand it correctly. Sometimes I feel I'm the only person out there who thinks SQL has a certain beauty and elegance. I find it a little funny sometimes to hear all these "web scale" folks put down SQL, and then praise something like MongoDB because you can do map/reduce. I saw a presentation by the author of the Lift framework in Scala and he made a bit of a joke saying "gosh…

    the only person out there who thinks 
    SQL has a certain beauty and elegance
You're not alone. :-)

http://news.ycombinator.com/item?id=1730320

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#58
post #54

Earlier quoted context omitted.

To me, Clojure is about as productive as banging out a script in Ruby. It's way more productive than writing the same thing in any language where I can't (easily, or at all) just fire up a REPL and start hacking. I can actually just crank out code that I use. It can be quick and messy. Clojure is not concerned with type theory and provable correctness. But the end result of a quick hack, in Clojure, is often somethin…

I kinda regret having chosen Clojure for my project. Its not that I can't express ideas in very little code, its just that my workflow is different from languages like Python. In Clojure, it seems that I can't apply the method of spike solution ( http://c2.com/cgi/wiki?SpikeSolution ) and then refactor it into working code like I do with languages like Python or C.

I'm wondering what about spikes doesn't work in Clojure? I usually understand a spike as a "proof of concept" that doesn't handle all of the edge cases.

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#59
post #56
post #29

Earlier quoted context omitted.

SQL and Prolog were also cited, but yes, nothing very deep (which I think is fine for this talk) I would love to see the programs that are generated from this philosophy.

Your comment made me take heart if I understand it correctly. Sometimes I feel I'm the only person out there who thinks SQL has a certain beauty and elegance. I find it a little funny sometimes to hear all these "web scale" folks put down SQL, and then praise something like MongoDB because you can do map/reduce. I saw a presentation by the author of the Lift framework in Scala and he made a bit of a joke saying "gosh…

I think the relational model has beauty and elegance, but not the SQL language itself. They are not one and the same.

On the subject of SQL and Clojure, ClojureQL provides an alternate relational data manipulation language that compiles to SQL. It's not just a different syntax; it allows some composability not found in SQL. The syntax does help though, especially in conjunction with the thrush operator.

Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011 [video]

#60

Great talk. Simplicity is, of course, key; but a few of his applications of these principles are misguided IMO. Ex: The "Parens are hard!!" slide. He suggests that parens are "overloaded" in CL/Scheme because they are used to wrap functions, data, and structures all the same. However he completely misses the fact that by representing everything with parens, CL/Scheme remove a lot of complexity in software written in…

Having written a bit of Scheme and Clojure - Clojure's distinction between data structures make many things simpler - from writing code to writing macros. As far as his comments on testing - I suggest you read this, http://blog.8thlight.com/uncle-bob/2011/10/20/Simple-Hickey....

Importantly, it should be mentioned that despite the way it distinguishes between different data structures, Clojure manages to retain the advantage of "representing everything with parens" by instead making sure that everything implements a common _interface_, (i.e., seq). In other words, as opposed to CL or Scheme, it separates logical list manipulation from the physical data structure, giving the best of both worlds. That's a big advantage for Clojure.
Post reply on HN