Programming Languages
Building a program in Scratch
Recently I built a very simple application within MIT's block based programming language Scratch.
Overall, I would rate my experience with Scratch as "okay". It wasn't hard to use, but I felt it left a lot to be desired as a "language". One of the pro's that I immediately noticed is that it was straight forward and easy to use. This makes it ideal for introducing the basic concepts of programming to beginners or children.
However, it is a bit lacking in functionality compared to a more typical language like Java or Python. An example of this lack of functionality would be the apparent inability to call a variable at the end of a string to say something along the lines of "Hello, I am clone number {clone number}." where {clone number} is a variable that is automatically incremented on each function call. This can be done very crudely by creating your own block, but execution is inferior compared to a typical language.
Personally, I'm not very fond of block based programming languages in comparison to true code. I find them to be lacking in flexibility. However, for teaching the basics in an introductory manner, Scratch does a good job.
Language Preferences
Regarding programming languages, I am most partial to higher level languages like Java or Python over lower level alternatives such as assembly or machine language.
I find Assembly to be difficult to read and use in comparison with Machine language being even worse in that it consists purely of 1's and 0's. Assembly does still use human readable words, but it doesn't allow for easy variable assignment or function creation like a higher level language would.
Machine language does excel on older equipment or equipment that has low overhead with the specs. Alternatively, for simple machines that require a single Boolean value such as a light switch, it works perfectly fine. Assembly also works better on machines with limited memory and cache, such as a digital thermostat, that only need basic firmware to function. Higher level languages excel in virtually every other use case though.
As far as my personal favorites, I would have to say I prefer Python for basic scripting and automation tasks. Elixir and Java are some of my favorites for application development though. Python would be the easiest and most forgiving in my opinion though due to how the syntax works.
Popularity wise though, I would say Javascript likely takes the cake due to the huge userbase, high demand for application and web development, ease of use, and massive software library and package management tool that is NPM (security issues aside).
My project
My project can be found below. Click on the cat to watch him dance and generate clones, or click the green flag to make him rotate 90 degrees.


Comments
Post a Comment