¿Cuándo puedo hacer mi propia versión de un programa?

Por qué no?

La historia del desarrollo de software está llena de compañías que, en algún momento, intentaron desarrollar una versión ligeramente mejor de un producto de software de un competidor (con la definición de mejor sea ​​”mejor para resolver el problema real en el que se escribió el software original” para “o” ser eficaz para resolver una gama más amplia de problemas “o” ser mucho más práctico o eficiente para resolver un subconjunto definido del problema “). Algunos ejemplos básicos en orden aleatorio de la cabeza de mi mente:

  • Visicalc vs. Lotus 1 2 3 vs. Borland Quattro vs. Microsoft Excel;
  • DB2 vs Oracle vs. IBM vs. Sybase (ahora SQL Server) vs. Informix vs. PostgreSQL vs. MySQL vs. muchos otros RDBMS SQL disponibles;
  • Corel Draw vs. Adobe Illustrator vs. Inkscape;
  • Adobe Photoshop vs. The Gimp.
  • GCC 2.x contra EGCS (ahora el GCC oficial) contra CLANG de LLVM;

y que apenas roza la superficie.

Por otro lado, debe prestar atención a no infringir los derechos de autor, marcas comerciales y, más recientemente, las patentes de los competidores al desarrollar su versión. Esto significa al menos tener una comprensión básica de los derechos de autor, marcas registradas y patentes.

Aunque las grandes empresas tratan de patentar solo todo, ya sea para frenar la competencia o para poder contraatacar, en el pasado era mucho más fácil cuando no podía patentar algoritmos y elementos de la interfaz de usuario, hasta el punto de que ahora las patentes de software se consideran perjudiciales para el sector en general por una parte significativa de los jugadores (más pequeños) en el campo.

Dicho esto, el Software Libre y los movimientos de Código Abierto intentan alentar el desarrollo de versiones alternativas de productos de software (con el movimiento del Software Libre enfatizando que es un derecho básico para que todos puedan modificar un programa existente para satisfacer las mejores necesidades de uno, y que preservar ese derecho es de suma importancia).

Debería poder comenzar en cualquier momento que desee, pero para su propio uso privado. Si desea distribuir el clon que cree, dependerá de varias ramificaciones legales fuera del ámbito de la ingeniería de software. Los ejemplos incluyen patentes, cualquier EULA que haya aceptado cuando compró la copia original, etc. Pero no debería haber nada que le impida crear un proyecto de pasatiempo personal para comenzar.

Sí, bastante. Es posible que deba preocuparse por las patentes de software; por ejemplo, “pasar para desbloquear” se probó recientemente en el tribunal.

Aparte de eso, sí, puedes copiar básicamente otra cosa si quieres.