×

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

Thank you!

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

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

Getting a Grip on Google Code

Zonk posted more than 7 years ago | from the improving-on-the-old dept.

Google 91

netbuzz writes "Niall Kennedy reports on his blog that Guido van Rossum, author of the Python programming language, has begun showing off his first project since joining Google last year. 'Mondrian is a Web-based code-review system built on top of a Perforce and BigTable backend with a Python-powered front-end,' Kennedy writes. 'Mondrian is a pretty impressive system and is currently in use across Google.' Kennedy's description of Google's current code-review system sure makes it sound like it was in need of an upgrade. 'The Mondrian tool creates a much better workflow by creating task-specific dashboards, in-line commenting, well-tracked statistics, and more,' he writes. 'The application is built on top of Python open source libraries such as the Django framework, smtpd.py mail service, and the wsgiref Web server software.'"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

91 comments

google knows what it's all about (-1, Offtopic)

eneville (745111) | more than 7 years ago | (#17072232)

python all the way! or ruby..

I can see why Google stuck with Python. (1)

James A. V. Joyce (798462) | more than 7 years ago | (#17072336)

Does Ruby support 8-bit characters and Unicode yet? Or load balancing, or HTTPS? Didn't think so.

Re:I can see why Google stuck with Python. (4, Insightful)

Peter Cooper (660482) | more than 7 years ago | (#17072398)

8 bit characters is exactly what it /does/ support. It's multi-byte characters that are often seen as the problem, although UTF-8 is also supported (Unicode generally, however, is a different matter). Ruby can also support load balancing and HTTPS.. although since those aren't relevant to a programming language per se, it's intriguing why you bring them up (unless I've fallen for a troll, in which case.. well done ;-))

Re:I can see why Google stuck with Python. (3, Informative)

masklinn (823351) | more than 7 years ago | (#17072472)

although UTF-8 is also supported (Unicode generally, however, is a different matter)

Uh, UTF-8 is a Unicode Transformation Format, that's usually (that or UTF-16) what people talk about when they mention "Unicode". And Ruby definitely sucks at anything out of the ascii character space, be it inside or at the boundaries (interfacing with the outer world).

Re:I can see why Google stuck with Python. (1)

Peter Cooper (660482) | more than 7 years ago | (#17073764)

UTF-8 is the de facto standard encoding of Unicode characters, but in the interests of not having someone respond with "but Unicode != UTF-8" I thought I'd add the proviso (although it opened me to complaints of the opposite nature, of course ;-))

Re:I can see why Google stuck with Python. (0, Offtopic)

Dr. Smeegee (41653) | more than 7 years ago | (#17072780)

Try giving a deep, suculent "yard of tongue down your throat" [duke.edu] soul kiss to the suspected troll. Watch in the closet door mirror: If their spine lights up IT'S A CYLON! FOR GOD'S SAKE RUN! Otherwise it's probably a troll.

If you want to go ahead and have sex with the Cylon before you run, that's your business.

Re:I can see why Google stuck with Python. (1, Insightful)

Anonymous Coward | more than 7 years ago | (#17073212)

I think the problem WITH Ruby is that its making the same mistake as Smalltalk. Everything has to be a object, but this isn't always true. Some things are better modeled with generic functions, or other Functional style paradigms. Python is picking from both worlds. I think my ideal language would be a blend of Haskell and Python in some form. Ocaml comes close, but has it's own weirdness, with '+' and '+.' etc etc.

IE:

Why do numbers need to know about iteration? From Smalltalk:
1 to: 3 do: [ Something ]

There are several other examples as well of this kind of impedance mismatch. Objects get CLUTTERED with cruft, because that's the only place you can stick behaviour.

Objects are nice, but not everything fits in that paradigm. I think blended languages are the way of the future. Perl developers flock to Ruby because it has objects with a few Perlisms, but Smalltalk was rocking that world 20 years ago.

There are some exciting developments on the horizon, but they aren't mature yet.

Re:I can see why Google stuck with Python. (1)

masklinn (823351) | more than 7 years ago | (#17072430)

AFAIK stuff like load balancing or HTTPS are handled by HTTP servers/balancers/fronts (or at least TCP balancers for load balancing) and stuff, not by the language used to create the site... If you're going it an other way, you're likely to be doing it very wrong.

And apart from that, modern Ruby webapps actually have fairly good deployment solutions, e.g. Mongrel.

Unicode in ruby still sucks though

Re:I can see why Google stuck with Python. (3, Informative)

mini me (132455) | more than 7 years ago | (#17074240)

Unicode in ruby still sucks though

It could be better, but it's not that bad:

>> message = "¼ and ½"
=> "¼ and ½"
>> message.chars.length
=> 7
>> message.chars.last.to_s
=> "½"
>> message.chars.normalize.to_s
=> "1/4 and 1/2"

Re:google knows what it's all about (1)

masklinn (823351) | more than 7 years ago | (#17072356)

Mmm no, what google knows it's about is "the tool that fits the task best".

In this case -- the creator of the Python language having to build a webby app -- the obvious tool was much more likely to be Python than, say, Java. Or even actually good languages like Smalltalk, or Forth, or Erlang.

Re:google knows what it's all about (4, Funny)

El_Muerte_TDS (592157) | more than 7 years ago | (#17072504)

And actually good documentation is written in Latin, or Hieroglyphs, or Sanskrit.

Hodie Natus Est Radici Frater (2, Interesting)

soxos (614545) | more than 7 years ago | (#17073006)

And actually good documentation is written in Latin...

Totally OT, but your comment reminded me of this [multicians.org] . A great piece of history from the Multics group about an error code that never was meant to see the light of day, yet, through circumstances, did show up once during an upgrade.

Re:google knows what it's all about (0)

Anonymous Coward | more than 7 years ago | (#17073872)

ZING!

Re:google knows what it's all about (0)

Anonymous Coward | more than 7 years ago | (#17073678)

I find your sig really annoying.

Perforce? (-1, Troll)

Tack (4642) | more than 7 years ago | (#17072540)

It had me interested until I read "perforce."

My eyes! The goggles do nothing!

Re:Perforce? (2, Interesting)

slyborg (524607) | more than 7 years ago | (#17072604)

?? What's wrong with Perforce?

Re:Perforce? (0)

Anonymous Coward | more than 7 years ago | (#17074294)

It don't scale. Once the DB exceeds the disk cache, it grinds :(

Perforce? (4, Interesting)

Doctor Memory (6336) | more than 7 years ago | (#17072660)

Good idea, building on a closed-source SCMS that's (barely!) a mid-level player in the market. I can understand not wanting ClearCase, but what's wrong with CVS or Subversion? Hell, even Monotone or GNU Arch...

Oh well, could be worse: they could have gone with StarTeam, PVCS or MKS Source Integrity...

Re:Perforce? (-1)

Anonymous Coward | more than 7 years ago | (#17072740)

Perforce does support change sets, which you have to bend over backwards to implement in SVN or CVS.

Re:Perforce? (0)

Anonymous Coward | more than 7 years ago | (#17073808)

Subversion is based on changesets as well. Its model is virtually identical to Perforce's, and quite far from CVS's.

Re:Perforce? (1)

rmull (26174) | more than 7 years ago | (#17072952)

Anyone who's used perforce will understand. I read this and it made me very, very jealous.

Re:Perforce? (5, Interesting)

panaceaa (205396) | more than 7 years ago | (#17072954)

I'm not sure how you decided Perforce is a "barely mid-level player" in the SCM market. Adobe, Google, and Microsoft all use Perforce as their primary source code management solution. (Though Microsoft has highly modified it and calls it something else internally... but my contacts there tell me it's still Perforce underneath.) Perforce does have its problems with scalability, but in terms of merging, collaborating, viewing history, keeping branches, etc, etc, etc, it's pretty awesome.

Re:Perforce? (4, Informative)

Electrum (94638) | more than 7 years ago | (#17073550)

Adobe, Google, and Microsoft all use Perforce as their primary source code management solution.

Amazon does too.

Valve uses Perforce! (0)

Anonymous Coward | more than 7 years ago | (#17111474)

Valve also uses Perforce.

Re:Perforce? (0)

Anonymous Coward | more than 7 years ago | (#17073804)

Interesting you say it has its problems with scalability. I've seen scalability sucking under Perforce too. However, their website (http://www.perforce.com/perforce/products.html) says:

"The Perforce Software Configuration Management System features comprehensive SCM capabilities built around a scalable client/server architecture."

Certainly that reads like BS in my experience...

Re:Perforce? (1)

panaceaa (205396) | more than 7 years ago | (#17075390)

With good administrators, Perforce is comfortably scalable up to 500 to 1,000 developers. You just start running into lag problems once you get above that. Certain operations like branch integrates can lock up a depot for minutes, which doesn't sound bad until you realize that no developers on that depot can check-out files or make other Perforce client changes that whole time. Technically you'd run into the same problems with just 2 developers, but it gets really noticable when there's 3,000 developers and they can all do integrates and anyone's integration will lock the other 3,000 users. Microsoft's definitely running into this problem, plus they're running into sandbox issues. You can probably think of other companies with the same problem.

Re:Perforce? (1)

SageMusings (463344) | more than 7 years ago | (#17075824)

Why does MS not use the tools they sell to the rest of the world? For example, my organization does not use perforce but TFS for version control. Is TFS inadequate for large-scale development?

I do not have much experience with lots of different versioning tools. I have only used TFS, CVS, and SourceGear.

Re:Perforce? (2, Informative)

panaceaa (205396) | more than 7 years ago | (#17076272)

Microsoft dogfoods most everything, including Exchange Server (for @microsoft.com and @hotmail.com), SQL Server (for *.live.com), and internal Office betas (with pushes out to everyone, including admins). But for source control, their own products just don't scale up to 60,000 employees. I've heard there's dogfood initiatives for VSS, but developers in Windows Client and Office vehemently oppose them. I'm not sure if VSS is used in other areas of the company, like perhaps the Live.com groups and Xbox/Zune. And I'm not sure if there's efforts to expand VSS's capabilities to support Microsoft's own requirements, since there's very few companies that need that kind of scalability and most are Microsoft competitors.

Re:Perforce? (1)

spongman (182339) | more than 7 years ago | (#17078268)

VSS was used internally at microsoft by some groups for a while, but it's been replaced by their version of Perforce, which is in turn slowly being replaced by microsoft's own TFS which scales quite well to large projects/teams. check out dogfood stats here [msdn.com]

Re:Perforce? (0)

Anonymous Coward | more than 7 years ago | (#17079062)

So what you are saying is that it stops scaling at about 500 to 1000 developers.

Microsoft uses Perforce?! (4, Funny)

mkcmkc (197982) | more than 7 years ago | (#17077694)

Microsoft is using Perforce for source code control? Why aren't they using their own product--Visual Source Safe? Does it suck or something?

Re:Microsoft uses Perforce?! (1)

DevStar (943486) | more than 7 years ago | (#17078130)

Actually much of Microsoft is moving to VS Team System. I believe all of Visual Studio and .NET is using it now.

Re:Microsoft uses Perforce?! (2, Interesting)

zeroduck (691015) | more than 7 years ago | (#17078778)

Simple answer: yes.

We use it at work, and deal with corrupted databases frequently. There's been talk of moving to SVN for a while, but I doubt they'd make a full switchover. We have years worth of projects stored in VSS, and it's really not worth moving them over (fortunately closed projects, so getting back to them is only necessary if any issues arise with a customer).

Re:Perforce? (1)

Doctor Memory (6336) | more than 7 years ago | (#17100170)

I'm not sure how you decided Perforce is a "barely mid-level player" in the SCM market
Why, by using only the finest in high-tech market player profiling, to whit: I Googled for "<scm system> configuration management" and noted how many hits each got. My list worked out to:

2.8M — Clear Case
2.8M — CVS
2.4M — Visual Source Safe
1.8M — Subversion
1.1M — CCC/Harvest (now CA AllFusion Harvest)
900K — RCS
665K — Perforce
536K — PVCS
378K — Aegis
376K — Monotone
186K — BitKeeper
154K — StarTeam
101K — AllChange
68K — GNU Arch
29K — Continuus
16K — MKS Source Integrity

If we assume that # of hits == market share[1], then Perforce has 4.65% of the market. I realize this isn't the case, but I thought the results would be at least roughly indicative of relative ranking. This may be a Really Bad Idea (SM), and I'd happily fall on my sword if anyone could post some real figures (or even some from Gartner). I found some during my searches, but they were all several years old, so I didn't really consider them.

I'm sure these results are well worth the price you paid for them. Now if I could only get reimbursed for the fifteen minutes or so it took me to compile them...
---
[1] I could probably get a patent on this idea, it's so good...

Re:Perforce? (1)

Schapsmann (969126) | more than 7 years ago | (#17073022)

Why would linux kernel maintainers have used a proprietary SCMS all these years, if it wasn't simply the best suited tool for that purpose? (bitkeeper)

Re:Perforce? (1)

doom (14564) | more than 7 years ago | (#17083836)

Schapsmann wrote:
Why would linux kernel maintainers have used a proprietary SCMS all these years, if it wasn't simply the best suited tool for that purpose? (bitkeeper)

Hypothetically, because the developer was a friend of Torvald's, and he talked him into it.

Re:Perforce? (5, Informative)

slamb (119285) | more than 7 years ago | (#17073060)

Good idea, building on a closed-source SCMS that's (barely!) a mid-level player in the market. I can understand not wanting ClearCase, but what's wrong with CVS or Subversion?

I use both Subversion and Perforce. There's one major feature still lacking from Subversion: merge tracking. There's work underway [tigris.org] to design, implement, and document this feature, but it's not done yet. This is a huge deal for anyone with lots of branches.

Not that it's all roses with Perforce. My impression is that it doesn't scale very well. Most operations simply lock the entire database. I think it's a reader/writer lock, but it means that (for example) while the hour-long checkpointing pre-backup process happens every night, you can't do any write operations. (And there's a way to do an offline checkpoint, but it's not documented or supported, and is difficult to get right, with bad consequences if you don't.)

Re:Perforce? (4, Interesting)

slamb (119285) | more than 7 years ago | (#17073172)

It means that (for example) while the hour-long checkpointing pre-backup process happens every night, you can't do any write operations.

Let me be a little more specific: while the hour-long checkpointing process is happening, you can't even open files for edit. In addition to having really course locking, Perforce has more write operations than most version control systems. Subversion's CVS-style working copy means the only write operations are commits and revpropsets.

Re:Perforce? (0)

Anonymous Coward | more than 7 years ago | (#17076738)

Actually, you can keep checkpoint downtime down to .. oh.. a few seconds, by using some simple techniques. "Offline checkpointing" is what it's called. In fact, you don't technically have to suffer any downtime for administrative tasks.

Re:Perforce? (0)

Anonymous Coward | more than 7 years ago | (#17079004)

Sure it can be done, but Perforce leave you to implement this yourself, and it's not something you want to get wrong.

Re:Perforce? (4, Informative)

Mike McTernan (260224) | more than 7 years ago | (#17074164)

> Not that it's all roses with Perforce. My impression is that it doesn't scale
> very well. Most operations simply lock the entire database.

I agree - the backup solution described and recommended by Perforce works well for small installations, but doesn't scale very well in my experience. It's disappointing given that Perforce use scalability as a selling feature (http://www.perforce.com/perforce/products.html).

I went on a limb and made an alternative way to do checkpoints/backups for exactly the reason you describe - it's difficult to get right and seriously bad if you get it wrong. The write up of what I do is here:

http://www.mcternan.co.uk/PerforceBackup/ [mcternan.co.uk]

In my opinion it would be simple for Perforce to implement some simple changes to help large scale backups (e.g. make p4d -jj -c "cmd" work), and I've suggested it to their support staff, some of whom I've met in person at various times. However, I haven't heard or seen any indication that they are going to do this... I'm still hopeful, but less so these days.

I also believe that Perforce only does locking at the table level (using flock()), which is most likely why the server often sees poor concurrency, especially with write operations as you describe. The more recent versions of the server are apparently better (2006.x), although I'm yet to upgrade. The server itself is based on SleepyCat Berkley DB tables, which Oracle recently took over and look to have improved (http://www.oracle.com/database/berkeley-db/db/ind ex.html). So maybe future versions of the Perforce server will benefit too. I hope.

Re:Perforce? (2, Informative)

slamb (119285) | more than 7 years ago | (#17075664)

The write up of what I do is here: http://www.mcternan.co.uk/PerforceBackup/ [mcternan.co.uk]

Interesting! I'll have to look it over more later.

For comparison, I've put the latest (not yet deployed) version of our offline checkpoint process here [slamb.org] . (It's a NetVault backup script; pre locks and does the checkpoint, post touches a file signalling success to our monitoring and releases the lock). It's a procedure outlined by Perforce, though they didn't mention error handling...

Re:Perforce? (1)

yacc143 (975862) | more than 7 years ago | (#17076350)

merge tracking is already "implemented". Use svk, which does quite a nice job.

Actually merge tracking is useful enough that it makes sense to use svk in completly online settings.

yacc

Re:Perforce? (1)

WuphonsReach (684551) | more than 7 years ago | (#17076404)

I use both Subversion and Perforce. There's one major feature still lacking from Subversion: merge tracking. There's work underway [tigris.org] to design, implement, and document this feature, but it's not done yet. This is a huge deal for anyone with lots of branches.

Aye, the SVN team is definitely not sitting on their laurels (yet) after finally hitting the 1.0 release a while back. They made significant improvements in 1.4 and have more up their sleeves for the upcoming 1.5 release. With even more things planned for down the road.

(We made the switch to SVN over the summer, but we're just a tiny little shop with average needs.)

Re:Perforce? (1)

adwb (778985) | more than 7 years ago | (#17073194)

Microsoft uses a modified version of the Perforce SCM for all of their internal code management. I personally use Subversion on a daily basis at work and on my SourceForge projects but I guess if it's good enough for Microsofts development teams it's good enough for Google to build a custom version too.

Re:Perforce? (3, Informative)

novitk (38381) | more than 7 years ago | (#17073218)

The main reason for starting SVN was that a lot of things were wrong with CVS. Arguably SVN(nevermind Monotone, Arch) has only recently approached Perforce level of stability, scalability and functionality. They needed something workable probably at least five years prior. ClearCase is clearly not a Google-style solution.

Looks like a good choice to me.

Re:Perforce? (4, Informative)

mattcoug (873342) | more than 7 years ago | (#17075838)

FYI - Guido built this system to work within the existing Google infrastructure, he didn't choose Perforce for the project. Guido also wants to eventually refactor it to work with many SCM including Subversion, CVS, etc. BTW, Perforce is used at many very-large-software-companies, so while it is not perfect, it is still very useful.

Re:Perforce? (1)

fingon (114710) | more than 7 years ago | (#17077926)

CVS is shit. I mean this respectfully, of course, but it doesn't even have atomic commits or changesets, which are bare minimums for modern VC. SVN isn't much better, it is still too much CVS-derived for it's own good.

Subversion? (1, Interesting)

Anonymous Coward | more than 7 years ago | (#17072728)

Am I missing something here? Why don't the use Subversion?

Codestriker is the same thing (2, Insightful)

Anonymous Coward | more than 7 years ago | (#17072744)

Codestriker [sourceforge.net] does the same thing. Except it is in perl + GPL, on source forge.

Joel Spolsky mentions Perforce (1, Interesting)

soxos (614545) | more than 7 years ago | (#17072790)

Joel Spolsky (of JoelOnSoftware fame) talked yesterday [joelonsoftware.com] about how Microsoft handles their enormous build system. Apparently it's built on a fork of Perforce that MS paid for some time ago. Could this be an early warning sign of Google becoming Micro-soft?

Disclaimer: I've yet to work with Perforce, having not yet graduated from CVS, but at least I'm not using VSS.

Re:Joel Spolsky mentions Perforce (1, Interesting)

Anonymous Coward | more than 7 years ago | (#17073278)

1) There are thousands of companies that use Perforce. Does that mean they all want to be Microsoft?

2) Of the thousands of companies that use Perforce, many of them started using Perforce before Microsoft. So wouldn't that make Microsoft the copycat of them?

3) Perforce is a popular choice among companies that need a version control system that can handle very large code bases with high speed. Few version control systems can do this adequately. Perforce also has excellent branch management features. There is nothing wrong with using Perforce (although I have other preferences) presuming you can afford it.

Re:Joel Spolsky mentions Perforce (0)

Anonymous Coward | more than 7 years ago | (#17073864)

Apparently it's built on a fork of Perforce that MS paid for some time ago. Could this be an early warning sign of Google becoming Micro-soft?

Oh my goodness! I use C++. Microsoft uses C++. I guess this means I am becoming Microsoft!

What a stupid comparison.

Re:Joel Spolsky mentions Perforce (-1, Flamebait)

Anonymous Coward | more than 7 years ago | (#17074702)

but it's -joel- who said it!!

cmon guys, that guy knows almost as much as paul graham!

and I'm sure RMS doesn't like perforce either, so it must be bad!

And I think Theo De Raadt thinks perforce is insecure, to boot

(a fan of all these folks.. but sheesh - grow a brain people)

Perforce?! gag, choke, cough, boggle! (-1, Redundant)

Toby The Economist (811138) | more than 7 years ago | (#17073434)

That hunk of complete crap!

Jesus Christ on a stick.

IME, when a company goes from being small, well run and efficient, to bloated, bureaucratic and hopelessly *hopelessly* stupid, the FIRST thing they do is switch to Lotus Notes and Perforce.

It's like old people moving to Florida buying an RV.

Blargh! Mondrian is already an open-source OLAP (5, Informative)

Anonymous Coward | more than 7 years ago | (#17073782)

Blargh! Mondrian [pentaho.org] is already an open-source OLAP engine! Seriously, a casual google search could tell you that. And it's not some sf.net abandonware, it's a mature and powerful OLAP Cube engine used by some big-name corps!

Oh, and just to rant a bit more: Python WAS ALREADY THE NAME of the Lisp Compiler used in the CMUCL Common Lisp implementation and lately SBCL. And was relatively well known in computing science at the time Guido was naming python because it is a snazzy type inferencing lisp compiler!

Guido's some sort of naming-dick. What'll he call his next python project? Glibc? Mesa? Gimp?

Re:Blargh! Mondrian is already ... and another! (0)

Anonymous Coward | more than 7 years ago | (#17074506)

Worse in this case, Mondrian [rosuda.org] is also the name for statistical and plotting program (available since at least 2002).

In biology, when somebody accidentally names something as a homonym (i.e. the name already exists for some other species), then some other person who notices it often names it after the person who made the mistake. Having a species named after you is therefore either an honor, or it means you goofed.

So, perhaps he should call it "Guido" :-)

Re:Blargh! Mondrian is already an open-source OLAP (2, Funny)

panaceaa (205396) | more than 7 years ago | (#17075474)

I nominate Gimp. It's represented a crappy image editor with nonsensical UI for too long. It'd be awesome if it was something cool, like Web 2.0 Pong.

Re:Blargh! Mondrian is already an open-source OLAP (1, Funny)

Anonymous Coward | more than 7 years ago | (#17076294)

Guido's some sort of naming-dick. What'll he call his next python project? Glibc? Mesa? Gimp?

Firebird!

Re:Blargh! Mondrian is already an open-source OLAP (1)

syphoon (619506) | more than 7 years ago | (#17077080)

Mondrian is also the name of an experimental functional language [zoot.net.nz] for the .NET platform written by Nigel Perry.
It's also a Haskell dialect described in this 1997 paper [chalmers.se] .
I really don't think it's anything worth getting worked up over. This is an inhouse program that was started as a side-project and is unlikely to be released (if at all) for quite some time, I think it's quite likely he just picked the name since it already had a Google-fied logo (they've used that before for their frontpage on (the artist) Mondrian's birthday).

Re:Blargh! Mondrian is already an open-source OLAP (1)

doom (14564) | more than 7 years ago | (#17083886)

Can anyone explain why you would want to name a software project after the world's dullest modernist painter?

And I'm not particularly down on Modern art myself... maybe I should name a project "Rauschenberg" (except that he's not dead yet).

What's next? (-1, Flamebait)

Anonymous Coward | more than 7 years ago | (#17073828)

Next they're going to release a web-based internet browser.

Google (2, Insightful)

synx (29979) | more than 7 years ago | (#17073878)

This is why working at google is awesome. Internal code reviewer is big news.

I use the tool in question, it's good.

Also I've used perforce at a previous company. Generally most people who talk about SCMs and reference CVS as a potential replacement/alternative to P4 really do not know what they are talking about. P4 has it's problems, granted, but if you are looking to maintain a massive code base, there really are few choices. Atomic change lists, they are fantastic.

Re:Google (1, Insightful)

Anonymous Coward | more than 7 years ago | (#17074832)

I'm somewhat surprised that Google is using P4 instead of BitKeeper, given that BitKeeper's author was employee #3 or #4 at Google.

Re:Google (0)

Anonymous Coward | more than 7 years ago | (#17075898)

Atomic change lists, they are fantastic.

Implying that this is the feature that makes p4 essential. But it's not, it's 1) the branching and merge features, and 2) the grouping that changelists provide, that sets p4 apart.

It does take some pretty advanced p4 admin to make it work well for a very large #users (size of code base doesn't really matter). But it's worth it to work within its constraints.

Re:Google (0)

SewersOfRivendell (646620) | more than 7 years ago | (#17076502)

It doesn't really matter, since:

- the Perforce tools suck so badly. p4v is OK, but the command line tools are unacceptable.
- the branching and merging features are completely overrated. They're hard to use. They don't give you anything Subversion doesn't already have.
- they don't version the filesystem hierarchy.
- don't get me started on what a mess viewspecs are. Everybody defines their own view of the repository! Fucking hell, what a nightmare!
- the kludges you have to use in order to maintain a checkout of a particular label AND the top of tree (HEAD) are truly breathtaking.

In fairness, Perforce network operations are blazingly fast, even over VPN; they've optimized their wire protocol quite well. Of course, they had to, because you can't really work offline in Perforce. There are ways to get around this, but you risk losing data. There is no automatic merge in the Perforce model. On the other hand, a Subversion branch operation is often more efficient because you don't need to have an actual duplicate copy of all the data.

Re:Google (1)

bigsmoke (701591) | more than 7 years ago | (#17079416)

I've never used Perforce, but I've been a heavy SVN user for years and must say that the lack of merge tracking is truly a horrible miss. If there was some kind of bounty set for this, I might be very much willing to contribute from my meager pay.

Re:Google (1)

bensch128 (563853) | more than 7 years ago | (#17085712)

- the Perforce tools suck so badly. p4v is OK, but the command line tools are unacceptable.
They're not too terrible. Of course, I don't care because p4v is amazing anyway!

- the branching and merging features are completely overrated. They're hard to use. They don't give you anything Subversion doesn't already have.
They are a hell of a lot better and easier to use though. Well, at least over CVS. (don't know about SVN though)

I personally like perforce a heck of a lot more then clearcase or VSS or CVS.
The p4v tool is the major selling point for me. It's alot better designed then the competing SVN tools.

Cheers
Ben

Re:Google (2, Interesting)

LauraW (662560) | more than 7 years ago | (#17078072)

Agreed. I use this too, and it's great, especially if you feel like being a Code Nazi and making nit-picky comments about code that you're reviewing. You just double-click on the line you don't like and type in your comment. It's much easier to use than reading the code in a diff tool and then typing your comments into a separate email window.

As far as perforce vs. CVS goes: I used CVS at my previous company and liked it. It was certainly a big improvement over CMVC when I was IBM and the SCCS wrapper that Sun used for Java when I worked on it. But CVS had its problems, mostly because it doesn't support atomic commits and checkouts. Perforce fixes that. Its command line takes a little bit of getting used to: "submit" instead of "commit" and so on. And the branching, while much more powerful than what you can do in CVS, takes a while to get your head around. But once you understand it, the power it gives you is wonderful. Perforce also has a few scalability problems, but they're mostly solvable.

I also have to agree with the parent poster that it's great, but bizarre, working a company where the internal code review system is front-page news on Slashdot.

You FAIL 1t (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17074266)

suufering *BSD

slashdotted: article text (0)

Anonymous Coward | more than 7 years ago | (#17076762)

Google Mondrian: web-based code review and storage

        * Search/Google
        * Programming

Google Mondrian logo

Guido van Rossum unveiled his first Google project, Mondrian, tonight during a Python tech talk at the Google campus in Mountain View. Mondrian is a web-based code review system built on top of a Perforce and BigTable backend with a Python-powered front-end. Mondrian is a pretty impressive system and is currently in use across Google.
Shared Development Environment

Google uses a company-wide Perforce depot with almost no developer branches. Each developer has their own NFS workspace readable by anyone in the company, including automated processes. An administrative process takes snapshots of each developer workspace including local development environments accessed over SSH. Files within these snapshots can be compared to checked-in data, encrypted, and archived.
Previous methods of review

Previous to Mondrian code review was conducted largely over e-mail using Google command-line wrappers built on top of Perforce. A developer could initiate a code review from within the g4 mail tool, which would fire off an e-mail and begin a review thread. When the developer receives a response of "looks good to me," or lgtm for short, they could proceed to checkin. Changes could be compared using tkdiff.

Design-level reviews are often conducted by e-mailing around Word documents or editing a team wiki. Recently some design reviews have moved onto an internal version of Google Docs.
Web-based collaboration meets code review
Mondrian code review

The Mondrian tool creates a much better workflow by creating task-specific dashboards, in-line commenting, well-tracked statistics, and more. The application is built on top of Python open source libraries such as the Django framework, smtpd.py mail service, and the wsgiref web server software.

Code reviews can be initiated and completed from within the Mondrian interface. A developer requests a review from another user or a group of users to kick off the process. Each invited reviewer can add comments directly underneath a line of code or reference the entire file. You can request and diff the file against previous versions as well. It's a pretty slick interface, lightly highlighting each line of code as you hover, and popping open a comment box in response to a double-click. Comments can be saved as a draft and shared at a later time.

Putting the entire code review process online means you never have to worry about referencing the most recent version of a file or losing e-mails. Mondrian captures every outgoing e-mail related to the workflow, looks for key data such as revision numbers, and updates a to-do list accordingly.
More on BigTable

Mondrian uses BigTable as backend storage for user data. More specifically, it's used to store:

        * Change metadata such as a description or list of files
        * Comments entered through the web interface or via e-mail
        * Encrypted file snapshots taken from user workspaces
        * Per-user data such as active changes or last view dates

Summary

The Mondrian web code review system is pretty impressive. Guido estimates he has spent about 25% of his work time on the project since joining Google in December 2005. Mondrian served as Guido's introduction to Google technologies and processes with the help of a few other Googlers treating it as a side-project. The application is so deeply intertwined with Google technologies it's not likely to be available as open source until Subversion and a backend such as SQLite can be supported.

Guido's full talk, including a demo of Mondrian, should be available on Google Video sometime in the future.

Good for Django (1)

Gumber (17306) | more than 7 years ago | (#17077656)

This is a nice design win for Django as a web framework. I wonder how much of the stack he ended up using and whether he used the ORM layer at all.

Interesting (0)

Anonymous Coward | more than 7 years ago | (#17079374)

For fanboys and lackeys. And people who feel important because they know somebody who knows somebody who thinks g is great or something, but can't write any code of their own :(

The entire google team in other words!

Crucible does this, but for CVS, SVN and Perforce (1)

brendanh (124111) | more than 7 years ago | (#17079556)

Our product Crucible http://www.cenqua.com/crucible [cenqua.com] provides online web-based code review including inline commenting, workflow etc. Crucible is currently in Beta release and supports CVS, SVN and Perforce. Free licenses for Open Source projects are available.

Cheers,
-Brendan

Code Collaborator (1)

brandond (33418) | more than 7 years ago | (#17099264)

My company, Smart Bear Software [smartbearsoftware.com] , has developed a commercial tool for peer code review called Code Collaborator [codecollab.com] . We support a wide variety of SCM's, including CVS, Subversion, Perforce, Clear Case, and soon Team Foundation Server.

Using our tool, we also performed the largest case study of peer code review [codereviewbook.com] ever published and have made it available as a free book. It includes data from 2500 reviews of 3.2 million lines of source code at Cisco Systems. To get your free copy, just sign up on our website.

Re:Code Collaborator (0)

Anonymous Coward | more than 7 years ago | (#17104700)

Where I work we use Perforce with Code Collaborator. I like CC but perforce is a major slow pain in the behind. At least how we have it setup. In my division there are about 5000 employees about half of which probably access perforce on a regular basis. It is slow. We have over 100,000 labels in our system and any operation involving labels takes forever.
Check for New Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...