Abdul Rimaaz Business Consultant
Lately, many companies have been trying to migrate to Python or at least are introducing the use of the Python programming language into their development processes. This choice is motivated by the different strengths of the Python language.
It is intuitive and simple : it is very easy to learn the Python language and create codes or real software, web applications.
It is Open Source : for this reason you are free from licensing costs
It allows you to optimize Time and Costs : its simplicity combined with its versatility and the wealth of open source libraries for any field, makes it easier to develop applications in less time and therefore investing fewer economic resources.
It’s portable : python guarantees portability on every operating system.
It can be integrated : for complex calculations where higher performance is required, it is possible to integrate C / C ++ code into our software code in Python.
The Python language is opensource, like all its available libraries. This is a strong advantage for companies as they are free from licensing costs and all those problems that a closed system can entail.
Development in Python language for several years. When I worked in the company I felt the need to develop codes using a simple and intuitive language that allowed me to implement complex solutions optimizing time, and above all making the code easily readable by other experts in case the need arose to delegate some development work, to pass the work on to more experienced people, to carry out future code refactoring, etc.
This is one of the main reasons why I chose the Python language. And it is a choice that many Italian companies are slowly following: from SMEs to large companies. And that’s why I still develop with the Python language today.
Some of the many solutions of software development in python.
The PyQT libraries, extension to the Python language of the classic QT libraries, allow us to create graphical interfaces, known as GUI (Graphical User Interfaces), in order to create desktop-side software (i.e. usable from PC) and make our software developed in Python "usable" by any operator.
The Python language allows you to connect to different types of databases: MySQL, Postgres, Sqlite, Vertica, etc ... thanks to its opensource libraries, implemented following well-defined standards. In particular, it allows the connection with GeoDatabase and the manipulation and management of geographic data following the reference standards (an example is Postgres + Postgis + geographic libraries).
There are several libraries for the Python language that allow us to implement semantic analysis models, systems for SEO analysis, or more generally to implement Natural Language Processing models. Examples are the NLTK and Scikit (Scikit Learn) libraries. There are also frameworks written in Python language for the implementation of real crawlers (Scrapy is an example).
Raspberry Pi is an opensource technology, a real powerful computer the size of a palm of your hand. With the Python language it is possible to implement codes to transform the Raspberry Pi into (almost) anything we want: a server, a hotspot, a video surveillance system, a mediacenter, a portable touch device that does what we want. The possibilities are not infinite but difficult to count.
Thanks to the vast library for the management of geographic data, it is possible to create software, codes and platforms for the management and processing of geographic data, individually or in the context of GIS / WebGIS systems (Google Map is an example of WebGIS), following the standards of the Geodata. Many GIS software allow the creation of plugins using the Python language.
Python has a wide choice of libraries for mathematical and statistical analysis from the simplest to the most complex. Numpy, SciPy, Panda, are just one example of these. Through these libraries and numerical implementation techniques it is possible to implement actual models and / or algorithms. And if the computational power requires the use of C / C ++ codes we can insert them inside the Developed Python code.
There are several frameworks implemented in Python that allow us to create advanced systems for managing services and webapps. Thanks to them it is possible to develop complex systems and implement web services, which can be integrated with any app and / or software, or simply create web platforms accessible from any device. Examples of frameworks are: Django, Zope, web2py, Pyramid.
The versatility of the Python language and the countless development possibilities that its rich library offers us, allows us to implement complex software and systems in various contexts and scenarios. Image and signal processing, data analysis systems from satellite platforms or the implementation of CRM, management. The ways of the Python language are many and allow us to optimize time and costs with a more than satisfactory result.
Some of the many works, software and systems, that over the years I have developed in Python in the last three years.
Automatic creation of graphical interfaces based on the functionalities available on a server.
Development of procedures for the topological control of geographic data (geodatabase and cartographic data), usable through graphic interfaces.
Algorithms to process Synthetic Aperture Radar data with stereoscopic techniques to produce Terrain Elevation Models.
Implementation of graphic interfaces and statistical models in the Psychological field.
development of several plugins for Quantum GIS, with graphical interfaces and QGIS API integrations.
Graphic interface and software development for the management of vocabularies, translations and symbolisms of particular languages.
Graphic interfaces to manage Radar data processing processes with interferometric, radargrammetric and joint techniques.
Development of graphic interfaces and algorithms for semantic analysis, SEO and Sentiment Analysis.
Development, with graphic interfaces, of workflow and management of orders (of geographic data) assigned and sorted to different nodes remotely.
Video surveillance systems, portable hotspots and servers, facial recognition systems, media centers, home network security systems.
Implementation of different algorithms for study, analysis, forecasting of the trend of financial market products.