data-oriented-programming 2021-02-18

@mario.giampietri has joined the channel

How would you guys improve the definition of DOP in the article? Currently the definition is:

Yehonathan Sharvit 2021-02-18T21:16:42.021Z

Is the definition clear and accurate?

How could we improve it?

Is it not important to compare it to other paradigms, for instance mentionning the dop claims to separate data and treatment

I guess it is being the data as a value sentence but Im pretty sure it is not clear enough for people who dont know dop already3

@caumond I don’t understand what you wrote about comparison with other paradigms

@ory.band has joined the channel

I think it's helpful to compare to the code as data philosophy in lisp

Since they're related in interesting ways

Could you elaborate a bit @metasoarous?

Well, to me DOP is somewhat two-pronged: • building code around domain data • using data apis in a higher order way to describe things that need to happen or be computed

For the second of these, I think Vega-Lite is a really great example

They are data APIs for specifying data visualizations

So... code as data in a way.

But not necessarily code as data in the traditional Lisp way, where it's a thing that happens at compile time via macros (allowing you to extend the language)

Rather, at run time, dynamically

Imagine you wanted to build an analytics tool with some graphical UI for describing computations that need to happen

How would a Clojurist approach building that?

Well, they'd probably build a data API for describing those computations

And then UI that composes those data structures

So that's the "higher order" sort of thing I'm talking about

And again, the relationship to Lisp philosophy is really interesting and important here

It’s very interesting

But…

I don’t think it’s part of Data-oriented programming

I think that connects though

Because specifying computations as data APIs is fundamentally declarative

Not all declarative APIs are necessary "as data", but I think most (if not all) data APIs are declarative APIs.

I agree

But the way I see it DOP is a guidance of how to represent data and how to manipulate data. Data that comes from the “real” world

Expressing computation logic as data is a different topic

Is it though? Is "computational logic" not part of "the 'real' world"?

I understand your distinction, but disagree that data-driven (or oriented) programming is limited to one but not the other

I think that expressing computation as data is a subtopic of declarative programming. For instance, SQL is declarative but not data.

I think that Prolog also is declarative but not data

Sure, but there is precedence for the idea of data-driven or oriented programming meaning this specific kind of declarative programming

There are plenty of talks out there about this

Are you sure that they call it data-oriented programming

I'm a little biased because my first Clojure book was the Joy of Clojure, which explicitly frames the clojure philosophy this way

There are lot of similar terms to diffrent things

Sorry have to go; my washer is leaking as it so happens

O

O

Ok

Yehonathan Sharvit 2021-02-18T23:50:54.049Z

We can continue later

There are lot of similar terms to diffrent data related paradigms: