Live data from Hacker News

Rob Pike: Simplicity Is Complicated [video]

thedotpost.com

31–40 of 152 posts

Re: Rob Pike: Simplicity Is Complicated [video]

#31
post #18
post #12

Earlier quoted context omitted.

How do you have a large set of language features with them not interacting? In Java, serialization and generics interact with practically everything. In C++, RAII interacts with exceptions, which is the point but isn't exactly pleasant.

Most people consider garbage collection to be a net win in terms of simplicity. Have you thought about why? Not every feature interacts with other features in complicated and error prone ways.

I think the politest description I can provide of the experience of tracking down GC bugs is that they interacted with other features in complicated and error prone ways.

Re: Rob Pike: Simplicity Is Complicated [video]

#32
Some quibbling here in the comments about whether Pike uses the right definition of "simple". There is of course a context to Pike's notion of the word:

> The key point here is our programmers are Googlers [...] They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Fro...

Re: Rob Pike: Simplicity Is Complicated [video]

#33

Some quibbling here in the comments about whether Pike uses the right definition of "simple". There is of course a context to Pike's notion of the word: > The key point here is our programmers are Googlers [...] They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. http://cha…

That quote is a hilariously denigrating claim to make of your coworkers.

Even if it were true (which I don't believe for a second), you've created a language released to the community at large. Your users are not just google engineers. If you want to encourage broader acceptance of your language, you're going to need to make a good faith attempt to listen to their requests.

Re: Rob Pike: Simplicity Is Complicated [video]

#34
post #14

This talk has a lot of very weak points. He made the claim that more features hurt readability (~6:10), because when you are reading you have to waste time thinking about why the programmer chose the set of features he did to write the code. To make that kind of claim without qualifications is just ridiculous - if it were true, why add any feature to a programming language at all? Especially if one believes readabili…

> He made the claim that more features hurt readability (~6:10), because when you are reading you have to waste time thinking about why the programmer chose the set of features he did to write the code. To make that kind of claim without qualifications is just ridiculous - if it were true, why add any feature to a programming language at all?

Because if you didn't the programming language would never do anything at all.

Re: Rob Pike: Simplicity Is Complicated [video]

#35
post #12

I strongly disagree with this notion of "simplicity" as being attributable to scarcity of language features. Some of the languages that I felt were the easiest to use had quite a number of language features, but had simple semantics . I think Rich Hickey nailed this in his "Simple Made Easy"[1] talk. Complexity is not about additivity, it's about entanglement. [1] http://www.infoq.com/presentations/Simple-Made-Easy

How do you have a large set of language features with them not interacting? In Java, serialization and generics interact with practically everything. In C++, RAII interacts with exceptions, which is the point but isn't exactly pleasant.

> How do you have a large set of language features with them not interacting?

The ability to write interesting programs in a language comes from the interaction between its features. The real problem is features that interact in unpleasant ways, which almost always results from a lack of foresight on the language designer's part.

> In C++, RAII interacts with exceptions, which is the point but isn't exactly pleasant.

The interaction between control effects (of which exceptions are a particular case) and substructural types (of which C++'s RAII is a very broken particular case) is certainly nontrivial [0], but this doesn't mean we should give up on either feature. Control effects make it easier to design and implement extensible programs. Substructural types allow you to safely manipulate ephemeral resources, such as file handles, database connections or GUI objects.

[0] http://users.eecs.northwestern.edu/~jesse/pubs/substructural...

Re: Rob Pike: Simplicity Is Complicated [video]

#36
post #14

This talk has a lot of very weak points. He made the claim that more features hurt readability (~6:10), because when you are reading you have to waste time thinking about why the programmer chose the set of features he did to write the code. To make that kind of claim without qualifications is just ridiculous - if it were true, why add any feature to a programming language at all? Especially if one believes readabili…

> because when you are reading you have to waste time thinking about why the programmer chose the set of features he did to write the code.

It seems to me that what Pike is getting at here is how easy it is to build mental models of the code, the language, the underlying system, down through all its layers, and, yes, the code's original author and any subsequent authors.

I share your frustration at the subjectivity of readability claims. There's actually starting to be good academic research on code readability, for instance this paper:

https://www.cs.virginia.edu/~weimer/p/weimer-tse2010-readabi...

Re: Rob Pike: Simplicity Is Complicated [video]

#37

Some quibbling here in the comments about whether Pike uses the right definition of "simple". There is of course a context to Pike's notion of the word: > The key point here is our programmers are Googlers [...] They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. http://cha…

That quote is a hilariously denigrating claim to make of your coworkers. Even if it were true (which I don't believe for a second), you've created a language released to the community at large. Your users are not just google engineers. If you want to encourage broader acceptance of your language, you're going to need to make a good faith attempt to listen to their requests.

I think that it would be taken in the spirit it was intended. Programming is hard. (even when you take into account https://en.wikipedia.org/wiki/Hofstadter%27s_law)

Also, I'm pretty sure the "brilliant" is meant somewhat sardonically.

Re: Rob Pike: Simplicity Is Complicated [video]

#38
post #12

Earlier quoted context omitted.

How do you have a large set of language features with them not interacting? In Java, serialization and generics interact with practically everything. In C++, RAII interacts with exceptions, which is the point but isn't exactly pleasant.

Generics solve an occurrence of too much entanglement. That is, it solves entanglement of an abstract "shape" of computation with a specific set of type definitions. Generics actually allow you to not think about an additional dimension of your program (i.e. the exact types a computation or data type can be used with). Haskell programmers famously point this out with the observation that a generic fmap is safer than…

Exactly. Parametricity is the killer feature of statically typed functional languages. This why it saddens me when Haskell and OCaml add features that weaken parametricity, like GADTs and type families.

Re: Rob Pike: Simplicity Is Complicated [video]

#39
post #36
post #14

This talk has a lot of very weak points. He made the claim that more features hurt readability (~6:10), because when you are reading you have to waste time thinking about why the programmer chose the set of features he did to write the code. To make that kind of claim without qualifications is just ridiculous - if it were true, why add any feature to a programming language at all? Especially if one believes readabili…

> because when you are reading you have to waste time thinking about why the programmer chose the set of features he did to write the code. It seems to me that what Pike is getting at here is how easy it is to build mental models of the code, the language, the underlying system, down through all its layers, and, yes, the code's original author and any subsequent authors. I share your frustration at the subjectivity o…

Oh, or this investigation into programming language syntax for learnability!

> Recent studies in the literature have shown that syntax remains a significant barrier to novice computer science students in the field. While this syntax barrier is known to exist, whether and how it varies across programming languages has not been carefully investigated. For this article, we conducted four empirical studies on programming language syntax as part of a larger analysis into the, so called, programming language wars.

http://neverworkintheory.org/2014/01/29/stefik-siebert-synta...

Re: Rob Pike: Simplicity Is Complicated [video]

#40
post #12

Earlier quoted context omitted.

How do you have a large set of language features with them not interacting? In Java, serialization and generics interact with practically everything. In C++, RAII interacts with exceptions, which is the point but isn't exactly pleasant.

> How do you have a large set of language features with them not interacting? The ability to write interesting programs in a language comes from the interaction between its features. The real problem is features that interact in unpleasant ways , which almost always results from a lack of foresight on the language designer's part. > In C++, RAII interacts with exceptions, which is the point but isn't exactly pleasant…

Nice phrasing, unpleasant was the feeling I was going for.

Sometimes I wonder about giving up.

Post reply on HN