Guido van Rossum Leaves Zope.com 248
VladDrac writes "Guido van Rossum, the author of the Python programming language, announced at OSCON last night that he's leaving zope.com, to work for a new startup called 'Elemental Security', founded by Dan Farmer (known from several security tools such as Satan). Guido leaving Zope.com will also probably mean that he will be no longer involved in Zope3 development, but hopefully he'll have more time to spend on Python development." Guido says that he's excited about his new employer, but that nothing substantial will change about Python as a result of the move. "It's just that I'll be working from the West coast." Python is "already quite secure," he says, and will be the basis of an upcoming security product ("just getting started") from Elemental.
His goodbye posting (Score:5, Informative)
Good times. (Score:4, Interesting)
What other projects are being done in Python?
Re:Good times. (Score:2)
Prominently on python.org (Score:5, Informative)
Re:Prominently on python.org (Score:2, Funny)
Re:Prominently on python.org (Score:3, Interesting)
A more interesting project would be to make a search engine that functions as well as Google on a much more modest budget. That's an ongoing game of mine. I figure if I ever succeed maybe they'll hire me finally.
Re:Good times. (Score:2, Interesting)
I read somewhere in usenet that python is relatively slow, even for interpreted language, and my (extremely limited) experience is the same. A while ago, I did a simple text converter in python as an exercise. Very basic stuff, read from file, check the value of each symbol, change with another value if necessary, write into another file. It was quite slow on texts of moderate size. I mean, if it we
Re:Good times. (Score:2)
Where Python is superior to C is the fact that Python is a higher level language. Easier to code it, easier to get things done, etc.
Re:Good times. (Score:2)
Re:Good times. (Score:4, Informative)
Re:Good times. (Score:5, Informative)
There are a few more games that use Python... you might have heard of them:
Re:Good times. (Score:2)
Well, maybe, until you use Ruby [ruby-lang.org]. At that point you realize that Python is by no means OO from the ground up. I like Python, it's one of my favourite languages, and it has been around for years... but while I like Python, I love Ruby because it is the most completely OO language I have ever used, and that is really handy. For a comparison, I'd recommend a page on the ruby site [rubygarden.org] which is linked to from the python site, and contains a posting to comp.lang.python, so I'm guessing it's not too biased either w
Re: =You have obviously missed the point (Score:2, Interesting)
Which unfortunately has nothing to do with the ideas behind Python.
It tends to be much more than "strongly-typed effective scripting language" and if there was some big corporation promoting it as development platform(not even providing support, the guys from the team are doing really good job) , you can bet that Java would had one more serious competitor to worry about...
Re:Good times. (Score:5, Informative)
Twisted - a web/chat/anything-you-can-name server
Zope - Web Application/CMS type system
bittorrent - you know about that one
Red Hat uses Python in a lot of their scripts (I believe)
NumPy - used for scientific applications (replacing/augmenting Matlab, fortran, etc)
Karamba - KDE desktop eyecandy, written in C++ and scripted with python
and some really bad stuff I've written for my own amusement.
Off course there's more, but I did say off the top of my head and I don't want to cheat. It's really a nice clean language, that really lends itself to prototyping but still can make great apps.
Re:Good times. (Score:5, Informative)
I'm a Python fan, but I doubt Python will ever surpass Perl -- especially not by adding a "more logical parse tree", since it already has a very simple, consistent, and logical parse tree whereas Perl has more of a parse forest. Python and Perl are just too different; they compete in many areas, but their real strengths are far enough apart to keep them both viable in each other's presence.
For info on what projects are being done in Python, see the lists at www.python.org (Success Stories [pythonology.org], Python Users [python.org], and Python Projects [python.org])).
Remarkable language, Python. Lovely plumage!
-Billy
Re:Good times. (Score:2)
Oh, WOW! What a quote
Re:Good times. (Score:4, Informative)
Other guys are mentioning many projects, but I want to emphsize on three project, IMHO the most important to illustrate the power of Python:
Re:Good times. (Score:2)
However the Unix way is oppositely different: make many small servers/applications/filters each doing its small function, but doing it very well. In case of twisted I found both web templates and instant messaging rather primitive, comparing to Zope and Jabber. And I don't see any benefits to keep inside the sam
Re:Good times. (Score:3, Insightful)
Anyway, I dislike the concept of re-implementing such protocols as SSH - it must be very secured, that's why I trust more to OpenSSH (and its libraries). Again, in
Re:Good times. (Score:2)
Re:Good times. (Score:2, Interesting)
Re:Good times. (Score:2)
Re:Good times. (Score:5, Informative)
Guido seems to disagree. [artima.com]
Now you might be splitting hairs and saying that "static" means known at compile time and "strong" means type errors are always detected, but in common parlance "strong typing" includes static typing. For the pedants, there's Sebesta:
This criterion is met by very few real-world languages. Most imperative and object-oriented languages include type coercion [python.org] which contradicts this property. It is interesting to note that future Python development is moving towards still stronger typing -- and, dare I say it -- functional-style constructs.
Of course, the pragmatic thing to do is to understand strong/weak typing not as binary, but as a continuum. In this case, Haskell is more strongly typed than Ada is more strongly typed than Python is more strongly typed than C++ is more strongly typed than C is more strongly typed than FORTRAN. It looks like Python 3.0 will be moving up the chain, however.
Re:Good times. (Score:2)
The definition: ...we define a programming language to be strongly typed if type errors are always detected. This requires that the types of all operands can be determined, either at compile time or at run time.
You said: This criterion is met by very few real-world languages
Python and Java are two examples of languages that meet this criteria. They detect type errors either at compile time (in the Java-without-casting case) or at runtime (in the Python or the Java-with-casting case).
Re:Good times. (Score:2)
Re:Good times. (Score:2)
Since both Java and Python support type coercion, it is not the case that for any given Java or Python program, type errors will always be detected -- namely, in programs where coercion is used, the guarantee no longer holds.
In a system with type coercion, errors are caught at runtime. That's why both Java and Python have TypeError/ClassCastExceptions. If you read your own definition you'll see that it specifically allows for catching of errors at runtime.
Re:Good times. (Score:5, Interesting)
Python is a stronly typed, dynamically typed, extremely late bound language.
Double check your facts before calling someone else a dumbass.
The difference between a dynamically typed language and a statically typed language is this:
int myvar = 1;
# Python
myvar = 1
The difference is that the Java compiler assigns a datatype to the location of myvar, but python assigns a datatype to the value held in myvar.
It's a subtle difference, and many python newbies think it's not strongly typed, however that is a mistake.
Re:Good times. (Score:2, Interesting)
This is a minor point, but that doesn't show Java is statically typed:
Object myvar = "Hello";
myvar = new Foo();
That would be dynamic, AAUI. So Java has both static and dynamic typing? Or do OO languages just confuse things?
Re:Good times. (Score:3, Insightful)
Neither. Your argument is specious, because what you're referring to is inheritance, not typing. Inheritance is another aspect of OOP that says "If my parent is an Object(), by definition, I am an Object(), too." However, in your example, myvar will only have the properties and methods of Object(), not Foo(), unless you cast myvar like ((Foo)myvar).someFooMethod() (which disproves your argument, by the way).
Java is str
Re:Good times. (Score:2)
I like to think of static typing as the variable NAME has a type (regardless of value) and dynamic typing as the variable VALUE has a type (regardless of name).
Re:Good times. (Score:3, Interesting)
I can't properly read blocks unless they are encapsulated in { }, thus I have a really hard time in Python. I'm sure if I spent enough time with it I would be able to figure it out though.
Perl code can be extremely readable though, it just takes a whole lot of work to do it.
Re:Good times. (Score:4, Funny)
def the_count(): #{
#}Tadaa! Curly braces. The code is now readable.
PS. Sorry for the odd indentation, I haven't posted code under slashdot for a while...
Monolinguism and Polylinguaphobia (Score:2)
Indentation without brackets makes block nesting much more readable and obvious, than brackets without indentation.
Perl code is fundamentally unreadable, and readable Perl code is the extremely rare exception to the rule. Perl does nothing to encourage people to write good code -- just the opposite. But Python supports and encourages clean maintainable read
Re:Good times. (Score:2)
point being, not all perl is obsfucated, and not all python is like reading english.
I don't think so... (Score:3, Insightful)
Go ahead and show me some nested lambda + encoding of eval'ed source + pickle or some other monstrosity if you like, but it will have to be indented properly to even execute.
Re:I don't think so... (Score:2)
there's no reason to obfuscate python or perl. (or any other language) Readability should not be a question of what language you're using, but a question of what programmer is writing the code.
don't even get me started on the fortran-like indentation nazi-ism. That's not what we're discussing. That's a whole different rant.
Re:I don't think so... (Score:3, Insightful)
Re:I don't think so... (Score:2)
I've long though there needs to be a braces option in python. Like you say, it is a minor issue, and too many people harp on it. There are nits to pick with all languages (except maybe ruby, but I haven't looked at it enough yet to say). You can't please everyone, nor should you.
Re:I don't think so... (Score:3, Informative)
Re:I don't think so... (Score:2)
4.15. Is it possible to write obfuscated one-liners in Python? [python.org]
And, yes it is.
Though I do believe it is much easier to write readable, maintainable Python code than it is Perl code. I certainly find that I can understand my Python six months later. Perl is typically a different story.
Re:I don't think so... (Score:2)
Try that in Python!
Re:Good times. (Score:2)
python:
>>> 2 + 3.0
5.0
>>> type(3)
< type 'int'>
>>> type(3.0)
< type 'float'>
>>>
So ints are coerced to floats in practice in python. Of course in a multi dispatch langauge + could be defined over Float, Int
If you want a real strongly typed language as in all type errors are detected use Haskell or ML.
Re:Good times. (Score:2)
Hey, why mess around? Use Ada!
Ada??! Only good for wireless robots. (Score:2)
Ada's a much better programming language for destroying Microsoft than Java, because Ada has built-in support for cutting off heads all the time without even thinking about it, instead of silly promises about "write once run anywhere" and those totally ho
Re:Good times. (Score:2)
Which would have been really clever and showed your deep understanding of programming languages if it weren't for the fact that you're wrong.
Observe:
Re:Good times. (Score:2)
My point was not that Haskell is not strongly-typed, but that Python is not weakly-typed because one can add an integer and a float.
Re:Wait wait wait..... (Score:2)
>
Yes, it's too girly. Which makes it perfect! hehe
Re:Good times. (Score:2)
Messy code must die!---and Python is a great language to kill it with when done properly.
Re:Good times. (Score:2, Insightful)
Out of curiosity, I just checked out the BitTorrent code, and I can offer some concrete examples of what I don't like about it:
Guido's goodbye message (Score:5, Informative)
Guido van Rossum guido@python.org
Wed, 09 Jul 2003 10:24:54 -0400
Dear Zope 3 developers,
Last night at OSCON I announced that I am moving to California. I
have accepted a new job at Elemental Security, a security software
startup in San Mateo. You may have heard of one of the founders, Dan
Farmer, who is the (co-)author of several well-known free security
checking programs: Satan, Titan and The Coroner's Toolkit.
Elemental is a brand new company, and I can't say much yet about the
product, except that it will be aimed at enterprise security and use
Python. I'm very excited about working with Dan on its design and
implementation.
I'm also excited about moving to California, which has long been a
dream of mine. I'm looking forward to getting together with the many
local Python users and developers once I'm settled; right now, my life
and that if my family is total chaos because we're trying to find a
home and move into it by August 1st.
I will still have time for Python (it's in my contract) and I will
continue to lead Python's development. The other PythonLabs folks:
Fred Drake, Jeremy Hylton, Barry Warsaw and Tim Peters, are staying at
Zope, by the way.
But unfortunately, this move pretty much ends my involvement in Zope
3. I've signed a contributors agreement, but with the new job and my
Python work I don't expect to have much time for Zope. So this is
also a goodbye, of sorts. I've enjoyed working with many of you, Zope
3 developers, and I expect we'll run into each other at some future
Python event.
In the mean time, I'm here at OSCON with a busy schedule and limited
access to my email, and the following weeks I will be in transition,
so please be kind if I don't reply immediate when you write me.
--Guido van Rossum (home page: http://www.python.org/~guido/)
PS. guido@zope.com no longer works. Please use guido@python.org!
Re:Guido's goodbye message (Score:3, Funny)
Re:Something fishy in his goodbye message (Score:2)
He's only changing his email address because he no longer works here. His email will probably be forwarded anyway.
Re:Something fishy in his goodbye message (Score:2)
Re:Jumping WAY OT (Score:2, Informative)
list of new features at bash.cx [bash.cx]
(Please don't mod offtopic; The parent's author doesn't provide any way to contact him privately.)
"Python is 'already quite secure,'" (Score:4, Funny)
Re:"Python is 'already quite secure,'" (Score:2, Insightful)
Re:"Python is 'already quite secure,'" (Score:2)
No, That's this. [cnn.com]
Re:"Python is 'already quite secure,'" (Score:4, Insightful)
Re:"Python is 'already quite secure,'" (Score:4, Interesting)
IMHO, it won't be secure until they bring back Bastion and Rexec and get them right this time. Actually, all I want is to be able to remove all the builtins that access the system directly (so Python can't crash your computer, delete files, or otherwise access the filesystem) - but while the language and API documentation is pretty good, the compiler variables are wholly unkown.
Re:"Python is 'already quite secure,'" (Score:2)
Re:"Python is 'already quite secure,'" (Score:2)
Re:"Python is 'already quite secure,'" (Score:2)
read the python mailing lists for a full explanation. They were yanked because they not only didn't do the job right _it is not possible_. Restricting disk/CPU/memory usage is an operating system job. Trying to build it into the language (like java) just makes things really complicated (for both core developers and users) and still doesn't work.
Re:"Python is 'already quite secure,'" (Score:2)
Stay! (Score:3, Funny)
Please, stay where you are, sir. We have enough problems out here already.
Who names this stuff? (Score:4, Funny)
How instrumental was he to zope? (Score:4, Interesting)
What his is level of involvement with zope? Does this spell a slow painful death or just a minor speed bump.. ( I admit I don't follow *new* zope development so I'm just curious )
Elemental Security (Score:2, Funny)
What we don't need in California ... (Score:5, Funny)
SoCal is the land of double entendre and uber-image, Mr. Van Rossum. We don't care about your substance, we want to know about your style. So the question the really needs to be answered now is,
Python: Is It Sexy Enough? Join us on E! when we ask your favorite celebs just what scripting language they use for their daily information processing! We know Pamela Anderson loves Perl, and Carmen Daily is crazy about Java, but what happens when these two sexy stars get their hands on Python? Watch at 11 and find out!
Re:What we don't need in California ... (Score:2)
My Network security... (Score:5, Funny)
I tried satan for my network security. Cost me my soul, but it's damn good. One kid tried to hack around our proxy to play games at work, and he got engulfed in flame and dragged down to the 3rd layer of hell for the rest of the day! Sure, I have to use a massive water cooling system to keep the firewall (and I mean a wall of fire that I run the ethernet cable through) from melting the other servers, but when the dark lord is watching your back, you don't even have to think twice about security.
Re:My Network security... (Score:2)
Quite secure, eh? Not according to Guido. (Score:4, Informative)
I'd like to point out a thread that I found a little while back on Python-Dev about Guido's decision to remove the rexec module (similar to the Java sandbox):
posting 1 [python.org]
and Guido's reply:
posting 2 [python.org]
A little bit further down that thread we find this:
posting 3 [python.org]
Since this last one is particularly telling, I will quote the relevant text for our impatient readers:
I think Guido's rationale for removing all these features will be widely misunderstood. Me channeling him: it is not that he believes that the architectures developed were inherently incapable of providing security. Instead, he feels that no "expert" for these matters has reviewed these architecture for flaws, and that the continuing maintenance of these things isn't going to happen.
If this understanding is correct, then any new approaches will likely suffer from the same fate. Unless somebody steps forward and says: "I am a security expert, and I guarantee that this and that feature is secure (in some documented sense)", then I think he will dislike any changes that mean to provide security.
So this not a matter of engineering but of authority. Somebody must take the blame, and Guido doesn't want to be that someone.
Disclaimer: I love python. However, I am working on a project that depends on rexec, and when I discovered that it was being removed, I was a little annoyed - especially at the reasoning behind the decision.
Re:Quite secure, eh? Not according to Guido. (Score:2)
Wrong "secure"... Don't Panic. (Score:2)
But hey, you got an opportunity to strut, and show some linkage!
Re:Quite secure, eh? Not according to Guido. (Score:2)
nice rant though!
Re:this was clear-cut (Score:3, Interesting)
According to my aquiantance with the Python C code, the first skill is there
As for the other, I am not sure.
People always confuse the many meanings of secure (Score:2)
Unless the security product allows untrusted users to enter and execute Python code, then there's no contradiction in using Python to develop a secure application. Security isn't something that springs from the programming language itself -- it depends on what you do with the language. Security is largely a so
Least ugly? (Score:5, Funny)
I hereby cast my vote for Guido VanRossum for Least Ugly Open-Source Project Leader.
Re:Least ugly? (Score:2)
Re:Least ugly? (Score:3, Funny)
A shame (Score:5, Informative)
For those not familiar with Zope, it is a web application server written entirely in Python. It features an object database that, for example, lets you create an image object, and then call it from other code to automatically build your image tag based on the dimensions and title of the image stored in the object.
It's open source, developed both by the Zope community [zope.org] and the Zope corporation [zope.com]. There are at least two kick ass, open source content management systems built on top of Zope Corp's content management framework [zope.org] that I know of: Plone [plone.org] and Silva [infrae.nl]. There are a ton of add-on products [zope.org] that are downloadable too.
Zope does have a pretty steep learning curve, if you don't do stuff with "real" web applications (stuff that needs access control lists, user management, templating, etc) it might not be right for you, but it's great for bigger applications. Edd Dumbill talks in a recent blog entry about why Zope is worth learning [usefulinc.com] and DevShed (which runs on Zope) has a good overview [devshed.com].
Guido and Dan Farmer are both smart guys and I'm sure that we can expect good things.
The Zope Learning Curve (Score:4, Insightful)
I was experimenting with Zope last year and again during the first half of this year. It's definitely a cool product, but what threw me for now at least was that the documentation is abysmal, at least online.
From what I've been able to tell, there are several editions of the Zope book -- the only up-to-date version [zope.org] of which (currently 2.6) is still work in progress. The rest of the documentation [zope.org] is a mish-mash of user-written howto's, some of which are excellent, some of which are dupes of others, many of which are out of date, and others of which are just badly written. Searching the database of these is hard, and it's very difficult to distinguish well written old ones that are still relevant from newer ones that aren't very useful.
My main problem with it though is that although it focuses hugely on the differences between zope development and regular web development without seriously dealing with implementation examples of common tasks. On and off it took me about a month to figure out how to make a simple form-based login system (similar to slashdot's) and tie it into Zope's user folder system. Co-incidentally The only zope-based website I could find that actually did this was zope.org itself.
I really like Zope and I've shown off how it works to people many times over. But I'll only seriously consider using it more once the documentation is more coherent. At the moment I think that's one of the main places where itfalls over.
Re:The Zope Learning Curve (Score:2)
Also, the way zope.org's login is overridden is default in CMF with the Cookie Crumbler product. I don't know if this is available outside of CMF
Re:The Zope Learning Curve (Score:2)
And there is still no introductory documentation on Zope CMF: not even on a web page, anywhere, no, not even on the Zope CMF site [zope.org]. They do have some nice outlines of what needs to be written [zope.org], along wi
Zope is great, but too complex and hard to learn. (Score:2)
Re:A shame (Score:2)
Emmental security? (Score:2, Funny)
This a win-win situation for Zope and Python (Score:2, Interesting)
Odds? (Score:2)
Re:possible improvements to python? (Score:4, Interesting)
Perl code looks much neater than Python?
Are u nuts?
One of the strong points of Python language is its clean and intuitive syntax. Perl is a very powerful language, but its strong point is *NOT* neat syntax.
Re:possible improvements to python? (Score:3, Informative)
Maybe some moderators with a clue will beat the grandparent post down now.
On topic - I've known Perl for awhile and am starting to code in Python... the syntax is certainly cleaner,
Re:possible improvements to python? (Score:5, Interesting)
That's funny. I switched from Perl to Python several years ago and one of the things that I like best about Python is the documentation. Perl's Camel book made a pretty fair reference, but I didn't really like busting out a hard-copy book every time I wanted to look something up. The electronic Perl documentation was pretty nice, but it wasn't quite as comprehensive as the Camel book, and the POD format simply can't compete with Python's documentation. The PDF and HTML formats are nice, but I really like the fact that the Python documentation is available in info format for easy reading in Emacs (complete with a comprehensive index). The indexes in Python's electronic documentation really make a heck of a difference once you start using them. Perl's pile o' man pages simply can't touch Python in this regard (IMHO).
Perl's TIMTOWTDI style means that every time you edit someone else's Perl code you will encounter four or five new Perlisms that you have never seen and that require the Camel book for deciphering. When I was hacking Perl, that meant carring around the Camel book in my laptop bag "just in case." With Python that's no longer a problem.
My guess is that you have gotten use to the structure of Perl's documentation. You know where to find Perl information, and are simply frustrated by the fact that Python requires that you start from scratch with a new set of documentation.
On the other hand, it is possible that we simply have different documentation requirements. What precisely is the problem? "They suck," is not particularly descriptive.
Re:possible improvements to python? (Score:2)
First off, I'm using the Python 2.1 docs -- they may be outdated and the more recent 2.2 or 2.3 docs may be better, but 2.1 is what's installed on our development and production boxes, and we dislike changing those kinds of things unless we need to.
The C API docs stink. There's not a single complete example in the doc tree (on python.org) that I've found -- just snippets here and there. There are references that extending Pyth
Re:possible improvements to python? (Score:2)
Woah. Talk about concrete examples. As for your problems with the C API docs, I don't know what to tell you as I have done very little Python + C work, and the bit that I have done was mostly guided by Mark Lutz's book and the fine example of PyGreSQL. It's very likely that your criticisms of that part of the documentation are true. However, my guess is that extending Python via C is still easier than getting your mind around Perl-guts.
As for the rest, my version of python doesn't have a built in sub(
Re:possible improvements to python? (Score:2)
And yes, it is still easier than dealing with Perl-guts... the docs for that (last time I glanced at them, which was years ago) were quite horrid, and I've never tried it myself anyway. Still having issues at the moment (core dump upon import), but investigating the causes and solutions. Things are moving.
The re module does have a sub() function, but that's fairly well documented.
Yeah
Re:possible improvements to python? (Score:2)
Re:possible improvements to python? (Score:3, Interesting)
And are you joking about Perl? Perl is widely known for having MUCH messier-looking code than Python, but running slightly faster on certain tasks.
-Billy
Re:possible improvements to python? (Score:2, Informative)
Re:Guido, a geek with a girlfriend... (Score:2)
Re:Break the GIL! (Score:2)