Because I think it's going to devolve… if you inst...
# thinking-together
i
Because I think it's going to devolve… if you instead want to share thoughts about how software dev has made good progress in the past few decades, join my thread.
🙂 1
🦗 🦗 🦗
t
You gotta give it more than 15 minutes, @Ivan Reese 😄
🙃 1
🐣 1
I think notebooks, the in-browser dev tools, and compiler-connected text editors are notable leaps in interactivity
Also, the ability to imbue passive real-world objects with computational "magic" at Dynamicland fairly well blew my mind. There's definitely something revolutionary there.
💯 2
1
i
There are a number of tools we've built to do jobs that used to require bespoke from-scratch programming. I'm thinking of things like Rails-style web frameworks, Unity-style game engines, Maya-style 3d software. These are all amazing to me. They show that programming can be a good way to bootstrap from "requires bespoke code per project" to "can use a substrate that covers up to the 99th percentile before bespoke solutions make more sense". Having those things now might make programming progress look slower. In a number of important areas — and, perhaps, all the low-hanging fruit areas — we've already used programming to obviate the need for programming.
t
Obviously I'm very bullish on node graphs 😀— the best examples of which we owe to VFX and audio "DSLs"
c
The proliferation of JavaScript has made it vastly easier to build software interfaces! 🙂
On all platforms too!
i
Even spaceships!
👍 2
j
The recent renaissance in systems languages is a relief. I expect we'll see future software taking much better advantage of the hardware available. Wasm is the first cross-platform standard that doesn't require managed memory, which gives it a huge range and allows much more interoperation between very different languages. (The jvm and javascript both made it very hard to efficiently implement languages that don't look a lot like java/javascript.) It's also much much easier to implement well than any of it's predecessors which should encourage more competition and experimentation. Not to mention the web itself, which only really became standardized in the last two decades. There have been amazing algorithmic improvements in constraint solving and query languages. In the former case, they've outpaced the improvements in hardware ie running an old constraint solver on modern hardware would be slower than running a modern constraint solver on old hardware. Nix/guix are a new idea that simplifies the process of building and combining software packages. Sandboxing and capabilities have come a long way. Modern phones and browsers primarily run untrusted code, which would have been suicidally stupid on the operating systems of the 90s.
1
🍰 2
The availability of high-quality open source libraries with easy installation is much higher than it used to be.
I propose a programming competition where people who believe programming hasn't improved much in the last few decades get to use only tools that shipped before 1990 and everyone else gets to use modern tools.
👍 1
i
Wonderful thoughts, Jamie. To your last point, I don't think anyone is saying programming hasn't progressed at all. But that the pace of improvement has slowed, or that issues we might have solved well long ago are still rampant. That aside, I think your challenge would actually be fun. Of course, the judgment criteria would have to somehow account for the hardware difference — it's harder to make something that'd compete with a modern GUI when you only have 512 black and white pixels.
👍 2
m
Before 1990 you could do nice gui and beautiful graphics programming in color if you wanted : https://en.m.wikipedia.org/wiki/Amiga Surely it would be a nice challenge😎
But what I nowadays that you still need a lot of code to achieve things. Yes you can use npm or nuget packages , if you want to dependent on them. I currently write websites using kentico cms using mvc.. it surprises me how much code we need to add custom logic, views, proper forms, custom styling etc. Dont get me wrong, I like writing code, but I would expect a lot of problems to be solved already by the cms itself in our case
And then there's tools like Mendix, the so called low-code platforms for building (web)apps in business domains. I dont use it myself but they seem rather succesful, the demand for those tools is increasing I think.
g
1. for me at least, the absolute best thing that’s happened is the rise and improvement in the built-in javascript console on modern web browsers 2. graph databases are taking off, which i think is a really good thing 3. i really appreciate the rise in declarative data languages: graphql, datalog, object structuring and destructuring, pattern matching 4. although all these no/low/oops code projects are mostly crap, at least there’s SOME interest (and a lot of money) in making programming more accessible 5. inventing on principle really did light a fire for more interactive programming and debugging models even if they didn’t go far enough 6. minecraft. that’s it. that’s the whole bullet point
t
I forgot to mention Python. It's just a fantastically designed text language, with a healthy, vibrant, ecosystem, and generally good/easy-to-use standards and practices. If I had to go back to 1990 and use Perl... shudder.
d
There's been a ton of progress in the last 20 years... compare C# to C# 8 (LINQ, tuples, decent functional programming features, null-pointer avoidance), or C++03 to C++20 (it still sucks, but an expert can pour the molasses much faster). And how about Go and Rust? Okay, Go still doesn't have generics, and I hear the Rust compiler is slow, but give it a few years... metaprogramming in D is much better than C++ ... the design could have been better, but, well, how about Nim? Bottom line, I'm not actually happy with the current state of affairs, but it has improved a lot. Oh and I love both Visual Studio IDEs.