The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Why should you learn Python?

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Darrell Norton

Posts: 876
Nickname: dnorton
Registered: Mar, 2004

Darrell Norton is a consultant for CapTech Ventures.
Why should you learn Python? Posted: Jan 7, 2005 8:00 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Darrell Norton.
Original Post: Why should you learn Python?
Feed Title: Darrell Norton's Blog
Feed URL: /error.htm?aspxerrorpath=/blogs/darrell.norton/Rss.aspx
Feed Description: Agile Software Development: Scrum, XP, et al with .NET
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Darrell Norton
Latest Posts From Darrell Norton's Blog

Advertisement

Shortly after I blogged about learning Python in 2005, I found out via Steve that several other people (Sam Gentile, John Lam, and Steve Eichert himself) are doing it too. I wasn’t following their lead in picking a language, but I’m glad to be in good company! The reasons why I chose to learn a new language, and the reasons behind choosing Python, might help someone, so here they are.

Why learn a new language?

I was following the Pragmatic Programmers advice to learn a new language each year. Peter Berger also suggests that learning languages helps you learn to program. I had been researching from late November through early December (2004) which language to learn next to best broaden my developer horizons, and the short list was Python, Lisp, and Smalltalk.

Peter Norvig suggest in his excellent essay, Teach Yourself Programming in Ten Years, to learn at least 6 languages. But he doesn’t say to learn 6 languages that are all similar, like C, C++, Java, and C#! Instead he says:

“Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).”

Why Python?

Good question.

Lisp and Python both support functional abstraction in the form of functional programming (at least I think this is right, but I’m no computer scientist, so take with the proverbial grain of salt). Big deal; what is functional programming anyway? Some of the key characteristics of functional programming languages are (source):

  • Functions are first class (objects).  That is, everything you can do with "data" can be done with functions themselves (such as passing a function to another function).
  • Focus on LISt Processing (e.g. the name 'Lisp').  Lists are often used with recursion on sub-lists as a substitute for loops.
  • FP worries about -what- is to be computed rather than -how- it is to be computed.
  • Much FP utilizes "higher order" functions (i.e. functions that operate on functions that operate on functions).

Since this is quite different from imperative programming, it is sure to give that “Aha!” moment once you “get it” in the sense of learning to think in a new language. The “Aha!” moment was also what I was looking for with SmallTalk, since everything is an object, but Python also offers the “everything is an object” experience. That is not to say that I won’t learn SmallTalk, it is just that I won’t learn it in 2005 unless prompted by work.

I also wanted a strongly and dynamically typed language (more here). Research on Python also turned up some interesting articles. Bruce Eckel thinks that Python is all about making your life easier. The Artima interview continues with part 2 (programmer productivity), part 3 (type checking), and part 4 (minimizing the typing). And of course Paul Graham caused a stir when he said that smarter programmers use Python not Java. Maybe this is my search for intelligence. :)


This Blog Hosted On: http://www.DotNetJunkies.com/

Read: Why should you learn Python?

Topic: Some news from the wild Previous Topic   Next Topic Topic: Get the Microsoft Windows AntiSpyware Beta

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use