I've started using https://biomejs.dev/ which is written in Rust. It's super fast compared to ESLint and doesn't require a ton of plugins to work (you just install the one @biomejs/biome package and that's it). The configuration is dead simple as well and it has VS Code and intelliJ support too. It also does formatting / prettifying in the same package as well. One downside though is it does not have support for Stan…
Biome is superb but the IntelliJ plugin is very buggy unfortunately. Still needs some time in the oven.
ESLint v9.0
41–49 of 49 posts
Re: ESLint v9.0
#42any ES linter written in rust?
Why does it have to be written in rust?
If I can, I always try to install the Rust or Go version of a tool instead of the Python or Node version.
Re: ESLint v9.0
#43I've started using https://biomejs.dev/ which is written in Rust. It's super fast compared to ESLint and doesn't require a ton of plugins to work (you just install the one @biomejs/biome package and that's it). The configuration is dead simple as well and it has VS Code and intelliJ support too. It also does formatting / prettifying in the same package as well. One downside though is it does not have support for Stan…
Projects like Biome and oxc seem to focus so much on reimplementing rules from eslint and broader eslint ecosystem vs. creating a plugin system for custom rules. It makes those linters virtually impossible for many projects to adopt. Seems like it's part of some larger anti composable tools trend that I really don't understand.
Re: ESLint v9.0
#44Earlier quoted context omitted.
Projects like Biome and oxc seem to focus so much on reimplementing rules from eslint and broader eslint ecosystem vs. creating a plugin system for custom rules. It makes those linters virtually impossible for many projects to adopt. Seems like it's part of some larger anti composable tools trend that I really don't understand.
My experience in the Python world is that the vast majority of projects only need one or two plugins for their linter, if any. Ruff has implemented so many flake8 plugins that I'm sure it has covered 99% of projects' linting setups.
Re: ESLint v9.0
#45Earlier quoted context omitted.
My experience in the Python world is that the vast majority of projects only need one or two plugins for their linter, if any. Ruff has implemented so many flake8 plugins that I'm sure it has covered 99% of projects' linting setups.
In the JS ecosystem I've seen a fair share of custom rules developed internal to engineering orgs. Someone submits a PR a couple times with the same mistakes and it's easier to write a custom rule than it is to keep reminding them and possibly others to come.
Re: ESLint v9.0
#46Re: ESLint v9.0
#47Earlier quoted context omitted.
It's in the release notes, and those also include a migration guide. I'm not sure what more you would want. It's a major version upgrade.
My qualm isn't really that it's hard to fix it once you know it's broken, or to find it in the release notes, but rather that this change doesn't need to be breaking to begin with. I can understand changing the docs and changing the default value, I can also understand dropping the plaintext config file, but why also break every project that currently relies on `.eslintrc.js`? From the tooling side, it's one extra li…
I can also understand wanting to move entirely to one standard. Leaving remains of the old one, with over a decade of documentation about it all over the internet, could make remaining functioning artifacts harder to debug when searched for. For example, someone is using eslint v11 and they search something like “eslintrc.js not registering”, and heaps of the results they get pertain to irrelevant versions of the software. Sure there are ways around this for the searcher (and something like copilot will surely catch these things quickly), but that doesn’t mean eslint’s GitHub issues wouldn’t risk being inundated with this type of problem for years.
I agree with you too, though. I imagine they felt they’d given it enough time and warning, and they’d prefer to keep their internals cleaner and more consistent, and their documentation simpler as well. Weird gotchas like “oh also this really old type of file we don’t technically support can still be loaded” are a bad noise when people want signals.
Re: ESLint v9.0
#48Earlier quoted context omitted.
Probably not. 9 is a big number. They're probably breaking too often. Should only break every few years.
Eslint released in 2013, so sounds about right. Even Java has had more major releases than that.
Not saying every project can do it, but some of these ESLint changes seem rather unnecessary.
React always adds warnings in 1 major release and then removes in the following major release, meaning if you have no warnings you can just upgrade without fear, which is quite a nice way of doing it.
Re: ESLint v9.0
#49Earlier quoted context omitted.
Eslint released in 2013, so sounds about right. Even Java has had more major releases than that.
DataTables released in about 2008 ( https://cdn.datatables.net/1.0.0/js/jquery.dataTables.js ) and just released 2.0 on Feb 15 this year ( https://cdn.datatables.net/2.0.0/ ). No BC-breaks that I'm aware of in 16 years. Not saying every project can do it, but some of these ESLint changes seem rather unnecessary. React always adds warnings in 1 major release and then removes in the following major release, meaning if…
I agree that the way React does things is preferable.