Hacker News new | ask | show | jobs
by adrianN 2521 days ago
I now almost nothing about Dark, but I don't understand why it is necessary to do this with a new language and a new editor.
3 comments

Beause everything is integrated, compiled code roughly means deployed code, they need strong, sound type system and many constructs are not allowed because the way it runs. I don't think there is a way to use threads for example because concurrency is handled above you.

I think importing something (require/import) is referring to deployed code. They blur the line between saved and deployed code. You need to have dedicated language+runtime to support such a different model.

I think their model is roughly - stateless functions only (context/state arrives as input), references (require/import) resolve to hash of ast they import; this hash is deployment "address" of function. In that sense all code is static/immutable/saved/deployed. Every time you import something, you're importing rpc wrapper, ie: 'foo = require('foo')` becomes `Foo = require(hashOf(astOf('foo')))`. I don't know if any of this is correct because there's no documentation, I don't know how they handle things like restarts or is it possible or not to have more than one deployed instances.

It sounds like a business model not a feature. Middle-manning hosting to add a royalty for long term recurring revenue with maximum lock-in.
I remember doing this in Smalltalk in about 2010. Multiple editing one image, which was running live!
I remember doing this in PHP in 2007.

Seriously, if you quint, it sounds like "cPanel + integrated PHP editor for cloud era".

besides second player gaming emotions, how did it turn out? was it value there aside of pair programming?
I only tried it once, and the technology was pretty flaky at the time. I don't think it really went anywhere.

The focus was on the fact that you could have multiple people editing a single codebase at once, rather than on doing it in production. Indeed, you wouldn't have to do it in production, you could work on a shared development image. That was definitely a very interesting sensation, having a whole team working in a single space; like pairing but much more so. Lots of calling out to other programmers to ask them what they thought, or to suggest something. You could all work on parts of an idea at once, so you could try things out quickly. But there was so much overhead in making sure you didn't tread on each others' toes.

This doesn't seem to be the emphasis in Dark at all. In fact, i don't know what Dark's story about collaboration is. It seems to be much more about the instant deployment, and all sorts of sci-fi tooling to make that safe.