|
|
|
|
|
by kls
5231 days ago
|
|
There are a few archetypes of programmers, there are those that see the science of the computer, there are those that see the art of software creation and there are a few in between that see the philosophy in the middle. I would assume by your writing that you are in the first camp. The problem is those is the first camp favor languages with a different feature set than those that view it as a art. One cherishes their language because it enforces structure and rules, while those that see it as the art of human expression favor languages for their expressiveness and their ability to bend the languadge to their creative desires. I like to use Lisp as an example because it is so hated by one camp and so loved by the other and that is the crux of the issue, language are developed for humans to express their ideas. We all think and abstract differently, I do not believe that their will ever be one language that rules them all, because it supposes that it can encompass the way all programers think, by nature it would be the most convoluted language ever designed, as such it would die in the design phase. Conversely I see concepts like the JVM and the .NET VM as the future. I look at Java, Scala and Clojure as examples of innovation on all sides of the fence on a platform where they can interopt and leverage the creations by all languages that are supported on the VM. At the core, the issue is the differences in thought process and expression of that thought, until direct thought can be translated into software there is just no way to design Utopia++. |
|
While I enjoy the feeling of creation and I like doing fancy stuff on my computer, I still recognize that all code boils down to those three things I listed. No matter how artsy you get about it. I argue that creativity and expressiveness would be enhanced by having a common language that we could all understand and share our own skills through it. I like to think that if we had this utopistic language, the teaching of programming would become easier and it would be started earlier for students. Also the quality of the teaching would improve significantly.
Language is but a tool to transfer ideas out of your head to others, the better you are at one the easier it becomes. QuickSort works like it does because thats the algorithm. A linked list is like that because thats the data structure. I don't think it matters how you learn these concepts and how you visualize them in your head. My native language is not english but still I can think in it, through practice. I think the same applies to programming languages, just as long as the language has that expressive power. If it doesn't confine itself to a singular style or paradigm but lets you choose, isn't that the most expressive of languages?