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:
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.
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.
- 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?