5 ms·
LOC means nothing, and if you want to generate subtle programmer errors, then templates is definitely the way to go.
by Stormbringer 16y ago
LOC means nothing, and if you want to generate subtle programmer errors, then templates is definitely the way to go.
- blub 16y agoLOC means a lot when it comes to: * reading and trying to understand source code * maintaining source code * typing and programming-related injuries The dynamic-typed camp argues that even declaring a variable is a pain. Conciseness is one of the favourite features of JS/Ruby/Python developers and prolixity is universaly loathed in Java. Please expand on your assertion that subtle programming errors are caused by templates. I'm interested especially in errors as a consequence of using templates from the STL or to build generic code. i.e: not metaprogramming
- rdtsc 16y ago> reading and trying to understand source code ... maintaining source code I think it helps but in general those things are not related very well. For examples guess what this line of code does (this is APL) ? X[⍋X+.≠' ';] According to APL's Wikipedia entry it "sorts a word list stored in matrix X according to word length". It is just 1 line of code so it wins there. But now imagine reading code like that and maintaining it.
- blub 16y agoAn extreme example doesn't prove much and there are many languages that successfully balance readability with LOC. e.g: Python, JS.
- rdtsc 16y agoRight, I was just trying to highlight that a simple metric of LOCs is not enough. One can right cryptic code to minimize LOCs but that usually leads in harder to read and maintain code.
- anon_d 16y agoIt's silly to expect to be able to understand text in a foreign language. If you want to read APL, learn APL; It's a great language.
- roel_v 16y ago"if you want to generate subtle programmer errors, then templates is definitely the way to go." Please indicate how so. I cannot think of ways that make templates more prone to programmer error than, let's say, str_xxx functions for which the programmer needs to allocate extra room for a \0 (or not, depending on which function you use...). Those types of C idiosyncrasies cause much more mistakes than any inadvertent template overload ever could.