We finally released JSCS version 3.0, and I must say that, in addition to enthusiasm, we also feel some sadness. We worked a lot and for a long time on the major major version, it was quite interesting and sometimes exciting. It is sad that this will be the latest version of JSCS.
With the help of you, JavaScript developers who helped JSCS, the project was able to achieve success. About 5 thousand
stars on githaba and more than 27 thousand
downloads of the npm package per day. Nevertheless, we decided not to release new major versions and subsequently stop working on the project.
History of JSCS 3.0
This decision was very difficult to make. The long list of commits shows how much we worked on JSCS 3.0. But what you won't see there is the work on the new CST project, which formed the basis of JSCS 3.0.
We once mentioned CST in the
announcement of JSCS 2.2.0 . At some point, JSCS, which, like many other projects, used esprima, was faced with the inability to make complex changes to the code. Then we came up with CST (Concrete Syntax Tree), the purpose of which is to solve modern problems of tools for stylistic and logical verification of code. With the help of CST, it is already possible to delete unused variables, dead code .... fix everything a linter can fix in your wildest dreams :-)
')
So we wrote our own Scope Analyzer. We rewrote every rule in JSCS, fixed, fixed, fought for performance and fixed again ... So why did we decide to stay on the third version as the last one?
Support cost
Projects like JSCS require a huge investment of energy and time. Review pull requests, fix bugs, write documentation. Like the project website support. Like the answers (it happened at night) to the questions of users in Gitter.
The JSCS team worked in their free time, usually in the evenings after the main job or on weekends. But with less feedback from the community, the project has become too heavy to continue with pure enthusiasm.
Joining ESLint
As we have seen, ESLint and JSCS are already solving the same problem in different ways. A community with greater joy will use one linter, and not be torn between two different ones. And we decided to help the community.
Instead of continuing to compete with ESLint, we decided to join ESLint and bring our experience and tools that we developed during the development of the JSCS into it.
So today we are happy to share with you the news that most of the development team of the JSCS joins the ESLint team. We will continue to support the JSCS for the next three months: fix bugs, but without new features. The JSCS repository is not going anywhere, and you can always fork and use the code at your discretion. We will also continue to work on CST: we believe that this is the future of JS-linters. We hope to be able to help ESLint develop a high-quality and functional mechanism for automatically correcting errors of style and logic.
And yet
We will be happy if you help us test CST in business and update your JSCS to version 3. We are very interested in how CST will show itself in different projects.
In the future, we recommend that you switch to ESLint. We work with the ESLint team on tools and documentation that will make the transition less painful. Ideally, the transition will generally be invisible :-)
Thanks
We are very grateful to everyone who helped us with JSCS. Only thanks to you JSCS could become so popular. And now we invite you to join us in working on ESLint.
JSCS development team