(no title)
vimsee | 1 year ago
1. Want a simpler application
2. Write it
3. Realize adding complex code that's weird can really boost performance
4. Repeat 3 until someone thinks your application is overcomplicated and makes a new one
I guess the moral here is that computers are complicated and trying to avoid complexity is hard or infeasible.
adlpz|1 year ago
But turns out they did.
Mrdarknezz|1 year ago
bluGill|1 year ago
BariumBlue|1 year ago
llamaLord|1 year ago
WiSaGaN|1 year ago
mikepurvis|1 year ago
[1]: https://softwareengineering.stackexchange.com/a/450802
wongarsu|1 year ago
But in the bigger picture the wheel of programming languages is a positive example of reinvention. We do get better at language design. Not just because the requirements become more relaxed due to better hardware and better compilers, but also because we have gained many decades of experience which patterns and language features are desirable. And of course the evolution of IDEs plays a huge role: good indentation handling is crucial for languages like python, and since LSP made intelligent auto-complete ubiquitous strong typing is a lot more popular. And while old languages do try to incorporate new developments, many have designed themselves into corners. That's where new languages can gain the real advantage, by using the newest insights and possibilities from the get-go, depending on them in standard library design and leaving out old patterns that fell out of favor.
No modern language in their right mind would still introduce functions called strstr, atoi or snwprint. Autocomplete and large screens make the idea of such function names antipatterns. But C can't easily get rid of them.
dkarl|1 year ago
In this case they're creating a new solution to a problem where all previous solutions have ended up extremely complex, and the existing range of software currently running on x86 and ARM gives them with a concrete set of examples of the types of software they need to make fast, so they're dealing with orders of magnitude more information about the requirements than almost any software project.
The closest software development equivalent I can think of would be building a new web browser. All existing web browsers are extremely complex, and you have millions of existing web pages to test against.
syockit|1 year ago
Xen9|1 year ago
snapcaster|1 year ago
chasil|1 year ago