WDIM - Software

WDIM - Software

Introduction

Software is almost like the Wild Wild West (think movie, not history. If you haven't seen it, you should). You've got a few different characters, main and supporting, and there is always some type of surprise waiting in the next 30 seconds (Makes more sense when you watch it). Some of the characters prefer time-tested methods of accomplishing work, others prefer the newer and theoretical methods. Eventually, after the bad guy is dealt with in a fiery crash (ironically, much like some software releases) with his giant metal spider (Seriously, if you haven't watched it, at least look up the plot), the characters start to adopt some of each other's style of accomplishing their tasks. From the books and papers written about software in the 1930's all the way to now, with 100 new apps released daily, software is a constantly changing and evolving part of computer science which can, sometimes, rely on time-tested methods, or on theoretical concepts, or both.

History

Software is called "soft"ware because the creation of computer "hard"ware was already in place and there had to be a distinction (hardware being the physical components and software being the invisible components). Software is further separated into firmware (the software directly related to the hardware, like drivers) and tradition software (apps, operating systems, etc.). The origination of software came from theoretical concepts put forward in the late 1930's which talked about the possibility of storing information in a computer that could be referenced, started, and stopped without needing to re-engineer the wires of a computer (or hole punches, or light switches, and the like). The theoretical concepts became tangible when the Manchester Baby (not a literal baby) was able to calculate the highest factor of the integer 2^18 = 262,144 (exciting stuff, right?). What this showed was the ability to take programming languages like Assembly, store the information in the computer, and then allow the computer to call the program and execute multiple computations on it.

Programming Languages

In previous articles, the idea of a programming language was briefly discussed as the most commonly known part of a computer. This is the result of software being ingrained into every part of our lives. Software helps us wake up, track our eating/sleeping/exercise, holds our calendars, keeps our notes, aids in helping us keep up our relationships, and even provides us with the ability to prove our significant others wrong (best. reason. ever.). But, what we interact with is the product of 50+ years of programming evolution. The original programming was done in binary (101100101011101010100100101), which would tell a computer what needed to be executed, and if it wasn't executed correctly, the whole code had to be re-entered. This gave way to a programming language called "Assembly" which made reading the code significantly more readable than binary. The sequence of programming language improvement has lead us to the point where we can code a program in 5 lines and the end result, although not impressive to the eye, is quick and easy. Languages like JavaScript and Python are significantly more readable and easier to learn than Assembly ever was (pros and cons to each) and allows for the creation of hundreds of apps daily simply because programming them is so easy.

Open-Source vs Paid/COTS

Because software has become so essential to our lives, there are many who attempt to use software in order to create software for users in order to sell that software to make money in order to buy software (software-ception!). Major manufacturers of software quickly rose to the forefront of society (Apple, Microsoft, IBM, facebook, etc.) and have made billions off of their software. And, although we like the software that is available, we often don't want to pay for it. We used to look for software keys that allowed us to use the paid software for free (Not me though, the neighbor kid would do it). However, software eventually got to the point where pirating paid software was easy, which lead to Open Source software. Open Source is a great phenomenon where philanthropist software engineers would create similar software solutions in their own time, allow a community of developers to add to and/or fix issues with the software, and would give this software away for free. Many users and companies have flocked to open source to save a dollar, which is not always a bad idea, especially when there is a start-up with little capital, or if a student is needing a way to write and submit coursework without the financial ability to buy Microsoft Office. But, there are significant downsides to Open Source software, such as slow release cycles, poor support, and lots of set-up time required for the software and any interactions you'd like it to have with other software you currently have in place.

Why does it matter?

When making decisions on what software to buy or use for work, life, home, etc, or when your business is needing a solution for business critical processes, or even when considering whether or not software engineering would be a good career decision for you; understanding the history of software, the types of software, and how software is developed will be essential in making those decisions correctly. So, when you are wanting to solve a problem and you think software will be the answer, make sure you consider the following:

  • How much are you willing to pay, whether time, money, or both, in regards to setting it up, learning it, and using it?
  • What is the current support system, release cycle, and user community like?
  • Will the software be beneficial for your need, user base, or business growth in the next 5-10 years?

These answers will help you understand whether Open Source or Paid software is the right decision, whether or not the software will be supported in 5 years, and, ultimately, if the benefits outweigh the costs over the life of owning/using the product.

Mark Matie

Vice President - Operations at Matie Custom Homes, Inc.

5 年

That looks like Josh Davis' laptop when he leaves it unlocked?

要查看或添加评论,请登录

社区洞察

其他会员也浏览了