TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Rome: An experimental JavaScript toolchain

370 pointsby vvoyerabout 5 years ago

44 comments

warpechabout 5 years ago
Great idea, very much welcome in the fragmented JS community.<p>However, I am sceptical about performance of a tool written in TypeScript&#x2F;JavaScript. We&#x27;ve seen that tools written in compiled languages like Rust or Go can be much faster, e.g. <a href="https:&#x2F;&#x2F;swc-project.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;swc-project.github.io&#x2F;</a>, <a href="https:&#x2F;&#x2F;packem.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;packem.github.io&#x2F;</a>, <a href="https:&#x2F;&#x2F;github.com&#x2F;nathan&#x2F;pax" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nathan&#x2F;pax</a>, <a href="https:&#x2F;&#x2F;github.com&#x2F;evanw&#x2F;esbuild" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;evanw&#x2F;esbuild</a>.<p>On the other hand, Yarn is written in JS and it is considered fast enough. Facebook has a good track record for writing well designed tools.
评论 #22430905 未加载
评论 #22430920 未加载
评论 #22434270 未加载
评论 #22432384 未加载
评论 #22431915 未加载
评论 #22431684 未加载
bogidonabout 5 years ago
It&#x27;s refreshing to see a JavaScript project with a mature tone and no emoji bullet lists in its readme. I&#x27;m very eager for JS culture to mature along with the tooling, and to prioritize content over sugar.
评论 #22433103 未加载
评论 #22432794 未加载
评论 #22432669 未加载
评论 #22433296 未加载
评论 #22433409 未加载
评论 #22434852 未加载
fireattackabout 5 years ago
&gt;Rome has a logo of an ancient Greek spartan helmet. It&#x27;s not very relevant since it&#x27;s not Roman, but it looks cooler than a Galea.<p>I chuckled.
评论 #22431454 未加载
评论 #22432044 未加载
评论 #22431633 未加载
kevsimabout 5 years ago
It has no external dependencies but supports compiling typescript, flow, etc. Does this mean compilers for those will be re-reimplemented inside Rome? Not really looking forward to build tool-specific bugs with those languages.
评论 #22431239 未加载
评论 #22431150 未加载
评论 #22431958 未加载
ivankolevabout 5 years ago
Sounds interesting, coming from Facebook and initiated by the guy who also started Yarn and Babel, so a good chance to achieve its lofty goals.
gunnabout 5 years ago
There&#x27;s quite a lot of code in the packages dir - 76,000 lines of typescript.<p>It was all added in the first commit 45 mins ago. Why would they hide their commit history?<p>Also I found this funny - comments in package.json:<p><pre><code> &quot;&#x2F;&#x2F;&quot;: &quot;Look! No deps!&quot;, &quot;dependencies&quot;: {}, &quot;&#x2F;&#x2F;&#x2F;&quot;: &quot;Only used for static type checking&quot;, &quot;devDependencies&quot;: {</code></pre>
评论 #22430956 未加载
chris_engelabout 5 years ago
Its amazing how there can be such a long readme file and it still does not communicate what this actually does...
评论 #22431153 未加载
评论 #22431946 未加载
评论 #22433967 未加载
评论 #22431313 未加载
评论 #22431091 未加载
andrewjones_about 5 years ago
I don&#x27;t really understand what it does? It replaces webpack, eslint, maybe the typescript compiler... etc, and puts it all in one library? What is the benefit to end-users? To reduce the number of bugs, make it easier for people to contribute (only need to contribute to one library), and increase the speed of development?
nameloswabout 5 years ago
Wow, I hope this could make current JavaScript workflow more slick and simplified.<p>Also the readme is doing a good job for answering my doubt at a first glance - why a Corinthian helmet rather than a Roman one :)<p>&gt; Rome has a logo of an ancient Greek spartan helmet. It&#x27;s not very relevant since it&#x27;s not Roman, but it looks cooler than a Galea.
foray1010about 5 years ago
I worry this is a start for a toolchain monopoly, I don&#x27;t like the idea of all-in-one, how can a single toolchain be the best of all fields? Will it suppress innovation like jslint -&gt; jshint -&gt; eslint? Just because the new and better tool is not part of the toolchain!
评论 #22432917 未加载
stellaloabout 5 years ago
&gt; The only way to use it is to build from source.<p>However, that will likely require more than 24 hours (ba-dum-tss)
评论 #22431917 未加载
Karupanabout 5 years ago
I am really excited for this project and hope it is opinionated enough and doesn’t go down the rabbit hole of endless customisable options in a Rome.js|json|rc file. I also hope this is as painless as Go and Elm’s default tooling.
overtowedabout 5 years ago
author&#x27;s tweets about its history - <a href="https:&#x2F;&#x2F;twitter.com&#x2F;sebmck&#x2F;status&#x2F;1108407803545214977" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;sebmck&#x2F;status&#x2F;1108407803545214977</a>
z3t4about 5 years ago
Make it run in the browser, using web workers to not block main thread. Most tooling is assumed to be used in a terminal... Make libraries instead of terminal applications, so that the tools can be used anywhere. Most people, including most developers, are not comfortable working in a terminal emulator. Even if <i>you</i> are, you probably google for, copy&#x2F;paste the commands into the terminal... terrible inneficient and unfriendly for beginners. Instead provide easy to use libraries, that can be used in monolith apps with some minor glue code.
pcj-githubabout 5 years ago
I&#x27;m not seeing a ton a tests in this repo, did I miss them? Seems like it will be very hard project to maintain and gather community support without better test coverage.
no_wizardabout 5 years ago
I just wish one of the key authors of this wasn&#x27;t such a jerk to the yarn development team just because they disagreed with their decisions. Makes me very hesitant to want to collaborate with such people.<p>edit: well, looks like they took down the offending tweets, but I can link out to this discussion: <a href="https:&#x2F;&#x2F;github.com&#x2F;yarnpkg&#x2F;berry&#x2F;issues&#x2F;766" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;yarnpkg&#x2F;berry&#x2F;issues&#x2F;766</a>
评论 #22437098 未加载
评论 #22437620 未加载
评论 #22435624 未加载
paxysabout 5 years ago
A Facebook project written in TypeScript...interesting
评论 #22431069 未加载
spooklogicalabout 5 years ago
The number of times I&#x27;ve created conflicting rules between my linter, editor, and bundler.... I&#x27;d use it just to ditch that mess.
nojvekabout 5 years ago
This is cool. Facebook does open source better than Google (things aren’t abandoned left and right) but I’m afraid the experimental would mean it’s future is unsure.<p>The other point is, why is Rome better than any existing tooling ? Webpack, typescript, prettier, eslint, mocha are all pretty popular and mature tools. Why would I use Rome over it ?
egypturnashabout 5 years ago
<i>Rome has a logo of an ancient Greek spartan helmet. It&#x27;s not very relevant since it&#x27;s not Roman, but it looks cooler than a Galea.</i><p>“Galea” links to the much cooler Roman helmet, disproving this statement. Also given that this is a build environment, perhaps an icon incorporating, I dunno, a Roman building might be appropriate?
markknolabout 5 years ago
I am using Haxe, which is a complete different ecosystem, which compiles to JS. It has a fast optimizing compiler, a strict-typed language. Has features like meta programming &#x2F;syntax-transformation (macros), conditional compilation, inlined calls etc. These are great tools to create high performance apps. You can find all the features on its website. It has a formatting tools and a linter, but has build-in deadcode elemination and a static analyzer so it only includes everything you use (so no need to strip it off afterwards as seen in some JS tools). Also could be a good candidate for WASM, since it compiles to C++. One thing that is great about Haxe is that is also compiles to other languages; you can reuse same code for different compiler targets. I mean, why does Rome only target JavaScript? For Haxe that&#x27;s just one option.<p>[disclaimer, I am a big Haxe fanboy]
kesavaabout 5 years ago
A little curious why TyepScript was chosen instead of Facebook&#x27;s own ReasonML.
评论 #22436924 未加载
brigandishabout 5 years ago
I love the README. I wish more more projects had things like this:<p>&gt; Transparency. No back-channel project management. Project conversation and decisions will take place only on public forums such as GitHub, the Rome Discord, and Twitter. The only exception to this is moderation decisions which will be strictly done in private.<p>The whole document is full of good ideas. I still want more, but that&#x27;s a league better than many &quot;top&quot; projects I use.
thecupisblueabout 5 years ago
This seems great. As far as I can tell, it will be take input in *Script - AST it, link it, lint it, bundle it up. Finally a whole toolchain in one place.
评论 #22431523 未加载
zaplobitoguabout 5 years ago
Just an observation... The batteries included model of Rome where it handles ESNext, JSX, Typescript and Flow out of the box without configuration appears to be a marked departure from the Babel preset&#x2F;plugin model. Customization is all fine and good, but most people don&#x27;t want to configure anything and are happy using defaults, even if it&#x27;s suboptimal in some cases.
dmitriidabout 5 years ago
The &quot;Project Philosophy&quot; section is just brilliant. I wish more projects consciously adopted it.
评论 #22431017 未加载
hglabout 5 years ago
Is it a good opportunity to make it work in deno since everything is self-contained?
RcouF1uZ4gsCabout 5 years ago
&gt; Rome is experimental and in active development. It&#x27;s open for contributors and those interested in experimental tools. It is not ready for production usage.<p>This is because, unlike the historical Rome, this Rome may fall in a day.
_bxg1about 5 years ago
&gt; Rome is not a collection of existing tools. All components are custom and use no third-party dependencies.<p>This seems enormously (and needlessly?) ambitious. Why not just bundle up the standard tools in a ready-to-use package?
评论 #22431519 未加载
评论 #22431392 未加载
peternickyabout 5 years ago
It is interesting that even Facebook employees prefer typescript to flow when starting a project from scratch. I’d love to hear sebastian explain why he didn’t use flow.
thundergolferabout 5 years ago
I&#x27;m curious whether the Rome authors devote attention to &#x27;compatibility&#x27; with the principles and requirements of build systems like Buck (and Bazel). Our company is in the process of migrating a large Typescript codebase to Bazel, and there&#x27;s a non-negligible amount of reconfiguring and re-tooling that needs to be done that would be less necessary if key ecosystem components were designed early to be hermetic, deterministic, modular, and incremental.<p>Edit: Facebook wrote Buck and uses it extensively internally, so there being a desire for compatibility doesn’t seem far-fetched.
评论 #22435330 未加载
zaplobitoguabout 5 years ago
Any metrics on time saved bundling a project from source with Rome versus other bundlers? Is there any minification support in Rome?
tekknolagiabout 5 years ago
The ReadMe isn&#x27;t clear and I&#x27;m on my phone: what does it compile to? It just says it has a compiler.
评论 #22431232 未加载
lyovsonabout 5 years ago
Why not use ReasonML for this though?
keithasaurusabout 5 years ago
Why not start with dependency-less standard lib? Then toolchain?
评论 #22434316 未加载
tobrabout 5 years ago
I’m sure this will be very useful, but I’m very sad that it’s from Facebook. I really don’t want anything to do with that company.
评论 #22432591 未加载
评论 #22430949 未加载
iddanabout 5 years ago
Why not incrementally share code with the current Facebook supported stack? Create PRs to Babel, Webpack and ESLint
评论 #22437111 未加载
diliprayabout 5 years ago
Won&#x27;t be built in a day
评论 #22432366 未加载
mnscabout 5 years ago
Choosing a name is hard. Facebook might have committed a small freudian slip here.<p><a href="https:&#x2F;&#x2F;www.history.com&#x2F;news&#x2F;8-reasons-why-rome-fell" rel="nofollow">https:&#x2F;&#x2F;www.history.com&#x2F;news&#x2F;8-reasons-why-rome-fell</a>
tjholowaychukabout 5 years ago
Facebook pays for this kind of stuff? Why not spend the time incorporating a decent language instead of trying to fix the fragmented hot mess that is js
评论 #22431703 未加载
评论 #22435919 未加载
评论 #22435349 未加载
iamleppertabout 5 years ago
Claiming no dependencies while not reducing complexity (76k SLOC mono-commit with no incremental history) isn&#x27;t a win. No mention of test coverage, no documentation besides the readme. No performance numbers of regression suite.
评论 #22431225 未加载
seemslegitabout 5 years ago
At this point any sensible engineering manager should be committed to prejudicially dismiss any new js tooling, preprocessor or package manager. The current trash fire state of affairs needs to be let to extinguish itself first.
robinduckettabout 5 years ago
Uh, I found some external deps. Sorry seb!<p><a href="https:&#x2F;&#x2F;github.com&#x2F;facebookexperimental&#x2F;rome&#x2F;blob&#x2F;master&#x2F;packages&#x2F;%40romejs-web&#x2F;frontend&#x2F;package.json" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;facebookexperimental&#x2F;rome&#x2F;blob&#x2F;master&#x2F;pac...</a>
评论 #22431648 未加载
lotwxyzabout 5 years ago
You can&#x27;t compile the code of scripting languages, so please stop using that term. You may be doing <i>something</i> to the &quot;source code&quot;, but it is <i>not</i> compiling! And I would argue that the thing you are doing to that code is <i>never</i> a good thing.
评论 #22435015 未加载