Reading 05: Watch your Language





Language is an incredibly important tool in all facets of life. Different languages have different ways of expressing concepts such as numbers or the future, all of which affect how we think about these concepts. In some languages, the future is described more in vague terms rather than exact terms, which can lead to differences in how cultures that speak that language view the future. In written language, we can see that the Arabic script is far more efficient than the Roman script in terms of numbers, which is the reason we now use Arabic numbers instead of Roman numerals.


The same applies to programming languages. Choosing the programming language that you are going to use when starting a project is one of the most important design choices you could make. You must consider the efficiency of the programmer in addition to the efficiency of the program. For a small script that is unlikely to see use past a very few people, it is perfectly fine to choose a language like Python that is quick and easy to write a script in. However, for projects that will be used by many people, or perhaps a project that requires an incredible amount of computational power / data, it becomes more important to decide which language to use in development. A language like Go offers powerful tools for concurrency, which could be useful depending on how much your program uses that. A language like C or Zig, while a bit more difficult to program in offers incredibly fast performance. There are other languages that are harder to initially learn, but are incredibly safe, such as HAL/S which is used by NASA for the Space Shuttle program.


Thus, the biggest thing is not whether a language is more powerful than another (they are all mostly the same in power; people have even written operating systems in Scratch), but the different characteristics and strengths each language has to offer. One strength could be seen as accessibility - sure, a language may be less efficient at doing things than other languages, but if it is easily accessible it can carve out a niche in certain communities. Even if it is inferior in other aspects such as safety, efficiency, if a language has more documentation and is easier to learn, it will be used.


I think of Lisp, which the author of these essays loves. It is a bit trickier to pick up though, than high level languages like C++ or Python. However, it is very powerful and allows you to do some pretty cool stuff in an easier manner than other languages (once you manage to think in a Lisp way). When I was browsing /g/ on 4chan after setting up Linux on my computer, I saw an argument between two anons (which before degenerating into insults that I can’t repeat here), touched on some of the same topics that Paul Graham writes about regarding Lisp. One anon argued that learning Lisp was the only language that you needed to know (speaking from a purely hobbyist standpoint) because it was more powerful than other languages, and once you learned to think in Lisp, you would be able to do much greater things than in other languages. Overall, reading Graham’s articles and remembering that argument has led me to think more about learning Lisp this semester (especially considering Emacs uses a variation of Lisp as a scripting language).

Comments

Popular posts from this blog

Reading 04: Programming is an art (Donald Knuth approved!)

Reading 02: ABC Always Be Selling out

Reading 09: Open source? Sounds communist to me