|
MultiLanguage
Why use more than one language?
Learning How Different Tools Handle the JobFor a list of the 26 languages this project uses, see YourSpaceVariants in the wiki. A programming language is simply a tool. There is no single "best" programming language, only tasks for which different languages are well-suited. By pushing myself to learn how different languages handle the same task, I learn more about each language that I use to accomplish that task. I originally wrote YourSpace as a CommandLineInterface tool to quickly check LastLogin dates in my terminal, iTerm on OSX 10.4.11 Tiger. It struck me that the tasks being executed by my code were fundamental tasks that would be good to know in any language I use. To accomplish the tasks being executed within the YourSpace utility, a program must:
Those 7 tasks are the core of a lot of goals anyone might have with any given language. Repeating those tasks in different languages teaches me how each language differs from the others. The logic and design have already been handled with the first version I wrote. I no longer have to ask myself "What should this do?" or "How will this work?" This means I can focus my entire energy on learning the language I am porting things to. I was pleased to discover another hacker with the same approach. Eric Hanchrow's project, Polyglot Anagrams (also hosted here on Google Code), follows quite the same philosophy of learning. |