Non c'è dubbio che la maggior parte dei dibattiti sugli strumenti del programmatore si concentri sulla scelta personale (da parte dell'utente) o sull'enfasi del design , cioè sull'ottimizzazione del design in base a casi d'uso particolari (dal costruttore dello strumento). Gli editor di testo sono probabilmente l'esempio più importante: un programmatore che lavora su Windows al lavoro e che codifica in Haskell su Mac a casa, apprezza l'integrazione multipiattaforma e del compilatore e sceglie quindi Emacs su TextMate , ecc.
È meno comune che una tecnologia appena introdotta sia davvero, dimostrabilmente superiore alle opzioni esistenti.
È questo il caso dei sistemi di controllo versione (VCS), in particolare VCS centralizzato ( CVS e SVN ) rispetto a VCS distribuito ( Git e Mercurial )?
Ho usato SVN per circa cinque anni e SVN è attualmente usato dove lavoro. Poco meno di tre anni fa sono passato a Git (e GitHub) per tutti i miei progetti personali.
Posso pensare a una serie di vantaggi di Git over Subversion (e che per la maggior parte in astratto ai vantaggi della distribuzione su VCS centralizzata), ma non riesco a pensare a un contro esempio - un compito (che è rilevante e si presenta in un solito programmatore flusso di lavoro) che Subversion fa meglio di Git.
L' unica conclusione che ho tratto da questo è che non ho dati - non che Git sia migliore, ecc.
La mia ipotesi è che tali contro-esempi esistano, quindi questa domanda.