Live data from Hacker News

Programming languages endorsed for server-side use at Meta

engineering.fb.com

171–180 of 302 posts

Re: Programming languages endorsed for server-side use at Meta

#171
post #163

Earlier quoted context omitted.

If I can have a XAML/WinForms like UI dev experience with Rust on Linux, I am sold. Even just a usable rich UI framework on Linux. Cross-platform is a bonus, but since I believe Linux is the future I can live without other platform targets. We all hate the resource hogging desktop apps that are just browsers (which in turn are just OS'es). That is a niche as wide and as open as the ocean. Cryptography and web framewo…

You cannot even get it with Rust/WinRT straight out of Redmond, let alone having hopes to get it on Linux. C++/WinRT tooling is a shadow of C++/CX capabilities (which feels like Microsoft's C++ Builder), and while the same folks are having fun with Rust/WinRT, its tooling is even worse. I doubt that in five years it will be any close to what C++/CX was already doing in 2015. Specially since they outsource any graphic…

That's sad. I would love to tinker with UI programming on Linux, but it seems like to get anything decent you will have to use QT, which brings C++ as a requirement.

Re: Programming languages endorsed for server-side use at Meta

#172
post #135

The primary use case for Rust being CLI is somewhat strange and speaks to non-technical considerations. Does anyone really think there is an advantage Rust brings here over everything else -- Golang, Python etc. Rust community seems to go after "hot" areas in hopes of getting traction, fully understandable. Writing web services is another area Rust people jumped into looking at the popularity of Golang. Most recent "…

Chasing popularity seems to be a necessary evil these days. I am disappointed when zig calls itself a general purpose language, and 10 years ago Go called itself a system language.

Back in my days, systems programming evolved writing compilers, linkers, os drivers and kernels.

Given that the whole Go toolchain is bootstraped, it fulfills that role quite alright.

Maybe we need drivers and such to strenght the argument, well given the role of gVisor and Android GPU debugger, that seems a case for systems programming.

Maybe still not good enough, then I refer to the F-Secure TamaGo unkernel being shipped as firmware for the USB Armory security keys, or the TinyGo runtime which even ARM refers to on their IoT page.

Re: Programming languages endorsed for server-side use at Meta

#173
post #135

The primary use case for Rust being CLI is somewhat strange and speaks to non-technical considerations. Does anyone really think there is an advantage Rust brings here over everything else -- Golang, Python etc. Rust community seems to go after "hot" areas in hopes of getting traction, fully understandable. Writing web services is another area Rust people jumped into looking at the popularity of Golang. Most recent "…

> Does anyone really think there is an advantage Rust brings here over everything else -- Golang, Python etc.

Yes! IMO building CLI tools is one of Rust's sweet spots for a few reasons:

- Rust is great at building small, fast, statically linked executables. Python and a lot of other languages are not.

- Rust has excellent cross-platform support. The stdlib and crate ecosystem do a remarkable job of building abstractions that work across *nix OSs and That Other OS. Go's Windows support is relatively mediocre IMO.

- The `clap` arg parser is great

Ultimately I think the proof is the large number of very high-quality CLI tools written in Rust (things like bat, ripgrep, fd, watchexec). They were kind of a gateway drug for me; I first got into Rust because so many of my favourite CLI tools were written in it, and I wanted to compile/tweak them.

Re: Programming languages endorsed for server-side use at Meta

#174

I'm surprised at the list. Rust is fundamentally immature, C++ is fundamentally intractable, Python is fundamentally unusable at scale, and Hack is, well, no discussion needed. Strong negative signal for potential candidates.

Does anyone go to Facebook for engineering goals? Everything I've read about that place screams paycheck only.

Re: Programming languages endorsed for server-side use at Meta

#175
post #163

Earlier quoted context omitted.

You cannot even get it with Rust/WinRT straight out of Redmond, let alone having hopes to get it on Linux. C++/WinRT tooling is a shadow of C++/CX capabilities (which feels like Microsoft's C++ Builder), and while the same folks are having fun with Rust/WinRT, its tooling is even worse. I doubt that in five years it will be any close to what C++/CX was already doing in 2015. Specially since they outsource any graphic…

That's sad. I would love to tinker with UI programming on Linux, but it seems like to get anything decent you will have to use QT, which brings C++ as a requirement.

You can have a look at its issues,

https://github.com/microsoft/windows-rs

Note the lack of of safe wrappers for Windows APIs, and still no good way to create the Windows Runtime objects necessary to interoperate with XAML.

Also the basic examples with very little UI code on what is supposed to be a projection for a Windows UI framework.

Re: Programming languages endorsed for server-side use at Meta

#176
post #135

The primary use case for Rust being CLI is somewhat strange and speaks to non-technical considerations. Does anyone really think there is an advantage Rust brings here over everything else -- Golang, Python etc. Rust community seems to go after "hot" areas in hopes of getting traction, fully understandable. Writing web services is another area Rust people jumped into looking at the popularity of Golang. Most recent "…

The time to start up a Python interpreter and do meaningful imports is quite painful for a CLI app. If you have Python code and want add a CLI you can live with it, but you wouldn't pick it ahead of time .

This is exactly why. It's also not just the interpreter, it's also one-time costs involved in unpacking PAR files, but deploys are frequent enough that you might hit those delays many times per day.

Re: Programming languages endorsed for server-side use at Meta

#177

Earlier quoted context omitted.

Interesting to hear this from a Nim developer. Do you think Nim would be a good fit for what facebook needs? (Normally I don't check author's names in hacker news comments. But I wanted to check if this is WalterBright posting here)

That's what crossed my mind too. C++ and Rust are heavyweight and verbose, for ultimate control over execution. I have no Go experience but it seems to prefer simple over expressive. I see that niche for Nim here: fast-ish, compiled, simple to use but also expressive.

I added Nim support to an edge platform for that reason. I think it fits in with the others. Crucially it boils down to machine code and can be debugged with GDB.

Re: Programming languages endorsed for server-side use at Meta

#178
post #70
post #51

What's always been interesting about the languages Meta uses is the story of the rise and fall of the D programming language at Meta. I wasn't around at the time when Andrei was working there and advocating for its adoption, but it seemed like he hit a wall at some point. By the time I joined all D services were being deprecated or rewritten. Rust seems to be doing far better. Though it's also worth noting that Go ne…

Andrei is now at NVidia, and I bet most likely for his C++ skills. It is a pity that D never found its enterprise sponsor to push it no matter what. Even the recently announced Carbon could probably have somehow built on top of it.

Depressing that even a PL savant amongst us has to go and ply his trade around town instead of being financially independent.

Re: Programming languages endorsed for server-side use at Meta

#179
post #143

Earlier quoted context omitted.

actually creating a cli with rust is really one of the best ways to use it. it is extremly fast and has a low footprint and if your cli does only one thing well it's probably easy to write opinionated rust. and clap is probably the best args parser available on the planet. no other language has an args parser that is so easy to use and still extremly fast with a low overhead than rust.

in what world is the arg parser performance critical?

When the cli app is called from another process which passes the arguments, and needs the results back fast?

Re: Programming languages endorsed for server-side use at Meta

#180
post #135

The primary use case for Rust being CLI is somewhat strange and speaks to non-technical considerations. Does anyone really think there is an advantage Rust brings here over everything else -- Golang, Python etc. Rust community seems to go after "hot" areas in hopes of getting traction, fully understandable. Writing web services is another area Rust people jumped into looking at the popularity of Golang. Most recent "…

CLIs are also a great way to let people experiment with and learn a new language with low risk.
Post reply on HN