…its quirky little features that allow me to write concise, clever lines of code that do something complex…
…I do use it right and I do follow best practices.
I used to program in assembly language. Using macros, programs can be reasonably structured and readable. With self-discipline, I could avoid many of the dangers associated with writing assembler code. Similarly, I rarely encountered issues when writing large C programs.
But today I’m thankful to use much higher level languages such as Smalltalk and Go. Makes life a whole lot easier and alleviates a good deal of stress.
The reason to use high-level languages is to make your job easier.
Otherwise, why bother using better languages? You’re trying to defend the indefensible.
This flexibility you’re referring to is confusing and dangerous for many programmers. The “this” issue is widely considered one of the language’s “warts.” Cleaning up the language does not prevent you from writing clean and elegant code. It just means you do so in a different, more disciplined and safer way.
- The enormous popularity of the web which holds developers hostage to this featherweight language (at least, until WebAssembly arrives).