The Code Landscape
Computing hardware has become ubiquitous. That means that software has also become a part of nearly every moment of our lives. We live in a world that is mediated by computerized devices, whether those are automatic doors, the keys to our vehicles, or the app that tells us what time the bus will arrive. There is virtually no aspect of modern life that has not been affected by the rise of digital technology and software development.
Different programming languages have evolved alongside different computer hardware platforms and different user needs. There is a huge ecosystem of platforms and supporting technologies that facilitate all of the great functions we appreciate in our software. It can be daunting to decide what programming languages to learn about, or even to begin understanding the general landscape of how languages are used in the real world.
In order to provide a partial description of this broad landscape of software and coding, a list of some of the industries where software is critical and the languages used for those purposes.
Web Development
The web has changed the world. The variety of websites is impossible to summarize, and it's probably not necessary to underscore just how important websites are in the day-to-day business of the 21st Century. There is a wide variety of software running online, and many different programming languages are used actively. Here is a partial list of the most popular programming languages used online. (Please note that HTML and CSS are not programming languages, so they are not included here.)
- JavaScript
- Python
- PHP
- Ruby
- Java
- C#
- Go
- Scala
- Clojure
Videogames
Games are a huge part of the software ecosystem, often existing before much more serious software on new platforms. Videogames have become a part of our global cultural experience, and they rely on the development of computing hardware to continue pushing the bar for graphic and interactive innovations. Many languages are used in the videogames industry, but some of them are:
- C++
- C#
- Java
- Lua
- Python
- JavaScript
Smartphones
Since before the advent of smartphones we have been working towards pocket-sized computing devices that can help us navigate the world more easily and enjoyably. The current reigning champs of smartphone app development are Apple's iOS, Google's Android, and Microsoft's Windows Mobile. These platforms all support multiple approaches to software development, but they provide privileged support for certain programming languages and development platforms.
- Swift
- Java
- Objective-C
- C#
Media Production
Within the world of media production there are many sub-disciplines: film, video, television, animation, special effects, etc. Each of these crafts have become more and more digitized, and they are each reliant on software tools for modern production. Studios and producers use many different languages and platforms, and they are constantly making new tools to push their art.
- C++
- Python
Enterprise Business
Big, big businesses—like banks, insurance companies, large retailers, etc.—have used computers for years to manage backroom processes for manufacturing, fulfillment, communications, and more. They invest large amounts of money in big systems that become integrated tightly into the business functions and often take ages to change or evolve. This means that a wide variety of languages will be used by these large organizations as their new initiatives will leverage the latest, best tech while legacy systems might require antique knowledge.
- Python
- PHP
- Ruby
- COBOL
- Fortran
Scientific Research
Scientists and researchers collect and analyze data using software tools. They rely on computerized hardware to do the collection of data, which provides additional opportunities for software to play a role in their work. These users tend to adopt technologies for longer terms, but they are also constantly looking for new solutions to problems. There is a huge range of technologies used across all of the scientific disciplines, but these are a few of the languages commonly used to run scientific equipment and to report scientific results.
- Python
- R
- Java
- C++
Hardware
There is a huge rise in the creation of additional hardware that uses computerized interfaces. The "Internet of Things" is a popular subject, and we have seen network connected versions of everything from thermostats to refrigerators. In automobiles we see dashboards that are powered by network-connected computers. Children's toys possess intense amounts of sensors and software-powered behaviors. Autopilot software for drones has become so reliable that we can now have flying robots film our outdoor adventures. All of this innovation and development makes use of a broad range of languages and technologies, but these are some common languages used in modern hardware:
- C++
- Java
- Python
- JavaScript