Braid: A Post-PowerShell Shell - Bruce Payette - PSConfEU 2023

I, Bruce Payette, discuss a new shell called "Braid" based on PowerShell technology. In this part of the conversation, I discuss property patterns and how they can be used for extracting properties using pattern matching. I explain that property patterns can be used in patterns and regular assignments, and they can also be used in flow control, such as in while loops. I then move on to talk about keywords in PowerShell and how they are just special forms, which are another type of function. I explain that anyone can add their own control structure to the language, which is both wonderful and annoying. A question is asked about overriding built-in functions, and I explain that while it may not be possible in the global scope, it can be done in a local scope inside a function. I then discuss higher-order functions and how they are a big deal in functional programming. I give an example of script blocks as higher-order functions in PowerShell and mention that operators in PowerShell are also just functions. I contrast this with the limitations of using functions and variables in PowerShell and explain that scoping in PowerShell is dynamically scoped, unlike in Lisp where it is lexically scoped. Next, I talk about closures in PowerShell and how they allow for variable capture. I give an example of how closures work in a make counter function. Moving on, I explain tail recursion and the advantages it offers for doing certain types of algorithms effectively. I mention that PowerShell supports tail recursion, which some people had asked about early on. I briefly touch on metaprogramming in Lisp, including special forms and the use of eval. Although eval is usually considered evil in other languages, it is not the case in Lisp because it takes a constructed list rather than a string. We need to sanitize the string before calling eval and process it into a list for it to work. Macros are another type of function that generate code at compile time. The transformation is done once at compile time, making it efficient. The parameter binder in PowerShell is slow, resulting in slower performance compared to Braid's dispatch mechanism. PowerShell is faster than Braid only in scenarios where a for loop is used with no cmdlets or functions. We looked at some examples of working with group by, finding the number of types of files in a directory, and counting classes in the source tree. We also explored working with processes, recursive functions, Windows Forms, and concurrency with async/await. Chapters: 00:00:00 Braid: A Post-PowerShell Shell - Bruce Payette - PSConfEU 2023 00:00:07 Introducing PowerShell and Personal Experiment 00:02:14 Diving into PowerShell's Syntax and Composition 00:04:23 Introducing Braid and its Functionality 00:06:01 Performing Operations and Calculations with Braid 00:06:41 Introduction to the read file function and line count 00:08:19 Array literals and simplified hash tables in Braid 00:11:15 More features in Braid: type literals and numeric literals 00:12:40 Understanding the behavior of entity return in PowerShell 00:13:47 Creating Functions with Combined Integers 00:15:27 Compound Symbol for Structuring Variables 00:16:48 Introducing Property Patterns and Slides 00:18:35 Destructuring with Compound Symbols and Property Patterns 00:20:23 Using the Reduce Statement for List Operations 00:20:55 Squaring Numbers in PowerShell 00:22:44 Function returning without arguments and lexical scope 00:23:39 Understanding Closures in Object-Oriented Programming 00:25:35 Reversing a List with Recursive Function 00:27:40 Sanitizing Input and Macros in Lisp 00:29:25 Transformation of for statement into do block 00:31:13 PowerShell Performance Comparison: PowerShell vs. PSVIP 00:32:48 Simplifying PowerShell Commands and Functions

Building a Large PowerShell Application - Bruce Payette - PSConfEU 2023
▶︎

Building a Large PowerShell Application - Bruce Payette - PSConfEU 2023

Leveraging Braid and PowerShell - Bruce Payette - PSConfEU 2026
▶︎

Leveraging Braid and PowerShell - Bruce Payette - PSConfEU 2026

Spawn of a Shell - Handling Sub Processes - Jordan Borean - PSConfEU 2026
▶︎

Spawn of a Shell - Handling Sub Processes - Jordan Borean - PSConfEU 2026

Workstation Configuration as Code lifecycle with WinGet - Demitrius Nelon - PSConfEU 2026
▶︎

Workstation Configuration as Code lifecycle with WinGet - Demitrius Nelon - PSConfEU 2026

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Microsoft Graph with PowerShell 101 - Jan-Hendrik Peters - PSConfEU 2026
▶︎

Microsoft Graph with PowerShell 101 - Jan-Hendrik Peters - PSConfEU 2026

Develop, maintain and distribute PowerShell modules in isolation - Evgenij Smirnov - PSConfEU 2026
▶︎

Develop, maintain and distribute PowerShell modules in isolation - Evgenij Smirnov - PSConfEU 2026

Tips for C Programming
▶︎

Tips for C Programming

Total Idiots at Work Caught on Camera | Best of 2024
▶︎

Total Idiots at Work Caught on Camera | Best of 2024

PINK & ORANGE GRADIENT IN HD [3 HOURS]
▶︎

PINK & ORANGE GRADIENT IN HD [3 HOURS]

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup
▶︎

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker
▶︎

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

Something is jamming GPS over Europe. Here's what we found
▶︎

Something is jamming GPS over Europe. Here's what we found

Implementing PSRemoting at Devolutions: Lessons Learned - Marc-André Moreau - PSConfEU 2026
▶︎

Implementing PSRemoting at Devolutions: Lessons Learned - Marc-André Moreau - PSConfEU 2026

Every Level of Reverse Engineering Explained
▶︎

Every Level of Reverse Engineering Explained

Trump Declares Iran Ceasefire "Over" & Goes No-Contact with Spain | The Daily Show
▶︎

Trump Declares Iran Ceasefire "Over" & Goes No-Contact with Spain | The Daily Show

Migrating everything to PowerShell Universal - Including humans! - Björn Sundling - PSConfEU 2026
▶︎

Migrating everything to PowerShell Universal - Including humans! - Björn Sundling - PSConfEU 2026

Instant Focus Mode – 40Hz Gamma Brainwave Music for Deep Focus & Productivity
▶︎

Instant Focus Mode – 40Hz Gamma Brainwave Music for Deep Focus & Productivity

The Insane Genius of a Formula 1 Gearbox
▶︎

The Insane Genius of a Formula 1 Gearbox

Bruce Payette - Powershell
▶︎

Bruce Payette - Powershell