Most of today’s general purpose progamming languagues come with plethora of features. Often there are different levels of abstractions and intended use cases. Some features are primarily for library designers, others ease implementation of domain specific languages and application developers use mostly another feature set.
Some language communities are discussing “language profiles / levels” to ban certain potentionally harmful constructs. The typical audience like application programmers does not need them but removing them from the language would limit its usefulness in other cases. Examples are Scala levels (a bit dated), the Google C++ Style Guide or Profiles in the C++ Core Guidelines.
In the wild
When reading other peoples code I often see novice code dealing with low-level threading. Or they go over board with templates, reflection or meta programming.
I have even seen custom
ClassLoaders in Java written by normal application programmers. People are using threads when…
View original post 218 more words