Skip to main content

The Dawn of programers

A programmer, also most associated with their new moniker a coder, is a person who writes or creates computer software. The definition of the word code is " a system of words, letters, figures or symbols used to represent others especially for the purpose of secrecy". It is fascinating how programming came to be associated with this word, "code".

In 1936, Alan Turing first describe a simple abstraction of a computational device. In 1940, "The Bombe", an electro-mechanical device was used to decipher the German Enigma-machine. In 1945, Turing went on and envisioned that
We shall need a great number mathematician of ability.
because
there will be probabliy be a good deal of work of this kind to be done. 

With the evolution of technology, we moved on from electro-magnets to punch cards to transistors. In 1971, Dennis Ritchie and Ken Thompson at bell labs came up with a new programming language 'C', and a new operating system UNIX. There were a whole bunch of programming languages that I've skipped but 'C' changed the programming world. UNIX was the origin story for many of the operating systems we have today- Linux, Mac OS, Android, all these operating systems are based on the principles and architecture of UNIX. Around the same time, we had Apple and Steve Jobs disrupting and innovating in a primarily mainframe market then. Apple also is known to bring in designs and innovations that shape the market. They did it with the macintosh and most recently with the iPhone, creating a new market of application development.

We are in an age where companies are transitioning and trying to cater to this new consumer market. CIO's of these companies are driving "digital transformation" initiatives backed with massive budgets. This has given an inroad to Application development platforms. Before going into development platforms lets understand the actual origins of the application development platform.

Every industry has tools for their trade. The construction industry tools had rudimentary tools before they moved to power tools. Similarly, in computers, the code was written or rather punched on to punched cards, and then they moved onto text editors. With Graphical User Interfaces(GUI) improving, Integrated Development Environment (IDE) was introduced to help developers to keep all their resources organized, debug, and run their programs from a single tool. Application Development platforms are an extension of IDE's. As the name aptly conveys, the application development platform is a computer program that helps in developing software/applications on different devices.

Application Development Platform has a massive ecosystem of its own. In this ecosystem, we have Low-code development platforms or even No-code development platform. A Low-code development platform is a software that facilitates application development with a GUI implementation of a drag and drop user experience and this is a shift from the traditional hand-coded approach to development. In the eco-system, thanks to aggressive marketing, we have Buzz words just floating around. they are basically the same thing just a fancy way of saying the same thing. some of these buzzwords are - HPAPAAS, MXDP, RAD also LCDP(Low-code development platforms), and NCDP(No-code development platform).
If you also share the same expression as the meme, fret not, we will talk about these outlandish abbreviations. HPAPAAS, High productivity application development platform as a service, is an Enterprise Application Development Platform that has a delivery and deployment mechanism like LCDP but not the same. It is also provisioned as a service. (you can read about HPA-PAAS at this link: https://www.neutrinos.co/what-is-hpapaas/)(you can also check out my post about *AAS explained). MXDP, Multi-Experience Development Platform, is a platform that encapsulates - design, development testing, managing, and analyzing. At least that is what Gartner has to say about MXDP. Personally, I think its another marketing ploy to sell an Application Development Platform.

Over the past few decades, we've seen technology evolve and the demands for programmers grow. A field originally intended and designed by mathematicians is now open to diverse demography. The Idea of a citizen developer just extends the scope a little more. A citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT. When we look at the strides statistical learning and artificial intelligence is taking there is a lot of positive development to come. The bottom line is that The need for individuals to know "coding" will keep growing.

Comments

Popular posts from this blog

Understanding TDD - Part 2 - Adopting TDD

In part 1 of this series, we explored the fundamentals of Test Driven Development. After wrapping our heads around the principles and understanding the origins of TDD we will now look into applying TDD.  Understanding TDD - Part 1 - "What is TDD?"

"That's not my job"

As an individual, I am a person always looking to change things quickly. The mundanity of repeating the same things over and over again gets me agitated to question the efficiency of the activity. With this naive outlook, and fueled by Pink Floyd's album "Welcome to the machine" I am trying to write this blog post about the changes I've seen. Over the years I've seen some changes that happen in an organization and this blog is more of a commentary on the things that I've seen. Without question, this blogpost has a major TL;DR warning. Life in a corporate office might seem a little kafkaesque. Kafkaesque, A term associated with Frans Kafka generally is used to describe unnecessarily complicated and frustrating experiences, like being forced to navigate labyrinths of bureaucracy. The sort of complex, unclear processes in which no one individual ever really has a comprehensive grasp of the system or what is going on.  In massive companies that are well establishe...

The Pursuit Of Clean Code

There are different ways to interpret the meaning of clean code. The idea of clean code is a subjective concept and every developer has their own interpretation of it. Clean code is code that is easy to understand and easy to change"  When we say "easy to understand" what does it really translate to? Easy to understand can be easy to read, it can be easy to understand the flow of the code, easy to understand sequence events. Easy to understand can also quantify to the ease to understand the purpose and function of the methods and variables defined or declared. Easy to change can be interpreted as easy to extend and refactor, and it is easy to fix bugs. Easy to understand can be anything! it's up to the readers interpretation. When we write code it is generally in as higher-order language. This implies that we intend the code to be understood by other developers or other people. A higher-level language is not directly interpreted by the computer. A hig...