Live data from Hacker News

What was the last breakthrough in computer programming? (2019)

quora.com

61–70 of 226 posts

Re: What was the last breakthrough in computer programming? (2019)

#61
post #7

I think Kay's complaint about engineering rigor ignores the explosive growth of programming. Sure, bridge-builders have rigor; there's also probably about the same number of them today as there were 50 years ago. The number of programmers has grown by at least two, maybe three orders of magnitude over the last half century. And more importantly, almost anyone can do it. A kid whose closest approach to structural engi…

> That level of access guarantees amateur-level code, and the rigor Kay is suggesting would kill the software industry as we know it. I don't believe this follows. The level of rigor he's lamenting could be constrained to certain categories of software, based on their impact or information content. Amateur or informally specified systems can still satisfy everything else. There is no reason for most systems that don'…

Sure, I meant if that rigor was applied to the whole software industry, not selectively, exactly as you say. And that level of rigor is applied sometimes. The most rigorous example I know of is the Space Shuttle guidance system (I think that was it; I read about it twenty years ago). Two independent teams write two entirely separate programs, and then in practice (again, from memory) two versions of program A run, and if they disagree program B is the tie breaker.

Also their QA process was completely adversarial. Finding a bug was a major success for QA, and a major failure for the dev team. They found something crazy like 1 bug per million lines of code.

Re: What was the last breakthrough in computer programming? (2019)

#62
post #47

It always feels like Alan Kay is wistfully talking about how there could have been an alternate future where he and his ilk would do programming and computer engineering the "right way" and somehow the world has lost it's path. He waxes eloquent about how he enabled the genius's at Xerox PARC to do deep work and how they changed the world. I find his talks inspiring but I also find it tone deaf that he doesn't unders…

Write once, run anywhere: I used to demo for LiveCode https://livecode.com/ at MacWorld and WWDC where I would code a basic app and build separate single-file standalones for Mac, Windows, and Linux, all while holding my breath.

Re: What was the last breakthrough in computer programming? (2019)

#63
post #57
post #48

Earlier quoted context omitted.

"This is at least part of the reason that reasonably strong engineers can learn a new programming language in under a day. The paradigms just aren’t that different." This literally says "the paradigms aren't that different." So if you accept that C and J are different paradigms, then because the paradigms aren't that different, a C programmer could pick up J in a day. What it doesn't say is that truly different parad…

You are the only person who is talking about C. It is a leap to go from "experienced programmer" to "that means C-only programmer". You are using the term "programming paradigm" incorrectly. C is not a programming paradigm. The paradigm of C is that it is an imperative procedural language. In the strictest sense it is a functional language, since functions are first class citizens, but it is not really a functional l…

I'm using "C-style language" as a metaphor for "imperative procedural language". I'm not the first to do so.

Re: What was the last breakthrough in computer programming? (2019)

#64
SAT solvers applied.

You can now solve unsolvable problems, like practical formal verification in big C/C++ codebases. There's no need anymore to write test cases, as formal verification tries all possible input values, not just a few selected. It also checks all possible error cases, not just the ones you thought about.

Re: What was the last breakthrough in computer programming? (2019)

#65
post #53

Earlier quoted context omitted.

He was speaking as if it was still 1980s. Now we have cloud based ML doing the optimization finding. ML will (eventually) be able to generate biz logic code, and most assuredly infrastructure config (a cloud API has a limited set of possible configs of value to our sorting patterns), UI code (we gravitate towards a limited set of UX it seems), to solve much of our daily programming work. ML can’t invent future ideas,…

how many years is eventually

5-10 years, every year

Re: What was the last breakthrough in computer programming? (2019)

#66

I think the biggest programming productivity boosts since 1984 haven't been about programming languages, but about tools. Specifically, distributed version control and dependency management tools. Being able to collaborate with developers anywhere in the world, and being able to pull in any library with a single declarative line in a configuration file, increases productivity more than any improvement to a programmin…

I agree, could you imagine doing something like Java Spring without maven or the equivalent? It wouldn't be possible.

Re: What was the last breakthrough in computer programming? (2019)

#67
post #25

There 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…

It's nice to read a positive comment like yours occasionally, because the vast majority of the time, I'm just disappointed in how bad our programming tools (including languages) are. It's become a meme in my office that I'm the guy constantly bitching about how stupid our languages are. This week I was back on my soap box about the fact that almost zero mainstream (statically typed) programming languages can even let…

I'm not so sure that I sympathize with your example. Why not a type for even numbers? Odd, prime, not-prime, etc?

You really are asking for a type that is "valid data." Commendable, but not a static property of data. As a fun example, what is a valid email address? Once established as valid, how long will it stay that way? If invalid, how long until it can become valid?

Do I think better typing can be a boon? Absolutely! Can it also be a burden? Absolutely!

Re: What was the last breakthrough in computer programming? (2019)

#68
post #63
post #57

Earlier quoted context omitted.

You are the only person who is talking about C. It is a leap to go from "experienced programmer" to "that means C-only programmer". You are using the term "programming paradigm" incorrectly. C is not a programming paradigm. The paradigm of C is that it is an imperative procedural language. In the strictest sense it is a functional language, since functions are first class citizens, but it is not really a functional l…

I'm using "C-style language" as a metaphor for "imperative procedural language". I'm not the first to do so.

Clearly, C is not a functional, array language. Nobody said it is. What is your point?

Re: What was the last breakthrough in computer programming? (2019)

#69
post #64

SAT solvers applied. You can now solve unsolvable problems, like practical formal verification in big C/C++ codebases. There's no need anymore to write test cases, as formal verification tries all possible input values, not just a few selected. It also checks all possible error cases, not just the ones you thought about.

Could you expand on what you mean by this? Because it sounds like a level of hype bordering on nonsense.

1. How is a SAT solver going to do formal verification? How do you turn a formal verification into a SAT problem?

2. You can only formally verify what your formal verifier can handle, which is usually somewhat less than "everything". Can your SAT-driven formal verifier verify that the worst case response time of the system is less than X?

3. Formal verification tends to be slow. If I can write and run unit tests orders of magnitude faster than the formal verifier, then the formal verifier is going to not be used much.

Re: What was the last breakthrough in computer programming? (2019)

#70

Metamine represents the latest breakthrough in programming, it offers a mix of tradition declarative programming and reactive programming. The "magical equals" for lack of a better term, lets you do "reactive evaluation", the opposite of lazy evaluation. If any of the terms that a term depend on change, the result is updated, and all it's dependencies, etc. You can use the system clock as a term, thus have a chain of…

So it's like MobX in UI world?
Post reply on HN