A (new) Programmer’s Musings
Week two has just wrapped up on my wild and crazy journey that is The Flatiron School. I feel really lucky to be here and to be surrounded by such smart folks, and even more lucky that in a few months time I might be able to work somewhere as a full time web developer.
As a relative newcomer to the programming field, I’ve found myself wondering about various aspects of the field that I’ve either taken for granted or never thought that much about before. To the veteran CS professional or developer, these may likely seem like unoriginal questions coupled with perhaps misguided musings, but hey, it’s my blog so I get to do what I want! ;)
And, since I’ve always had more fun asking questions than answering them, here are some of the things I’ve been thinking in no specific order:
Why are there so many languages?
It seems like the number of programming languages is increasing more rapidly as time goes on as opposed to human language which went from many to present day where it seems to be converging towards one. Is this an indication that we are still very early in the computer revolution? Or perhaps an indication that the two things are very different from each other? Maybe this isn’t an apt comparison, but it’s something that piques my interest.
Ruby as a language for people, instead of computers.
I really dig this concept. When I was trying to figure out what programming language to learn, I remember trying one that required like 5 lines to add 2 + 2. While I can understand various loyalties people have towards one language or another (I also think there can be a natural tendency towards this the more difficult something is), it seems to me there is something very powerful in a flexible language that makes it easy to express yourself simply–something Ruby is known for. The easier something is to express, implement, and understand, the more opportunity there is for trial and error and experimentation, something I think crucial to invention and making anything better. After all, as our instructor Avi Flombaum has mentioned, the human brain can only process a limited amount of data (around 60 bits per second) when making a decision, so why not leave as much of this power as possible to devise better ways to perform the task at hand than to comprehend the instructions in the first place?
Is language the most efficient way?
I also wonder where this takes you if you follow the premise of this argument further. Are there inefficiencies of the spoken and written word that perhaps could allow for even more powerful languages to emerge? Perhaps there’s a sort of programming equivalent that allows for comprehension on multiple levels at once, like Charles Joseph Minard’s famous info graphic charting Napoleon’s disastrous march through Russia in 1812. I don’t know enough about CS to answer this question yet, but it’s something I’ve been thinking about and look forward to exploring further someday!