23 ms·
Programming languages endorsed for server-side use at Meta
- vo_9812 4y agoI am excited to see Rust gaining popularity and becoming a first-class language at Meta.
- codetrotter 4y ago> Rust gaining popularity As it should. Beyond that though. How relevant even is Meta anymore? They are a dying company aren’t they? Facebook hasn’t been relevant in ages. Instagram is losing footing too. Only way I can see them maintaining relevance is if one or more of the following happens: - They turn out to be right in their bet on VR and Metaverse. Personally I doubt it, and I think VR and Metaverse is closer akin to a hellscape than much else. Or, - TikTok is banned like some media is talking about happening. Then people might flock to Instagram. Or, - They aquire another up and coming social network. Maybe they will buy BeReal?
- arrosenberg 4y agoDying stars still have a big gravity well.
- orangepurple 4y agoHeavier stars might not explode as supernovae, just quietly implode into black holes.
- sn9 4y agoAnalogies fall apart eventually.
- xcambar 4y agoThat is a witty comment.
- hunterb123 4y agoReact/RN is the largest web & native cross-platform framework, Jest is one of the main testing tools as well. The Facebook app itself is massive, it's the most used classifieds, basically replacing craigslist, still used for many groups and many local businesses use it solely, their ad business is still raking it in. Event coordination and connections are maintained on FB since most everyone has it. Instagram isn't dying either, it's very popular for both advertisers and influencers, TikTok stole some but they are really two different services, one static images one short videos with some overlap to compete. Your social circle may not use those apps but A LOT of people do. I don't use any social media because I'm not social, but I have to use FB to see community updates, to coordinate with groups, to sell/buy things, to lookup businesses without websites, etc. I don't see TikTok or others having that moat or even attempting to dig it. Facebook has the businesses, the users, and the developers. In no way are they dying.
- AtNightWeCode 4y agoInstagram changed their algo to prioritize video content over images though. I think it is a mistake.
- hunterb123 4y agoMy 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.
- AtNightWeCode 4y agoThey have changed the algo. Several pro photographers and photograph artists have confirmed this.
- hunterb123 4y ago
- rvz 4y ago> Beyond that though. How relevant even is Meta anymore? They are a dying company aren’t they? Facebook hasn’t been relevant in ages. Instagram is losing footing too. The lies and the media reports of the so called death of the fastest company to reach $1 trillion dollars in the 21st century has been greatly exaggerated. Especially with having platforms with 1 billion+ users each. Meta has plenty of cash and revenues to sail though this decade. And no. Your social circles and anecdotes is not evidence.
- mhoad 4y agoThe absolute dumpster fire that is their pivot to VR however.. go look at this and the replies and then remember this is what they are betting the company on at a time when they have never had less user trust, goodwill or greater potential for government oversight. This is hopefully the beginning of the end for them. https://twitter.com/metaquestvr/status/1551943338038726657 https://twitter.com/metaquestvr/status/1551943338038726657
- idontpost 4y agoA highly profitable multi-billion dollar company is dying? Edgelord devs are a weird group. Growth isn't everything, and Meta isn't dying anymore than MS is.
- alhirzel 4y agoWhere at Meta is Haskell primarily used?
- tuckerman 4y agoI don’t work there, but from talks I’ve gone to I believe their Scaled Abuse team uses (or at least used to use) Haskell[1] along with the library Haxl[2] 1. https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/ https://engineering.fb.com/2015/06/26/security/fighting-spam... 2. https://engineering.fb.com/2014/06/10/web/open-sourcing-haxl-a-library-for-haskell/ https://engineering.fb.com/2014/06/10/web/open-sourcing-haxl...
- eatonphil 4y agoMy guess is that most people using Haskell (and OCaml and Standard ML) are using it for internal tool such as program verification/analysis/transformation. It's not that Haskell/OCaml/Standard ML should not be used for backend services (i.e. APIs in a hot spot [at faceboook's scale anyway]). It's just that (in my experience) they're most commonly used for out-of-band analysis or developer lifecycle systems.
- frob 4y agoIt also powers the backend of Wit.ai which FB owns. Wit's open-source entity parser, duckling, is written entirely in Haskell. https://github.com/facebook/duckling https://github.com/facebook/duckling
- eatonphil 4y agoI missed it skimming through the first time. The exact list: > Meta’s primary supported server-side languages are Hack, C++, Rust, and Python.
- preseinger 4y agoI'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.
- troutwine 4y agoWhat language(s), to your mind, would send a positive signal?
- 37ef_ced3 4y agoGo. The obvious right choice. But Meta is in the advertising business and Google is a competitor.
- beastman82 4y agoI agree with none of this except that they're competing w/ Google.
- eclipxe 4y agoVB6
- _aavaa_ 4y agoI can't speak to the other three, but the comment about python is not accurate. Or at least not given the way that python is used for the mentioned applications "For data science, ML applications, and Instagram, Python continues to be the language of choice". Pure python maybe, but the popular packages for these applications are all essentially python wrappers for highly optimized compiled code. I'm curious though, what language(s) do you believe belong on that list?
- jstx1 4y agoInstagram is a huge Django app and unlike all the ML libraries, Django isn't highly optimized low-level code wrapped in Python, at least not by default. That's why Facebook are putting so much work into running a more performant fork of CPython - https://github.com/facebookincubator/cinder https://github.com/facebookincubator/cinder
- clarle 4y agoFor folks at Meta, is Thrift still the main communication protocol for service-to-service communication? Curious to see if that's still how most of these server-side applications talk with each other.
- voz_ 4y agoYes.
- Lucasoato 4y agoIt'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.
- apendleton 4y agoThey do: > For specific use cases, we support other languages, including Java, Erlang, Haskell, and Go. These languages are currently not widely supported outside of specific use cases.
- dragonwriter 4y ago> Probably the data size is so high that the only way to survive there is to write everything in low level C++ or Rust. Except they say: “For data science, ML applications, and Instagram, Python continues to be the language of choice, and we continue to invest in the experience with this ecosystem.”
- ansgri 4y agoFor research you use Python or whatever. For production you compile your models to whatever their proprietary equivalent to TorchScript and ONNX is, which is surely executed by hyperoptimized C++/Rust/Cuda code.
- importantbrian 4y agoPyTorch came out of Meta AI and I'm pretty sure they are still the primary contributors, so I assume they use TorchScript.
- 10000truths 4y agoThe build tool they use, Buck, is written in Java, although a rewrite of it in Rust is in the works.
- kleton 4y ago
- mathgladiator 4y agoI used to work there, and I'm personally sad that JavaScript wasn't mentioned: I was the architect of https://dl.acm.org/doi/10.1145/3477132.3483572 https://dl.acm.org/doi/10.1145/3477132.3483572
- Flankk 4y agoProbably because most of the backend developers are former frontend developers that are sick of JS.
- gumby 4y ago> most of the backend developers are former frontend developers Is that true at fb? That's quite interesting if so.
- distrill 4y agolmao definitely not
- gumby 4y agoIt would have said something extraordinary about the kinds of ppl they hired for front end development!
- mathgladiator 4y agoI was not, but I did choose JavaScript cynically with spite. Spite is a great design decision.
- gumby 4y agoan underappreciated one.
- jokethrowaway 4y agonode is generally pretty popular, despite JS's shortcomings (and various drama, eg. require vs import, transpilation nightmare)!
- Xeoncross 4y ago> Meta’s primary supported server-side languages are Hack, C++, Rust, and Python. > For specific use cases, we support other languages, including Java, Erlang, Haskell, and Go Makes sense. Python because ML. Rust because of performance. C++ and Java because all-the-things. Go because 75% of all cncf.io projects are Go. Haskell because elitism. Erlang because stability. /s 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/Kotlin and Go ecosystems altogether. So not just scale at play here, a cause-and-effect of past hiring decisions.
- 01acheru 4y agoProbably Erlang because of Whatsapp, IIRC it's backend was written in Erlang.
- jwdunne 4y agoI believe the chat backend was implemented in Erlang too. When I was much younger, the web based instant messaging seemed like magic to me so I looked into it and turned out they used Erlang.
- pessimizer 4y agoAnd they actually moved to Erlang for chat before Whatsapp, around when they hired https://yarivsblog.blogspot.com/ https://yarivsblog.blogspot.com/
- antholeole 4y agoHack because?
- bcrosby95 4y agoLegacy.
- Lt_Riza_Hawkeye 4y agoBecause the entire website is written in hack?
- ipaddr 4y agoNot 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.
- matdehaast 4y agoCould be mistaken by I think slack uses it
- tbliu 4y agoApparently Slack uses it (https://slack.engineering/hacklang-at-slack-a-better-php/ https://slack.engineering/hacklang-at-slack-a-better-php/).
- blowski 4y agoBy now, Hack has a lot of Facebook-specific features, most of which will never make their way into PHP.
- pavlov 4y agoHack has become essentially a domain-specific language for the frameworks used at Meta. They evolve together. There's no going back to PHP because there's no reason to rewrite the frameworks and give up on the flexibility afforded by being able to tweak the language to fit the framework. It's basically the same situation as Apple has with Swift. They'd never switch from Swift to C++, no matter what features were added to the language.
- philjr 4y agoI 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" :-)
- closeparen 4y agoMost 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.
- hocuspocus 4y agoI 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.
- melling 4y ago“Since we began our journey with Rust, the number of projects using Rust inside Meta has increased at an accelerated rate” That almost sounds like an endorsement. I’ve been holding off learning Rust. However, it seems like Rust adoption is reaching a tipping point.
- runevault 4y agoRust adoption very much seems to be ramping up within the really big companies. Google talking about it both for Android and Chrome, FB with a ton of things, Apple had uses for it I think but I'm blanking on what, Amazon is using it for at least some new AWS infrastucture...
- darzu 4y agoMicrosoft has been using it internally as well.
- Mountain_Skies 4y agoI look forward to seeing Rust# (or R# for maximum confusion).
- runevault 4y agoYeah. They are both writing code in Rust and also dabbling in creating a language of their own to see how that goes, not necessarily with the intent of releasing it, but at least exploring the space from first principles instead of being incumbered by Rust's decisions. I think the name started with V but I cannot find it right now with quick Googling.
- rascul 4y agoI believe you're thinking of Project Verona. https://www.microsoft.com/en-us/research/project/project-verona/ https://www.microsoft.com/en-us/research/project/project-ver...
- obert 4y agoAll 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.
- notacoward 4y agoThere's a lot more Python which is somehow not considered "server-side use" even though it's absolutely essential for standing up a new service. You can't do configuration or alerting without at least a little bit of it, for example, and those are mandatory. There'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.
- fbn79 4y agoLooks like no backend support for JS/Typescript (node.js/deno). This surprise me for a company like META.
- rswskg 4y agoSame, very surprised not to see a single mention.
- Simon_O_Rourke 4y ago
- dom96 4y agoWhat'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 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.
- pjmlp 4y agoAndrei 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.
- TillE 4y agoD always struck me as not sufficiently better than C++ to justify the litany of downsides to using a relatively obscure language. To find a niche, it basically needed to be what Carbon now promises to be - something that can seamlessly integrate with existing C++ code.
- pjmlp 4y agoThey actually started down that path, https://dlang.org/spec/cpp_interface.html https://dlang.org/spec/cpp_interface.html, hence my remark.
- anewpersonality 4y agoDepressing that even a PL savant amongst us has to go and ply his trade around town instead of being financially independent.
- boppo1 4y agoPL?
- tuetuopay 4y agoWhile 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 we were kind of forced to officially support it" (at least that's how I understand their article)? Similarly I won't complain, but it'd be great as to what real benefits they pull off. At least it'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, ...).
- rwbhn 4y agoThe 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.
- disgruntledphd2 4y agoWhen I started there in 2013 the philosophy was that they'd help you build your service in any language. Funny the difference a decade makes, I suppose.
- beepbooptheory 4y agoThere is a subheading in the article that reads: >How did we arrive at our list of supported languages? Which I believe answers the question well, with bullet points, that aren't just reducible to developer adoption, so I am unclear about your frustration here.
- kaba0 4y agoGiven the deliberate shortness of the list, I would rather ask why would they add it? It is not more performant than rust or c++, nor is it more productive than php or python. It is a high level language with not many interesting qualities over the litany of other GC-d languages that could equally well be added.
- 10x-dev 4y agoI 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.
- brink 4y agoNot that you need to be a fan, but what are your reasons for not liking Rust? As a Rust developer, I'm always curious.
- 10x-dev 4y agoI think its killer feature is the memory safety guarantees, but other than that, I just don't find it as readable as other modern languages, mainly because it's symbol heavy.
- nicolashahn 4y agoFair, but like any language this becomes a non-issue given enough time with it.
- 10x-dev 4y agoI've never liked the "you'll get used to it" approach to life. I prefer to make my life harder by pursuing the perfect solution. It has bitten me in the behind multiple times in the past :)
- zascrash 4y agoAre your use of Dart related to flutter?
- 10x-dev 4y agoYeap, our team has a few quick-and-dirty GUI tools in Flutter
- srean 4y agoI was wishfully expecting to see D in the list. I suppose there weren't many influential champions after Andrei Alexandrescu's departure.
- powersurge360 4y agoI'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 would love to hear from folks who actually do it and what the state of the art is for C++ web services.
- coxley 4y ago> How would one go about building a rest [service.] At Meta, you wouldn't. Everything is Thrift. For WWW, you'll have more graphql. Meta also has a shit ton of libs to make service development easier than exists publicly.
- tuetuopay 4y ago"backend" does not necessarily means the part that receives the HTTP request from the client. It could be a microservice that speaks some other protocol, a load-balancer that sits in front of the web workers, and task runner, etc.
- pjmlp 4y agoThere are libraries and frameworks. Note that before Java adoption push we had stuff like ATLServer, and the first version of ASP were basically COM libraries being called from VBscript/JScript. On our case, we were calling C code from TCL scripts, using plugins like mod_tcl. Nowadays you have stuff like Boost ASIO and Wt. However I wouldn't plug C or C++ directly into the Internet, rather call them from managed languages, as native libraries, reducing the risk of possible exploits.
- powersurge360 4y agoThis is what I had considered to be the state of things. The phrasing on initial read suggested to me that C++ & Rust were the default now for performance critical services (with Rust being a new add) and Hack was used where it made sense but not necessarily by default anymore. I think I may have discounted Hack's role too much.
- vonseel 4y agoI’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).
- coxley 4y agoGo is the go-to for many teams, especially CLIs. Unfortunately there are strong opinions held by high influence on Rust vs. Go instead of Rust + Go. To the point of finger pointing any chance they could with "see??" Many have left as a result. Weird hill to die on. :)
- mustache_kimono 4y ago> I’m no expert but always saw Go as the better choice for CLI tooling where performance is important I'm no expert in golang, so golang may in fact be better(?) by some metric of better, but as the author of a Rust CLI tool[0], I will say that Rust is extremely performant, and pretty fantastic at this very use case. It seems like a sweet spot to me. [0]: https://github.com/kimono-koans/httm https://github.com/kimono-koans/httm
- vonseel 4y agoSure, I wasn't really implying that Go is more performant than Rust, but that Go is a better choice where performance is important, but not so important that you'd forgo the simplicity of Go for Rust's more complex development style (borrow checker, etc?). I'd really love to get into Rust (and Go, tbh) but haven't needed the performance when I'm working on personal stuff and it's generally 1000x faster for me to jump in Python and write a quick script, using threading or asyncio when I need more perf and my program is IO-limited.
- mustache_kimono 4y ago> Go is a better choice where performance is important, but not so important that you'd forgo the simplicity of Go for Rust's more complex development style (borrow checker, etc?). I understand why someone might feel this way, but I think it may misunderstand/misinterpret a few things. First, a more complex development style is not a chronic condition, because you become proficient in the language you work in. For instance re: the borrow checker, you begin to understand what it wants you to do, and why. Rust may be harder to pick up, but, once you do, it's just as easy to build a CLI tool in Rust. Second, obviously, it depends on the type of CLI tool you're writing. Maybe the CLI tools Meta are writing look less like Python scripts, and more like Valgrind or tcpdump. Third, not to disparage golang in any way, but golang's simplicity is something of an illusion. Because all "simplicity" is an illusion. It breaks down quickly at the edges. As someone else noted, you should take a look at "I want off Mr. Golang's Wild Ride"[0] but also perhaps "Simple Made Easy"[1]. [0]: https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride#garden-variety-takes-on-go https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-... [1]: https://www.youtube.com/watch?v=SxdOUGdseq4 https://www.youtube.com/watch?v=SxdOUGdseq4
- p4bl0 4y agoQuite surprised not to see OCaml / ReasonML in the main list given here.
- mustache_kimono 4y agoDoes ReasonML have a server side, more general purpose, ecosystem?
- p4bl0 4y agoOCaml has Mirage (https://mirage.io https://mirage.io) for example, and ReasonML is just another syntax for the language.
- npalli 4y agoThe 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 "hot" 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.
- chakkepolja 4y agoChasing 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.
- pjmlp 4y agoBack 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.
- throwaway17_17 4y agoI’ve seen comments from you several times that echo this point. But it always seems to end conversations, which I find disheartening, because I’d really like to see others at least discuss your point, even if they never adopt a similar view. Your premise seems to be that most devs are overlooking the applicability of ‘managed’ languages in the area of ‘systems programming.’ I think your listing of systems programming topics above is a fairly representative sample and I never see much push back, or any concrete examples, for why a managed language is not capable of being used in the general case. I agree that examples of drivers, and possibly kernels (outside of Oberon), that utilize managed languages may be needed to really start the conversation, but there really should be a conversation. So, off hand, can you think of any books, technical reports, papers, videos, whatever on this general topic that can point me deeper? At my core as a developer, I am concerned first and foremost with performance (along many metrics, not just wall-clock speed), but outside of hard or soft real-time systems (and soft may have more leeway than is commonly claimed) I really think there are some big wins possible in multiple areas by switching the default definition of ‘systems programming language’. PS. Sorry for going super OT and for dragging up an almost day old comment.
- Barrin92 4y agoI'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't understand why people are burdening themselves with it in domains where it's not strictly necessary. If you want an ML / C family hybrid language there's Ocaml, or if you just want a fast static-binary language there's Go.
- juancampa 4y agoRust memory is not manually managed though. At least not in the sense where you have to remember to free things or not use dangling pointers. The amount of memory management in (non unsafe) Rust code, at least in my experience, is minimal.
- tmsh 4y agoThis was an interesting, thought-provoking read. But the author of the post is a member of the board of directors of the Rust Foundation. https://foundation.rust-lang.org/news/2022-03-16-news-announcing-three-new-board-members-copy/ https://foundation.rust-lang.org/news/2022-03-16-news-announ... Perhaps a blind spot for Meta is they're spending time working away from PHP/Hack so as they reach for Rust (away from web-centric languages) they don't realize TypeScript has compelling reasons to choose it on the server-side: * Vercel-driven / full-stack developer innovation * ubiquity of JS/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. I'm biased but I see no fundamental reason why everything doesn't converge on TypeScript in the future. C : C++/Rust (context: systems development) as JS : TS (context: all programming).
- fendy3002 4y agoPossibly because nodejs is running on v8, that the primary creator is Google? EDIT: thinking about it again, I guess the domain where nodejs is excel at has already being done in Hack, which already grow within FB.
- pjmlp 4y agoSingle threaded JIT for dynamic languages is no match to JIT designed for static languages or plain AOT compiled languages. I cringe every time I need to deal with node powered software on the backend, including some famous build tools.
- Kukumber 4y agoc++ and rust for server side use? I would have expected Go even for CLI due to fast compilation and easy cross compilation out of the box Their manager is either incompetent, or he is very opinionated, wich doesn't sound good for their stack
- rajnathani 4y agoIn a pre-AST project 2 world, I've found the following 4 languages work well for programming (non-frontend) use cases, based on my startup experience: - Java (with JOOQ): As a high level typed language (similar to Hack for Meta's use case. If Golang's generics help create a JOOQ equivalent in the future, then this would be Golang). - C++/Carbon: As a systems/performance language. (We haven't tried Carbon yet, but this I feel would help beat Rust for this systems category) - JS/TypeScript (Node or Deno or zx): As a scripting/tools language. - Python: As a data processing and machine learning language (primarily thanks to the JIT computing and data libraries for Python). (This list ignores CUDA :))
- rajnathani 4y agoUpdate: This list can be brought down to 3, if Java is substituted with TypeScript(/WASM-target for the future?), with a type-safe SQL codegen library such as: https://github.com/adelsz/pgtyped https://github.com/adelsz/pgtyped Update update: Or reluctantly with Python instead, with a similar library such as PugSQL.
- rajnathani 4y agoUpdate update update: It may be naive to assume Carbon "beating" Rust, when it has not been tried out by us. Carbon, it seems, doesn't have any added memory or thread safety: https://www.reddit.com/r/cpp/comments/w2t2zn/comment/igv1pn0/ https://www.reddit.com/r/cpp/comments/w2t2zn/comment/igv1pn0...