The Artima Developer Community
Sponsored Link

News & Ideas Forum (Closed for new topic posts)
Programming at Python Speed

2 replies on 1 page. Most recent reply: Jan 28, 2003 5:17 PM by Matt Gerrans

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 2 replies on 1 page
Bill Venners

Posts: 1993
Nickname: bv
Registered: Jan, 2002

Programming at Python Speed Posted: Jan 27, 2003 2:03 AM
Reply to this message Reply
Advertisement
Artima.com has published Part III of an interview with Python creator Guido van Rossum, in which he talks about about the source of Python's famed programmer productivity and the joys of exploring new territory with code.

http://www.artima.com/intv/speed.html

Here's an excerpt:

I like programming problems where you think, "There has to be something really interesting over there, but I can't see it clearly." All you can do is move one step over there, with a small bit of code, and start exploring to see it more clearly. And maybe it actually wasn't there, it was over here. Or it had a different shape than you thought initially. Maybe it wasn't interesting at all, and you didn't waste a lot of time.

The danger of planning is that you plan for the contingencies you know about, but by definition you don't plan for things you don't know you'll encounter. So when you do encounter an unexpected event in your programming endeavor, you have to fix many interfaces and change multiple method signatures. If you've already committed to your original plan and that's no longer where you're going, then you have a problem.

I'm not particularly worried by the fact that people say you can prototype more easily in Python, but eventually the Java version makes it easier to build a robust large system. You can prototype in Python. Once you've explored the space more, you can do the planning and design that the Java version requires. If you start writing in Java knowing as little as you did when you started writing the Python version, you'll waste way more time exploring than actually building the system you'll eventually build.


What do you think of Guido's comments?


Joe Cheng

Posts: 65
Nickname: jcheng
Registered: Oct, 2002

Re: Programming at Python Speed Posted: Jan 28, 2003 3:15 PM
Reply to this message Reply
A couple of years ago I would've agreed with that excerpt. But now I think what really lets you explore with abandon is the safety net of compile time checking, and a good refactoring tool.

I also would've agreed about the finger typing argument Guido made, but not after the latest revision or two of the leading Java IDE's (IntelliJ, Eclipse, and perhaps JBuilder from what I hear?). It is just incredibly, incredibly easy to write, modify, and navigate with these tools.

That's not to say there isn't a lot of value in Python (from what I've seen of it), the libraries and such definitely seem to be easier to understand and use. Guido is obviously a very smart guy and kudos to him for making an important contribution to the programming languages landscape!

Matt Gerrans

Posts: 1150
Nickname: matt
Registered: Feb, 2002

Re: Programming at Python Speed Posted: Jan 28, 2003 5:17 PM
Reply to this message Reply
I agree with you on the IDEs -- they have really improved the task of programming in the more verbose languages. However, Guido still has a good point in that the brevity and simplicity of working with lists and dictionaries in Python really is significantly simpler than in Java or C++. Working with Maps and Lists in Java is made easier by an IDE's auto-completion and syntax checking features, but it is still nowhere near as clear and simple as in Python.

For example, in working with Strings in Java, you might find yourself needing to create lots of ancilary objects, such as Enumerations, Iterators, StringTokenizers, Lists, Maps, etc., whereas in Python you don't need to think so much about other objects -- you concentrate more on the task at hand.

Flat View: This topic has 2 replies on 1 page
Topic: Enhance Your J2EE Presentation Layer Previous Topic   Next Topic Topic: JavaShelf.com Enhances Java Book Price Comparison Services


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2009 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us