3 ms·
No. Real developers design their data structures and algorithms carefully. When it is tine to implement them, everything should be laid out clearly enough. Ther
by gmueckl 9y ago
No. Real developers design their data structures and algorithms carefully. When it is tine to implement them, everything should be laid out clearly enough. There are industries where this kind of process is required and it truely shows in the quality of the results.
- kbenson 9y agoIf the vast majority of software is not made by real developers (and I think by the definitions you are espousing it is not), then I think one of the definitions is in need to change. As beneficial to your argument as it would be for that change to be the definition of "software", I don't think that's likely.
- gmueckl 9y agoI needed to make a distinction in the dedinition I gave. And I stand by it, even if the wording comes across as snarky. There are software engineering methods that are proven to work. They do not involve just diving in and changing the code. But I also think that there are valid reasons to not apply these rigid development practices to certain kinds of projects. For the rest, we might well get mandatory development standards forced on us to I am well aware of the pressure on developers to get requested feature done quickly. But the vast majority of bugs that get shipped would be easily prevented by more thorough processes. All those projects writing highly reliable software demonstrate this. But the price tag has a few zeroes appended as a result.
- pohl 9y agoThere are software engineering methods that are proven to work. Rust’s type system is arguably one of them.
- gmueckl 9y agoI was talking about processes, not tools. Rust is just tool. But good software comes from thorough processes.
- kibwen 9y agoGood software comes from processes that aren't afraid to adopt tools to automatically enforce those processes in order to guard against human oversight.
- gmueckl 9y agoTools come from processes. You need to know what the tool needs to do (the process) before you can write it.
- pohl 9y agoType systems are applied mathematics. You can’t get more engineering-y than that.
- gmueckl 9y agoSee my reply to the other comment. Type systems are tools that simply the process of checking that you do not mangle data by applying the wrong instructions to them. They didn't come out of nowhere.
- pohl 9y agoMath is a tool, too, yet applying mathematical methods is one of the defining characteristics of engineering.
- wtetzner 9y ago> There are industries where this kind of process is required and it truely shows in the quality of the results. It also shows in the cost of building the software. Most software companies aren't willing to pay the cost of that process. Like it or not, you will almost certainly interact with software written by these companies, either directly or indirectly.
- pcwalton 9y agoI mean, that's great in theory, but we've been trying the "just design the program better" approach for 40 years and have been failing.