Hacker News new | ask | show | jobs
by zhiel 5230 days ago
Then your assumption would be wrong. I consider myself to be more artistic in writing my code. But thats besides the point I was trying to make.

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?

1 comments

Then your assumption would be wrong. I consider myself to be more artistic in writing my code.

I apologize for the assumption but you still fit one of the archetypes, as do I.

QuickSort works like it does because thats the algorithm. A linked list is like that because thats the data structure.

Algorithms are very different from the core constructs of the language and they are very different from say UI programming or system integration programming. Algorithms are closer to Mathematical proofs in it's certainty to be efficient. So long as it is the most efficient implementation. That being said, developing systems is a long way up the stack from algorithms.

I agree that there would be a lot of advantage to everyone adopting the same language, we reinvent the wheel constantly and many times poorly. I don't contend that fact, I just honestly don't see how it is going to be resolved any time soon due to the nature of languages. As a thought experiment lets say that someone was given the authority to make all other languages disappear and they chose COBOL to be the one language. There would be a lot of individuals upset about that decision. I personally would choose a Lisp, which would assuredly set more than just a few people off. I personally would not be happy if it resembled COBOL, Perl or PHP, I am not very dogmatic about languages and go with the flow, but my mind does not work the way those three do, and would not like it if a language resembled any of those. What if someone chooses a visual languadge where we have to drag and drop logic? Those languages are almost university hated by developers.

If one of the currently languages is not the candidate for a utopian language then we get into a worse situation where we now have to write a new language and reinvent the wheel yet again to get everyone on board. We are committing the same error that we are arguing against assuming that this time it will be different. If it is not different this time, we have compounded the issue.

I am generally an optimist, but when a broad category of humans are involved in a conceptualization I become a realist as the human element seems to be the one that foils the best laid plans. Some people choose technology for the specific reason that other people do not use it, they like to be in the know about something the broader population is not. That demographic alone means that there will be a group that will not use the one language, even if it holds superior advantage. I just don't see everyone being accounted for, I believe by it's nature a single language cannot account for everyone.

This is why I see ideas like the JVM as so powerful and immediately beneficial because they allow us to leverage the past efforts while still providing the assortment of languages that we need as a vastly different demographic. The main issue that we are trying to solve via a single language is the duplication of effort, I content that we can solve that through technologies like the JVM. Where a lib written in Java can now be used in more modern languages like Scala and Clojure, to me this fixes the issue in a more pragmatic way but even with that solution we have individuals that do not like the JVM platform for various reasons.