Python - no arguments, please
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
Maybe this article will shed some light on the subject: what-can-you-do-with-python-in-2021-python-real-life-applications-e5b5ee8c95e9[^]
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
MSBassSinger wrote:
What disadvantages are there, if any, to using Python over C#?
You don't have to build it before deploying -- just copy the code to the destination. Edit: Oh, I had read that as advantages, not disadvantages.
MSBassSinger wrote:
Is Python a better general purpose language,
Python is not a general-purpose language. It is a scripting language, a glue language. Any heavy lifting has to be done in a general-purpose language -- then import it as a package.
MSBassSinger wrote:
or in place of, C#
Definitely not.
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
The schools are teaching with Python. Academics continue to use what they are familiar with. 10-15 years ago there was a controversy about using Microsoft Windows in schools and universities. Some switched to Linux. Then they asked "Why are we teaching C in schools?". Python is used by most academics today. I See Python packages all the time doing amazing things.
-
MSBassSinger wrote:
What disadvantages are there, if any, to using Python over C#?
You don't have to build it before deploying -- just copy the code to the destination. Edit: Oh, I had read that as advantages, not disadvantages.
MSBassSinger wrote:
Is Python a better general purpose language,
Python is not a general-purpose language. It is a scripting language, a glue language. Any heavy lifting has to be done in a general-purpose language -- then import it as a package.
MSBassSinger wrote:
or in place of, C#
Definitely not.
PIEBALDconsult wrote:
You don't have to build it before deploying -- just copy the code to the destination. Edit: Oh, I had read that as advantages, not disadvantages.
That still works as a disadvantage - with no compilation step, you've lost a basic sanity check on the code you're deploying. :)
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
-
The only reason I use it is the fantastic library named 'NumPy' :) NumPy - Wikipedia[^]
One of the reason python is wildly popular.
CI/CD = Continuous Impediment/Continuous Despair
-
PIEBALDconsult wrote:
You don't have to build it before deploying -- just copy the code to the destination. Edit: Oh, I had read that as advantages, not disadvantages.
That still works as a disadvantage - with no compilation step, you've lost a basic sanity check on the code you're deploying. :)
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
True, but let's assume the code has been tested. Similarly, it's too easy to change code in production. This is a disadvantage of SQL procedures and such as well.
-
Maybe this article will shed some light on the subject: what-can-you-do-with-python-in-2021-python-real-life-applications-e5b5ee8c95e9[^]
Thanks. That article gives a good overview on how Python is used effectively today. C# can, and is, used for all of those. What I am looking for are comparisons in those areas, or generally, where Python would be an advantage. For example, design and coding time in VS 2022 (which supports both languages), performance, etc.
-
MSBassSinger wrote:
What disadvantages are there, if any, to using Python over C#?
You don't have to build it before deploying -- just copy the code to the destination. Edit: Oh, I had read that as advantages, not disadvantages.
MSBassSinger wrote:
Is Python a better general purpose language,
Python is not a general-purpose language. It is a scripting language, a glue language. Any heavy lifting has to be done in a general-purpose language -- then import it as a package.
MSBassSinger wrote:
or in place of, C#
Definitely not.
Excellent reply. Thank you.
-
The only reason I use it is the fantastic library named 'NumPy' :) NumPy - Wikipedia[^]
Wikipedia wrote:
Written in Python, C
C for the win!
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
We use it as a scripting language for our software. (integration into a C++ application). It's relatively lightweight, lot of engineering folks not in programming domain use it as a simple tool to do lot of math stuff. Our clients (and internal folks) do lot of data analysis with it.
CI/CD = Continuous Impediment/Continuous Despair
-
We use it as a scripting language for our software. (integration into a C++ application). It's relatively lightweight, lot of engineering folks not in programming domain use it as a simple tool to do lot of math stuff. Our clients (and internal folks) do lot of data analysis with it.
CI/CD = Continuous Impediment/Continuous Despair
Maximilien wrote:
do lot of data analysis with it
But what language is the data analysis code written in?
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
I would add: - it's free - it works everywhere. And I mean browsers, iPhones, computing cards, workstations, PCs, macs, [watches](https://www.zerynth.com/blog/programming-hexiwear-wearable-iot-in-python-using-zerynth/) - there's a huge number of libraries and code examples available. - it's a very approachable language for teaching. As much as Python makes me swear some days, I'd recommend it as a teaching language over C or C++ for power and simplicity, and also over C# and Java for how ubiquitous it is and how it's not tied down to any platform or vendor. I love C#, very much, but it's a very Microsoft-centric experience (and mindset) still and that's not healthy for someone starting out who needs every option open to them. - It's the language that anyone dealing with data analysis will use. Engineers, environmental scientists, Data analysis, AI (Obviously). The introduction of Jupyter notebooks was such a boon (and obviously this is no longer Python-only) I will say, though, that the library system will do your head in. It's wonderful until it's not. BUT: you generally get the code, so last ditch efforts of debugging and manual patching can work in emergencies. It also has some awkward syntax. Very awkward. And the whole culture is a little weird, and dare I say fanatical at times. And can Guido please stop pasting Monty Python quotes in the Python docs. Dude. Seriously.
cheers Chris Maunder
-
I would add: - it's free - it works everywhere. And I mean browsers, iPhones, computing cards, workstations, PCs, macs, [watches](https://www.zerynth.com/blog/programming-hexiwear-wearable-iot-in-python-using-zerynth/) - there's a huge number of libraries and code examples available. - it's a very approachable language for teaching. As much as Python makes me swear some days, I'd recommend it as a teaching language over C or C++ for power and simplicity, and also over C# and Java for how ubiquitous it is and how it's not tied down to any platform or vendor. I love C#, very much, but it's a very Microsoft-centric experience (and mindset) still and that's not healthy for someone starting out who needs every option open to them. - It's the language that anyone dealing with data analysis will use. Engineers, environmental scientists, Data analysis, AI (Obviously). The introduction of Jupyter notebooks was such a boon (and obviously this is no longer Python-only) I will say, though, that the library system will do your head in. It's wonderful until it's not. BUT: you generally get the code, so last ditch efforts of debugging and manual patching can work in emergencies. It also has some awkward syntax. Very awkward. And the whole culture is a little weird, and dare I say fanatical at times. And can Guido please stop pasting Monty Python quotes in the Python docs. Dude. Seriously.
cheers Chris Maunder
For writing small server programs it is fine. I would not use it for anything with a GUI (and admittedly have not ever tried). For large programs it becomes harder to maintain. By large I mean > 1 man-year of code. And for small programs, starting from scratch, it is actually fun, because with zero you make something that does something, quickly!
"If we don't change direction, we'll end up where we're going"
-
For writing small server programs it is fine. I would not use it for anything with a GUI (and admittedly have not ever tried). For large programs it becomes harder to maintain. By large I mean > 1 man-year of code. And for small programs, starting from scratch, it is actually fun, because with zero you make something that does something, quickly!
"If we don't change direction, we'll end up where we're going"
I've backed myself into far tighter corners than Python on 2+ year projects :-D It's all about architecting the solution. And some tech stacks are really well suited to this. And some just aren't...
cheers Chris Maunder
-
I am NOT criticizing Python and I implore the reader please do not start nor engage in any “flame war” on Python. I have programmed in a number of different languages over my 40 years as a developer. My current languages that I use the most are C# and T-SQL. I see that Python is popular, or at least appears so. What value-add(s) does Python bring that I cannot get now in C#? What disadvantages are there, if any, to using Python over C#? Is Python a better general purpose language, or is it better at some specific niche(s) in development? I would really like to get a clearer picture of why using Python along with, or in place of, C# would be of value. Thanks in advance for the non-flame responses.
Python is interpreted; easier to get started with (IMO). Popular in schools; universities. Unless one has a specific problem to solve, it's another solution looking for one.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
-
Maximilien wrote:
do lot of data analysis with it
But what language is the data analysis code written in?
Python with NumPy. We deal with large dataset of 3d points and 3d measurements. (see bio for company) We do a lot in the software itself, but sometimes the clients have domain (proprietary) specific things they want to do.
CI/CD = Continuous Impediment/Continuous Despair
-
I've backed myself into far tighter corners than Python on 2+ year projects :-D It's all about architecting the solution. And some tech stacks are really well suited to this. And some just aren't...
cheers Chris Maunder
I am not saying that it is useless for large projects. And "architecting" is ofc important, but let's say 2+ years PLUS volatile requirements PLUS a situation where developers come and go. Then I would not recommend Python as the first choice.
"If we don't change direction, we'll end up where we're going"
-
I am not saying that it is useless for large projects. And "architecting" is ofc important, but let's say 2+ years PLUS volatile requirements PLUS a situation where developers come and go. Then I would not recommend Python as the first choice.
"If we don't change direction, we'll end up where we're going"
I've not had experience with large (and long) python projects yet, but two things really stick out for me when I think about your statement: 1. Comments seem to be very much a second (or third or fourth) consideration. Not even having formal syntax support for multi-line comments just strikes me as being of the mindset that support for comments is a necessary evil, not an integral part of documenting the niggly things that a dev, 3 years later, will need to refer to 2. The absolutely terrible variable names you see in so many samples. Having started my career being forced to maintain a massive legacy FORTRAN codebase in a research institution many, many years ago, I'm still scarred by the variables named
A
,AA
,AAA
,A2
,B2
and so on. And no, this isn't hyperbole: this was the common naming method. I don't see stuff as bad in Python, but naming isn't exactly deeply rooted in the Pythonic culture. It really does not help the cause of maintainability.cheers Chris Maunder