<https://thesephist.com/posts/programming-environm...
# linking-together
o
https://thesephist.com/posts/programming-environment/ β€œBut while programming languages are academically interesting, I think we more desperately need innovation in programming environments. The programming environment isn’t a single component of our workflow, but the total sum enabled by the tools working together harmoniously. The environment contains the programming language, but also includes the debugging experience, dependency management, how we communicate with other developers (both within source code and without), how we trace and observe code in production, and everything else in the process of designing APIs to recovering from failure. The story of programming language evolution is also a story of rising ideas in what capabilities good programming environments should grant developers. Many languages came to popularity not necessarily based on their merits as great languages, but because they were paired with some new and powerful capability to understand software and write better implementations of it.”
πŸ‘ 5
πŸ’― 7
c
I really need to subscribe to this person
o
He does really interesting stuff!
🍺 2
e
regarding environments, I often think we could do better even without innovating, just polishing the current tools further. Imagine a programming environment that just worked: no configuration, no environment variables, no editor plugins, no "escaping to the shell" to type extraneous commands, no PATH conflicts, no dependency hell, no skimming the backtrace to find the originating source of the error... etc. etc. just a quick install tool that worked 100% the same in each platform. Push one button, get a binary for any platform. Users could download the zip/binary, double click and have the thing running. There's no current platform that is as easy to work with as I describe.
πŸ‘ 3
I may be wrong, but I feel the fix for all the problems I described has already been invented. It is probably a more boring problem to solve that coming up with a new and innovative way of programming ... πŸ™‚
βž• 1
different languages do better than others here, but I've been revisiting a lot of PLs these last weeks, writing small programs in diff languages (Java, C++, Fennel, Go, Clojure, F#, OCaml, Python, Lua+LuaRocks, Scheme, Racket) and for each one I found small and painful things to deal with just related to the system environment (being under Windows 10 definitely doesn't help). Each have diff quirks and procedures to setup the base env and to get dependencies
πŸ’― 2
I keep this thread on my bookmarks because I think the author described pretty well elements of a PL environment that are many times (IMHO) an afterthought for designers but I wish was a point of focus early on: https://news.ycombinator.com/item?id=23347357
j
I love this and strongly agree that we need to bring the perspective of the overall programming experience -- which is necessarily situated in an environment -- to language design itself, rather than regarding the languages as abstract mathematical curiosities. (I find @Cyrus Omar's work with Hazel and typed holes a nice example of that kind of work.)
πŸ‘ 2
πŸ’― 6