The technological landscape is vast and varied. Hundreds of programming languages each with thousands of tools, libraries, and services all compete for recognition. Most tech tools offer at least some legitimate benefit, so gazing at the metropolis of possibilities is often bewildering. As a tech company, how do we sort through the maelstrom and land on a good technology stack?
The answer can be summed up in one word: priorities.
Level 12 specializes in designing and building quality web-based applications for everything from financial planning to business intelligence to employee management. As such, there are several facets of a tech stack that are very important to us:
- Developer productivity – How quickly can a developer add or change features and maintain quality?
- Strong community – When a problem is tough, how easy is it to find support?
- Diversity – Since we cannot predict what our customers will need, how well positioned are we if they should ask for something unique?
These priorities have given us clarity in how we align our technological investments. For our server-side foundation, we use Python and build on top with a powerful combination of Flask (for serving web content) and SQLAlchemy (for working with databases). We’ve found this trio to meet our priorities very well. Here’s why:
Python is considered a general purpose, “high-level” programming language. That means it provides programmers with powerful building tools while simultaneously removing the need for developers to deal with a host of nitty-gritty problems, like memory management and byte layout. With these “power tools,” developers can build applications faster and gain reliability with relatively less effort than other languages require. Because Python as a language is focused on developer productivity, it often compromises on raw computational speed. However, though Python doesn’t run as efficiently as languages like Java or C, the reality is that it easily runs fast enough for a majority of applications in the business world. In the rare cases when it doesn’t, any computationally intense portions can be written directly in C and used by the rest of the Python application.
When it comes to community, Python is hard to beat. It has become immensely popular, rating among the top five most popular languages as of 2016. It is used by big companies like Apple, Google, Yahoo, and Dropbox. Because of Python’s design, it also tends to garner high standards for automated testing. This means that many Python developers are familiar with the disciplines necessary to make applications robust and maintainable.
Largely owing to Python’s strong community there are very few kinds of applications that Python has not participated in. You can find it in test simulations for NASA, video games, large-scale web applications, scientific research, the list goes on. For Level 12, this diversity provides a level of safety in the case that customers have requirements in unique areas.