Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

ugh, so many downvotes and not a single person to explain why this is "a language for the metaverse" as opposed to being just "a new language"


They are designing and creating Verse to be the scripting language for the Unreal engine, and the game Fortnight. So it is purpose built to drive 3d multiplayer worlds. It will be fun to see how it works out. I think it is cool to see a functional language around a game engine.


> So it is purpose built to drive 3d multiplayer worlds

How ? I can't see anything in here that makes these worlds any easier to drive.


The short answer is Innate parallelism at a far higher degree than most languages.

The longer answer is pure functions applied to immutable objects (or objects held in a transition) can be applied in parallel.

The language is designed in a way to give you that, in a way where it is by default rather than in special cases.

The second part is, it being at a mid point between lazy and not - things will be evaluated as there is processor to do so. So things which can be delayed will be, but if something can be done now, for later, it will be.

The combo of this means you can handle more interactions with entities per second, using the cores available.


> pure functions applied to immutable objects (or objects held in a transition) can be applied in parallel

I have been writing code like this every day using Scala for years.

With frameworks like ZIO (zio.dev) making this trivial to do.

None of which is faster than if I had wrote that code imperatively using say Java. It is definitely easier and safer to write. But performance is about far more than just optimised threading constructs on top of immutable data structures.


Most mainstream programming languages are designed as if we are all targeting 70s von Neumann machines. When applying these languages to e.g. highly distributed or concurrent architectures, they are no longer a good fit. It's great to see at least an attempt at innovation rather than just a Java clone, which is all Google and Microsoft have ever offered so far.


I’ve never seen a program that would magically be better on a distributed architecture if it was written in a different language. Programs run on a single core because they have a single core’s worth of work to do. Autoparallelization, like autovectorization, doesn’t work.


> Autoparallelization, like autovectorization, doesn’t work.

I think concurrency is more of an issue for games and was the example I gave (Haskell's transactional memory for concurrency is a great example of what pure-functional buys you). Nethertheless autoparallism can work, if you again are prepared to accept more constrained declarative languages. Apache Spark is a great example, it offers a constrained functional language with maps and folds, that is autoparallized across a cluster of machines. The research language NESL (nested data parallelism) is even more impressive.


I don’t believe the metaverse will be a browser app; even Decentraland now pushes to a download because it has to do so many real-time operations.

That said, I’ve worked with a few of the Haskell OG team (not directly SPJ though) and if you bring in a functional language designer to work on a project you can bet it’ll start with a new language (I’ve worked on two domain specific languages due to this).

Some of the constraints right now with this sort of program are CPU/GPU bound, so if we they’re building a new I suspect it’s going to focus on concurrency across threads/GPUs to support the high rendering requirements etc and make it easier to work with networking and C/C++ FFI GPU drivers. This is speculation on my part though :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: