Live data from Hacker News

Steve Yegge: Notes from the Mystery Machine Bus

plus.google.com

81–90 of 186 posts

Re: Steve Yegge: Notes from the Mystery Machine Bus

#81

Off-topic but does Google Plus offer any way to view a post nearly full-screen, without all the extra margin and white space taking up 2/3rds of the screen? A bit annoying that the post text only takes up about 33% of my available screen real estate, even on the "view single post" URL: http://cl.ly/image/1p1B2o3D262g

When I page-down, I have to scroll back up a few lines because the border is eating too much of the visible screen. :(

This is a major annoyance as well. Long-form posts have a poor reading experience on Google Plus.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#82

In his section on Tech Corporations, he classifies Apple as "Diagnosis: no idea." Is there a reason nobody speaks publicly about Apple's engineering culture? We hear a lot about the culture at Google, Facebook, Microsoft, and Amazon. But I've never met an Apple engineer. And I've never read any detailed accounts by an insider. Does anybody have any good resources? Or is there a very restrictive confidentiality policy…

Apple is not a software culture. It is better to think of Apple like you think about Sony - they do software but it is only to support their design and hardware efforts.

That said, I'd characterize Apple is liberal. They put immense pressure on engineers to ship software as soon as possible to "get the new shiny out".

Re: Steve Yegge: Notes from the Mystery Machine Bus

#83
I think this is fundamentally flawed. Take HAML, for instance. It tends to be polarizing, but not along the axis he has laid out. People who don't like it usually point to the unfamiliar and non-standard syntax (conservative), but the thing that I like about it is that it is more structured, and less error-prone than string splicing (also conservative).

In general, when I fall on the liberal side of an argument, I think it is for the reasons he gives (no fear, resist ossification). But when I fall on the conservative side (which happens just as often) it is not because of fear, but because I think that mathematically rigorous abstractions (pure functions, persistent data structures, etc) offer a more powerful way to approach the problem.

I think my attitude toward bugs (which he suggests is the defining issue) is more nuanced than this spectrum allows. Bugs are inevitable, and it's not the end of the world when you have a bug. We need debuggers. But I think that over time, if we are doing anything right, we should be growing a stable core of our codebase that is increasingly flexible and bug-free. I guess maybe this could be considered a centrist view. It is certainly neither liberal nor conservative.

Someone in the thread mentioned pragmatism vs. idealism. I think this is a much more useful distinction. I would definitely consider myself an idealist. But the pragmatic-ideal axis doesn't map to the conservative-liberal axis at all.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#85
post #34

Earlier quoted context omitted.

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.

Tumblr and Twitter use Scala to solve their nice-to-have scalability problems using a services-based architecture. This is "core functionality must protected at all costs" conservatism.

They still have PHP and Rails (respectively) up front. This is "we like to roll out new user-facing features regularly" liberalism.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#86

I'm trying to think of what anti-macros Clojure talk by a "key presenter" he might be referring to. I'm only familiar with the talks from Clojure/conj, so the only one that I can think of is Christophe Grand's (not= DSLs macros) talk from 2010[1]. If so, I think his summary mischaracterizes the content of that talk, but it could be another talk he's thinking of. [1] http://blip.tv/clojure/christophe-grand-not-dsl-mac…

I think Christophe's is the talk, and Yegge seriously misunderstood it, if he even bothered to watch it. Christophe's point was that basing the underpinnings of a DSL on macros was frequently a mistake, vs a data + functions approach that "leads to greater dynamicity". It is inarguable that macros are less flexible than functions (e.g. they can't be applied) and less composable. Christophe's argument wasn't against macros, but that they should be the last layer of sugar, not the core mechanism of a DSL. This approach has been advocated and practiced by Lispers forever. Ditto the advice to not use a macro when a function will do.

And for Yegge to imply that more serious Clojure devs like Christophe are macro averse because they are afraid they might not understand someone else's macro code shows his complete lack of familiarity with Christophe's macro skills and other work of the community.

Taking potshots at things you don't understand and people you don't know (while leaving out the link so others could verify) smells like a FOX-news rhetorical approach to me. Ditto political labeling (though in the programming community the negative tag is "conservative", whilst in politics it is "liberal"). Tag the thing you don't like with the negative label, then rationalize, and spew misinformation. "Clojure's community came pre-populated with highly conservative programmers from the pure-functional world: basically Haskell/ML types": surveys[0][1] say... nope.

He even ignores the bulk of his own criteria in his labeling exercise. Clojure has almost none of the things on his "Conservative Stuff" list except STM (huh, is GC conservative too?) and almost all of the things on his "Liberal Stuff" list. None of his 1-8 conservative points apply to Clojure (and I see nothing wrong with conservative about speed - Common Lisp has always pursued it, and its pursuit always involves risk), and all of his 9 liberal points apply to Clojure.

Clojure devs are liberals that want their programs to work.

If Yegge doesn't like Clojure, fine. But to rationalize like this is weak.

Yawn.

[0] http://cemerick.com/2010/06/07/results-from-the-state-of-clo...

[1] http://cemerick.com/2012/08/06/results-of-the-2012-state-of-...

Re: Steve Yegge: Notes from the Mystery Machine Bus

#87
post #43

Earlier quoted context omitted.

> I'm conservative because I dislike complexity Except a lot of conservatism as defined here is all about complexity in terms of 'big design up front' methodology and, really, having a big methodology in the first place, along with having a lot of testing and static analysis tools. Ada is a conservative language. C is extremely, red-diaper liberal.

Sure. I think that Yegge has hit on something real, but I don't agree with where he's drawn the lines. Haskell and Lisp developers have more in common with each other than with "best practices" Java developers. A lot of this is about risk assessment. Business people and engineers don't agree on how to define and measure risk. Business people think Java is the low-risk choice, because the risks are hidden. Engineers k…

>Haskell and Lisp developers have more in common with each other than with "best practices" Java developers.

Like in actual politics the emotion and the response, do not always match up rationally. That's why its called an emotion.

For example, preventive wars do not make one safer. But they sure make you feel like you are safer. Going out there, dealing with potential threats.

Likewise, Java can be very dynamically typed (depending on your perspective), yet feel 'conservative' (stick with what we know). Haskell is very statically typed, yet feel 'progressive' (explore new grounds).

Emotion is not an intentional thing, therefor its application is never rational.

To get back to real politics. If a person is both sane, yet fearfull of his or her security, they would not want a bigger military machiene, they would want a bigger worldwide PR machiene.

I tend to put the two extremes differently though: a liberal fears being wrong, a conservative fears being right. Which is why progressives go out of their way to be right, and conservatives go out of their way to be wrong. (jk)

Re: Steve Yegge: Notes from the Mystery Machine Bus

#88

I think I'm a software libertarian. If you like dynamic typing and can write good, legible code in a language like Python or Lisp, do it. If you like static typing, knock yourself out. If you want to use an IDE, go for it. If you want to use emacs, do it. Hell, if you like object-oriented programming, try it out. I think 95% of "object-oriented" programming (as currently practiced) is junk, but the other 5% is legiti…

write good, legible code

What conservatives consider good, legible code is very different from what liberals do. From the article:

For instance, it's straightforward to write JavaScript code in a way that eschews reflection, eval, most automatic type casting, prototype inheritance, and other dynamic features. You can write JavaScript that plods along as unadventurously as, say, Pascal. It doesn't have all the static type annotations, but you can replace them with assertions and unit tests and stereotypically stolid code organization.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#89
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…

From the wikipedia[1]: "Congress established the agency under the Occupational Safety and Health Act, which President Richard M. Nixon signed into law on December 29, 1970." Nixon[2] also tried to get Universal Health Care for all low-income and employed Americans, but it was blocked by Senator Edward Kennedy and other Democrats. Maybe politics[3] is just the art of getting the state to delegate property rights, even…

Just because people don't act rationally, that doesn't mean that their emotions are not consistent, or can not be understood.

Emotions are not intentional, nor do they lead to rational behavior. (by definition). The translation of an emotion into a point-of-view depends purely on the context: it can swing any direction.

A conservative might be against war, because he/she is afraid it will make the world dislike the US more, and hurt his/her security more.

A progressive might be in favor of war, because he/she is afraid that without it, the world is worse off, and the potential for a better world is lost.

And from that perspective, I do consider the stated 'political' dimension a potentially relevant categorization of programmers' mentality.

But without knowing their background, there is no way to predict how they actually feel about specific approaches.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#90

Earlier quoted context omitted.

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

I don't think Yegge is arguing anywhere that the language choice you make is tied into your overall corporate software "liberalness" or "conservativeness". The "software liberal" companies he lists - Facebook and Amazon - both make heavy use of C++ (a "moderate-conservative" language to Yegge) and Amazon also uses Java heavily (another "moderate conservative" language.

Amazon's a bit lighter on the C++ these days and has quite a bit of Ruby.

As usual with Amazon, though, this is an area where it makes more sense to talk in terms of individual teams than the company as a whole. Some teams build almost everything in Ruby and are open to new languages. Others are pure Java shops. Other than Infosec approval, it's really up to teams to decide for themselves.

Post reply on HN