Since getting laid off at shopify, I've been tryin...
# devlog-together
j
Since getting laid off at shopify, I've been trying to do a bit more on side projects. I've been streaming building an arm assembler that is serving as the basis for a programming language I want to build. At the simplest level, I want a dynamically typed language that compiles straight to machine code (not aot). But ultimately, I want this to serve as a platform for experimenting with features a lot of languages don't have. Off stream I've been working on my editor, right now learning the bare minimum of shaders so I can play with some effects and think about ways an editor could look and work. If anyone has thoughts or ideas on either of these topics, happy to hear them.
e
can you share a link to where you’ve been streaming? I’d love to catch those, time permitting!
j
I'm definitely still getting the hang of streaming, but its been really fun
e
thanks! I’m excited to check this out! Also, if you are in the US, hit me up if you are interested in gigs with library of congress or potentially NASA — where I currently work has some openings right now. 100% for LOC, and I think some are coming for NASA. Happy to make recs and intros.
j
What are some of the cool features you’re thinking about that most languages don’t have? 🙂
c
Are you building a live shader editing tool, or learning shaders to help build the editor? I'll checkout the stream!
j
@Jack Rusher You know that's a bit open question still. Mundanely, bringing lisp interactive development to a non-lisp language. So the syntax is going to need to allow you to evaluate sub-forms in a nice manner. I also want to bring ADTs to a dynamically typed language (see pyret for prior art there). And experiment with lack of nulls and exceptions (fairly unusual for dynamic languages.) I'd also like to play with controlling determinism for a traveling debugger setup. The tomorrow corporation tech demo definitely is an inspiration for some of those features. More personally, I found working on YJIT just how opaque the internals of languages are in a way I just don't believe they need to be. I'd love to have a language development environment that is graphical and ties deeply into the language. I should be able to see all the machine code generated, all the connections in the call graph, pull up a function in the source and see line for line the code generation. See the stack, the heap, etc. These last two features combined will hopefully make for a nice language dev experience. I have other ideas, but ultimately, I am aiming at a practical, not-super-futuristic language. The dynamically typed language I wish I could code in. Elixir and Clojure are the only "modern" (not from the 90s) dynamically typed languages that have gotten any sort of traction for general purpose programming in recent years. Both of them are parasitic on existing platforms. Why can't we have a greenfield dynamically typed language?
Are you building a live shader editing tool, or learning shaders to help build the editor? I'll checkout the stream!
Why not both? 🙂 Yeah, I'm mostly learning shaders to help build the editor. But I also am going to expose editing those shaders at runtime in the editor.
e
As for thoughts about editor/language — I’m excited by the idea of tightly coupling the two 😳 😬
j
You know, I think there is a lot that makes sense about coupling the two. And I am always tempted in that direction. But I also want an editor I can use for all my coding, and my coding will always be across multiple languages. Walled gardens are nice. But can we get the benefits without all the walls?
e
You ever played with dyalog’s RIDE apl environment?
You can totally write APL without it. But with it it gets so much better.
Wonder if it can be an enhancement, like roller blades on an already fast runner.
Left for uxn is another example. You can write uxntal without it. You can use left with any other text files. But it really sings with uxntal
c
@Jimmy Miller I'll PM you; I have done quite a lot of work on live shader editing; I can probably provide pointers if you're interested.