Russell Cohen has watched hundreds of teams try to adopt Rust at Amazon over the past decade. Most of them The post Why Your Rust Adoption Will Probably Fail (And How To Beat the Odds) appeared first on The New Stack.| The New Stack | DevOps, Open Source, and Cloud Native News
Microsoft has tinkered with Windows security for decades. Now the company is trying to fix it with Rust, and they The post Microsoft’s Rust Bet: From Blue Screens to Safer Code appeared first on The New Stack.| The New Stack | DevOps, Open Source, and Cloud Native News
It’s easy to get developers excited to try Ruby on Rails, with its productivity, speed and efficiency … but, then The post New Rust-Based Tool Installs Ruby in Seconds appeared first on The New Stack.| The New Stack | DevOps, Open Source, and Cloud Native News
I was incredulous when I read this observation from Reginald Braithwaite: Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can’t write code at all. I repeat: they can’t write any code whatsoever. The author he’s| Coding Horror
If you’ve been in the mobile app development space for a while, you already know that app security is no longer a nice-to-have — it’s a necessity. Between the buzzwords and the rapidly evolving threat landscape, the conversation around mobile app security can feel overwhelming. To cut through the noise, let’s take a closer look at tampering, runtime protections, and where anti tamper security fits within the broader framework of securing mobile applications.| Guardsquare Blog
Steering your way through the bustling metropolis of web development can feel like a real pickle, especially with the landslide of programming languages one| ProfileTree Web Design and Digital Marketing
Unlike the TMS1000, which had 32 bytes (bytes, not kilobytes!) of RAM, the unit in Dark Tower, the TMS1400, had twice that: 64 bytes of RAM. As perspective, this single sentence using ASCII takes 6…| Troy Press
The Actor Model is a broad concept that was proposed in the last century. It views an actor as a whole, which can be an atomic variable,| smallyu‘s Blog
1. Is an Auto-Increment Primary Key Necessary in MySQL? Sometimes we use a meaningful field as the primary key,| smallyu‘s Blog
Rust is memory safe. Facebook’s Libra uses Rust for development and has introduced a new programming language called Move. Move’s most| smallyu‘s Blog
The first time I heard about Monad was at a Scala Meetup. Later, I tried to understand the concept of Monad but was overwhelmed by| smallyu‘s Blog
Long, Long Ago, there were numerous Python web scraping tutorials available online, and various training courses leveraged the trend to| smallyu‘s Blog
A swordsman in the martial world must have a handy sword. A good programming language is like a good sword: the weight is appropriate,| smallyu‘s Blog
When learning a programming language, it is important to start with its features rather than the language itself. Here, we attempt a| smallyu‘s Blog
Origin I wanted to implement a Markdown parser using Java,| smallyu‘s Blog
PHP 7 has been released for a long time, and it can make code more concise. Let’s take a look at its features.| smallyu‘s Blog
If you’ve ever worked with Rust, you’d know it feels like talking straight to your computer’s core. It’s a system programming language known for its direct line to hardware—no middleman required. And why does this matter? Well, the programming language you pick can set the course for your entire project. Deciding which language to use […] The post Rust vs Alternative Programming Languages: How Do They Compare? appeared first on K&C. The post Rust vs Alternative Programming Languag...| K&C
In a way, these two books are responsible for my entire professional career. With early computers, you didn’t boot up to a fancy schmancy desktop, or a screen full of apps you could easily poke and prod with your finger. No, those computers booted up to the command| Coding Horror
I didn’t choose to be a programmer. Somehow, it seemed, the computers chose me. For a long time, that was fine, that was enough; that was all I needed. But along the way I never felt that being a programmer was this unambiguously great-for-everyone career field with zero downsides.| Coding Horror
The dot-com bubble was a watershed event for software developers. You simply couldn’t work in the field without having something miraculous or catastrophic happen to you. Or both at once. The “dot-com bubble” was a speculative bubble covering roughly 1995 — 2001 during which stock markets in Western nations saw| Coding Horror
I Don't Like Imports| kevincox.ca
Learning Java programming is now simple with these steps, key concepts, and practical tips that will help you become a skilled Java developer.| ProfileTree Web Design and Digital Marketing
Is Python a Programming Language? Have you ever found yourself pondering whether Python is an actual programming language or merely a tool for scripting?| ProfileTree Web Design and Digital Marketing
A case for why Wasm is neither Web nor Assembly| Thunderseethe's Devlog
Learn how to use Python’s optional type-hinting syntax to create cleaner and more useful code.| InfoWorld
I recently thought of a nice way to structure a language for parallel programming around the concept of sequential composition. Think of parallelism as the default—evaluate everything in parallel unless the semantics of the situation precludes it: sums are posterior to summands, but the summands can be evaluated simultaneously. You need a way to express […]| Existential Type
For decades my colleague, Guy Blelloch, and I have promoted a grand synthesis of the two “theories” of computer science, combinatorial theory and logical theory. It is only a small exaggeration to say that these two schools of thought work in isolation. The combinatorial theorists concern themselves with efficiency, based on hypothetical translations of high-level algorithms […]| Existential Type
Having just returned from the annual Oregon Programming Languages Summer School, at which I teach every year, I am once again very impressed with the impressive growth in the technical sophistication of the field and with its ability to attract brilliant young students whose enthusiasm and idealism are inspiring. Eugene was, as ever, an ideal […]| Existential Type
Turning our Base IR into executable WebAssembly| Thunderseethe's Devlog
Back in late March, I wrote about Java 22 introducing Stream Gatherers into the mix for Java Developers. They are a new mechanism for manipulating streams of data. They are delivered from JEP 461, allowing a developer to create custom operators that simplify the highly complex operations. Just at first| CoderOasis
As I have learned in Java, enumerated types (enums) are a special data type that enables a variable to be predefined constants. The goal of this article is to allow people to understand traditional enumerated types and typesafeenums. It will also highlighting their implementation, advantages, and usage in the| CoderOasis
Enumerations (Enums) provide a powerful way to represent a set of named values. Enums bring clarity, maintainability, and readability to code by replacing numeric or string constants with more meaningful named constants. The most common way I see people use enums is in roles in a web application such as| CoderOasis
Let us begin with a pretty simple question. Does every Java Developer understand how memory works in Java? One goal of a Java Developer is to make sure their application has some of the best performance it can get from fine-tuning their Java software applications. Java Memory Management takes some| CoderOasis
Converting our lambda functions into closures for the Base IR.| Thunderseethe's Devlog
Optimizing our base IR via inlining| Thunderseethe's Devlog
1 A couple of days ago, I encountered a small problem: a Solidity smart| smallyu‘s Blog
Discover 2023 best programming languages for web development, with insights on features, flexibility, and market trends to help you choose the right one.| ProfileTree Web Design and Digital Marketing
This week, the new version of Perl was announced. The new version 5.38 is extremely interesting because it introduces classes, which are built-in in the core language. The feature is currently marked as experimental, but nevertheless it was interesting for me to try it out.| Andrew Shitov
Let us solve the second task from the Weekly Challenge 204. It is called ‘Reshape matrix’.| Andrew Shitov
Let us ask ChatGPT to find a solution and then correct it to make it more Raku-ish. This task, the machine solved the thing from the first attempt, but you can follow how we managed to make it better and more compact. Most (except one) of the generated code workes without compiler errors, so I will not concentrate on it here.| Andrew Shitov
Typechecking multiple applications at a time opens new opportunities for inferring types| Thunderseethe's Devlog
Lowering row asts by generating evidence terms| Thunderseethe's Devlog
Lowering row evidence from our type scheme| Thunderseethe's Devlog
Article by Darryl Taft for The New Stack English is not a Programming Language In which Darryl Taft writes about the idea that English is becoming the [...]| intellyx.com
Explaining how we'll lower row types into our IR| Thunderseethe's Devlog
In an article in the February, 2025 issue of Communications of the ACM, I join 20 coauthors from across academia and industry in writing about the remarkable opportunity for universal strong memory safety in low-level Trusted Computing Bases (TCBs) enabled by recent advances in type- and memory-safe systems programming languages (e.g., the Rust language), hardware memory protection (e.g., our work on CHERI), formal methods, and software compartmentalisation. These technologies are seeing incr...| Light Blue Touchpaper
Implementation of our lowering function| thunderseethe's devlog
Dear Debian community, this is Bits from DPL for October. In addition to a summary of my recent activities, I aim to include newsworthy developments within Debian that might be of interest to the broader community. I believe this provides valuable insights and foster a sense of connection across our diverse projects. Also, I welcome your feedback on the format and focus of these Bits, as community input helps shape their value. Ada Lovelace Day 2024 As outlined in my platform, I'm committed t...| Bits from Debian
Lowering our typed base AST into a System-F based IR| thunderseethe's devlog
An explanation of DeBruijn Indices| thunderseethe's devlog
Ilan Iwumbwe and Benny Liu did undergraduate research placements with me this summer, and I’m very pleased that they will be presenting their work at the Programming Languages for Quantum Computing (PLanQC) workshop at POPL next month. Ilan and Benny built a tool called QuteFuzz that randomly generates descriptions of quantum circuits. The idea is… Continue reading Fuzzing Quantum Compilers→| Wickopedia
An expose on Implicits and Local Coherence| thunderseethe's devlog
I am always fascinated by how us technologists can’t leave our backends out of API discussions. Keeping an API design conversation just about the interface between a producer and consumers proves to be one of the most difficult things about collaborating within or across teams. Sure, there are plenty of backend concerns expressed in interfaces, but those things need to be abstracted away and distilled down into only what is needed for a single, or series of API transactions with consumers. ...| API Evangelist
Back in May 1974, Donald Chamberlin and Raymond Boyce published an awesome paper to read on SEQUEL. This was a structured query language that could be used to manage and sort data easy in software or web application. They had to make a change in the title due to another| CoderOasis
Program synthesis is an appealing notion: I give you a pretty good (but incomplete) description of a program, and you give me a working program back out. What do successful program synthesis tools have in common? When is program synthesis worthwhile?| weaselhat
Kleene algebra with tests is a beautiful, powerful framework for reasoning about programs. But creating new concrete KATs is hard. Our PLDI 2022 paper offers a theoretical framework for deriving concrete KATs, along with an OCaml implementation.| weaselhat
I want to believe in a future where the lion will lie down with the lamb; we’ll beat our swords into plowshares; and developers will migrate dynamic prototypes to robust static systems with confidence. But these Aquarian visions are elusive. Having a map of the road to paradise in theory doesn’t mean we know how […]| weaselhat
This post explores unusual primitive constructs in programming languages, from data-like primitives to somewhat esoteric features. Unusual primitives are interesting because they indicate an attempt by the language designer to help the programmer think in a new way. Acknowledgement: This writeup is a response and followup to Hillel Wayne’s …| dr knz @ work
The Hoare triple has a very simple meaning, namely: . That is: if the precondition is satisfied in some state , and can transform into , then must satisfy the postcondition . (We’ll allow non-deterministic commands, so need not be uniquely determined by and .) Or, more concisely: if holds before executing , then will… Continue reading What is the other Incorrectness logic?→| Wickopedia
This post is about a paper by Yann Herklotz, James Pollard, Nadesh Ramanathan, and myself that will be presented shortly at OOPSLA 2021. High-level synthesis (HLS) is an increasingly popular way to design hardware. It appeals to software developers because it allows them to exploit the performance and energy-efficiency of custom hardware without having to learn… Continue reading High-level synthesis, but correct→| Wickopedia
If you’ve ever attended a seminar about weak memory models, chances are good that you’ve been shown a small concurrent program and asked to ponder what is allowed to happen if its threads are executed on two or three different cores of a multicore CPU. For instance, you might be shown this program: and asked… Continue reading Understanding the memory semantics of multi-threaded CPU/FPGA programs→| Wickopedia
This post is about a paper by Matt Windsor, Ally Donaldson, and myself that will presented shortly at the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) conference, in the tool demonstrations track. Compilers are a central pillar of our computing infrastructure, so it’s really important that they work correctly. There’s been a… Continue reading Introducing C4: the C Compiler Concurrency Checker→| Wickopedia
High-level synthesis – the automatic compilation of a software program into a custom hardware design – is an increasingly important technology. It’s attractive because it lets software engineers harness the computational power and energy-efficiency of custom hardware devices such as FPGAs. It’s also attractive to hardware designers because it allows them to enter their designs… Continue reading Fuzzing High-Level Synthesis Tools→| Wickopedia
T-diagrams (or tombstone diagrams) are widely used by teachers to explain how compilers and interpreters can be composed together to build and execute software. In this blog post, Paul Brunet and I revisit these diagrams, and show how they can be redesigned for better readability. We demonstrate how they can be applied to explain compiler… Continue reading Diagrams for Composing Compilers→| Wickopedia
I had a great time at PLDI 2018 last week. Here is my take on a few of the papers that stood out for me. John Vilk presented a tool called BLeak for finding memory leaks in web browsers. One might think that leak detection is not important in a garbage-collected setting, but Vilk explained… Continue reading Greatest hits of PLDI 2018→| Wickopedia
What follows is a summary of the main contributions of a paper by Nadesh Ramanathan, George Constantinides, and myself that will be presented at the FCCM 2018 conference. If you want to compute something, you have two broad options: do it in software, or do it in hardware. A custom piece of hardware can give you… Continue reading Concurrency-aware scheduling for high-level synthesis→| Wickopedia
Chatting with Adam Gordon Bell on Corecursive—mostly TypeScript, but also a bit of Rust, type theory, and productivity!| v4.chriskrycho.com
No Starch's The Rust Programming Language is a genuinely *great* introduction to Rust, and a genuinely great programming book.| v4.chriskrycho.com
A worked example of transforming if/else statements to the proposed pattern-matching syntax, showing how much pattern-matching can clarify (as well as shorten) complicated code.| v4.chriskrycho.com
In this post, I want to talk about a dynamic that I’ve seen play itself over and over again in the software world. In fact, I would venture a guess that this kind of situation probably happen…| Pointers Gone Wild
I am presenting two “Tips and Techniques” papers at the ITiCSE 2023 conference in Turku, Finland on Tuesday July 11th. The papers are presenting the same scaffolded sequence of programming language…| Computing Ed Research - Guzdial's Take
In my previous post on shuffling, I glossed over something very important. The very first thing that came to mind for a shuffle algorithm is this: for (int i = 0; i < cards.Length; i++) { int n = rand.Next(cards.Length); Swap(ref cards[i], ref cards[n]); } It’s a| Coding Horror
In an earlier post on the philosophy of code comments, I noted that the best kind of comments are the ones you don’t need. Allow me to clarify that point. You should first strive to make your code as simple as possible to understand without relying on comments as| Coding Horror
Phil was invited to speak at the Goto| 200ok - Accelerating Publishing
Once upon a time, I spent multiple months implementing a graphing calculator using GW-BASIC (manual). Would I be able to do the same more quickly and effectively today using generative AI? ❦❦❦ Let’s give it a go, using Claude AI to start: Implement a simple graphing calculator in GW …| dr knz @ work
In any comparative discussion about programming languages, the probability that the conversation will mention Brainfuck or INTERCAL approaches 1 over time. (Based on years of empirical evidence as a scientist, programmer and unix hacker.)| dr knz @ work
My friend Nathan and I published an article on the Cockroach Labs Blog: Revisiting SQL typing in CockroachDB. In this article, we explain the type system we implemented for CockroachDB v1.0’s SQL dialect. It implements a large subset of PostgreSQL’s own dialect and performs inference using a …| dr knz @ work
A response to “Spooky action at a distance” by Drew DeVault. As Abraham Maslow said in 1966, “I suppose it is tempting, if the only tool you have is a hammer, to treat everything …| Software is Crap
I gave up after yesterday’s quirky A* assignment. Advent of Code is an Advent calendar for …| Brain Baking
December marks the beginning of the countdown to Christmas, traditionally via Advent calendars. For …| Brain Baking
Row, row, row your types| thunderseethe's devlog
I’ve done a fair amount of work on persistent object systems, starting with the Thor distributed storage system and more recently, the Fabric system. I used to think the point of persistent o…| Andrew Myers
I just inadvertently ran a poorly controlled experiment on the relative virtues of these three programming languages, at least for the job of writing compilers. Despite the nonexistent experimental…| Andrew Myers
There has been much nice work lately on proving that complex software is written correctly, including components like operating systems, compilers. But it’s hard to see how to scale these her…| Andrew Myers
That’s a good question! CS1 courses, or Computer Science 1, are typically the first computing …| Brain Baking
Eric Lippert notes the perils of programming in C++: I often think of C++ as my own personal Pit of Despair Programming Language. Unmanaged C++ makes it so easy to fall into traps. Think buffer overruns, memory leaks, double frees, mismatch between allocator and deallocator, using freed memory, umpteen dozen| Coding Horror