Why a Hard-core C, C++, C# Programmer Fell in love with Python

Mark Grandau
2 min readJul 30, 2020

OK. I’m a polyglot programmer. I also know Java, Javascript, Perl, a slew of scripting languages and a bunch of special purpose markup languages. Not to mention the languages I’ve played with hoping to get back to them (Go, Haskle, F#, etc). It makes me more expressive in whatever language I choose. Each language is a tool.

Is one better than another? It depends on the problem domain, which includes the target audience of programmers. The argument of language or need for types is like arguing about the weather. It’s futile and you really won’t impact the story of the solution much initially. Understanding the point of creativity your at is more important. It has to do with making stuff.

When you make stuff, physical or virtual, the initial point of a blank canvas is really about finding a direction. A subject matter to express. So in the early stages you need to just try things and go. Things that will fail or succeed. What you want at this point is ease to express your idea. It may be only the “happy path”, but that is the fundamental point of focus at this stage.

Python has this anti-boiler plate thing. It’s “pythonic” if you can just get it to run in a few lines of code. You can focus on things that are important like the data, the control flow or an analysis algorithm.

As you move through the refining process of your idea you can bring structure, types and patterns into play. Like scaling up music from a simple set of cords. Or a story from an opening line. Or a sculpture from the balance point of the piece of art.

Python is a playground rich in types when you want them. It can lend itself to most forms of programming (structured, OOP, functional, ML, etc). Not to mention its ability to express designs as data-driven, domain-driven, contract based, etc.

Watching a program develop in it allows you to bring only the boilerplate and advanced structures that are needed to express the story of the solution.

When its time to re-write it for the targeted product domain it acts as a requirements document if written as clean-code. Its a simple translation. Why do we translate? Because the problem domain includes the developers that need to support it. Maybe its packaging. The stuff that makes it permanent, for a time, lol. Would it be more efficient to write it in the language of packaging first? Would it be more efficient not to sketch Micalengelo’s great works first or do an outline, or character development in a story? No. Great works of art and craftsmanship require the labor of medium translation.

Python is the scaffolding many a great idea is built on.

--

--

Mark Grandau

I’ve been a developer for 30+ years. 20 of them as a Software Architect. Software is the modern day junction point of Science, Math, Philosophy and Art