Re:His name is Guido?
by
moro_666
·
· Score: 5, Interesting
I dont think that the name Guido will give you any guarantees on the language quality...
However, could this be Google's move against Sun and Microsoft ?
Sun has Java Microsoft has C#
It would be pretty logical that google would like to control something that is comparable to sun and microsoft's bigtime server languages. Python has moderately fast bytecode (google stuff could improve a lot here) and it's got a decent oop model and a threading api. i/o is also usable. i think zope fans can hype their favourite thing in the responding posts too.
i can't wait for the first version of GPython or Gython !
--
I'd tell you the chances of this story being a dupe, but you wouldn't like it.
Umm...
First of all Python has been part of Google since the beginning. There's even a quote about it on the Python.org homepage.
Secondarily, Python is still much slower than C, and it's used internally or for prototyping, from what I've heard, at Google. Once an external project is prototyped and "proof of concept"ed they move to a faster language.
Python is about speed of development, not necessarily execution and they would NEVER use Zope for Google, it's dog slow.
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 0
Guido, from the Samurai Pizza Cats?
Anyway, They should have hired Matz from Ruby, much better prospect. I'm sure they wouldn't like to learn Japanese though.
Converting all my scripts from Python to RUby on my Ubuntu system to Ruby now...
Once an external project is prototyped and "proof of concept"ed they move to a faster language.
Based on what I've heard from people that work there, this is not always the case (I assume you're talking about re-writing entire applications in "something faster" after the Python prototype proves the concept). Sometimes it's not necessary to optimize the shit out of everything; to do so would be a waste of resources. One of the nice things about Python is that you can re-implement hotspots in other languages (such as C or C++) without having to rewrite the whole application (yes, I know you can do that sort of thing in other languages, too).
-- [b.belong('us') for b in bases if b.owner() == 'you']
Re:His name is Guido?
by
MechaShiva
·
· Score: 2, Funny
PythonG!
-- After calming me down with some orange slices and some fetal spooning,
E.T. revealed to me his singular purpose.
Re:His name is Guido?
by
1shoonya0
·
· Score: 2, Funny
I always thought Guido sounded like a name for someone who breaks kneecaps for a living.
-- The obscure we see eventually. The completely obvious, it seems, takes longer. - Edward R. Murrow
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 0
Oh my god, you actually think you're cool?
Re:His name is Guido?
by
DARKFORCE123
·
· Score: 4, Interesting
It would be pretty logical that google would like to control something that is comparable to sun and microsoft's bigtime server languages. Python has moderately fast bytecode (google stuff could improve a lot here) and it's got a decent oop model and a threading api. i/o is also usable. i think zope fans can hype their favourite thing in the responding posts too.
Microsoft hasn't been asleep either when it comes to Python. They hired the original guy who worked on the Iron Python project http://www.ironpython.com/ which brought Python to.NET.
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 0
You forget that Google has Sun people as well, including the "mother" of Java, Joshua Bloch. I have a friend who works at Google, and he assures me that Java is gaining traction in Google. More and more people use it there every day.
Really, if you're a software engineer, programming languages are tools to accomplish tasks. A good programmer should learn a wide array of languages and use the right one for the right job. That could sometimes be Java, and that could sometimes be Python. And last time I checked, Google was interested in hiring good programmers, not programming-language zealots.
And what would developing an entirely new programming language give Google? (I mean, what did it ever get Sun?) I see it as, "We use Python more and more. It would behoove us to make sure it keeps going strong, and we can do that by paying Guido."
You kids and your conspiracy theories. Always looking for good karma.
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 0
Since he is Dutch, not Italian, it's probably not pronounced "Gwee-doh", it would something closer to "heh-do". I had a friend with this name from Holland and he thought it cool when told that in other contexts, it made him sound like a thug.
Whenever I'm in Holland and make my miserable attempts to speak Dutch, no one has any idea what I'm saying and say, "Speak English", so if I have my pronunciation off, forgive me.
That's great. I'm moving all of my scripts to Python now. If the guy's name is Guido, it's gotta be good!
The Holy Grailhttp://www.imdb.com/title/tt0071853/fullcredits#wr iters was my favourite Python script. I know John Cleese, Terry Gilliam and Michael Palin wrote a lot of the Python scripts but I've never heard of this Guido guy who supposedly created Python. He must have left the group early on.
Re:His name is Guido?
by
julesh
·
· Score: 3, Informative
Python has moderately fast bytecode (google stuff could improve a lot here) and it's got a decent oop model and a threading api.
Python's biggest problem from a performance perspective is that the language effectively guarantees operations on several internal objects (e.g. lists, dictionaries, etc) are atomic (from a multithreading point of view). This means that some kind of lock must be held when working with such objects. Because this is how most Python programs spend most of their time, Python usually just has a global lock for all such objects that threads hold whenever they aren't blocked. This means that multithreaded Python apps do not usually benefit from having multiprocessing systems. The obvious alternative (per-object locks acquired when necessary) doesn't seem to help, as it slows single-thread performance significantly.
I think this flaw means that Python cannot really compete with Java or C# on big server systems. And I don't see how to fix it, either, without breaking the beauty of the language.
Whenever I've done a project with an interpreted language I've come to a point where I had to recode it in C++. It happened with Java, it happened with Perl, I haven't done any serious projects in C# or Python so I don't know for sure. I don't want to say interpretative languages are bad but just be aware of this. Maybe I've just done the "wrong" projects.
O. Wyss
-- See http://wyoguide.sf.net/papers/Cross-platform.html
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 1, Insightful
I think this flaw means that Python cannot really compete with Java or C# on big server systems.
You mean like Google? Oh wait...
It really depends on what you're doing. If your process is I/O bound, Python is just as fast. If your process is CPU bound, and the work you are doing is in pure Python code (i.e. not a Python library implemented in C, such as for text or image processing, which is fast -- remember Python is largely implemented in a compiled language underneath), then it won't matter that there's a GIL because it will be too slow anyway!
If you ARE calling out to external C functionality, you can release the GIL in the C code as long as you aren't mucking with Python objects inside it (e.g. release GIL, do a bunch of calculations, then get GIL and return Python object).
If you are using C objects and just want Python to control it, you can embed Python into C, and then just use a small number of C functions for synchronized object access (mutexes, etc.). Then you can have multiple C threads each with their own Python instance, and the Python code can chug along and just make the calls to the C locking/unlocking before modifying whatever C objects you want. Essentially you just make your own http://docs.python.org/lib/module-Queue.html in C and use that for access. You can also use multiple processes and shared memory. You could probably extend this to Python objects too, by making them "external", basically copying the underlying C implementation code and making a new.so from it except with per-object locks instead of using the GIL.
For what you're worried about, there is a much smaller subset of problems that would be fast enough in Python EXCEPT for the GIL. Usually the interpreter speed is the issue -- there aren't too many situations where running 1/20th the speed of C is too slow but 1/10th is acceptable (due to a second CPU).
Um dude I'm going to have to disagree on that one, Plone is on the Zope platform and IMO one of the best CMS out there.
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 0
"Python cannot really compete with Java or C# on big server systems. And I don't see how to fix it, either, without breaking the beauty of the language."
What? It has *no* method caching, whatsoever. Try writing a python script that calls a method in a tight loop, say 1,000,000 times. Then write the same script in Ruby, which is generally considered to be slower than most other scripting languages. The Ruby one runs in something like 1/10th the time, because it caches method calls. Python is like BASIC but with uglier syntax. And BASIC let you do for loops with reverse iteration. In Python, to step down from 10 to 1, you have to build the list 1..10, reverse it, and then iterate over that. If you want efficiency, go with something faster, like LISP.
Google's approach has always been large farms of not-very-powerful servers. Python's problems in this area are not an issue to them. For people who've already invested in 32 processor Sun servers or stuff like that, Python isn't very efficient.
If your process is CPU bound, and the work you are doing is in pure Python code [...] then it won't matter that there's a GIL because it will be too slow anyway!
Scalability is about adding extra hardware to solve the issue, not raw speed. Besides, using a just-in-time compiler (i.e. Psyco) can get close to the performance of raw C code in many circumstances.
Re:His name is Guido?
by
Anonymous Coward
·
· Score: 0
In Python, to step down from 10 to 1, you have to build the list 1..10, reverse it, and then iterate over that.
for i in range(10, 0, -1):
doSomething(i)
How about trying to know what you're talking about first?
Next time try throwing in some over-the-top, sensationalized, flamebait speculation. More points if it's a complete non-sequitur. For example:
"It seems that Python creator Guido van Rossum has received an offer from Google, and accepted it. Here is also some confirmation. Does this finally confirm that vi is better than emacs?"
or
"It seems that Python creator Guido van Rossum has received an offer from Google, and accepted it. Here is also some confirmation. Is this move calculated to counter Apple's move to Intel?"
And to cap it off, add a slight disclaimer that 'you don't want to start a flamewar'.
It seems that Python creator Guido van Rossum has received an offer from Google, and accepted it. Here is also some confirmation. Not to flame the flames, but does this unexpected move confirm that PostgreSQL is slipping behind MySQL in the conformance to SQL Standards?
or
It seems that Python creator Guido van Rossum has received an offer from Google, and accepted it. Here is also some confirmation. Would he have been hired if he was a C++ programmer? Not to restart the flamewar, but doesn't this prove that C++ and Java are toy languages compared to python?
-- "Sure there's porn and piracy on the Web but there's probably a downside too."
No, "not to start a flamewar" is old-school. These days, the tactic is to say something that you can be reasonably sure will get modded up to +5, but trying to make yourself look rebellious and daring by prefixing it with, "I know I'll get modded down for this, but..."
-- The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
I love Python, but...
by
ShatteredDream
·
· Score: 5, Interesting
I really do think it has been hampered by having a less rigorously standardized basic class library than Java or.NET. It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and.NET documentation.
And of course if Google wanted to really screw with both Sun and Microsoft, especially Microsoft, they could create their own cross-platform web and gui toolkits and a free RAD GUI builder a la Visual Studio for Python. If they could create a Python framework on par with Swing or Windows Forms, there'd be quite a bit of wailing and gnashing of teeth in both camps:)
-- XML is a known as a key material required to create SMD: Software of Mass Destruction
Re:I love Python, but...
by
Anonymous Coward
·
· Score: 2, Informative
It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and.NET documentation.
I've always found help(object in question) in the interpreter to be more efficient than looking it up in the sun javadocs or on msdn.
And of course if Google wanted to really screw with both Sun and Microsoft, especially Microsoft, they could create their own cross-platform web and gui toolkits
WxWidgets? PyGTK?
Re:I love Python, but...
by
a_karbon_devel_005
·
· Score: 4, Interesting
I really do think it has been hampered by having a less rigorously standardized basic class library than Java or.NET. It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and.NET documentation.
Actually Python's interactive interpreter and class/method documentation strings work very well. Most times it's much nicer to simply be able to DO stuff and look up help at the same time rather than go sifting through some huge morass of automated docs.
Also, the next time you can do something in Java or.NET that you can't do in Python, let me know.
And of course if Google wanted to really screw with both Sun and Microsoft, especially Microsoft, they could create their own cross-platform web and gui toolkits and a free RAD GUI builder a la Visual Studio for Python. If they could create a Python framework on par with Swing or Windows Forms, there'd be quite a bit of wailing and gnashing of teeth in both camps
thanks thats an excellent suggestion.
--eric
-- $action = empty(PHP) ? backToC() : unset(PHP) ;
"when the concrete cases are understood, the abstractions are readily
Re:I love Python, but...
by
YA_Python_dev
·
· Score: 4, Informative
WxWidgets?
Good point. I think that Python + wxPython + wxGlade is a very powerful combination for clean, fast and maintainable GUI development.
If you do GUIs I suggest to try these tools: they are simple and powerful (wxPython even contains additional classes that are not present in wxWidgets).
-- There's a hidden treasure in Python 3.x: __prepare__()
Re:I love Python, but...
by
tomservo291
·
· Score: 3, Informative
Python is self documenting. You should be documenting it as you go along. Everything in python is an object, and every object has a doc string, therefore EVERYTHING in python has documentation built into it. Variables, functions, classes, anything and everything.
Re:I love Python, but...
by
Anonymous Coward
·
· Score: 1, Interesting
Google hired Danny Thorpe about a month ago. Thorpe was Borland's chief scientist, formerly the Delphi compiler architect, and had a big hand in developing Kylix.
Re:I love Python, but...
by
AT
·
· Score: 2, Interesting
I agree the class libraries are a bit hodge-podge, but the documentation tools seem to be on par with Java/.NET. A bit less structured, but then python is a less structured language, too. Plus with pydoc, I can browse the docs with a browser (a la javadoc, but dynamically generated) or from the commandline.
In my opinion, the more fancy stuff people have used javadoc tags for (object relational mapping, test cases and contraints, etc.) should be done with annotations anyway, and annotations are supported by the most recent versions of both python and java.
Re:I love Python, but...
by
jgrahn
·
· Score: 2, Interesting
I really do think it has been hampered by having a less rigorously standardized basic class library than Java or.NET.
I disagree. Python (like Perl) tends to mirror the underlying OS and libraries in some no-nonsense, pragmatic way.
Java and.NET want to be your OS, and seem to make a point of reinventing
as many wheels as possible, hoping you forget how to use the ones you already
have in the process.
My wheels are Unix, and I do not plan to replace them.
Python doesn't try to force me; that's one reason I enjoy programming in it.
It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and.NET documentation.
What's missing, in your opinion?
Man pages have always been (mostly) enough for me, and
Python's docstrings and pydoc reach about the same level.
I don't want graphs with deep inheritance hierarchies and
detailed method parameter descriptions.
Re:I love Python, but...
by
julesh
·
· Score: 2, Interesting
WxWidgets? PyGTK?
Both of those are substantially lower-level than the grandparent's examples (SWING and Windows.Forms, IIRC). Wx seems to be pretty much an MFC reimplementation ported to Python, while GTK seems to take a different but equally low-level approach to it all.
I'm currently working on a UI framework based around an XML object description framework and layout engine that might fit the bill better. Currently only C++ is supported, but Python's on the roadmap. Not sure what license I'll be able to release under, though, as it includes some of my company's proprietary tech. May be able to convince the boss that a GPL version of it in our competitors' hands wouldn't be a threat to us, a la QT.
Re:I love Python, but...
by
Anonymous Coward
·
· Score: 0
I'm going to have to disagree.
Having used both Swing and PyGTK for medium-large projects (including one program I ported from one to the other), I'd have to say that PyGTK is definitely the higher-level of the two. It uses native Python constructs wherever possible, e.g., tree widget paths are just Python tuples of ints. You can iterate over most things as you'd expect -- generators!
While wxPython and PyQt seem to be pretty much just presenting the C++ interface in Python, the PyGTK guys really made the interface Pythonic. It's the only GUI toolkit for Linux or Windows I've used that was actually a pleasure to use.
And with Gazpacho, you can save an XML description of your GUI and load it at runtime, just like you want.
I have not used Windows.Forms (the only thing I've heard is that it's rather complex), but if it's on par with Swing, it's no match for PyGTK, abstraction-wise.
Java and.NET want to be your OS, and seem to make a point of reinventing as many wheels as possible, hoping you forget how to use the ones you already have in the process.
That is called 'being cross platform by being OS agnostic.' You choose a different tact, 'being cross platform by being OS specific.' Your cross-platformedness is at the hardware level. But not everybody wants to run a Unix, and not everbody wants to code only for Unix.
-- resigned
Re:I love Python, but...
by
Anonymous Coward
·
· Score: 1, Informative
wxPython is terrible!!! it has loads of widgets which is great, but its like programming c++ in python. it is not pythonic at all! its a terrible wrap. if it was better wrapped and more pythonic it was def be the best GUI framework for python, but as it stand i say it is really terrible.
Re:I love Python, but...
by
Anonymous Coward
·
· Score: 0
Then try to do like the GP suggests and use wxGlade instead of writing wxPython code by hand.
How about PyQt, and use qt designer xml? Would that do what you're aiming for?
-- I am trolling
an offer from Google
by
zhenga
·
· Score: 1, Funny
An offer you can't refuse
Re:an offer from Google
by
FrankDrebin
·
· Score: 3, Funny
An offer you can't refuse
... especially when your name is Guido.
-- Anybody want a peanut?
Re:The Power of The Media
by
Anonymous Coward
·
· Score: 0
I thought it was funny...it was worth the time to read it anyway.
An assumption
by
Anonymous Coward
·
· Score: 5, Interesting
Everyone seems to assume that his main purpose with Google is to do Python.
I'm not saying that assumption is not true. It's just that he is a huge talent. If I had a gargantuan project to run, I'd hire him no matter what the language.
I wonder if the management types have figured out that anyone who can create and run a large successful open source project is a much better manager than the average MBA.
Re:An assumption
by
linuxmop
·
· Score: 5, Insightful
This is a well-founded assumption. Much of Google's internal development is done in Python. Thus, it is important that Python development continue quickly and continue in a direction that benefits Google. They cannot risk that Guido find himself unable to afford to continue as Python project leader.
No, they are most certainly hiring Guido to continue Python development. It would be a disaster for Python, and thus for Google, if they diverted his talent toward some random Google project.
Re:An assumption
by
viega
·
· Score: 2, Informative
He's supposed to be spending 50% of his time on Python itself, which is a lot more than he was able to spend on it in his last job.
Re: An assumption
by
Master+Bait
·
· Score: 1, Interesting
Well... I bet he's going to be the lead software engineer for Google-AOL's awesome new browser !
-- "Only in their dreams can men truly be free
'twas always thus, and always thus will be."
--Tom Schulman
Re:An assumption
by
gstein
·
· Score: 3, Informative
Oh, quite true. At Google, we use Python, Java, and C++ for all of our work. Python is critical to our development and infrastructure.
I gave a keynote at PyCon last year about the importance of Python at Google. Some people transcribed the talk. You should be able to find it via Google. (heh!)
Gmail, Adwords, and Adsense probably use javascript on the end that the user sees, but those requests go somewhere, and we don't know what the actual language used is behind the scenes.
-- "Scientists have proof without certainty;
Creationists have certainty without proof"
-Ashley Montagu
Re:An assumption
by
gstein
·
· Score: 5, Informative
Ha! Guido would quit in a heartbeat if you tried to make him manage people. That just isn't where he's at. He's absolutely brilliant and loves to write excellent code. Great. We're gonna let him do just that:-)
In any case: yeah, we hired him because we want him to work on Python itself. And as John says later in this thread -- about half his time.
Python v. Perl
by
Shadow+Wrought
·
· Score: 3, Interesting
So... Since Guido got an offer and Larry Wall didn't, does that mean that Google has tipped its hand in the debate?
-- If brevity is the soul of wit, then how does one explain Twitter?
Re:Python v. Perl
by
gtrubetskoy
·
· Score: 3, Informative
So... Since Guido got an offer and Larry Wall didn't, does that mean that Google has tipped its hand in the debate?
Google's always been pretty open about heavy Python use. There is fairly interesting presentation by Greg Stein about Python at Goole here (audio only).
Python and Perl are not comparable. Python is a well-designed language. It scales. It's elegant. It's simple and easy to use... your grandmother could code in Python after a few hours. Perl is none of these things.
Re:Python v. Perl
by
kurosawdust
·
· Score: 2, Funny
So... Since Guido got an offer and Larry Wall didn't, does that mean that Google has tipped its hand in the debate?
If the debate you're referring to is "Python vs. mustachioed Christian", then yes, they've declared their preference.
Re:Python v. Perl
by
jbellis
·
· Score: 1, Flamebait
"What makes you think they haven't tried to recruit Larry Wall?"
Maybe all the hype around Java did disappear. This is what you get when drinking decaf.
One Liners...
by
Anonymous Coward
·
· Score: 5, Funny
The winning offer was the one that had first-line indented paragraphs.
We just love a guy that gets so wrapped up in his work!
We've got penguins, we've got pythons, and we've got a lemur with a minigun...this zoo rocks!
After hearing the report, Ballmer threw a Hissssy fit.
Someone reported a problem with a mouse at Google Central and the recruiter got to work on hiring the python guy.
With a keen eye on competition, Google is just trying to catch up to the number of reptiles employed by Microsoft.
Re:One Liners...
by
Anonymous Coward
·
· Score: 0
Google will reportedly give van Rossum a "functional whitespace" check to work on whatever projects he wants.
Re:One Liners...
by
radiotyler
·
· Score: 2, Funny
I hate you so much. Consider yourself pelted in the face with tomatos and pulled off the stage with one of those giant hook dinguses. No wonder you posted as an AC, I wouldn't want my name on that post either.
"Someone reported a problem with a mouse at Google Central and the recruiter got to work on hiring the python guy."
Isn't it apple that has a mouse problem?
Re:One Liners...
by
Anonymous Coward
·
· Score: 0
After hearing the report, Ballmer threw a Hissssy fit.
After hearing the report, Ballmer threw a chair.
Becoming the new Xerox Parc
by
suso
·
· Score: 5, Insightful
So is google becoming the new Xerox Parc?
Re:Becoming the new Xerox Parc
by
Tumbleweed
·
· Score: 5, Insightful
Considering they're actually bringing out products that people USE, I'd say not.:)
Re:Becoming the new Xerox Parc
by
Amouth
·
· Score: 2, Interesting
No.. to do that they would need to make amazing things and then throw them away saying no one will ever want that..
google is making amazing things.. and they know everyone wants them
Parc = !AxF(x) Google = AxF(x)
-- '...if only "Jumping to a Conclusion" was an event in the Olympics.'
Re:Becoming the new Xerox Parc
by
certel
·
· Score: 1
Not only do they want them, they'll use whatever Google releases because of the hype that they bring. People will use them just to use them and may not have any personal benefit.
Re:Becoming the new Xerox Parc
by
hackstraw
·
· Score: 1
So is google becoming the new Xerox Parc?
Good question. The only difference is that Google actually makes stuff that people use. Not to diss Xerox PARC in any shape or form, but Google is phenomenal in that it is a profitable and valuable entire company, not a subsidiary, that simply will not stop.
Pretty soon I'll just have to ask Google what I'm going to eat for lunch. It tells me almost everything else. I think its sick that Google has become the best phone book available, a reverse phone directory, a map, a complex unit converter, it can do range searches (widget $100..$200), and I don't even know but a fraction of what they can do. Are we geeks the only ones that realize how excellent Google is, or does everybody else think of them as a thing that finds them websites?
Re:Becoming the new Xerox Parc
by
akuma(x86)
·
· Score: 1
I'd say it's more like Bell Labs.
They're creating one of the planet's most powerful computer science think tanks - and they're making tons of money doing it which means they ought to be around for a while.
Re:Becoming the new Xerox Parc
by
LABob
·
· Score: 1
Hello... the 'mouse' was invented at PARC. How many people use that???
Re:Becoming the new Xerox Parc
by
Anonymous Coward
·
· Score: 0
The 'mouse' was developed at SRI, not at PARC.
Re:Becoming the new Xerox Parc
by
Tumbleweed
·
· Score: 1
Let me put it a better way, then, all that cool stuff Xerox invented at PARC? Xerox wasn't the one who made the products that people use. Other companies either bought the rights to those things, stole the ideas, or invented them later independently. (In general.)
Google doesn't have that problem.
Now that I've explained the joke to DEATH, I hope you can appreciate the genius of the brevity originally deployed.
Laugh, varmint! *blam!*
Re:Becoming the new Xerox Parc
by
pimpimpim
·
· Score: 1
-- molmod.com - computing tips from a molecular modeling
Python was used in Google's first academic version
by
Anonymous Coward
·
· Score: 2, Informative
In L&S's "Anatomy of a search engine article" they wrote:
In order to scale to hundreds of millions of web pages, Google has a fast distributed crawling system. A single URLserver serves lists of URLs to a number of crawlers (we typically ran about 3). Both the URLserver and the crawlers are implemented in Python
In case you missed it, the point of this post is that no matter how many times we repeat something on Slashdot, that doesn't make it a undeniable fact. Yes, it's completely offtopic and it was modded fairly, but it's still a good read.
At first, I thought somebody was playing a prank.;)
Re:Wikipedia entry?
by
gardyloo
·
· Score: 2, Funny
So is my Encyclopaedia Brittanica. With red ink. Take THAT, Wikipedia!
This doesn't mean they want to "control" Python
by
Augusto
·
· Score: 4, Interesting
Considering that last year google hired some of the main Java language guys (which still do talks about Java) last year; Joshua Bloch and Neal Gafter). Their background is mainly language/compiler design, my impression was and still is that I wouldn't be surprised if google was just working on their own (new) language. This just confirms this a little bit more...
--
- sigs are for wimps.
Re:This doesn't mean they want to "control" Python
by
xTantrum
·
· Score: 2, Funny
now that would be really interesting to see. guido can give them the simplicity and exceptional design of python for robust RAD and the JAVA team can give them....uhhh...hold on let me think..
-- $action = empty(PHP) ? backToC() : unset(PHP) ;
"when the concrete cases are understood, the abstractions are readily
Re:This doesn't mean they want to "control" Python
by
Surt
·
· Score: 2, Interesting
It would be fantastic to see a language from google that: 1) is open source so the people who avoided java for that reason can participate 2) is brace constrained, so the people who hate python for whitespace can participate 3) has a full frontend for gcc, so the optimization freaks can participate 4) has a vm, so the web folks can love it 5) has an interpreter, so the python/ruby people can enjoy it 6) has multiple inheritance or explicit delegates, so the people who can't live without that aren't stuck in c++ 7) builds on all the great features we've been seeing in language design lately 8) has the functional programming features needed to draw in the ML/LISP crowd 9) comes with a nice well rounded library with a good naming convention 10) has the backing of a big name computer player (hence google)
Is it too much to ask?
Please, google?
-- "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Re:This doesn't mean they want to "control" Python
by
Anonymous Coward
·
· Score: 1, Informative
Danny Thorpe was also recently hired (Borland Chief Scientist, Delpi/Kylix compiler architect).
Re:This doesn't mean they want to "control" Python
by
Pxtl
·
· Score: 1
but what of us losers that like Python tabbing?
Re:This doesn't mean they want to "control" Python
by
Surt
·
· Score: 2, Funny
Give yourself time, you'll recover.
-- "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Re:This doesn't mean they want to "control" Python
by
strstrep
·
· Score: 4, Insightful
Hasn't Perl already done 80-90% of that for years?
Re:This doesn't mean they want to "control" Python
by
Surt
·
· Score: 1, Insightful
Perhaps I omitted having a sane syntax.;-)
-- "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Re:This doesn't mean they want to "control" Python
by
aled
·
· Score: 1
That language would be called TrashCan.
--
"I think this line is mostly filler"
Re:This doesn't mean they want to "control" Python
by
kwoff
·
· Score: 2, Funny
By "sane", I assume you mean "not conducive to implementing
the language features you listed", since apparently only the
"insane" language has managed to do that.
(Now watch, whereas your flippant comment was marked Insightful,
I will be a Troll.)
Re:This doesn't mean they want to "control" Python
by
doperu
·
· Score: 0
Tabs in python cost millions for peoples who working together on projects.
Re:This doesn't mean they want to "control" Python
by
Surt
·
· Score: 1
Yeah, I clearly meant that to be a funny. I haven't looked at perl in a while now, but the last time I looked it was missing at least a couple of the features. And really, I think that the naming convention feature means not over-using (or allowing) the use of single characters to represent complex operations which leads to cryptic code. I've seen a lot of very cryptic code in older perl versions, maybe it has gotten better.
So all in all, perl really does violate at least a couple of items on my list, and doesn't have a big name promoter, which basically puts it in the same category as every other language: not quite there.
-- "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Re:This doesn't mean they want to "control" Python
by
Phroggy
·
· Score: 1
Perl is flexible enough to allow you to write crappy unmaintainable code if you want to, and sometimes that's OK. Yes, Perl has a lot of operators, and until you learn them, it's confusing, but those little operators are easy to type and can really make things go faster when you're trying to write code; they allow you to be very expressive, and write the way you think instead of constraining you into function calls.
My sig is not an example of what well-written Perl code looks like.
-- $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$]; $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
Re:This doesn't mean they want to "control" Python
by
Surt
·
· Score: 1
The problem (to me) is that while a multitude of operators is concise, it does not convey the meaning of code quickly to a second programmer. A language that relies too much on operators rather than named functions runs into big problems when you have a 40k file codebase being worked on by a team of 50 programmers. So for my ideal language, I'd actually prefer to use well named functions rather than a lot of operators. In fact, I would very much like my language to discourage / impossibilate writing crappy unmaintainable code.
-- "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Re:This doesn't mean they want to "control" Python
by
Phroggy
·
· Score: 1
The problem (to me) is that while a multitude of operators is concise, it does not convey the meaning of code quickly to a second programmer.
It's not a problem when the second programmer is thoroughly familiar with the language. Anything that isn't clear should be commented, or perhaps extracted into a clearly-named function. The problem is that many Perl programmers are not thoroughly familiar with the language. Perl doesn't require you to learn the whole language before you can start using it; beginners can learn and use a small subset and still be productive. However, since everybody learns a slightly different subset, it's very difficult for non-experts to understand someone else's code (because they used parts of the language you haven't learned yet). This is less of a problem for languages that rely more on functions, because functions can always be looked up in a reference, but Perl has a complex syntax, and references are much less helpful there (how can you look up the meaning of ($ref->{$key})[0]=~/^(\d+)$/?$1:0 in a reference?).
By the way, assuming $ref is a hash reference, $key is one of the hash keys, and each element of the hash is an array reference, this will check to see whether the first element of the array corresponding to this key looks like a positive integer (i.e. contains only numbers, no other characters), and if so, return that number, or if not, return 0. I don't deny that this is overly complicated; perhaps this will clear it up a bit:
sub validateNumber {
my($num)=@_;
return $num=~/^\d+$/?$num:0; }
print validateNumber(($ref->{$key})[0]);
Both examples assume the value to not be undef; it would probably be better to explicitly trap for that (otherwise you'll get a non-fatal warning at run-time if an undef value is encountered while strict and warnings are enabled, which they should be).
-- $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$]; $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
Google and Python have always been friends
by
Slick_Snake
·
· Score: 1
Google is powered by python so having its creator on the payroll will rock.
Semi-Off-Topic Python vs. Perl discussion
by
kin_korn_karn
·
· Score: 2, Interesting
While Perl is still my sentimental favorite, I'm open-minded about programming languages, especially those that are as widely used as Python. I've never been able to really understand Python, though, because of its bizarre syntax. (insert Perl syntax joke here) It's always seemed easier to just do what I need to do in Perl, since I know it so well.
If I'm reasonably proficient in Perl, what would I gain by using Python instead? I'm not trying to troll here, I'm just wondering what I'm missing. If Google uses it internally it must have an advantage over other languages, but I've never not been able to do something in Perl if I really wanted to.
Re:Semi-Off-Topic Python vs. Perl discussion
by
gorzek
·
· Score: 5, Informative
I can't speak for anyone else, but I did make the leap from perl to Python, and have no regrets.
I still use perl for quick-and-dirty text-processing and so forth, but Python is excellent for creating scripts you want to be able to maintain later. The syntax is sparse (compared to most other languages), so there isn't as much code to maintain. I found most of my favorite perl features were also represented (foreach, regular expressions, etc.)
People who've never spent much time with Python will gripe about the whitespace. It was never an issue for me, and I've never had problems with it.
If you plan to do any significant object-oriented programming, Python is very good for that. For procedural programs, the only edge it has over perl is readability, due to the concise syntax.
One thing to keep in mind with Python, however, is that it does NOT convert between numbers and strings automatically, while perl does. It's no big deal to cast a number as a str() or cast a string as int(), but if you don't know about it beforehand, it will get you.
From what I understand, Python is also very nice for metaprogramming, but I've never used it for that. I have used it for quick command-line utilities, GUI apps (with wxPython), and game programming. The object-oriented features are really why I prefer it over perl. They are intuitive, and you have a lot of power over how the objects behave in various circumstances.
If you have any C# experience, I've found you can port C# code to Python with only minor (mostly cosmetic) changes. (This obviously excludes using libraries written for C#, though--I was referring to the syntax of the code itself as being easily ported.)
Sorry if this explanation wasn't technical enough. I was just trying to lay out the general reasons I found a move from perl to Python relatively painless.
Re:Semi-Off-Topic Python vs. Perl discussion
by
Anonymous Coward
·
· Score: 1, Interesting
I've found that (what should be) simple things like manipulating multiply-nested arrays or basic OO programming can be very difficult in perl, even to the point that experienced users apparently just avoid those things (disclaimer: I am a beginner/intermediate perl user). I basically gave up trying to do much more than very basic programming in perl. In python I never hit such a learning curve wall. I know this raises the question of whether I am describing my own shortcomings rather than those of a language, but I don't think that explains it, because experienced perl programmers around me seem to have the same problem.
Re:Semi-Off-Topic Python vs. Perl discussion
by
drgonzo59
·
· Score: 2, Interesting
I switched from Java to Python. Today's hardware probably runs Python just as fast as the hardware 5 years ago ran Java. My reasons why I like like Python in decreasing order (some of them you have mentioned):
1. OO - with classes, inheritance and other OO goodies 2. scripted - no need to compile, easy to debug 3. powerful native data types - dictionaries (hashes), lists and sets(new in 2.xx) 4. simple syntax (indentation => code blocks) - a blessing in disguise, I can read anybody's Python program - the format is always the same 5. rich library and extensions - networking, GUI(wxWindows, Qt, Gtk, Tk...),math (SciPy, Numeric), regex, file and string manipulation etc. 6. can inline C code with weave, can manipulate C data in Python with Pyrex, can use JIT compile with Psyco 7. can use threads 8. is a completely free and open source unlike Sun's Java 9. has some functional/declarative constructs (lambda, map, reduce and apply) 10. i like the name Guido - it sounds cool (ok, ok I don't really know how to say it but I needed the 10th reason...)
Re:Semi-Off-Topic Python vs. Perl discussion
by
grumbel
·
· Score: 1
### If I'm reasonably proficient in Perl, what would I gain by using Python instead?
I would suggest you give Ruby a try instead, it mixes pretty much the best of both Python and Perl. Meaning it has nice looking regex, a 'normal' non indention based syntax and plenty of other stuff.
Re:Semi-Off-Topic Python vs. Perl discussion
by
Anonymous Coward
·
· Score: 0
> 7. can use threads
We've implemented multithreaded services on Python, and I can tell that threads on Python don't scale on SMP machines (only 1 processor is used by the interpreter), are slow, and the global interpreter lock (GIL) and the way reference counting works makes things even worse.
Hope they fix that someday....
Re:Semi-Off-Topic Python vs. Perl discussion
by
Hosiah
·
· Score: 1
I learned C first, then Lisp, then Python, then got curious and tried Perl. Speaking as one who went from Python to Perl, Perl struck me as more than a language: more like five languages fighting for control. Python struck me as in the same category as Lisp, both of them are so easy to learn, you'll flash back to BASIC. If you know Lisp and Python, you really see that the two languages have a lot in common - excepting the car/cdr/cons stuff, much of the syntax has similar logic. Statements in each come out sounding like Yoda when read aloud. This week I got fascinated by a new game show called "Deal or No Deal" and whacked up a quick 'n' dirty prototype in C using the ncurses library...and got halfway through before yearning for Python. Plus I downloaded the Wolvix live CD and had a ball with it (I reviewed it and link to it in my blog), once I got it going. About half the games on Wolvix (a) are the smoothest-running, most immersive games I've seen on Linux yet, and (b) are written using the Pygame library, which I'm dying to try.
Two and a half things I'm struggling with in Python: (1) Python is *squeaky* clean, but at the price of losing some backwards compatibility when they axe an old function. Those notes in the string section are making me nervous - I feel I don't dare use them too heavily because they're going away to be replaced by something else. (2) Whitespace - I understand that too many parenthesis in Lisp and too many braces in C are a problem with some people, but you *need* some kind of delimiters - so you have invisible delimiters like tabs and newlines where the braces were. Is that really that big a win? (3) In C, I was always frustrated by the "magic header file" syndrome, where you couldn't use a function until you'd found out which header file to include and which library to compile against. Python is getting that way with the "magic module syndrome" - the docs tell me to use such and such a function, but I have to run and look it up to find out which module...and just like with C library calls, god help you if your Python module is in a different place or a different version from where you thought it was...
I realize that these issues are side effects of having an almost fanatical devotion to clean, tidy code and simplicity, and I'll be the first to admit that it wouldn't be the same any other way. On the whole, it gains more than it loses. Perhaps this really *is* the right way to do it, and I'm just not used to seeing it this way.
Re:Semi-Off-Topic Python vs. Perl discussion
by
m50d
·
· Score: 1
I've never been able to really understand Python, though, because of its bizarre syntax. (insert Perl syntax joke here)
Just write properly indented C and then delete all your braces. That's all it is. If your indentation is right the braces are redundant, so why bother with them.
It's always seemed easier to just do what I need to do in Perl, since I know it so well.
That'll be the case with any new language.
If I'm reasonably proficient in Perl, what would I gain by using Python instead? I'm not trying to troll here, I'm just wondering what I'm missing.
It's nicer to write, IMO. Far fewer "gotchas" than any other language. And it's far nicer to read, making it much easier to maintain. You can look at a python script and see immediately what it does.
If Google uses it internally it must have an advantage over other languages, but I've never not been able to do something in Perl if I really wanted to.
If you really want to you can do anything in any language. But python makes it easier.
-- I am trolling
Re:Semi-Off-Topic Python vs. Perl discussion
by
kin_korn_karn
·
· Score: 1
It's nicer to write, IMO. Far fewer "gotchas" than any other language. And it's far nicer to read, making it much easier to maintain. You can look at a python script and see immediately what it does. Perl has a bad rep because too many people in the Perl 'community' are showoffs that code to demonstrate how well they've memorized all the various built-ins and idiomatic shorthand. You can write Perl code that's as readable as any other language, you just have to a) want to and b) have time for it.
It's easy to write quick and dirty one-off hacks in perl, so people use it for jobs that aren't supposed to be maintainable in the first place. Unreadable perl is kind of a self-fulfilling prophecy in that respect.
If you know a language well enough, it's always readable. And statements like "print" and "while" are nearly universal in what they do across all languages. A language has to offer more than a subjective increase in readability to be worth investing the time in learning - not all of us have the luxury of learning new languages just for fun.
Re:Semi-Off-Topic Python vs. Perl discussion
by
m50d
·
· Score: 1
You can write Perl code that's as readable as any other language, you just have to a) want to and b) have time for it.
As readable as C perhaps. You still have the punctuation-filled syntax which makes it completely incomprehensible for a non-perl programmer. And with python you don't need to want to, you'll write readable code unless you're deliberately trying not to.
It's easy to write quick and dirty one-off hacks in perl, so people use it for jobs that aren't supposed to be maintainable in the first place. Unreadable perl is kind of a self-fulfilling prophecy in that respect.
Up to a point. I write the same kind of one-off scripts in python. I won't ever need to maintain them, but if I did, they're perfectly readable when I look at them a year on.
If you know a language well enough, it's always readable.
But perl's "there is more than one way to do it" philosophy, and the huge number of special cases, means "well enough" requires you to learn a lot more perl than any other language. I know roughly the same amount of perl as tcl or lisp, but either of the others I can read someone else's code and see roughly what they're doing. Some perl is like that, but that's the perfectly-commented bits where it's clear there's been a lot of effort put into readability. Any perl script where the author hasn't been specifically trying to make it readable, I don't have a hope, which isn't the case with any other non-joke language I've come across.
-- I am trolling
Re:Semi-Off-Topic Python vs. Perl discussion
by
Mochatsubo
·
· Score: 1
If I'm reasonably proficient in Perl, what would I gain by using Python instead?
First off you need the strength of will to go out and take a look yourself. If you expect to be convinced by a few paragraphs written by people you don't know then you are hopeless. Stick with what you have time to research.
Re:Semi-Off-Topic Python vs. Perl discussion
by
kin_korn_karn
·
· Score: 1
I bet you're a lot of fun at parties.
Better article headline:
by
killmenow
·
· Score: 5, Funny
google.py:
import Guido
Re:Better article headline:
by
Anonymous Coward
·
· Score: 0
from Google import Guido
Re:Better article headline:
by
Anonymous Coward
·
· Score: 0
from __future__ import ruby
That's confirmation?
by
Anonymous Coward
·
· Score: 0
The confirmation refers back to the original announcement. It isn't independent confirmation so I don't see how it bolsters the argument.
Not that I doubt Guido was hired by Google, but couldn't some reporter phone him up?
Dynamic Typing
by
kevin_conaway
·
· Score: 2, Interesting
Let me first say that I love Python. I find that dynamic typing makes it easier as a developer and saves time. However, on projects where there are multiple developers and maintainers, is dynamic typing a hindrance? I suppose it comes down to if you document thoroughly what comes in and out of a function/class. Anyone have any thoughts on this? I'm curious
As you said, document. If that fails, instead of writing a mass of if type(..) statements, you could always write your own decorators (like @classmethod and friends):
If you do this, you could control precisely what happens at runtime. This is one of the great new features in Python:) Of course, there's a downside - it only gets checked at runtime.
I think a well-planned project would account for typing issues. Not to mention, Python has that type() function to tell you exactly what a given variable is, so if you simply don't trust the input, you can figure out what it is programmatically.
Re:Dynamic Typing
by
Anonymous Coward
·
· Score: 0
It's not a hindrance at all. We've used Python on several large-ish projects (equivalent C++ would be in the 2-3 million lines, I'd imagine) and it's never been a problem.
It's a valid concern you have, but it turns out it's just a theoretical problem - not one you encounter in practice.
FWIW, the suitability of Python over, say, Java or C++ actually *increases* with the project size - for a project with the same number of functional points, the Java/C++ becomes unmanageable more quickly.
Re:Dynamic Typing
by
mad.frog
·
· Score: 2, Interesting
However, on projects where there are multiple developers and maintainers, is dynamic typing a hindrance?
In my experience (with JavaScript/ActionScript, not Python): yes. Your mileage may vary.
I suppose it comes down to if you document thoroughly what comes in and out of a function/class. Anyone have any thoughts on this?
Hey, I've got an idea! We could have the compiler actually check to ensure that the documentation for argument types is present.
And for bonus points, it could also check to make sure that the types used match the comments.
We could call this, oh, I dunno, "strong typing"...
You unit test (and functional test) everything heavily. That is all.
Re:Dynamic Typing
by
Anonymous Coward
·
· Score: 0
Hmm, I think I'd prefer to call it "static typing".
A language does not need to have compile-time type checking to be strongly typed.
Re:Dynamic Typing
by
Anonymous Coward
·
· Score: 1, Insightful
No, we would call it static typing. The "strength" of the type system is orthogonal to the time when the checks take place (and often a poorly defined concept).
Thanks to the responders who corrected me... my brain thought "static" and my fingers typed "strong". (I think my brain is nearly done for the year...)
### It's a valid concern you have, but it turns out it's just a theoretical problem - not one you encounter in practice.
How to you solve type problems when you are refactoring code, ie. say you change the parameters a function or move a function to a different class ?How do you change the rest of the code that depends on the old code? In static-typed languages I would simply recompile and catch all the type errors the compiler throws at me, but in dynamic-typed languages so far I havn't really found a good solution to come anywhere near the ease that static languages provide when it comes to refactoring.
You are using the compiler to basically do a search through your source code.
Surely, you can find a working environment in which you can find all instances of a particular class or calls of a particular function without invoking the compiler?
### You are using the compiler to basically do a search through your source code.
Yes, and it makes quite a bit more sense then plain 'sed' or 'grep', since the compiler has a full understanding of the source code, while simply search through the code will hit a lot of wrong spots.
### Surely, you can find a working environment in which you can find all instances of a particular class or calls of a particular function without invoking the compiler?
Don't know any free ones for C++ (Eclipse maybe?), currently use GNU Emacs. Anyway, while the compile-and-replace way of doing it is not the fasted, its still a pretty painless ones, with Ruby or Python I can not even do that and I am left with a plain search and replace which will necessarily hit gazillions of wrong spots.
They probably don't exist for C++, because C++ users rely on the compiler.
Now, of course, compilers don't detect when you change around the order of arguments with compatible types, but you apparently don't worry about those.
Doing a search for a complete function name (and TAGS helps you use autocompletion) shouldn't have "gazillions" of false hits, unless you use cryptically short function names, or ones that are confusingly identical to variable names.
### Now, of course, compilers don't detect when you change around the order of arguments with compatible types, but you apparently don't worry about those.
Well, yeah, it isn't a 100% perfect solution, but swapping arguments around which have compatible types happens quite seldomly.
### Doing a search for a complete function name (and TAGS helps you use autocompletion) shouldn't have "gazillions" of false hits, unless you use cryptically short function names, or ones that are confusingly identical to variable names.
The 'joy' of C++ or in general OOP is that you do end up having tons of very short function names, since all, or most, function ends up being members of a class there is little reason to keep them long. So instead of shape_draw(Shape*) you have Shape::draw() and in the code it will just look like obj->draw(). The throuble is a simple grep won't catch the type of obj and have no idea at all which draw() it is actually referening to. Which is also the reason why I don't use etags, since it simply doesn't understand them either and thus is of no real help.
Re:Dynamic Typing
by
Anonymous Coward
·
· Score: 0
Dynamic typing is a different tool, thus you must use it differently than static typing. Instead of relying on type, rely on a method being there. And you may want your program to decide which methods to call based on type behind the scenes for you. Don't make that decision statically based on what you explicitly program - you'll often be wrong especially when you change the type of your object.
Eclipse actually does do your example for Java, and lots more very sophisticated refactorings. alt-shift-c is the shortcut for method signature refactor. You can reorder the arguments, and Eclipse will find all the places that the method is invoked and rearrange the arguments appropriately (finding subclasses, or if you're changing an interface, all sub-interfaces and implementations). You can also remove args, and it will remove them everywhere, and you can add arguments and have it fill whatever you like into the places that the method calls now need another argument (you can use null and wait for the NPEs or something like asdf which will instantly be flagged as a compile error, making it easy to find those places and fix them, since Eclipse can unfortunately not read minds yet and determine what the new arg should be).
It's that kind of tool support that I really miss when I program in Python, even though I much prefer Python as a language and wish I could do more Python at work. Eclipse (and IntelliJ too) is simply amazing, if you have the horsepower it requires. Every few months I try the Python IDEs to see if their refactoring support is approaching what you can do with Eclipse, but I'm always disappointed. Admittedly, it is incredibly difficult with a dynamically typed language, but the smalltalks seem to have had great refactorings, based on hearsay. Perhaps one day...
Re:Dynamic Typing
by
m50d
·
· Score: 2, Insightful
You have to document the function arguments. Static typing doesn't change that, it just hides some of the most immediate problems from not doing so. (An int still needs documentation saying what values it can have). I feel dynamic typing is such a timesaver and improves flexibility so much that its benefits outweigh the costs. But whatever works for you.
I must admit I do most of my serious programming in Common Lisp, which has a very different approach to OOP than C++ does. I have about 30 seconds of experience with Python, so I can't say anything useful there.
In *principle*, any tool can be given just as much intelligence as the compiler; in C++, it could trace the types of variables, by class and superclass and subclass, and reliably find calls to any particular method specific to the class that has had the change.
In dynamic languages, of course, there is a great deal of information that isn't actually specifically stated in the code, and can only be definitively found at run time.
Still, all is not lost; it is not just the language that is different, but the whole approach programmers take to their task, including naming conventions, OOP design techniques and patterns, source code organization, etc., etc.. Many times in these kind of debates, the static side will say "but the compiler finds so much for me to fix" and the dynamic side says "funny, I never noticed myself having that problem." They both manage to get work done, somehow.
Freaked out there for a second...
by
lpangelrob
·
· Score: 0
Given that my last name is extremely similar to Guido (to the point that 4 of 5 letters are the same and the 5th looks like the remaining), I was extremely, extremely confused when I saw the headline. And ready to find the tinfoil. And wondering whether the headline's parallelism to "Girls Gone Wild" meant anything...
Then I realized it would be pretty cool to work for Google. Time to sharpen those Python skills...
I think that people immediately assume because he goes Google, that means Google as a whole is somehow going to revolutionize all the ways it does things to the 'Python' way (whatever that is). That is hardly going to be the case. He is just one man, who can, if they give him enough authority, make some significant contributions, but Google is already deep into its "ways" and it's difficult in terms of "quick overhauls" to do much of anything in terms of change.
It might be nice to see some of the Guido python style in Google's future software though.
Often times it's only required to rewrite the most crucial bits of an app. This is fairly straightforward in Python.
PyPy: a Python implementation written in Python
by
YA_Python_dev
·
· Score: 4, Informative
Python has moderately fast bytecode (google stuff could improve a lot here)
A very interesting project that aims to create a faster Python implementation is PyPy, funded by the EU, by google (with Summer of Code) and by a lot of programmers that donate their own time.
Even the Psyco guys say that the future is in PyPy!
-- There's a hidden treasure in Python 3.x: __prepare__()
Re:PyPy: a Python implementation written in Python
by
pherthyl
·
· Score: 1
Sounds cool, but "The self-contained PyPy version (single-threaded and using the Boehm-Demers-Weiser garbage collector) now runs around 10-20 times slower than CPython" it looks like they still have quite a ways to go.
Reminds me of the hypesters (yeah I made it up) around Java that said it would be faster than C code eventually. Never happened. Hopefully the PyPy people have more luck.
Re:PyPy: a Python implementation written in Python
by
YA_Python_dev
·
· Score: 1
Reminds me of the hypesters (yeah I made it up) around Java that said it would be faster than C code eventually.
You are right, but this isn't only hype: what they mean when they write that "the secret goal is being faster-than-C" is not that your Python program will run faster than a C equivalent (although try to write a simple md5sum in Python that reads 64kB per loop and benchmark it against the GNU implementation... you will be surprised;-)). What they mean is that they hope to run Python programs faster that the C Python implementation.
And this can appear to be more plausible when you consider that in a loop like this (ignore the underscores):
n = 0 for i in range(100): _ _ n += i
the current CPython implementation consider both i and n to be completely generic objects, while a good optimizing compiler can understand that they are (almost) always guaranteed to be integers.
-- There's a hidden treasure in Python 3.x: __prepare__()
Re:PyPy: a Python implementation written in Python
by
Anonymous Coward
·
· Score: 0
No, they do actualy mean faster then the C equivalent.
Re:PyPy: a Python implementation written in Python
by
heinousjay
·
· Score: 1
Ah, bigotry. It's wonderful how prevalent it is in technology.
-- Slashdot - where whining about luck is the new way to make the world you want.
Re:PyPy: a Python implementation written in Python
by
Anonymous Coward
·
· Score: 0
Hmm... seems interesting. Do you have any links about this? Thanks.
Re:PyPy: a Python implementation written in Python
by
Anonymous Coward
·
· Score: 0
From the PyPy site:
Rumors have it that the secret goal is being faster-than-C which is nonsense, isn't it?
If this was about beeing faster then CPython then the "which is nonsense, isn't it?" part would make no sense as Psyco already does that. Whatever they actually hope to achieve that is a different question, but it's certainly a good goal to srtive for.
Re:PyPy: a Python implementation written in Python
by
Anonymous Coward
·
· Score: 0
If this was about beeing faster then CPython then the "which is nonsense, isn't it?" part would make no sense as Psyco already does that.
It actually doesn't. Psyco+CPython is faster than CPython in cases where your computations are highly repetitive, because the overhead of generating/caching the optimized paths of executions will be more than made up by the reuse of the cached optimized paths. If your program has a very low repetition rate of code execution (no recursion, no loops, few use of basic types,...) then not only will Psyco not be faster than CPython but it may very well be slower by up to an order of magnitude.
The place where Psyco performs the best is mathematical-like computations, because it has very few data paths to generate and reuses them a lot (on a fairly naïve implementation of Markus-Lyapunov fractales calculation, adding Psyco yields a tenfold improvement in execution speed for example... but compiling Python code to native through the use of the Shedskin Python to C++ compiler yields a code multiple orders of magnitude faster)
Google on track to Monopoly
by
WolfZombie
·
· Score: 1
I see Google on a slow steady track to gaining a Monopoly. Step 1: Undermine all current Monopolies with "Free" products paid for by advertising. Step 2: ??? Step 3: Monopoly!
Re:Google on track to Monopoly
by
Colin+Smith
·
· Score: 1
Right, a monopoly on free web searching, a monopoly on free email and a monopoly on free instant messaging.
-- Deleted
Re:Google on track to Monopoly
by
WolfZombie
·
· Score: 1
Yeah, free until they knock out the big giants currently in the market. What I am afraid of is when they knock out the competition by being free and then start charging. Being a very popular publicly traded company, this will happen eventually.
Re:Google on track to Monopoly
by
sickofthisshit
·
· Score: 1
If Google figured out a way to charge people for search at a price that could beat the ad-supported competition, that would be a huge BENEFIT for the world-wide web.
There's so much potential on the web that is held back by an inability to effectively charge even minimal fees.
In the meantime, back in the real world, Google is profitable on the basis of advertising revenue.
Xerox Parc was a demonstration of how
by
crovira
·
· Score: 1
some people just don't 'get it.'
Xerox is the best example of people who give away the store trying to sell the butt wad to their customers.
They were so focused on selling photocopiers that any idea presented to them had to be couched in terms that they could understand. (Their 'selling seminars' were also, in my opinion, tissues of lies because the product sold itself, in spite of what those Bozos were spewing. When they got some competition the company just folded until the got some management who hadn't 'drunk the kool-aid'.)
PCs GUIs and laser printers were beyond their ability to comprehend them that it was useless to even try.
-- MSBPodcast.com The opinions expressed here are my own.
If you don't like 'em... Think up your own stuff.
complete conjecture
by
abes
·
· Score: 2, Insightful
Perhaps the parallels between Google and Netscape are as close as some speculated. Could Google be trying to write their own 'OS'? I doubt very much that they actually want to write an entire OS, but I suspect they do want to be able to provide internet-applications, as they have already started on this endevaour (toolbar, and Google Earth). What do they need to do this? Servers to provide content (check), a multi-platform GUI (Firefox toolkit?, Opera?), and a language to bind them together (Python?).
AJAX is working for Google fairly well right now, but it's probably not an end-all answer. Javascript is fine for writing small apps, but it's not that great of a language. And even with the distance diminishing between browsers, it's still a pain to write cross-browser code. One of the great accomplishments I've seen of javascript (besides maps.google) is the FCK editor, but even that can be slow, and takes large amounts of memory.
Looking ahead, I suspect Google knows that Javascript will eventually have to dumped. M$ already has an answer,.net. They have their browser, and they can afford not to have to worry about being cross-platform.
In the end, the web browser is not a great for doing things besides browsing the web. On top of that, with EOLAs legal suit against embedded applications, full fledged internet apps seem to be the only way to go. If Google is to survive, they need the tools and framework in order to deploy such apps.
Please mod the parent up! AJAX is a very bad stack technically. Here are the steps for google to build a platform that doesn't suck:
1) Kill HTTP/XML for RPC. Buy http://www.zeroc.com/ and open-source ICE. 2) Kill JavaScript. Throw manpower behind a FAST, multi-language, multi-platform, open VM. Java is not it for numerous reason. Mono would be the best current candidate technically. Perhaps Parrot. There should not be a war between Ruby, Python and C#, if the platforms are united in VM. 3) Kill HTML. Pick a widget set and make sure it works flawlessly on the before-mentioned VM. Then extend it to create nice sexy controls.
By the way MS is doing all of this with.NET already...
If you mod me down, I shall become more powerful than you can possibly imagine.
The Zen of Python
by
Anonymous Coward
·
· Score: 2, Informative
For the curious......
The Zen of Python (by Tim Peters)
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!
Re:The Zen of Python
by
Anonymous Coward
·
· Score: 0
Amazing. All rules that Bjarne has broken with C++. Personally, I program in C for a living. But I do low-level type stuff. Python is pretty elegant when you compare it to C++ or Ada.
But its still a bit too dynamic at times for me. Oh well.
the only thing lame here is your dick. monty python rules dumbass. its awesome humour!!
Guido is Dutch you fool!
by
Anonymous Coward
·
· Score: 0
Then again you're an idiot for posting FP messages...
No, really. It's just you.
by
Anonymous Coward
·
· Score: 0
Bitter? Party of one?
Python vs. compiled Java and C
by
drgonzo59
·
· Score: 4, Interesting
The ability to inline C code in Python rocks.
I like weave but I am waiting to see what will come out of the PyPy project - the author is the one who wrote Psyco (the JIT compiler for Python).
Then there is Pyrex where Python can manipulate C data with language extensions, as opposed to weave where C code is inlined into the python code and Python data is manipulated in C.
It is true that as a scripting language Python is slower than (byte)compiled languages. But it is slower by a constant factor. In other words people would say "Your Python solution is 4x slower than my Java solution!". What this means though is that just by upgrading the hardware that Python runs on, one can reach the speed of execution of the compiled program. In other words Python on an Athlon 64 fx 57 might run faster than java bytecode on a 1Ghz Athlon, or might even run faster than C on a 100Mhz machine (I am just making these numbers up, maybe someone knows of some benchmarks?). The point is that application that required C 15-20 years ago can probably be re-written in Python now.
Re:Python vs. compiled Java and C
by
Anonymous Coward
·
· Score: 2, Interesting
It is true that as a scripting language Python is slower than (byte)compiled languages.
Python IS byte-compiled.
But it is slower by a constant factor. In other words people would say "Your Python solution is 4x slower than my Java solution!".
I'm not sure what the significance of this is. It is not possible to accurately predict the performance differential prior to actually trying it. Once you try something, you can see that it takes X times as long as something else, which means if you upgrade the hardware appropriately (CPU and/or memory bandwidth), your performance will increase accordingly. This is true of anything, including writing something in C and then rewriting it to go faster.
The point is that application that required C 15-20 years ago can probably be re-written in Python now.
That is rather understating the case. 20 years ago many of us were using 1 MHz 8-bit machines. Hardware is now commonly 2 GHz 64-bit machines. That's more than a 16,000-fold increase. Python is a lot better than 1/16000th the speed of C.
Depending on what you're doing, it can be nearly as fast as C, if you are using a standard module which is implemented in C. E.g. various forms of text processing and even image processing (PIL).
If you are using a lot of Python code instead, you might be 1/10th or 1/100th the speed of C. Then you use http://psyco.sourceforge.net/ If that's not fast enough, it often turns out that just re-writing a small part in C (the main bottleneck) can speed things up dramatically.
You also have to keep in mind that a multiple-factor is not the only important part. For example, if you have a 3D game engine that is controlled by Python and does its rendering in C, the Python framework might take 1 ms per frame whereas the C framework might only take 0.1 ms. Only 1/10th the speed, you think? Not at all, because your theoretical framerate (1,000 fps vs 10,000 fps) is not important when the actual rendering in C takes 30 ms either way. Total frametime is 31 ms vs 30.1 ms, which is 32.25 fps vs 33.22 fps, less than 1 FPS difference. Additionally, if your graphics card is the bottleneck, it won't matter as much that you're burning extra CPU on Python, because you're already sending the GPU about as much as it can handle.
Re:Python vs. compiled Java and C
by
kpharmer
·
· Score: 2, Interesting
> It is true that as a scripting language Python is slower than (byte)compiled languages. But it is slower > by a constant factor.
Python is just as fast as c or java when it comes to io-intensive applications: http://www.osnews.com/story.php?news_id=5602&page= 3 That code that cannot be optimized by Pycho is considerably slower, though the above benchmark exaggerates it through errors in their use of python.
My application processes over twenty million events a day through python - which includes transforming each event, and then applying a metadata-driven validation against each as well. The application is designed to handle a billion events a day. Performance is not a problem. Though at some point we might end up rewriting a few functions in c. We originally thought we would by 10 million events a day, but now realize that we should be fine until about 100 million a day.
And the benefits? Very low labor costs, quick time to market, easy maintenance, almost no data quality problems due to code defects. The small performance trade off has been an extremely good compromise in my experience.
Re:Python vs. compiled Java and C
by
drgonzo59
·
· Score: 1
Sorry for the mistake, you are right, python is byte-compiled. I got JIT compiled to native confused with just bytecode compiled in my head (I know about Psyco but it is not used by default).
I really just guessed on the numbers of how much faster C or java bytecode would be than Python.
The reason I mentioned the constant multiple factor was that the other alternative could have been for example an exponential difference (I'll give an example below). Let's say printing to console in python takes 5 times longer than printing to console in C. Now the hardware is upgraded and the speed of the CPU is about twice as fast as before. But printing in python still takes 5 times longer than printing in C. After a couple of such upgrades (which should come about once in 18 months according to the good 'ol Moore's law) Python will run as fast as C ran just 2 or so upgrades ago. That is good news for Python. The stuff that a while ago just had to written in C for purely CPU performance (not taking into account IO bottlenecks) can now be written in Python. This is true in genaral for computers we use today. Because they are all basically Turing machines.
But it turns out that in the case of a quantum computer (if there was one functioning) and the problem of factoring, this would not have happened. If, I had to factor a certain number. A classic machine (a turing machine) could do it X times slower than a quantum computer. Now the speed of the PC is doubled (say the # of bits in the registers, bus, and memoory is doubled) and the speed of the quantum computer is also doubled (double the # of quantum bits) then the quantum computer might be X*X=X^2 faster. On the next similar hardware upgrade it would be X*X*X=X^3 faster and so on. That would be "bad news" if there was any intention of eventually solving some factoring problem in the future with a classical machine that the quantum one can solve today - it means it will _never_ be able to catch up. It would have been as if certain problems that need C today would never be able to be solved just as fast in Python not matter how much faster the classical computer will be upgraded.
Re:Python vs. compiled Java and C
by
drgonzo59
·
· Score: 1
Python is just as fast as c or java when it comes to io-intensive applications:
That is because I/O is the bottleneck. In other words a program in C can execute its code in 1 ms but then have to wait 10 ms for next input you might as well write the code in Perl or Python and have it execute 9 ms and have it just wait 1 ms until next input. The programs, as far as the benchmark time is concerned will probably run at the same speed. In other words, I/O instensive applictions should be used mostly to test IO and not the programming languages.
Speaking of I/O performance. Is it possible I wonder to have an IO intensive Python script run faster than C? Actually it is possible. Python could have better caching mechanisms for example. Or _what if_ the interpreter could scan ahead and guess when/what the next IO will be and try to pre-fetch the data or prepare the output channel (sometimes speculatively) until the line is actually interpreted. So if I have a loop that fetches a line at each iteration.
for line in filehandle: processLine(line)
There might be some intelligent mechanism to anticipate and guess a repeated line fetch from the file and so 100 lines would be pre-fetched by the interpreter. The C compiler might not have this ability so it might seem that in certain cases IO in Python could be faster.
Re:Python vs. compiled Java and C
by
kpharmer
·
· Score: 1
> Speaking of I/O performance. Is it possible I wonder to have an IO intensive Python script run faster than C?
I think your point is valid:
The first performance technique i usually pursue is to just increase read buffering so that you're reading 4k+ in each time from disk. And that's the same in c as it is in python.
The next is to locally cache data: in which the top 10-100 or so entries are kept in a local list. This is far easier to do in python than c, and can result in a big boost.
The next is to consider other more complex options like proprocessing the data, processing in steps with separate sorts, etc. All of these take time, which I'm more likely to be able to afford if I'm writing in python than c.
Beyond those techniques I'm probably going to spend most of my time on hardware and the data store itself, which is irrelevant to programming language.
Re:Python vs. compiled Java and C
by
Cyberax
·
· Score: 1
Well, now we have a game almost completely written in Python. This game is called Civilization IV.
It's amasing! I never thought it is possible to make a TURN BASED strategy game which will work too slow on P4M-1.6Ghz-512Mb computer. But now Civ IV proves me wrong.
Re:Python vs. compiled Java and C
by
djdanlib
·
· Score: 1
It is true that as a scripting language Python is slower than (byte)compiled languages. But it is slower by a constant factor. In other words people would say "Your Python solution is 4x slower than my Java solution!". What this means though is that just by upgrading the hardware that Python runs on, one can reach the speed of execution of the compiled program. In other words Python on an Athlon 64 fx 57 might run faster than java bytecode on a 1Ghz Athlon, or might even run faster than C on a 100Mhz machine (I am just making these numbers up, maybe someone knows of some benchmarks?). The point is that application that required C 15-20 years ago can probably be re-written in Python now.
When I say "Your Python solution is 4x slower than my Java solution!" I mean to say that I want to use my Java solution on my servers, because I don't want to (or can't because the technology just doesn't physically exist) upgrade to something 4x faster to run your Python solution. I don't care if it makes me breakfast and sings a song and dances around, and it's got all these cool knobs, levers and blinking lights. Suppose I'm forced to run my Java solution on a dedicated dual-3 GHz machine just to get it to keep up with my needs. If I am to consider a scripted language replacement for a tool I already have, I must observe that it works at least as well as what I already have. I need to break even, not tell all my bosses, users and clients that the new system is exactly the same as the old one except 4x slower. I won't use a slow solution when a much faster solution meets or exceeds my needs. It has nothing to do with personal preference, it has to do with the people who make my job exist.
This is why we care about speed. Optimization is not for the little guys at home tinkering with their cron jobs or 100-hits-per-week webservers. Optimization is for the corporations, who benefit from that.1% speed improvement when that.1% gets run a few million times a day and time is money.
Yeah, I know you might only have been writing about the speed factor. But it's important that people understand that just because it CAN be used for something doesn't mean that it SHOULD be used in place of the other solutions.
Re:Python vs. compiled Java and C
by
drgonzo59
·
· Score: 2, Insightful
I believe that "Premature optimization is the root of all evil." But most of all I believe in "the right tool for the right job".
Usually the first saying is applied when someone has decided on the language, say C, and on their hardware. But when programming, instead of thinking of the algorithm and how to correctly write it, they think about how many registers can they use at the same time first and start with inlining of assembly code. I think though, that the same principle can be applied to the choice of language and hardware. In this the mistake would be to choose a lower level language just because of speed, even though the problem can be solved _much_ faster (in terms of developing time) in a higher level language.
For example I had to write a little project to process text (about 2 million articles including some pdf files) then to do some scientific computation and finally design a reasonable GUI. The languages I new were C/C++/Java. I started with Java but I realized the project was just going to slow. I new what I wanted to get done, it is just it took a long time to write in Java. I looked around and tried a number languages Ruby, Perl, Python, even Matlab, tried to move some of the processing into MySQL as stored procedures. The best choice was to switch to Python. I didn't know Python at all but within a week I was fairly proficient with it. It is just as good of a OO language as Java and comes with a good set of supporting libraries. My project took about a couple of months and I wrote it in about 10K lines. I am estimating but I think I would have taken me twice as long to write it in Java and it would have been at least 15K or more lines long. The added problem with more code for the same problem is support and quality control. I can browse much faster through a 10k lines than through 20K lines to look for a bug or to some refactoring.
But all this doesn't mean that everyone, including you, should switch to Python immediately and drop C and C++. I acknowledge that Python is slower on average that other compiled (even JIT compiled) languages and some domains of application require speed most of all. As it turns out though, it is usually a vrey small part of code that needs to be sped up. In other words it is the good 'ol 80/20 rule (80% of the time the program is in the 20% of the code). What this means is that you could write the project faster in a higher level language like Python then choose certain critical part of your code (this requires having a head on the shoulders to know which parts are those and to know a little about algorithmic complexity O(n) stuff...) and optimize just that. This can be done beautifully in Python. As of now there at least 2 methods to do it: you can inline C code in Python using weave (hosted on the SciPy project page) or you can use a language extension to manipulate C data in Python using Pyrex. (I know there are other, but these are the most stable ones I think). I will use weave to inline some C code to speed up some of the computation. The result actually might be _faster!_ than Java.
In the end it all comes down to cost analysis, because you have a trade-off: for example, you can pay your developers twice as much and expect to pay twice for support and patches and have them develop in Java or you can achieve the same speed by allowing them to use Python (if they are smart enough they'll know how to optimize the critical regions after the program is runnig correctly) and you can buy extra(newer) hardware to compensate for the constant speed difference. If they can both optimize their Python code with C (in the end!) and buy faster hardware you might get a double benefit. But, of course, it is up to you (the company) to decide.
Most benchmarks suggest it's pretty much equivalent to traditional malloc & free in most cases. The biggest efficiency problem is the same as exists in most other object-oriented languages: you can't allocate multiple objects in a single allocation.
Unfortunately I think my languages are just too powerful for Google, really. I'm not sure they can handle them. That must be why they haven't called me yet...
In soviet russia Python googles beowoulf clusters on Linux!
But seriously. Why is google hiring the head of python? It seems very interesting. The speculation that they are creating a language is an interesting idea. However it seems very unlikely in my opinion. I mean why create a new language?
Google is moving at a very rapid pace and I don't think it can sustain this level of activity for a very long time. But then I don't know what there management setup is like. If they have flattened it like a startup.
Lets see what happens.
-- Charles Wyble
System Engineer
Easter Egg
by
Poromenos1
·
· Score: 4, Informative
In the interpreter, do:
>>> import this
-- Send email from the afterlife! Write your e-will at Dead Man's Switch.
huh? what's not obvious? === >>> import this The Zen of Python, by Tim Peters
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! ===
Hmm... I went to Google.com, and typed in "What should I eat for lunch?" I hit the "I'm Feeling Lucky" button, and it sent me here....
Does Google know something I don't know?
The Google Brain-Drain
by
Xthlc
·
· Score: 1, Interesting
Hmm. I'm glad Google is providing opportunities for so many worthy people. But, from what I've heard, it's an intensely secretive atmosphere with little publicizing of work outside your own group. For that matter, my impression has been that unlike most large tech companies, Google doesn't like to work with universities -- they prefer to just hire the best faculty outright rather than collaborate.
I'm reminded of the Microsoft Research brain-drain from a few years ago, when everyone was paranoid about what MSR was doing to universities. They gobbled up dozens upon dozens of top academics, and then . . . well, we haven't heard much from them since. Google is now doing the same thing to the open source community, to who knows what effect.
Re:The Google Brain-Drain
by
nnorwitz
·
· Score: 1
But, from what I've heard, it's an intensely secretive atmosphere with little publicizing of work outside your own group.
My experience has been exactly the opposite. After 4 months, I am still drinking from the information firehose.
Re:The Google Brain-Drain
by
burns210
·
· Score: 1
Google doesn't like to work with universities -- they prefer to just hire the best faculty outright rather than collaborate.
Re:The Google Brain-Drain
by
Xthlc
·
· Score: 2, Interesting
There's a bit of a difference between giving money and collaboration.
Money is great. I have nothing against money. But treating a university like a farm team is not quite the same as working with a group of researchers and then publicizing the results. The former benefits just Google and the students who are around when the money hasn't been used up yet. The latter benefits Google, the researchers, the students, and (ideally) everyone who comes after them in that particular field.
I'm thinking about the difference between Google's OSS approach (finance development, reap the benefits, hire the best that come out of that process) vs. id Software's approach (when something is no longer generating revenue, release it as OSS). How much of all the amazing stuff that I'm sure goes on behind Google's walls is going to vanish into the NDA void, never to be seen again? How much of that would've been shared with the public if its author had been working at a company that would allow it (vs. one that owns personal projects done on 20% time)?
I'm not trying to bash Google here; I just have some honest concerns about their overall philosophy of absorbing the best and the brightest into a single monoculture. Perfectly happy to be shown that I'm wrong.
Re:The Google Brain-Drain
by
Anonymous Coward
·
· Score: 0
They gobbled up dozens upon dozens of top academics, and then . . . well, we haven't heard much from them since.
More like you haven't been paying attention to them. The top academics kept publishing, only changing their affilation to MS Research.
Google at SCALE 4x
by
Anonymous Coward
·
· Score: 0
--
I am unique, just like you, and you, and you...
MOD PARENT FUNNY
by
Anonymous Coward
·
· Score: 0
One line?
That shit reads funny as hell as a paragraph!!
... course I'm totally high, so what would I know? Lemur with a minigun was what finally drew out that laugh you can't stop fast enough.
Also Semi-Off-Topic: Python vs. Java
by
backspaces
·
· Score: 1
My Gawd, folks responded really well to the Semi-Off-Topic Python vs. Perl discussion! This leads me to ask a similar question about Java vs Python.
Specifically: What can a Java programmer do that a Python programmer cannot?
I suspect the answer lies in the libraries -- Java has standard GUIs and lots of libraries for doing damn near everything. But the verbosity! I cringe every time I start a new Java project.
I tried Python/Jyton for a bit and indeed did get used to the white space thing. The classes seemed weird beyond belief: __foobar__ just sucks as does explict self reference for all instance variables. But again, I suspect I can get used to it.
Anyhoo.. any insights into limits from a Java point of view?
Re:Also Semi-Off-Topic: Python vs. Java
by
Anonymous Coward
·
· Score: 0
My company has a major application built in pure Python. We selected Python 4 years ago with Java as the only contender. We have found that Python has 2 major advantages
- It is actually multi-platform. It doesn't just claim to be and leave you to sort out the gritty details.
- Development is about 3 times fatsre than in Java.
On the negative side, libraries are not as mature as in Java. You have to spend some of the time you save on improving the libraries you want to use.
The standard library is starting to show age and you will probably use other libraries for some things. The Twisted networking library is brilliant in architecture, being created by a bunch of young developers. However, it needs some bulletproofing by some old cynics before it is ready for prime time.
In any case, we have never for a second regretted going for Python as our main language. We expected to have to do some things in other languages for reasons of speed, but so far this has not been necessary.
So, how do you explain the success of Python?
by
Anonymous Coward
·
· Score: 0
Those creatures contributing code to your project... they're called people. Although I haven't contributed to Python, it seems reasonable to assume that he has managed people quite well. I agree that what most people think of as management is pretty grindingly not fun. I'd still hire him to run a major project and insulate him from all the functions that look like management. He wouldn't feel like he was managing and nobody would feel that they were being managed by him and yet the results would be excellent.
Google strategy....
by
Doppler00
·
· Score: 2, Funny
#google strategy while(stock > 400):
for company in buyoutlist:
company.purchase()
spend_money()
for phd in smart_people_list:
phd.hire()
release_cool_google_tool()
(might be syntax errors in this, I work with so many languages I get confused myself)
try pydoc by Ka-Ping Yee
by
goon
·
· Score: 2, Informative
`... Python get some better
documentation tools as well so that
it'd be easy to generate documentation
on par with the Java and.NET
documentation....`
I make this same mistake everytime I program in python. If you dont read the docs [1] & other peoples code you can write functional code, but with a third to a half bloat penalty. That is of course unless you read lots of example code or the docs...
So check again. Because PyDoc [2] is a tool that displays the documentation, from the source. It is pretty much on par with Java and.Net.
Reference [1] google on `PyDoc the module`, `look for Ka-Ping Yee and PyDoc`: http://www.google.com/search?q=pydoc [Accessed Friday, 23 December 2005]
[2] PyDoc, `The python documentation module by Ka-Ping Yee and PyDoc`: http://del.icio.us/goon/pydoc [Accessed Friday, 23 December 2005]
However, on projects where there are multiple developers and maintainers, is dynamic typing a hindrance? I suppose it comes down to if you document thoroughly what comes in and out of a function/class. Anyone have any thoughts on this? I'm curious
You can minimise this problem by having strict naming conventions for variables, objects, methods etc that give hints to type and scope. For example:
fDoStuff( aiAmount ) takes an integer argument and returns a float
lsName is a local string holding a name
Then just make sure that any explicit casting ends with assignment to an appropriately named thing, e.g lfAmount = (float) aiAmount + Math.PI
And you can confim that conventions are being adhered to by running completed source files through a script full of arcane regular expressions. Hours of fun! Or use a strongly typed language.
Programming in dynamic languages using a static style (which is what you are advocating: declare all types, and use an pseudo-compiler to check for type agreement) is a total loss. You are giving up the main advantages of the dynamic language, and gaining nothing.
But hey, they say you can program FORTRAN in any language.
Reasons for this are obvious.
by
JollyFinn
·
· Score: 1
1. Guido announces changes to python. 2. Google uses lots of python. 3. Google thinks best way to remain compatible. 4. Google hires Guido to find best way to make all Google python code compatible to future versions. 5. Guido announces changes to python.
Perhaps not exacly like this, but I think hiring Guido to google is going to stabilize python atleast that much that future versions of python won't break the entire python based code base of Google.
-- Emacs is good operating system, but it has one flaw: Its text editor could be better.
I strongly suspect that the reason is that what Python loses in having a compiler idiot-check things, it more than gains back in sheer readability. In other words, it's useful when editing someone else's code to have a compiler check that all arguments are present an accounted for; it's more useful to have your time-to-understand what you're editing in the first place halved.
(I'm currently the 3rd maintainer of a large body of Python code, and I used to work as a Java programmer. I've also taken over as lead of open source projects started by others, in both languages. I prefer Python.)
And we have a couple other ideas on how to help the open source community. We're working on it!
Does that mean google will add a sourceforge like source managament to their arsenal? Somehow I'm not surprised...
Wonder what the future plans are? p2p system? IM service? ntp servers? anon ftp servers? mirror of the entire current net? internet2?:)
-- 1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
For large projects, use test driven development
by
bockman
·
· Score: 1
Alhough I used python only on one-man projects, I think the answer is : test driven development. When I use python for more than an utility script, I take the time to add a test section to each module, which attempts to test all module code. This way, when I change something in the module, I rerun the test and see if it still works (I often have to change the test code also). The test code is also a nice way to demonstrate how to use the module.
This is a good practice with any kind of language, since compiler checking doesn't give you guarantee that the code works. With very high level languages like Python it is easier to keep this practice: you just have to reinvest some of the devlopment time that Python allows you to save in implementing and mantaining a good test framework. You will end with a net gain in development time anyway, AND with a very robust code that will give you very little trouble during final integration, qualification and maintenance.
-- Ciao
----
FB
Elemental Security?
by
Anonymous Coward
·
· Score: 0
Does anyone know why he left Elemental Security, the startup he joined with Dan Farmer? That can't be a good sign for the company.
Python code runs parallel to 3D engine
by
CarpetShark
·
· Score: 1
Agreed on all points but one. Well said:)
The point where I would change something is... you added the 3D rendering time onto the python control code's time. But, these will run in parallel. You can tell the 3D card to render all that stuff, while the python (or any other) code is handling input events, doing AI, etc.
And now, the inevitable...
by
bookrats
·
· Score: 1
Well, I for one welcome our new Python-enhanced overlords!
That's great. I'm moving all of my scripts to Python now. If the guy's name is Guido, it's gotta be good!
hello dear sirs my name is jamesh i are india (bihar) can u guide me install red had linux 9?
well, let's hope the dupe has more info than those two lines.
...the only thing I can think of when I hear the name Guido is Tom Cruise driving a Porsche and being chased by a pimp.
Is it just my observation, or are there way too many stupid people in the world?
I really do think it has been hampered by having a less rigorously standardized basic class library than Java or .NET. It would be great to see Python get some better documentation tools as well so that it'd be easy to generate documentation on par with the Java and .NET documentation.
:)
And of course if Google wanted to really screw with both Sun and Microsoft, especially Microsoft, they could create their own cross-platform web and gui toolkits and a free RAD GUI builder a la Visual Studio for Python. If they could create a Python framework on par with Swing or Windows Forms, there'd be quite a bit of wailing and gnashing of teeth in both camps
Click here or a puppy gets stomped!
An offer you can't refuse
I thought it was funny...it was worth the time to read it anyway.
Everyone seems to assume that his main purpose with Google is to do Python.
I'm not saying that assumption is not true. It's just that he is a huge talent. If I had a gargantuan project to run, I'd hire him no matter what the language.
I wonder if the management types have figured out that anyone who can create and run a large successful open source project is a much better manager than the average MBA.
So... Since Guido got an offer and Larry Wall didn't, does that mean that Google has tipped its hand in the debate?
If brevity is the soul of wit, then how does one explain Twitter?
I imagine Google is prepared to use whatever language is appropriate for a project.
I rarely criticize things I don't care about.
Here he is in revenge of the nerds:9
http://sunsite.uakom.sk/sunworldonline/swol-02-19
2 years and no mod points. Join reddit. Because openness is good.
Maybe all the hype around Java did disappear. This is what you get when drinking decaf.
The winning offer was the one that had first-line indented paragraphs.
We just love a guy that gets so wrapped up in his work!
We've got penguins, we've got pythons, and we've got a lemur with a minigun...this zoo rocks!
After hearing the report, Ballmer threw a Hissssy fit.
Someone reported a problem with a mouse at Google Central and the recruiter got to work on hiring the python guy.
With a keen eye on competition, Google is just trying to catch up to the number of reptiles employed by Microsoft.
So is google becoming the new Xerox Parc?
In L&S's "Anatomy of a search engine article" they wrote:
In order to scale to hundreds of millions of web pages, Google has a fast distributed crawling system. A single URLserver serves lists of URLs to a number of crawlers (we typically ran about 3). Both the URLserver and the crawlers are implemented in Python
http://www-db.stanford.edu/~backrub/google.html
A way of returning a favor, perhaps?
He's back! In programming language form!
Google offers new jobs to both Bill Gates and Steve Ballmer.. then again.. just give me a job instead.. plz?
/. is good for you.
By hiring Guido, they are clearly stating that there's only one way to do it. And that way is, of course, with Python.
Yes, I see a Google search for 'perl' now has a transcript of Monty Python's Parrot sketch as the first hit.
Web, Search: pr0n
Google: No results found.
Search: Is there someone else up there we could talk to?
Google: No, now go away before I taunt you a second time.
In case you missed it, the point of this post is that no matter how many times we repeat something on Slashdot, that doesn't make it a undeniable fact. Yes, it's completely offtopic and it was modded fairly, but it's still a good read.
Bored? Browse Slashdot with a +6 modifier for Troll comme
lollerbiscuits indeed
His Wikipedia entry is already updated with the information:
;)
http://en.wikipedia.org/wiki/Guido_van_Rossum
At first, I thought somebody was playing a prank.
Considering that last year google hired some of the main Java language guys (which still do talks about Java) last year; Joshua Bloch and Neal Gafter). Their background is mainly language/compiler design, my impression was and still is that I wouldn't be surprised if google was just working on their own (new) language. This just confirms this a little bit more ...
- sigs are for wimps.
Google is powered by python so having its creator on the payroll will rock.
Yes!! Finally we are gonna see web-enabled ABC http://en.wikipedia.org/wiki/ABC_programming_langu age/!
While Perl is still my sentimental favorite, I'm open-minded about programming languages, especially those that are as widely used as Python. I've never been able to really understand Python, though, because of its bizarre syntax. (insert Perl syntax joke here) It's always seemed easier to just do what I need to do in Perl, since I know it so well.
If I'm reasonably proficient in Perl, what would I gain by using Python instead? I'm not trying to troll here, I'm just wondering what I'm missing. If Google uses it internally it must have an advantage over other languages, but I've never not been able to do something in Perl if I really wanted to.
google.py: import Guido
The confirmation refers back to the original announcement. It isn't independent confirmation so I don't see how it bolsters the argument.
Not that I doubt Guido was hired by Google, but couldn't some reporter phone him up?
Let me first say that I love Python. I find that dynamic typing makes it easier as a developer and saves time. However, on projects where there are multiple developers and maintainers, is dynamic typing a hindrance? I suppose it comes down to if you document thoroughly what comes in and out of a function/class. Anyone have any thoughts on this? I'm curious
Then I realized it would be pretty cool to work for Google. Time to sharpen those Python skills...
-Rob
Biblical fiscal responsibility
Best. Post. Ever.
Whom ever modded this off-topic has a near terminal lack of breadth of vision.
Say bad words about my book, in cold oatmeal, or I shall sue!
It might be nice to see some of the Guido python style in Google's future software though.
absolutely.
Often times it's only required to rewrite the most crucial bits of an app. This is fairly straightforward in Python.
A very interesting project that aims to create a faster Python implementation is PyPy, funded by the EU, by google (with Summer of Code) and by a lot of programmers that donate their own time.
Even the Psyco guys say that the future is in PyPy!
There's a hidden treasure in Python 3.x: __prepare__()
I see Google on a slow steady track to gaining a Monopoly.
Step 1: Undermine all current Monopolies with "Free" products paid for by advertising.
Step 2: ???
Step 3: Monopoly!
Cheesy Movie Night
some people just don't 'get it.'
Xerox is the best example of people who give away the store trying to sell the butt wad to their customers.
They were so focused on selling photocopiers that any idea presented to them had to be couched in terms that they could understand. (Their 'selling seminars' were also, in my opinion, tissues of lies because the product sold itself, in spite of what those Bozos were spewing. When they got some competition the company just folded until the got some management who hadn't 'drunk the kool-aid'.)
PCs GUIs and laser printers were beyond their ability to comprehend them that it was useless to even try.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
http://en.wikipedia.org/wiki/ALF_programming_langu age
AJAX is working for Google fairly well right now, but it's probably not an end-all answer. Javascript is fine for writing small apps, but it's not that great of a language. And even with the distance diminishing between browsers, it's still a pain to write cross-browser code. One of the great accomplishments I've seen of javascript (besides maps.google) is the FCK editor, but even that can be slow, and takes large amounts of memory.
Looking ahead, I suspect Google knows that Javascript will eventually have to dumped. M$ already has an answer, .net. They have their browser, and they can afford not to have to worry about being cross-platform.
In the end, the web browser is not a great for doing things besides browsing the web. On top of that, with EOLAs legal suit against embedded applications, full fledged internet apps seem to be the only way to go. If Google is to survive, they need the tools and framework in order to deploy such apps.
Google goes Greedo.
If you mod me down, I shall become more powerful than you can possibly imagine.
For the curious......
The Zen of Python (by Tim Peters)
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!
SO Funny! naming a language off a lame british tv show. Damn, that is so cool. I got it, I'll create a new language and call it Alf.
Stupid nerds.
Well... Some Mothers do 'Ave 'Em.
"I'm not impatient. I just hate waiting." - My Dad
Then again you're an idiot for posting FP messages...
Bitter? Party of one?
I like weave but I am waiting to see what will come out of the PyPy project - the author is the one who wrote Psyco (the JIT compiler for Python).
Then there is Pyrex where Python can manipulate C data with language extensions, as opposed to weave where C code is inlined into the python code and Python data is manipulated in C.
It is true that as a scripting language Python is slower than (byte)compiled languages. But it is slower by a constant factor. In other words people would say "Your Python solution is 4x slower than my Java solution!". What this means though is that just by upgrading the hardware that Python runs on, one can reach the speed of execution of the compiled program. In other words Python on an Athlon 64 fx 57 might run faster than java bytecode on a 1Ghz Athlon, or might even run faster than C on a 100Mhz machine (I am just making these numbers up, maybe someone knows of some benchmarks?). The point is that application that required C 15-20 years ago can probably be re-written in Python now.
Hmm Python's garbage collection...I dunno about that.
Its nice to be important but its more important to be nice
Now they just need Gigli.
https://www.eff.org/https-everywhere
'Flying chairs', coded by Steve 'monkey' Balmer.
Step 1) Develop several important and useful programming languages.
Step 2) ????
Step 3) Profit!
Unfortunately I think my languages are just too powerful for Google, really. I'm not sure they can handle them. That must be why they haven't called me yet...
Hexy - a strategy game for iPhone/iPod Touch
I once rigged IE to run client side PHP scripts. Worked flawlessly.
If they went for cubed instead of squared, shouldn't it just have fizzled, giving out c times less energy, instead of blown up?
Send email from the afterlife! Write your e-will at Dead Man's Switch.
In soviet russia Python googles beowoulf clusters on Linux!
But seriously. Why is google hiring the head of python? It seems very interesting. The speculation that they are creating a language is an interesting idea. However it seems very unlikely in my opinion. I mean why create a new language?
Google is moving at a very rapid pace and I don't think it can sustain this level of activity for a very long time. But then I don't know what there management setup is like. If they have flattened it like a startup.
Lets see what happens.
Charles Wyble System Engineer
In the interpreter, do:
>>> import this
Send email from the afterlife! Write your e-will at Dead Man's Switch.
"Googley greedoly woo" just doesn't have the same feel to it.
You can hold down the "B" button for continuous firing.
Does Google know something I don't know?
Hmm. I'm glad Google is providing opportunities for so many worthy people. But, from what I've heard, it's an intensely secretive atmosphere with little publicizing of work outside your own group. For that matter, my impression has been that unlike most large tech companies, Google doesn't like to work with universities -- they prefer to just hire the best faculty outright rather than collaborate.
I'm reminded of the Microsoft Research brain-drain from a few years ago, when everyone was paranoid about what MSR was doing to universities. They gobbled up dozens upon dozens of top academics, and then . . . well, we haven't heard much from them since. Google is now doing the same thing to the open source community, to who knows what effect.
Google will be exhibiting at SCALE 4x this year.
did he update that himself?
I am unique, just like you, and you, and you...
One line?
... course I'm totally high, so what would I know? Lemur with a minigun was what finally drew out that laugh you can't stop fast enough.
That shit reads funny as hell as a paragraph!!
Specifically: What can a Java programmer do that a Python programmer cannot?
I suspect the answer lies in the libraries -- Java has standard GUIs and lots of libraries for doing damn near everything. But the verbosity! I cringe every time I start a new Java project.
I tried Python/Jyton for a bit and indeed did get used to the white space thing. The classes seemed weird beyond belief: __foobar__ just sucks as does explict self reference for all instance variables. But again, I suspect I can get used to it.
Anyhoo .. any insights into limits from a Java point of view?
Those creatures contributing code to your project ... they're called people. Although I haven't contributed to Python, it seems reasonable to assume that he has managed people quite well. I agree that what most people think of as management is pretty grindingly not fun. I'd still hire him to run a major project and insulate him from all the functions that look like management. He wouldn't feel like he was managing and nobody would feel that they were being managed by him and yet the results would be excellent.
#google strategy
while(stock > 400):
for company in buyoutlist:
company.purchase()
spend_money()
for phd in smart_people_list:
phd.hire()
release_cool_google_tool()
(might be syntax errors in this, I work with so many languages I get confused myself)
`... Python get some better
documentation tools as well so that
it'd be easy to generate documentation
on par with the Java and
documentation.
I make this same mistake everytime I program in python. If you dont read the docs [1] & other peoples code you can write functional code, but with a third to a half bloat penalty. That is of course unless you read lots of example code or the docs...
So check again. Because PyDoc [2] is a tool that displays the documentation, from the source. It is pretty much on par with Java and
Reference
[1] google on `PyDoc the module`, `look for Ka-Ping Yee and PyDoc`:
http://www.google.com/search?q=pydoc
[Accessed Friday, 23 December 2005]
[2] PyDoc, `The python documentation module by Ka-Ping Yee and PyDoc`:
http://del.icio.us/goon/pydoc
[Accessed Friday, 23 December 2005]
peterrenshaw ~ Another Scrappy Startup
Good thing Google didn't go guido...
Google: "Certainly! What kind of pr0n would you like to see?"
"How about some lesbian three-ways?"
"I'm afraid we're fresh out of those."
"Well, no matter, how are you on bukake?"
"We never have bukake at the end of the week."
"Tish! Well, then, some face-sitting, please."
"Normally say 'yes'...today, their camera broke down."
"Not my lucky day, is it? Bondage?"
"Nope."
"Balloons?"
"Nope."
"Paris Hilton?"
"Oooohh, we've been out for a week, was expecting it today."
You can minimise this problem by having strict naming conventions for variables, objects, methods etc that give hints to type and scope. For example:
Then just make sure that any explicit casting ends with assignment to an appropriately named thing, e.g lfAmount = (float) aiAmount + Math.PI
And you can confim that conventions are being adhered to by running completed source files through a script full of arcane regular expressions. Hours of fun! Or use a strongly typed language.
Vino, gyno, and techno -Bruce Sterling
1. Guido announces changes to python.
2. Google uses lots of python.
3. Google thinks best way to remain compatible.
4. Google hires Guido to find best way to make all Google python code compatible to future versions.
5. Guido announces changes to python.
Perhaps not exacly like this, but I think hiring Guido to google is going to stabilize python atleast that much that future versions of python won't break the entire python based code base of Google.
Emacs is good operating system, but it has one flaw: Its text editor could be better.
I strongly suspect that the reason is that what Python loses in having a compiler idiot-check things, it more than gains back in sheer readability. In other words, it's useful when editing someone else's code to have a compiler check that all arguments are present an accounted for; it's more useful to have your time-to-understand what you're editing in the first place halved.
(I'm currently the 3rd maintainer of a large body of Python code, and I used to work as a Java programmer. I've also taken over as lead of open source projects started by others, in both languages. I prefer Python.)
In the thread Greg Stein says:
:)
And we have a couple other ideas on how to help the open source
community. We're working on it!
Does that mean google will add a sourceforge like source managament to their arsenal?
Somehow I'm not surprised...
Wonder what the future plans are?
p2p system? IM service? ntp servers? anon ftp servers? mirror of the entire current net? internet2?
1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
This is a good practice with any kind of language, since compiler checking doesn't give you guarantee that the code works. With very high level languages like Python it is easier to keep this practice: you just have to reinvest some of the devlopment time that Python allows you to save in implementing and mantaining a good test framework. You will end with a net gain in development time anyway, AND with a very robust code that will give you very little trouble during final integration, qualification and maintenance.
Ciao
----
FB
Does anyone know why he left Elemental Security, the startup he joined with Dan Farmer? That can't be a good sign for the company.
Agreed on all points but one. Well said :)
The point where I would change something is... you added the 3D rendering time onto the python control code's time. But, these will run in parallel. You can tell the 3D card to render all that stuff, while the python (or any other) code is handling input events, doing AI, etc.
Well, I for one welcome our new Python-enhanced overlords!