Going beyond JavaScript and Actor-Based Programming: an Interview with Douglas Crockford
JavaScript is one of the most popular programming languages in the world, but what lies beyond its current capabilities? We sat down with Douglas Crockford, a renowned computer programmer and author, to discuss the future of JavaScript and the potential of actor-based programming.
Crockford has been a key figure in the development of JavaScript and has written extensively on the subject. He has also been an advocate for actor-based programming, which is a paradigm that treats actors as the universal primitives of concurrent computation. In other words, instead of thinking in terms of threads or processes, the actor model encourages developers to think in terms of individual entities (actors) that communicate with each other through messages.
When asked about the limitations of JavaScript, Crockford expressed his views on the need for more powerful and expressive programming languages. “JavaScript has come a long way since its inception, but there are still areas where it falls short,” he explained. “We need to go beyond the traditional paradigms of programming and explore new models, such as actor-based programming, to unlock the full potential of software development.”
Actor-based programming has been gaining traction in recent years, with languages such as Erlang and Elixir leading the charge. These languages offer a fresh perspective on concurrency and fault tolerance, and Crockford believes that JavaScript could benefit from adopting some of the principles of actor-based programming.
When asked about the future of JavaScript, Crockford emphasized the importance of continual evolution. “JavaScript is a powerful language, but it’s not without its shortcomings. As technology continues to advance, we need to constantly reevaluate our programming models and adapt to the changing landscape,” he said.
In conclusion, our interview with Douglas Crockford shed light on the potential future of JavaScript and the role of actor-based programming in shaping new programming paradigms. As technology continues to evolve, it’s clear that there is a need for more expressive and powerful programming languages, and actor-based programming could be the key to unlocking new possibilities in software development.
A couple thoughts:
First, does he know that the Pony programming language exists? It’s, by far, the purest actor-oriented language in existence today. If you don’t grok actors but want to, Pony is the best place to start.
Second, it’s sad that he typically presents actor-oriented programming in a networked context. It is also hugely helpful on a single machine with many CPU cores, especially when your language has “reference capabilities” built into the type system. Ref caps free the actor model from messaging constraints such as the need for messages to be immutable or copies.
I love the proviso in description of of functional languages as "not gettting sloppy with mutation" and I also agree that there are circles in functional programming which are a bit too precious by half with the concept. However there is a form (in Elm and 'Elmish' in F#) where the immutable "model" maintains state and simply re-writes it as the state is updated. That may on its own be a bit too precious by half – gaining the benefits of mutability without mutable compute structures in memory. But it does have the benefit of preserving the "inner loop" of testability afforded by 'pure' functions and allowing dispatches out to true impure functions that manage the mutable state outside of the MVU loop.
javascript just needs to die off.. blazor and wasm need to be standard
I'm so glad I stumbled upon this video. I've had a loose idea in my head for the past two decades about the future of computing, and it looks exactly like the Actor system described by Crockford. I had no idea the concept was even formally defined, because I don't spend a lot of time researching theoretical systems.
Combine the notion of actors with a "work communication protocol" similar to smart contracts, and there's the possibility for massive, distributed, peer-based computing systems that use open marketplace negotiation principles to accomplish some truly amazing things! Such a system under the guidance of an AI control network could be confusing beyond human comprehension, but orders of magnitude more efficient than any scheme we could design ourselves.
So… Elixir, then? 😏
If you like the idea of actors passing messages in a dynamic language with concurrency baked in, you’re going to love Elixir. It inherits all of the features of Erlang with a more accessible syntax. 17:05
I'm interested how such message would look like. And how different actors find common language to speak. Wouldn't it need to specify in every program it's own API and modifying all existing APIs
like translating every existing languages to new language and without standard and adoption every programmer would build own language bridge
but i guess it's inevitable and the same as learning curve in everything new
that's why this lazy generation prefers groupthink and building new things on top of agreed least bad generally accepted thing being JavaScript
Is anyone working on a replacement now?
I think paradigms are a trap.
👉 "promosm"
elixir or akka ?
Great interview that allowed me to know more about actor-based programming. Thanks guys 🙂 I'll surely also watch the other video on JSON-unify 😉