Live data from Hacker News

Cell Lang: Why yet another programming language?

cell-lang.net

111–120 of 126 posts

Re: Cell Lang: Why yet another programming language?

#111
post #15

I think robust information software (AKA "CRUD" apps, data visualization and interaction etc.) should definitely be built with higher level paradigms, DSLs or a language that provides such capabilities out of the box for these reasons: - principle of least power - can often be talked and reasoned about more easily - lends itself to visualization - can be tested more easily and uniformly - eliminates certain classes o…

> this is kind of already how many are programming in modern FP languages like Clojure (via libraries). Would you have links about this programming style and some of these libraries?

No links. However as clojure dev, typically you build your programs as this one big folding operation. You can stray away from this to a degree (much more than in say Haskell) but in the end most programs are just one call to reduce function with data.

This is something that becomes very obvious when you become more familiar with fp. Yet it was the most surprising/eye opening thing when you are not.

Re: Cell Lang: Why yet another programming language?

#113
post #54

Earlier quoted context omitted.

See also https://www.fluvio.io/

I'm learning so much about a market I'm entering. My company is https://www.adama-platform.com/

Neat! Something, something, Greenspun but Erlang. You should check out Lumen. Not to dissuade you at all, but doesn't making a new language greatly limit who can use your platform? Or was it on purpose so that only frolicking goat angels can fly through the eye of a needle?

BTW, would love to see a higher resolution image of your logo.

https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule

https://github.com/lumen/lumen

Re: Cell Lang: Why yet another programming language?

#114

Earlier quoted context omitted.

I'm learning so much about a market I'm entering. My company is https://www.adama-platform.com/

Neat! Something, something, Greenspun but Erlang. You should check out Lumen. Not to dissuade you at all, but doesn't making a new language greatly limit who can use your platform? Or was it on purpose so that only frolicking goat angels can fly through the eye of a needle? BTW, would love to see a higher resolution image of your logo. https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule https://github.com/lumen/lu…

It does, but it offers some unique advantages as well. One of them is durability maintaining state between async/await calls. That is, the process can bounce and no one notices.

The key challenge that I see is that I should focus less, in marketing, around the programming language and more on the data side.

Re: Cell Lang: Why yet another programming language?

#115
I am in industrial automation and functional safety of machinery, especially complex sequenced machinery like burner management systems, mine winders bulk handling stackers/reclaimers/shiploaders, route sequencing for bulk handling/grain etc and architecturally this is very similar to the point I have gravitated to over 25 odd years of trying to find optimal ways of specifying highly predictable and reliable machine behaviour, with optimal code outcomes strong traceability back to the specification.

Basically state machines, but a little bit more, and a formal way of specifying them.

Eventually I got to the point where I built a package in PyQt that allows formal specification in a regularised way using a form of a "dynamic cause and effects" chart that at first glance looks a little like excel, per state machine. But it for the specification to be executable (so it is also a simulator you test run your code on as you developed your state machine/s to verify behaviour), could generate documentation programmatically and could also effectively directly write export files for the code for the target controller, if desired.

Originally it was a means to fully defined and predictable behaviour, and easily demonstrable traceability of requirements to acode, but it also turned out to be the sweet spot to bridge the world of, say, the combustion engineer who knew the general logic/steps in his mind but did not code, and the systems engineer coding the controller for a BMS system.

The combustion engineer got full control of specifying the desired behaviour and the systems cder only had to worry about implementing exactly what was specified into code for the safety PLC controller of choice. Often there is a large overlap there when the specification is by the traditional english language "crappy narrative" and there are endless TQs and functionality updates flowing backwards and forth.

Then I discovered there is an IEC standard related to distributed real time control architectures, where they are narrowing down on how to best specify and implement such schemes. But one of the core underlying essences is the executable specification, which they do by trying to go down the path of XML and OPC. You might like to check out IEC61499. But they are still working on a lot of details and last I checked there are only a few reference projects where they got it anywhere near right at scale and made it really work, but a workable framework seems to be emerging.

Based on my experience of real time controls, this state based methodology solves a lot of problems of randomly stateful code. For my work, you usually know if you got it right pretty quickly because you iron ore stacker or shiploader or burner system does not misbehave unexpectedly, though there can be latent issues in automation code that only come out in certain circumstances years later, but much less os with state based approach. I'm aware of one case where over ten years later after delivery of some special controllers circumstances lined up and acode deficiency lead to a loss of well over a billion dollars for one of the biggest miners on the planet.

I think Cell lang is really something that could take off if enough people realise what it is and the benefits it might give.

But it needs a slightly different way of thinking about your problems and how to solve them in a way that best fits to the architectural framework that statefulness uses. Some people seem to take to it, some adapt poorly.

Because it lends itself to creating code that is effectively an engine and "configured" with data in the possible languages available on PLC type controllers, I've had some problems with a few ICS engineers who just don't get it and can only see the code as near meaningless.

First time you build a larger dynamic system out a hierarchical state machine arrangement can be a little challenging, but you definitely get the hang of it, UML timing diagrams can be your friend.

But you can end up writing incredibly efficient code for the state machine approach, and for each machine you can only be in one state and only logic related to what state is currently executed and all outputs are a feature of state only (assuming Moore machines are enacted), so troubleshooting can be dramatically reduced as you have effectively encapsulation by architecture.

I look forward to seeing how Cell lang develops, I believe it has many, many advantages it might offer and has only just begun to yield some of the possible benefits. I believe it could also potentially be a new higher level language for real time and distributed controls/automation in the future if the standards committees can see past their nose, and ultimately be the language of choice for such applications, or something like it might be.

Final point, state machines lend themselves well to formal methods, so there is also possibility of a TLA+ transcriber from Cell to allow very painless formal methods verification of things like, all states can be reached, and all states have an achievable exit transition condition, and so on. Real time guys love this sort of shit when it matters (aerospace etc) and really everyone should at some level.

Final wish : I would like to see a an XML interface that allows translation in and out, even if only for a key restricted set of the language, but it doesn't look too hard and could open up a world of interfacing to existing tools of various kinds, a lot of ICS and real time engineers love to exchange interface and functionality data in XML if there systems are organised to use it.

Re: Cell Lang: Why yet another programming language?

#116

I'm going to leave some simple directions for creating and running Cell-o World. The website is verbose and it doesn't spell out blow-by-blow how to do this in "getting-started": 1. Download the Cell compiler from the website and ensure you have a recent enough version of Java installed: 2. I made a copy of one of the example project directories, /send-msgs/, called /hello-world/. 3. Change directory to /hello-world/…

> ensure you have a recent enough version of Java installed

Now we know why TFA thinks clojure is the only lang to innovate wrt state problems :)

Joking aside, I no longer have a JDK in any of my builds and couldn't be happier. Oracle has made the JDK practically into spyware.

Given the success of rust, haskell and go, it seems antiquated to be designing another JVM lang in this day and age ...

Re: Cell Lang: Why yet another programming language?

#117
post #96

> Because there's currently no high-level programming language for writing stateful software that I'm aware of. Wot? Here is how you handle state in a pure functional language like Haskell: update : Event -> State -> State and if you want a return result: update : Event -> State -> (State, Result) and if you can't be bothered to type "State" all the time: Use a state monad (the clue is in the name). I highly recommen…

I think the claim is in regards to the persistence of state. I've dealt with this as I created https://www.adama-platform.com/ A key finding is that the data model needs to handle process failures and upgrades/downgrades. This is why the memory model for Adama is simply JSON.

Where all of these fall over is data migration, which I wasn't surprised to see was missing from TFA. Having a runtime data model that "serializes itself" is lovely until you have to change the model of an existing dataset.

It's why Protobuf is such a complicated mess. It's why ORMs are usually a bad idea. Persistence is just hard over time.

Re: Cell Lang: Why yet another programming language?

#118

Earlier quoted context omitted.

I'm learning so much about a market I'm entering. My company is https://www.adama-platform.com/

Neat! Something, something, Greenspun but Erlang. You should check out Lumen. Not to dissuade you at all, but doesn't making a new language greatly limit who can use your platform? Or was it on purpose so that only frolicking goat angels can fly through the eye of a needle? BTW, would love to see a higher resolution image of your logo. https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule https://github.com/lumen/lu…

Also, https://www.adama-platform.com/i/adama-moderate.png is a better quality image. I paid someone on fiverr to make it.

Re: Cell Lang: Why yet another programming language?

#120

Earlier quoted context omitted.

Neat! Something, something, Greenspun but Erlang. You should check out Lumen. Not to dissuade you at all, but doesn't making a new language greatly limit who can use your platform? Or was it on purpose so that only frolicking goat angels can fly through the eye of a needle? BTW, would love to see a higher resolution image of your logo. https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule https://github.com/lumen/lu…

Also, https://www.adama-platform.com/i/adama-moderate.png is a better quality image. I paid someone on fiverr to make it.

Forever https://web.archive.org/web/20220702210553/https://www.adama...
Post reply on HN