373: Interactive Investigations
2 September 2019
We debate the best way to package scripting language apps then explore interactive development and the importance of a good shell.
- Feedback: Getting started on .NET? — My question is what is the easiest route to get started in .net development? When I looked online there are several different languages that can be used from C# ,F#, ASP.NEt among others. In your personal experience what is the easiest way to get started on this path?
- Feedback: Questioning Rust — […] The primary issue here is that most of the work to prove that safety (beyond “trust me” blocks) is pushed onto the developer instead of having the compiler insert protections surmised from uses of the data structures outlined in the source code. After all, it can only prove what it is shown, not what it assumes.
- Feedback on Mike and Macros — I’d also love to hear more about what you dislike about macros. Personally, I view Rust’s macro system as one of its biggest selling points. I’ve written more than a few macros myself and, every time, they’ve simplified my code in ways I couldn’t have managed without them. Perhaps more importantly, I’ve also noticed that many of my favorite crates make heavy use of macros—and doing so lets them expose a much more ergonomic API.
- 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.
- Apple wants to remove scripting languages from macOS — Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. In future versions of macOS, scripting language runtimes won’t be available by default, and may require you to install an additional package. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app
- Building Standalone Python Applications with PyOxidizer — Python hasn’t ever had a consistent story for how I give my code to someone else, especially if that someone else isn’t a developer and just wants to use my application.
- Traveling Ruby: self-contained, portable Ruby binaries — Traveling Ruby lets you create self-contained Ruby app packages for Windows, Linux and OS X.
- ruby-packer — Packing your Ruby application into a single executable.
- fogus: Notes on Interactive Computing Environments — Your programming environments should be an active partner in the act of creating systems.
- Tim Ewald - Clojure: Programming with Hand Tools — For most of human history, furniture was built by hand using a small set of simple tools. This approach connects you in a profoundly direct way to the work, your effort to the result. This changed with the rise of machine tools, which made production more efficient but also altered what’s made and how we think about making it in in a profound way. This talk explores the effects of automation on our work, which is as relevant to software as it is to furniture, especially now that once again, with Clojure, we are building things using a small set of simple tools.
- Things You Didn’t Know About GNU Readline — GNU Readline is an unassuming little software library that I relied on for years without realizing that it was there. Tens of thousands of people probably use it every day without thinking about it. If you use the Bash shell, every time you auto-complete a filename, or move the cursor around within a single line of input text, or search through the history of your previous commands, you are using GNU Readline.
- bpython — A fancy curses interface to the Python interactive interpreter
- pry — Pry is a runtime developer console and IRB alternative with powerful introspection capabilities. Pry aims to be more than an IRB replacement. It is an attempt to bring REPL driven programming to the Ruby language.
- Ammonite — Ammonite lets you use the Scala language for scripting purposes: in the REPL, as scripts, as a library to use in existing projects, or as a standalone systems shell.
- rebel-readline — A terminal readline library for Clojure Dialects
- litecli — A command-line client for SQLite databases that has auto-completion and syntax highlighting.