never not correct, except sometimes
I got tweaked by this guy. I think he makes some valid points, and he made me think about what I felt about dynamic languages. So I've kind of been on a search to prove to myself whether my sense of Smalltalk, etc. is correct or not. I have been known to delude myself into thinking something is the cat's meow, when in fact it's good, but not great. I've been writing up my own programming problem as an exercise to compare Smalltalk to C#, and then I'll analyze the qualities of both. I think Kata 4, which is another link in the chain from what you link to, could be another one to try.
I need to spend some time on the Katas. That link's funny, this is a great sentence:the predictably effervescent enthusiasms of the [Ruby] fan boys frothed and bubbled their way around the urinal of developer discourseHe probably needs to lighten up a bit, though. The Rails culture has its brainless side, but it's still very good to code in.
I agree with some of his criticisms of the things he quoted. I think the claim that programs written in dynamic languages are 80-90% smaller than those of conventional languages is an extreme one. I mean, you can get a 1:5 gain in some areas of a program, but not all. I'd say 50% smaller would be a decent estimate.I think some of the Ruby quotes were overly exuberant as well. I can relate to them, but I agree with his criticism that when one has to make a decision about what technology to use, you need to put the passion aside for a moment and use some metrics to see what you'll really gain out of it.The parts that tweaked me were where he said that dynamic languages don't really save you time or in lines of code. I thought his doubts about this brought up good questions in my mind, since my initial impressions of Smalltalk were that it does produce more "bang" per line of code. I realized I hadn't really proved that to myself.An advantage of most dynamic languages he didn't even cover was you gain more powerful constructs.
Hi Ramon. I agree that Hacknot (the author of the article I referenced up top) doesn't get the advantages of dynamic languages. He prefers the security that a strongly typed language provides. I agree that it can start feeling like a straightjacket after a while. That's why I find this stuff exciting. I think there are some inherent assumptions in these languages. You have to understand what they are in order to be effective in them.This is just me speculating, but I think the reason Hacknot doesn't see any advantages to dynamic languages is 1) he's inexperienced in them, and 2) he tries to use them like he would a strongly typed language, or tries to get them to act like one (which you can do, but it requires more code). He admitted he had written "a few utilities" in them. I doubt that's going to show their true power.I disagreed with his tone. He gave no credence to dynamic languages whatsoever. He doesn't see the point. He conflates "intent" with a programmer knowing exactly what types a previous programmer's code would input and output. He says he believes in Design by Contract, which is a fine notion. It was pioneered in the Eiffel language, which is strongly typed from what I understand. I don't know what he's been programming in, but before templates came along in C++, and generics came along in .Net and Java, programmers frequently had to deal with not knowing what they were getting out of a container, because it would just come back as "Object" and had to be typecast.Nevertheless, I thought he made some good points, and his criticisms brought up some good questions.
Note: Only a member of this blog may post a comment.