Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Why Python?

Why Python?

Scheduled Pinned Locked Moved The Lounge
csharprubyvisual-studioquestionfunctional
25 Posts 14 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mikepwilson

    Python first is REMARKABLY easy to get things done fast with. It's entirely supplanted things like perl (which breaks my heart, as a 15 year perl guy.) It's also much faster than you think. Don't fall prey to the late 80's early 90s "but it's a scripting language" bias. Very large shops use it for some pretty high performance analytics. Over the past 40 years I've been through pascal, C++ (still my favorite, but I can't recommend it), java, C#, a couple assemblers, various scripting languages and 3gl IDEs from the 90s. After all is said and done, not only can I get functional code written and deployed faster with python than with most anything, the code is simple and clear (unless I'm coding completely drunk.) If you add programmer efficiency as a concern, python is just far ahead of the pack. The anti-microsoft thing is different, but meshes with it a lot. Most of it is obnoxious foolishness. But not all of it. Don't marry your tools. They'll all betray you at some point.

    A Offline
    A Offline
    Asday
    wrote on last edited by
    #15

    >It's also much faster than you think. Don't fall prey to the late 80's early 90s "but it's a scripting language" bias Python is slow because it's hashes all the way down, not because it's a scripting language.

    M 1 Reply Last reply
    0
    • A Asday

      I work in Python for a living. It's a cool life. Websites and web services. >(running the app to find syntax errors is not good communication), You need a better IDE. >(real OOP, real functional programming, real lambda functions, etc.), Python has "real OOP", and as everything is an object, "real functional programming" is also a thing. What do you mean by "real lambda functions"? `x = sorted(x, key=lambda member: member.value)`... >(Tk and their ilk is just gross for creating desktop UI's), wxPython is a fantastic wrapper over wxWidgets, a native widget C++ library. That said, distributing Python is a pain in the neck, and it's really not what you should be doing with Python. Stick to servers, where you control the metal. >(JetBrains IDE's are pretty good, but still not the Visual Studio experience, and intellisense / autocomplete with languages like Python are pretty lame) Have you used PTVS? It's fantastic. >the number of psychological problems should be minimal (the split personalities of dynamic typing come to mind.) Static typing is not a strength. It's just a different way of doing things. To more broadly answer your question; "why Python?" It's fun. It's easy. There's a huge wealth of fantastic resources. Within 8 minutes, with a clean linux machine or even mac, I can have an immensely powerful web framework running and serving database-backed pages.

      Y Offline
      Y Offline
      Yvan Rodrigues
      wrote on last edited by
      #16

      Agreed. .NET and C# are where I've invested my 10,000 hours, but over the last year I've had the pleasure of working primarily in Python, and I love it. It is very readable, especially if you follow the "pythonic" way of doing things -- keeping it simple. I still prefer it more for "scripty" things, because it is interpreted, but that's just my preference.

      Yvan Rodrigues, C.Tech. Clearpath Robotics

      1 Reply Last reply
      0
      • M mikepwilson

        Python first is REMARKABLY easy to get things done fast with. It's entirely supplanted things like perl (which breaks my heart, as a 15 year perl guy.) It's also much faster than you think. Don't fall prey to the late 80's early 90s "but it's a scripting language" bias. Very large shops use it for some pretty high performance analytics. Over the past 40 years I've been through pascal, C++ (still my favorite, but I can't recommend it), java, C#, a couple assemblers, various scripting languages and 3gl IDEs from the 90s. After all is said and done, not only can I get functional code written and deployed faster with python than with most anything, the code is simple and clear (unless I'm coding completely drunk.) If you add programmer efficiency as a concern, python is just far ahead of the pack. The anti-microsoft thing is different, but meshes with it a lot. Most of it is obnoxious foolishness. But not all of it. Don't marry your tools. They'll all betray you at some point.

        H Offline
        H Offline
        Hooga Booga
        wrote on last edited by
        #17

        Quote:

        unless I'm coding completely drunk

        Be realistic, how often does coding while not completely drunk actually happen?

        Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx

        K M 2 Replies Last reply
        0
        • M Marc Clifton

          Though that question could be expanded "Why nodejs" or "Why Ruby on Rails". Don't get me wrong, I actually like Python. It's awesome for doing development on SBC's like the rPi or the Beaglebone. But will be less awesome once .NET Core supports ARM processors (apparently it doesn't yet, from what my google-fu was able to determine yesterday.) But Python and the rest, well, they're just not C# (or C++, but I haven't used C++ in so many years now the rust has turned into individual oxidized atoms of iron.) What gets me is how many jobs use Python (or one of the other aforementioned) for things like web servers/services. Why? Why do I keep encountering what is often overtly expressed as a disdain for Microsoft tech? Ultimately, I guess it boils down to free, cheap, open source, etc., and probably the biggest reason, it's whatever bias the lead developer had/has when the first line of code was written. And that bias, well, I keep encountering it. Of course I'm biased as well, and of course I think I have good reasons for my biases towards strong typed compiled languages. Still, it's disturbing, disappointing, annoying, and frustrating that I actually encounter very little adoption of Microsoft tech for contract jobs and even on site employment in my little corner of the world here in Albany NY. What's your experience? Where are the .NET hubs of contract/employment opportunities in the US and more generally, the world? I suppose you could say I should just get a spine and code. But for me, programming is like being in a relationship with the programming language. Its got to have good communication skills (running the app to find syntax errors is not good communication), its got to be intellectually engaging (real OOP, real functional programming, real lambda functions, etc.), its got to be good looking (Tk and their ilk is just gross for creating desktop UI's), and its got to be fun to be around (JetBrains IDE's are pretty good, but still not the Visual Studio experience, and intellisense / autocomplete with languages like Python are pretty lame) and most importantly, the number of psychological problems should be minimal (the split personalities of dynamic typing come to mind.) Marc

          V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives

          K Offline
          K Offline
          Kirk 10389821
          wrote on last edited by
          #18

          Marc, The easiest answer I have is that MSFT is too quick to throw out their old technology, and to simply stop supporting it. Most .NET developers I know have 3 versions of the IDE on their machines in order to keep some project working. And this is not a new construct. When MSFT decided 32 bit was the way to go, they stopped improving the 16 bit C++ compiler. We had to get BC++ to compiler the 16 bit version of the same code. It seems to just be how they operate. Don't get me started about the GUI dev changes of the last 5 years. Yes, they show more progress, but at a higher price. On the other hand, we have 15 year old PHP, Oracle, Linux servers running (in AWS now) almost unchanged, and currently maintained (running current revs). If I have to put something on a shop floor, with custom hardware, etc. I prefer Linux. Especially if we need 30-100 of them, and we have to consider license fees, and updates that might break things! The support cost of windows machines used to HIDE the operating system, and simply control something is the reason, I believe, for the "bigotry". But it is not unfounded. We also ship many systems out with the development tools installed and operational. So we can tweak something locally. What would the fees be for doing that with MSFT? Free software is much cheaper if you deliver hardware, configured, vs. a CD of compiled software.

          1 Reply Last reply
          0
          • H Hooga Booga

            Quote:

            unless I'm coding completely drunk

            Be realistic, how often does coding while not completely drunk actually happen?

            Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx

            K Offline
            K Offline
            kalberts
            wrote on last edited by
            #19

            Maybe it doesn't make that much of a difference... Depends on the toool: Geek & Poke: Yesterdays Regex[^]

            1 Reply Last reply
            0
            • A Asday

              I work in Python for a living. It's a cool life. Websites and web services. >(running the app to find syntax errors is not good communication), You need a better IDE. >(real OOP, real functional programming, real lambda functions, etc.), Python has "real OOP", and as everything is an object, "real functional programming" is also a thing. What do you mean by "real lambda functions"? `x = sorted(x, key=lambda member: member.value)`... >(Tk and their ilk is just gross for creating desktop UI's), wxPython is a fantastic wrapper over wxWidgets, a native widget C++ library. That said, distributing Python is a pain in the neck, and it's really not what you should be doing with Python. Stick to servers, where you control the metal. >(JetBrains IDE's are pretty good, but still not the Visual Studio experience, and intellisense / autocomplete with languages like Python are pretty lame) Have you used PTVS? It's fantastic. >the number of psychological problems should be minimal (the split personalities of dynamic typing come to mind.) Static typing is not a strength. It's just a different way of doing things. To more broadly answer your question; "why Python?" It's fun. It's easy. There's a huge wealth of fantastic resources. Within 8 minutes, with a clean linux machine or even mac, I can have an immensely powerful web framework running and serving database-backed pages.

              H Offline
              H Offline
              Hooga Booga
              wrote on last edited by
              #20

              I've not used Python but I do appreciate a full and complete answer to someone's arguments. Well done.

              Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx

              1 Reply Last reply
              0
              • M Marc Greiner at home

                In 25 years, I have gone through Borland C++, VB6 and C#, but know little about Python. So here a few questions: 1. Visual Studio + Python Is Python a first class language in VS, in a similar manner that I use VS + C#? I see that there is support for Python in VS somehow, but haven't tried it. Is it possible to write following type of programs in Python? 2. Line of Business apps The Microsoft .NET ecosystem is providing developers a whole range of tools and components (free or paid ones, like DevExpress[^], etc.). Does Python have such a rich ecosystem? In essence: Tools that help quickly build WinForms apps that look visually like MS Office 2016, with Ribbons, Navigation bars, Tabs, Grids with direct edition, column sort, Excel filters, reordering, Hierarchical trees, Mask Editors, RichText editors (MS Word), Excel Editors, DateTime editors, PDF viewers/editors, Report Designers and the likes, you get the idea. 3. Background Windows Service apps Does Python provide a library like the one provided in the .NET namespaces? What percentage coverage of .NET does Python provide? 4. Web apps Can I develop a Web app in Python, presenting rich controls like Grids with columns that the user can sort, search, filter, direct edit, Report Designers, PDF Export, DateTime editors, etc. 5. Mobile apps For smartphones, tablets, browsers, etc. in javascript (with an MVC framework) using web services written on the server in Python. 6. Access the database in a DB engine independent way (ORM) MS SQL, Oracle, MySql, etc. 7. Python LOB application examples Are there example of apps developed in Python that I can download or browse and see how they look like and what they can do?

                M Offline
                M Offline
                mikepwilson
                wrote on last edited by
                #21

                Google is your friend. Well...actually, no. Google is the enemy. But you know what I mean.

                1 Reply Last reply
                0
                • A Asday

                  >It's also much faster than you think. Don't fall prey to the late 80's early 90s "but it's a scripting language" bias Python is slow because it's hashes all the way down, not because it's a scripting language.

                  M Offline
                  M Offline
                  mikepwilson
                  wrote on last edited by
                  #22

                  You're missing my point. It's NOT slow.

                  1 Reply Last reply
                  0
                  • H Hooga Booga

                    Quote:

                    unless I'm coding completely drunk

                    Be realistic, how often does coding while not completely drunk actually happen?

                    Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx

                    M Offline
                    M Offline
                    mikepwilson
                    wrote on last edited by
                    #23

                    Too. Damn. Often.

                    1 Reply Last reply
                    0
                    • M Marc Clifton

                      Though that question could be expanded "Why nodejs" or "Why Ruby on Rails". Don't get me wrong, I actually like Python. It's awesome for doing development on SBC's like the rPi or the Beaglebone. But will be less awesome once .NET Core supports ARM processors (apparently it doesn't yet, from what my google-fu was able to determine yesterday.) But Python and the rest, well, they're just not C# (or C++, but I haven't used C++ in so many years now the rust has turned into individual oxidized atoms of iron.) What gets me is how many jobs use Python (or one of the other aforementioned) for things like web servers/services. Why? Why do I keep encountering what is often overtly expressed as a disdain for Microsoft tech? Ultimately, I guess it boils down to free, cheap, open source, etc., and probably the biggest reason, it's whatever bias the lead developer had/has when the first line of code was written. And that bias, well, I keep encountering it. Of course I'm biased as well, and of course I think I have good reasons for my biases towards strong typed compiled languages. Still, it's disturbing, disappointing, annoying, and frustrating that I actually encounter very little adoption of Microsoft tech for contract jobs and even on site employment in my little corner of the world here in Albany NY. What's your experience? Where are the .NET hubs of contract/employment opportunities in the US and more generally, the world? I suppose you could say I should just get a spine and code. But for me, programming is like being in a relationship with the programming language. Its got to have good communication skills (running the app to find syntax errors is not good communication), its got to be intellectually engaging (real OOP, real functional programming, real lambda functions, etc.), its got to be good looking (Tk and their ilk is just gross for creating desktop UI's), and its got to be fun to be around (JetBrains IDE's are pretty good, but still not the Visual Studio experience, and intellisense / autocomplete with languages like Python are pretty lame) and most importantly, the number of psychological problems should be minimal (the split personalities of dynamic typing come to mind.) Marc

                      V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives

                      T Offline
                      T Offline
                      TNCaver
                      wrote on last edited by
                      #24

                      I feel a similar pain. We've been a MS shop for the last 25 years, but because I'm the last remaining C# dev here, and they've bought two companies with expertise only in Ruby and PHP and are combining our teams, our new CIO wants to do FOSS when we rebuild our web site(s) this year. And of course, the other devs won't even consider C# and .NET because, you know, Microsoft is the wrong religion. To me, PHP is like stepping back 20 years into the coding nightmare of classic ASP. Ruby is better, but still feels amateurish compared to C#. The IDEs and tools do not have a professional feel and lack a lot of the functionality found in VS, the way to add features and configure things are convoluted, Linux-style, so that they can't really be defined as RAD tools, IMO. I'd prefer Python over PHP or Ruby, but that's a big no-no 'cause they want to narrow down our tech usage. Just eight more years until retirement.

                      If you think 'goto' is evil, try writing an Assembly program without JMP.

                      1 Reply Last reply
                      0
                      • M Marc Clifton

                        Though that question could be expanded "Why nodejs" or "Why Ruby on Rails". Don't get me wrong, I actually like Python. It's awesome for doing development on SBC's like the rPi or the Beaglebone. But will be less awesome once .NET Core supports ARM processors (apparently it doesn't yet, from what my google-fu was able to determine yesterday.) But Python and the rest, well, they're just not C# (or C++, but I haven't used C++ in so many years now the rust has turned into individual oxidized atoms of iron.) What gets me is how many jobs use Python (or one of the other aforementioned) for things like web servers/services. Why? Why do I keep encountering what is often overtly expressed as a disdain for Microsoft tech? Ultimately, I guess it boils down to free, cheap, open source, etc., and probably the biggest reason, it's whatever bias the lead developer had/has when the first line of code was written. And that bias, well, I keep encountering it. Of course I'm biased as well, and of course I think I have good reasons for my biases towards strong typed compiled languages. Still, it's disturbing, disappointing, annoying, and frustrating that I actually encounter very little adoption of Microsoft tech for contract jobs and even on site employment in my little corner of the world here in Albany NY. What's your experience? Where are the .NET hubs of contract/employment opportunities in the US and more generally, the world? I suppose you could say I should just get a spine and code. But for me, programming is like being in a relationship with the programming language. Its got to have good communication skills (running the app to find syntax errors is not good communication), its got to be intellectually engaging (real OOP, real functional programming, real lambda functions, etc.), its got to be good looking (Tk and their ilk is just gross for creating desktop UI's), and its got to be fun to be around (JetBrains IDE's are pretty good, but still not the Visual Studio experience, and intellisense / autocomplete with languages like Python are pretty lame) and most importantly, the number of psychological problems should be minimal (the split personalities of dynamic typing come to mind.) Marc

                        V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives

                        M Offline
                        M Offline
                        mbb01
                        wrote on last edited by
                        #25

                        A few years ago I really, really, finally had to learn web technologies after spending most of my career in the *Nix, C/C++ and Informix world. I was utterly horrified to learn that the internet is essentially cobbled together with a mish-mash of scripting languages. In some software houses its like the Wild West! In the end you have to be responsive to the job market but a little part of my programming soul died when I had to work with Perl on Apple Macs. If you have to make the transition into a new environment like Python, then so be it. But lets not kid ourselves that it is the best thing since sliced bread. Learning a new fangled scripting language is just another obstacle to earning a living IMO. I'd much rather the industry settle on one language and set of frameworks and make it universal. Then I can spend my time doing my job and learning to do it better, instead of having to keep back tracking over the same basic stuff over and over again. The patron saint of Software Developers should be the mercurial David Bowie forever singing "Changes". Whenever a another smart arsed dev invents a new language, just for fun and says this is cool everyone should use it, all I hear is Madonna singing "Like A Virgin".

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups