TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Programming languages endorsed for server-side use at Meta

242 点作者 iamnotarobotman将近 3 年前

26 条评论

dom96将近 3 年前
What&#x27;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&#x27;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.<p>Rust seems to be doing far better. Though it&#x27;s also worth noting that Go never got the same adoption as Rust either. Wonder if someone more familiar with the story of all these languages at Meta can comment on why that is.
评论 #32253500 未加载
评论 #32254253 未加载
评论 #32254555 未加载
评论 #32254669 未加载
评论 #32253572 未加载
评论 #32255550 未加载
评论 #32253698 未加载
Xeoncross将近 3 年前
&gt; Meta’s primary supported server-side languages are Hack, C++, Rust, and Python.<p>&gt; For specific use cases, we support other languages, including Java, Erlang, Haskell, and Go<p>Makes sense. Python because ML.<p>Rust because of performance.<p>C++ and Java because all-the-things.<p>Go because 75% of all cncf.io projects are Go.<p>Haskell because elitism.<p>Erlang because stability.<p>&#x2F;s<p>I think the real story is that migrating off PHP was too hard, so Hack was started which required a substantial C++ employee pool which meant that Rust was the ideal replacement to all of this skipping the Java&#x2F;Kotlin and Go ecosystems altogether.<p>So not just scale at play here, a cause-and-effect of past hiring decisions.
评论 #32253471 未加载
评论 #32253296 未加载
评论 #32253427 未加载
评论 #32255452 未加载
评论 #32253739 未加载
评论 #32256213 未加载
评论 #32253355 未加载
melling将近 3 年前
“Since we began our journey with Rust, the number of projects using Rust inside Meta has increased at an accelerated rate”<p>That almost sounds like an endorsement. I’ve been holding off learning Rust. However, it seems like Rust adoption is reaching a tipping point.
评论 #32253446 未加载
评论 #32253198 未加载
评论 #32253573 未加载
npalli将近 3 年前
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 &quot;hot&quot; 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 &quot;hot&quot; area being crypto. The reality is none of these areas is a sweet spot for Rust and will remain niche (in comparison to other languages). The sweet spot is low level systems programming and displacing C++ (of which there is a real and desperate need). If the community can focus on interoperability with C++ (at the gnarly level), would be make a big difference to adoption.
评论 #32255274 未加载
评论 #32255127 未加载
评论 #32254504 未加载
评论 #32254699 未加载
评论 #32254998 未加载
评论 #32254630 未加载
评论 #32255403 未加载
评论 #32254634 未加载
评论 #32254478 未加载
mathgladiator将近 3 年前
I used to work there, and I&#x27;m personally sad that JavaScript wasn&#x27;t mentioned: I was the architect of <a href="https:&#x2F;&#x2F;dl.acm.org&#x2F;doi&#x2F;10.1145&#x2F;3477132.3483572" rel="nofollow">https:&#x2F;&#x2F;dl.acm.org&#x2F;doi&#x2F;10.1145&#x2F;3477132.3483572</a>
评论 #32253604 未加载
tuetuopay将近 3 年前
While this is cool to see &quot;how the big guys do it&quot;, this article is worthless. Specifically, it lacks one fundamental thing: why.<p>Why isn&#x27;t Go in this list? It is very surprising since it feels like all off tech jumped on the Go bandwagon, though I won&#x27;t complain. I can only guess at why, but it would be very interesting to see why.<p>Why is Rust in the list, other than &quot;so many people started to use it internally that we were kind of forced to officially support it&quot; (at least that&#x27;s how I understand their article)? Similarly I won&#x27;t complain, but it&#x27;d be great as to what real benefits they pull off. At least it&#x27;s great to know that Rust is considered mature by Meta, which adds them to the list of Big Corp endorsing it (Amazon, Google, Microsoft, Apple, Mozilla, ...).
评论 #32253946 未加载
评论 #32254188 未加载
评论 #32254192 未加载
评论 #32254819 未加载
评论 #32254415 未加载
评论 #32253885 未加载
评论 #32254239 未加载
tmsh将近 3 年前
This was an interesting, thought-provoking read. But the author of the post is a member of the board of directors of the Rust Foundation. <a href="https:&#x2F;&#x2F;foundation.rust-lang.org&#x2F;news&#x2F;2022-03-16-news-announcing-three-new-board-members-copy&#x2F;" rel="nofollow">https:&#x2F;&#x2F;foundation.rust-lang.org&#x2F;news&#x2F;2022-03-16-news-announ...</a><p>Perhaps a blind spot for Meta is they&#x27;re spending time working away from PHP&#x2F;Hack so as they reach for Rust (away from web-centric languages) they don&#x27;t realize TypeScript has compelling reasons to choose it on the server-side:<p><pre><code> * Vercel-driven &#x2F; full-stack developer innovation * ubiquity of JS&#x2F;TS for tooling, innovation, etc. * fast enough to run serverless * rich ecosystem, though you do need to curate your dependencies yourself and not just let npm take you for a ride * closer to customers; since closer to the web, but with types. * no over-engineering re: borrow checker for 90% of use cases. </code></pre> I&#x27;m biased but I see no fundamental reason why everything doesn&#x27;t converge on TypeScript in the future. C : C++&#x2F;Rust (context: systems development) as JS : TS (context: all programming).
评论 #32262360 未加载
评论 #32258048 未加载
eatonphil将近 3 年前
I missed it skimming through the first time. The exact list:<p>&gt; Meta’s primary supported server-side languages are Hack, C++, Rust, and Python.
vo_9812将近 3 年前
I am excited to see Rust gaining popularity and becoming a first-class language at Meta.
评论 #32253118 未加载
clarle将近 3 年前
For folks at Meta, is Thrift still the main communication protocol for service-to-service communication? Curious to see if that&#x27;s still how most of these server-side applications talk with each other.
评论 #32252993 未加载
vonseel将近 3 年前
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).
评论 #32255504 未加载
评论 #32256113 未加载
评论 #32257733 未加载
评论 #32258346 未加载
notacoward将近 3 年前
There&#x27;s a lot more Python which is somehow not considered &quot;server-side use&quot; even though it&#x27;s absolutely essential for standing up a new service. You can&#x27;t do configuration or alerting without at least a little bit of it, for example, and those are mandatory. There&#x27;s also some Ruby, because chef, but TBH in 3.5 years there I never had to touch more than a couple of tiny bits personally.
10x-dev将近 3 年前
I work at Meta and I use tools written in bash, C, Java, Go, TypeScript, Kotlin and Dart daily. I&#x27;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.<p>Personally I&#x27;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.
评论 #32253496 未加载
评论 #32253902 未加载
obert将近 3 年前
All the notes about supported languages are very superficial, it reads more about “we adopted Rust” than anything else. Someone clearly felt the need to say it out loud.
philjr将近 3 年前
I remember interviewing there in 2009 and I stopped counting the number of languages I was told were being used on the SRO &#x2F; backend side. I&#x27;m sure it wasn&#x27;t, but it seemed like it was basically &quot;everything&quot; :-)
评论 #32253400 未加载
Lucasoato将近 3 年前
It&#x27;s curious not to see any JVM language there. Scala isn&#x27;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.
评论 #32253044 未加载
评论 #32253235 未加载
评论 #32253764 未加载
评论 #32253322 未加载
powersurge360将近 3 年前
I&#x27;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&#x27;t really fit any of my use cases.<p>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 would love to hear from folks who actually do it and what the state of the art is for C++ web services.
评论 #32253634 未加载
评论 #32254391 未加载
评论 #32256474 未加载
评论 #32253773 未加载
评论 #32253581 未加载
评论 #32257800 未加载
评论 #32256155 未加载
评论 #32255427 未加载
评论 #32256283 未加载
Barrin92将近 3 年前
I&#x27;m surprised by the use of Rust in domains where a GC is perfectly fine, like much of CLI tooling. Manual memory management is one of the most time consuming issues to deal with and I don&#x27;t understand why people are burdening themselves with it in domains where it&#x27;s not strictly necessary.<p>If you want an ML &#x2F; C family hybrid language there&#x27;s Ocaml, or if you just want a fast static-binary language there&#x27;s Go.
评论 #32257408 未加载
alhirzel将近 3 年前
Where at Meta is Haskell primarily used?
评论 #32252987 未加载
评论 #32253160 未加载
评论 #32253021 未加载
srean将近 3 年前
I was wishfully expecting to see D in the list. I suppose there weren&#x27;t many influential champions after Andrei Alexandrescu&#x27;s departure.
rajnathani将近 3 年前
In a pre-AST project 2 world, I&#x27;ve found the following 4 languages work well for programming (non-frontend) use cases, based on my startup experience:<p>- Java (with JOOQ): As a high level typed language (similar to Hack for Meta&#x27;s use case. If Golang&#x27;s generics help create a JOOQ equivalent in the future, then this would be Golang).<p>- C++&#x2F;Carbon: As a systems&#x2F;performance language. (We haven&#x27;t tried Carbon yet, but this I feel would help beat Rust for this systems category)<p>- JS&#x2F;TypeScript (Node or Deno or zx): As a scripting&#x2F;tools language.<p>- Python: As a data processing and machine learning language (primarily thanks to the JIT computing and data libraries for Python). (This list ignores CUDA :))
评论 #32301905 未加载
评论 #32301549 未加载
ipaddr将近 3 年前
Not surprised at the list. Hack stands out as unique to facebook. Is hack being used in other large companies? I wonder if they will ever move back to php now that many issues facebook had have been resolved in later versions.
评论 #32253487 未加载
评论 #32253142 未加载
评论 #32253207 未加载
评论 #32253131 未加载
p4bl0将近 3 年前
Quite surprised not to see OCaml &#x2F; ReasonML in the main list given here.
评论 #32255566 未加载
fbn79将近 3 年前
Looks like no backend support for JS&#x2F;Typescript (node.js&#x2F;deno). This surprise me for a company like META.
评论 #32255743 未加载
Kukumber将近 3 年前
c++ and rust for server side use?<p>I would have expected Go even for CLI due to fast compilation and easy cross compilation out of the box<p>Their manager is either incompetent, or he is very opinionated, wich doesn&#x27;t sound good for their stack
preseinger将近 3 年前
I&#x27;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.
评论 #32253000 未加载
评论 #32252980 未加载
评论 #32253259 未加载
评论 #32253393 未加载
评论 #32255303 未加载
评论 #32253082 未加载