Live data from Hacker News

ESLint v9.0

eslint.org

31–40 of 49 posts

Re: ESLint v9.0

#31
post #5

I tried to migrate a few nights ago but gave up for now as it was too many changes. I will give it another go this week on a full stomach.

So much of it is completely unnecessary breaking changes too. A good example is the config file, out of the box they no longer support using `.eslintrc.*` (you can still get this behavior back with a config flag), you're now expected to use `eslint.config.js` instead. So in short, they're just making every single project out there that relies on ESLint go and either add a flag or rename one file — for what?

> So in short, they're just making every single project out there that relies on ESLint go and either add a flag or rename one file

Not every project. Many people switched to the .js format a long time ago since it’s more powerful. I understand the inconvenience though, especially since I don’t remember them deprecating the rc format when they introduced the js one.

Re: ESLint v9.0

#32

Earlier quoted context omitted.

> Err... isn't the whole point of a big number release to introduce big, breaking changes? Certainly not. Breaking changes should still be avoided as much as possible.

So are you saying that now was not the time for a major release? Or are you saying that the major release had too many breaking changes?

Probably not. 9 is a big number. They're probably breaking too often. Should only break every few years.

Re: ESLint v9.0

#33

I tried to migrate a few nights ago but gave up for now as it was too many changes. I will give it another go this week on a full stomach.

Updated a React Native project a month ago through 3 major versions and updating ESLint (to v8) was the most annoying and tedious part. I've just updated the main package and not the rules because something was broken constantly and it was spouting errors nonstop. Dealing with ESLint is the definition of "not fun". Ironic because it should make my life easier.

Re: ESLint v9.0

#34

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.

Re: ESLint v9.0

#35
i spent several hours migrating it yesterday, when i fixed one issue another issue would come up and so on. for every issue i have to look through GitHub issues, google search, etc to resolve it as their migration guide is not comprehensive.

I gave up eventually because i exhausted all options and couldn't fix issues.

I think some plugins are not compatible with eslint v9 so it doesn't make sense to upgrade unless they do first. Some of the plugins haven't been updated in years so I'm not confident that i can migrate anytime soon.

Re: ESLint v9.0

#36

i spent several hours migrating it yesterday, when i fixed one issue another issue would come up and so on. for every issue i have to look through GitHub issues, google search, etc to resolve it as their migration guide is not comprehensive. I gave up eventually because i exhausted all options and couldn't fix issues. I think some plugins are not compatible with eslint v9 so it doesn't make sense to upgrade unless th…

It seems very foolish to upgrade so immediately, why not wait for 9.0.2 or something? Let other people find the issues

Re: ESLint v9.0

#37

Earlier quoted context omitted.

So are you saying that now was not the time for a major release? Or are you saying that the major release had too many breaking changes?

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.

Re: ESLint v9.0

#38
post #8

any ES linter written in rust?

Why does it have to be written in rust?

It doesn't seem like anyone is working on JS tooling in C++. Some projects used Go but switched to Rust... I guess the object lifetimes are probably pretty simple so it's a no brainer.

Re: ESLint v9.0

#39
post #31
post #5

Earlier quoted context omitted.

So much of it is completely unnecessary breaking changes too. A good example is the config file, out of the box they no longer support using `.eslintrc.*` (you can still get this behavior back with a config flag), you're now expected to use `eslint.config.js` instead. So in short, they're just making every single project out there that relies on ESLint go and either add a flag or rename one file — for what?

> So in short, they're just making every single project out there that relies on ESLint go and either add a flag or rename one file Not every project. Many people switched to the .js format a long time ago since it’s more powerful. I understand the inconvenience though, especially since I don’t remember them deprecating the rc format when they introduced the js one.

This is not correct, even if you're using `.eslintrc.js`, you still have to go and rename it to `eslint.config.js`.

Re: ESLint v9.0

#40
post #29

Earlier 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.

I’m sure this isn’t an original idea but are any of these working on possibly translating JS based rules into rust or assembly and executing them faster?

You mean automatically translating existing eslint rules written in JS to rust? I haven't heard of any such plans, it would likely be really difficult.

That being said they would still need a plugin system (probably using wasm as compile target for plugins) for this to be feasible.

Post reply on HN