+ 21
For professional python developers: Would you recommend python for large application development projects? Why or why not?
Please only respond if you have personally been hired to professionally work on a python application. I am posting this question because, as a professional developer myself, no one in my network of professional developers, that I'm aware of, would ever consider using python for any serious application development. Yet, the fan base is massive. Any insight, for or against, from professional experience would be appreciated. Please, no links to similar questions in Quora or Stackoverflow.
20 Answers
+ 12
Although I must admit that I am just a high school student, and definitely have never made an enterprise level application, I do have my fair share of reasons to like python.
Let's start with the easy one: The code looks extremely clean. Whenever you write in python, you can use advanced features that make code far more readable than other languages because 1) the code is shorter, so people can see more of the code at once, which allows them to better understand it. and 2) the syntax is in my opinion extremely well developed and I personally feel very comfortable using it.
Second: modules. Pretty much anything is available in a module and most popular modules have great documentation as well. The modules I am personally interested in are the ones for deep learning. But many other aspects of development also have great modules which allow you to do, in a single line, what would have required a lot of work if you hadn't had access the module.
Third: As I already mentioned I am personally interested in deep learning and it just so happens that python is the go-to language for pretty much any course on deep learning. Which makes it far easier if you want to find tips and tricks on how to do things because the implementation was probably already in python.
And to quickly disprove the claim that "python is slow", when you are writing python code, and you are correctly using modules, most of your code is just calling c-functions which is not slow at all, and if you are unlucky and can't just use a module you can always use numba or cython with cdef which will get you to almost C-speeds. And if even that isn't enough for you, you can still write an extension in pure-C.
All in all, I believe that python has a great and readable syntax (which I am personally familiar with), pretty much anything is available in modules which makes your programming live far easier, it is the go-to language for all you AI needs, and when speed is a problem, python has plenty tricks to get you at speeds that are near or at C spe
+ 11
Part 2 of 2: Response to @Daan:
Regarding your third point, I must admit, I haven't had much opportunity to explore deep learning yet in either python or any other language for that matter. I'll reserve judgement on this aspect until have get a chance to review this myself.
On your final point, regarding performance, I hear what you're saying that performance shouldn't be a problem based on the underlying c-functions. That is, until my team and I built a micro service in Python to handle realtime parsing of code via an SVN repo. Without going into too much detail, we abandoned the finished version due to some horrific network latencies, refactoring challenges, debugging glitches, and overall performance issues. I originally thought it had to be the SVN repo that was killing the performance. After rewriting this in C#, there was a clear performance advantage over python.
To be honest, I completely forgot about this micro service. So, technically, I have implemented python in a commercial application that ended up getting trashed. :D
----------
The failed micro service reminded me of some other syntactical issues I now recall. On another post, I stated the following:
<<----------
As a veteran developer proficient in C#, Javascript, and Java, decent in C and C++... I'm always surprised to hear that Python is recommended for beginners. Much of the Python I've written and reviewed seems too cryptic and complex for beginners. I also find Python to be too verbose in some areas and not verbose enough in others. Does anyone else think this way?
---------->>
This actually led to an interesting discussion where I pretty much list out all my technical grievances about python. Check it out if you're interested:
https://www.sololearn.com/Discuss/1063870/duplicate-pick-a-programming-language
+ 10
The purpose of this question is to get a pulse for what appears to be unbridled love and adoration for a language I truly see as a toy language not to be taken seriously.
I suspect those who love Python are students or don't build serious applications with this language.
With so many outspoken supporters of Python in the community, I'm hoping to learn something new and open my mind from someone who can share insights from a professional's experience.
Ultimately, I have my doubts that any of the many supporters who love Python and dislike the more conventional languages have any real experience.
Even more concerning is there seems to be a huge community of people jumping on the python bandwagon because everyone else says it's the best, not just for learning, but for everything. It will even cure cancer and help you get a girlfriend. 😉
If this is the case, I fear that there will be a large number of "would be" programmers with the false sense of confidence who will be sorely disappointed to find very little work available for python. For those who do get paid to do python work, I question the degree of interesting work available and wonder how competitive the pay will be.
+ 9
Part 1 of 2:
@Daan: First, let me say how impressed I am that you are as articulate as you are and only in high school. Two of my 5 kids are in high school at the moment and I can only wish they were as interested in programming as you are. In any case, I thoroughly enjoyed reading your response.
I have a some comments regarding a few of your talking points:
First, I must admit that I may not have an appreciation for how complex or simple code can appear from a learner's perspective. As a polyglot developer, I've been adept at visually parsing code across multiple platforms, languages, frameworks, design patterns, etc that I couldn't say that python is any easier to understand than C# or Javascript.
To say code is shorter or is more verbose has much less significance when compared to the development tools used for writing code, navigating between files, intellisense / autocomplete, realtime validation, etc. Even more powerful than the IDE tools for writing code are the debugging tools for truly assessing the code during runtime. So, basically, a suite of powerful development tools and workflow can level the playing field as it relates to developer productivity.
The biggest pain point I have with python syntax is refactoring when tabs / spaces are used to define code blocks. This may simply be more about me than the language. But, the instant you unintentionally change an indent anywhere, it's time to start reading where in the code the indent might have been. Imagine how bad it might be for someone like me who might reformat his code by grabbing multiple lines, shift+tabbing everything to the left, then methodically tabbing each block back into place when cleaning up code that got out of whack? Yeah... ya feel me now? :)
Regarding your second point, the abundance of every kind of module / package / library / etc isn't exclusive to python. The same thing can be found in most modern mainstream languages.
+ 7
@Jay... It's always great when you chime in. ;)
To play devil's advocate here... (yes... I might have just referred to python as the devil LOL)...
Python being rejected on the premise of it being interpreted doesn't hold much water. There is too much precedence with many large projects built on other interpreted languages such as Javascript (with NodeJS), PHP, and Ruby. Heck, in the past, Classic ASP and ColdFusion were highly popular as dynamic scripting platforms. However, let's keep those where they belong - in the past. :D
----------
@Ace... Thanks for sharing your experience with Python. Your feedback is quite consistent with the trend I've been suspecting where Python is heavily used in academia and less used in commercial applications. I too have my fair share of python scripts for some automation in my development / deployment workflows. However, none of these are complicated or, in any way, unique or mission critical.
----------
Hopefully, we'll hear from someone in this vast community with some great, real world, application development experience with python. Thanks to all the great insight shared so far!
+ 7
That's awesome! I suspected you were a sys admin with coding skills based on the scenario you presented. I've helped quite a few sys admins in writing similar types of scripts using python, ruby, and shell scripts. Some try to learn more about scripting, most I've worked with really struggle or give up before trying.
I bet you're a rare breed among your colleagues. :)
+ 7
Eric Smith Thank you for such an insightful response.
+ 6
@Emerson... Thanks for sharing that. I'm curious, are you a software developer, a sys admin, or some other role? If you are a software developer, what other tech stacks do you work in?
+ 5
@dCook... Thanks for sharing that about Pythonista. I'll need to look into this further. My guess is it is being transpiled to objective-c or swift. But my understanding of all of these would not seem possible without a lot of rigid restrictions forced on how python is written. Looking forward to seeing what sort of Voodoo programmagical wizardry is going on with the iOS UI module. 😉
+ 4
At work, we sometimes use Python for multi machine remote execution, like batch install/upgrade/configuration, in cases a real configuration manager / orchestrator would be overkill. And that made things easier and faster to solve.
Regarding execution speed: this is not always relevant. We usually run heavy shell commands from Python scripts. The actual Python time is negligible in these cases.
+ 4
@David I have a sysadmin job, but I really love coding, so I use programming to make admin more efficiently. Shell scripting and Ruby are always at hand too.
+ 1
Im not a professional python developer in any means but have been working with python for almost 2 years now. just to make that clear but would like to share my thoughts on the question asked.
To answer your question: no, i think that python is not suited for large or maybe even small applications at least not quite yet.
i truly believe that python has a great potential and very bright future but as of now, python isn't there yet!
And that's just my opinion, i could be wrong or maybe not ?
+ 1
@David I don’t meet your requirements for answering. :) I share some of your thoughts. That may be part of the reason that I am focused on front end web now.
But- when I was deep into Python I was doing it on iOS using an IDE app called Pythonista. It’s a great app. Included is a module for the iOS UI. It’s possible to build applications and games for iOS with python. The developer also has a kind of wrapper for taking your project all the way to the App Store. (You can’t of course do that straight from the app). There are people in that community who have created things that are available in the App Store.
Perhaps for many people who love Python it’s more of a personal thing- something that aids in automating personal things etc. Easy to make custom scripts for odd-ball stuff etc.
I don’t think it’s impossible to build full out applications. But the question always becomes, is it marketable? :)
- 1
ok thank you
- 3
hl david i need your email.or number watsap pleaz