4 ms·
Hah, most programmers can't make maintainable software. I see programming mostly as a mindset. Like doing algebra. You couldn't do it as an infant, because you
by rustybolt 7y ago
Hah, most programmers can't make maintainable software.
I see programming mostly as a mindset. Like doing algebra. You couldn't do it as an infant, because you just didn't understand the concept of using letters instead of variables.
Of course, there usually is a level of complexity that you need to get used to as well, but you can also see this as a defect of most API's, or as an inherent quality of doing anything nontrivial.
- ppseafield 7y agoIndeed, making maintainable software is difficult. To share your analogy: many folks have trouble with algebra. It's not that it's categorically impossible for them to do it; there could be any number of factors (bad math education, home troubles making school more difficult, etc.). With a lot of time and dedication many of these folks could eventually get pretty good at doing algebra. I've tutored these folks before. Some of them have enough time and dedication to get better at it. But without that (and at least time is outside most of these folks' control), many of them will struggle. So I don't think the parent comment was saying "Most people can't program in the same way a gorilla can't speak English", but instead "Most people can't program because they don't have the acquired skills to program." I would add that these folks' goal is often not programming but their original job.
- XuMiao 7y agoMost people have their own domains and don't want to make softwares. But their jobs depend on softwares sometimes. When the software developers don't understand the domain, it's reasonable to provide a DSL for users to customize by themselves. If the programming language is as natural as the human language, DSL is just the regular language. After all, language is for the precise and concise communication, human to human or human to machine.
- ppseafield 7y ago> If the programming language is as natural as the human language, In my experience, it isn't. Computers are much more pedantic and less forgiving than other people. Computers won't understand "what you meant to say". Additionally people often have trouble communicating effectively with other people in their natural language. So a DSL being in that language doesn't necessarily guarantee the user's success in using that DSL correctly.
- fragmede 7y agoIf it's all about the mindset, why is the creator of one of the Excel behemoths not a programmer? It has a concept of variables (named cells even allows Excel users to name variables), If-else statements (while important for imperative languages, not all programming languages necessarily have if-else), loops (using array functions), and functions (often using another sheet for separate scope). Why do so many want to gatekeep out Excel users who have reached that level as not being programmers? Because the IDE is a GUI, and we've all been taught (sometimes via trying to make one) that GUI programming will "never" work/catch on? Because sometimes it needs to be ported to a different language? (Done that from python to Golang as a 'real' programmer.) Because they sometimes ask for help? (Stack overflow, anybody?) Because Excel sheets don't have unit tests? (Be real - there's tons of code out there that doesn't have tests.) Because their software causes messes when it has a bug? (I'm not ashamed to admit I've written code that has bug in it; ones that managed to make it into production, even!) I wouldn't consider someone who's new to Excel and doesn't use formulas to be a programmer. But having seen some truely bohemoth spreadsheets from finance (and being asked to port them), I'm having a hard time drawing a line between the two.