I remember several years ago when differentiable programming was an object of interest to the programming community and Lattner was trying to make Swift for Tensorflow happen[1].
I'm of the opinion that it was ahead of its time: Swift hadn't (and still hasn't) made enough progress on Linux support for it to be taken seriously as a language for writing anything that isn't associated with Apple. However, as a result, Swift now has language-level differentiability in its compiler. I'd love to see Swift get used for projects like this, but I suppose the reality of the matter is that there are so many performant runtimes for 2D/3D physics that there just isn't much of a need for automatic differentiation (and its overhead) to solve these problems. The tooling nerd in me thinks this stuff is fascinating.
I really wish Linux swift was a thing. I’m a relatively new cs person, I’m going to grad school and doing interdisciplinary work where I am making all sorts of neural networks. So by default my language of choice right now is Python. But I’d love to get sharp at Swift! I like the syntax, I like how I could use it to write apps for my phone, I like how it’s fast.
But my daily driver is a system76 Linux box running PopOS… that’s not a swift friendly environment. I guess the best compromise I’ve found for stuff I want to run in both places is Pythonista? Which is fantastic to be clear, but iOS is really constrained…
I want the ML infrastructure of Python, the speed of C and the ability to write fast cross platform apps in a syntax that isn’t confusing violence… Save me programming language nerds.
As user rdedev mentions, check out Mojo. It feels very much like it's trying to address a lot of your needs. The main compromise is that it appears a large portion of the toolchain is closed-source at the moment, and it appears that they're trying to get developers onto their enterprise offering, whatever that entails. Here's the link to Mojo: https://www.modular.com/max/mojo
He moved on to mojo right? Pretty sure the wants to implement what he had in mind using mojo without being hindered by what apple wanted to do with swift
Ehh, there’s a lot that goes into it. Just because a physics engine is differentiable doesn’t mean that its gradients going to be useful. For example, if you look at Brax/Mujoco in JAX, the gradients generated by Mujoco are absolute garbage if you’re trying to train a robotics controller, but the more video-game like engines give pretty good results (see https://github.com/jiawei-ren/diffmimic).
Comments
I remember several years ago when differentiable programming was an object of interest to the programming community and Lattner was trying to make Swift for Tensorflow happen[1].
I'm of the opinion that it was ahead of its time: Swift hadn't (and still hasn't) made enough progress on Linux support for it to be taken seriously as a language for writing anything that isn't associated with Apple. However, as a result, Swift now has language-level differentiability in its compiler. I'd love to see Swift get used for projects like this, but I suppose the reality of the matter is that there are so many performant runtimes for 2D/3D physics that there just isn't much of a need for automatic differentiation (and its overhead) to solve these problems. The tooling nerd in me thinks this stuff is fascinating.
https://github.com/tensorflow/swift
I really wish Linux swift was a thing. I’m a relatively new cs person, I’m going to grad school and doing interdisciplinary work where I am making all sorts of neural networks. So by default my language of choice right now is Python. But I’d love to get sharp at Swift! I like the syntax, I like how I could use it to write apps for my phone, I like how it’s fast.
But my daily driver is a system76 Linux box running PopOS… that’s not a swift friendly environment. I guess the best compromise I’ve found for stuff I want to run in both places is Pythonista? Which is fantastic to be clear, but iOS is really constrained…
I want the ML infrastructure of Python, the speed of C and the ability to write fast cross platform apps in a syntax that isn’t confusing violence… Save me programming language nerds.
As user rdedev mentions, check out Mojo. It feels very much like it's trying to address a lot of your needs. The main compromise is that it appears a large portion of the toolchain is closed-source at the moment, and it appears that they're trying to get developers onto their enterprise offering, whatever that entails. Here's the link to Mojo: https://www.modular.com/max/mojo
He moved on to mojo right? Pretty sure the wants to implement what he had in mind using mojo without being hindered by what apple wanted to do with swift
Ehh, there’s a lot that goes into it. Just because a physics engine is differentiable doesn’t mean that its gradients going to be useful. For example, if you look at Brax/Mujoco in JAX, the gradients generated by Mujoco are absolute garbage if you’re trying to train a robotics controller, but the more video-game like engines give pretty good results (see https://github.com/jiawei-ren/diffmimic).
That is fascinating!