Live data from Hacker News

Programming languages endorsed for server-side use at Meta

engineering.fb.com

101–110 of 302 posts

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

#101

It's curious not to see any JVM language there. Scala isn't even mentioned. Probably the data size is so high that the only way to survive there is to write everything in low level C++ or Rust.

Same here. I was hoping to see some Scala… perhaps for data processing/streaming/engineering.

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

#102

I'm very surprised that C++ is one of the recommended languages for backend services. I occasionally am interested in learning C++ but with my context as a web developer I find it doesn't really fit any of my use cases. How would one go about building a rest service in C++? Do you have to write everything yourself or are there libraries and frameworks. I did some light looking into it after reading the article but I…

I haven't built anything serious with it, but cpp-httplib is a very easy-to-use framework for processing HTTP requests.

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

#103
post #87

Earlier quoted context omitted.

> I’ve been holding off learning Rust. Rust is quite an easy language to learn and a pleasurable language to use, due to its modern ergonomics and internal consistency. Give it a try. The only trick is that Rust newcomers actually need to read up on Rust borrow checker and lifetime annotations first, as opposed to learning Rust only through hacking with it. Those two concepts are unique to Rust and need to be well un…

> Rust is quite an easy language to learn ... [except for these two incredibly complex topics that permeate the entire language] For anyone coming from a GC language, Rust is a huge change.

Yes, good point, a switch from a GC-based language to a memory ownership -based language is definitely non-trivial, but you can always just forget Rust references altogether for the time-being and start hacking with Rust with its reference-counted smart pointers, effectively learning Rust as if it were Go. (You will have to switch back to Rust ownership/references later on to get back the performance and the respect of other Rustaceans 8) .)

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

#104
post #87

Earlier quoted context omitted.

> I’ve been holding off learning Rust. Rust is quite an easy language to learn and a pleasurable language to use, due to its modern ergonomics and internal consistency. Give it a try. The only trick is that Rust newcomers actually need to read up on Rust borrow checker and lifetime annotations first, as opposed to learning Rust only through hacking with it. Those two concepts are unique to Rust and need to be well un…

> Rust is quite an easy language to learn ... [except for these two incredibly complex topics that permeate the entire language] For anyone coming from a GC language, Rust is a huge change.

I mean that's only two things! /hj

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

#105
post #25

I remember interviewing there in 2009 and I stopped counting the number of languages I was told were being used on the SRO / backend side. I'm sure it wasn't, but it seemed like it was basically "everything" :-)

Most big companies use "everything" in some capacity, which is why "X uses Y" type statements are meaningless. The question is what's primary, what's supported, what's common in practice.

I assume there's still a big difference between big companies that have a monorepo and extremely centralized and vertical build infrastructure, and the ones that don't, especially if they're very siloed. From what I see from friends at Apple for instance, starting a project in an uncommon language is not a problem at all for most teams.

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

#106
post #68

Earlier quoted context omitted.

I don't think Rust is easy to learn, it's has a kind of famously steep learning curve. The tooling is great which helps, but it's not easy for new-ish systems programmers.

Well, you will probably think I'm crazy, but for me personally, having a couple of decades of C++ experience, learning Rust turned out to be much easier than learning... Swift. Yes, that famed, ultra-modern, great-as-your-first-programming-language Swift. Except for lifetime annotations and the borrow checker, Rust turned out to be much easier for my brain to parse and memorize than Swift, perhaps due to Rust's consi…

Going from C++ to Rust is pretty much the easiest path, since most of the "hard" parts of Rust are just automating stuff you do by hand in C++ anyway. For other languages where people regularly get tripped up on "what's the stack vs the heap?" coming to Rust it's a bit of a different story, ime.

Talking about which object "owns" another that a pointer "outlives" what it points to are totally normal parlance for C++ developers and completely foreign to a lot of other folks.

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

#107

While this is cool to see "how the big guys do it", this article is worthless. Specifically, it lacks one fundamental thing: why. Why isn't Go in this list? It is very surprising since it feels like all off tech jumped on the Go bandwagon, though I won't complain. I can only guess at why, but it would be very interesting to see why. Why is Rust in the list, other than "so many people started to use it internally that…

The article does a good job of explaining why the list is small - and in my opinion quite useful in that regard. Agree that it would be interesting to know what perceived costs/benefits of various options considered were. I suspect accidents of history, before the need for a list like this was recognized, play a large part.

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

#108
post #63

I work at Meta and I use tools written in bash, C, Java, Go, TypeScript, Kotlin and Dart daily. I've definitely noticed that some C++ tools are moving to Rust. I would have preferred to see D in its place, but it is what it is. Personally I'm not a fan of Rust, but it is interesting to see how the language is growing as it hits mainstream. Lots of similarities with Go back when it was cool and hip.

Are your use of Dart related to flutter?

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

#109
I’m surprised they said Rust is their new language of choice for CLI tools. I’m no expert but always saw Go as the better choice for CLI tooling where performance is important, Rust more of a low level language for highly performant libraries and tools, and Python a good choice for scripting or plumbing that needs to work and be easily maintainable, without special performance concerns (Python is my primary language, I’ve only dabbled in Go and Rust).

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

#110

Earlier quoted context omitted.

Instagram changed their algo to prioritize video content over images though. I think it is a mistake.

My wife's feed mainly shows images as that's mostly what her followers post. People's habits have been switching to use videos (the bubbles) as they disappear. They are using it like SnapChat. It's not the algo that changed. Your feed is just what your followers have recently posted. When you go to a profile the bubbles (videos) are at the top and the images / perm videos are in their gallery.

They have changed the algo. Several pro photographers and photograph artists have confirmed this.
Post reply on HN