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.
Steve Yegge: Notes from the Mystery Machine Bus
41–50 of 186 posts
Re: Steve Yegge: Notes from the Mystery Machine Bus
#42Hidden 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.
Re: Steve Yegge: Notes from the Mystery Machine Bus
#43I 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…
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
#44As 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…
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
#45Some 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…
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
#46before 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…
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
#47A 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
#48Re: Steve Yegge: Notes from the Mystery Machine Bus
#49I 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
Liberal Conservative
Or as a totally unscientific number: -24
Re: Steve Yegge: Notes from the Mystery Machine Bus
#50I 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.
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.