5 ms·
"""The actor model has no direct notion of inheritance or hierarchy, which means it is time consuming and confusing to program actors with trends of common beha
by marshallp 17y ago
"""The actor model has no direct notion of inheritance or hierarchy, which means it is time consuming and confusing to program actors with trends of common behaviour."""
Mozart/oz allows you to easily implement actors which also have OO inheritance.
Generally, many superior programming paradigms (logic, constraint, functional, concurrent) have been ignored by the computing industry which has probably cost it billions of dollars in lost productivity.
- phaedrus 17y agoThe Io language has both actors and prototype based OO inheritance. Asynchronous messages are implemented using futures. Furthermore: ""When an actor requires a reply message from another actor, it is known as an insensitive actor, and will not process any further messages in its mail queue until it receives that reply."" Why must this be so? In Io, the same objects/actors can run other coroutines while waiting on a message. Just because no language happened to implement all of these in the 1970s and does not mean no language could have implemented them. In the concluding paragraph the author does go on to say that it is now possible to do all these, but I disagree with his implication that it is advancements in technology that made it happen. A more likely explanation is simply that programming languages are notation, advancements in notation do not follow the exponential curve of Moore's law, and it simply took this long for people to think of combining all these concepts in one notation.
- andreyf 17y agoBillions? I think you're underestimating by several orders of magnitude.
- dons 17y agoSeems reasonable. Null pointers are rumored to have cost billions in waste and failures. And they're trivial to fix with a little bit of static typing.
- chancho 17y agoNot sure I would call it "trivial." You just trade your segfault (or NullPointerException) for a pattern match error. Although that little bit of static typing would probably have dealt with the vast majority of expensive null-pointer bugs.
- kscaldef 17y agoThe pattern match error can be detected at compile time. The NPE is not.
- Niten 17y agoWell, trivial in relation to a company rebuilding its product on a new programming language or paradigm.
- camccann 17y agoNot if you enable compiler errors for inexhaustive matches. Are there any compilers for mainstream languages that can flag all possible segfault/NPE locations as errors?
- wlievens 17y agoThat's probably an intractable problem.
- wglb 17y agoRegarding billions of dollars in lost productivity, and having done ten years in an enterprise, I don't think the large expenditures (called spend in the jargon) can be attributed to language choice. I think you need to look a lot deeper than that, particularly to the culture of the organization. One factor that prevents programming language choice having a deep impact is the pervasive cultural allergy to programming. This results in not really seeking out or nurturing high-productivity programmers and programming efforts. An additional example of that symptom was an article posted here in the last couple of weeks that said effectively "To improve your IT career, learn to negotiate with vendors." This is to me is a problem orthogonal to the choice of language or development practice. For another take on this, consider all the interviews in Coders at Work. These are at the top of list of productive programmers of today. Some of them wrote in C, some despised C++ and C, none were methodologists.
- deleted 17y ago[deleted]