Hacker News new | ask | show | jobs
by throw6606 2091 days ago
Careful, folks. S4TF is pretty much dead on arrival. It was pushed aggressively by Chris Lattner (for obvious reasons) but he left Google a while ago and since then most internal users lost interest. There's nothing in Swift that's inherently suitable for ML and building the ecosystem is a ton of work; without all the political pushing, it went nowhere and is close to a "semi-abandoned research project" phase.
5 comments

> There's nothing in Swift that's inherently suitable for ML

The type system?

Speed, too. For PyTorch to train models and run inference quickly, your Python code gets translated to C++/CUDA. Part of the idea with S4TF is to be able to write ML code in a single, fast language.
You can already do that in Julia and unlike Swift that is a language with lots of scientific and machine learning libraries.

I like Swift but looking at the code examples I got to say preparing data and setting up a model is 10x easier in Julia.

I am skeptical that there are no calls to underlying C or CUDA libraries occurring. Swift doesn’t naively beat BLAS
Well, it's not happening in swift yet.

S4TF still requires either c cuda kernels or XLA. Julia on the other hand has JIT GPU codegen and its CPU codegen has been benchmarked to beat openblas

> CPU codegen has been benchmarked to beat openblas

Source on this claim?

He probably means Tullio.jl (which also seems to integrate with Julia's source to source differentiation library Zygote.jl, the main competitor to Swift for Tensorflow):

https://discourse.julialang.org/t/realistically-how-close-is...

https://github.com/mcabbott/Tullio.jl

Regardless if it can consistently beat Fortran/BLAS in every area, in general JIT languages have more opportunities for optimizations than AoT languages, so it's interesting to see what comes out of a language that focuses on leveraging this to get the most performance.

I'm surprised re: blas - that is closer than I thought! Still a huge gap on the GPU, but still impressive.

> in general JIT languages have more opportunities for optimizations than AoT languages

I'm not sure I agree with this. I would say the opportunities for any non-GC mature AoT language (C++, Rust, etc.) is going to be pretty much the same, since you can just attach a JIT to most AoT langs.

If true, it does not surprise me. While there is a lot of language war going on in the ML ecosystem, I never really heard anyone using, planning to use or waiting for swift for TensorFlow.

It might be a nice language (never used it), but there are other contenders with more engineers/scientists support like Rust and Julia, for which the advantages were clearer.

Finally, the whole ordeal got a very bad look from having its main proponent being the creator of Swift instead of the actual community pushing for it.

Precisely because Chris Latter had the idea of replacing everything from C to Javascript with Swift.

I didn't like that idea then, I still dont like it now. But the idea in itself is very Apple (ish).

> since then most internal users lost interest

Why do you say so?

Can you backup your claims?
I guess that the fact that Tensorflow 2020 conference had zero references to it, including on the related blog posts says it all.
Newly created account claims something without proof and comments asking for such seem to be getting buried.
Yes, or a Googler who doesn’t want to be seen publicly attacking a Google project
Yes, or someone with an agenda against Swift/TF.
This website has been cached already
“Stillborn” is a pretty awful term to use for software.
Mea culpa. Reworded.
Why is that? It conveys the DOA meaning pretty well.
Generally, your metaphors should not rely on comparison to a pretty traumatic event that has happened to quite a few people, many of whom might be around you without you knowing.
DOA is a metaphor too, literally referring to people arriving at the ER too late.
Sure. I guess then you shouldn’t even use the word “dead”, as plenty of people have lost close relatives which is a pretty traumatic event.
Just letting you know the reality that a lot of people view "stillborn" events as particularly traumatic. I'm not going to spend a lot of time arguing about this because it's a pretty simple point.

It's up to you to choose what kind of person you want to be, I don't have control over what you say.

I think the difference is that the term "Dead" is used in a lot of different contexts. E.g. Battery is dead. Stillborn is not, and it mainly associated used in one very traumatic context.
How about “miscarriage of justice”?

https://en.m.wikipedia.org/wiki/Miscarriage_of_justice

Now that I think of it, does anyone know if "abort" is among the computing terms to be avoided (like master, black list or sanity check)?
None of these should be avoided, as long as they are accurate terms.
Anyone who is avoiding "master, black list or sanity check" probably thinks abortion is super awesome and that the term "abort" should never be stigmatized.

Best not to worry about such silly things and keep writing code.

I don't know of anyone who "thinks abortion is super awesome"...

In any case, the primary meaning of 'abort' is more general, so it shouldn't be compared to the metaphorical use of 'stillborn'.

The original meaning of abort is miscarriage/miscarry, other uses are “metaphorical”.