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?
Theoretical CS fundamentals are not going to change. Practically, that means among other things:<p>- 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.<p>- If, in addition, quantum computers don't prove to be viable, commonly used cryptosystems such as RSA, AES, ECC, will <i>probably</i> continue to be secure provided they're used correctly.<p>- Results like the Two Generals Problem, the CAP theorem, etc. will still make distributed systems difficult to work with and require tradeoffs.<p>- 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.<p>- etc.
I like the article, “Betting on Things That Never Change” by Morgan Housel. Check it out at <a href="https://collabfund.com/blog/betting-on-things-that-never-change/" rel="nofollow">https://collabfund.com/blog/betting-on-things-that-never-cha...</a>
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.
Dealing with people. AI can help, but at the end of the day:<p>- people give the orders<p>- people approve implementations (e.g., implementations handed over by an AI)<p>- people who approve implementations need to save face when the implementation turns out buggy<p>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.
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.<p>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.<p>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.
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.
Meta:<p>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.<p>[1] <a href="https://medium.com/@seansheikh/bezos-wisdom-focus-on-the-things-that-dont-change-f3fc39eca401" rel="nofollow">https://medium.com/@seansheikh/bezos-wisdom-focus-on-the-thi...</a>
We can look in the past to see what hasn't changed. Given the rate of innovation in the field, it's fascinating to see that some widely used tools have been here for 30-40 years or more. Unix, bash, vim, C, C++. It still worth investing in these seemingly archaic stuff. Notably C++: the cool kids want to learn Rust, but C++ is hard and we'll need to maintain all the existing code forever!<p>And of course, maths. I graduated in maths decades ago, and I always find it amusing when I see some tutorials on linear algebras making it to the top of HN, like if it was some fashionable new cool technologies. That being said, my math knowledge hasn't transferred in software engineering skills.
Don't you mean what is not going to change? I think you're missing a verb.<p>1. LaTeX. I can still compile my docments that I wrote 20 years ago...<p>2. The thirst for profit/quick releases over reliability (except for a few examples like LaTeX)<p>3. The existence of open source software as the one antitode to all software being horrible<p>4. The obsession with creating new things for the sake of creating, instead of for the good of anything
Human nature won't change.<p>How companies work, how humans interact, how users behave -- I don't see how that'll change anytime soon at all.
I think the Lindy Effect is as good a guess as anything else to predict the future ;)<p><a href="https://en.wikipedia.org/wiki/Lindy_effect" rel="nofollow">https://en.wikipedia.org/wiki/Lindy_effect</a><p>(e.g. it's more likely that C, Fortran and Cobol are still around in 50 years than some of the more recent programming languages)
Read this book. I just read it last month and it exactly answers your question with stories and how the world is evolving.<p><a href="https://www.amazon.com/Same-Ever-Guide-Never-Changes/dp/0593332709" rel="nofollow">https://www.amazon.com/Same-Ever-Guide-Never-Changes/dp/0593...</a>
Humans. Marcus Aurelius wrote Meditations about 2000 years ago and it’s still useful for navigating modern life. On the surface, life has changed a ton over generations because of technological advancement. Underneath that though, basic human worries and basic human needs haven’t changed and probably never will.
It is impossible to usefully identify things that "never changed" without targeting cynical observations of human nature/capability. "The laws of thermodynamics" is a strong contender for the only other answer to that question.
Git is having a good run as the defacto source control system, despite all its idiosyncrasies. Most Windows/Linux/front-end/back-end developers seem to use it. How long has it been since you used something else like Subversion or TFS?
Most of having a job is people skills. Whether we’re writing jQuery by hand or prompting ChatGPT 9.5 to output our work, your most important job skills will still be collaboration, communication, and in some cases just being a good hang.
Greed - you could be working on the most altruistic endeavor ever that everyone wants and all it takes is one founder or investor that sees a way to cash out to bring it all tumbling down
i don't think deterministic programming languages are going away. Even if code is AI-generated, critical systems need to behave consistently and be available for introspection/editing.
The fact that free software will not join the enshittification trend (<a href="https://news.ycombinator.com/item?id=36611245">https://news.ycombinator.com/item?id=36611245</a>). So try to stick to it for the long-term stability.