Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> It doesn't really matter what the dissertation says. Because we don't follow dogma. REST has evolved.

No, "REST" has devolved. REST from the original dissertation is more flexible than any "REST level-X" APIs you'll see in the wild.



A similar case would be OOP. The original idea was broader and more dynamic. But OP has a point: the adoption of these things are useful even if they move away from the original core idea. We should revisit these original ideas and perhaps learn again from them. Sometimes there are things that wasn’t adopted, something we missed, that we can now use to solve problems in a more specific context.


> The original idea was broader and more dynamic.

No, it wasn't. The original idea of objects in languages like Simula was what you would later find in C++ and Java: A "this" pointer and a vtable, essentially.

Only later did languages like Smalltalk take the "dynamic" part to the extreme, with their "everything is an object" and "procedure calls are messages" philosophy. Those ideas were not adopted broadly, because they aren't good in general, they have severe trade-offs.


Right, I was referring to the ideas around Smalltalk.

Some of them I find quite interesting, not usually discussed, such as dataless programming, where you program against an abstraction. This is very widely considered a good style in OO today. Go and Rust specifically with their interfaces and traits. Another, more subtle one would be Clojure, which seems to be paradox because it is a data driven language on the surface.

Message passing was also more widely adopted in different forms that are not considered/named OO but carry similar semantics.

The everything is an object idea can be found at least to a high degree in dynamic languages like Ruby, Lua and JS.


> The everything is an object idea can be found at least to a high degree in dynamic languages like Ruby, Lua and JS.

I think we're starting to come full circle there, with static type annotations and JITs optimizing with "hidden classes".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: