Conducted a small survey on twitter regarding the inheritance related open decorator in the Kotlin language. The comparison was between the design semantics offered via Java's final keyword and Kotlin's open keyword.
Here are the results.
In Java every class by default is inheritable until made final. In Kotlin every class by default is not inheritable until annotated with the keyword 'open'. If you were to create your own language which approach would you prefer— RajeshPatkar (@RajeshPatkar) November 14, 2017
Any Computer Language can be defined in terms of its Vocabulary and it's Grammar. A Language's grammar specifies the rules of composition of its fundamental elements. When you start learning a language most of the introductory material focuses on the vocabulary and the grammar. When you achieve a satisfactory level of proficiency in the vocabulary and the grammar, you feel that you know the language. As you are aware that in languages like English, knowing vocabulary and grammar doesn't guarantee your ability to write an essay or a poem. Similarly knowing vocabulary and grammar of a computer programming language doesn't guarantee your ability to develop software in it. You have to master several other skills before you start developing a software. To clarify this to a new programmer, I use a metaphor called Potter Metaphor. A Potter starts with raw materials like mud, water, colours etc and with the use of his wheel creates pots. A potter who claims that he is a potter …