Several months ago I have been invited to participate in one project as a mathematician. The customer had several tasks in project backlog, related with computations, geometry and multi-dimensional analysis. And they asked me to produce an algorithmic solution to resolve these tasks. Sounds interesting – I am educated mathematician, and I have wide experience in software development and R&D.
Looks like everything matched! But they use the Python in development, and I was never using it before. Yes, I was using much languages and platforms, including platforms for scientific modeling and computations – but not Python.
By arrangement, was planned that I should write mathematical descriptions for developers and they would implement solutions in Python. After beginning, I understand that this way is ugly. Very uncomfortable to think twice – how to solve the problem, and then how to describe the solution for the developer. And I decided to write the prototypes of calculation modules directly in Python by myself.
I thought – I know the OOP good and saw much in my working life, and I spent a weekend for reading language description to understand language syntax and structure. Everything looks clear by I had some apprehensions – what may be good in the language named in honor of “Monty Python”? This really looks like joke…
I started to write in Python and got some first impressions:
Python is so flexible, that you have several solutions to any problem in bounds of language standards! You may use several syntax approaches to describe one operations block! This looks crazy but very comfortable in sense of the personal coding style and a solution view.
I never saw so many instruments in one place.
Also, you can modify not only objects in real time, but their metadata and description (classes), you may change inheritance chain of object on the fly, And much more…
I am not sure that all of that would be needed – but I saw that for the first time in my life in one language! This looks extremely flexible!
But language contains syntax and documenting standards – so this is not a toy – but a serious and flexible instrument.
Several months passed – were solved first tasks, and I saw much more: a huge amount of ORMs, web-backend frameworks, architecture frameworks, I worked with blender scripting and more… And I do not see the bottom of that magic pot! 🙂
I continue to study Python and related areas and feel happy that I decided to use it several months ago. For me as for R&D scientist/developer that was the best solution in last years. For now, I plan to work in that area for the next years – I want to know and do more…
I feel, that I found my magic katana, and I am ready to fights!
Author: Anton Dziavitsyn, lead software engineer at Inventolabs.
*The text retains author’s spelling and punctuation.
The author’s style of writing has been saved.