4 Technologies Which Shaped the Way We Make Software

QArea Expert by QArea Expert on August 5, 2014

4 Technologies Which Shaped the Way We Make Software
Reading Time: 2 minutes

Have you ever thought why employees at software development companies provide their services and build software in this particular way and not another? Why do we make software in the way we’re used to and what technologies shaped it?

In my opinion, there are 4 technologies which have greatly revolutionized software development services and the way they’re delivered in the last ten years or so. The technologies themselves may seem not that important, but it’s their impact that holds fast on IT even now. By understanding this effect developers will be able to find new ways to fight their issues and build software better and faster.

Here are the top 4 technologies you should look for answers in:

  1. JUnit

The agile trend advocated new and to some extent weird development practices for that time, and the key ones among them were test-driven development and unit testing. Never before the idea of testing code piece by piece seemed possible, not even mentioning that tests can drive the design. Not until the introduction of JUnit.

First a Java unit testing tool, it soon became integrated in development tools due to its easy-to-use nature and compelling interface.

JUnit improved quality greatly and other languages consequently developed JUnit equivalents. Development libraries today have built-in testing facilities, and unit testing is a standard practice today thanks to JUnit.

  1. Lucene

It’s always been very hard to make sense of text without structure and just as well it’s always been critical to analytics. Lucene lies in the core of analytic efforts like sentiment analysis and intelligence gathering.

Written in Java, this technology is profoundly efficient at parsing and analysis of free text. All the familiar text searching capabilities used in development today, e.g. faceting, text highlighting, N-gram and wildcard searches – are all part of Lucene which is the key text mining technology for all platforms and languages.

  1. Node.js

The need to communicate  more data to the increasing number of users connected in different ways conditioned the shift in web apps’ architecture and led to creation of the new leaner and scalable approach, pioneered by Node.js, providing single-threaded and event-driven architectures. In the browser we think in terms of JavaScript while Node.js operates on our server to provide us with minimum waiting time and brings “reactive” applications to life.

  1. Ruby on Rails

At their high level all web apps do the same thing: make an interface allowing programmers to create, query, delete, or update data. But once running a web app in this way took an inadequately long time. And Rails changed that.

Unlike legacy web frameworks which required manual setup and further configuration, delivered common functionality faster using smart conventions and defaults. The framework sparked real a revolution in development productivity as a developer now could connect a basic web app to a database and run it easily in a day. The key Rails themes such as the MVC controller, convention over configuration, and Active Record pattern also influenced all subsequent web application frameworks greatly.

What other technologies do you think shaped the way we build software today and how?