| > I like differentiable programming a lot, but can anyone explain the motivation for Swift as their language of choice for this? Back in January, Jeremy Howard (of fast.ai fame) wrote up a blog post talking about why he was exploring using Swift for this purpose: https://www.fast.ai/2019/01/10/swift-numerics/ The post is quite in-depth; but just to give a brief take on other potential languages: 8<--- Here’s my personal view of some languages that I’ve used and enjoyed, but all of which have limitations I’ve found frustrating at times: Python: Slow at runtime, poor support for parallel processing (but very easy to use) C, C++: hard to use (and C++ is slow at compile time), but fast and (for C++) expressive Javascript: Unsafe (unless you use Typescript); somewhat slow (but easy to use and flexible) Julia: Poor support for general purpose programming, but fast and expressive for numeric programming. ( Edit: this may be a bit unfair to Julia; it’s come a long way since I’ve last looked at it!) Java: verbose (but getting better, particularly if you use Kotlin), less flexible (due to JVM issues), somewhat slow (but overall a language that has many useful application areas) C# and F#: perhaps the fewest compromises of any major programming language, but still requires installation of a runtime, limited flexibility due to garbage collection, and difficulties making code really fast (except on Windows, where you can interface via C++/CLI) |
Can’t understate this enough. Ultimately there is a trade-off being made between end user applications and numerical computing. Julia is surely superior when it comes to numerical computing. It has a super scientific stack and multi-dispatch means it is easy to mix and match these.
Of course there is no reason why Julia can’t evolve a similarly good ecosystem for webapps and other end user front ends. It is after all a _general purpose programming language_ which happens to have native numerical support.