Live data from Hacker News

Rome: An experimental JavaScript toolchain

romejs.dev

61–70 of 96 posts

Re: Rome: An experimental JavaScript toolchain

#61

Is this meant to replace Webpack + some list of plugins, does this get added to Webpack, or is this meant to go somewhere else entirely in the JS toolchain? If this replaces Webpack, can someone please list a combination of popular plugins that this compares to. (Or even a few lists - would it replace Grunt + something?) If not, can you tell me what other software this compares to, so that I can better understand it?…

The scope is even broader! Webpack is just a bundler. Rome is a bundler, linter, test runner, typescript compiler, and formatter. The proper comparison would be Webpack + ESLint + Jest + TSC + Prettier.

Re: Rome: An experimental JavaScript toolchain

#62

From the Getting Started Guide: > Then, navigate into it and build rome: > cd rome; ./scripts/build-release dist Be aware that this command might take a long time to complete. After all, Rome wasn't built in a day.

LOL!

It actually only takes a couple of minutes, with ANSI fancy progress bars and everything

Re: Rome: An experimental JavaScript toolchain

#63
post #46
post #41

I have been following the progress of this project on Twitter for months. However I'm very skeptical to see this project used in a production app. Re-implementing the entire JS toolchain for a modern SPA is a HUGE task, just checkout CRA dependencies : https://github.com/facebook/create-react-app/blob/master/pac...

It looks like Rome is a Facebook Open Source project, so there's reasons to believe a huge amount of resources is being put into it (probably the only way something like this is feasible). (This is not a statement either pro or against FB, just a neutral one :)

It was mostly built by one guy at least until very recently and not during company time from what I hear for the most part. Perhaps it was, but either way it doesn’t have huge firepower as of yet.

Then again, even React itself only has a small core team, same with lots of Facebook projects. I think they should hire more aggressively and become more of a tech-driven company (they should be fighting for the web platform too a lot stronger).

Re: Rome: An experimental JavaScript toolchain

#64
post #46
post #41

I have been following the progress of this project on Twitter for months. However I'm very skeptical to see this project used in a production app. Re-implementing the entire JS toolchain for a modern SPA is a HUGE task, just checkout CRA dependencies : https://github.com/facebook/create-react-app/blob/master/pac...

It looks like Rome is a Facebook Open Source project, so there's reasons to believe a huge amount of resources is being put into it (probably the only way something like this is feasible). (This is not a statement either pro or against FB, just a neutral one :)

> so there's reasons to believe a huge amount of resources is being put into it

The commit log shows that everything is committed by one person: https://github.com/facebookexperimental/rome/commits/master

Re: Rome: An experimental JavaScript toolchain

#65

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.

Starting a new JS project these days can be a huge hurdle for many users because they have to manually set up all the compilation/linting/testing/formatting etc infrastructure, each of which have multiple possible libraries, versions, and non-trivial configurations. You could spend a week configuring webpack alone to get code splitting, css compilation, etc to work. Projects like create-react-app and next.js have hel…

This is exactly it for me. Just setting up my project took well over a week (not like I couldn't do anything before that week was over, but getting everything how I wanted it was very non-trivial). Granted, a lot of it was because I was new to TypeScript, but I also got into a bunch of version hell trying to get TypeScript/Prettier/ESLint/VSCode to all work together on my machine because there were a bunch of version incompatibilities when tslint was essentially deprecated in favor of eslint for TypeScript.

Re: Rome: An experimental JavaScript toolchain

#66

Is this meant to replace Webpack + some list of plugins, does this get added to Webpack, or is this meant to go somewhere else entirely in the JS toolchain? If this replaces Webpack, can someone please list a combination of popular plugins that this compares to. (Or even a few lists - would it replace Grunt + something?) If not, can you tell me what other software this compares to, so that I can better understand it?…

The scope is even broader! Webpack is just a bundler. Rome is a bundler, linter, test runner, typescript compiler, and formatter. The proper comparison would be Webpack + ESLint + Jest + TSC + Prettier.

Thank you!

So, this is a bundler with built in plugins?

Is there is a way to add Babel etc, that I would have used with Webpack? Does it handle CSS?

And why would I prefer this over that chain (simpler to set up? Trust in Facebook over the people at js.foundation?)

Re: Rome: An experimental JavaScript toolchain

#67

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 no…

I like the idea of simplifying the tool chain, but I'm curious how flexible Rome will be in terms of settings/customization.

Like, if it "replaces webpack", am I locked into Rome's idea of what an "optimal bundler config" looks like? If I need more from a bundler, do I have to completely replace Rome with the "old" toolchain? How extendible is Rome on its own?

I'm wondering if it will have something like CRA's "eject" that allows you to override the defaults, without having to replace entire portions of it.

Re: Rome: An experimental JavaScript toolchain

#68
post #20

Earlier quoted context omitted.

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.

Building Rome does require typescript. It's a devDependency. Using Rome (ie, the `rome` command that gets built) does not.

"No dependencies" seems accurate to me, since it refers to use of the built product, which is what will presumably be used in the future when you can `npm install rome`.

Re: Rome: An experimental JavaScript toolchain

#69

Is this meant to replace Webpack + some list of plugins, does this get added to Webpack, or is this meant to go somewhere else entirely in the JS toolchain? If this replaces Webpack, can someone please list a combination of popular plugins that this compares to. (Or even a few lists - would it replace Grunt + something?) If not, can you tell me what other software this compares to, so that I can better understand it?…

I've been using fuse-box for a while, and am not sure I could be much happier. It's a bundler with big dreams, but mostly it's just really fast and the devs are responsive.

Re: Rome: An experimental JavaScript toolchain

#70

Earlier quoted context omitted.

The scope is even broader! Webpack is just a bundler. Rome is a bundler, linter, test runner, typescript compiler, and formatter. The proper comparison would be Webpack + ESLint + Jest + TSC + Prettier.

Thank you! So, this is a bundler with built in plugins? Is there is a way to add Babel etc, that I would have used with Webpack? Does it handle CSS? And why would I prefer this over that chain (simpler to set up? Trust in Facebook over the people at js.foundation?)

The standard stack is unnecessarily complex and very difficult to security-audit. By not having any third-party dependencies, you don't need to trust thousands of individual developers to not have their NPM accounts compromised or to push something with a subtle security bug.
Post reply on HN