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

Julia is an amazing, elegant and beautiful language. It's almost perfectly suited for scientific computing and ML. However, I'm not very bullish on its future given s4tf

Swift can get you 90% of the way there, and that extra 10% can be more than made up the by the efforts of apple, google and other companies (including money, network/clout, kaggle which is owned by google etc). Despite predictions to the contrary, Chris Lattner's departure doesn't seem to have slowed down the project, and more team members from google have been added since.

Swift is rapidly approaching usability on windows with investment from google.

Further, at some point google will facilitate Swift's use for android apps, and then Swift's popularity will skyrocket, and all those developers will be naturally inclined to check out the ML stuff. Even facebook is getting in on the party: https://twitter.com/nadavrot/status/1241150682104606720

In addition, Swift has its own benefits over julia for production and large codebases, such as compilation to small binaries and static typing. Julia doesn't have a good story for either of these (yet?), and chasing down type instabilities in larger code isn't fun.



You mean the future of Julia or the future of Flux? While an amazing accomplishment (that is still on the way of becoming truly mature, just like s4tf), Flux is just one of Julia's current ML libraries, and it definitely doesn't feel like a Rails (or maybe Flutter) situation in which the library is larger than the language. ML isn't even Julia's core target (it just happens to fits extremely well with numerical and scientific processing).

Julia will be just fine even if s4tf somehow steals all the mindshare (especially since a mature differentiable programming library will inevitably serve as inspiration for Flux itself) as the language and target audience is not very similar to Swift's and as such Flux and s4tf will also find different niches (for example one can be more used on high performance scientific research thanks to Julia's ecosystem and focus while the other can focus on mobile deployment of ML models).


If my scenario holds, at some point Swift's scientific computing ecosystem will rival and overtake Julia's.

I don't see the ML ecosystem developing in isolation because there's going to be overlap, especially as more and more code can be differentiated.


Who is going to make the scientific ecosystem? Julia and Python's scientific ecosystems are so strong precicesly because they get domain experts in those ecosystems to write the software they need for their niche.

Machine learning programmers aren't about remake DifferentialEquations.jl or scipy in Swift. I've yet to meet a single scientist from a field outside of machine learning who was seriously excited for swift. This sort of machinery is hard to make and takes deep expertise, I really doubt it'll be made in Swift any time soon. Does swift even have plotting libraries yet?

Swift has a good automatic differentiation story, mostly because it is very focused on machine learning use-cases, has corprate backing and all efforts are on one implementation. However, having only one automatic differentiation implementation has drawbacks. It won't be suitable for everyone.

Julia on the other hand has a gigantic basket of different automatic differentiation tools all of which have strengths and weaknesses. This allows people to choose the right tool for the job and explore a very wide design space, allowing us to find which approaches work best for different circumstances. Our AD machinery is still evolving and definitely has problems, but progress has been fast and really encouraging.

Even if Swift becomes the next Python and eats scientific computing, I strongly doubt this will seriously hamper Julia's community. We've been doing great living in Python's shadow. Julia doesn't need to be the most popular language in the world to be useful or successful.


> Who is going to make the scientific ecosystem?

Google and apple. Apple already is working on a swift-numerics package.

Look at TF python and jax. They've re-implemented chunks of scipy and numpy twice, hired people to work on plotting (altair) etc

And that's with python. Their engineering time will go much further with swift, obviously.


Google and Apple are not going to make a full on scientific ecosystem because they don't have the domain experts or the motive.

Numpy is not the same thing as scipy.

DifferentialEquations.jl in julia is a great example of what it actually takes to make a real, competitive differentiation equation library. The sort of stuff that was built there requires a deep connection to the scientific and mathematics literature. Cash won't cut it.

Another great example that'll resonate with physicists at least is things like ITensors.jl https://github.com/ITensor/ITensors.jl. Apple and Google are not going to make something like that.


It's not JUST google and apple, I'm sure they have enough cash and expertise and will to create enough momentum to attract more domain experts in other areas. Especially once google brain and deepmind start working on things more complex than stacking layers, which is happening now.

In particular, do you have another example aside from DifferentialEquations.jl ?

Neural ODEs are hot enough that something like that could easily pop up in swift.

ITensors is interesting, but that's only one.


> It's not JUST google and apple, I'm sure they have enough cash and expertise and will to create enough momentum to attract more domain experts in other areas.

Maybe, but I'm doubtful. Scientific domain experts flock to languages like Python, Julia, Matlab, R, etc. because they're interactive and allow them to quickly iterate on ideas, query data, produce plots, etc. Swift is not much of an interactive language and is not built around that kind of repl driven experience.

> In particular, do you have another example aside from DifferentialEquations.jl ?

Sure, here's a smattering of high quality packages made by and for research scientists:

    https://github.com/JuliaApproximation/ApproxFun.jl
    https://github.com/BioJulia
    https://github.com/JuliaDiffEq/ModelingToolkit.jl
    https://github.com/crstnbr/MonteCarlo.jl
    https://github.com/chriselrod/LoopVectorization.jl
    https://github.com/JuliaNLSolvers/Optim.jl
    https://github.com/PainterQubits/Unitful.jl
    https://github.com/mcabbott/TensorCast.jl
    https://github.com/JuliaPhysics/Measurements.jl
    https://github.com/Jutho/TensorOperations.jl
There are many many more, these are just the first that came to mind.


JuMP (https://github.com/JuliaOpt/JuMP.jl) for optimization is really nice and I don't think there is an equivalent this good in another language.


Absolutely, that's a nice point.


Apple doesn't care for anything that doesn't work on their OS.

Unless they show to be as committed Microsoft is with .NET Core, Swift will have the same support as Objective-C has had since NeXT days.

As for Google, I still don't believe that they are that committed as well, Chris Lattner left, and SF4T appears more on Reddit and HN comments than on any kind of Tensorflow official communication channels.

If it wasn't for the valiant effort of one single developer not employed from either of them, Swift for Windows wouldn't even exist.

This is how committed both companies are.


Google hired that developer.

"As for Google, I still don't believe that they are that committed as well, "

They have any approximately 10+ person team, many of whom are new hires from apple etc. Even for Google that's a decent chunk of change.


Yes, they hired him, at the end of the race, after he has done everything on his own without any kind of Google support.

On my book being committed, is paying for the race at the start.

When TF4S delivers even the half of what ML.NET or Julia allows for on Windows including IDE, libraries and tooling support, today, and they actually start doing a bit more information then what gets given to Python, C++ and JavaScript then they are actually committed.


I mean, I can't really guess the future, but I kind of feel it's not a simple case of "if you build they'll come" here. Python has a dominance over ML (and over the academy in general) that is beyond any current language, but it didn't bring it's statistics ecosystem to the level of R (and statistics is much closer to ML than pure math and physics). That's because the ML ecosystem does work very well in isolation (it's mostly a black box regressor), and the natural path of evolution is not in different way of processing things, but ways of preprocessing things (for example, how to capture and treat images and sounds before applying the models).

And in this marathon Julia is a very late runner, and Swift didn't even start properly running in this direction.


I think google will invest in the scientific ecosystem since they've shown some interest for diff programming using scientific models, and these are becoming more mainstream, even in pytorch.

The ML stuff is just a start.


Tensorflow Summit came and went with zero information on Swift for Tensorflow, it was all about JavaScript, C++ and Python.

Swift is mostly useless on Windows, with Windows users being told to use Google's cloud infrastructure for doing anything serious.

Even Apple apparently is hiring Rust developers for server side development on Linux, instead of improving Swift's history on Linux.

Keep hoping for Swift on Android, it will never happen, if that depends on Android team, Kotlin/Native might have a place on the NDK, Swift never will get one.


>Tensorflow Summit came and went with zero information on Swift for Tensorflow, it was all about JavaScript, C++ and Python.

It was truncated to one day when they made it virtual. There were swift announcements slated for day 2, which was cancelled entirely.

Regarding windows: https://forums.swift.org/t/new-swift-installer-for-windows/3...

There are also frequent commits to swift master and projects like swift NIO working on windows compat, from google. Also the S4tf stated they had future plans for swift on android.


Apparently not relevant enough to be worthy of even a small blog status update.

So it has an installer now.

Pity that it lacks the eco-system of libraries available to .NET, Java, Julia, and respective IDE support, on Windows.

So now besides import glibc on Linux, with platform ifdef, should we do import mvsc as well?

ST4F team having future plans for Android is meaningless, regarding what Android team actually puts on the SDK, NDK and Android Studio.

When I see Swift listed on https://developer.android.com/guide/platform, I will consider that Google actually wants it on Android.

Otherwise it is just like Flutter and Go, third party tooling, with various headaches and Android integration issues.


The difference is that S4TF is an internal google team. I can't imagine they wouldn't coordinate with the android team, especially given the benefits that easy ML will bring to apps.


Awaiting to see anything S4TF related here,

https://www.tensorflow.org/lite/guide/android


I wouldn't expect to see it yet




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

Search: