Are people here generally aware of Cell lang? I se...
# thinking-together
d
Are people here generally aware of Cell lang? I searched on here and saw only a couple comments about it (in the history that I can see). I found it last night while searching for langs with reactivity built-in. It references stuff that I'm only familiar with from this community: Out of the Tarpit paper, importance of relational model outside SQL. http://cell-lang.net/
👍 4
😍 1
s
And the Cell compiler is implemented in cell! https://github.com/cell-lang/compiler/tree/master/src
d
"Out of the tar pit" is an essential paper: http://curtclifton.net/papers/MoseleyMarks06a.pdf
Rich Hickey's "Simple Made Easy" talk is related, and is also recommended:

https://www.youtube.com/watch?v=34_L7t7fD_U

The Cell language (and the two presentations I just linked to) fascinate me for what they suggest about how to make programming better, and for what they imply about programming language design.
I'm trying to use these insights to design the Curv programming language. An unsolved issue for me is, what mechanisms should be provided for data abstraction?
I've been using OOP for many years now. I now see OOP practice as a primary source of unnecessary software complexity. The Tar Pit paper provides a lot of backing for my intuition: it mentions State, and Unnecessary Data Abstraction (which is most data abstraction), as common sources of complexity.
The Tar Pit paper makes this amazing assertion: Power Corrupts. When I was young, I thought that I wanted programming languages to be as powerful as possible. When I first encountered Continuations in Scheme, I thought "Wow, this is really powerful!". Of course, continuations are generalized gotos, and today, I think they are a terrible idea.
So now, look at the Cell data model (http://cell-lang.net/data.html). Note what's missing. First, there are no mutable objects, no object references, no pointers. Pointers are the GOTOs of data structures (and remember, Power Corrupts). In the Cell data model, all data is hierarchical. There are no cycles, no aliasing. This limits complexity.
d
I ought to read that paper so I can understand all this better. One thing I want to say: the documentation for Cell is excellent. How did you all find out about Cell? It seems very obscure. I can't even find the creator's name
d
The Cell source code is "Copyright (c) 2017-Present cell-lang", so I think the author wants to remain anonymous.
🤐 1