Plus an update on Rails 6, Intel's growing adoption of Rust, and the challenge of making breaking changes.

Links:

Feedback: Academia and Industry — Do either of you have any insights as to how the software development community would view someone with a math PhD, but no industry coding experience as a job applicant? Any advice would be appreciated.

Feedback: Absurd Abstractions — FYI about wanting `interface` in Python: they are called abstract base classes. Check out the standard library module, abc for that and collections.abc some useful predefined container interfaces.

Feedback: Breaking Changes — I developed a niche Python package that has some user following in the network security realm. I’m at a crossroads though as a change I want to make will subtly break scripts that worked in previous/current versions. The end result of my pending change is good for the project but I fear I’ll ruin the workflow of my users. Other than my github page I don’t know how to query/inform my users of this pending change. What should I do?

Altruism Still Fuels the Web. Businesses Love to Exploit It | WIRED — The original well-meaning, geeky architects of the web believed that there was an abundance of altruism in human nature—and they were more correct on this count, it turns out, than many esteemed social philosophers were. But they were too optimistic in overlooking the possibility that corporations would exploit and colonize this new realm. If only we had all seen it coming.

The Crystal Programming Language — Crystal is statically type checked, so any type errors will be caught early by the compiler rather than fail on runtime. Moreover, and to keep the language clean, Crystal has built-in type inference, so most type annotations are unneeded.

The Imposter's Handbook by Rob Conery — You've had to learn on the job. New languages, new frameworks, new ways of doing things - a constant struggle just to stay current in the industry. This left no time to learn the foundational concepts and skills that come with a degree in Computer Science.

]]>
We're back and going crazy about Crystal, a statically typed language that's as fast as C and as slick as ruby.

Plus an update on Rails 6, Intel's growing adoption of Rust, and the challenge of making breaking changes.

Links:

Feedback: Academia and Industry — Do either of you have any insights as to how the software development community would view someone with a math PhD, but no industry coding experience as a job applicant? Any advice would be appreciated.

Feedback: Absurd Abstractions — FYI about wanting `interface` in Python: they are called abstract base classes. Check out the standard library module, abc for that and collections.abc some useful predefined container interfaces.

Feedback: Breaking Changes — I developed a niche Python package that has some user following in the network security realm. I’m at a crossroads though as a change I want to make will subtly break scripts that worked in previous/current versions. The end result of my pending change is good for the project but I fear I’ll ruin the workflow of my users. Other than my github page I don’t know how to query/inform my users of this pending change. What should I do?

Altruism Still Fuels the Web. Businesses Love to Exploit It | WIRED — The original well-meaning, geeky architects of the web believed that there was an abundance of altruism in human nature—and they were more correct on this count, it turns out, than many esteemed social philosophers were. But they were too optimistic in overlooking the possibility that corporations would exploit and colonize this new realm. If only we had all seen it coming.

The Crystal Programming Language — Crystal is statically type checked, so any type errors will be caught early by the compiler rather than fail on runtime. Moreover, and to keep the language clean, Crystal has built-in type inference, so most type annotations are unneeded.

The Imposter's Handbook by Rob Conery — You've had to learn on the job. New languages, new frameworks, new ways of doing things - a constant struggle just to stay current in the industry. This left no time to learn the foundational concepts and skills that come with a degree in Computer Science.

Plus your feedback, combining ruby and rust, and the latest scandal with JEDI.

Links:

Emacs Feedback from DJ — Another point for the show is a soft intro to functional programming. Wes mentioned Emacs because of the packages supporting Clojure development when he started with that. Elisp seems to be fairly intuitive and well documented, as a little functional language its own right (correct me if I'm wrong)--this makes for a soft intro to FP. Most of my coding has been in the space of embedded systems and low-level languages--not much functional programming to be had. This show has gotten me curious about FP, which is quite old in concept, and getting implemented nicely in modern languages. For me, I still rely heavily on special Vim keys that are not mapped in evil-mode, which causes some paper cuts. However, elisp makes it easy to customize the desired UI functionality with very short programs/elisp statements in a config file. It's quite a refreshing exercise for someone like me.

AP Sources: Boeing changing Max software to use 2 computers — Boeing is working on new software for the 737 Max that will use a second flight control computer to make the system more reliable, solving a problem that surfaced in June with the grounded jet, two people briefed on the matter said Friday.

In Pentagon Contract Fight, Amazon Has Foes in High Places - The New York Times — Experts thought the contract for the Joint Enterprise Defense Infrastructure, known by the cinematic acronym JEDI, would go to Amazon Web Services, the dominant player in the field of cloud computing. They did not count on two developments: an extraordinarily aggressive public relations and lobbying campaign by Oracle, one of Amazon’s competitors, and the hostility of Mr. Trump to Amazon and its founder, Jeff Bezos.

]]>
Things get heated when it’s time for Wes to check-in on Mike’s functional favorite, F#, and share his journey exploring modern .NET on Linux.

Plus your feedback, combining ruby and rust, and the latest scandal with JEDI.

Links:

Emacs Feedback from DJ — Another point for the show is a soft intro to functional programming. Wes mentioned Emacs because of the packages supporting Clojure development when he started with that. Elisp seems to be fairly intuitive and well documented, as a little functional language its own right (correct me if I'm wrong)--this makes for a soft intro to FP. Most of my coding has been in the space of embedded systems and low-level languages--not much functional programming to be had. This show has gotten me curious about FP, which is quite old in concept, and getting implemented nicely in modern languages. For me, I still rely heavily on special Vim keys that are not mapped in evil-mode, which causes some paper cuts. However, elisp makes it easy to customize the desired UI functionality with very short programs/elisp statements in a config file. It's quite a refreshing exercise for someone like me.

AP Sources: Boeing changing Max software to use 2 computers — Boeing is working on new software for the 737 Max that will use a second flight control computer to make the system more reliable, solving a problem that surfaced in June with the grounded jet, two people briefed on the matter said Friday.

In Pentagon Contract Fight, Amazon Has Foes in High Places - The New York Times — Experts thought the contract for the Joint Enterprise Defense Infrastructure, known by the cinematic acronym JEDI, would go to Amazon Web Services, the dominant player in the field of cloud computing. They did not count on two developments: an extraordinarily aggressive public relations and lobbying campaign by Oracle, one of Amazon’s competitors, and the hostility of Mr. Trump to Amazon and its founder, Jeff Bezos.

]]>
364: Gabbing About Gohttps://coder.show/364
4bcc02e3-3aaf-4c20-89e2-750b9b88a52fMon, 01 Jul 2019 19:15:00 -0700Jupiter BroadcastingfullJupiter BroadcastingMike and Wes burrow into the concurrent world of Go and debate where it makes sense and where it may not.48:46noMike and Wes burrow into the concurrent world of Go and debate where it makes sense and where it may not.
Plus gradual typing for Ruby, a new solution for Python packaging, and the real story behind Jony Ive's exit.
Apple, Jony Ive, accounting, bureaucracy, go, concurrency, 7 languages in 7 weeks, 7 languages challenge, programming, goroutines, ruby, ruby on rails, static types, OOP, C++, application distribution, WSL, WSL2, Linux, Windows, IDE, sorbet, type checking, gradual types, stripe, compilers, PyOxidizer, rust, python, python packaging, pex, shiv, static linking, executable, prototyping, Jupiter Broadcasting, Developer podcast, Coder Radio
Mike and Wes burrow into the concurrent world of Go and debate where it makes sense and where it may not.

Plus gradual typing for Ruby, a new solution for Python packaging, and the real story behind Jony Ive's exit.

Links:

Goroutines - Concurrency in Golang — Goroutines are functions or methods that run concurrently with other functions or methods. Goroutines can be thought of as light weight threads. The cost of creating a Goroutine is tiny when compared to a thread.

Why build concurrency on the ideas of CSP? — One of the most successful models for providing high-level linguistic support for concurrency comes from Hoare's Communicating Sequential Processes, or CSP. Occam and Erlang are two well known languages that stem from CSP. Go's concurrency primitives derive from a different part of the family tree whose main contribution is the powerful notion of channels as first class objects.

Gradual typing of Ruby at Scale — This talk shares experience of Stripe successfully been building a typechecker for internal use, including core design decisions made in early days of the project and how they withstood reality of production use

Building Standalone Python Applications with PyOxidizer — PyOxidizer's marquee feature is that it can produce a single file executable containing a fully-featured Python interpreter, its extensions, standard library, and your application's modules and resources. In other words, you can have a single .exe providing your application.

pex — pex is a library for generating .pex (Python EXecutable) files which are executable Python environments in the spirit of virtualenvs.

shiv — shiv is a command line utility for building fully self-contained Python zipapps as outlined in PEP 441, but with all their dependencies included!

]]>
Mike and Wes burrow into the concurrent world of Go and debate where it makes sense and where it may not.

Plus gradual typing for Ruby, a new solution for Python packaging, and the real story behind Jony Ive's exit.

Links:

Goroutines - Concurrency in Golang — Goroutines are functions or methods that run concurrently with other functions or methods. Goroutines can be thought of as light weight threads. The cost of creating a Goroutine is tiny when compared to a thread.

Why build concurrency on the ideas of CSP? — One of the most successful models for providing high-level linguistic support for concurrency comes from Hoare's Communicating Sequential Processes, or CSP. Occam and Erlang are two well known languages that stem from CSP. Go's concurrency primitives derive from a different part of the family tree whose main contribution is the powerful notion of channels as first class objects.

Gradual typing of Ruby at Scale — This talk shares experience of Stripe successfully been building a typechecker for internal use, including core design decisions made in early days of the project and how they withstood reality of production use

Building Standalone Python Applications with PyOxidizer — PyOxidizer's marquee feature is that it can produce a single file executable containing a fully-featured Python interpreter, its extensions, standard library, and your application's modules and resources. In other words, you can have a single .exe providing your application.

Google’s Stadia looks like an early beta of the future of gaming — “The future of gaming is not a box,” according to Google. “It’s a place.” Just like how humans have built stadiums for sports over hundreds of years, Google believes it’s building a virtual stadium, aptly dubbed Stadia, for the future of games to be played anywhere.

Rust is not a good C replacement | Drew DeVault’s Blog — The kitchen sink approach doesn’t work. Rust will eventually fail to the “jack of all trades, master of none” problem that C++ has. Wise languages designers start small and stay small. Wise systems programmers extend this philosophy to designing entire systems, and Rust is probably not going to be invited. I understand that many people, particularly those already enamored with Rust, won’t agree with much of this article. But now you know why we are still writing C, and hopefully you’ll stop bloody bothering us about it.

Introduction to Python Development at Linux Academy — This course is designed to teach you how to program using Python. We'll cover the building blocks of the language, programming design fundamentals, how to use the standard library, third-party packages, and how to create Python projects. In the end, you should have a grasp of how to program.

Marc-Etienne M.Léveillé on Twitter — Here's something interesting: the backdoor in ASUS Update Setup.exe is _again_ located in the CRT, just like the CCleaner case and recent games with a backdoor. This time in _crtExitProcess.

]]>
We debate Rust’s role as a replacement for C, and share our take on the future of gaming with Google's Stadia.

Google’s Stadia looks like an early beta of the future of gaming — “The future of gaming is not a box,” according to Google. “It’s a place.” Just like how humans have built stadiums for sports over hundreds of years, Google believes it’s building a virtual stadium, aptly dubbed Stadia, for the future of games to be played anywhere.

Rust is not a good C replacement | Drew DeVault’s Blog — The kitchen sink approach doesn’t work. Rust will eventually fail to the “jack of all trades, master of none” problem that C++ has. Wise languages designers start small and stay small. Wise systems programmers extend this philosophy to designing entire systems, and Rust is probably not going to be invited. I understand that many people, particularly those already enamored with Rust, won’t agree with much of this article. But now you know why we are still writing C, and hopefully you’ll stop bloody bothering us about it.

Introduction to Python Development at Linux Academy — This course is designed to teach you how to program using Python. We'll cover the building blocks of the language, programming design fundamentals, how to use the standard library, third-party packages, and how to create Python projects. In the end, you should have a grasp of how to program.

Marc-Etienne M.Léveillé on Twitter — Here's something interesting: the backdoor in ASUS Update Setup.exe is _again_ located in the CRT, just like the CCleaner case and recent games with a backdoor. This time in _crtExitProcess.

Apple Is Fighting a Good Fight Against Facebook and Google — The implication that Apple is exhibiting some monopolistic urge to gutshot Facebook and Google makes close to zero sense. The events of this week will not affect their bottom lines, and Apple could have taken much more drastic action to lock down iOS — as it has before.

Nilay Patel on Twitter — Hi, I'm the nagging voice in the back of your head pointing out that it's pretty intense that Apple can simply decide to prevent people from running code on their phones.

Make your next C# project non-nullable — The naming is a bit confusing, because reference types have always been nullable, and that’s the whole problem. The novelty is that they can now also be non-nullable.

Switch to errors instead of warnings for nullable reference types in C# 8 — Nullable reference types coming in C# 8 are a great addition to anyone’s toolbox. But if you tried it you probably know “just” warnings are produced. And sometimes you’d like to have errors instead of warnings, so the build fails hard or something like that. It’s surprisingly easy to do so.

]]>
Mike breaks down the drama around nullable reference types in C# 8.0, and we debate what it means for the future of the language.

Plus a fresh reminder of Apple's absolute App Store authority, and the state of Mike's relationship with the rust compiler.

Apple Is Fighting a Good Fight Against Facebook and Google — The implication that Apple is exhibiting some monopolistic urge to gutshot Facebook and Google makes close to zero sense. The events of this week will not affect their bottom lines, and Apple could have taken much more drastic action to lock down iOS — as it has before.

Nilay Patel on Twitter — Hi, I'm the nagging voice in the back of your head pointing out that it's pretty intense that Apple can simply decide to prevent people from running code on their phones.

Make your next C# project non-nullable — The naming is a bit confusing, because reference types have always been nullable, and that’s the whole problem. The novelty is that they can now also be non-nullable.

Switch to errors instead of warnings for nullable reference types in C# 8 — Nullable reference types coming in C# 8 are a great addition to anyone’s toolbox. But if you tried it you probably know “just” warnings are produced. And sometimes you’d like to have errors instead of warnings, so the build fails hard or something like that. It’s surprisingly easy to do so.