Why WinSCP became an open source classic
If you’re a Windows user and you’re connecting securely to remote machines, you’ve probably heard about WinSCP. This multi-functional open source tool has been around since 2000 and it’s now considered a classic by a vast global user-base.
WinSCP is the brainchild of Martin Prikryl, a 36-year old Czech developer living in Prague, who’s been refining it for 15 years.
Origins and evolution
The story of WinSCP begins in March 2000, when Prikryl was working in the IT department of the University of Economics in Prague.
“At the time WinSCP was probably the first GUI file transfer client for SSH, at least on the Windows platform,” Prikryl recalls. “The original idea came from Jan Havlicek. He wanted the tool so much that he bothered me for weeks, until I finally decided to implement it for him.”
If you’re wondering about the name, WinSCP (Windows Secure CoPy) was meant to be temporary, but they never thought of a more suitable name, and here we are today.
While the development is mostly a solitary job, more than a 100 people are involved in translating WinSCP into over 40 languages. While not everybody might be able to contribute code, the beauty of open source is that many loyal users donate money, contribute to the forum, send in bug reports, suggest enhancements, and continually spread the word about the project.
“Money was never the primary motivation for me. It was the freedom of making an application the way I wanted, to test my capabilities. It took many years running the project in my free time, making it better, and growing the community, before it generated enough money so that I could work on it full time. Basically, I have learned that you can pay your bills by giving software for free,” said Prikryl.
As with any successful project, he wants to keep his users happy by polishing the user interface, improving the tool’s performance and adding functionality.
WinSCP: The powerhouse
WinSCP offers a polished GUI which enables you to copy files between a local and remote computer using multiple protocols: FTP, FTPS, SCP, SFTP or WebDAV.
Advanced users can automate WinSCP functionality using .NET assembly or simple batch file scripting. You can start editing a file directly from WinSCP, either using WinSCP internal text editor or using integration with an external text editor.
WinSCP offers several ways to synchronize your remote and local directories. It can even share site settings with another popular open source tool – PuTTY. WinSCP integrates also with Pageant (PuTTY authentication agent) for support of public key authentication with SSH.
Admins love WinSCP’s support for portable operation using a configuration file instead of registry entries, suitable for operation from removable media.
Advice for open source developers
“If you want to develop open source software, keep in mind you’re signing up for a marathon, not a short distance race. In order to be successful, you need to carefully divide your time between programming, testing, user support, documentation and planning the next steps,” notes Prikryl.
Since development and maintenance are complex, long-term goals, you should carefully choose what programming language and environment you start with.
“I’ve learned that my choice of Borland C++ Builder IDE was not good selection for the long term. While it was popular when I started the project, it’s barely used nowadays, which greatly limits contributions. Also, some 3rd party libraries used in WinSCP are not maintained by their authors anymore, so I need to maintain them on my own,” Prikryl explained.
“In order to make your open source software successful, you need to be able to decide what to do and what not to do. Both are equally important. Developing security software needs constant focus. What was seen as secure yesterday might not be secure today.”