2 ms·
> That's orthogonal to OOP, isn't it? Sure, you can do upfront design in any language. But you need to have experience to do upfront design. If you're new to p
by brnstz 14y ago
> That's orthogonal to OOP, isn't it?
Sure, you can do upfront design in any language. But you need to have experience to do upfront design. If you're new to programming, you should just hack around.
The other option is to read a Design Patterns book and treat it like religion. This is what happens to many new programmers who start with C++ or Java. You learn the patterns and you apply them everywhere, because that's what you were told to do. Some people like this, but many are turned off right away. I understand the point of things like Java. They make it possible for dozens of programmers to collaborate on a large project without stepping on each other's toes. But all of that abstraction makes no sense to a new programmer (at least one who is not a super intelligent space alien).
I don't see that risk in other programming paradigms, mostly because they are not as popular. But I also think something like functional programming carries a lot less baggage than OOP. It's easier to get the main concept.
Dynamic typing is easier on a newbie. They're just trying to put the parenthesis in the right place. There's plenty of yelling going on already. That said, something like Haskell which is less verbose probably wouldn't be so bad.
- eru 14y agoYes, just hacking around can be useful for beginners. Dynamic typing like Python does (and not like PHP or Javascript) might be ideal for novices. About design patterns: Lots, if not all, of the common design patterns for Java are just workarounds for weaknesses of the language, like lack of proper closures. So more capacity for abstraction would make them less verbose or invisible.