Live data from Hacker News

Steve Yegge: Notes from the Mystery Machine Bus

plus.google.com

91–100 of 186 posts

Re: Steve Yegge: Notes from the Mystery Machine Bus

#91

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

Its also interesting to know that Readability, which I use to format anything i want to read, cant parse this, so I am stuck reading in this unfamiliar (to me) format.

Update: Safari's reader, however, worked just fine, and it looks fabulous.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#92
post #39

Earlier quoted context omitted.

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.

Has almost nothing to do with the age. Most dotnet shops wait for MS to give them what they need. Java developers are more inclined to create (and share) their own solutions. It also doesn't help that MS actively cannibalizes and rebrands open source projects.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#93

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

I am a Google Plus hold-out and it is sad to see that I am required to signup for Plus to read Yegge's blogs now.

Re: Steve Yegge: Notes from the Mystery Machine Bus

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

I don't think the main problem with operator overloading is "abuse"; I think it's that there's absolutely no way to know what a given clause of code might mean, even if the overloading has been defined by excellent coders.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#95
I think one could make an argument that Haskell is like Fascism. They're both extremely liberal applications of extremely conservative beliefs. This can make categorizing them difficult.

Scheme, Erlang and company are more like communism: extremely liberal applications of extremely liberal beliefs. So much so that people tend to view them as "good in idea, but flawed in practice".

Python and Ruby are more like traditional liberalism. They bring in new ideas, but not in excess.

Scala and Clojure seem remarkably centrist. They both bring in good ideas from both the liberal and conservative camps.

Lastly, C is "old guard" conservatism, C++ is a Bush-style "compassionate conservatism" that tries to please everyone while being labeled "conservative", Java is a neo-con, and C# might be compared to the Tea Party.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#97
The things he said about the Clojure community are in contradiction with the data from the 2012 State of Clojure survey here: http://cemerick.com/2012/08/06/results-of-the-2012-state-of-... .

Steve claims that Clojure folks come from the Haskell/ML world when the survey lists the "former primary language" of survey takers to be 1% Haskell, 0% SML, 0% Ocaml. Whereas they actually come from Java, Python and Ruby mostly.

The Clojure "replacement" in the survey is all over the map with Common Lisp, Erlang, Haskell, Java, Python, Ruby, Scala and Scheme all performing well. The liberal/conservative thing is a false dichotomy and Clojure community is probably living proof of that.

Re: Steve Yegge: Notes from the Mystery Machine Bus

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

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 know that these over-ambitious, 20-person Java projects are actually a lot riskier. Putting 20 people on a 5-person project doesn't make it less risky, but more. Business types fundamentally don't get this.

Business people are concerned with continuity, engineers are concerned with completion.

Putting more people on a project reduces the risk of losing key people, and staffing is really the only tool at business peoples' disposal to protect (the perception) of continuity.

Engineers consider the risk to be related to the project actually being complete: if that be functionally complete or shippablly complete, etc. Actually spending time working on the project efficiently is how engineers want to manage that risk.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#99
I don't really think it is fair to characterize Clojure as conservative. If anything Clojure was created out of the motivation to have the cake and eat it too. Most other languages grant you the benefits of type-safety but at the cost of reduced flexibility/increased complexity. Clojure tries as much as possible to give you the pragmatic benefits of both while mitigating the costs.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#100
I first noticed something like this, though I draw the lines differently, in the 1980s.

What's interesting is that there has been a shift over the years to where "programming" has come ot have a strong ideological bias to only one type.

The types I noticed then I call Cowboys and Architects. These are just terms I'm using for convenience, not meant as pejoratives.

Cowboys are now more common: Some programmers write a bunch of sloppy code without bothering to ever design anything. Their methedology for making a product seems to be akin to bashing to the code into the shape it needs to be eventually. This group of people tend to advocate policies that assume everyone else is writing crappy code as well- unit tests, agile, etc. For instance, agile rejects design and assumes you can't know what the right shape for the code is going to be more than a week in advance and that all code is maleable without repercussions.

Architects are now rare: Other programmers will sit for a week and think without writing any code. When they do, they sit down and over the course of an hour (or however long it takes to type it) will write out the code for the complete system or module. It will be bug-free with the exception of typos. Once the typos are fixed (Generally by getting the compiler to accept the code) the programmer can move on to implementing the next bit of functionality. Sometimes there are errors in the code working with other code, generally integration errors, but not errors in the thinking of the programmer. These programmers only accept that Agile makes sense because the business side of things can't make up its mind, so they architect core systems that are flexible to support multiple business needs, but don't need to be rewritten or bashed around, because they did it right the first time.

I'm of the latter type, and I have tested this objectively, by producing a 10,000 line iOS App like this, which has been in use for several years by tens of thousands of people with no crashes or other defects (a few minor conceptual bugs- mismatch between the features and the expectations of the business, which were fixed)... and not a single unit test. It compiled, it worked, and almost all the development time was spent on the UI. It has had major releases (eg: going from being iPad only to a universal app, etc.)

It has built in reporting for exceptions, and all of the reported exceptions are the result of things other than my code (eg: there are several situations where iOS will crash an app if it needs to or due to problems with pre-release versions of iOS, and those are what generate the exceptions.) No customer reported bugs either. (though they do have requests for things working slightly differently and new features, no programming errors reported by customers.)

The industry is so dominated by a culture of "all code is crap" that I think many people think that all programmers are cowboys and even Steve here is delineating types of Cowboys, and nobody believes architects exist.

Can you imagine someone saying "unit tests are a waste of time, they just double the amount of work with no benefit.". It produces a litany of excuses for why this isn't true. ("You need them if other people work on your code!", "maybe for a team of one", "you're assuming you'll never forget a design decision", etc.) I know this message will get responses along those lines-- its because Cowboyism has become an ideology. Yegge is right - programmers are ideological.

I'm not a savant and I'm not rare. Architects like me were about %50 of the programmers out there when I started out. I think the mainstreaming of "hacking" has produced a lot of people who are taught to be cowboys and a culture that encourages cowboyism.

Post reply on HN