Live data from Hacker News

Steve Yegge: Notes from the Mystery Machine Bus

plus.google.com

31–40 of 186 posts

Re: Steve Yegge: Notes from the Mystery Machine Bus

#31
post #26

I think as a Ruby (and occasionally C) programmer I stand firmly in the liberal camp, but is it weird that I sort of like Haskell too? I find the idea of expressing the semantics of my program through types to be useful sometimes. Then again my actually political views tend to span the liberal/conservative spectrum so I suppose this is not surprising.

Ruby is more liberal than c (duck typing) Haskell is more liberal than ruby (functional programming) C is more liberal than Haskell (weak typing) Also, I am apparently a radically conservative programmer, but my political views in real life tend toward radical liberalism. I think any correlation says more about age than it does about politics.

> Haskell is more liberal than ruby (functional programming)

Not according to the article, which is what my comment was in response to.

> I think any correlation says more about age than it does about politics.

Quite possible, I'm 26.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#32
post #28

As much as some commenters are (weirdly?) railing against this classification scheme I think the underlying idea that software conservatism is about risk aversion is essentially accurate. Perhaps another way of framing this is to ask the question: are you optimizing for the best case or the worst case? This ultimately is a form of risk management. And I'm not talking in the algorithmic sense, meaning complexity expre…

...except that most of the features you mention are in Scala in some for or another, yet he classifies Scala as "hardcore conservative"

Re: Steve Yegge: Notes from the Mystery Machine Bus

#33
This is a brilliant move by Yegge. Now if you call him wrong, you're just like the guy who attacks Aunt Marge's politics at the family dinner.

Unfortunately, your business is not Aunt Marge. You need to be able to make the tough calls and say that, no, banning the color yellow is not a viable policy. Software engineering and programming languages are both seriously-studied disciplines, and all too often, the evidence comes down conclusively in favor of one position.

To pick an easy target, in many languages like Java and C++, null can be passed in place of (almost) any type. But

1) Empirical studies show that values intended to be non-nullable are more common...

2) ...which means that many method definitions are cluttered with is-null checks (to cut down the exponentially-increased state space)...

3) ...and it's just as easy to provide a feature to turn it on when it's wanted (option types/Maybe monad)...

4) ...which many companies hack into C++/Java anyway (various annotations and preprocessors)

This is a pretty solid case. Liberals win -- it's less code. Conservatives win -- there are fewer bugs. Sometimes things really are that one-sided.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#34
post #28

As much as some commenters are (weirdly?) railing against this classification scheme I think the underlying idea that software conservatism is about risk aversion is essentially accurate. Perhaps another way of framing this is to ask the question: are you optimizing for the best case or the worst case? This ultimately is a form of risk management. And I'm not talking in the algorithmic sense, meaning complexity expre…

...except that most of the features you mention are in Scala in some for or another, yet he classifies Scala as "hardcore conservative"

It might be because of the Scala community, as he feels it is with Clojure.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#35
Some of the tendencies depend upon the nature of the organization. Startups tend liberal (want to change the world). Corporations tend conservative (want to avoid major mistakes). The selection of tools does not always reflect this immediately though.

Also some classification of technology as conservative or liberal depends upon the competing technology it is running against. I was a bit surprised to see Python classified as liberal - but it makes sense when comparing it to Java. If it is being compared with Ruby it is very conservative ("do things one way").

There are some non technological risks that influence technology decisions. Visual Basic may be "Hardcore Liberal" from a language perspective, but it is pretty conservative politically (backed by Microsoft, lots of available experienced programmers).

Steve as usual has interesting insights. I am not sure that this is a paradigm that completely fits - but it does provide a perspective for understanding fundamental beliefs that can lead to disagreements in software projects.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#36
post #34

Earlier quoted context omitted.

...except that most of the features you mention are in Scala in some for or another, yet he classifies Scala as "hardcore conservative"

It might be because of the Scala community, as he feels it is with Clojure.

Tumblr and Twitter don't strike me as a particularly conservative audience. Quite the opposite.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#37

Interesting positioning of languages: Assembly language: Batshit liberal. Perl, Ruby, PHP, shell-script: Extremist liberal. JavaScript, Visual Basic, Lua: Hardcore liberal. Python, Common Lisp, Smalltalk/Squeak: Liberal. C, Objective-C, Scheme: Moderate-liberal. C++, Java, C#, D, Go: Moderate-conservative. Clojure, Erlang, Pascal: Conservative. Scala, Ada, OCaml, Eiffel: Hardcore conservative. Haskell, SML: Extremist…

It seems very subjective (and somewhat arbitrary) to assign labels of "conservative" or "liberal" to languages based largely on type safety. If this random blog post is taken as the definitive source of "conservative" vs "liberal" we get the following: Twitter and Tumblr using Scala are "Hardcore conservative", while guys writing assembler for IBM mainframes are "Batshit liberal" ?

Assembler is so liberal that you have to be deeply conservative in order to write code for it.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#39
post #4

As Yegge mentioned in his post, this is a bit of an oversimplification. As a simple illustration, choosing a statically typed language like Java over Python is certainly a conservative trait. But then choosing Python over Haskell is exactly the same, just with the whole difference translated towards the liberal end of the spectrum. Put another way, it's the political liberals who came up with OSHA (I hope--I'm somewh…

I would probably place C# as significantly more "liberal" than Java Only if you look at these languages in isolation from their virtual machines and operating systems on top of which they run, also disregarding the communities around them. Java as a language is more conservative, definitely, but the Java ecosystem is definitely more liberal. As proof, compare Java's open-source community with .NET. Or compare the mat…

How much of the difference between the C# and Java ecosystems is due to the age of the language? Of course, I agree with you, too, because we have a "liberal" language (C#) tied to an extremely "conservative" company/platform (Microsoft), and that will always be a limiting factor in the growth of the ecosystem.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#40
Hidden inside this fascinating screed is an announcement about the "Google Grok" project, which appears to be something of an Eclipse-killer for dynamic languages. It's good to hear that Google is working on this problem, and I'm interested to see what they come up with.
Post reply on HN