|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> What comes after Object Oriented?
> I mean, we started with assembler, then libraries, then HLLs, then portable
> HLLs, then interpreters, then structured programming, then a whole bunch of
> stuff that nobody really picked up (workspaces, LISP, self-modifying code,
> sophisticated macros, functional programming, etc), then Object Oriented,
> then .... nothing.
> Why has programming language development been functionally stalled for 30 years?
I don't see it that language development has been stuck with OOP for 30
years.
Instead, what has happened is that practical software development has
taken what's good about OOP (namely modularity) and moved a bit away from
what resulted to be not-so-useful-after-all (namely inheritance, dynamic
binding).
If course many/most languages support some form of inheritance and
dynamic binding, but practical software development uses those tools
a lot less than was expected at the height of the OOP craze. They were
not, after all, the panacea of programming, nor are they very well
suited for the majority of problems.
Modularity, on the other hand, is at a completely different level of
software design. It is an uber-tool which just works and is more or less
mandatory for any program of a significant size to remain manageable. The
larger your program is, the more important modularity is. I'd say modularity
is an essential programming design principle which transcends any single
programming paradigm. OOP is very heavily based on modularity, which explains
why it's so popular. Just the modular part of OOP makes large programs
manageable and maintainable.
But otherwise I have seen a trend in programming design to move a bit
more away from pure OOP and more towards dynamic programming. Also
functional programming is trying to raise as a viable design strategy,
maybe because modern functional programming languages have quite a lot
of dynamic programming style in them (although I have my own doubts about
whether it will ever truely become mainstream).
Dynamic programming could be, rather roughly, seen as a "more versatile
way of doing what inheritance and dynamic binding were supposed to do".
Where OOP (sans modularity) falls short, dynamic programming often offers
a much easier solution.
Of course OOP will never die. It's just too useful for many situations.
(For example GUI programming in modern windowed systems is a situation
where OOP seems to be just perfect. It's like OOP was invented to solve
the GUI programming problem in the best possible way.) It's just that its
purest form has fallen a bit out of fashion.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |