12 (Really) Controversial Programming Opinions
billthelizard.com
12 (Really) Controversial Programming Opinions
1–10 of 61 posts
Re: 12 (Really) Controversial Programming Opinions
#2Re: 12 (Really) Controversial Programming Opinions
#3Re: 12 (Really) Controversial Programming Opinions
#4Note: If a programmer only writes programs for her own use, "competency", as defined above, is all but irrelevent. Whatever works.
Controversial, but true.
Re: 12 (Really) Controversial Programming Opinions
#5I usually end up explaining them like a repeat...until, which usually makes more sense to non-programmers.
Re: 12 (Really) Controversial Programming Opinions
#6I do somewhat agree with the OOP criticism as well. I find the best programming achievable is by mixing strategies and not adhering strictly to any one philosophy. Java's OOP is so inflexible and limiting that it takes a significant amount more effort to get basic work done. It may lead to a somewhat more manageable codebase at first, but I feel experience in your language of choice can bridge the gap between such a strict static-typed language vs a more elegant but potentially messier dynamic-typed language in this respect.
Finally I do agree that C should be taught before you learn any other programming language...but not to such a degree that you need to be able to build the best Javascript engine in the world from scratch before you move onto another programming language. The goal of programming is to build software that saves you time, after all - you aren't saving much time with as high a barrier to entry as mastering the fundamentals of C. It is important for theory discussion as well as learning the best way to code a lot of logic in many other languages, but I feel an abstracted language has failed if it hasn't done enough of the work for you to refactor your code properly in the first place. Loop unrolling, seriously? I like that I learned why it's important...but I shouldn't ever have to do that in any decently programmed higher level language.
Re: 12 (Really) Controversial Programming Opinions
#713. Most programmers think they know what they're doing but actually are "incompetent". (There are Usenet posts going back to 80's documenting this fact.) How am I defining "incompetent"? In my definition it means writing software that any reasonably skilled hacker can cause to "malfunction", i.e. not perform as expected by the programmer, which depending on the program may or may not present a security risk. The num…
Re: 12 (Really) Controversial Programming Opinions
#86. The use of try/catch exception handling is worse than the use of simple return codes and associated common messaging structures to ferry useful error messages.
I think this really depends on the language. In erlang I absolutely hate exceptions because they don't really make sense in a functional language (which let's say erlang is for the sake of this argument). Threads run functions with only the function's parameters as state. It doesn't make sense to have to worry about a function stopping half way through, especially when most functions already pass up tuples looking like {error,E} or {success,S}. If you have to worry about exceptions as well, now you have to handle the error tuple and the exception case, and usually both cases are getting the same code so you have to go make a new function to call for that case. This gets messy. If a thread crashes it crashes, otherwise it should be passing up the error tuple; there's no reason for exceptions.
On the other hand I think exceptions make a lot of sense in python, and I think the python community has incorporated them in a standard way which makes sense, so that handling exceptions in python is actually easier then passing back different error codes and what-not (no atoms in python).
Re: 12 (Really) Controversial Programming Opinions
#9 vi vs emacs
OO vs fpRe: 12 (Really) Controversial Programming Opinions
#1013. Most programmers think they know what they're doing but actually are "incompetent". (There are Usenet posts going back to 80's documenting this fact.) How am I defining "incompetent"? In my definition it means writing software that any reasonably skilled hacker can cause to "malfunction", i.e. not perform as expected by the programmer, which depending on the program may or may not present a security risk. The num…