Note: This blog post is purely my thoughts about the topic and in no way is meant to discredit the product or the company behind it. My sole purpose for this blog post is to put my thoughts and get constructive feedback and criticism.
This is a followup of my previous blog where I have highlighted my concerns about VSCode dual license, a more stock Microsoft restrictive license for the binaries and MIT license for the VSCode source code. While I had put forth my concerns about the dual license I had not explicitly mentioned why I had so much worry. In this blog I will try explaining it and also narrate my experience since un-installing VSCode and looking for other alternatives.
While working for an enterprise company I work for multiple stakeholders. I work for an MNC and the source code I develop is for the client of my company who indirectly own and are responsible for the software that is developed for them License wise. Now if I develop personal or open source software, I usually don’t care a bit about which IDE or editor we use but when we are working in a enterprise environment, there is a pretty strict License regime in place. And what software tools I use and the kind of software I develop for my company and for my client are governed by strict set of standards of vetting and monitoring.
Till few years back, most of the companies and customers would get cold feet if you wanted to use a GNU or a FOSS software. And there has been a very strict regime around the kind of software and under which license we could use. There were many reasons for that, for one the reliability of FOSS software, also the lack of dedicated support and the lack of understanding of various OSS licenses had made it very difficult for wide adoption of Open Source software in enterprise.
This has changed quite a bit in last few years as more enterprise companies understand the benefit of OSS software and also as more young developers and tooling around OSS software has improved and sometimes superior and cost effective than their propitiatory counterparts. But this does not negate the fact that the license regimes in enterprise IT is adapting to these changing trends. More automation and more tracking of our enterprise assets/servers/laptops means they keep a tab on what kind of tools we use. And while OSS software is being adopted each company has stipulations and guidelines as to which OSS software we can use and which we can not. Sometimes even to be compliant with the enterprise License guidelines I have seen companies releasing their compiled binaries of open source projects.
Now with the dual license software we usually get a community version which is typically OSS and enterprise version. As a developer we wont care and probably use it for software development or part of our daily workflow. Now more often than not we will install many plugins or components that enhances usability of the OSS version of the software. Some times we know what kind of license we are using and sometimes we don’t care.
But in recent times many product vendors (Micosoft / Oracle included) have started aggressively monitoring their license usage and have continuously increase the surveillance of the IPs and the systems where the propitiatory components or their software are deployed. And this sometimes either directly impact our customers/ company and even us. Hence the simple software that looked and advertised as community or open source software, depending on when, how and where we use the software, can become an unwanted risk and even damaging to us and to our employers.
Hence I personally prefer either complete Open Source software with clean license stipulations or download versions of those software from sources where the stipulation of the software is very clear. This is one of the reasons why I am reluctant to use PyCharm and many such IDEs with dual versions. Frankly I love them but just not sure how it may impact the work I do. And that is the reason why I used VSCode, you can say I was naive to not have gone through their license in detail, but to be honest it was my mistake that I did not go in-depth on the parts of VSCode that were open source and the parts that were not.
On the contrary I love VSCode as an editor & IDE and highly appreciate the work that Microsoft has been doing in recent times in Open Source. And that is why, as a developer who uses Windows as his primary OS, when I got my hands on VSCode as a better alternative to my early editors and IDEs for free, I never looked back. VSCode has been my IDE of choice for last 2 years and I have been a big advocate of VSCode for adoption in my team and elsewhere. But like few people in the comment section I never bothered to look at the License and that was my mistake. And I guess my earlier blog was a reaction to my surprise.
Brackets is a good editor and sometimes more lightweight than Atom but I feel it is more synonymous to a code editor than an IDE. I like to use it more for web development than Python development. Though it will be my last choice if I have to do regular development.
The most realistic alternative to VSCode in look & feel and functionality is Atom. But again it comes at a cost of speed. Also I have tried many plugins but the Terminal plugins in Atom doesn’t work so well in Windows. Also another plugin Hydrogen, while a good alternative to Jupyter, again here also I have not been able to make it work as well I would have wanted to. Personally I find these features working much better in Mac than in Windows. If I am on Mac, I would like to use Atom over VSCode.
Before VSCode my IDE of choice for Python development was Spyder . Its integration with ipython console and support for Variables Explorer and code hint is very helpful. The only limitation I see in Spyder is that it is only good if I am using it for Scientific Python or script development, many of the advance features and plugins available in PyCharm/Vscode/Atom is missing in Spyder. Now if I want to do web development or work on lets say Java code together in a Polyglot code base then my only choice is something like VSCode or Atom.
Recently I was trying alternatives to VSCode and found Eclipse with PyDev very pleasing. I feel its integration for JVM based languages much better than Python or other languages. And despite multiple refreshes to the IDE, I found its UI a bit dated and still slow to use. If I am using my system only for Software development then Eclipse is a good option. I wish to explore it more in future.
I also tried PyScripter but it is Windows only and given that we spend lot of time learning an IDE and its shortcuts and features, I usually look for a cross platform IDE. Despite being a very good IDE and very fast with very good debugging option and REPL, because of some of my personal preferences mentioned earlier I am currently not using it.
As mentioned in my previous blog I liked VSCode and it is very difficult for me replace the editor/IDE in short term. And I do respect the enterprise grade features that Microsoft and its engineers have provided in VSCode but the sticky point for me has been the dual license and hence for now I found VSCodium to be the best alternative. It is basically compiled version of VSCode with binaries also released as MIT license. After downloading and using it for some time I found to be same IDE features and layout as VSCode . For now VSCodium get me the work done, though its another thing that I need to check if its MIT license is fine with our enterprise license policies. And would worry less about the restrictive license (you may call me a fool if you may ) that VSCode binaries have.
Website Link: https://vscodium.com/
After VSCode I am now looking the license restriction that I may face for other components in my development and data analysis pipeline and I am looking to either get its licensing sorted out or replaced with more open FOSS license. I will be sharing more such experiences as I progress through this journey.
Originally Posted on Medium