A .Net Developer in Python World

Emre MERT
Dev Genius
Published in
3 min readAug 27, 2022

--

We decided to create a new product, a software project to serve them all! Kidding. A new Rest API for our product. Why not develop it with python? The best way to learn a new programming language is to use it, right? Then buckle up! We are C# developers. So the story is about the pain we suffered from python.

Photo by Jan Kopřiva from Pexels

This article is not about disadvantages of python. This is about our personal experience with python.

First dilemma: choose your framework Django, Flask, FastAPI… You need to know what you need. It is easier to know your technical needs. But it is hard to know how much your project and team will grow. You will always say I wish I’d chosen another framework. You can’t be sure about your choice. And a lot of things change with the framework you choose. If only …

Choose your IDE wisely. If you are a .NET developer, you are happy with Visual Studio or Visual Studio Code. It is hard to choose an IDE for python. If you want the comfort in Visual Studio, you have to use a paid IDE. I know there are a lot of free IDEs and text editors. But Visual Studio is the king of the IDEs.

There is no standard code structure for python. I searched for a boilerplate for python. In the C# world, the code structure is standardized. No official code structure exists, but you find similar code structures in C# projects. I worked on many different C# projects. It is easier to get familiar with a new C# project. But for python, every project is another world.

Debugging is hell. Error messages are misleading. If you have a typo, you must know your project well. No type-safety. You set up type safety.

Python has more errors that only show up at runtime than C#. You need more testing, logging, and monitoring.

We didn’t have any performance issues for our small project.

Choose your ORM wisely! Every ORM behaves differently. It is a mess! If you need interaction with legacy data in the database, I wish you good luck.

Deploying your python app to the on-premises server is a worrying process. You should take extra precautions to protect your source code from reverse engineering.

Python is for Linux. Some packages are for Linux. So your project is for Linux. Your python project can be cross-platform. But it is not guaranteed to be. You have to put extra work into this.

We figured out we may need a mobile app in the future. So why not develop this mobile app with python? The team already has experience with python. Right? Python doesn’t provide mobile application capabilities. Yes, it is possible, I know. No, it is not easy.

We are still developing our project. It is an MVP for now. I will write another article about our experience.

--

--