Live data from Hacker News

Rome: An experimental JavaScript toolchain

romejs.dev

31–40 of 96 posts

Re: Rome: An experimental JavaScript toolchain

#31

Maybe this is intuitive to JS devs, but what are the advantages of "zero third-party dependencies" and "being a comprehensive tool for the processing of anything JS related" or any of the other selling points of Rome? It seems like an impressive project, but it's not obvious to me what its actual benefits are.

[deleted]

Re: Rome: An experimental JavaScript toolchain

#32

Maybe this is intuitive to JS devs, but what are the advantages of "zero third-party dependencies" and "being a comprehensive tool for the processing of anything JS related" or any of the other selling points of Rome? It seems like an impressive project, but it's not obvious to me what its actual benefits are.

Dependency bloat is a problem in all popular programming language ecosystems, but has proven to be statistically a bigger deal in the JS ecosystem than in others.

Real problems this causes:

1. security surface area. Running npm audit in many large projects is going to give you scary results. And that's just the known advisories.

2. 3rd-party support. How many of the 1000+ packages you've ended up pulling into your node_modules will continue to be actively maintained throughout the life of your project, what stability pains will dead subdependencies cause, and what will the long-term maintenance cost of rooting them out (and finding equivalent replacements) be? Will it cause forced deprecation of features in your app?

So with all the above, low-dependency/no-dependency projects are attractive. Many go to extreme and repeat the old mistakes of NiH. Rome seems to me to be this extreme kneejerk (and liable to some serious lock-in).

The sensible thing here is moderation: just choose dependencies carefully.

Re: Rome: An experimental JavaScript toolchain

#33
post #20

It says "No Third Party Dependencies" but 95% of the code is written in TypeScript, so it isn't even JavaScript and the entire thing is built on top of one big dependency. Would not be a problem if it didn't sell itself as "zero third party dependencies" while being built on top of one that is not even JavaScript... Might as well built the tool in any other language that would have been better for the task.

typescript is just a language, how is that a dependency? by that logic, nothing is dependency free.

But the end users can't run the typescript, whereas they can run javascript directly. So, an external tool is required by the developer.

A similar comparison would be shipping a program to end users, saying that 'no dependencies required', but instead of giving them a binary to run, you hand them a c++ file. I think everyone would agree that a C++ compiler is clearly a required dependency in that case.

Re: Rome: An experimental JavaScript toolchain

#34
post #23

Who is going to maintain all of this in a few months or years when Facebook has moved on?

Isn't this true of all open source projects?

When it's many smaller projects, the workload can be shared and it's easier to replace a dead component.

Re: Rome: An experimental JavaScript toolchain

#35

I don't know if want this or if I really just want create-react-app for things that aren't react. A lot of tools do things Good Enough (which everyone disagrees on and will always fragment the ecosystem). But I do loathe setting up all the plumbing from scratch.

A lot of JS projects now have create-$X-app. Not all are as well thought out as CRA but its a good start.

Re: Rome: An experimental JavaScript toolchain

#38

Maybe this is intuitive to JS devs, but what are the advantages of "zero third-party dependencies" and "being a comprehensive tool for the processing of anything JS related" or any of the other selling points of Rome? It seems like an impressive project, but it's not obvious to me what its actual benefits are.

It's not intuitive to me as a JS dev too... Are you guys gonna re-implement typescript for example? Where does 'no deps' line get drawn?

"No dependencies" isn't quite accurate. There are a couple, and they are TypeScript and related packages: https://github.com/facebookexperimental/rome/tree/master/nod...

But everything else is on track to be reimplemented within Rome.

Re: Rome: An experimental JavaScript toolchain

#39
The premise is attractive, but the challenge will be keeping up with a rapidly-changing ecosystem. The advantage of letting Webpack and Babel be separate, having both as singular community focal-points for their respective tasks, and having both be extensible via plugins (the TypeScript team can work independently from the Babel team, for example), is that the leg-work of adding new JS features, parsing new syntaxes, keeping up with the spec, etc. can be distributed in the most efficient way possible. A single team trying to do everything in-house, duplicating the work of all of the above communities, will have a very hard time keeping up. But I wish them luck.

Re: Rome: An experimental JavaScript toolchain

#40
post #20

It says "No Third Party Dependencies" but 95% of the code is written in TypeScript, so it isn't even JavaScript and the entire thing is built on top of one big dependency. Would not be a problem if it didn't sell itself as "zero third party dependencies" while being built on top of one that is not even JavaScript... Might as well built the tool in any other language that would have been better for the task.

typescript is just a language, how is that a dependency? by that logic, nothing is dependency free.

I'm comparing it to JavaScript, which you can simply run in the browser or in NodeJS without requiring anything else but your code. You can't just use TypeScript, you have to compile it to JavaScript before, as the runtime is still either the browser or NodeJS.
Post reply on HN