Live data from Hacker News

Rome: An experimental JavaScript toolchain

romejs.dev

51–60 of 96 posts

Re: Rome: An experimental JavaScript toolchain

#51

Earlier quoted context omitted.

If they end up using Rome internally that should be a good sign that it will be supported for years to come. React has been very well maintained for the past 5+ years.

I don't know. I don't think they stopped testing, but their open-source javascript testing framework jest has been unmaintained for a little while.

Jest had a new release 5 days ago, so "a little while" is quite literally a very short while.

Re: Rome: An experimental JavaScript toolchain

#52
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...

I've seen it happen enough times where a significant amount of complexity can be removed altogether by addressing a problem at the root in a fundamentally different way. Thousands upon thousands of lines of code can just disappear[1]. I have seen firsthand how complex Babel is, and I'm also skeptical about anything that claims it could replace Babel. But I also looked at Rome's parser and it's not trivially small, and the README says it's made by the same people who made Babel. So I have good reason to believe this is probably a serious restart with justifiable properties.

[1] https://www.folklore.org/StoryView.py?story=Negative_2000_Li...

Re: Rome: An experimental JavaScript toolchain

#53

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.

> what are the advantages of "zero third-party dependencies"

Dependencies are great for solving problems you are not willing or capable of solving. They are great when you need them, but most software includes dependencies that aren't needed or even directly requested. That is bloat. For example the Angular JS framework requests nearly 1100 NPM dependencies. That is a tremendous amount of code for an insignificant value add.

Re: Rome: An experimental JavaScript toolchain

#55
post #22

> Rome has a logo of an ancient Greek spartan helmet. It's not very relevant since it's not Roman, but it looks cooler than a Galea. It's OK. JavaScript has very little to do with Java, so it fits.

Never mind that they're wrong, this isn't even a proper spartan helmet.

Re: Rome: An experimental JavaScript toolchain

#56

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.

For example when webpack 4 came out, A bunch of loaders broke, but other ones depended on it, and I had to spend a full week trying out different numbers after my packages in my packages.json (the dependency file for node projects) until everything worked again. And then 2 weeks later shit started breaking again when we needed to add another library.

Re: Rome: An experimental JavaScript toolchain

#57
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.

> an external tool is required by the developer

Yes, that tool is Rome. They are re-implementing the TypeScript compiler, just like everything else

Re: Rome: An experimental JavaScript toolchain

#58
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.

The TypeScript compiler and the various @types NPM packages are dependencies. Node and NPM are also dependencies since this project will not execute without them.

What this project means by no dependencies is that there is nothing external pulled into the compiled JavaScript.

Re: Rome: An experimental JavaScript toolchain

#59
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.

Nobody says a C file has a "dependency" because you have to compile it.

Re: Rome: An experimental JavaScript toolchain

#60

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.

I know they said in the GitHub readme, but I still chuckled. Good chance I'm just losing my mind.
Post reply on HN