Plastic contra Perforce

15:53 0 Comments

Esto de crear un producto para desarrolladores tiene su gracia: no hay productos 'locales' así que a la fuerza tu software tiene que ser global.

Y para un equipo en el Parque Tecnológico de Boecillo, Valladolid, la idea de competir en la liga mundial suena genial (suena a palabras mayores, la verdad).

Pero el tema es que, efectivamente, en cada oportunidad nos vemos con Perforce, AccuRev, ClearCase, Mercurial, Git, Subversion, TFS... cada uno de ellos de un tamaño comparativamente considerable.

Vamos, que vas a la empresa de la puerta de al lado y usan o piensan en usar uno de los de la lista anterior... y el hecho de "estar cerca", no juega casi nunca a tu favor.

Perforce

Perforce es uno de los sistemas de control de versiones más utilizados. Por supuesto Mr. Torvalds también lo criticó a muerte en su famosa charla (eso de destruir empresas, empleos y no llevarse nada a cambio se le da bien :P), lo que no quiere decir que sea un producto muy, muy, muy potente.

Se usa en muchísimas industrias pero en la que es casi el estándard es en videojuegos. Casi cualquier equipo que se precie ;) tiene un P4 instalado.

Las características particulares que se usan en gaming son:

  • Manejo de ficheros muy, muy gordos
  • Velocidad... tiene que ser rápido

    Plastic entra en acción

    Competir contra Perforce (una empresa que factura unas cuantas decenas de millones, 200 empleados, fundada en el 95) no es sencillo, pero la oportunidad viene por:
  • No es muy bueno manejando ramas (hasta hace poco hasta decía que eran 'evil').
  • No es distribuido (vale, puedes montar un proxy pero no es lo mismo... un proxy es la aproximación 'pobre') (ojo, nosotros, además de ser distributed, también tenemos un proxy, por aquello de tener 'de todo').
  • Tampoco es que sea brutal con los merges

    De hecho, una de las características de Perforce solía ser "the fast scm", pero claro, con Git a la vista... lo de "the fast" quedó fuera... y supongo que tampoco se iban a poner "the furious", así que pasaron a "version everything" (por cierto, un slogan no muy bueno que nosotros también usamos en nuestros screencasts hace aaaaaaños, aunque no, no nos han copiado ;P).

    No obstante, aunque la batalla de la velocidad es complicada, a nosotros siempre nos gusta entrar al trapo. Esto son unos tests hechos con un repo de ejemplo basado en el código de uno de nuestros clientes:

    Y es una de las razones por las que algunos equipos que usan Perforce no pueden usar ramas: no pueden esperar 30 minutos para crear una rama cuando otros productos lo hacen en 2 segundos...
  • 0 comentarios: