Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Guido van Rossum Interviewed

CowboyNeal posted more than 11 years ago | from the getting-to-know dept.

Programming 226

Qa1 writes "Guido von Rossum, creator of Python, was recently interviewed by the folks at O'Reilly Network. In this interview he discusses his view of the future of Python and the Open Source community and programming languages in general. Some more personal stuff is also mentioned, like his recent job change (including the Slashdot story about it) and a little about how he manages to fit developing Python into his busy schedule."

cancel ×

226 comments

Sorry! There are no comments related to the filter you selected.

what's better? (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6712834)

(a) Guido Van Rossum interviewed

or

(b) sex with a mare

Re:what's better? (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6713349)

This is realy unfiar: nothin is beter then sex wit a maer.

FP (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6712838)

FP!

Two things (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6712840)

One, I loved you on SNL. Two, I heard you were planning on running for Governor of California, but you were disqualified. That's really unfortunate. I thought you'd do just as good a job as Gary Coleman.

Python (2, Interesting)

Anonymous Coward | more than 11 years ago | (#6712842)

I want to learn python, where should I start? I have looked at it breifly before, but now I actually have time to learn it. Any good pointers?

Re:Python (0)

dirtydiaper (697253) | more than 11 years ago | (#6712860)

go to their website and look at their tutorials thats where is started

Re:Python (0)

Anonymous Coward | more than 11 years ago | (#6712866)

RTFTutorial (www.python.org)

Re:Python (1)

bsharitt (580506) | more than 11 years ago | (#6712871)

To just start learning, python's website is a good starting point. it has a lot of good beinner resources.

Start here (5, Informative)

niom (638987) | more than 11 years ago | (#6712874)

That's what says in the link to the Python tutorial [python.org] . It's quite good to get you to know the language and does not require a lot of previous programming experience. Then, the library reference [python.org] can come very handy too.

Re:Python (4, Informative)

maharg (182366) | more than 11 years ago | (#6712883)

I learnt from the book "Python Essential Reference" - see Amazon's page [amazon.com] . It has an excellent first chapter which will give you an excellent grasp of the fundamentals. Good luck, and have fun :o)

Re:Python (5, Informative)

holovaty (678950) | more than 11 years ago | (#6712899)

I highly recommend Dive into Python [diveintopython.org] , a free online book that's targeted at experienced programmers.

Re:Python - Python in a nutshell (3, Interesting)

hashmap (613482) | more than 11 years ago | (#6713197)

My recomendation:

Python in a Nutshell by Alex Martelli

Hands dow the best introduction to Python from a programmer's prespective. That is if you are already familiar with basic programming concepts. The great thing about the book is that covers just about every aspect in an extremely concise way that does not bore you to death.

I'm a certified Java and XML developer, gave up on Perl long time ago, discovered Python, somehow got over my initial suspicions regarding the whitespace ... within two weeks it became my favorite language. I do just about everything in Python and it takes about 80% less effort. Love it baby!

Quote of the week from the python newsgroup:

"What can I do with Python that I can't do with C#?
You can go home on time at the end of the day." -- Daniel Klein

h

Re:Python (0, Offtopic)

Anonymous Coward | more than 11 years ago | (#6713273)

www.perl.com

Re:Python (0)

e.colli (630500) | more than 11 years ago | (#6713331)

Bruce Eckel, Thinking in Java's author has an inclomplete and unfinished, but interesting book. http://mindview.net/Books/TIPython [mindview.net]

Re:Python (1)

rsax (603351) | more than 11 years ago | (#6713452)

You might want to download this book [ibiblio.org] as well as use the tutorials at python.org

The same book is available in downloadable versions here: http://greenteapress.com/thinkpython/

Re:Python (0)

Anonymous Coward | more than 11 years ago | (#6713463)

Start by learning COBOL. That way, when you switch to Python, the moronic 'significant whitespace' won't drive you to distraction and make you long for a more sensible language.

GNAA! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6712844)

GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the first organization which
gathers GAY NIGGERS from all over America and abroad for one common goal - being GAY NIGGERS.

Are you GAY [klerck.org] ?
Are you a NIGGER [tux.org] ?
Are you a GAY NIGGER [gay-sex-access.com] ?

If you answered "Yes" to any of the above questions, then GNAA (GAY NIGGER ASSOCIATION OF AMERICA) might be exactly what you've been looking for!
Join GNAA (GAY NIGGER ASSOCIATION OF AMERICA) today, and enjoy all the benefits of being a full-time GNAA member.
GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the fastest-growing GAY NIGGER community with THOUSANDS of members all over United States of America. You, too, can be a part of GNAA if you join today!

Why not? It's quick and easy - only 3 simple steps!

First, you have to obtain a copy of GAY NIGGERS FROM OUTER SPACE THE MOVIE [imdb.com] and watch it.

Second, you need to succeed in posting a GNAA "first post" on slashdot.org [slashdot.org] , a popular "news for trolls" website

Third, you need to join the official GNAA irc channel #GNAA on EFNet, and apply for membership.
Talk to one of the ops or any of the other members in the channel to sign up today!

If you are having trouble locating #GNAA, the official GAY NIGGER ASSOCIATION OF AMERICA irc channel, you might be on a wrong irc network. The correct network is EFNet, and you can connect to irc.secsup.org or irc.isprime.com as one of the EFNet servers.
If you do not have an IRC client handy, you are free to use the GNAA Java IRC client by clicking here [nero-online.org] .

If you have mod points and would like to support GNAA, please moderate this post up.

This post brought to you by Penisbird [nero-online.org] , a proud member of the GNAA

G_____________________________________naann_______ ________G
N_____________________________nnnaa__nanaaa_______ ________A
A____________________aanana__nannaa_nna_an________ ________Y
A_____________annna_nnnnnan_aan_aa__na__aa________ ________*
G____________nnaana_nnn__nn_aa__nn__na_anaann_MERI CA______N
N___________ana__nn_an___an_aa_anaaannnanaa_______ ________I
A___________aa__ana_nn___nn_nnnnaa___ana__________ ________G
A__________nna__an__na___nn__nnn___SSOCIATION_of__ ________G
G__________ana_naa__an___nnn______________________ ________E
N__________ananan___nn___aan_IGGER________________ ________R
A__________nnna____naa____________________________ ________S
A________nnaa_____anan____________________________ ________*
G________anaannana________________________________ ________A
N________ananaannn_AY_____________________________ ________S
A________ana____nn_________IRC-EFNET-#GNAA________ ________S
A_______nn_____na_________________________________ ________O
*_______aaaan_____________________________________ ________C
um, dolor. Nunc nec nisl. Phasellus blandit tempor augue. Donec arcu orci, adipiscing ac, interdum a, tempus nec, enim. Phasellus placerat iaculis orci. Cras sit amet quam. Sed enim quam, porta quis, aliquet quis, hendrerit ut, sem. Etiam felis tellus, suscipit et, consequat quis, pharetra sit amet, nisl. Aenean arcu massa, lacinia in, dictum eu, pulvinar ac, orci. Mauris at diam tempor ante ullamcorper molestie. Ut dapibus eleifend ipsum. Nam dignissim.

Re:GNAA! (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6712856)

Are you GAY ?
Are you a NIGGER ?
Are you a GAY NIGGER ?

If you posted any of the above questions, then fuck off and go to hell!

pythons future (-1, Troll)

dirtydiaper (697253) | more than 11 years ago | (#6712845)

I belive that python will take over for everyone who uses perl and thus become very strong in the open source market

Python on the Zaurus (1)

SHEENmaster (581283) | more than 11 years ago | (#6712862)

For those with OpenZaurus, install the python packages and learn it between meetings/classes/etc.

Re:Python on the Zaurus (2, Informative)

uberslack (5984) | more than 11 years ago | (#6713126)

Python is available for the regular Zuarus OS as well [riverbankcomputing.co.uk] .

Interesting... (0)

dysprosia (661648) | more than 11 years ago | (#6712868)

Interesting that smarts still counts for something, and that they're not just employing talented developers just for the producs they have created. Hope the trend continues.

Can anyone (3, Interesting)

Timesprout (579035) | more than 11 years ago | (#6712876)

explain what the major advantages of using Python are. I have only ever looked at it very briefly and even more briefly at Jython. From this very limited experience I cant really think of a compelling reason to use Python over some of the more mainstream languages, other than perhaps as a scripting type glue.

The MAJOR advantage is simplicity (4, Informative)

TuringTest (533084) | more than 11 years ago | (#6712921)

The second name of Python is "Executable Pseudocode".

Sure you can do the same things in other languages, at the end all general languages are Turing Machine equivalent. The difference is that Python is EASY to read [pm.org] (according to Master Yoda). It is bottom-up designed to be.

So it is good not only for scripting, but too for prototyping and for everything which needs to be flexible and not too much efficiency-critical. The logic of some videogames is encoded in Python, you know.

Re:The MAJOR advantage is simplicity (2, Funny)

Malcontent (40834) | more than 11 years ago | (#6713562)

You should say "easier to read then perl" because I don't think it's easier to read then ruby or php or even java. But then again just about anything is easier to read then perl. Perl code looks like it's cursing at you.

Re:Can anyone (3, Interesting)

pioneer (71789) | more than 11 years ago | (#6712942)

explain what the major advantages of using Python are. I have only ever looked at it very briefly and even more briefly at Jython. From this very limited experience I cant really think of a compelling reason to use Python over some of the more mainstream languages, other than perhaps as a scripting type glue.

If you are using Java then python is a step up because it offers first class functions and some other incredibly power constructs.

Unfortunately, although Python's effort is applaudable, it really is only a first class imperative language that has added some features of Lisp [paulgraham.com] .

If you are going to chose a new language to learn, then you should be learning Lisp. Most people avoid it because it looks complicated but, believe me, after using in for many years, Lisp is gorgeous.

I highly suggest you check out Paul Graham's website [paulgraham.com] and read his articles about Lisp before you waste anytime learning any other language.

All languages nowadays are slowly adding individual pieces of Lisp functionality. Why not just use Lisp (no reason to wait a decade for all the "popular" languages to finally come fill circle and become Lisp dialects).

Re:Can anyone (4, Funny)

einstein (10761) | more than 11 years ago | (#6712988)

Lisp programmers scare me. Someone mentions a feature that lisp has had for a few years, and invariable some lisp guy comments on how it's the future! switch now! Look at all the babes I attract with my Lisp skillz!

Re:Can anyone (0)

pioneer (71789) | more than 11 years ago | (#6713066)

Lisp programmers scare me. Someone mentions a feature that lisp has had for a few years, and invariable some lisp guy comments on how it's the future! switch now! Look at all the babes I attract with my Lisp skillz!

its true. we do attract lots of women.

Re:Can anyone (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6713365)

That's because you're standing behind the cash taking their orders for lunch.

Re:Can anyone (3, Insightful)

Malcontent (40834) | more than 11 years ago | (#6713660)

By the same token it does bother me that people are constantly re-inventing things that have been around for a long time.

I look around and it seems to me like most "new" things in CS have been around for 20 years. Why is everybody so intent on rewriting smalltalk and lisp? Does it seem strange to you that every language eventually starts looking like smalltalk and lisp?

Don't fully agree. (-1, Flamebait)

TuringTest (533084) | more than 11 years ago | (#6713000)

Show me one benefit of Lisp over Oz [ucl.ac.be] . And there are the drawbacks of Lisp, too. It has a really steep learning curve, and there are no good free (as in software) development environments, as far as I know. (IANALisp Expert, though). Just you, Emacs and the Lisp interpreter.

Lisp is as powerful as mathematics, but there is more to a language than its semantics. It has to be accessible, too.

Re:Don't fully agree. (0, Offtopic)

GnuVince (623231) | more than 11 years ago | (#6713076)

Well, for one Lisp's syntax is FAR easier than Oz's. Oz borrows a lot of syntax from ML which possibly has one of the most barroque syntax I've ever seen. Next, macros are extremely nice, more people know Lisp and Scheme than people know Oz, etc. You are right that there is no good free cross-platform implementation of Common Lisp. Scheme has PLT Scheme which runs on all three major platforms (*nix, Windows, Mac). Paul Graham has an upcoming dialect of Lisp coming called Arc, which I'm sure he'll port to these three platforms. Oh, and Emacs+ilisp is by far one of the best development environment I've used (maybe only second to Squeak)

Re:Don't fully agree. (1, Informative)

Anonymous Coward | more than 11 years ago | (#6713551)

> You are right that there is no good free
> cross-platform implementation of Common Lisp

GNU CLISP [cons.org] Unix, DOS, OS/2, Windows, Amiga, Acorn, Mac platforms.

From the site:


CLISP includes an interpreter, a compiler, almost all of CLOS, a foreign language interface and a socket interface. An X11 interface is available through CLX and Garnet. Command line editing is provided by readline.

CLISP runs on microcomputers (OS/2, Windows 95/98/2000/NT, Amiga 500-4000, Acorn RISC PC) as well as on Unix workstations (GNU/Linux, BSD, SVR4, Sun4, DEC Alpha OSF, HP-UX, NeXTstep, SGI, AIX, Sun3 and others) and needs only 2 MB of RAM.

CLISP is Free Software and may be distributed under the terms of GNU GPL. You may distribute commercial applications compiled with CLISP, see file COPYRIGHT in the CLISP distribution.

The user interface comes in German, English, French, Spanish, Dutch and Russian, and can be changed at run time.

Unfortunately... Re:Don't fully agree. (0, Offtopic)

pioneer (71789) | more than 11 years ago | (#6713112)

[Lisp] has a really steep learning curve, and there are no good free (as in software) development environments, as far as I know. (IANALisp Expert, though). Just you, Emacs and the Lisp interpreter.

Lisp is as powerful as mathematics, but there is more to a language than its semantics. It has to be accessible, too.


First off, Lisp isn't hard. It's like othelllo. Takes a day to learn and a lifetime to master. (gag)

My brief look at Oz seems to illustrate some similarities, but I'd have to check it out more to understand. Both have a core language set that everything else is reduced to. In lisp these are cons, car, cdr, cond, quote, apply, eval.

I'll take a look at Oz but what makes Lisp very powerful is that it has no syntax. The text is literally the parse tree which means that macros are very easy to define and use. The entire idea of programming using Lisp is to develop a language on top of Lisp. If you are writing an image editor you define an embedded language in Lisp for image manipulation. An because things can be compiled at runtime and macros can hide computation at compile time you can get good performance as well.

There is also a misconception that a language needs to explicit in what is efficient and inefficient. What is misunderstood is that it is very often not obvious where the bottlenecks are. The way to make a Lisp program fast is the same way you make a C program fast. 1) Profile 2) Find hot spots 3) Optimize 4) Rinse and repeat.

Also, concerning free development environment check out Dr. Scheme [drscheme.org] which is a nice UI and comes with a bunch of packages. I was working on some encryption problems and had a graphical histogram implemented in about 2 minutes. Try doing that in Java.

Lisp isn't designed for the average programmer. The best programmers use Lisp (if they are allowed to by their bosses) because it is the most powerful.

Re:Unfortunately... Re:Don't fully agree. (1)

TuringTest (533084) | more than 11 years ago | (#6713333)

so, the whole point is that Lisp is not a programming language but a kind of language definition language? Just a raw parse tree, and Build Your Own Syntax. See why I say it's difficult? You haven't ANYTHING done for you in advance.

I never got to understand why Lisp programmers think of the macro system as the primary and more exclusive power of the language, now I start to see it. But how do to learn to create those domain-specific languages? It is so far away from conventional academic lectures, that one needs to forget almost everything to start thinking that way!

And I'm not convinced that that syntaxlessness is indispensable. If the matter is problem solving, just learn problem solving, not Lisp language. I would prefer to have some syntactic sugar which does the code more readable than those ((if()(and no then)(nor else keywords))s), even if that makes a little bit more difficult the "new language definition" (and I don't think it would: macro definition is famous to be a tricky bussiness on its own).

Re:Unfortunately... Re:Don't fully agree. (0)

Anonymous Coward | more than 11 years ago | (#6713546)

First off, Lisp isn't hard. It's like othelllo. Takes a day to learn and a lifetime to master. (gag)

And as the first language in a university level CS program it successfully made me change my major subject from CS to Physics.

There is just something fundamentally disturbing in recursion. It's just not healthy.

Well, (1)

TuringTest (533084) | more than 11 years ago | (#6713571)

then, no mathematical mind is healthy! 8-) You did well in change, if you have a sequential mind.

Or you can meet Lisp's cousin, Dylan. (1)

oodl (398345) | more than 11 years ago | (#6713017)

Dylan is a language very similar to Scheme, but with an infix syntax and a module system.

Here's some sample code:

define method quicksort (data :: ) => sorted-data :: ;
if (empty?(data) | empty?(tail(data)))
data;
else
collect(head(data), tail(data), #(), #());
end if;
end method quicksort;

I know Paul Graham is not a fan of Dylan because Dylan's infix syntax has complicated the macro system. But nonetheless, Dylan still has a powerful macro system.

Also in Dylan, the compiler is not part of the run-time, as it is in Lisp, which makes it not as powerful as Lisp in that sense.

But still the Fourth Annual ICFP Programming Contest judges proclaimed that Dylan is a fine programming tool for many applications. :-)

Re:Can anyone (1)

maharg (182366) | more than 11 years ago | (#6712949)

I guess the advantages are really quite subjective i.e. it depends what languages you are coming from, and also depends on what you need to get done.

I came to Python from Perl, dealing mainly with text manipulation and glue-type applications, in which both Perl and Python are very adept languages. For me, Python was a breath of fresh air, - no more curly braces, indentation became an integral part of the code, rather than an annoyance (when it went wrong), and mainly, Python is OO by design, whereas in Perl I always felt that objects were bolted on as an afterthought.

YMMV.

Re:Can anyone (1)

David Eppstein (306415) | more than 11 years ago | (#6712952)

Python has a large convenient featureful library, but so do many other languages. The biggest advantage it has for me is that Python looks almost exactly like pseudocode, without the overhead (braces, variable type declarations, etc) other languages make you go through. The effect is that coding is much easier and the results are much more readable when you come back to your code later and want to understand what you did.

Re:Can anyone (1, Informative)

Anonymous Coward | more than 11 years ago | (#6712955)

its like perl, but coherent.

its fast for parsing, yes perl is faster. but for most people 75,000 lines of text in 3.01 seconds is just as good as 90,000 lines, considering the python code is easy to deal with.

Re:Can anyone (4, Interesting)

Telex4 (265980) | more than 11 years ago | (#6712956)

Compared to the other "scripting" languages I know (Perl, Bash, PHP, so fairly limited), Python has a few major differences:

o Python uses indentation to denote code blocks, rather than curly brackets {} or other methods. This, along with a few other layout rules, makes Python code very strictly laid out. This makes it both easy to read and code, and you really don't miss being able to use your own crazy layouts (ahhh, perl ;)

o Python is totally object orientated, and very intelligently designed in this department. Whereas in Perl (5) you have to jump through hoops to create objects, especially OO modules, in Python it's as easy as assigning a variable a new value.

o Python has quite a few very useful built in object types, including strings, ints, floats, lists, tuples, dictionaries, functions, classes, and more. This makes things easy if you don't want to make complex matrices. It is also easy to make more complicated types by embedding C...

o It is really easy to embed C/C++ code in Python, and vice versa, so where Python suffers on performance you can boost it with C/C++, or use a Python tool appropriately called "boost"

Generally, Python is very handy for anything from one-time dirty scripts to full applications (there are some good GUI toolkit ports about.. PyGtk, PyQt, PyKDE, wxWindows, etc), and is also very handy when developing prototypes.

But what really makes me like Python (as I'm not a language nerd by any measure) is that it is just *easy* and *fast* to code in... it doesn't get in your way.

(Pimping out...)

Re:Can anyone (2, Informative)

pioneer (71789) | more than 11 years ago | (#6713133)

Concerning advantages of Phython

Python is totally object orientated, and very intelligently designed in this department. Whereas in Perl (5) you have to jump through hoops to create objects, especially OO modules, in Python it's as easy as assigning a variable a new value.

Alright, lets set something straight here. The world is on a huge object oriented high. As has been said about strict types, object oriented programming is a hammer and everything all of a sudden looks like a nail.

Any language that is *only* objected oriented is forcing you to look at everything as nails.

Try Lisp [paulgraham.com] , you'll feel much better.

(Insert language here) is just a watered down Lisp.

Kent M Pitman? (0)

Anonymous Coward | more than 11 years ago | (#6713156)

Is that you?

Lisp vs Python vs? (0)

Anonymous Coward | more than 11 years ago | (#6713174)

vs sex with a mare ?

Re:Can anyone (0)

Anonymous Coward | more than 11 years ago | (#6713209)

Most zealous zealot?
A lisp zealot.

+5 Insightful (1)

TuringTest (533084) | more than 11 years ago | (#6713353)

;-) And I would like to like Lispness, but just don't get it.

Re:Can anyone (2, Informative)

tordia (45075) | more than 11 years ago | (#6713409)

Any language that is *only* objected oriented is forcing you to look at everything as nails.

From the Learning Python book [oreilly.com] (see sec. 1.1.1.1):

Of equal significance, OOP is an option in Python; you can go far without having to become an object guru all at once.

So, while Python supports object oriented programming, it doesn't force you to use it.

Re:Can anyone (1)

Waffle Iron (339739) | more than 11 years ago | (#6713442)

Any language that is *only* objected oriented is forcing you to look at everything as nails.

You don't have to use Python's object oriented features. For example, you can find all of the 22-character long English words with only the tiniest sprinkling of OO:

>>>for w in filter(lambda x: len(x) == 22, file('/usr/share/dict/words').readlines()): print w

electroencephalograph
Mediterraneanizations

OTOH, people high on OO could write:

>>> print 22. __add__(3)

25

Python gives you both hammers and vice grips.

Re:Can anyone (2, Informative)

Dan Ost (415913) | more than 11 years ago | (#6713554)

OOP is a part of Python the way that OOP is part of C++.
It's available if you want to use it, but you're not forced to
use it when it's not appropriate.

correction (0)

Anonymous Coward | more than 11 years ago | (#6713450)

Python isn't "totally" object oriented.

Re:Can anyone (1)

Malcontent (40834) | more than 11 years ago | (#6713576)

"Python uses indentation to denote code blocks, rather than curly brackets {} or other methods."

Personally I think this is a flaw and not a feature. One of my pet peeves is scrolling to the end of some function and seeing this.
}
}
}

With python you don't even have that.

I like the php alternative best.

endif;
endwhile;
endforeach;
}

Re:Can anyone (5, Informative)

merlin262 (677269) | more than 11 years ago | (#6712977)

Note: my knowledge of python is somewhat limited as I just started using it, so if there are errors here, I apologize.

1. Python as a scripting language has several features seen in Objective C(and other similar languages) not found in C++. Class members can be detected and bound at runtime, further it's possible to search a classes members for information.

2. Pydoc and documentation strings. Python has built in support for documentation strings, and a great utility for automatically generating documentation. Documentation is actually a part of the programming language, and not an after-market add-on.

3. Dictionary objects, tuples, lists - are all part of the basic language. Dictionary objects allow interesting hash tables to be created without much effort at all. This feature is seen in Perl.

4. Maybe a miss feature, but enforced indentation creates much easier to read code.

5a. The shelf object. This essentially allows any object to have it's runtime information stored in an easy and effecient matter. It can then be reloaded after a run.

5b. The pickle object again allows objects to easily be stored in files.

6. Python is _EXTREMELY_ easy to extend using the Python C API.

7. Python includes functional programming aspects such as mapping and lambda forms.

8. Python includes an extremely complete library that does just about everything one would desire to be able to do. Using the python runtime library allows your code to be easily portable without the headaches involved in C/C++ porting.

9. Using psyco, it's possible to have Python code JIT on i386 processors. This gives a significant performace boost.

10. A development community and support community second to none.

There are other aspects that I haven't touched on here, but these are the major things I've found helpful so far.

Re:Can anyone (5, Interesting)

JanneM (7445) | more than 11 years ago | (#6712990)

Depends on what you mean.

Python, Perl and Ruby are all very good interpreted, flexible, rapid-prototyping languages. They all have their relative strengths and weaknesses, but all are good enough that if you are choosing between them, it boils down pretty much to your own preferences and what coworkers and other people around you use (or on what animal you prefer on the cover of your reference literature:) ).

If you mean this class of languages as opposed to C, C++, Java and so on, well, it becomes a matter of what you want to accomplish. The great benefits of these interpreted languages are that they make development very fast, compared to the more traditional languages (yes, Java is interpreted, but it is still designed as a traditional language). You spend more time solving your task and less time managing the mechanics of development. Also, they really make use of the benefits of being interpreted with things like closures, dynamic code evaluation and so on. And they typically have very complete, transparent access to the surrounding system - why spend two days writing some hairy functionality when you can trivially filter your data through an external application that already does the whole job for you? Do not underestimate "scripting type glue".

They do make a pretty good fit running large systems - the Swedish pension management system is all written in Perl, for instance, and Zope is written in Python. They are also quite efficient; they are on the whole as fast as a Java implementation, and occasionally (when the task plays to the specific language's strengths), quite a bit faster.

I typically use C/C++ and Perl for development, and every time I've been using Perl for a while, I get bouts of frustration with traditional languages for the lack of such things as hash datatypes and inline regular expressions. But for some tasks, traditional languages are the way to go.

Re:Can anyone (4, Interesting)

ultrabot (200914) | more than 11 years ago | (#6713272)

I typically use C/C++ and Perl for development, and every time I've been using Perl for a while, I get bouts of frustration with traditional languages for the lack of such things as hash datatypes and inline regular expressions.

I'm a professional C++ programmer, and a devout pythonista. What I miss most in C++ are the easy-to-instantiate datatypes like tuples. It's so much easier to pass a relatively simple datatype as a tuple, as opposed to introducing a whole new class and even *gasp* a new file to do the trick.

For example I can trivially code a function that returns an array of (name, address) tuples, and I can easily manipulate such an array:

tuples = get_address_entries()
for name,address in tuples:
print name,"lives in",address

After doing Python for a while, one sees how much static typing gets in your way of doing things the "proper" way, and very often one tries to avoid doing the damn thing at all... resulting in a sub-optimal design. Python allows you to be all you can be :-)

Re:Can anyone (1)

HiThere (15173) | more than 11 years ago | (#6713383)

...The great benefits of these interpreted languages are that they make development very fast, compared to the more...

No. That's a big advantage, but the really great advantage is that you can modify things on the fly. You can add methods to a class, or to objects of a class, during the execution of the program. You can create code that you then execute, etc. (I know that you *can* do that in C... but just try it!)

Lisp has most of the advantages that I mentioned in the preceeding paragraph, but it is much more difficult to read, because it's grammar is essentially without structure. This at one point lead to it being called Lots of Irritationg Single Parenthesis. I'm told that you can get used to this, but I never put in enough time at it that I actually did. And I don't see the advantages against either Ruby or Python. But Lisp is compileable. So if you need that, then Lisp is a good choice.

Java is not interpreted (2, Informative)

Decaff (42676) | more than 11 years ago | (#6713658)

Java is almost never interpreted these days. Its loaded as virtual machine byte code, then dynamically profiles, optimized and run as high-performance native code in almost all situations. High quality VMs (such as those from IBM) can run many Java apps as fast as C/C++. Saying that perl/python and other scripting languages beat Java in terms of speed is simply typical Slashdot anti-java FUD.

Why I like Python (2, Insightful)

Anonymous Coward | more than 11 years ago | (#6713011)

I like Python because:

1) Indentation instead of bracing. Yes, I know some people hate it but for me it makes the structure so clear.

2) Object orientation. I did OO with C++. I actually understood it with Python.

3) The smoothest ever integration to low level languages like C. Gotta love it.

4) Easy to learn. Write ab initio code with C/Fortran and never-programmed-before people interface it with Python [fysik.dtu.dk] . Then, grind out those MSc and PhD theses...

Re:Can anyone (0)

Anonymous Coward | more than 11 years ago | (#6713466)

There really isn't any advantage to Python. It has a pretty decent library of modules, but PERL's CPAN beats it (and any other language's) in spades.

Python's syntax is somewhat cleaner than PERL's, but the whitespace indentation quickly becomes maddening. Besides, Pythons has all kinds of quirky function names and pseudo OOP stuff.

I really don't see any reason to use Python. Stick with PERL, PHP, etc. Or give Ruby a shot - it looks cleaner than Python.

All the trolls would like to say (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6712896)

Shove your tabs and spaces up your arse! Every programmer who tried to write more than "hello world" in pascal knows what we're talking about! No real language would force you to type languages like that. And Python Zealots with mod points, give us your worst, offtopic troll flamebait redundant overated what ever. Because WE don't care (we are AC's and we use proxies). The trolls around here are very talented in REAL languages such as C, perl, and c# See Shitstorm as an exmaple of troll programming! [sf.net] . Your toy language should go with the other languages like java, basic, pascal and php which makes dumb people think their leet.

replacing python with c# would get you 5, funny! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6713149)

Yes it will, and next time c# article comes up I will prove it. Us trolls know all the flaws in the Mod eration Psycology at slashdoo6t. I think all of us trolls should get together, exploit all the flaws to get 50 karma on about 100 accounts, and then shitstorm the WORST TROLLS EVER at +2! CMDRtaco would be creaming in his pants.

YAPLWDN (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6712902)

from the Yet Another Programming Language We Don't Need department

but re-inventing the weheel is what we do best right ? thats why we have 500mb word processors that require more processing power than a 1990's supercomputer to run

Slowing down already - here's the article (0)

Anonymous Coward | more than 11 years ago | (#6712918)

Guido van Rossum Speaks
by Steve Holden
08/14/2003

Guido van Rossum is the well-known creator of the Python programming language. During his address at OSCON 2003's States of the Unions event, he announced that he'd soon be leaving PythonLabs to work for a California startup. Guido graciously agreed to an interview with Steve Holden on the move, recent developments, and Python in general.

O'Reilly Network: Can you explain why you're leaving PythonLabs and where you're going?

Guido van Rossum: Moving to California has always been on my list of things to try eventually. When Dan Farmer approached me in February to join his new software company, where he anticipated there would be lots of need for language design skills, my initial thoughts were that such a move would be too disruptive to my family.

Dan kept pushing, and when he had his venture capital lined up he asked me out to California for an interview. My plan for that interview was to find out what was wrong with the company or the business plan and to use that to maintain my original decision. But, try as I might, I couldn't find anything wrong!

As the weekend progressed I got more enthusiastic, both about the project and about working with Dan.

ORN: So it wasn't so much an offer you couldn't refuse, rather an inability to find anything to justify a refusal?

GvR: The offer was a good one, and I certainly couldn't complain, but mostly I was surprised at my own enthusiasm for this new project.

ORN: What will your relationship with be with PythonLabs and with the Python Software Foundation in the future?

GvR: In terms of personal relationships nothing much will change. I really like the PythonLabs guys, and most of us have worked together for eight years since the CNRI days. It was difficult to move without being able to make them all an offer, but for various reasons none of them would have wanted to make the move.

I will remain the head of the PSF. Board meetings will be a little different as I'll be using IRC rather than being present in person. As you proved during the PyCon DC 2003 planning process, that's fine as long as people can make the time for a fat cock up their ass, and I'll certainly make the time for PSF board meetings.

ORN: This is the third time in as many years you've changed employers?

GvR: That's right.

ORN: Does this indicate some kind of instability in the employment market?

GvR: I think if the economy had been better I wouldn't have left Zope, and Zope might have been more fun. Really, though, it's more of a reflection on the opportunities that have come to me personally.

ORN: Serious Python users might be concerned about your continued involvement in the development of the language. What will the move mean for the future of Python?

GvR: First, it's written into my contract that the development work I do on Python will not belong to Elemental Security. That will continue to be owned by he Python Software Foundation.

Also I will have time carved out in my regular work week to work on Python. So I'm pretty hopeful that once the dust of the move has settled, say in mid-August or so, I will have enough time for Python.

It's not my dream Python job, which would basically be to be paid to work with a team about the size of PythonLabs to work on the development of Python full-time. That's not a realistic possibility at the moment.

ORN: What will you miss most about Virginia?

GvR: The friends I've made there. I've lived there for eight years, and during that time I've made some really great friends.

ORN: What East coast ties do you intend to retain?

All of them. I plan to stay in touch with all of those friends, and they're all going to be welcome to stay in our house in California as long as there's space--we haven't found a place to live yet, and the Bay Area's even more expensive than the DC Metro area!

ORN: You are a family man, with a life besides IT. How much of your time do you spend working with and developing Python?

GvR: At Zope Corporation, almost all my time was spent developing the Zope web server environment, but of course that was using Python. I expect that I'll be using Python a lot at Elemental too, but I'm not sure how long the working week will be.

ORN: Do you see any way you will ever be able to devote 100% of your professional life to developing Python? Even if you could, would you want to?

GvR: Well, I've already said that would be my ideal Python job. It depends on a lot of things. Maybe the Python Software Foundation will find a rich sponsor or perhaps a large corporation like IBM or Microsoft will decide that Python is important to their strategic interests. But there's no immediate prospect of that.

ORN: Will you be looking for a new dance group after you move?

GvR: Absolutely. The Bay area actually has a lot of great contact improv communities. I visited there six or seven years ago, so I already know a few people and I'm looking forward to renewing those contacts.

Bends for less than a $ (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6712928)

He doesn't answer really. Is he gonna write closed source code and throw away all the OSS philosophy or not. Better he stops bullshitting and try to be the 'good member of the OSS community'. Yet another unimportant buy-out. If he's being hired to code OSS, then that's another win for the CS community. Because, commercialy OSS vendors are fighting each other over improving an OSS product (Redhat, SuSe, etc.) and that's how they get weakened and kneed to the fuck by the CS guys.

From the interview (3, Funny)

Anonymous Coward | more than 11 years ago | (#6712939)

Interviewer: Why did you make whitespace significant in Python?
Guido: I smoked a lot of crack that day.

Re:From the interview (0)

Anonymous Coward | more than 11 years ago | (#6713044)

Spoken like a proper White-Space Cowboy.

Python vs. the others (3, Interesting)

henriksh (683138) | more than 11 years ago | (#6712946)

I think Python has a very bright future. For many purposes, it obsoletes Java. Java is more widespread than Python now, but it's proprietary and suffers from a historically slow GUI.

Many people use Python for tasks they used to do in Perl, but I don't see Python replacing Perl. They serve different purposes, for the most part.

Ruby is also an interesting language, although I don't personally know much about it, except that it aims to be truly OO. Again, slightly different purposes, but I don't think Ruby will ever be very widespread.

Re:Python vs. the others (1)

Dan Ost (415913) | more than 11 years ago | (#6713599)

Many people use Python for tasks they used to do in Perl, but I don't see Python replacing Perl. They serve different purposes, for the most part.

Could you please explain how PERL and Python serve different purposes?

I'm curious because I use Python for exactly the kind of stuff that I used
to use PERL for. The whole reason I found Python was because I was looking
for a substitute for PERL. After having used Python for some time, I've
discovered that certain things are easier in Python than PERL, and vice
versa, but nothing significant enough that I can think of a project where
one would be appropriate for the job but not the other.

Welcome to our Overlords (1, Funny)

Anonymous Coward | more than 11 years ago | (#6712947)

I, for one, welcome our new Python overlords and will gadly submit to their constrictions.

Re:Welcome to our Overlords (1)

AntiOrganic (650691) | more than 11 years ago | (#6712992)

Don't look at me. I voted for Kang.

Re:Welcome to our Overlords (0)

Anonymous Coward | more than 11 years ago | (#6713010)

Kang won, Kodos was the alternative. You fool.

Re:Welcome to our Overlords (1)

AntiOrganic (650691) | more than 11 years ago | (#6713024)

Oops.

Is Python still lacking a macro system? (3, Interesting)

oodl (398345) | more than 11 years ago | (#6712958)

Any real geek knows that a language that isn't self-extensible through its macro system (ala Lisp, Scheme, Dylan) is just plane lame. :-)

I haven't been following python for a long time, though I've used it for a few projects. I know a lot of Lisp-like features such as lambda, eval, etc. have been added to it. (Java's adding a *lot* of features that Dylan has had since its inception, such as keyword arguments... but adding those features to Java makes the language even more ugly.) But what about a real macro system (and I don't mean a C style macro system)? I assume that it would be difficult to incorporate into Python because the Python syntax is not as consistent as the Lisp-family languages.

I assume that Python is still not efficiently compilable either, right? I think Guido was discussing a sealing mechanism for Python similar to Dylan's. Gywdion Dylan can produce code that's as fast as code written in C... and there's still many more optimizations that can be implemented into the compiler.

Re:Is Python still lacking a macro system? (4, Interesting)

fredrikj (629833) | more than 11 years ago | (#6713035)

Any real geek knows that a language that isn't self-extensible through its macro system (ala Lisp, Scheme, Dylan) is just plane lame. :-)

You don't need macros since Python is dynamically typed and even functions are first-class objects. At least I know I never missed the C preprocessor after moving to Python :P

I assume that Python is still not efficiently compilable either, right?

Not quite. There is however a dynamic compiler called Psyco [sourceforge.net] , which works by creating static versions of functions at run-time to reduce type-checking.

My own experience is that Psyco makes Python code about 400% faster in real applications. Still an order of magnitude worse than C, but comparable to or better than other languages when it comes to tasks that Python used to do significantly slower.

Re:Is Python still lacking a macro system? (2, Informative)

oodl (398345) | more than 11 years ago | (#6713136)

> You don't need macros since Python is dynamically
> typed and even functions are first-class objects.

You don't even know what you are missing. :-)

Lisp and Dylan are dynamically typed with functions as first class objects. However those features are orthogonal to a true macro system... They're not related. A true macro system allows a capable programmer to extend the language itself. Need a new control struct to lock a resource and then automatically unlock it at the end of the block of code? Well you can just write one yourself if you have real macros.

Re:Is Python still lacking a macro system? (1)

fredrikj (629833) | more than 11 years ago | (#6713152)

Thinking of it, you could do that as well by writing a function that takes a string of Python code as input, does magic, and then passes it on to the interpreter for regular evaluation.

Not necessarily a good solution, but it might work.

Not necessarily a bad one. (1)

TuringTest (533084) | more than 11 years ago | (#6713388)

You could implement that as a top-level function or even as a class method, and it would just work. And it would be easy to understand and program (something which, I believe, Lisp macros aren't).

The only difference I think it would have is that it would run at execution time, not compile time. But I'm sure that a not too far away future version of Python will do that... ;-)

Re:Is Python still lacking a macro system? (4, Insightful)

Ian Bicking (980) | more than 11 years ago | (#6713345)

No, Python doesn't and won't have a macro system. The Lisp features like lambda and map are kind of in disrepute, at least from Guido's perspective -- see comp.lang.python for many opinions on the matter. Since Guido is Benevolent Dictator For Life, his opinion holds a great deal of sway. (BTW, map has been replaced with list comprehension, taken from Haskell, so it's not like functional programming as a whole is being rejected)

Macros would indeed be more difficult to implement in Python, because data and code are not as interchangable as in Lisp (e.g., (car 1 2) being code, '(car 1 2) being data). Macro-like manipulations of Python code would be rather difficult. But there has been discussions about ways of achieving the same flexibility without quite so much generality.

In a related example, some people feel that code blocks, ala Ruby or Smalltalk, are the right way to do control structures. Indeed they are very general. Python instead has developed notions of iteration, generation, and the use of first-class functions, and together they are all quite general as well -- you can do what you need to do. While more eclectic than anonymous functions/lambdas/closures, they are arguably more transparent -- you don't know what a function might do with a code block, and it can greatly effect surrounding code.

So it is with macros -- they are extremely general, and can do unexpected and magic things, (which is not in fitting with core Python principals). As Python grows alternatives, more things need to be built into the languages, but the result is a set of predictable and well-known idioms. Python is a full language, not the basis for other languages, as Lisp can become.

As far as performance, there are a number of things like Psyco, Pyrex, Numeric, and Weave/SciPy, which can handle performance problems (noting that in most application performance is not a problem). The result is again somewhat eclectic, but pragmatic. There's a wide variety of ways to optimize a Python program, many of which are just normal programming optimization (caching, making a process persistent, lazy loading, etc), as well as Python modules written in C or other compiled languages (potentially aided by things like SWIG, Pyrex, or ctypes)

Re:Is Python still lacking a macro system? (0)

Anonymous Coward | more than 11 years ago | (#6713410)

Ok, I'll bite. I hear so many clames like language X can produce code that's as fast as code written in C.

Can anyone here actually point me to some hard facts that substantiate this claim for any language that's significantly higher-level than C?

And, no, I don't want to see example code that spends 98% of its time in some library functions. I want to see code written natively in a high level language that compiles to something as fast as C.

Anyone?

Re:Is Python still lacking a macro system? (0)

Anonymous Coward | more than 11 years ago | (#6713476)

macro system

No.

No, no, no, no!

Why Login? (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6712979)

When you can be an Anonymous Coward?

New processors (0)

Amsterdam Vallon (639622) | more than 11 years ago | (#6712985)

For off, I really enjoy using Python. I find that it's really powerful, but still easy enough to use for those quick coding tasks that I need to write as a Solaris administrator.

I'm wondering this, however -- how will Python be affected in the 64-bit processor realm? Will it need to be modified significantly?

Re:New processors (2, Informative)

Filip Maurits (670377) | more than 11 years ago | (#6713603)

Python already works on 64-bit systems.

Favorite quote (2, Interesting)

henriksh (683138) | more than 11 years ago | (#6712996)

Favorite quote from the interview:
ORN: I sometimes think it's a good job nobody has patented breathing; otherwise we'd all owe them money.


GvR: I guess there was prior art among the reptiles [smiles].
Heh.

This is mine (2, Interesting)

TuringTest (533084) | more than 11 years ago | (#6713083)

ORN: This resonates with your long-held interests in "computer programming for everyone". Don't you think that perhaps "everyone" is too broad, and that there aren't at least some people who will never be capable programming a computer?

GvR: That's a deep philosophical question. I'm optimistic about that in theory.

[...]

Given that I believe everybody can learn to read and write, given the right education and circumstances--obviously if your parents have no money and you're sent to work when you're seven years old, you're not in a very good situation unless you're exceptionally smart--I believe that the same thing would be possible for programming and thinking logically to some extent.

Ive heard rumours (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6712998)

That the next version of python will no longer need white space and tabs? Is this true, ifitisthenIwoulduseitinaflash.

Python is great. (4, Informative)

metatruk (315048) | more than 11 years ago | (#6713001)

As a CS major, the intro CS classes at my school recently switched from teaching Java to Python. The class is designed to teach the fundamentals of computer science and computer pogramming. Python is extremely easy to learn, and quite powerful. We used the free text How to Think Like a Computer Scientist [ibiblio.org] as the course textbook. I recommend this text to anyone interested in learning Python as a first programming language.

What's there to discuss. (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6713014)

That was just some guy chatting vaguely about his friends, dancing and nothing in particular. What the fuck man is slashdot a teen mag for homos that dream of having sex with Linus and Guido and ESR?

ORGY (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6713073)

> .. having sex with Linus and Guido and ESR?
Yeah baby yeah that is .. free group sex !!

YAPLWDN (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6713031)


from the Yet Another Programming Language We Don't Need department

but re-inventing the wheel is what we programmers do best right ? thats why we have 500mb word processors and 30mb text editors that require more processing power than a 1990's supercomputer to run.

My experiences (3, Interesting)

Gorny (622040) | more than 11 years ago | (#6713037)

Very interesting interview. I've had many conversations with experienced programmers and with people who'd barely could program a Hello World in Python. After discussions we allways came out with Python to be the best language to learn to the newbies. It's nice, clean, dynamic-typed, which I find an important thing for someone new to programming, cause it lets you focus on the WHOLE thing and not on minor details (eg. details).

I've been a Python user myself and I find it quite remarkable how it has evolved since its 1.5.2 to the pointer where they are now 2.3. More and more (interesting) software is being written for it. But evenly important is the code base of Python. It's C implementation is very clean written and very easy to use so one can write extension modules very fast.

f0rk (-1)

cmdr_shithead (527909) | more than 11 years ago | (#6713051)

b0p00rty!!!@

Used in scripting book (0, Informative)

Shriek (261178) | more than 11 years ago | (#6713077)

A Game Development Series book titled "Game Scripting Mastery" shows how to incorporate Python into a game scripting project. Yeah, I know this is a plug, but this book is a prime example of a known open source project being used as a teaching tool.

There is one caveat to this book though--it uses other scripting languages also, but it does provide a dedicated chapter for Python.

Game Scripting Mastery [premierpressbooks.com]

i got a snake for ya ;p (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6713085)

hey crackhead guido - Question!

wtf is up with the whitespace thing? .. you git.
i'm not sure i'm ready to adopt a language written
by a guy that couldn't write a parser.

choke on your own python

Fool! (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6713200)

There is nothing Perl cannot do! Nothing!!

Re:Fool! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6713339)

This it what Perl did to me: oooOoooOoooOoooOoooOooo [tinyurl.com]

Why python rules (2, Informative)

joib (70841) | more than 11 years ago | (#6713253)

There's a fairly detailed interview with bruce eckel ("famous" guy who has written c++ and java books and sits on the C++ standards committee) at artima [artima.com] on why he likes python (I linked to the last part of the article series, since that contains links to the previous ones).

Re:Why python rules (1)

Ricdude (4163) | more than 11 years ago | (#6713304)

Great interview. Choice quote:
I feel Python was designed for the person who is actually doing the programming, to maximize their productivity. And that just makes me feel warm and fuzzy all over. I feel nobody is going to be telling me, "Oh yeah, you have to jump through all these hoops for one reason or another." When you have the experience of really being able to be as productive as possible, then you start to get pissed off at other languages. You think, "Gee, I've been wasting my time with these other languages."
After I started getting used to python, that's about how I felt. A programming language that gets (almost) all the crap out of your way for you. My only marginal complaint is the requirement to specify "this." in front of member invocations within a member function. In practice, though, it's nice to have the visual reinforcement that this is truly a member function, and not a global scope function.

Both Python and Perl can do AI (-1, Offtopic)

Mentifex (187202) | more than 11 years ago | (#6713651)

The Python AI Weblog [sourceforge.net] coordinates the open-source coding of artificial intelligence (AI) in Python.

The Perl AI Weblog [sourceforge.net] has the main Alife program loop [sourceforge.net] in perl for geek coders to expand and enhance; we need a similar point of departure for Python.

AI has at long last been solved. [virtualentity.com] Would some Python programmer please post here as a freeware, open-source follow-up the Python code for the main Alife program loop of the AI Mind? Guido? Larry? Chief Software Architect? Anybody? T.I.A.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?