"Bruno Medeiros" <brunodomedeiros+s...@com.gmail> wrote in message news:ier0hh$us...@digitalmars.com... > On 11/12/2010 01:26, Ary Borenszweig wrote: >> http://vimeo.com/17420638 >> >> A very interesting talk. >> > > Whoa. > > Over the last 5 years or so, with surge in popularity of dynamic languages > like Ruby, Python, etc., I've seen several arguments put forth in favor of > dynamic typing, and gradually I've always found there was a /subtle/ > parallel with the arguments and reasons put forth for > libertarian/anti-authoritarian/anti-corporate ideologies. > After seeing this talk, I guess it's not so subtle after all... ~_~' > > > Let me offer my thoughts on this. I don't think his argument is > fundamentally rational. And I don't just mean wrong or illogical, I mean > /irrational/: it is driven by an emotional bias of something not related > to programmer productivity, which is what the discussion should be about. > And I think his opinion is somewhat generally representative of many > dynamic language proponents. > > What I think is happening is this: These people, if and when they program > on languages with static typing, they get annoyed by some (or all) of the > aspects of static typing. That's normal so far, but now the problem is > that while some of this annoyance may be driven from a genuine questioning > of whether static typing is worth it or not (in usefulness and > productivity), the rest of the annoyance is instead driven by an external > emotional factor: if the language doesn't let you do something that it > could easily let you do, then it is perceived as a "restriction of your > freedoms". The programmer makes an emotional connection to personal issues > unrelated to the field of programming. Another variant of this emotional > response in this situation, and probably a much more common one, is not > about political ideology, but rather the programmer perceives the language > restriction to be part of a corporate culture that says that programmers > are not smart enough to be fully trusted, and they need to be controlled > to make sure they don't do stupid things. In other words the language > thinks your are a dumb monkey who needs to be kept in line. Java is the > poster child for this mentality, not only due to the language itself which > is perceived to be simplistic, but also due to Java's strong association > to the corporate and enterprise world. In a less extreme view, it is not > about controlling stupidity, but controlling creativity (a view popular > amongst "artist"/"painter" programmers). So here the programmers are not > dumb, but still they need to be kept in line with rules, constraints, > specifications, strict APIs, etc.. You can't do anything too strange or > out of the ordinary, and the language is a reflection of that, especially > with regards to restrictions on dynamic typing (and other dynamic stuff > like runtime class modification). > > Unfortunately this emotional response is often not fully conscious, or at > least, it is not clearly expressed to others by the underlying programmer. > And once this happens, _everything is lost from the beginning, in terms of > trying to have a sensible debate._ Because from now on, these programmers > will use half-baked arguments to try to justify their preference of > dynamic languages. The arguments will be half-baked because they will try > to argue in the area of effectiveness (programmer productivity), yet the > main reason they like/dislike the language is the attitude of the language > creators and/or community. (Interestingly enough, an incredibly similar > cognitive-dissonance driven fallacy happens in discussions of actual > political ideologies) > > (Note, I'm not saying this is the case with all programmers, or even most, > of the proponents of dynamic typing. In particular, nor I am saying it's > the case with Ary :p ) > > > BTW, for a while I was quite okay with this talk, because the author > seemed to make clear what the liked about Ruby was the underlying > attitude. He mentioned the language design goal of "making the programmer > happy". He mentioned all those quirks of the community like the 'second' > property, the 42 one, the cheerleaders at the convention, etc.. But then > he made those comments about how static typing is there in Java and other > languages because it is thought programmers are too stupid to be able to > handle things otherwise (don't remember his exact words), or even worse, > the comment/point about how many programmers in the audience made a bug > because of not specifying a type... And from that point it was easy to go > downhill, and indeed the talk did. Although I am happy for him making that > explicit parallel with political ideology, it illustrates my point very > well, even if not all Ruby developers would agree with him 100%. > > > Note that all of what I said above is a comment about the nature of the > discussion of static vs. typing. I didn't make an actual argument for or > against static typing (in case you were thinking this was the intention). > I won't do that now, I'll just say that, not only I am a long-time > proponent of static typing, in the last few years I've become a proponent > of *even more* static typing. But done in a smart way of course. >
*Very* interesting observation.