kingToolbox / WindTerm

A professional cross-platform SSH/Sftp/Shell/Telnet/Serial terminal.
https://kingtoolbox.github.io
23.38k stars 1.8k forks source link

Why isn't WindTerm fully open-sourced? #2238

Open jackfahdin opened 8 months ago

jackfahdin commented 8 months ago

@kingToolbox 你好,用了好几年这款应用了 我非常喜欢,但是不可避免的您一个人开发需要花费大量的精力 大佬的技术超级厉害这点没得说 但是不可避免的是一个人的精力有限, 是否考虑开源出来或者招募一些开发者多一些人一起维护 让WindTerm变得更加完美

jackfahdin commented 8 months ago

@kingToolbox hello, I have been using this application for several years now I really like it, but inevitably it takes a lot of effort for you to develop it alone The boss's skills are extremely powerful, which is beyond doubt But inevitably, a person's energy is limited, Are you considering open-source or recruiting some developers and more people to maintain it together Make WindTerm more perfect

kingToolbox commented 7 months ago

I apologize for not being able to reply to you promptly as I have been traveling and working outside. Thank you very much for your long-standing support. I have explained the reasons for not fully open-sourcing the code many times, and I am willing to explain the reasons to you again.

Firstly, it was decided from the very beginning that this project would be partially open-sourced, and this was clearly stated in the readme. This decision was made after careful consideration of various open-source models for terminal applications. Until now, I still strongly agree with this approach. Over the past few years, all released versions of WindTerm have been very secure, unlike PuTTY, which has numerous third-party versions injected with various malicious code. That would mean some users who trust PuTTY have been unintentionally harmed, as not every user can carefully check the download source. I am firmly against allowing WindTerm to be maliciously implanted with viruses and backdoors, or even having its source code maliciously stolen, ignoring the open-source license, and repackaged as other software to deceive users.

Secondly, complete open-sourcing certainly has many advantages, especially in terms of having numerous contributors who can help fix issues and implement new features more quickly. However, this also requires the maintainer to continuously review the code. Particularly for a project like WindTerm, which involves server security, extra caution is necessary to avoid incidents similar to the recent one where the xz package was injected with malicious code (xz Backdoor, CVE-2024-3094). This is something I am not good at. Moreover, my work and lifestyle make it difficult for me to dedicate long hours online to manage the project. Especially once a large amount of third-party code is merged, it would be challenging for me to be as familiar with every line of code as I am now, which would significantly reduce my efficiency in development and problem-solving. After all, managing an open-source project with many contributors is entirely different from developing an open-source project with many users.

Furthermore, there are advantages to developing a project alone. All design ideas and implementations are very consistent, and long-term plans can be made for the tool. As long as the developer is highly skilled, the tool can still become an excellent one. While WindTerm may have a lower release frequency, the actual development speed is not slow. You can see that each version includes a significant number of new features and bug fixes, which represent a substantial amount of coding work behind the scenes. Similar to text editors, terminal development is a niche field, although the development difficulty is not high, the technologies involved are very tedious, dull, and trivial, and few developers are highly proficient in various protocols such as SSH, TERM, Telnet, and RDP. Moreover, to create an excellent terminal, a wide range of text editor skills are required, including the ability to efficiently parse, process, and display text. After decades of development, the basic functions of terminals have been thoroughly developed. Now, to create a world-class terminal, a significant amount of innovation is necessary. Just as I have nearly a thousand innovative ideas waiting to be implemented in my notebook, this requires more than a decade of accumulation and reflection.

If I need a team, I also hope it would be an efficient local team that can communicate face-to-face. However, this requires sufficient financial support, which is not yet realistic for the completely free WindTerm. I will try more and different development methods in the future. As long as it helps WindTerm grow into the world's best terminal, I maintain a completely open attitude towards it.

Finally, from a technical perspective, open tools are not limited to just open-sourcing the code. From the very beginning, many of WindTerm's interfaces and functions have been completely customizable through configuration files. WindTerm is also about to undergo a complete redesign. In addition to supporting more protocols such as FTP and RDP, it will also implement a brand-new plugin framework that supports third-party development of both the interface and functionality. I believe WindTerm will have enough flexibility to be customized and used. I hope that one day, WindTerm will have hundreds or even thousands of useful plugins, just like Vim and Emacs. This will be a beautiful future. I also hope that you can continue to support WindTerm as always. Once again, my heartfelt thanks.

jackfahdin commented 7 months ago

I'm sorry I didn't see your explanation. I asked for your opinion to make it easier for you. Now it seems that you're right. I will always support you, windterm. Thank you for your contribution, thank you for your reply

ifloppy commented 6 months ago

I apologize for not being able to reply to you promptly as I have been traveling and working outside. Thank you very much for your long-standing support. I have explained the reasons for not fully open-sourcing the code many times, and I am willing to explain the reasons to you again.

Firstly, it was decided from the very beginning that this project would be partially open-sourced, and this was clearly stated in the readme. This decision was made after careful consideration of various open-source models for terminal applications. Until now, I still strongly agree with this approach. Over the past few years, all released versions of WindTerm have been very secure, unlike PuTTY, which has numerous third-party versions injected with various malicious code. That would mean some users who trust PuTTY have been unintentionally harmed, as not every user can carefully check the download source. I am firmly against allowing WindTerm to be maliciously implanted with viruses and backdoors, or even having its source code maliciously stolen, ignoring the open-source license, and repackaged as other software to deceive users.

Secondly, complete open-sourcing certainly has many advantages, especially in terms of having numerous contributors who can help fix issues and implement new features more quickly. However, this also requires the maintainer to continuously review the code. Particularly for a project like WindTerm, which involves server security, extra caution is necessary to avoid incidents similar to the recent one where the xz package was injected with malicious code (xz Backdoor, CVE-2024-3094). This is something I am not good at. Moreover, my work and lifestyle make it difficult for me to dedicate long hours online to manage the project. Especially once a large amount of third-party code is merged, it would be challenging for me to be as familiar with every line of code as I am now, which would significantly reduce my efficiency in development and problem-solving. After all, managing an open-source project with many contributors is entirely different from developing an open-source project with many users.

Furthermore, there are advantages to developing a project alone. All design ideas and implementations are very consistent, and long-term plans can be made for the tool. As long as the developer is highly skilled, the tool can still become an excellent one. While WindTerm may have a lower release frequency, the actual development speed is not slow. You can see that each version includes a significant number of new features and bug fixes, which represent a substantial amount of coding work behind the scenes. Similar to text editors, terminal development is a niche field, although the development difficulty is not high, the technologies involved are very tedious, dull, and trivial, and few developers are highly proficient in various protocols such as SSH, TERM, Telnet, and RDP. Moreover, to create an excellent terminal, a wide range of text editor skills are required, including the ability to efficiently parse, process, and display text. After decades of development, the basic functions of terminals have been thoroughly developed. Now, to create a world-class terminal, a significant amount of innovation is necessary. Just as I have nearly a thousand innovative ideas waiting to be implemented in my notebook, this requires more than a decade of accumulation and reflection.

If I need a team, I also hope it would be an efficient local team that can communicate face-to-face. However, this requires sufficient financial support, which is not yet realistic for the completely free WindTerm. I will try more and different development methods in the future. As long as it helps WindTerm grow into the world's best terminal, I maintain a completely open attitude towards it.

Finally, from a technical perspective, open tools are not limited to just open-sourcing the code. From the very beginning, many of WindTerm's interfaces and functions have been completely customizable through configuration files. WindTerm is also about to undergo a complete redesign. In addition to supporting more protocols such as FTP and RDP, it will also implement a brand-new plugin framework that supports third-party development of both the interface and functionality. I believe WindTerm will have enough flexibility to be customized and used. I hope that one day, WindTerm will have hundreds or even thousands of useful plugins, just like Vim and Emacs. This will be a beautiful future. I also hope that you can continue to support WindTerm as always. Once again, my heartfelt thanks.

Thank you for providing such an excellent software. But I still hope you can continue to open source code so that we can compile and use WindTerm on more platforms (such as arm64 linux).

AbelKeithsun commented 2 months ago

Thank you for providing such an excellent software, and at the same time hope to be open source, using some other functions such as online synchronization and multi-platform use.