user image

David Ziguras December 28th, 2014

With such a huge range of options available among programming languages, it can be not only frustrating but quite daunting for those tasked with selecting what language to opt for when embarking on a new project. The team at Newpath WEB feel there’s a programming language out there that doesn’t get enough credit and deserves a little more attention among those reviewing languages for new start ups or projects, that language is python.

If you are looking for fast results and are in need of a flexible, adaptable environment, with the ability to add great value, then you may want to consider Python.

What makes python so good?

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. Python’s simple, easy to learn syntax emphasises readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse.

Developers tend to fall in love with Python because of the increased productivity it provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an exception. When the program doesn’t catch the exception, the interpreter prints a stack trace. A source level debugger allows inspection of local and global variables, evaluation of arbitrary expressions, setting breakpoints, stepping through the code a line at a time, and so on. The debugger is written in Python itself, testifying to Python’s introspective power. On the other hand, often the quickest way to debug a program is to add a few print statements to the source: the fast edit-test-debug cycle makes this simple approach very effective.

The main reasons that make Python so attractive are:

Mature and stable frameworks for web development

Python has a number of mature and stable frameworks for web development. Django is for a larger framework, Tornado for frameworks based on event-loop, and developed for scaling out concurrent requests, Bottle, Flask and web.py for web frameworks that are smaller and need few bells and whistles. In python, generally client libraries are available for the provision of almost everything required for the functioning of a proper web app. Python also provides connectors of a high quality for nearly every database system available, and access to an excellent array of tools.

Of the primary web development languages, such as .NET, Java, PHP and Ruby, only Javascript has one event-loop framework – Node.js. The others have their own frameworks for various use cases, however do not include the powerful event-loop frameworks that Python has.

The standard python library supports different programming paradigms and has a range of great tools

The standard library contains several tools for the performance of various tasks and supports many programming paradigms (functional, procedural and object oriented programming). High quality libraries exist, ranging from scientific calculations to image processing. You can also write GUI apps in Python as the language has mature bindings for QT and GTK. Python has been used for client side apps, mail routers and shell scripts, among others.

Javascript and PHP are not quite as strong in this area, with PHP development not entirely suited to running processes, being driven more towards the web. Javascript lives mostly on the server and in the browser, therefore doesn’t have the bindings and tools for external libraries that Python has.

Frameworks that support rapid development

Python frameworks enable rapid development for the web. For example, Django provides in-built group and user permissions, site admin and forms which are common for most sites. Most of these are modular. The framework lets you use modular sections of your app in other projects and thus promotes reusable apps. For example, if you have integrated a social network with one site, you can use that code for other projects as well. So, you don’t have to create new code every time you build an app.

Additionally, the majority of Python frameworks have a development server. You only have to change a line of code to switch among various database backends, if you use the Django ORM. You can use a real database such as postgres to deploy your app and use sqlite to work on your local machine. Unless you use complicated queries, which is not really required in most projects in any case, there is negligible difference. So, you can run your code locally and work on it almost anywhere, without affecting your base system in terms of setting up or installing databases and servers.

Startups are choosing Python

Many startups choose Python these days. PHP is not as good a language as Python, although PHP is somewhat easier to get started with. PHP is not very standardised and there are several ways of doing the same thing. Python offers better code conciseness and speed of development when compared to Java.

For small startups, the ability for new-feature implementation and speed to market are of great significance. A number of modern sites were based on Python, while being small startups. Such websites are usually horizontally scalable, meaning you can add webservers along with increase in traffic volumes.

Python also now appears to be favoured over Ruby by startups trying to launch a minimum viable product and get venture capital. This has less to do with either language’s merits than with philosophies that either language’s frameworks represent. It’s hard to beat Ruby on Rails as a framework for developing applications quickly. Django is supposed to do the same, but the community built around Python is minimalistic. Generally, Python developers select tools such as libraries, persistency layers and ORMs on their own.

Many begin Python-based web development with Django but switch to something like Flask, which is more minimalistic. The community appears predisposed to developing its own stack in this manner. On the other hand, Ruby on Rails developers are more likely to ‘hit the ground running’, especially in the field of startups.

Python’s main advantage over Ruby has little to do with the features of the language. And what we are seeing more recently is that Python is preferred more by computer scientists,  as it becomes more and more popular for scientific and academic applications.

While Ruby offers product solutions that are ‘out of the box’ and slick, Python has more of components such as Tornado that are well-written.

Python also seems to be the better bet as it is used at Google and there is great potential for things like LiveNode getting open source releases.

Python is ideal for startups and new projects

With start ups and new projects it can often be the case where you have limited time and budgets, meaning technology needs to be selected that can help make a difference. Python can prove quite economical in terms of both time and money, and this is why it must be considered in these circumstances.

Python is useful for startups and new projects in the following ways:

Python helps tackle complexity

Social networks, media streaming projects and other such projects are typically based on the web, and big data drives the web. Python is ideal for web solutions and helps tackle complexity. Using Python, you can overcome issues such as integration of different systems, which would otherwise take a lot more of effort – meaning greater expense and longer lead times. Python also performs well with respect to scalability.

You can create working prototypes easily

Python can provide ready solutions for large projects. This offers startups and those leading new projects the benefit of being able to succeed as soon as possible, as the sooner you have a working prototype, the better off you are to begin making use of the product.

Python is very useful for building prototypes. While other languages can take quite a long time to get there, Python doesn’t need much time and can heavily reduce the time needed to deliver a working prototype. Prototypes can help save startups a lot of time and money as they can see through these whether the business idea is likely to work or not, and what tweaks are needed.

Conclusion

Python can be a big advantage when used by those seeking to deploy something quickly, at a relatively low cost, but with great quality. As always, we recommend only working with trustworthy, reliable developers that can take an idea and turn it into a working solution that is stable and scalable. Newpath WEB has experienced python developers, ready to assist you with your next project.

 

Our latest posts