Thank you. Where do you think I should publish it?
HN user
viebel
DOP is a good fit for building information systems
DOP is not the same as DOD [1]
1: https://blog.klipse.tech/visualization/2021/02/16/data-relat...
Don't confuse Data-Oriented Design with Data-Oriented Programming[1]
[1] https://blog.klipse.tech/visualization/2021/02/16/data-relat...
Ballerina team told me that in the future Ballerina will not be hosted on JVM.
Will do next time. Thanks for the tip!
2017 but still relevant in 2022
Today, we are celebrating the first birthday Partying face of "Data-Oriented Programming".
What a journey since the first MEAP version of the book has been released on January 30, 2021.
My book "Data-Oriented programming" is #1 Manning best seller for 2021.
The book formulates the principles of an approach to data that reduces complexity and illustrates how to apply them in a statically-typed language like C# or Java or in a dynamically-typed language like JavaScript, Python or Ruby.
Here are the 4 principles of Data-Oriented Programming:
1. Separate code (behaviour) from data
2. Represent data with generic data structures
3. Data is immutable
4. Separate data schema from data representation
It might sound like Functional Programming but if you look closer at the principle list, you will notice that principles #2 and #4 are not part of FP.
For those who already bought the book or are interested, I released the book's source code to https://github.com/viebel/data-oriented-programming. The publication is expected for March 2022.
If you guys aren't sure about buying the book, contact me on Twitter @viebel, I'll DM you a preview.
I totally agree
In most languages, there are libraries that provide efficient implementation of persistent data structures.
What languages do you use?
Could you elaborate about the complexity involved in using immutable data structures in your use case? Is that a performance concern?
After 18 months of development, I am glad to announce that I finally completed the first draft of my book: Data-Oriented Programming.
I wanted to thank all the people from the Clojure community that helped me in the thinking and the writing process.
The book is my attempt to formulate the underlying principles of Clojure approach to data and illustrate how to apply them in another language.
Here are the 4 principles of Data-Oriented Programming:
1. Separate code (behaviour) from data
2. Represent data with generic data structures
3. Data is immutable
4. Separate data schema from data representation
Lucidchart
Here are a few things my editor provided me: 1. A process for writing the manuscript 2. Contacting external reviewers 3. Marketing 4. Feedback on a monthly basis
Totally agree. Especially in READMEs
I don't really have a scientific editor at Manning. I have: 1. a TDE (Technical development editor) what behaves more like a project manager and I mentioned them in lesson #47 2. A technical reviewer that makes sure the content is clear for a MQR and I mentioned them in lesson #45 3. A tech proof reader that reviews each and every code snippet when the manuscript is complete A few more...
If I ever write another "things I learned ..." I would definitely include the three items that you mentioned.
Author here: More challenge than fun!
Author here: In my book, I used mind maps to let the readers visualize a high level summary of a chapter. Here is an example of such a mind map: https://twitter.com/viebel/status/1469187345580793860
Could you give some examples?
That's exactly what I had in mind when I wrote the article. Thank you for formulating it in such a clear way.
Author here: I totally agree with what you wrote and I am taking it as a compliment.
This method of debugging is unique to Clojure. It relies on data immutability and a powerful REPL. Are there other languages where such an approach is applicable?
I really like this story. The idea that everything is written inside one of the books of this library is mind blowing!
Sometimes, I could not resist the temptation to post again one of my blog posts. That might be the reason of my shadow-banning.
It used to work but I broke it on my own blog. You know, the shoemaker goes barefoot!
Miguel Liezun used yaegi https://github.com/traefik/yaegi compiled to WASM to let Klipse evaluate Go code snippets in the browser
What do you mean by "existence dependencies"?
I didn't choose the term "Data-Oriented programming" It was used by Cognitect folks to promote clojure [1] and actually it was coined by Eugene Kutznetsov in 2004 [2]
As you know, naming is one of the two hard things in programming.
[1] https://www.cognitect.com/blog/2016/6/28/the-new-normal-data... [2]: https://adtmag.com/articles/2004/08/05/data-integration-a-li...