What was the last breakthrough in computer programming? (2019)
121–130 of 226 posts
Re: What was the last breakthrough in computer programming? (2019)
#122IMO probably monads. Next might be Unison lang or dependent types.
>>What was the last breakthrough . . . ? >IMO probably monads. So, you believe there have probably been no breakthroughs since 1990?
Re: What was the last breakthrough in computer programming? (2019)
#123Re: What was the last breakthrough in computer programming? (2019)
#124Earlier quoted context omitted.
Haskell is great at mutating variables. Reactive programming was even pioneered in it. It's just that the Monads that allow you to do this are somewhat like sticky tar - everything they touch becomes a part of them. The traditional structure of Haskell programs is to build a pure functional 'core', and layer around that the 'sticky' parts of the code that need to interact with the outside world.
OK, but the "reactive" programming sounds like how you build the core. So I still question whether that style fits well with Haskell.
You could push the reactivity monad right down to the core of your application to get the benefits of this reactive language.
Re: What was the last breakthrough in computer programming? (2019)
#125I feel like Kay has taken a rather too narrow view of what counts as programming. IMO here are the breakthroughs in the last 20 (ish) years: 1. Stack Overflow - search for your problem, copy and paste the answer. 2. git - Revision control that is low enough overhead that you need to have a reason not to use it. 3. Open-source software as a commodity - Unless you've got very specific requirements there's probably a sy…
Code reuse was the holy grail of the 90's. People expected classes to be the unit of code reuse, then enterprise services, then after a dozen years of disillusionment we finally got the recipe right.
How? With micro-services? Or Kubernets clusters?
Or copy-paste from SO?
Or is it more about Linux packages? Maybe NPM?
I'm really not sure we've got this right by now.
Actually everything is over and over rewritten. May it be because of the language used, may it be because of frameworks, or architectures.
Polyglot runtimes that could enable true code reuse at least across language boundaries (like GraalVM) are just emerging.
For the higher build blocks though there's still nothing to enable efficient reuse. (People try of course. So mentioning micro-services was no joke actually).
Re: What was the last breakthrough in computer programming? (2019)
#126There isn't so much in languages features themselves, but in their implementations. GC can be largely pauseless for many practical purposes and a GC language can be within 2x-3x the performance of C-like languages. Also the amount/cost of memory has improved so that we can use immutable datastructures and functional style in many contexts, which definitely feels like a 'level-up'. Concurrency has been getting easier…
Another problem is that no language hits the sweetspot of a truly general purpose language. For example Rust doesn't allow freestyle functional programming (Haskell relies on a garbage collector for a reason), whereas at the other end of the spectrum Haskell doesn't allow precise control of CPU usage.
Re: What was the last breakthrough in computer programming? (2019)
#127I'd say being able to program GPUs as general purpose compute devices & general SIMD vectorization in high level language is pretty significant. it has opened up many applications like machine learning previously unavailable. IMO some C++20 features like coroutines rank pretty high in introducing new ways of programming.
I have a question about that, and despite asking in several places, and reading lots of documents, I've ever been able to find an answer that makes sense. Maybe you can help me. I have an algorithm that I used to run on a SIMD machine. It's a single, simple algorithm that I want to run on lots of different inputs. How can I run this on a GPU? From what I read about GPUs it should be possible, but nothing I've read ha…
Re: What was the last breakthrough in computer programming? (2019)
#128I feel like Kay has taken a rather too narrow view of what counts as programming. IMO here are the breakthroughs in the last 20 (ish) years: 1. Stack Overflow - search for your problem, copy and paste the answer. 2. git - Revision control that is low enough overhead that you need to have a reason not to use it. 3. Open-source software as a commodity - Unless you've got very specific requirements there's probably a sy…
> Stack Overflow Its blessing and a curse. I think software would be better if coders read mans and other documentation more often (and standards like RFC where it is applicable). > git - Revision control that is low enough overhead that you need to have a reason not to use it. RCS - 1982 CVS - 1990 They are limited compare to git, but they perform the main function - track changes in text files allowing to see previ…
> RCS - 1982 CVS - 1990
I don't accept CVS as a breakthrough in the same way as git has been. Back in 2000 - 10 years after CVS - using source control wasn't a given. We had articles like "The Joel Test"[1] encouraging teams to use source control. CVS was a pain to set up and limited once you did. Thanks to git (and DVCS in general) using source control is the default for 1 person throwaway projects up to projects with thousands of contributors and million lines of code.
[1]: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-s...
Re: What was the last breakthrough in computer programming? (2019)
#129Earlier quoted context omitted.
Yeah I took Ada for CS 210/211 back in 1991, are we there yet?
Ada's good, but it will never win. The open source compilers are solid, but no one wants to learn it. It's (depending on who you ask): Too old, too verbose, BDSM programming, not Rust, not Haskell, not C. It has a lot of positive features going for it, but it is verbose. That verbosity is a major distraction for people who can't handle it, they want their very short keywords or, better, no keywords just symbols. Curl…
It's not so difficult nowadays to write a "syntax-transpiler". The hard part, the language, would remain the same.
People seem having done so successfully with OCaml, see ReScript.
Re: What was the last breakthrough in computer programming? (2019)
#130Earlier quoted context omitted.
That’s easy, a valid email address is one that is well formed, conforming to the specification for email addresses. I know what you’re trying to get at, but that’s just a category error. It’s a misuse of the term valid in this context. For example my mail archive contains many emails from valid addresses for which there happens to be no currently active mail box end point. They’re still valid data though. The fact th…
> conforming to the specification for email addresses You mean something that roughly matches this obvious regex: \A(?:[a-z0-9!#$%&'*+/=?^_‘{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_‘{|}~-]+)* | "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f] | \\[\x01-\x09\x0b\x0c\x0e-\x7f])*") @ (?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])? | \[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3} (?:25[0-5]|2[0…