Ask Guido van Rossum 202
This week's interview is with Guido van Rossum, a man who, as they say, needs no introduction. (Not around here, at least.) To learn a bit more about him, check his personal page. You might want to ask him about Python 2.1, which was released today. One question per person, please. We'll send 10 of the highest-moderated ones to Guido about 24 hours after this post went up, and will run his answers as soon as he gets them back to us.
Re:Language Specification (Score:1)
Please mod this down. It's a fair question, but it's kind of uninformed. It certainly doesn't pertain specifically to Python.
(First of all, Python doesn't have ++ and -- operators.)
Even C goes through revisions. Some C programs that work on more recent C compilers won't work under older ones.
Any language newer than C is likely to have this problem, because computing (let's face it) is exploding. The number of standard libraries people want is always increasing. Java definitely has this problem. Just one call to a v1.3 API prevents your program from running in a v1.2 JRE. Likewise, Perl has new language features and libraries with each release. And so on.
Either you accept change, and you get all the benefits of progress; or you standardize on one Final version, and you get the benefit of language stability. Most people prefer for Python (and Perl; and Java; etc.) to keep improving. Go figure.
For your Debian box at home, I recommend upgrading to (at least) Python 2.0.
-- jason
Favourite Python sketch? (Score:5)
Alex Bischoff
---
Re:Python 3000 (Score:2)
Of course, there's also JPython, which has fantastic integration between Java and Python code, and resolves the threading thing... so if yer extending Java code, it's really a no-brainer (IMHO).
Re:Performance (Score:2)
There has been efforts, most notably the (currently inactive, I believe) static typing SIG [python.org], which would make it possible to make code that could be efficiently translated to machine code (also known as "compiling"). Static typing is by no means required to translate to machine code, but it would probably make that faster.
An interesting option might be something like Squeak [squeak.org] did, with a subset of the language that can be efficiently translated into C (and then compiled). This is something like what the static type SIG was aproaching -- not quite Python, but something that could run in the conventional CPython interpreter, wouldn't necessarily require any knowledge of C or assembly, but could run fast.
Of course, it is also possible to simply compile Python into system code just as it is (well, if someone wrote the compiler). There is nothing that makes Python inherently interpreted. The problem, however, would be in the efficiency of that code. A naive attempt to do this would probably be slower than CPython. OTOH, compilers for Scheme (which have many similar issues as Python) have produced very fast code (on par with C). In particular, Stalin is very fast (though there are others which are very fast as well) -- sometimes faster than C. Python doesn't have any of the huge flaws that languages like, say, Tcl have in this regard. Some operations are difficult in compiled environments -- like getattr or eval -- but they could still be possible, or they could be left out (since much code doesn't use them). OTOH, all the best Python code uses them.
Re:does Python need a CPAN? (Score:2)
distutils fulfills some of the functionality required for a Python CPAN. I think it has reached a state of relative maturity -- it may be asked to do more later, but it does what it needs to well right now.
There has also been some discussion and implementation of methods to describe and upload modules, which would probably be included in distutils or something related when they mature. I think at that point, along with a little infrastructure on the web, Python will have its own little CPAN. I know CPAN does more than this, but not all that much more, and it's something that should be grown into.
I couldn't find what I was really looking for on the subject, but maybe this thread [google.com] would be a starting place. There's more stuff elsewhere as well. This message [google.com] (from that thread) gives a nice overview of what's necessary for CPAN, I think. And I guess the whole discussion starts here [google.com].
Do you believe in Object Oriented Programming? (Score:2)
Almost every modern high-level application language today supports, and perhaps forces the Object Oriented Paradigm (OOP). Students are encouraged to define and use objects whenever possible. Python's standard library seems nothing but objects. Java is the same. Newer technologies, like SOAP/Microsoft .Net/blahh are the apex of this concept.
When I refer to the OOP, I mean the drive to decompose all programming into components, not necessarily the individual concept of having classes with methods and constructors and context-sensitive results, etc
Application developers accept the OOP as the only way and consider those who refuse it to be uncivilized coder barbarians. Clearly, one can only bring sanity to programming via the OOP. But what is it really bringing?
Most of the ideas that the OOP promotes are good programming practice anyway. That is absolutely not what I hate about the OOP.
In the very ideal cases, you can create a reusable object/module that other people can enjoy. This is very rare, though. UNIX is a good example of an easy to use interface that allows for massive code reuse. The Win32 API, while affording code reuse, has a miserable interface that makes Windows programming a chore.
Without going into a huge tirade; Modularity on that level is good. It's worth it to struggle with the interface, because the alternative is 100 man-years worth of functionality that you need to implement. On a much reduced level, trying to deal with the OOP just doesn't seem worth it.
The problem with the OOP is that it encourages all code to be tiny little modules with it's own unique domain, which helps complicate the code both visually and in terms of execution.
For every beautifully designed reusable component, you have a thousand more that are confined to a single project and do nothing but add complexity and visual noise to an otherwise simple idea.
The Objects Everywhere philosophy seems to promote complexity, rather than simplicity. The less code, the easier it is to understand, the better off it'll be. Python does achieve many of these goals, but I can't understand why the push to OO'ize it all.
Bad programmers can write bad code no matter what, and there's a vast army of bad programmers out there, but I'm not sure I've ever seen good code that employs the Objects Everywhere ideal.
Does this make sense? What are your thoughts?
He didn't. (Score:1)
Python is my favorite language, btw.
Re:Performance (Score:1)
Actually neither type inference or static typing is required for a compiled implementation of a language. Common Lisp requires neither, though you can declare type information for greater efficiency. Instead of variables having an intrinsic static type, values have a type, and variables can refer to any kind of value. Typically the type of the value is encoded in the reference to it. So you might use the top three bits of a word to encode the type and the lower 29 to be a pointer to the value. Explicit declared typing information does help the compiler though- you can sometimes double the performance of a compiled Common Lisp program by using type declarations.
Re:Indentation? (Score:2)
That's really the beautty of Python's whitespace blocks. Both the programmer and the parser are looking at the same cues for block nesting. I am sure you have debugged C code that was missing a brace (or worse that had one misplaced) but was still indented "correctly." Your mind thinks that everything is hunky dory because the code "looks" right. This doesn't happen very often if you are a skilled C coder (with an intelligent text editor), but it does happen. And it happens a lot with newbie programmers. I was teaching my little brother Perl at one point, and he had all sorts of trouble with braces. However, when we switched to Python there was no longer any need for him to think about which braces matched up. I didn't believe that Python's significant whitespace was a good idea either, at first, but I am a believer now.
I am not a vi user, so I can't help you there.
Incompability w/ GNU GPL: Any chance to resolve it (Score:1)
Python has licence, that is incompatible
with GNU GPL. I know that RMS himself has tried to
negotiate to rectify that problem. But what is
current situtation? Do you see any chance to resolve the problem? How likely is it, that the
problem will be resolved?
garbage collection and Python (Score:1)
I am a long time Python developer and fanatic. I have long enjoyed using python because of its Object Oriented nature and its faster and more open development process than its main competitors.
While I believe Python is a great language, there is one thing that I really am missing from Python. Currently, Python uses a very antiquated reference counting method that is less than ideal. Are there any plans to re-implement the garbage collection mechanism for Python in the future? May I suggest using the more advanced generational methods of garbage collection?
Good work so far, and thanks for all you have done!
Jonathan LaCour
Developer, Student
standard packages and organization (Score:1)
Guido,
Python is great, and I use it all the time, but I have an annoyance that I would love to see corrected.
Currently, Python's standard modules provide much functionality, but are a mish-mash of submitted modules that are largely uncategorized. Java provides a much better organization and naming scheme that could be carried over to Python.
For example, when importing the Python HTTP modules (httplib), currently, I do one of the following:
import httplib
from httplib import *
Java has a categorization structure imposed to make things a bit clearer. I would prefer if this same kind of structure was imposed in python. So, the above would then become something like one of the following:
import python.net.http
from python.net.http import *
I think that this could really enforce a cleaner organization and make it easier to identify where modules belong, and what they do, just by looking at their organizational location.
What do you think? =)
Jonathan LaCour
Developer, Student
Other languages (Score:2)
TheNewWazoo
Python directions (Score:1)
Thanks for a great language.
Re:Data Structures Library (Score:2)
Re:Garbage Collection (Score:2)
Stackless Python? (Score:4)
Re:Komodo (Score:2)
Chris Cothrun
Curator of Chaos
Re:Indentation? (Score:1)
Re:Ruby (Score:1)
I've already downloaded the source and compiled it on Cygwin. Flawless and easy install.
Re:Ruby (Score:1)
It wasn't from your particular link, however, but I thank you for your gracious help.
Ruby (Score:5)
Getting your company to use Python vs. ... (Score:1)
What are the five most compelling arguments that _you'd_ offer to a company doing web development, system administration, etc... to use Python over other interpreted languages such as Perl, TCL, etc...
Thanks!
Emacs, Python, and Tabs (Score:1)
Nah. Not if you have emacs configured correctly. Unfortunately I'm in Windows right now (long story) so I can't refer to my own Emacs settings. If you have a non-ancient version of Python mode, Emacs actually handles the Python whitespace rather well.
And make sure when you move a block horizontally you make the block the emacs region then hit (I think) Ctrl-C then < or >. It's also on the Python mode menu.
One good tip for maintaining sanity in a professional Python dev shop is to have EVERYONE USE TABS, always, all the time. One tab character == 1 Python indentation level. Then each person can set their tabs to 4 or 8 or whatever space for visual display, and everyones happy. Just make sure peoples editors are set to keep those as tabs and not convert back to spaces. If you set up Emacs properly (very easy) then this becomes a no-brainer. Hitting Tab on a line should (almost always) produce the right indentatin for a given context.
Mixing up 4-spaces-as-indentation and tabs in a single file is a recipie for disaster (subtle bugs.) Aside from these issues, I actually like Pythons use of whitespace. I find it easier for long term maintainability not to mention the initial conceptualization / prototyping.
Email me if you need those .emacs settings to work with Python and tabs properly.
---
Thoughts on US vs Europe? (Score:1)
I was wondering: why did you do it? How do The Netherlands (or Europe for that matter) and the US compare? Don't you miss the good bakeries, cannabis and licquorice? Do you experience Americans as being shallow (I've heard that comment more than once)? Or is this just a case of "Cherchez la femme?"
That's a lot questions together, but I'm not so much interested in specific answers. I'd like to hear your general experience of US vs. Europe.
microthreads, stackless python (Score:2)
-
Why is Python not whitespace-ignorant? (Score:1)
In my opinion, one of the most awful features of Python as a language is the fact that it thinks of whitespace as a highly significant feature in programs, so much so that you always have to properly indent all blocks of code that are under a particular control structure (such as if statements or for loops), instead of having a 'begin'-'end' token pair to do the job, such as what we have in C, Perl, Java, Pascal, and almost every other block structured programming language I know about. It takes away the programmer's freedom to style his or her code, forcing them to conform to somebody's idea about how programs ought to visually look like. I've heard of "bondage and discipline" languages, but this is arch-B&D... not even Pascal is so anal!
Conflict with GPL (Score:5)
So, my question is a two parter:
ObJectBridge [sourceforge.net] (GPL'd Java ODMG) needs volunteers.
Re:Python 3000 (Score:1)
Re:Python 3000 (Score:1)
JPython rocks. Working with JPython in Java rocks. When, oh when, will the C implementation of Python compare favorably to the Java version?
None of you who have worked with both C and Java Python can tell me that there is any comparison at the API level. JPython rocks all over CPython in that regard.
Re:Python 3000 (Score:1)
Reading the Zope list, and searching the archives, you will see Python's poor threading support bemoaned repeatedly as a roadblock to scaling a single Zope process on multi-processor systems.
Python 3000 (Score:5)
Why do you care so much for GPL compatibility? (Score:1)
The Apache people seem to have given up on ever getting their license compatible with the GPL since it seems to much work to get the language about the trademarked words right. So they just accept that people writing GPLed software can never use code distributed under the Apache license. It does not seem to hurt the Apache project to much.
Why do you care so much about Python being GPL compatible? And what work should still be done?
I loved the original CWI license by the way, it was short and to the point. Is there any way to get that back as standard license? And is was GPL compatible as a nice bonus.
How will nested scopes affect performance? (Score:2)
Reading "What's New in Python 2.1", I'm curious about nested scopes. Given that name lookup has always been the cause of poor performance in Python (or so I've heard), it would initially seem that introducing nested scopes would further reduce the speed at which Python scripts run if you use this feature.
Is there any information available about Python's performance with this addition?
Structured Design. (Score:5)
I have been doing C development for 9 years now, and I know a plethora of other languages including shell scripting, perl, PHP (for scripts). Now, each language uses 'normal' grouping for control structures (if, for, etc).
What was the logic behind creating a whitespace-based syntax rule? And why do you feel it is good, please refrain from the readability answer because that is all I get from those people I know who know Python.
I find, because of my background, it is much easier to read code that uses braces ({}) than whitespace because my mind automatically looks for them. After maintaining legacy code that extends a life span of 20 years from it's first line of code, I have some concerns about the longevity of any Python code. So, my second question is, how well do you see Python holding up for 20 years and why do you think it will hold up that long?
Thanks.
Why such weak lambdas? (Score:1)
Oh, and many many thanks for a beautiful language.
(jfb)
Re:Jython (Score:1)
Peace,
(jfb)
Re:Python's 2 biggest shortfalls (Score:1)
Let's not forget the language that made multiple dispatch popular (for certain values of popular): Common Lisp. CLOS is still the best expression of multiple dispatch around (although Dylan sure is nifty.)
Peace,
(jfb)
Re:Language Specification (Score:1)
Re:Structured Design. (Score:2)
Well, that's the answer, i'm not sure why it isn't acceptable. One of the main stated goals with Python is that they didn't want a language that had completely different formatting depending on who wrote it, so they made formatting part of the language. This makes it much easier for non-programmers (like me) and beginning programmers to pick it up.
I find, because of my background, it is much easier to read code that uses braces
but someone with no programming backgound wouldn't have that bias, so if you're inventing a new language, why feel hindered by older syntactic conventions?
---------------------------------------------
Re:Structured Design. (Score:1)
Would you allow a junior programmer joining your team to write code like this?
I certainly wouldn't. In c (or c++, or java, or whatever language that snippet was written in), whitespace is significant, but it is significant ONLY to the human reading the code, not to the compiler.
If I could, I'd ask the compiler (or the source-code-control checkin program) to require that the indentation match the braces. That would prevent stupid stuff like the above, and also prevent the more insidious errors like this:
where my failure to use {} around the for() clause has created an error (ie, new_x += v should be inside the loop, and you can TELL that from the indentation).So in python, you get exactly this feature. The language verifies that the ACTUAL block structure of the compiled code equals the INTENDED block structure as indicated by the programmer:
In my opinion, the python code will hold up BETTER than over long life spans than c-style code, at least if you consider only the effects of whitespace-based block structure. I say this because the use of indentation to indicate block structure is older and more widespread than the use of braces for that purpose -- compare Algol, Lisp, APL, and nearly everything else except early (column-sensitive) Fortran and assembler.
Of course you ALSO said that you liked having the braces, because it makes it easier for you to read. Fortunately, braces ARE allowed in python! The following example demonstrates their use. ;-)
-- Michael Chermside
GUI? Tkinter? (Score:3)
Any movement away from Tkinter, and toward something else, as the pretty-much-standard programming interface for graphical user interfaces?
Any movement towards a Tk library that *doesn't* use Tcl?
Scare Quotes (Score:1)
Good call.
Hi, I've never heard of you (Score:1)
Re:Performance (Score:1)
Legacy vs. Ease and Cleanliness (Score:2)
I'm interested, though, in the conflict between library design and legacy habits. Would you suggest that C-isms like "popen2", "execlp", "sys.argv", and "socket(AF_INET, SOCK_STREAM)" really belong in a "clean" language in the long run?
Is there any chance that we'll someday see a standard library extension that (much like Java's libraries) allows developer to program in English rather than UNIXglish?
Thanks!
--JRZ
Ruby (Score:2)
Re:Structured Design. (Score:2)
The tool can convert back and forth to allow for use in indentation hostile environments.
Python and UML (Score:2)
I have seen a couple of Java based Unified Modeling Language [omg.org] tools but no Python support or implementation. It would seem natural to develop in python based on UML, so this must be a large gap in the python suite. What do you think of designing with UML and implementing in python?
Thorn [xaan.com] is an opensource UML editor written in Java with JPython scripting but no python code generation.
ArgoUML [tigris.org] is an opensource UML editor written in Java with no current python code generation
macro viruses (Score:2)
Blind people? (Score:2)
Re:Conflict with GPL (Score:2)
--
Re:Komodo (Score:2)
even compared to Visual Basic it really sucks... like.. REALLY sucks. I would be embarrased to ship a program built with that IDE builder.
--------------------
Would you like a Python based alternative to PHP/ASP/JSP?
Python IDE (Score:3)
--------------------
Would you like a Python based alternative to PHP/ASP/JSP?
Performance (Score:4)
Re:Structured Design. (Score:2)
I like Python's style and I like the ALGOL-derived style as well.
Re:Why is Python not whitespace-ignorant? (Score:2)
There have been a few other posts about this. See my earlier response to another post about that here [slashdot.org].
I'll answer your post with a question. Why should a programmer be free to style their code anyway they want?
The point of a programming language is to communicate instructions to a computer in human-readable format. I still maintain that people who complain about being forced to write readable code are the ones who write the most unreadable code. TMTOWDTI, Perl's motto, is the main reason that when the first Obfuscated Perl Code contest was announced, many Slashdotter's joked that it was redundant. Consistent style is a necessity for maintainability. It helps to allow others (and maybe yourself a year later) to understand what you were doing when you wrote a piece of code.
Honestly, if you think everyone should be able to write code in whatever style they see fit, you've never worked on a large project before. Languages with more freedom just force people to place other personal standards on how their code must be formatted within their project or lose readability of code as multiple programmer styles conflict. Python forces a consistent standard across all development, making it an great relief to maintain.
Re:Structured Design. (Score:5)
I fail to see why there would be any other reason. Furthermore, I fail to see why there should even need to be a better reason. Why do you have whitespace at all? There are only 2 real answers: easy parser writing and human readability.
Python's style makes it easy to see blocks of logic. It also forces you to think about how your code is organized by exposing these blocks to you at all times. Braces, parentheses, brackets, etc. are easy to lose track of in complex single-line statements. You have to spend too much time thinking about whether or not you've got your puncuation matched up properly. Python eliminates this confusion by exposing logical blocks. Besides, properly formatted and readable C code should already be spaced out like a Python program. Python just eliminates the redundant punctuation.
Typically, the people who complain the loudest about enforcing spacing in syntax are the same people who write those tangled, dense, single-line statements in C and Perl that inspired their respected obfuscated code contests. You don't need the ability to cram 5 lines of Python in 1 line of Perl. It just hurts maintainability, and there's really no compelling argument for keeping source code dense and compact anymore if it doesn't add speed and remove bloat. (Forgive me if I have unfairly tarred you with this brush, but this has been my general experience.)
(In response to another post:)
Also, I've never seen a source-control system mess with the spacing of a file before. That's just odd. Be consistent with using either spaces OR tabs and your Python code will be much easier to store. I'm not saying it doesn't happen. I'm just saying that bugs in certain tools that weren't written with Python in mind shouldn't be a black mark against the whole language.
Implementing Everything in Python (Score:2)
One thing I see in Python-land is that there is a tendency to implement everything in Python. I just submitted a design for a program that I want to write in Python and I used Sketch for diagrams, despite having CorelDraw for Linux right here. It seems that no Python programmer is happy with having a component written in another language. Many other languages don't interoperate as well as in Python but those programmers seem happy with mixing Perl and C, for example. Look at Zope. It has it's own web server. I know it's faster, but why do you think this is happening with Python specifically?
Strangest use of Python (Score:5)
What use of Python have you found that surprised you the most, that gave you the strongest "I can't believe they did that" reaction?
Re:Performance (Score:2)
Re:efficient compilation and standardization (Score:2)
Re:Python 3000 (Score:2)
Re:Data Structures Library (Score:2)
Re:[j | c]Python (Score:2)
Re:Conflict with GPL (Score:2)
Re:Stackless Python? (Score:2)
self (Score:2)
wxPython (Score:3)
Every language needs a CPAN. (Score:2)
Re:Structured Design. (Score:2)
Example:
if ($foo):
while ($fee):
buncha code
endwhile;
endif;
If the buncha code fills up your screen it's easy to grok what's going on at the end of control structures. For every control structure php provides a keyword for the end.
Re:Structured Design. (Score:2)
Oh man I can't resists...
Microsoft
Where I work
Slashdot
United States of America
Washington DC
Komodo (Score:2)
[j | c]Python (Score:5)
How do you see the relationship between jPython (the java implementation) and standard cPython (the original C language version) evolving? And do you see the advantages of either one (i.e. portability vs. speed) becoming especially pronounced in light of the recent trend toward distributed software (ala the MS
sean
Static typing (Score:2)
It seems that (optional) static types would enable the creation of practical python compilers, and could also provide much more in the way of pre-execution error detection.
I've heard rumours that static typing might be in the pipeline for Python. Is there any truth to these rumours, and if so, how might they be implemented?
Why "None"? (Score:3)
I have long wondered why the value None in python is named "None". It's pretty common in other languages to call that thing (or something very similar) "NULL". Were you trying to differentiate None and NULL in some way, or do you just like the way "None" sounds as you read code?
does Python need a CPAN? (Score:5)
Do you see things in a similar way? If so, why has Python not evolved something similar or better, and what can I do to help it along in this realm?
Politeness (Score:2)
What is your secret for keeping your cool when discussions get heated, particularly when techies tend to be very loyal to their causes?
Honestly, now (Score:2)
In all seriosity (?) are there times when you overload on Python and just have to get away for a while?
-DA
Development of Language Bindings (Score:4)
Thanks.
Re:Data Structures Library (Score:2)
You can look up data structures anywhere, but developing clean algorithms takes "skills".
bash-2.04$
Data Structures Library (Score:5)
bash-2.04$
Re:Python's Relation to Knuth's Conjecture (Score:2)
Re:Python's Relation to Knuth's Conjecture (Score:2)
Language Specification (Score:3)
Are there any plans to set some kind of standard language specification that will hold for a while?
Fat snakes don't hunt (Score:2)
Python's Relation to Knuth's Conjecture (Score:2)
In the upcoming volume IV of Knuth's TAOCP, Seminumerical Searches for Hoaring Triplets, he conjectures the following about the Theory of Programming Languages:
Along these lines, I pose the following questions:
Thank you.
What is *your* idea of Python and its future? (Score:5)
What's your idea of the future of Python? Since the PEP process, a lot of new feature ideas have been put forward, and a lot of people feel uncomfortable with quick change to a good language (Python 2.1 is again excellent though, congrats). Do you think or hope Python will be finished one day? If not, isn't the alternative an endless string of added features? "Python 3000" was an idea of a sort of ideal Python that would be worked on, but as I understand Python will now evolve more gradually.
What is bad about python ? (Score:2)
What are the bad points in Python ?
What kind (or size) of project should not be written in Python ?
When should one use a different language ?
Thanks.
Indentation? (Score:2)
In Python, indentation is the token. What's the rationale for this? Do you get a lot of flack from people who prefer the old-fashioned way?
Oh yeah, and since the Vim % command (jump to matching bracket) doesn't work with Python code, do you know of a macro to replace it?
__
Re:Remapping % in Vim (Score:2)
Now all I need is a macro to actually do the function I described! That's the easy part, of course!
__
Follow-up Questions (Score:2)
What's your favorite Monty Python Quote and Movie?
python versus perl (Score:2)
(2) who speaks more languages, you or (that supposed linguist) larry wall?
(3) if you could eliminate one planet from the solar system (besides the earth), which one would it be?
(4) how do you feel about the euro?
Python (Score:2)
(blood pythons). Each different type of snake eventually ends up with two names, one for the genus and one for the species. When isolated population exits that are still identifiable as the same type of snake, a third name, the trinomial, is added.
The term primitive indicates that these snakes were some of the first snakes to evolve. Primitive snakes display features that link them to lizards. These features include a rudimentary pelvic girdle in the form
of cloacal spurs, and lungs of equal sizes . Advanced snakes, like the rat snakes and whip snakes, have only one functional lung and no cloacal spurs.
Pythons are divided into about 26 species, depending on which authority you accept. Pythons range in size from very big (Burmese and Reticulated pythons with the potential of over 20 feet and over 200
pounds) to small (Children's pythons do not get much bigger than 24 inches '61cm' in length) . No matter what the size , they are all constrictors . Some burrow-hunting species have developed novel ways of
using thei coils to catch prey within the confines of a burrow but they are still constrictors nonetheless . Most pythons are nocturnal hunters and some species have heat sensory pits along the edges of their lips
to aid in finding warm-blooded prey .
Pythons Versus Boas : Many people don't know the main difference between boas and pythons . Boas are termed ovoviviparous , this means their eggs inside the females are surrounded by a membrane
instead of a hard shell like pythons . So when the boa babies born , babies break through the membrane to crawl away . Pythons are oviparous , this means the eggs are surrounded by a thin , parchmentlike
shell . Female pythons will coil around their eggs and stay with them during the incubation period .
Life Span : Over 20 Years But Much More In Captivity .
Their Orginal Habitat : Africa , Asia and Australia , North America (A Little Amount) . All python snakes are tropical animals . They won't live under the temperature 22C (77F) . Under this fact the areas
that they live must be near the deserts or tropical places like amazon . But mainly you can find them Africa , Asia and Australia , North America (A Little Amount) .
Pythons As Pets : Pythons can be good pets if you care them enough .
-- Floyd
Re:Python (Score:2)
If you were stuck on a desert island... (Score:2)
Question about the personal side (Score:4)
Yours,
Bob
Re:What is *your* idea of Python and its future? (Score:2)
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
efficient compilation and standardization (Score:4)
Re:Conflict with GPL (Score:2)
--