4 ms·
> If you are only using ready-made building blocks, there is a lot of great software you just cannot write. And I think we all see that, because there isn't muc
by p-e-w 3y ago
> If you are only using ready-made building blocks, there is a lot of great software you just cannot write. And I think we all see that, because there isn't much great software around.
I claim that the opposite is true: The reason there are so few software projects that are really great is because high-level skills, not low-level ones, are in short supply. Every CS graduate can implement Paxos. The number of people with the experience needed to take an implementation of Paxos, and many other components, and put them together into something that works really well is much, much smaller.
> But I have bad news for you. This kind of software will soon be written not by you, but by an AI.
AI is actually much better at writing low-level code than high-level code. If you tell it to implement a piece table or a Fibonacci heap, it will do so without problems, in any language. If you tell it to create a simple CRUD application using existing libraries, it will output something that doesn't actually work.
- auggierose 3y agoI guess it all depends on your definition of low-level. High-level can also be low-level, just with different building blocks, if the building blocks are based on well-specified abstractions. I am actually currently writing a novel text editor, and I can guarantee you, my requirements mean that an AI cannot help me with that directly, because the underlying mechanisms I need don't exist yet. The AI is still helpful though when researching existing mechanisms, and to pinpoint why they don't work for me. > AI is actually much better at writing low-level code than high-level code. > If you tell it to create a simple CRUD application using existing libraries, it will output something that doesn't actually work. If your low-level code is just a copy or adaptation of something existing, then yes, AI is really good at that. Something novel though, AI cannot help you much here. On the other hand, simple CRUD applications will all be done by AI very soon. Probably not using existing libraries though, because these are crap. But there is certainly a role for humans currently in high-level design, I agree with you here. But this high-level design crucially relies on your ability for low-level design, with the ability to imagine and then implement (possibly with the help of AI) the building blocks you need, not just reuse the ones that are there.
- eternityforest 3y agoYou have to be pretty smart to even think of an idea that can't be done with existing building blocks. It seems to show up more in hobby stuff, or in cutting edge projects. I'm always excited whenever I see any kind of algorithm work, because it's such a novelty. Most everything I do is just a UI around a few libraries.
- yxhuvud 3y agoThere is a world of difference between "can be done" and "can be done well". Existing building blocks typically is good for the former but often not the latter, or you have to exercise a good amount of judgement when piecing things together.
- coolThingsFirst 3y agoExisting libraries for writing CRUD apps are anything but crap. If we can’t create special libraries that work well for common tasks then as a species we are too dumb.
- auggierose 3y agoWhich ones are your favourite libraries, let's say for a TypeScript only code base?
- flir 3y agoIf you feel like telling us about your novel approach to text editing, I'd like to hear it (or I'll just wait for the announcement post. That's cool too).
- deterministic 3y agoNo AI needed. I use a custom code generator to generate 80% to 90% of the code I need in CRUD applications. And I can actually trust the code unlike code written by an AI.
- auggierose 3y ago
- deleted 3y ago[deleted]
- FiberBundle 3y ago> Every CS graduate can implement Paxos Is all of this satire?
- ahoka 3y agoJust plain old elitism.
- sokoloff 3y ago> Every CS graduate can implement Paxos. I have lived evidence that not nearly every CS graduate even knows about the topic that Paxos addresses.
- p-e-w 3y agoWhere in the world can you get a computer science degree without hearing about consensus algorithms?
- tester756 3y agoPretty much everywhere below country's top3, top5? I've got masters degree and I don't think anyone even mentioned word "paxos" or "raft" during my 5 years there. Fortunely internet is a thing and I could read something about this topic. I know graduates from various public schools and people who heard about paxos (let alone can implement it) are tiny %.
- ryandrake 3y agoI have a Comp Eng degree from the 90s, been in the industry since then (~25 years), and I have never heard of Paxos. Even the top results from a Google search yields that Paxos is one of: 1. a blockchain company, or 2. a Greek island. More than halfway down the page there is mention of an algorithm of some kind. Probably not a good example of "baseline knowledge" for a software engineer.
- _gabe_ 3y agoYou’ve just shifted the goalpost twice here. I never learned about Paxos, but I did learn about consensus algorithms. Second, learning about something, and implementing something are completely different. Most CS graduates have an idea of how syntax parsing works. How many can implement a parser? What about a syntax highlighter? Most graduates have an idea of how an OS works. How many can build an OS? I guess if you’re always using libraries though, you may mistakenly be thinking that these libraries are just doing trivial work. Once you dive in and try to implement the low level stuff, then you realize how big of a disconnect there is between a fuzzy idea in your head and the lines of code that constitute that idea in reality.