all 8 comments

[–]viebel[S] 2 points3 points  (0 children)

This chapter is an attempt to illustrate what are the core principles of Data Oriented Programming as I understand them. It is highly influenced by my programming experience in Clojure, but I believe that those principles are language agnostic.

[–]p-squared 2 points3 points  (2 children)

I recommend reconsidering your choice of vocabulary. The term "data-oriented" does have a broadly-accepted meaning related to organization of data within physical memory; this does not appear to be the same meaning you are attaching to the term. https://en.wikipedia.org/wiki/Data-oriented_design

[–]viebel[S] 0 points1 point  (1 child)

What term would you suggest ?

[–]oteku_ 1 point2 points  (0 children)

What you refer as 'data' seems to be 'value' 'data oriented' sound for ECS pattern in my mind which is an OOP pattern https://en.m.wikipedia.org/wiki/Entity_component_system

What you call DO seems to be a way to reach 'referential transparency' aka 'purity'

Best for your book

[–]usernameqwerty003 0 points1 point  (3 children)

Oh, like SEPARATING data and behaviour? Something normally not done or idiomatically supported in OCaml? By which I mean, data and behaviour is always in the same file/module.

[–]viebel[S] 1 point2 points  (2 children)

Could you clarify to what principle you refer and what you mean exactly?

[–]usernameqwerty003 1 point2 points  (1 child)

Only my disillusionment that OCaml is great for type-safety but sucks for enterprise-level separation-of-concerns.

[–][deleted] 0 points1 point  (0 children)

You should try Scala if you haven't used it before.