Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Python good enough for big applications? [closed]

Tags:

From the moment I have faced Python, the only thing I can say for it is "It is awesome". I am using Django framework and I am amazed by how quick things happen and how developer friendly this language is. But from many sides I hear that Python is a scripting language, and very useful for small things, experiments etc.

So the question is can a big and heavy loaded application be built in Python (and django)? As I mainly focus on web development, examples of such applications could be Stack Overflow, Facebook, Amazon etc.


P.S. According to many of the answers maybe I have to rephrase the question. There are several big applications working with Python (the best example is You Tube) so it can handle them but why then it is not so popular for large projects as (for example) Java, C++ and .NET?

like image 412
Ilian Iliev Avatar asked Sep 13 '10 12:09

Ilian Iliev


People also ask

Is Python suitable for large projects?

Python is substantially slower than other programming languages like Java , C++, PHP, Javascript , Swift, and others when it comes to execution time. This is a major concern for programmers when creating huge programmes with many lines of code. Python is a programming language with dynamic typing.

What is Python not good for?

Not suitable for Mobile and Game Development Python is mostly used in desktop and web server-side development. It is not considered ideal for mobile app development and game development due to the consumption of more memory and its slow processing speed while compared to other programming languages.

Is Python enough to make an app?

Python can be used for Android App Development even though Android doesn't support native Python development. This can be done using various tools that convert the Python apps into Android Packages that can run on Android devices.

Is Python losing popularity?

As you can see in the chart above, demand for every top language dropped significantly from 2020 to 2021. Python was the only popular programming language to only see a small dip falling from around 74,000 jobs to 70,500.


1 Answers

Python is a pleasure to work with on big applications. Compared to other enterprise-popular languages you get:

  • No compilation time, if you ever worked on a large C++ project you know how time consuming this can get
  • A concise and clean syntax that makes reading code easier, also a big time saver when reading someone else's code or even yours when it was written long time ago
  • Portability at the core level, if it's important for your app to run on more than one platform it certainly helps
  • It's fast enough for most things, and when it's not, rewriting hot spots in C is trivial with tools such as Cython and numpy. People advocating against dynamic languages for speed reasons have forgotten the 80-20 rule (or never heard about it). The important thing to consider when choosing a language for a performance-critical application IMHO is how easily you can gain access to the C level when needed, and Python is great for that

It's not a magic language however, you need to use the same techniques used for big projects in other languages: TDD (some may argue that it's more important than in other languages because of the lack of type checking, but that's not a win for other languages, unit tests are always important in big projects), clean OO design, etc... or maintaining your application will become a nightmare.

The main reason for its lack of acceptance in enterprise compared to .NET, Java et al. is probably not having herds of consultants and "certified specialists" bragging about their tool being the best thing on Earth. I also heard Java was easily accepted because its syntax resembled C++... that may not be such a silly idea considering C# also chose to take this route.

like image 139
Luper Rouch Avatar answered Oct 14 '22 12:10

Luper Rouch