why we love python

why we love python at elfetica finance & engineering
a pythonic love story

Since we've decided to use Python for most of our programming, I've decided that it would only be fair to explain what we love about it.

Python is simple to learn, whether you come from other languages (in my case, Assembly, C(++) , Java, Perl and PHP among others) or whether you are a complete novice. That is always a plus. I know it is far from the fastest or most efficient language, but for the most part that's a moot point in 2019 (computers are fast enough to do the job - though not an excuse for shoddy code) . The fact that it is the language of choice in many computationally very demanding fields sort of drives the point home. In this case, simplicity trumps speed.

Python is already widely used in the financial industry (among others) which made it sort of a natural fit even before I knew anything about it. Even more importantly, Python enjoys enormous support from the developers using it. This means you won't have problems finding a tutorial (or book) when you run into a snag and that there's a good documentation of all the functions. It also means libraries... many libraries. Obviously including libraries intended for finance, big data and artificial intelligence. All areas of great promise and where we intend to make an impact. The available libraries range from trivial to incredibly complex and, most of them, come with extremely generous licenses. Community support, in practice, also means that when you have a problem Google is your friend because you can be certain that others have met the same obstacle as you did. I'd say it's almost too good to be true... almost!

The importance of community support (and, to a lesser extent, overall popularity) can't be overstressed. Python has been gaining popularity and there seems to be no stopping it. A language, no matter how useful, without an active and dedicated community becomes insignificant and, sooner or later, dies off. It is like this website and our products: if nobody supports us, in the long-run, why would we invest our time? In my 25+ years in Computer Science I've rarely, if ever, seen anything on this magnitude. Yes, C(++) has comparable support and, surprisingly, so does Java. However, C++ is a special case, being the gold-standard against which every other language will be measured as to Java, I'm surprised myself, but it fills a - rather big - niche in which no other language can compete. So many words to say that Python's community support is both extremely large and extremely important.

In a nutshell, what all of the above means, is that a very small team like ours can develop relatively (what isn't) complex software in precious little time

But I'm not done... Did I mention Python is cross-platform: write once, deploy everywhere. Best of all: it actually works. As coders will know: no language or approach is perfect in this area but, with Python, unless your code is very weird, or you happen to do things that are - explicitly - documented as being platform-specific, it should actually work. (Of course, being a high-level language, that is easy - in theory. Just look at all the failed projects to see that it isn't.)

It's hard to overstate the popularity of Python: in 2019 it ranked in the top 3 languages (the others being C++ and Java), though the exact placement will vary with your source. Suffice to say that most languages can only dream of such adoption rates. And yet, what is most astonishing isn't the ranking but the growth! Needless to say that this is a virtuous circle (which generally stays intact until something better comes along or some new technology comes along). All the great stuff I've mentioned before will only increase - which will drive more adoption, which in turn means more books and tutorials... you get the gist. On a side note, it is interesting to look at Perl: when the Web was young and people started to develop actual applications for it, Perl was the name of the game. Now it isn't even in the Top 25! I won't bother you with the details of why that happened, it just goes to say that nothing lasts forever, which brings me to the next point. It helps that Python, unlike Java, is truly open-source. As a result, no one has an agenda, or an interest to force disliked 'features' down our throats.

As much as we love, and embrace, Python we don't make a dogma out of it. It's a wonderful tool but if something better (as in more useful) comes along we'll be on that train too.

What more can you ask from a programming language?

If you're considering learning a programming language (whether you're a beginner or grey-beard), I strongly urge you to give Python a try. Of course, only you can decide whether it is the right language for you, but it's worth a shot.

For us, so far, it has more than lived up to its promise! Python makes coding effective and fun. Even though (and I'll be the first one to say so) some 'Pythonic' idiosyncrasies - like the use of indentation - can take time getting used to. Python (unlike some other high-level languages) will let you accomplish anything you can think of - without feeling overwhelmed or intimidated! Of course, making non-trivial software still requires lots of work, dedication, time and code, but take my word when I say that low level languages are a completely different beast (making it almost impossible).

Since the programming languages we chose to use, directly affect our goals (and our products), we'll periodically bring you brief articles about libraries, books, etc. This isn't a site about programming, but that doesn't mean our experience can't offer some insights.

Whether you've never written a line of code, or have mastered dozens of languages: you too can become a member of the worldwide Python community, and make the world a better place through software engineering!