The other day, my niece asked me a question about the TV show she was watching on her computer. “What makes it work; how can this show play on my computer?”
Although she did not realize it, her question really touched on the difference between software and hardware. She then asked how Netflix always knew what shows she wants to watch?
Because she isn’t familiar with either software or technology, I decided to explain the basics. My explanation made me realize that, with software related technology, there are a lot of pieces and parts to the topic and the beginners’ perspective is an important one.
If you’re someone looking for this perspective, this article is for you.
1. Definition of software
Software is a collection of code installed onto a computer’s hard drive or on some other device. The word processing program I used to write this article is software, as is the web browser you are using to read it. Because software does not need to manufactured, it has the advantage of a faster turnaround. This also means that software can be tweaked and changed even after released.
Software can be designed for a number of purposes. It can meet the specific needs of a client (custom software); meet perceived needs of potential users (commercial or open source), or may be geared to personal use by students or researchers.
Most people are familiar with software as it relates to web pages and mobile applications, but there is a whole world of software beyond that. Software is also used in data science to analyze huge data sets, looking for trends that would otherwise not be detectible. Core operational applications help businesses track and manage their operations. This includes payroll applications and those that help customer relationship management.
There are hundreds of languages and sub-languages that are used to code software, in other words, programming languages. It is also possible to create your own language if you find that the constraints of any existing language do not allow you to perform your desired task. A programming language, just like any other language, is simply a set of defined rules used to communicate ideas. Just like we can make up new words like “biohacking” we can also write new programming languages.
There are a few popular languages that most software developers choose to use.
C/C++ was originally developed in the early 1970s at Bell Labs. It operates on a small, fixed number of keywords and a large number of operators. This makes it infinitely useful for a large number of applications. Just as many Western languages borrow from Latin, many other programming languages borrow heavily from C.
Python emerged in the late1980s as a scripting language with an emphasis on readability and elegance. Python has made it a core mission to be fun to use, making it continually popular with software developers.
Visual Basic was first released by Microsoft in 1991. It is often used to create graphic user interfaces, using a drag-and-drop technique. This approach makes it easy to play around with, without having to first learn to read and write the language. The boxes that are created are then defined using more traditional coding. This language is still popular in academia because it is so approachable to the casual developer.
Java, released in 1995, is intended to let developers operate their programs on a wide number of platforms. Applications are typically run through a virtual machine that lets them compile in a uniform way. The syntax for Java is very similar to C/C++.
JavaScript (JS) was also released in 1995, the same year as Java. That is where the similarities end. While Java is designed to operate static programs, JS is a web programming language used to make web pages interactive. JS allows you to “like” a picture on Instagram and have a heart appear without having to reload the whole page. JS also made the zoom function on navigation apps possible. Before 1995, in order to zoom in on a location the entire page had to be reloaded and it took forever. With JS, the image refreshes in real time.