lunes, 4 de febrero de 2019

Syntax error: Please recompile 3rd entrance


Everyone thinks they can predict the future. I’m not saying this about programming languages specifically, but about anything, economy, technology and even something as specific or as personal as our own lives. The funniest thing of all is that we can’t seem to get it right, ever. One may think about looking at the past for hints of the future, examining our present and bet on future factors or even imagining what future we want and making it ourselves. Paul Graham seems to think that an overall trend has been present throughout technology in general and so programming languages must follow as well. I don’t disagree with him, after all, what do I know that he doesn’t? His argument seems almost anachronistic in nature; I think that is normally a good thing. However, I find some things rather, funny, in his discourse.

The most curious element is the one where it talks about parallelism and how it is used (or will be used) as later implementation details; that the most important thing is to first worry about abstractions and then, if needed, parallelism will be added later on. This seems to contradict some principles that I have learnt at school. I normally think and act upon making an abstraction first and then choosing a certain paradigm or general tactic to tackle on the problem. Multiple independent data sets with similar operations? Parallelism is the key. Modeling after the real world in groups of elements that share common attributes and behaviors? Object-Oriented Programming should do the trick. Don’t care that much about efficiency and just need to pass thoughts from your head into code? Python has you covered. Think the Python guy is a fool for believing things are easy? Maybe C is more your style. Just want to pass as one of the crowd and hope no one notices you? Boy, Java would like to hear from you.

Anyhow, to each his own. I believe, in order to make excellent programs, we need to consider very carefully our abstraction process. Then, we choose a tactic by which to tackle the problem. Finally, we analyze extremely carefully how to implement said abstraction with that tactic.

No hay comentarios.:

Publicar un comentario