Talk to me: Programming Languages

 


There is a wide spectrum of software languages that have differing capabilities. Selecting a language depends on the application requirements and the style of the developer. Regardless of the type of software, there are programming languages that can meet the application's technical requirements and fit coding styles of the development teams. This posting will give an overview of the different layers of computer languages and a comparison of the most popular high-level software languages. I will also cover the Scratch: Block Programming platform and provide a link to a simple project completed on the platform.

Software Language Comparison

All programming code eventually gets converted to machine language. Every CPU has its own unique machine language so software must be processed and compiled to run on specific devices. As computers and software have evolved, layers have been added to enable software development to meet the ever-changing digital demands.

Assembly language is very close to machine language where each CPU cycle is programmed by loading registers with information in binary code and operations are performed on the data within the registers. This computer code is incredibly laborious and tedious to write because of the immense number of lines of code that are required to do complex computation.

There are two types of high-level languages. First, there are languages that are compiled into machine code before the application is executed. Examples of compiled languages are C and C++. The other type of high-level language is interpreted directly without translation before executing the code. Examples of this type are JavaScript and Python. There is a trade-off with both types of high-level languages that include processing time, portability and security.

Most of my experience is in .Net, Java and JavaScript. I prefer compiled languages for complex, integrated applications. When writing logic centric scripts, I believe an interpreted language like JavaScript is best because it is easy to write and test iteratively with very little overhead.

Scratch: Block Exercise Review

Scratch block programming platform provides a free and simple visual interface for children to use that promotes problem solving and computational thinking Scratch (scratch.mit.edu/about). The interface is intuitive and allows the coder to focus on logic and controls instead of coding language syntax. By doing this, the Scratch platform is a great way to learn the process of developing software.

I would say the ease of adding blocks and connecting the modules (sprites) together was the most surprising aspect as I began my scratch block project. There were a couple of actions where I needed guidance but after finding the tutorials, I was able to easily work around them. The tutorials are short and easy to understand and as I watched them, I realized how dynamic and powerful the platform is.

There was one area that wasn't easily understood. The Boolean logic operators were not intuitive, and I didn’t find a tutorial that directly demonstrated how to use them. Other than my confusion about the Boolean operator blocks, the Scratch platform was easy and enjoyable to quickly develop software.

Review: 5 Stars

Link: Week1-Where Am I? on Scratch (mit.edu)  

References
Vahid, F., & Lysecky, S. (2019). Computing technology for all. zyBooks.



Comments