Software development has always been an interest of mine. It is the perfect marriage of analytical science and creative art that fits my personality perfectly. From a science perspective I love the precision that is required to manipulate electrical impulses deep within the silicon-based chips. It almost borders on black arts where we can force a hardware device to carry out our instructions with just a few clicks of the mouse or keyboard. It can also be very frustrating that the computer follows our instructions implicitly without questioning them. It takes a level of abstraction in our thinking to arrange our instructions logically. For many, thinking sequentially and thoroughly can be a challenge in and of itself.
In the early history of personal computers software development was a necessity. There were few applications available so if you wanted something specific you had to write it yourself. I was fascinated by programming languages and collected them like other kids collected baseball cards. The first programming language I learned was Advanced Cobol, a result of that being the only class that had an opening. From there I moved to BASIC (yeah I know, kind of backwards). Through the years I have written in Pascal, Assembly Language, Fortran, JAVA, JavaScript, C, .NET, Smalltalk, LISP, and Swift. Each language had it’s own strengths and weaknesses that I had to manage.
In the end I learned to appreciate the value of a good development environment and what it could do. I understood how a compiler could make or break your code and I even wrote a couple myself when I couldn’t find anything that would work otherwise.
We live in a very interesting time. Technology is advancing at such a rapid pace that it sometimes is difficult to maintain your knowledge base let alone get ahead. I remember growing up, I would visit with my grandparents who were born early in the 20th century. They would talk about how much things had changed in their lifetime. My grandmother grew up in a part of the country and at a time when cars were a rarity. She would talk about how their family had horses and had no need for that contraption they called a automobile. That was such a foreign concept to me. Cars had been around forever and I cannot imagine a time with out them or what my life would even be like if they didn't exist.
Grandma would then talk about the television and how you had to be pretty wealthy to have a television and she didn't know anyone who had one in their home. But as time marched on they did get a black and white television that was as large as a piece of furniture but had an 11 inch screen size. She would tell me about how there were only a few short hours of programming and only one or two channels total. When broadcasts finished the television would just sit idly waiting for programming to start the next day. Compare that to my life when we had two color televisions in our house and had to suffer along with just 12 channels until satellite programming came about. All of the stations broadcast continuously.
These examples and many others just amazed me to think about all of the inventions my grandmother saw come into her life. I never imagined what my own life would be like and whether I would have similar tales to tell when I had grandchildren. But looking back now (and I don't think I am really that old), there have already been devices come and go and some of those have had a huge impact on me personally.
Computers were obviously around when I was a kid but most of them were owned by hobbyists or engineers. Software was relatively rare. I remember one engineer coming to my boy scout troop to help us earn a Computer merit badge. He had a TRS-80 from Radio Shack. The computer didn't have a hard drive. For that matter, it didn't have a disk driver either. He would show us how he would turn it on and would get a prompt. He would code something in to run a program then when he turned off the computer the code was gone having to be recreated each time he used the computer. Then he bought a connection kit that would allow him to plug a cassette recorder into the computer and he would store his program on a tape and this was progress.
Personal computers evolved and became a bit more mainstream. Apple Computer created the Apple ][ and with it a 5.25" floppy drive. This would allow data to be read and written storing information to be used over and over. Before long boxes the size of the computer would be introduced they would call hard disks that would store a whopping 5 MB of information which according to the salesman is so much storage space it would be impossible to fill that up. Computers became more ubiquitous and as their size got smaller and smaller the capabilities became greater and greater.
As the market became saturated with everyone seeming to have one if not multiple computers at their disposal. More portable devices were brought to market and with them came new software needs. Programming and development became less about the device and more about transferrable code that could run on various devices. The press would coin this as the "Post PC" era. It didn't so much mean that people would not have computers available. Instead it referred to the fact that people needed software they could consume in more manageable pieces when they were away from home and from their computers.
The Internet became available and grew to the point that every device in our lives is somehow connected and sharing information all around the world. The idea of coding something that runs on a singular box with self-contained data seems as antiquated as grandma's stories about life before cars or television. These days I spend a lot of my time developing in this new paradigm. Whether it is using development tools on the web to support an online presence such as this web site, or providing a repository of data that I call through an API to display the information on a tablet, phone, or watch.
There is still a huge need for software. The big thing now is the proliferation of artificial intelligence where the computer/device writes its own software. While that all sounds so future thinking, it is not yet as simple as that. The problem remains that initially it will take developers to understand this new technology in order to help AI learn and to fix the issues that will inevitably creep into the computer generated code. The difference will be that instead of using and editor to create code that is compiled and run on the system, this new world will need developers who can adjust the language models and prompts to get the most out of the tools we currently have. Development is never going to go away. It will simply morph into something different but will require the same critical thinking skill set that has always been valuable for writing software.

Back





