Automation
Automation
Automation is all is around us, and if it’s working properly we tend to not notice it. It has fascinated me for a long time, the concept of taking a task and reducing it to its basest of components, then assembling them in such a way that they take care of themselves, rather then us taking care of them.
My desire to become a programmer stemmed from a lifelong fascination that I have had with both automation and efficiency. I have long dreamed of a home that takes care of itself, and a life reduced to one filled mostly with pleasurable activities, the boring menial ones having been tucked away under the cover of automation. We already have automation all around us- from the alarm clocks on our smart phones going off at the same time everyday, to the light that flashes on our cars to remind us to bring it in for an oil change- automation as an ideal state has slowly but surely been creeping its way into our lives on a near constant basis.
Software development, and programming in general, is a field that is not only defined by the concept of automation- automation makes up the very building blocks of the technologies that make it possible. Technologies that pop up on a constant basis, not only designed to make programming itself easier and more efficient, but to make the final product easier to digest for the end user.
My goal in this post is to give a brief overview of a few of the automation technologies that I have encountered thus far in my quest to become a capable web developer. I will be breaking them down into two categories: technologies designed to enhance the creative experience of the programmer, and technologies aimed at those with little to no programming experience, that they may produce results similar to as if they had programming experience.
Technologies designed to enhance the creative experience of the programmer:
While there are many technologies across the stack designed to ease the sometimes repetitive and time consuming nature of programming, the two that I would like to focus on are Pingendo, a Bootstrap Prototyper, and Meteor.js.
I discovered Pingendo much the same way that anybody frustrated with the subtle nuances and painstaking repetition of HTML and CSS probably would- by looking for an alternative that would make the creation of web apps much more straightforward. And thus, I discovered Bootstrap. Bootstrap is a front end framework that, in a nutshell, packages up much of the tediousness of HTML and CSS, along with a whole host of other technologies of which I have barely scratched the surface, and presents it in a neat little package for developers to utilize. Pingendo, in turn, is a free Bootstrap client that has several useful features such as the ability to drag and drop components and images into a design interface, allowing the user to rapidly prototype how the web app they are creating could possibly be laid out. Together the two integrate to easily and quickly create the basics of the frontend of web applications in a very short amount of time. Though learning the basics of what comprises HTML and CSS is certainly a necessary skill for aspiring Web Developers such as myself, the ability to create a GUI in such a short amount of time is a powerful tool.
I came across Meteor.js in a similar fashion to Pingendo- I was faced with the directive to try to create an app and wanted to do so using a cohesive interface to tie all of the aspects of it together. Meteor.js is a development platform, a collection of libraries and packages integrated in such a way as to make utilizing common technologies more of a plug and play experience. This in turn saves the programmer from having to spend time writing basic, frequently used technology, such as the ability to add a user login system to their application. It also, on a larger scope, puts all of the needed components for a fully fledged application in one place, to save the user the trouble of having to go out and add each technology that he wishes to his development environment. This in turn of course has limitations- not all of the available technologies are included in Meteor.js, but the user is still able to create awesome creations never the less.
Technologies Aimed at Those with Little to No Programming Experience:
As programming gets more and more widespread, the advent of technology that completely circumvents the need to have any programming knowledge whatsoever has risen. I found one just the other day- A service called DWNLD that purports to allow you to create “native” apps in just one click. Further research showed that they are an all in one app creation and hosting service that, for a low monthly payment, will allow you to create a basic app of your choosing, and host it on the app stores of your choice. You can even put ads on the apps that you create to generate a revenue stream. As for the technological capabilities of the service- I did not delve too deeply into it but it seemed to be ideal for creating a blog app or something similar- hence the ability to create an app with “one click.”
Another one that I found reminded me of Pingendo- in that on the surface, it requires no programming whatsoever. “Bubble.is” is a service that will allow you to create apps with absolutely no programming whatsoever. However, you do need to have a grasp of the underlying logic by which your app would run- because the service is completely powered by logic based statements that directly control exactly how your app behaves. If you were to create a button, you would need to provide the logic that controls how that button behaves. Much like DWNLD I did not plunge very deeply into the technology- I would rather have a general knowledge of how something works, not just that it does.
I find both of the previous two services quite interesting, and quite impressive. To realize that the vast majority of consumers looking for a do it yourself solution to their programming needs most likely do not want to concern themselves without actually learning to program is quite ingenious- and if correctly marketed, I am sure quite lucrative.
To conclude, though my descriptions were brief, I hope they served their purpose- to showcase the idea that automation has made it into every aspect of not only programming but our everyday lives. Gone are the days in which programming is a study shrouded in mystery to the average joe. It is now easier, faster, and with the widespread usage of open source software, cheaper than ever to get started creating your own apps.