Readit News logoReadit News
Posted by u/maheshs 2 years ago
Ask HN: What is not going to change in future?
There are always few things in every field which never changed. What are the top things according to you which not going to change or didn't change in the field of software development?
Tainnor · 2 years ago
Theoretical CS fundamentals are not going to change. Practically, that means among other things:

- Unless somebody finds a polynomial algorithm for an NP-complete problem (which is a taller order than just proving P=NP), several interesting problems will continue to be infeasible to solve exactly in the general case with large data.

- If, in addition, quantum computers don't prove to be viable, commonly used cryptosystems such as RSA, AES, ECC, will probably continue to be secure provided they're used correctly.

- Results like the Two Generals Problem, the CAP theorem, etc. will still make distributed systems difficult to work with and require tradeoffs.

- Rice's theorem, that it is impossible to determine computational properties of arbitrary programs, will still apply, making static analysis (including antivirus programs, security scans, etc.) heuristic rather than exact.

- etc.

zfnmxt · 2 years ago
> - Rice's theorem, that it is impossible to determine computational properties of arbitrary programs, will still apply, making static analysis (including antivirus programs, security scans, etc.) heuristic rather than exact.

I think this is misleading. There are many exact static analyses---proof-checking in theorem provers like Coq is an exact static analysis. More generally, type checking can be an exact static analysis that guarantees semantic properties of your programs, like termination.

If you can force your programs to be in a certain form (e.g., statically rejecting type incorrect programs), you can sufficiently restrict the class of programs (Turing machines) that you're considering that you can indeed determine non-trivial computational properties of your programs.

Tainnor · 2 years ago
I was very careful to specify "computational properties" (as opposed to things like program length or side effects) and "arbitrary programs" (with "arbitrary" meaning that it doesn't suffice to prove individual programs correct, and "program" meaning that I'm not talking about single functions).

I should probably have been more specific by writing "decide" instead of "determine", because you can absolutely 'determine' a computational property as long as you're willing to ignore false negatives. For example, it's easy enough to write a termination checker by just checking for loops and equivalent constructs (or e.g. in Idris, by requiring that all functions are total), but that will of course reject a large number of programs that do in fact terminate.

Coq is not a Turing Complete language, so Rice's theorem doesn't apply. But almost all people are not writing programs in Coq.

I think static types are great, but they don't contradict any of this.

stephencanon · 2 years ago
> (which is a taller order than just proving P=NP)

A proof that P=NP immediately gives a polynomial-time algorithm for NP complete problems via universal search. It’s so wildly impractical as to probably not change anything, but it _is_ in P.

Tainnor · 2 years ago
Fair enough, I wasn't aware.
edanm · 2 years ago
What? That doesn't seem correct to me. (Since I'm not actually that fluent in CS complexity theory, I assume the problem is my understanding.)

Can you explain more about what universal search is, and/or where I can read about how it would solve the problem?

vasili111 · 2 years ago
AES is considered quantum resistant.
Tainnor · 2 years ago
Thanks!
Brajeshwar · 2 years ago
I like the article, “Betting on Things That Never Change” by Morgan Housel. Check it out at https://collabfund.com/blog/betting-on-things-that-never-cha...
jjice · 2 years ago
He just released a book last year called Same As Ever that seems like a book adaptation of this post. It was pretty good if you like this kind of post.
nuz · 2 years ago
Math, physics, chemistry won't change. Who knows if software will be nearly recognizable in 10-20 years from now, but the reality of the world will not.
demondemidi · 2 years ago
20 years is nothing. Code still looks the same essentially. Lots of “new” patterns are just ancient patterns rediscovered by people who never had exposure to the old ones. Code in 100 years might be different but probably not by much. I don’t see cpu arch radically changing. I hope it does.
uvdn7 · 2 years ago
Math, sure - doesn't the understanding of physics also go through changes? Do we really understand the reality of the world; or how do we know our current understanding of it won't change?
GoldenRacer · 2 years ago
Asimov wrote an essay called "relativity of wrong" that I think does a good job of capturing the changes our understanding of the world goes through.

Yes, Einstein's theory of relativity was a change from Newtonian physics but it's a fairly minor correction for most practical purposes and Newtonian physics is still important to know and understand.

So yeah, our understanding of physics will likely change but it'll only matter in more and more extreme edge cases and will likely build on our current understanding. Maybe it'll result in us finally having fusion reactor, room temperature super conductors, or quantum computers but you're still going to get a roughly parabolic arc when you throw a ball through the air.

bradlys · 2 years ago
I think 20 years for physics won’t really make much of an impact. Maybe you build an even bigger particle accelerator and confirm another well accepted idea. But, there’s not really going to be groundbreaking changes that affects people on the daily.
drewcoo · 2 years ago
> Math, physics, chemistry won't change.

The whole beauty of science is that it doesn't ever claim to have static, absolute answers - it's constantly growing and changing as we learn more about everything.

Likewise, the humanities are always growing and changing and being reinterpreted, reflecting what and how we can understand now.

> Who knows if software will be nearly recognizable in 10-20 years from now

Software goes through rapid cycles of invention and forgetting what's come before. Its totem animal is a Nobel laureate goldfish. That doesn't change.

ornornor · 2 years ago
> forgetting what's come before. Its totem animal is a Nobel laureate goldfish

Goldfish have good memories it turns out: https://www.bbc.com/news/uk-england-oxfordshire-63242200

Tainnor · 2 years ago
> The whole beauty of science is that it doesn't ever claim to have static, absolute answers

That's wrong for maths and, by extension, theoretical CS. I mean, sure, some of the answers come with caveats ("assuming P!= NP", etc.), and in theory, all of mathematics could be proven inconsistent (but that to me is completely unreasonable to believe), but for all intents and purposes, these answers are static and absolute.

dakiol · 2 years ago
Dealing with people. AI can help, but at the end of the day:

- people give the orders

- people approve implementations (e.g., implementations handed over by an AI)

- people who approve implementations need to save face when the implementation turns out buggy

Even if AI reaches a level at which it can do all of the points above, it would dimishis its own value. Example: if I could launch an Spotify alternative with a few prompts using ChatGPT version 10, then so a million guys like can do it as well... meaning, no one will be doing it.

pc86 · 2 years ago
People submitting Ask HN's without proofreading
NikkiA · 2 years ago
Presumably you mean the broken english of the title, I suspect that's HN's stupid title filtering that removes words it thinks are clickbaity, like 'is'.

Deleted Comment

tlb · 2 years ago
Edited, thanks
CM30 · 2 years ago
I suspect basic HTML won't change much if at all. We're still using tags like html, head, body, title, h1-h6, p, img, etc after all these years, and I don't see them going anywhere.

Of course, unless some sort of weird tech shift happens that makes the browser obsolete altogether, I suspect most HTML/CSS/JavaScript won't ever change anyway. Browsers are backwards compatible to a similar degree as Microsoft and Windows. If even stuff like the center tag are supported in 2024, most things aren't going anywhere.

On a less specific note, I guess poor planning and software development practices? Feels like planning how long things are going to take hasn't got much better in the last few decades, with things like 'agile' barely making a dent in it. I suspect projects overrunning, feature and scope creep, big budget disasters, etc will probably be issues in society til the end of time.

tiniuclx · 2 years ago
Gathering requirement & making sure you are building the right thing will always be a tough & important task for SW Engineers, no matter how good language models get.
jerf · 2 years ago
Even if an AI was developed to the point that it could do a full requirements analysis, executive/managers/high status people will still want someone else to do it. You're not going to get a CEO to sit down with such a system and determine requirements.
azan_ · 2 years ago
Why wouldn't AI also take the role of that "someone else"?
philip1209 · 2 years ago
Meta:

The Basecamp founders often talk about the advice they receive from Jeff Bezos, which was "Focus on the things that won't change in your business." [1] He was referring to things like "fast delivery" and "good customer service." But, it means a lot in a professional context, too - because it's things worth learning well.

[1] https://medium.com/@seansheikh/bezos-wisdom-focus-on-the-thi...