4 ms·
> Consider a language like Python. Aggressive duck typing means consistent syntax for different data structures and types. Stuff "just works" without a deep und
by KirinDave 9y ago
> Consider a language like Python. Aggressive duck typing means consistent syntax for different data structures and types. Stuff "just works" without a deep understanding of how it works.
Really? I've never seen such a leaky set of abstractions as Python's collection library. It's ridiculous how very often I find something irritating and the reason behind it is, "This was the first implementation and therefore was crowned 'the simplest.'" That seems to be the pattern in general with Python.
A great example is Python's complex iteration system. You have 2 ways to deal with it; a sophisticated but very limited list comprehension syntax and a absolutely primitive direct object iterator that barely abstracts over a coroutine.
You mention the cognitive cost of deciding what to learn, but this is actually a split responsibility between the language community and you personally. You need to make that call, and it speaks to a broader phenomenon.
> I find it similar to Haskell in this regard. The base level of knowledge to use the language is so high that you pretty much need a book, or a degree, to be able to get started. That's a huge barrier to entry
The thing that's so irritating to me about this argument is that nearly everyone who has learned to program falls into one of two categories:
1. Someone who spent a lot of time self-starting in the core principles of OO and imperative programming.
2. Someone who took a class or read a book to help get those principles down.
Folks offer objections to going back to novice status after they've done it once. But, Haskell and Lisp offer totally alternative programming paradigms, paradigms that mainstream scripting languages have been watering down and implementing in a limited context for years. It's only natural that there is a lot of stuff there. There was a lot of stuff to learn for OO scripting languages like Python!
And yet, the idea of learning these with the same methods new programmers use to learn OO patterns is panned as "unfriendly to beginners." I think in reality it's only unfriendly to intermediates.
- cronjobber 9y ago> Most folks actually object to going back to novice status A good part of that reluctance is entirely rational. There are many dozens of programming languages that might be worth learning based on what communities of current users say about them. But you can't tell if they're really worth investing all over again what you already invested in other languages without, well, investing. It's a lemon market. Sellers know more than you about the true value of the car, err, language, but they have incentive to tell you it's great. Even worse, with programming languages even the most honest sellers might not know how their language really stacks up to the ones you already know because by symmetry they are underinformed too. For example, I tried getting into Smalltalk based on the intense hype coming from the community, but I came to suspect it really doesn't offer that much of an advantage over languages I know better and stopped. But maybe it really is better... I'll probably never know.
- KirinDave 9y agoI don't understand this idea you're putting forth. Well actually both ideas. 1. That there is a high risk here. 2. That the outcome could be bad. Neither of these seem true. I dislike Python the way I dislike wearing shoes that stealing too small, but I don't regret learning it. I regret working in it more and more over time.
- cronjobber 9y agohttps://en.wikipedia.org/wiki/Rational_ignorance https://en.wikipedia.org/wiki/Rational_ignorance https://en.wikipedia.org/wiki/Opportunity_cost https://en.wikipedia.org/wiki/Opportunity_cost https://en.wikipedia.org/wiki/The_Market_for_Lemons https://en.wikipedia.org/wiki/The_Market_for_Lemons
- KirinDave 9y agoNo I'm aware of these terms. I just don't get how they apply to skills acquisition. How does learning a language as part of a professional skills acquisition represent significant risk when the alternative you're proposing is not learning any new concepts at all? Your proposed cost model doesn't work when you're not choosing between N options and rather choosing between selection or no selection whatsoever. You're probably more interested in modeling it as an OSP.
- cronjobber 9y agoI can't find talk about "high risk" in what I wrote. I can't seem to find where I'm "proposing not learning any new concepts at all." You seem to enjoy arguing against figments of your own imagination. I can't help you. Have a nice day.
- KirinDave 9y agoYou too, cronjobber. I apologize for giving you the benefit of the doubt and assuming that you weren't just throwing rocks at lisp and smalltalk and was trying to make an actual point about the cost of education.