<story><title>Rome: An experimental JavaScript toolchain</title><url>https://github.com/facebookexperimental/rome</url></story><parent_chain><item><author>warpech</author><text>Great idea, very much welcome in the fragmented JS community.&lt;p&gt;However, I am sceptical about performance of a tool written in TypeScript&amp;#x2F;JavaScript. We&amp;#x27;ve seen that tools written in compiled languages like Rust or Go can be much faster, e.g. 
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;swc-project.github.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;swc-project.github.io&amp;#x2F;&lt;/a&gt;, &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;packem.github.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;packem.github.io&amp;#x2F;&lt;/a&gt;, 
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nathan&amp;#x2F;pax&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nathan&amp;#x2F;pax&lt;/a&gt;, &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;evanw&amp;#x2F;esbuild&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;evanw&amp;#x2F;esbuild&lt;/a&gt;.&lt;p&gt;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.</text></item></parent_chain><comment><author>sebastianmck</author><text>I&amp;#x27;m skeptical too (I&amp;#x27;m the author of Rome). I know it can be at least performance neutral compared to existing JavaScript tools which is the baseline for most people. However I do think that since Rome is an enclosed system, without external dependencies and pretty good TS typing, that there&amp;#x27;s some future flexibility using another wasm language that other JS tools don&amp;#x27;t have.</text></comment>
<story><title>Rome: An experimental JavaScript toolchain</title><url>https://github.com/facebookexperimental/rome</url></story><parent_chain><item><author>warpech</author><text>Great idea, very much welcome in the fragmented JS community.&lt;p&gt;However, I am sceptical about performance of a tool written in TypeScript&amp;#x2F;JavaScript. We&amp;#x27;ve seen that tools written in compiled languages like Rust or Go can be much faster, e.g. 
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;swc-project.github.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;swc-project.github.io&amp;#x2F;&lt;/a&gt;, &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;packem.github.io&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;packem.github.io&amp;#x2F;&lt;/a&gt;, 
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nathan&amp;#x2F;pax&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nathan&amp;#x2F;pax&lt;/a&gt;, &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;evanw&amp;#x2F;esbuild&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;evanw&amp;#x2F;esbuild&lt;/a&gt;.&lt;p&gt;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.</text></item></parent_chain><comment><author>eropple</author><text>Using those languages comes at a tradeoff: the community isn&amp;#x27;t as a whole likely to know them or want to use them.&lt;p&gt;For example, I&amp;#x27;m a pretty prolific TypeScript developer these days. And I do know Rust and C++ and Java and a bunch of other languages, but I&amp;#x27;m unlikely to contribute to JavaScript-ecosystem stuff written in them because the cognitive overhead is too high--the context switching kills me. And while I do know Golang, having to write it makes me want to chuck my computer in a lake and I&amp;#x27;ll within epsilon of never contribute to a tool written in it.&lt;p&gt;You can swap in whatever languages in whatever slots in the above that you want, and you&amp;#x27;ll probably cover some chunk of the community. The intersection of all of them is JavaScript (and, for this project, TypeScript). I think that&amp;#x27;s wise.&lt;p&gt;If you need to optimize certain parts of your runtime or your toolchain once it&amp;#x27;s correct and does what it&amp;#x27;s supposed to and you can call the solution set &lt;i&gt;understood&lt;/i&gt;, that&amp;#x27;s one thing. But until it is, defaulting to something that isn&amp;#x27;t self-hosting is bad for your prospects of community building.</text></comment>