15 technologies that transform the nature of programming
Many years back, developers wrote assembly code and run fast then light. On good time, they had budget to hire someone to toggle all those switches on the front of the machine to input their code. On bad time, they flipped the switches by themselves. Process was simple: software loaded data from memory, did some arithmetic, and sent it back to machine, that’s it.
In present, Developers are working in a team and working in multiple continents, and they all have different language with different character sets, now this is the bad part of story to use different versions of the compiler. Few codes are new and few are from decade-old libraries that may not come with source code.
The work involved in instructing the computers that what to do is markedly so different than it was even 5 years ago, and it’s easily possible for any Rip Van Winkle-like developer who slept from last 15 years, would wake-up and find it difficult to computing world. Now everything is changing faster than ever.
Here are 15 technologies that are responsible for transforming the nature of programming. They have changed the way that, how we work with fellow developer, how we code and how we interact with our customers.
Continuous integration – Developer tool No. 1
While checked in code to a repository, you can have enough time to catch your breath with cup of coffee or it can be lunch also. Now code repositories are tightly linked with continuous build systems, which recompile your code, initiate hundreds of tests, scrutinize your architecture and start identifying potential error in work. You will not get 5 feet from your work desk before your mobile starts ringing with notification of new emails and more mechanism telling you what needs to be fixed. Now, again back to work because you have new task on machine.
Frameworks – Developer tool No. 2
Standing on others shoulders and using the others work in form may not be new idea. Now a day’s little amount of programming are start from scratch. Everyone’s approach is to get the right framework, start writing glue code with the link of the parts of the API and research the API that justify the job well. The code starts from Express JS, Ext JS or more, HTML and CSS is no more in the use for creating web pages. You’re a framework-tweaker, not a craftsman, that’s means there is no way to catch up with others work.
Libraries – Developer tool No. 3
Without using jQuery, you can write a code for browser? Does anyone even still remember the function called GetElementByID? No way, because libraries like jQuery are now ruing on every level of the stack. People love to talk about their languages, but rarely do they talk about how they program. Library knowledge is must, if you are thinking to hire someone. Game programmers should have the knowledge of Unity, Corona, Allegro and more because for game programmer knowledge of C++ is very common. Knowledge of the library is important as ins and outs of the language itself.
APIs – Developer tool No. 4
Earlier, programmers were worried about data structures. The would pack all the required information into count the bytes one by one, blocks of bytes and then make sure that all the values were placed at right place with right distance from the pointer. Now, compiler does all the things for us. These days API used as most rigorous interface with a fancier name. This can be run on completely on different machine of by a completely different company. If you want to convert street address, or ZIP code in to latitude and longitude, so you can do all this with the help of API, it cost few silver coins to get the answer.
Platform as a service – Developer tool No. 5
Everyone is customizing their own website, by creating the account instead of building their own website. Your website can do everything for you, whatever you want. It’s like, bidding product on eBay, or uploading a funny video to YouTube. Most of PaaS options need a programmer’s sophistication to know what to put in Web form. Microsoft’s Azure, instead of what you to put in a few JavaScript functions that characterize how the website works.
Browsers – Developer tool No. 6
Once upon a time, when people were writing a software programs for desktops, software for servers, and software for different devices, and all that was so different. Each software had its own way to communicate with user. Now everything goes through the web browser, no matter you set-up a local file server for house or hold a music station, you need to go on website and work over there. Widgets of Apple’s desktop have been written in HTML and JavaScript for years. Custom work doesn’t need a browser, as JavaScript developers figure out how to write the screen canvas object.
Application containers – Developer tool No. 7
Server building is hard work, and programmers know well how to run the code. Sometimes they get the right libraries and sometimes they didn’t get it, but eventually anyhow they have to find they way to make them worked. Some application eventually such as; Docker allows to push a button and ship off a container with all the right libraries. If it runs on the test machine so certainly it will work on the servers.
Infrastructure as a service – Developer tool No. 8
Programmers love to hang out with at lunch after work, but they have been abstracted into the cloud layer, as they are working into data center across the globe and fancies as leader in the world of cloud. Few programmers need the infrastructure team to build new server for a new project. They simply log into a website with push a button, and get a machine running for them. IaaS administration web pages won’t buy you a drink after work, but they can save you from ever having to get in the next round.
Node.js and JavaScript – Developer tool No. 9
Web servers represent the statics of HTML; You need someone to figured out how to create dynamic servers, which can interact with databases. IN each team there should be one person to program the database in SQL, one person to design the HTML templates and one person to write the server code in PHP or Java. Once you will fall in love with AJAX and JavaScript running on the client, the site need other person to speak the same language. Now it’s all done in JavaScript. The browser still speaks JavaScript, but with database layer (MongoDB and CouchDB) and server layer (Node.js).
Secondary marketplaces – Developer tool No. 10
If you are programming a game, than you can hire some artists for creating a stunning set of models, and even you can hire some more programmers for add visual effects to make the game look cool. You can also shop on the secondary market place, to buy up all the pieces you need. You need a artists or developers with low price, market place is more effective with extensions, plug-ins, libraries and add-ons.
Virtual machines – Developer tool No. 11
The days are gone, when you were writing code for real chunks of silicon. Most of the written codes now run on virtual machines that translate your instructions into chip. The C#/.Net Virtual Machine, the Java Virtual Machine and JavaScript engines end up as the beginning of main target for code. VM popularity is going to absorb everything; you need to build the entire stack if you want to create a new language. In present new languages sit on top of the old virtual machines. You can could create your own language and browser.
Social media portals – Developer tool No. 12
In earlier days of internet, you have to build your own website and hope for the best that people find your website and for that you have to choose the cool URL, so that people can recall it easily. If you build your own website, so you have to make your presence on social platform such as; Facebook, Salesforce to divert the traffic the on website.
DevOps tools – Developer tool No. 13
Earlier we used to install the software on a server, now we can rent servers, according to your machine requirement. Services like; Google App Engine already handling the same. All you need to do submit your app, and the provisioning is automatic. And you will not know what’s going on in the background.
SourceForge, GitHub and social code sharing – Developer tool No. 14
Now code sharing is like a social network and code sharing site can be the contribution to the open source world. Sites like; GitHub and SourceForge post all the code for everyone to see and update. If you want to copy the code, than you have to sent the tar-ball if you felt like it. On these social platforms you can read the codes and give the suggestion to change them.
Performance monitoring – Developer tool No. 15
Earlier it was simple to track the power of your code, if you love to be fancy than you have to add a few extra calculations and subtraction. Most of the problem not only occur on only one machine, if you will add the profiler, so it will not reveal the bottleneck, which can make someone to worry for interconnection or a sluggish database. New tools and track of the networks are performing well for individual modules.
These are the only way to understand what is going wrong and going right. All this is just a way to show how model of programming is morphing from a network of connected tools to single machine that may or may not play well together.