Thursday, March 22, 2018

CVS, TFS, GIT and the Like

After spending 20 years with console applications and plain file sharing I've stepped into the world of GUI applications with client-server architecture, and I was not willing to look back.

Control Versioning System has been the very first source control tool I've used for coding. That time I was happy with its client-server architecture and the graphic TortoiseCVS client.

Then the public free source repositories have started to move to SVN servers or one of the GIT-based solutions with distributed architecture.

Being learned with stable, high-speed Internet connections and the reliability offered by a server process guarding the centralized source repositories, I've had a long way to go until accepting to work with GIT-based solutions.

A server process with carefully elaborated GUI clients makes hard to the users to shoot their own feet, while a complex server-side script with a minimalist console interface is invitation to do the wrong thing.

Fortunately the proliferation of responsive, user-friendly websites and GUI plugins have addressed the need for efficient user interfaces, but due to the complex nature of distributed systems it will always be easy to design workflows producing painful scalability and/or security issues.

In other words employing low-cost software & hardware resources on a highly competitive market implies hiring specialists who aren't necessarily living in one's neighborhood, and collaborations through the Internet will soon become the norm for keeping up and running successful IT&C projects.