These days, it seems like everyone is talking about computer programming and coding. It’s almost like the hype surrounding programming popped up overnight. Online tutorials like Treehouse have been designed to teach users to code easily and from their own home. Groups like Girls Who Code work to bring programming experience to those who would likely not have access to it otherwise. But what is programming exactly, and why is everyone talking about it so much?
What is Programming?
The following quote was provided in the open source textbook entitled "Problem Solving with Algorithms and Data Structures". It and many other open source books are available to read on the Interactive Python database.
Programming is the process of taking an algorithm and encoding it into a notation, a programming language, so that it can be executed by a computer. Although many programming languages and many different types of computers exist, the important first step is the need to have the solution. Without an algorithm there can be no program.
So in short, it's about taking coding languages and using them as building blocks. From these blocks, tools such as, advanced software programs for businesses and beautifully, practical websites for citizens are created.
The History of Programming
Ada Lovelace was the only legitimate child of famous Romantic poet Lord Byron. She spent 1842 and 1843 translating an article written by the famous mathematician, Charles Babbage, who wanted to use changeable punch cards to store programs on his invention, the Analytic Engine (a.k.a. the first computer). Found in Lovelace’s notes are descriptions of what is now cited as the first ever computer program. Not only is Lovelace now considered the world’s first ever computer programmer, but the programming language "Ada" is honorably named after her. Lovelace predicted that one day the theoretical computer would be able to play music, as well as chess. Needless to say, her predictions came true.
The punch cards mentioned in the article Lovelace was translating were eventually used by an inventor and businessman named, Herman Hollerith in his electric tabulating machine. In 1906 Hollerith developed a new type of switchboard. The board was designed to allow his tabulating machine to perform separate tasks without having to be reconstructed between each one. The company Hollerith formed would one day evolve into what is now called IBM (i.e. International Business Machines).
IBM gave birth to the first ever high level programming language in 1954 when a team led by John Backus invented FORTRAN (i.e. FORmula TRANslation). FORTAN was originally developed for scientific and engineering programs. It is still used to this day. This programming language gave way to many of the higher level ones modern programmers use now, such as HTML and C++. You can find out more about the history of coding at the website Who Is Hosting This?
Programming and Software Distribution
The first people to create software and freely administer it came from higher education. Richard Stallman, a programmer and free software activist had this to say of the community of free software:
"Sharing of software was not limited to our particular community; It is as old as computers, just as sharing of recipes is as old as cooking. But we did it more than most."
This was in the 1950s, but within a decade companies were charging for their software to make up for the increasing costs of development. Most companies would sell their software with their hardware costs. Not only was this more expensive for consumers, but because companies had a monopoly on all of the software, they were the only ones who could repair bugs. So, after a 1969 lawsuit against IBM, the United States government deemed software that came bundled with hardware as anti competition.
In 1984 the GNU (Which stands for "GNU's Not Unix!") project was formed by aforementioned Richard Stallman in an attempt to reinvent the free and open software community that was once abundant in programming. This reintroduction of open sharing was vital to the progress of programming. Without it, it's likely a great deal of our software and web development would have halted.
Why is Programming So Important?
In a recent article, we sat down with front end developers who told us all about the front facing web development world. To look at programming, we called on the expertise of USF IT programmers, Farzana Jahan and Richard Bunke. Their knowledge and experience grants us important insights into what happens behind the scenes in the programming arena.
Founder of the GNU Project Richard Stallman wrote in 1985 that, "The fundamental act of friendship among programmers is the sharing of programs". Is this still relevant?
It is still relevant. Open source software has taken over and eclipsed closed source software in large parts. So if you’re charging individually for those old building blocks that were cutting edge then and you’re paying all of those licenses down the way, you’re not going to make it. Like these large companies that spring up overnight and explode, they have to scale up very quickly. So if they were paying a license for, say, a web server they used to serve up their thousands and thousands of pages, they could never scale up. So the open source code that's free allows them to expand exponentially. Everyone’s better off because of it.
That is really important: Teamwork. In order to build good software, teamwork is one of the most important things. Sharing knowledge and working together, so that we don’t just think about individual code. We think about it as a whole, so that we can deliver a good product.
Can you see any big changes to programming on the horizon?
Voice activation is kind of the new user interface. I’m working with [a colleague] right now to create some voice activated applications just as examples and demonstrations. So instead of having a website, you’ll be able to actively talk to a website and pull information just by asking for it. That couldn’t have been done five, ten years ago at all. With the advancements in A.I. (i.e. Artificial Intelligence) and the ability of natural language processing, you have a higher level toolkit available. Now you don’t have to write all of the complexities of a language.
When I started programming [seven years ago] mobile development wasn’t that big, but now it looks like mobile development is a huge part of technology. Web technology is going further and further. So any eCommerce site or anything like that. If you think about Amazon, they’re getting bigger and bigger. Consumers are more interested in online shopping, and everything is getting automated online. These are huge changes and they're going to continue because they're making people’s lives easier. Anything that makes people’s lives easier is going to continue.
The story of programming is one of evolution. It started in the 1800's with an ambitious young woman named Ada Lovelace, and every day further progress is made through the ingenuity and ambition of our modern programmers, and the many businesses and collaborators who work alongside them. Modern healthcare, education, and many government institutions are hugely benefited by the resources presented through modern programs and will continue to make significant strides because of them. New technologies running on revolutionary new programs are constantly being produced and marketed to citizens across the globe, which also means that programmers always have something new to learn. Who knows what coding will look like a hundred years from now! Then again, who really knows what it will look like just six months from now? Stay tuned to find out!