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

> which language has standardized SIMD vector datatypes ?

Java is getting it soonish. https://openjdk.java.net/jeps/338

Rust has it (but it's fairly platform specific) https://doc.rust-lang.org/edition-guide/rust-2018/simd-for-f...

Dart has it https://www.dartcn.com/articles/server/simd

Javascript has it https://01.org/node/1495

It's actually a bit impressive how many languages have it at this point.

> what are the other native languages with a standardized memory model for atomics

Rust, C, Go?

> It's not like you're going to use C# or Java's built-in threadpools if you are doing any serious work, no ?

Define "serious". By most metrics JVM apps run at 1->2x the speed of C++, that's really not terribly slow for a managed language. On top of that, there are a lot of places java can outperform C++ (high heap memory allocation rates). Java's threadpools and concurrency model is, IMO, superior to C++'s.

> Do they even have something as easy to use as taskflow

Several internal and external libs do. Java's completable futures, kotlin's/C#'s (and several other languages) async/await. I really don't see anything special about taskflow.

> can you point to non-trivial java projects that do not use Apache Commons

Yes? It's a fairly dated lib at this point as the JDK has pulled in a lot of the functionality there and from guava. We've got a lot of internal apps that don't have Apache commons as a dependency. I think you are behind the times in where Java as an ecosystem is now.



... I just checked your link and wouldn't say that any of these languages have SIMD more than C++ has it currently:

- Java: incubation stage (how is that different from https://github.com/VcDevel/std-simd). Also Java is only getting it soonish for... amd64 and aarch64 ??

- Rust: those seem to be just the normal intrinsics which are available in every C++ compiler ?

- Dart: seems to not go beyond SSE2 atm ? But it looks like the most "officially supported" of the bunch

- Javascript: seems to be some intel-specific stuff which isn't available here on any of my JS environments ?

* Standardized memory model

- Literally false for Rust : https://doc.rust-lang.org/reference/memory-model.html

- The C11 one directly comes from C++: https://stackoverflow.com/a/8877562/1495627

- The Go one does not seem to support acquire-release semantics, which makes it quite removed from e.g. ARM and NVidia hardware from what I can read here ? https://golang.org/pkg/sync/atomic/




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

Search: