This article was written in collaboration with Neil Mitchell, a Software Engineer at Facebook.
For today’s interview, we have Neil Mitchell who is a Software Engineer on the Build Infrastructure team at Facebook. The Build Infrastructure team works on build systems such as Buck. While working on this team, Neil has been using Rust as one of the main languages for development. Let’s hear from him about how his experience with Rust has been and learn more about his work.
Tell us a little about yourself
I’m Neil, a Haskell programmer at heart, who has been doing a lot of Rust recently. I did a PhD in Haskell which included making Haskell programs shorter, faster and safer. I joined Facebook 18 months ago to work on developer tooling, which has involved a transition to more Rust.
Why did you/your team at Facebook choose to use Rust over other languages?
I’m a strong believer in having the compiler check your work for you – with enough programmers, and enough code, no one can possibly remember all the subtle properties that make your code safe. However, by enforcing certain rules, the compiler can. The Rust compiler ensures mutability is tamed, concurrency is safe and memory is not leaked. That safety gives us the ability to aggressively refactor as we learn. Combined with advanced abstraction that makes for a powerful language.
What are some of the projects that you’ve worked on at Facebook that use Rust?
I’ve worked on two Rust projects at Facebook that have been open-sourced:
Gazebo is a library of little utility functions for Rust. Nothing it provides is earth-shattering, but having all these little helpers, refined, documented and tested, can prove a real boost. For example, there are functions for splitting strings, annotating cheap versions of clone, the Any trait with lifetimes.
Starlark is an implementation of the Starlark configuration language, in Rust. This project provides a parser, implementation, linter, IDE tools and debugger for the Starlark language. The Starlark language is a deterministic version of Python, often used for configuration. For more information on how Starlark works, check out this blog on our Facebook for developers page.
How do you feel about Rust’s growth trajectory at Facebook?
I think Rust has all the properties to grow into a major language at Facebook. It’s a safer C++. It’s a faster Python. It offers compelling benefits compared to most of the alternatives in this space.
What value does Facebook add to Rust?
Facebook has a large number of programmers, and the more people you have programming a language, the more incidental benefits you get. Beyond that, Facebook often releases open-source libraries, including those in Rust, e.g. Gazebo and Starlark as mentioned above.
How do you think Rust is growing as a language in 2021?
Some people who have used Rust have come to really like it. Why do you think that is and what is your favorite feature about Rust?
Rust has loads of features I like, but my favourite feature in Rust are constructors. In a language like Java, a constructor has lots of special rules, must call super-type constructors, must return an instance of the class – it’s restrictive and annoying. In Rust, a constructor isn’t special – but by convention, it is a static method usually called new, and usually returns Self (the type of the struct). But since it’s a by-convention thing, it feels like a constructor, but all the rules can be tweaked, and it’s much simpler because it isn’t special. This isn’t a big thing, but it’s my favourite feature because it epitomises Rust – a bunch of well-thought-out simplifications that together have a huge impact.
Where can people learn more about Rust and how can they start contributing to it?
There are many resources for learning Rust. I particularly liked Learning Rust With Entirely Too Many Linked Lists. I don’t really recommend any books, because Rust is somewhat resistant to learning through reading – you have to write code. Spend some time setting up your editor and IDE of choice, as much of starting out with Rust is learning to have a conversation with the compiler and borrow-checker. To contribute, start writing some code, and follow wherever your heart takes you.
We would like to thank Neil for taking the time to do this interview. It was very interesting to learn how Rust is being used as a primary language for build systems and how we are learning from all the things we build here and contributing back to the Rust community. We hope you found this interview useful and it gave you some insight into how and where Rust is being used at Facebook. Look out for more interview blogs where we meet with many more engineers and hear their thoughts on this topic.
About the Meet the Rustaceans series
Rust has consistently been ranked as the “most loved” language for the last 5 years and we at Facebook believe that Rust is an outstanding language that shines in critical issues such as memory safety, performance and reliability and is being used widely over a large range of projects here. We joined the Rust Foundation to help contribute towards the improvement and growth of Rust, which not only strengthens our commitment towards the Rust language but also towards a sustainable development of open source technologies and developer communities across the world.
This blog is a part of our Meet the Rustaceans series, where we invite the engineers and developers who use Rust on a regular basis to share their experiences and tell us about the amazing products that they are building using Rust here at Facebook. Look out for more interview blogs where we meet with many more engineers and hear their thoughts on this topic.
Interested in working in Infrastructure at Facebook? Check out our job postings on our Infrastructure career page here.
Facebook-Meta Earns the ‘Worst Company of 2021’ Title in This Survey
Facebook parent Meta has been named the Worst Company of the Year (2021) by Yahoo Finance respondents. According to the publication, an “open-ended” survey was published on Yahoo Finance on December 4 and 5, where 1,541 respondents participated. Facebook received 8 percent of the write-in vote, but respondents were seemingly mad about the Robinhood trading app as well. Electric truck startup Nikola, which was named last year’s worst company by the same publication also faced respondents ire.
Yahoo Finance even highlights, “At the same time, some critics, including conservatives, say Facebook over-policed the platform’s speech and stifled their voices.” Critics also blame Facebook and other social media platforms for not curbing hate speech that led to Capitol Building riots.
However, around 30 percent of Yahoo Finance readers said that Facebook or Meta could redeem itself. One respondent suggested that the company could issue a formal apology for negligence and donate a sizable amount of its profits to a foundation to help reverse its harm.
On the other hand, respondents chose Microsoft as the Company of the Year (2021). The Satya Nadella-led company touched the trillion-mark this year and introduced notable upgrades. The most notable is the Windows 11 OS update that succeeds Windows 10.
Facebook pays 1.7 Cr fine to Russia after failing to delete content Moscow deems illegal
In the latest legal tussle with Russia over controversial social media regulation laws, Facebook paid 17 million roubles (Rs 1.7 Crore) for failing to remove content deemed illegal by Moscow. With a threat of potential larger fines looming, Facebook parent company Meta, owned by Mark Zuckerberg, is scheduled to face court next week over repeated violations of Russian legislation on content, Interfax News Agency reported. As per the latest updates, the social media giant could be fined a percentage of its annual revenue.
In October, Moscow sent state bailiffs to enforce the collection of 17 million roubles. Meanwhile, as per Interfax report citing a federal bailiffs’ database, on Sunday, there were more enforcement proceedings against the company. Apart from the popular social media app, Telegram has also paid 15 million roubles in fines for failing to comply with the Russian social media legislations that came into force in 2016.
Facebook pays $53k to Russia for refusing controversial social media laws
It is pertinent to mention that Facebook has locked horns with Moscow earlier in November, resulting in it paying 4 million roubles ($53,000) over its refusal to adhere to Russian data localisation laws, the Moscow Times reported. The Moscow court on November 25 had said that Facebook paid the fine levied in February, following which all proceedings against the US-based social media giant. The payment comes against the litigation filed against the company in 2018, alongside Twitter. The tech companies were also forced to pay an additional 3000 rubles ($40) for failing to comply with user data sharing rules as per the law. The Russian authorities have also previously blocked LinkedIn, owned by Microsoft, for failing to abide by the laws.
Russian social media laws
As per Moscow Times, under the Russian social media regulation laws, all foreign technology companies are required to store data related to Russian customers and users on servers located in Russia. Additionally, the Russian tech companies will also have to share encryption data with the federal authorities as well as record user calls, messages and civil society group conversation records. The apparatus is said to be a severe breach of privacy rights and unfettered back-door access to personal data that could be used to harass Kremlin critics.
Facebook Messenger Is Launching a Split Payments Feature for Users to Quickly Share Expenses
Meta has announced the arrival of a new Split Payments feature in Facebook Messenger. This feature, as the name suggests, will let you calculate and split expenses with others right from Facebook Messenger. This feature essentially looks to bring an easier method to share the cost of bills and expenses — for example, splitting a dinner bill with friends. Using this new Split Payment feature, Facebook Messenger users will be able to split bills evenly or modify the contribution for each individual, including their own.
The company took to its blog post to announce the new Split Payment feature in Facebook Messenger. 9to5Mac reports that this new bill splitting feature is still in beta and will be exclusive to US users at first. The rollout will begin early next week. As mentioned, it will help users share the cost of bills, expenses, and payments. This feature is especially useful for those who share an apartment and need to split the monthly rent and other expenses with their mates. It could also come handy at a group dinner with many people.
With Split Payments, users can add the number of people the expense needs to be divided with and, by default, the amount entered will be divided in equal parts. A user can also modify each person’s contribution including their own. To use Split Payments, click the Get Started button in a group chat or the Payments Hub in Messenger. Users can modify the contribution in the Split Payments option and send a notification to all the users who need to make payments. After entering a personalised message and confirming your Facebook Pay details, the request will be sent and viewable in the group chat thread.
Once someone has made the payment, you can mark their transaction as ‘completed’. The Split Payment feature will automatically take into account your share as well and calculate the amount owed accordingly.
Tasneem Akolawala is a Senior Reporter for Gadgets 360. Her reporting expertise encompasses smartphones, wearables, apps, social media, and the overall tech industry. She reports out of Mumbai, and also writes about the ups and downs in the Indian telecom sector. Tasneem can be reached on Twitter at @MuteRiot, and leads, tips, and releases can be sent to firstname.lastname@example.org.