4 ms·
One such "implementation language" as you call it is data-oriented programming (not to be confused with data-oriented design, which is used in game development
by KrugerDunnings 4y ago
One such "implementation language" as you call it is data-oriented programming (not to be confused with data-oriented design, which is used in game development and sort of has the same idea but different). DOP is build around the idea that your data object are just hashmaps and that you don't translate them to "real" objects. Like a record from a database or the response of a REST API is just a hashmap. Then you just have a transformations between these objects. The idea sort of sounds horrible because you are told not to do this but when done "the right way" it is a very flexible way to organise application. I think typescript can help with its opt-in approach to typing. Clojure has also explored much of the same idea and has optimised data structures for this. Yehonathan Sharvit has given some interesting talks about this and published a book about it[1][2].
Anyway I thought it was sort of ironic that the idea is this good because it does the thing everyone tells you not to do (hashmap all the things), but now that someone has written a book on it you have at least the air of respectability.
[1] https://www.youtube.com/watch?v=Vz9rkr_p3Ts https://www.youtube.com/watch?v=Vz9rkr_p3Ts
[2] https://www.manning.com/books/data-oriented-programming https://www.manning.com/books/data-oriented-programming
- sirwhinesalot 4y agoIt's unfortunate that this idea shares a name with the somewhat unrelated Data Oriented Programming (focused on performance and cache utilization). That said, I very much believe in the value of values. Data should have no associated behavior or have a "place" in memory, the place and the behaviour are secondary. That's why, ironically, "Manager" objects are the best type of object you can have, contrary to OO best practice, because they don't own the data, they just provide a place and behaviour for a particular usage. The idea of "everything is a hash-map" is also possible in statically typed languages to some extent using row-polymorphic structural types. OCaml and Elm or Koka are great examples.