5 ms·
Code itself is a mere encoding of that (mis)understanding in a highly specialized format. What makes me “hopeful” - for me as a “programmer” - about the future
by SanderNL 3y ago
Code itself is a mere encoding of that (mis)understanding in a highly specialized format.
What makes me “hopeful” - for me as a “programmer” - about the future is that our problems in nearly all domains are very damn near certain not caused by technical limitations.
We could have settled on some GUI/UX, communication, database, knowledge handling, etc. standards decades ago and we could have decided we are not going to re-implement all the basics of computing all over again all the time because we need our scrollviews to “snap” just right or we need to reimplement IRC again.
We could have fixed all sorts of issues proactively decades ago.
We didn’t and technology was a very minor part of that equation if it played a role of any significance at all. Nearly any domain I can think of is severely limited by various legal, social, financial and/or political issues that vastly overshadow any technical considerations.
AI won’t budge any of that.
- anonzzzies 3y agoWe should've agreed on that. The current state is very much bad for all involved. Implementing SaaS CRM #15324 from scratch 'on different and current tech', spending millions$ without any other reason than that you think you are better is not doing the world any good.
- sarchertech 3y agoHuman nature is the problem which means it’s probably unsolvable. No matter how good your generic CRUD framework is, every person who wants to build a CRUD app inevitably wants to make it unique in some way that the framework doesn’t support. That is, everyone thinks they can do better. To be fair, there’s no way to know if you can do better without trying. Most of the time you can “try” in your mind though if you are knowledgeable and skilled enough. Part of the problem I run into these days is too many people designing systems/products without even knowing what’s out there.
- anonzzzies 3y agoWell, that is indeed so; there are easily 15k+ crms out there to. So when they checked the top 10 on google and didn’t find a fit, people often just think ‘wow, there is a hole in the market’ or ‘we need a custom solution as nothing fits’ and build one. In London alone, I know over 100 crm implementations, most are internal, some saas, but all doing the same thing.
- resonious 3y agoAt least in my circle (Ruby on Rails), big companies who continue to use the classic Rails+MySQL combo have to do ungodly things to keep it from collapsing. Just read any of their blog posts or look at some of their open source stuff. It's very easy to see how someone who's been through that might go out to build something new from the ground up to try and sidestep problems. Even things like TCP and HTTP are seeing revamps because the stuff from last decade is just not that good. GPUs exist because x86 just didn't cut it on a fundamental level. So I think on some level we kind of did try to standardize stuff. We always try to standardize stuff. Then someone comes along with a new non-standard thing that just blows your standard out of the water, because turns out it's really hard to build an unbeatable standard. But yes, maybe there's a bit too much effort going into this reinvention process. Most new things really don't hold a candle to the tried and true stuff. Problem is sometimes they do.
- SanderNL 3y ago> Even things like TCP and HTTP are seeing revamps because the stuff from last decade is just not that good It’s IMO extremely debatable if they were not “that good”. The mindset that serves simple websites with 60 requests to 12 different domains is the problem and it’s hurting my brain to think about how mind-numbingly stupid it all is. I think “revamping” TCP and HTTP is misguided at best. I think I may have an unpopular opinion here or not. I am not sure anymore. It’s a human issue like someone said here. We don’t settle down on something unless forced. We are not going to fix it, which is good, because we will have lots to do.
- high_priest 3y agoTCP needs revamping. It is a mess of back compat. on back compat. with many performance regressions and security vulnerabilities which shouldn't be there in tge first place. Personally, I adore development of QUIC and I think it is going to bring alot of good into networking, performence and security.
- SanderNL 3y agoLet’s agree to disagree. I am also not sure what “security” is being touched by TCP (and should be touched by that layer)? Performance could be better, but I’d say pick your battles. I prefer an “eternal” standard than turning everything upside down on a whim every generation for their incessant need to track everything you do and deliver as much ads to you in as little time as possible. Encrypting everything by default on the lowest possible layer is batshit crazy. A sign of our times, not some fundamental technological leap forwards. In 100-200 years we will smack our collective foreheads.
- foul 3y ago> We could have settled on some GUI/UX, communication, database, knowledge handling, etc. standards decades ago and we could have decided we are not going to re-implement all the basics of computing all over again all the time because we need our scrollviews to “snap” just right or we need to reimplement IRC again. We could (sometimes we even did) and still we'd have multi-million industries not aware of/ignoring those conventions for mere economical reasons.
- robocat 3y ago> mere economical reasons Why mere? Can one afford to be uneconomical? Do constraints not matter? Personally one of my definitions of good engineering is making "good compromises" between different needs.
- foul 3y ago>Can one afford to be uneconomical? Sometimes. You can always afford to be cheap, too: that may lead the team to spend the right amount or less, but someone will later spend a lot more, which in SWE parlance is called "re-implement all the basics of computing all over again all the time". I don't know the name of the game where you have to avert that the bigger expenditure comes to hit your team's back. (substitute whatever you want in place of "team": yourself, your firm, your family or clan)
- valenterry 3y agoReally? Removing caching from the world and then see what is still working. In fact, you probably wouldn't even be able to read my response anymore. So yes, technical limitations are a major concern when designing software.
- SanderNL 3y agoCaching is also as old as computer science itself, which is my point. It’s not rocket science. We got that. We don’t need caching solution #6362.
- valenterry 3y agoThen I suggest you reword > nearly all domains are very damn near certain not caused by technical limitations to > nearly all domains are very damn near certain not caused by bleeding edge technical limitations Which is then true. But also doesn't really tell much anymore.
- SanderNL 3y agoI will admit that there are technical limitations in the world. I am not quite sure I said there weren’t. What I said was that they just don’t matter in the grand scheme of things. Caching is not holding anyone back, it’s just a technical detail.
- valenterry 3y agoMaybe I just read your post wrongly, but my impression is just very different. Even though I don't do bleeding edge work mostly, I still spent about a third of my coding time dealing with performance related issues. And I do use postgres, the jvm and generally mostly mature technology. But much is related to the specific domain I'm working at, so I don't think more standardization would have been of any help in my case. I guess we just do different things.
- deterministic 3y ago30+ years of experience here, working at all levels from coding to VP of development to CEO of a successful software company: I completely disagree. Writing maintainable, bug free, performant code is HARD. And very few developers know how to do it well. A single GOOD developer will consistently outperform a 5+ team of “average” developers.