InfoQ Homepage System Programming Content on InfoQ
-
Sonic: A Lightweight, Schema-Less Search
Sonic is an open source, lightweight, schema-less search backend promoted as an alternative to full-feature search systems such as Elasticsearch. Sonic can normalize natural language search queries, provide auto-complete, and return the most relevant results for a search query.
-
MIT Debuts Gen, a Julia-Based Language for Artificial Intelligence
In a recent paper, MIT researchers introduced Gen, a general-purpose probabilistic language based on Julia aimed to allow users to express models and create inference algorithms using high-level programming constructs.
-
Interfacing Elixir with Rust to Improve Performance: Discord's Story
When the Discord team hit a hard-limit on BEAM's performance dealing with large data structures, they resorted to interfacing Elixir with Rust to make their system able to scale up to 11 million concurrent users.
-
Microsoft Introduces Bosque, a Programming Language for Writing Easy-to-Reason-about Code
Microsoft has recently introduced the Bosque programming language, an investigative language design research project for writing code that is simple, obvious, and easy-to-reason-about for both humans and machines. The language derives from a combination of TypeScript inspired syntax and types, plus ML and Node/JavaScript inspired semantics.
-
Rust Evolution in 2019 Will Aim for Maturity
This year's roadmap for Rust was the result of an open call for blog posts from the community to set out major priorities for the language development throughout 2019, including reshaping the governance model, bringing to light new language features, and improving the compiler.
-
Rust 1.34 Introduces Alternative Registries for Non-Public Crates
The most significant feature in Cargo 1.34 is support for using alternative cargo registries, which could be a game changer in enterprise environments. Additionally, this release also include support for ? in documentation tests, and several improvements to the standard library.
-
Deploying Rust-Generated WASM on Cloudflare Serverless Workers
Recently open-sourced by Cloudfare, Wrangler is a set of CLI tools to build, preview, and publish Cloudfare Workers written in Rust and compiled to WebAssembly.
-
Go 1.12 Improves Runtime Performance and Module Support
The latest release of Go, version 1.12, includes no syntactical changes to the language and focuses on improving runtime performance, the toolchain, and the module system. Additionally, it provides opt-in support for TLS 1.3, and improved support for macOS and iOS.
-
NPM Adopted Rust to Remove Performance Bottlenecks
Npm exponential growth drove the npm engineering team to switch from Node.js to Rust to handle CPU-bound tasks that were going to become a performance bottleneck. A recent white paper overviews the experience of developing the new service in Rust and running it in production for more than one year.
-
Deliveroo Adopts Rust to Improve Performance in Core Service
Deliveroo reimplemented performance-critical components of their Dispatcher service in Rust, with an overall 4x performance improvement. InfoQ spoke with Deliveroo engineer Andrii Dmytrenko to learn more about the advantages they got from this rewrite and what it took to get there.
-
Mitigating Software Vulnerabilities at Microsoft over the Last 20+ Years
At BlueHat IL 2019, Microsoft engineer Matt Miller described how the software vulnerability landscape has evolved over the last 20+ years and the approach Microsoft has been taking to mitigate threats. Interestingly, among the major culprits of security bugs, says Miller, are memory safety issues, which account for 70% of total security bugs Microsoft has patched.
-
Scratch 3 Released with Tablet Support and New Extension System
MIT released the latest version of their visual programming language Scratch on January 2. Scratch 3 brings changes to the look and feel of the Scratch layout, new paint and editing tools, new code blocks, and a new extensions system. Scratch 3 is available in both online and offline versions and can now be run on tablets.
-
Rust 1.32 Improves Tracing, Modules, Macros, and More
Rust 1.32 includes a number of new language features meant to improve developer experience when tracing the execution of programs for debugging purposes. Additionally, it now uses the system allocator by default, completes work on the module system to make it easier to use, and more.
-
Previewing Swift 5 Result Type
One of the most awaited proposals for Swift 5, Result, has already landed into the language. The Result type forces the programmer to explicitly handle the failure and success cases before they can gain access to the actual value. Let’s have a look at how it is implemented, how you can use it, and why it was needed.
-
AWS Lambda Layers and Runtime API: beyond Officially Supported Runtimes
AWS re:Invent 2018 had numerous announcements of new features and services, including Lambda Layers, to centrally manage code and data shared across functions, and the Lambda Runtime API, expanding Lambda beyond JavaScript to any programming language.