Live data from Hacker News

Steve Yegge: Notes from the Mystery Machine Bus

plus.google.com

41–50 of 186 posts

Re: Steve Yegge: Notes from the Mystery Machine Bus

#41
Steve's almost got it right that there are axes, but I think he tried too hard to fit it into a two party system.

I think instead there are the axes of safety, efficiency (which is almost the same as the next, but is more in the context of the C vs. C++ argument), speed/load of system (and tendency to develop to handle more load than is needed vs. less for the particular application), development speed/cleverness (typically dynamicism vs. static these days), clarity (which is not the opposite of cleverness), and verbosity.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#42
post #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.

That was the most interesting point for me too. Mobile development has reminded me of the significant tooling benefits of static languages but also the verbosity and awkwardness of said languages. If I could have an IntelliJ-level IDE for Ruby or Python or JS I'd be very happy.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#43

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…

> 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.

Re: Steve Yegge: Notes from the Mystery Machine Bus

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

Nixon was a Pre-Reagan Establishment Conservative. Such Republicans are not tolerated by the modern GOP, as Nixon's record regarding OSHA, the EPA (which he also created), and Universal Health Care will demonstrate.

Political parties evolve over time, sometimes quite drastically, as the political makeup of the country as a whole shifts and changes.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#45

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 class…

The general risk-adverse vs. change-oriented paradigm makes a lot of sense. The problem is that it not limited to the technical realm in most organizations. Technology decisions often need to be justified by management who don't necessarily use purely technical criteria for their choices.

Some rather simple criteria can be used to group languages - age and popularity. Perl, JavaScript, Java, Visual Basic are conservative in that they are popular, well known, established languages (even though they cross the Yegge's whole spectrum). Haskell, while extremely conservative technically, is extremely liberal in many organizations - where there are no currently implemented projects using the language and no programmers experienced using it.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#46

before it started I knew it was going to be another typing rant. I think you continue to present a false dichotomy on typing, as well as missing some of the reasons people desire it. In particular, I like typing as machine readable documentation, that makes IDEs simpler and more accurate in code navigation and refactoring. Dart in particular shows this false dichotomy really well, but having a type system for human a…

In the examples given, Dart with its optional type system (and with type-checking that only triggers warnings) would actually fall in the liberal camp. You can bet that the Mars Curiosity rover isn't using a garbage collected dynamic language It's using 2.5 million lines of C. C is not a strongly typed language. C can't really be classified as dynamic or static. C is just low-level assembly with some structure attach…

> C is just low-level assembly with some structure attached.

To make it clearer: By the standards of the article, C is quite liberal indeed. C++ is significantly more conservative.

Re: Steve Yegge: Notes from the Mystery Machine Bus

#47
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

Re: Steve Yegge: Notes from the Mystery Machine Bus

#49
post #48

I know I will regret this but here is a little survey I whipped up quickly. It's static so results are local to your browser.. Enjoy: https://dl.dropbox.com/u/704864/software-politics.html

Not that anyone cares:

Liberal Conservative

Or as a totally unscientific number: -24

Re: Steve Yegge: Notes from the Mystery Machine Bus

#50
post #43

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…

> 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 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. They have no idea what is wrong with Big Code methodologies, because they don't experience the externalized costs (of long-term maintenance and diminished morale). They get promoted and move on to the next (usually bigger) project.

Familiarity comes into the mix, too. Lisp is rejected because it's foreign and weird and macros can create a lot of undesirable complexity, but SpaghettiVisitorFactory patterns in so-called "best practices" Java are just as bad. They're a lowbrow spin on the same theme: obfuscation through indirection. There's a lot of indirection and abstraction that is done prematurely because it's the "smart" thing to do, but reflexively doing the "smart" thing is pretty stupid because often the "dumb" thing is more elegant and easier to use. That's called cargo cult programming, which seems to be business as usual in typical Java codebases.

Post reply on HN