Why Python?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Todd7

    Why Python?

    I am looking at learning Python, but I would like to know what its
    strengths and weaknesses are before I invest much time in learning it. My
    first thought is what is it good for programming, however I expect an
    answer from the python newsgroup to be something like "everything ". So
    maybe a better question is what type of programming projects is Python a
    bad choice?

    What makes it better or worse than languages like perl, php, delphi, or
    c++?

    Thanks for your opinions.

    Todd.
  • Ben Finney

    #2
    Re: Why Python?

    On Mon, 01 Mar 2004 02:11:46 GMT, Todd7 wrote:[color=blue]
    > I am looking at learning Python, but I would like to know what its
    > strengths and weaknesses are before I invest much time in learning it.[/color]

    A Google search that should be helpful:

    <http://www.google.com/search?q=%22why +python%22>

    --
    \ "A politician is an animal which can sit on a fence and yet |
    `\ keep both ears to the ground." -- Henry L. Mencken |
    _o__) |
    Ben Finney <http://bignose.squidly .org/>

    Comment

    • John Hunter

      #3
      Re: Why Python?

      >>>>> "Todd7" == Todd7 <Nospam@please. com> writes:

      Todd7> What makes it better or worse than languages like perl,
      Todd7> php, delphi, or c++?

      perl - both python and perl have many, many external modules written
      for them. perl *may* have more. Some people like that perl has CPAN,
      a central repository for modules. In my opinion, this is not so
      important now that we have google. python is object oriented in its
      bones; with perl, OO is a hack. python favors a clean, simple,
      obvious syntax, perl embraces "there is more that one way to do it."
      For this reason, most python coders feel that python code is easier to
      read and maintain.

      php - widely used for web development and has a lot of nice packages
      in this niche - bulletin boards, database interfaces, and so on.
      python will have packages for each of these areas, but they are not as
      widely used and are not industry standard, in the way for example that
      phymyadmin is. php is not as powerful a programming language as
      python is and is not widely used outside the sphere of web
      development. See the recent thread


      c++ - a big, powerful, complex language. Good for designing complex
      software packages and code where performance is important. Makes
      things like file IO, dbase and web connectivity harder than they need
      to be. Many who use python favor a mixed language programming style:
      use python for most everything, and write (or reuse) C/C++/FORTRAN
      extensions for processor/performance intensive parts. There are many
      good tools (SWIG, F2Py, boost::python, etc) for automating the process
      of creating python extensions of code from these other languages. If
      you need high performance code, it's good to know how to write code in
      at least one of these compiled languages.

      My advice: learn python first. The community is very friendly and
      receptive to newcomers (you won't find this on perl or C++
      newsgroups). You'll get advice from world experts on coding and
      style. python coders value elegant, readable, efficient, well written
      code and will give you lots of advice along these lines.

      JDH

      Comment

      • Qp

        #4
        Re: Why Python?

        Well, I'm new at it (started about 2 months ago in preparation for senior
        design project), and the one thing I've seen that could be better is overall
        documentation; sometimes it is hard to find what you're looking for
        (especially in libraries like Tkinter for GUI programming and Twisted for
        network programming). It's possible, just hard.

        The good things I've noticed? Well, to do what I've done so far in Java
        would have taken at least 5 and probably more like 10 times the code I've
        written. A simple yet decent TCP chat server in about 30 lines of code is
        something I never considered possible before looking at Python.

        "Todd7" <Nospam@please. com> wrote in message
        news:Xns949ECD7 289AD6Todd7Nosp ampleasecom@68. 12.19.6...[color=blue]
        > I am looking at learning Python, but I would like to know what its
        > strengths and weaknesses are before I invest much time in learning it. My
        > first thought is what is it good for programming, however I expect an
        > answer from the python newsgroup to be something like "everything ". So
        > maybe a better question is what type of programming projects is Python a
        > bad choice?
        >
        > What makes it better or worse than languages like perl, php, delphi, or
        > c++?
        >
        > Thanks for your opinions.
        >
        > Todd.[/color]



        Comment

        • Robert M. Emmons

          #5
          Re: Why Python?

          > I am looking at learning Python, but I would like to know what its[color=blue]
          > strengths and weaknesses are before I invest much time in learning it.[/color]

          All of the other answers above are good. I would say the followng:

          * Python is easy to learn. I learned it in an afternoon -- that's an
          experienced programmer. It's ideal for a beginner as well.
          * Good cross platform support both windows and linux. Never re-write
          code again. Also writes very fast to begin with--good RAD tool.
          * To write just about anything all you need to know is python, C/C++,
          and a little JavaScript if you want to make web pages. That's it.
          Python has a huge application range--small scripts, full up
          applications, cgi scripting for the web. You can even integrate it with
          the Mozilla platform for local cgi like functions.

          What's not good in python:

          * If speed is more important than coding time use C/C++ instead.
          * If you want to obscruate your code maybe a compiled langague is better.

          Rob

          Comment

          • Todd7

            #6
            Re: Why Python?

            Thanks for all the well reasoned replies. I think I will make the
            plunge.





            Todd7 <Nospam@please. com> wrote in
            news:Xns949ECD7 289AD6Todd7Nosp ampleasecom@68. 12.19.6:
            [color=blue]
            > I am looking at learning Python, but I would like to know what its
            > strengths and weaknesses are before I invest much time in learning it.
            > My first thought is what is it good for programming, however I expect
            > an answer from the python newsgroup to be something like "everything ".
            > So maybe a better question is what type of programming projects is
            > Python a bad choice?
            >
            > What makes it better or worse than languages like perl, php, delphi,
            > or c++?
            >
            > Thanks for your opinions.
            >
            > Todd.
            >[/color]

            Comment

            • Rainer Deyke

              #7
              Re: Why Python?

              Todd7 wrote:[color=blue]
              > What makes it better or worse than languages like perl, php, delphi,
              > or c++?[/color]

              I'll focus on the weaknesses of Python instead of the strengths.

              1. Computation intense Python programs tend to be slower than optimized
              equivalent programs written in languages that compile to native code.

              2. Python programs are somewhat difficult to distribute compared to programs
              in languages that compile to native code.

              3. Some other languages make it easier to detect certain classes of errors
              in your code. With a few exceptions, errors in Python code can only be
              found by actually running the code or by checking by hand.

              4. Python is only somewhat flexible about allowing you to customize the
              language from within the language. You can define new functions and new
              data types, but no new operators, no new control structures, nor any type of
              new syntax. If you need to define a domain-specific language within your
              program, Python may not be your best choice.


              --
              Rainer Deyke - rainerd@eldwood .com - http://eldwood.com


              Comment

              • Ed Murphy

                #8
                Re: Why Python?

                On Mon, 01 Mar 2004 05:12:48 +0000, Rainer Deyke wrote:
                [color=blue]
                > Todd7 wrote:[/color]
                [color=blue][color=green]
                >> What makes it better or worse than languages like perl, php, delphi,
                >> or c++?[/color][/color]
                [color=blue]
                > I'll focus on the weaknesses of Python instead of the strengths.[/color]
                [snip][color=blue]
                > 2. Python programs are somewhat difficult to distribute compared to
                > programs in languages that compile to native code.[/color]

                How do you figure this one? Something to do with statically linked
                libraries? (I'm a Python newbie, but have been programming in general
                for almost 20 years, about half of that professionally. )

                Comment

                • Rainer Deyke

                  #9
                  Re: Why Python?

                  Ed Murphy wrote:[color=blue]
                  > On Mon, 01 Mar 2004 05:12:48 +0000, Rainer Deyke wrote:[color=green]
                  >> 2. Python programs are somewhat difficult to distribute compared to
                  >> programs in languages that compile to native code.[/color]
                  >
                  > How do you figure this one? Something to do with statically linked
                  > libraries? (I'm a Python newbie, but have been programming in general
                  > for almost 20 years, about half of that professionally. )[/color]

                  Basically you have to distribute the Python interpreter along with your
                  program, since you generally can't rely on the end user having (the correct
                  version of) Python installed.


                  --
                  Rainer Deyke - rainerd@eldwood .com - http://eldwood.com


                  Comment

                  • Michael

                    #10
                    Re: Why Python?

                    [color=blue][color=green][color=darkred]
                    >>>2. Python programs are somewhat difficult to distribute compared to
                    >>>programs in languages that compile to native code.
                    >>>
                    >>>[/color]
                    >>How do you figure this one? Something to do with statically linked
                    >>libraries? (I'm a Python newbie, but have been programming in general
                    >>for almost 20 years, about half of that professionally. )
                    >>
                    >>[/color]
                    >
                    >Basically you have to distribute the Python interpreter along with your
                    >program, since you generally can't rely on the end user having (the correct
                    >version of) Python installed.
                    >[/color]
                    It's really no harder a dependency to check than for shared libraries or
                    such with C programs.

                    Comment

                    • Paul McGuire

                      #11
                      Re: Why Python?

                      "Rainer Deyke" <rainerd@eldwoo d.com> wrote in message
                      news:l6C0c.8261 $ko6.195399@att bi_s02...[color=blue]
                      > Ed Murphy wrote:[color=green]
                      > > On Mon, 01 Mar 2004 05:12:48 +0000, Rainer Deyke wrote:[color=darkred]
                      > >> 2. Python programs are somewhat difficult to distribute compared to
                      > >> programs in languages that compile to native code.[/color]
                      > >
                      > > How do you figure this one? Something to do with statically linked
                      > > libraries? (I'm a Python newbie, but have been programming in general
                      > > for almost 20 years, about half of that professionally. )[/color]
                      >
                      > Basically you have to distribute the Python interpreter along with your
                      > program, since you generally can't rely on the end user having (the[/color]
                      correct[color=blue]
                      > version of) Python installed.
                      >[/color]
                      Utilities such as py2exe and McMillan Installer make this problem much
                      simpler. Real-world example: I needed to provide a customer with a *very*
                      simple HTTP server for centrally serving up a global configuration file. My
                      prototype was 2 lines of Python code (actual finished version was about 50
                      lines, including some signal handling), used McInstaller to create a
                      free-standing distributable .EXE file (that fit on a 3-1/2" floppy!). Very
                      portable, does not require Python to be installed on the target platform.

                      -- Paul


                      Comment

                      • Mark Carter

                        #12
                        Re: Why Python?

                        > What makes it better or worse than languages like

                        Python has loads of modules, which are easy to install.

                        Python has good documentation, with useful examples.


                        I'm trying to learn Scheme at the moment, to broaden my programming
                        horizon. I am generally finding it an uphill struggle. Scheme might be
                        a theoretically better language design, but in Python you can just get
                        on and do it.

                        Someone once suggested that the fact that Python had a Benevolent
                        Dictator For Life is a possible positive on its popularity, and I
                        think that the suggestion has merit. Effort has been made to make it
                        accessable to the ordinary programmer.

                        To give just one example ...

                        Regular expressions.

                        MIT Scheme explains its REXP abstraction: "In addition to providing
                        standard regular-expression support, MIT Scheme also provides the REXP
                        abstraction. ". But it doesn't give any examples. And I couldn't find
                        any by Googling, either.

                        Now look at Python. Section 4.2.1 (Regular Expression Syntax) kindly
                        reminds us of the regexp syntax - something that MIT does not. Section
                        4.2.2 and 4.2.6 then goes on to give us some regexp examples.


                        Python is popular because it tries to be popular. Scheme seems more
                        academic, with a more "why would you want a GUI anyway?" type
                        attitude.

                        Comment

                        • Cameron Laird

                          #13
                          Re: Why Python?

                          In article <1045c7gfn9ipj3 8@corp.supernew s.com>,
                          Robert M. Emmons <RobMEmmons@cs. com> wrote:

                          Comment

                          • Nobody

                            #14
                            Re: Why Python?


                            "Todd7" <Nospam@please. com> wrote in message
                            news:Xns949ECD7 289AD6Todd7Nosp ampleasecom@68. 12.19.6...[color=blue]
                            > I am looking at learning Python, but I would like to know what its
                            > strengths and weaknesses are before I invest much time in learning it. My
                            > first thought is what is it good for programming, however I expect an
                            > answer from the python newsgroup to be something like "everything ". So
                            > maybe a better question is what type of programming projects is Python a
                            > bad choice?
                            >
                            > What makes it better or worse than languages like perl, php, delphi, or
                            > c++?
                            >
                            > Thanks for your opinions.
                            >
                            > Todd.
                            >[/color]




                            Why NOT Python?
                            I'm a noob at it, but so far I love it. It's easy to put together a program
                            pretty quickly using it. Also, even when I have to code something up in, say
                            C++, I can still put together a prototype in Python first to get a better
                            understanding of the problem space. (Ya have to "...throw one away..."
                            anyway, so why not use Python first?)
                            I know this doesn't _directly_ answer your question, but it does in a way.


                            WR


                            Comment

                            • Robert M. Emmons

                              #15
                              Re: Why Python?

                              > 3. Some other languages make it easier to detect certain classes of errors[color=blue]
                              > in your code. With a few exceptions, errors in Python code can only be
                              > found by actually running the code or by checking by hand.[/color]

                              True maybe, but I would argue that Python is not suseptable to many if
                              not most of the errors generated and found in say C/C++ coding. You
                              also have a dramatic code volume reduction which helps too.

                              There are static code checkers too for python which can help some too.

                              I personally think that python has it as a whole on debugging -- i.e.
                              pretty much the lack of a need to do much sophisticated debugging.

                              It's not clear to me what kind of error that a C compiler can catch
                              that's difficult to deal with in Python (although I'm sure there are
                              some). IMHO the whole reason C/C++ has sophisticated debugging tools is
                              that code debugging in C is a nightmare.

                              Thanks for the info--I enjoyed your comments and other's replies to them.

                              Take care.
                              Rob

                              Comment

                              Working...