1. 14

Some interesting bits from the README

Rome is an experimental JavaScript toolchain. It includes a compiler, linter, formatter, bundler, testing framework and more. It aims to be a comprehensive tool for anything related to the processing of JavaScript source code.

Rome is not a collection of existing tools. All components are custom and use no third-party dependencies.

No external dependencies. This allows us to develop faster and provide a more cohesive experience by integrating internal libraries more tightly and sharing concepts and abstractions. There always exist opportunities to have a better experience by having something purpose-built.

  1.  

  2. 5

    This seems like a very good direction to explore. The tooling complexity and rate of change is one of my main problems with the Javascript ecosystem. People who get used to it don’t realize just how poor the experience is compared to other toolchains.

    1. 3

      I’ve loosely followed the author’s tweets about Rome and I’m excited about its ergonomics.

      1. 2

        “It includes a compiler” — what does it compile to? i.e. what backend(s) does it have? I don’t seem to see it mentioned in the readme. Or is it just to an internal AST, for linting etc. purposes? I.e. not a translator?

        1. 2

          I asked this on the orange site and got downvoted but not answered ¯\_(ツ)_/¯

          1. 2

            Ok, found something akin to an answer therein:

            It looks like it’s compiling TypeScript/Flow and newer JS features into more standard JS. Part transpiling.

            1. 1

              Aha, interesting. I wonder if there could be any support for non-JS-based languages there – I might have to poke around and see what their toolchain & APIs look like.

        2. 2

          So FB goes to React, Reason or Rome? I’m not sure how they are different and why FB has 3 different frameworks.

          1. 5

            These are all vastly different projects. You can write React with Reason (ReasonReact). Rome is a suite of tools, not for writing web views or an OCaml-lang that compiles to JS.

            1. 3

              It isn’t used currently at Facebook according to the author.

              Cf: https://twitter.com/sebmck/status/1108416062414950400?s=20

              1. 2

                Well React and Reason were made by the same guy, who now focuses on integrating the two.

              2. 1

                Rome is not a collection of existing tools. All components are custom and use no third-party dependencies

                Can someone explain why some would go this route? There must be millions (maybe billions) of hours of coding in the frameworks, that this software tries to replace.

                Although this is yet another tool for JavaScript, this could become very good, especially for beginners and people like me, that gave up catching up on the newest tech in JavaScript. I’m curious.

                1. 5

                  There must be millions (maybe billions) of hours of coding in the frameworks, that this software tries to replace.

                  20 years into programming, some of the best advice I can give is this:

                  When a problem has taken tens of thousands of hours to solve (or more), it is either Hard Research or it is being approached in totally the wrong way.

                  Munging files together is not Hard Research. There is - almost certainly - an alternative formulation of the problem-space to be found which is drastically simpler.

                  Typescript, on the other hand, is in the Hard Research bucket. Creating a typesystem that can gracefully interoperate with common idioms from dynamic languages is not straightforward at all.

                  1. 2

                    Well, it’s answered in the README:

                    This allows us to develop faster and provide a more cohesive experience by integrating internal libraries more tightly and sharing concepts and abstractions. There always exist opportunities to have a better experience by having something purpose-built