4 ms·
Jonathan Blow: “C++ is a weird mess”
- obl 8y agoJai seems like an overall nice design, conservative and practical. I certainly hope it does well. If I had to ask for one language feature for game-related code, it would be a compiler backend targeting the various shader "ISAs". It should be relatively easy since the exposed architecture by the APIs are quite high level. It would be useful, if only to make sharing data layout between the GPU & CPU less annoying (padding float4 slots by hand, sigh ...), as well as constants and other stuff. Especially as modern rendering techniques are more and more compute shader heavy (tiled/clustered shading etc) we could definitely use some nicer high level language features in there instead of the usual preprocessor contraptions.
- shawn 8y agoIf I had to ask for one language feature for game-related code, it would be a compiler backend targeting the various shader "ISAs". It should be relatively easy since the exposed architecture by the APIs are quite high level. It is pretty easy to write a Lisp that does this. But for now, glslify seems to simplify things. https://github.com/glslify/glslify https://github.com/glslify/glslify
- db48x 8y agoI've not used it, but from the videos I've seen Varjo (https://github.com/cbaggers/varjo https://github.com/cbaggers/varjo) looks like a good one.
- olliej 8y agoI feel any article on a new language should have at least a partial spec and preferably at least a rudimentary interpreter or compiler. Otherwise what’s the point of the article? Especially when it’s lobbing around things like 50% win for instance. The only actual information I can find about it is videos, which is kind of useless.
- erikpukinskis 8y agoI am a little disappointed he hasn’t released the source, but I am also sympathetic. He wants to be free to change major things about the language while he’s designing it, and that’s harder if other people are using it. That said, if you want to know what Jai is about, I recommend starting from his first video: https://youtu.be/TH9VCN6UkyQ https://youtu.be/TH9VCN6UkyQ The first couple dozen videos are all pretty dense, with him presenting the basics of the language pretty efficiently. (His more recent vids are more like development vlogs) Yes, videos are slow, but for me I don’t think I would’ve appreciated his design choices without all the context. I also found watching his process for inventing the language extremely instructive, just as a programmer. It has substantially formed my own process and thinking over the last few years.
- olliej 8y agoI don’t even care about the source, and like I said video presentations about a language aren’t meaningful to me - it’s super easy to not actually touch on any of the things that are actually hard problems in your presentation if you don’t actually provide the full information. A lot of language decisions are the result of how you handle the edgecases, and how they interact with the rest of the semantics of the language. When thought isn’t given to that you get wonderful things like == in JavaScript (the absurd appearing behaviour is completely consistent with the internal semantics of the language - the weirdness is the result of other language features happening during evaluation)
- geezerjay 8y ago> He wants to be free to change major things about the language while he’s designing it, and that’s harder if other people are using it. I don't se why, if proper versioning is implemented.
- Doxin 8y agoYou'd have to implement proper versioning for one, which takes nonzero effort. Furthermore people being people, they'll complain about breaking changes regardless.
- stcredzero 8y agoI would ask: Why not Rust?
- naikrovek 8y agoIf you watch his videos, he explains it a few times. Same with Go, D, and several others over the course of all of those videos.
- stcredzero 8y agoI'm working on a "serverless" system that lets one define a series of (mostly) pure functions to define a persistent MMO game. It will have live code updating. (I can already migrate instance state from server process to server process without the client missing a beat.) I'm using Go.
- steveklabnik 8y agoSpecifically, he says he doesn’t like “big idea” languages, and says that Rust is one of them.
- stcredzero 8y agoJust spouting off the top of my head: How about a C-like language with refcounts for memory management built around the idea of a game loop? Reference cycle detection could exploit the game loop. Refcounts could be suspended for "unsafe" sections for performance purposes.
- peterashford 8y agoMy understanding is that reference counting kills cache locality
- geezerjay 8y ago> Specifically, he says he doesn’t like “big idea” languages, and says that Rust is one of them. If that's the full scope of his technical argument then I don't see why it's a good idea for anyone to waste their time reading up on his vaporware language. I understand why the author feels the need to promote his work but his promotion angle and lack of technical arguments speaks for itself.
- EliRivers 8y agoPeople think a programming language should be a complicated ecosystem Who thinks that? Everyone I work with wishes for simplicity. Sure, we recognise that there are tradeoffs and constraints, but simplicity is prized above complications.