[HN Gopher] Eden
       ___________________________________________________________________
        
       Eden
        
       Author : tosh
       Score  : 332 points
       Date   : 2022-04-12 17:48 UTC (5 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | psuedo_uh wrote:
        
       | [deleted]
        
       | gregwebs wrote:
       | A Mercurial compatible SCM (not sure if it is a fork) built for
       | their workflow (monorepo) and scale (enormous, git is not usable
       | at their scale, at least for a monorepo). Uses Python and Rust.
       | Designed for efficient centralization rather than
       | decentralization.
        
         | markstos wrote:
         | The docs still refer to the the tool as Mecurial/hg:
         | 
         | https://github.com/facebookexperimental/eden/tree/main/eden/...
        
         | tux1968 wrote:
         | It says it was originally based on Mercurial, but is no longer
         | a distributed source code control system. Are you sure it's
         | still compatible?
        
         | deanCommie wrote:
         | So if you are at Facebook's or Google's scale, and also run a
         | monorepo, this will be great for you.
         | 
         | Which is to say, this is a product for one company - Facebook.
        
           | speedgoose wrote:
           | It's interesting that they prefer to develop such a tool
           | rather than giving up on the monorepo concept.
        
             | sulam wrote:
             | One very counterintuitive truth of large scale software
             | development is that as you scale to multiple services, you
             | are gravitationally pulled into a monorepo. There are
             | different forces at work but the strongest at this scale
             | are your data models and API definitions.
        
             | gubatron wrote:
        
             | riyadparvez wrote:
             | Dan Luu wrote about monorepo. It's worth a read
             | https://danluu.com/monorepo/
        
             | simias wrote:
             | Is it? I'm working for a small company and even at our
             | scale, when the workflow is centralized, I find git a bit
             | painful at times. I mean it's still an amazing tool, don't
             | get me wrong, but when you have to deal with several sub-
             | projects that you have to keep in sync and need to evolve
             | together, I find that it gets messy real fast.
             | 
             | I think the core issue with git is that the submodule thing
             | is obviously an afterthought that's cobbled together on top
             | of the preexisting SCM instead of something that was taken
             | into account from the start. It's better than nothing, but
             | it's probably the one aspect of git that sometimes makes me
             | long for SVN.
             | 
             | At the scale of something like Facebook you'd either have
             | to pay a team to implement and support your split repo
             | framework, or you'd have to pay a team to implement and
             | support your monorepo framework. I don't have enough
             | experience with such large codebases to claim expertise,
             | but I would probably go for a monorepo as well based on my
             | personal experience. Seems like the most straightforward,
             | flexible and easier to scale approach.
        
               | gen220 wrote:
               | If your company is small, I don't think you should be
               | using git submodules at all.
               | 
               | My last place was about 10 years young, 150 engineers,
               | and was still working within a single git repo without
               | submodules.
               | 
               | There is a non-zero amount of discoverable config that
               | goes into managing a repo like that, but it's trivial
               | compared to the ongoing headaches of managing submodules,
               | like you suggest.
        
             | ssl232 wrote:
             | Do Facebook and Google literally have repos with everything
             | they write in there available to everyone that works there
             | (modulo privileged stuff)?
        
               | xrikcus wrote:
               | Not quite, but almost.
        
             | klodolph wrote:
             | You need good tooling to work with large monorepos, you
             | need good tooling to work with large multirepos. Neither
             | option is easy at that scale.
        
           | pedrogpimenta wrote:
           | Or Google, as per your first sentence :)
        
             | onlyrealcuzzo wrote:
             | Google already has its own [=
        
               | dijit wrote:
               | Would kill to have piper open source though.
        
           | criddell wrote:
           | Why wouldn't it be great for other companies that run a
           | monorepo? Would it be nuts to go from some other monorepo
           | (like Subversion) to this?
        
             | madeofpalk wrote:
             | I wouldn't think there would be many companies running
             | repos as large as Facebook.
             | 
             | If you use a tool like this you would basically be on your
             | own. If you "stick to git" (or mercurial or whatever) at
             | least you have all that momentum behind you, and you almost
             | definitely won't be the first people to encounter a
             | problem.
        
           | voidfunc wrote:
           | Can't wait for the "We switched to Eden from Git" posts in 6
           | months.
        
             | zelphirkalt wrote:
             | Which will result in lots of people thinking "FB does it!
             | It must be the future! We have to do this as well, or we
             | will be left behind!" _sigh_.
        
       | bin_bash wrote:
       | tl;dr: automatic sparse checkouts for massive monorepos
        
         | tazjin wrote:
         | Also check out josh: https://github.com/josh-project/josh
        
       | tosh wrote:
       | I wonder if Eden is a reference to
       | https://en.wikipedia.org/wiki/Eden_(2021_TV_series)
        
         | inanutshellus wrote:
         | The project's name goes back to 2016. Granted, the README
         | called the project a "filesystem" back then not an SCM, but...
         | still, the name seems to predate the series by quite a bit.
        
         | NobodyNada wrote:
         | Given that your link says the show came out in 2021, and the
         | GitHub repo is at least 3 years old, probably not.
        
         | benatkin wrote:
         | I think it's probably from Facebook's culture of pretending
         | it's a force for good when it's a mixed bag like every other
         | Megacorp. Here's an example of what Zuck has said:
         | 
         | > I believe the most important thing we can do is work to bring
         | people closer together. It's so important that we're changing
         | Facebook's whole mission to take this on.
         | 
         | No wonder they have a major project named Yoga and now this...
        
           | tekknolagi wrote:
           | Pretty sure it's called yoga because it is a _flexible_
           | layout engine. A joke.
        
             | benatkin wrote:
             | Here's another one: https://facebook.github.io/prophet/
             | 
             | It's used to predict things, but still strikes me as an odd
             | name, just like Yoga.
        
               | pc86 wrote:
               | The comment you're replying to is a perfectly good reason
               | why it's named Yoga, not sure why it'd still seem "odd"
               | with that context. Not particularly witty, but it
               | definitely makes sense.
        
               | [deleted]
        
           | KerrAvon wrote:
           | > it's a mixed bag like every other Megacorp
           | 
           | No, you can't simply dismiss the fundamental problems with
           | Facebook/Meta with whataboutism. Google and Apple and
           | Microsoft are standard mixed bags. Not Facebook.
           | 
           | Facebook is pure evil. It has queued up the complete
           | obliteration of western democracy, which even Rupert Murdoch
           | couldn't quite manage on his own. You can absolutely find
           | non-directly-evil things to at Facebook/Meta, but it all
           | supports the evil in the end.
           | 
           | https://www.theatlantic.com/magazine/archive/2022/05/social-.
           | ..
        
         | loeg wrote:
         | Nah, it's older than 2021.
        
           | benatkin wrote:
           | If Eden the TV series was based on a book, the book could be
           | older, but it isn't.
           | 
           | It's also possible, but not likely, and not the case here,
           | that a TV show could be a sensation long before the first
           | episode comes out. I can't think of a time when this happened
           | except for a prequel or sequel like Better Call Saul, where
           | it was much awaited, but I'm sure there are instances of that
           | occurring.
           | 
           | Edit: from another comment, there's this, which came out in
           | 1997 but isn't mentioned in the Wikipedia article for the TV
           | series so I'm not sure it's related: https://en.m.wikipedia.o
           | rg/wiki/Eden:_It%27s_an_Endless_Worl... There is a Manga
           | mentioned in the article for the TV series but it came out
           | the same year as the TV show.
        
         | Lammy wrote:
         | https://bindingofisaacrebirth.fandom.com/wiki/Eden
        
         | layer8 wrote:
         | If anything, rather
         | https://en.m.wikipedia.org/wiki/Eden:_It%27s_an_Endless_Worl...
        
       | hestefisk wrote:
       | _Proceeds to book edenhub.com_
        
       | tzury wrote:
       | they use git (and github) to maintain their own source control
       | management system?
        
         | tazjin wrote:
         | No, they have a system similar to Google's copybara which
         | exports this repository out of their internal monorepo.
        
         | Barrin92 wrote:
         | nothing would be wrong with it if they did. A control
         | management system suited for gigantic monorepos isn't itself
         | necessarily a gigantic monorepo.
        
       | Ancapistani wrote:
       | I think it's a tall order for another SCM to challenge git. I
       | can't imagine how it could be any more entrenched in the
       | industry.
       | 
       | Further, I'm happy with git. I played with Mercurial years ago,
       | long enough to work with it day-to-day, and just didn't find any
       | relevant advantages versus git.
       | 
       | I love that people are still out there trying to improve things,
       | and certainly don't want that to stop, but it's difficult for me
       | to imagine switching at this point.
        
         | mountainriver wrote:
         | I would just love it if git could handle large files, it causes
         | a lot of hacky solutions right now
        
         | jchw wrote:
         | If you go to work for Google or Facebook, it quickly becomes
         | apparent that switching SCMs is much cheaper than trying to use
         | ordinary Git or Mercurial at scale. (Though it is clear that
         | Google, Facebook and Microsoft are all trying to maximize the
         | amount of familiarity and not reinvent the wheel too much; they
         | all have been working on tools either building on, utilizing,
         | or based on already existing SCM tools.)
        
         | optymizer wrote:
         | I used Meta's Mercurial, having previously used primarily git
         | (and SVN, and CVS before that). It has a number of very cool
         | improvements over git, and it's well integrated into the rest
         | of their infrastructure.
         | 
         | You know the feeling of having to use SVN after using Git? This
         | is what it feels like to use Git after getting used to Meta's
         | Mercurial. I wish I could go into the details, but I don't know
         | how much of it was ported back to Mercurial.
        
         | qbasic_forever wrote:
         | I don't think it's trying to compete with git, it's not
         | decentralized or meant to support big distributed open source
         | project development. This looks like a nice tool for Big
         | Company to manage its internal, private code repositories.
        
           | z3t4 wrote:
           | The decentralized part of Git and Mercurial is nice (eg. no
           | need for Github et.al), but I think most software projects
           | using Git or Mercurial _do_ have a centralized server /hub...
        
         | efsavage wrote:
         | The biggest differentiation for me between Git and Mercurial is
         | that Mercurial is _far_ better for code reviews because it
         | manages stacks of  "as small as possible" changes much easier.
         | The git workarounds I've tried to replicate 'hg histedit' and
         | 'hg absorb' are ... not good.
         | 
         | Similarly, I think Git(hub) has succeeded in open source
         | because bundling more complete changes into PRs works well for
         | unevenly distributed contributions.
        
         | avgcorrection wrote:
         | This looks like it's supposed to be more appropriate for very,
         | very big repos. Which current Git doesn't support and isn't
         | fundamentally designed to support.
         | 
         | So rather than use Git + Git Annex or something like that
         | (maybe more), you'll just use this alternative SCM.
         | 
         | (I keep hearing about how Git will eventually support big
         | repos, but it's still not on the horizon. Big repos with Git
         | still seems to be limited to big corps who have the resources
         | to make something bespoke. Personally I don't use big repos so
         | I have no skin in this game.)
        
         | m12k wrote:
         | I'm also happy with git, but there's 3 main things that could
         | improve on git IMO:
         | 
         | 1) Better handling of large files than git-lfs. As in 10+ GB
         | repos. This is needed for game development (currently they tend
         | to use Perforce or PlasticSCM)
         | 
         | 2) Sparse checkout via file system integration (like Eden has)
         | 
         | 3) Build system integration, so unchanged files and modules
         | don't even need to be fetched to be compiled, because cached
         | builds can be fetched from a build server instead (requires
         | proper modularization, so e.g. C++ macro expansion doesn't just
         | prevent anything from being cacheable)
         | 
         | These are all features that primarily have value for repos that
         | push the limits on size, like big monorepos (with a huge amount
         | of files) or game development (with big asset files). But get
         | it right, and you could massively cut down the time it takes to
         | check out a branch and build it.
        
           | thomascgalvin wrote:
           | ClearCase (claimed to) support points two and three way back
           | in the 90s. It never really worked right; it was always
           | trying to "wink-in" someone else's binary, despite the fact
           | that it was built using a different version of the source.
        
           | 411111111111111 wrote:
           | > _Build system integration_
           | 
           | It would be a game changer if any SCM actually manages to
           | achieve this without needing multiple developer teams just
           | for maintenance.
           | 
           | That would probably break gits current dominance within a
           | relatively short timeframe... But I don't think it'll happen
           | within the foreseeable future,
        
             | avar wrote:
             | If you want an SCM with direct build system integration
             | there's always GNU make with its support for RCS :)
             | 
             | More seriously, can you describe what "build system
             | integration" would look like? Basically like what GNU make
             | does with RCS? I.e. considering the SCM "files" as sources.
             | 
             | How would such a system build a dumb tarball snapshot?
        
           | webmaven wrote:
           | _> These are all features that primarily have value for repos
           | that push the limits on size, like big monorepos (with a huge
           | amount of files) or game development (with big asset files).
           | But get it right, and you could massively cut down the time
           | it takes to check out a branch and build it._
           | 
           | Would this be a good fit for large machine learning data
           | sets?
           | 
           | Every time a new model comes out that touts having been
           | trained on something like a quarter of a billion images, I
           | ask myself "how the heck does someone manage and version a
           | pile like that?"
        
           | kvnhn wrote:
           | This is by no means a perfect match for your requirements,
           | but I'll share a CLI tool I built, called Dud[0]. At the
           | least it may spur some ideas.
           | 
           | Dud is meant to be a companion to SCM (e.g. Git) for large
           | files. I was turned off of Git LFS after a couple failed
           | attempts at using it for data science work. DVC[1] is an
           | improvement in many ways, but it has some rough edges and
           | serious performance issues[2].
           | 
           | With Dud I focused on speed and simplicity. To your three
           | points above:
           | 
           | 1) Dud can comfortably track datasets in the 100s of GBs. In
           | practice, the bottleneck is your disk I/O speed.
           | 
           | 2) Dud checks out binaries as links by default, so it's super
           | fast to switch between commits.
           | 
           | 3) Dud includes a means to build data pipelines -- think
           | Makefiles with less footguns. Dud can detect when outputs are
           | up to date and skip executing a pipeline stage.
           | 
           | I hope this helps, and I'd be happy to chat about it.
           | 
           | [0]: https://github.com/kevin-hanselman/dud
           | 
           | [1]: https://dvc.org
           | 
           | [2]: https://github.com/kevin-hanselman/dud#concrete-
           | differences-...
        
           | bastardoperator wrote:
           | Not handling large binary files is a feature from my
           | perspective. Git is for source code and treating it like a
           | disk or a catch all for your project is how people get into
           | scaling trouble. I don't see any reason why versioned
           | artifacts can't be attached to a build, or better, in a warm
           | cache. I get that it's easier to keep everything together,
           | but we can look at the roots of git and it becomes fairly
           | obvious, Linus wasn't checking in 48GB 4K mpeg files for his
           | next FPS.
        
         | markstos wrote:
         | Coming from Darcs, Git has a horrible user interface. Something
         | like Jujutsu has a chance to disrupt Git.
         | 
         | It can use the Git data store, so developers can in theory
         | start using it without the whole team adopting it. Then it
         | addresses the big problem with Git, the user interface:
         | 
         | https://github.com/martinvonz/jj
         | 
         | I'm not suggesting that "jj" in particular will disrupt Git,
         | but I think eventually the a tool which supports the git data
         | store with a better user interface could take hold.
        
           | tick_tock_tick wrote:
           | Git usage for most developer is 3-4 commands or once in a
           | blue moon when they fuck up badly save a copy of your changes
           | and reset hard. There aren't enough user interface
           | improvements possible to get people to switch.
        
         | shashashasha___ wrote:
         | it solves scale issues that git can't solve at the moment. fb
         | monorepos are huge. so for most people/companies this issue is
         | not critical to solve and git is great.
        
         | ithkuil wrote:
         | A SCM like https://pijul.org/ would be a challenge to git. Eden
         | is more a challenge for things like perforce.
        
         | noobermin wrote:
         | I don't think them putting it out is an attempt to compete with
         | anything, they're just putting it out to put it out.
         | 
         | If they are then I totally agree.
        
         | cproctor wrote:
         | OK, slightly off-topic but maybe the right minds are here. We
         | have been developing an introductory CS curriculum committed to
         | thinking-with-powerful-tools, including the command line, real
         | programming languages, and git. It's great until it isn't. We
         | intentionally maintain a simplified workflow, but still get the
         | occasional merge conflict or local state blocking a pull. I
         | keep thinking there must be a simplified wrapper over git which
         | maintains the conceptual power while avoiding the sharp edges,
         | even if at the cost of robustness. I'd be more interested in an
         | abstraction than a GUI, but would be interested to hear
         | whatever others have come up with.
        
           | avar wrote:
           | Can you show a step by step list of git commands where you
           | find the interface to be bad?
        
       | gabrielrc wrote:
       | Unfortunately their open source support is very little to non
       | existent.
       | 
       | It's great, and it doesn't work outside Facebook.
        
         | bjackman wrote:
         | I'm actually curious what the strategy is here. To my knowledge
         | only FB, Google and MS do megascale monorepo, and Google and MS
         | already have a solution. Are there now other companies
         | outgrowing Git that Facebook is hoping to build a community
         | with?
        
         | travisd wrote:
         | Facebook has a terrible track record when it comes to open-
         | sourcing their internal tools. See: Phabricator, HHVM, Flow,
         | Jest, ...
         | 
         | Even React, which is their most popular library, is not
         | actually "open source." They're very transparent about the fact
         | that their priorities are Facebook's needs -- even if they do
         | take community input.
         | 
         | None of this is per-se _bad_ , but you should definitely treat
         | an open-source project out of Facebook with skepticism when it
         | comes to adopting it for your own use cases (possibly making
         | sure you're not too locked in when an incompatible v2 comes out
         | with virtually no warning after FB's internal implementation
         | drifts).
        
           | peterhunt wrote:
           | This is not a fair characterization of React. The tech lead
           | of the project doesn't even work at FB anymore.
        
           | hn_throwaway_99 wrote:
           | What's wrong with Flow, Jest or Graphql? I think these are
           | all fantastic projects. I mean, Flow "lost out" to
           | Typescript, but, it's usual for one winner to emerge from
           | competing frameworks.
        
             | paulhodge wrote:
             | Graphql is great. With Jest, that project feels a little
             | abandoned because the Typescript support (ts-jest) is
             | pretty janky and has bad performance. Meanwhile in the
             | ecosystem in 2022, it's becoming the norm to have first-
             | class Typescript support.
        
           | folkrav wrote:
           | > Even React, which is their most popular library, is not
           | actually "open source."
           | 
           | How do you define "open source"? It typically simply means
           | the source code is available. By any definition I can think
           | of, React is definitely both free and open source. How they
           | design the software or if they take contributors isn't really
           | relevant.
        
             | xcambar wrote:
             | nowadays, it is expected that open source is also a synonym
             | for "community-driven", which is a very bold assumption.
             | 
             | I don't know how we got to this point but it's interesting
             | to notice that the terminology drifted.
        
               | picardo wrote:
               | By that definition, any software project that is driven
               | by a BDFL wouldn't be open source, including Linux.
               | 
               | The terminology hasn't drifted that much. I think there
               | is a small and vocal group of people who are trying to
               | take back "open source" by reframing what it means, so as
               | to exclude corporate projects. It doesn't make sense to
               | me.
        
             | naikrovek wrote:
             | > How do you define "open source"? It typically simply
             | means the source code is available.
             | 
             | that is not what that means. "source is available" and
             | "open source" are _very_ different.
        
               | colinmhayes wrote:
               | Disagree. We need to stop trying to cram meaning into
               | phrases that are already defined. Open source means the
               | source code is freely available. Adding anything else
               | requires a different name.
        
             | TheDong wrote:
             | > How do you define "open source"? It typically simply
             | means the source code is available.
             | 
             | I agree with you that react is definitely open source, but
             | I'd also encourage you to use more specific wording around
             | what "open source" means.
             | 
             | I think wikipedia gets this right:
             | https://en.wikipedia.org/wiki/Open-source_software
             | 
             | "Open-source software (OSS) is computer software that is
             | released under a license in which the copyright holder
             | grants users the rights to use, study, change, and
             | distribute the software and its source code to anyone and
             | for any purpose"
             | 
             | The license is the key bit.
             | 
             | On the other hand, there's "source available" software
             | (also on wikipedia https://en.wikipedia.org/wiki/Source-
             | available_software ), which is what your definition equates
             | to, and I personally don't want to see confused with open
             | source or free software.
        
               | folkrav wrote:
               | React is MIT, which is pretty much one of the least
               | restrictive ones, granting basically no rights to the
               | original publisher.
               | 
               | That Wikipedia definition sounds more like what typically
               | gets described as "Free and Open-Source Software"/FOSS,
               | no?
        
               | TheDong wrote:
               | I'm aware React is MIT and of the various licenses etc.
               | 
               | As I see it commonly defined, "open source software",
               | FOSS, and FLOSS all mean the same thing more or less.
               | That the project uses an OSI approved license, or one
               | very close to it, whether it's MIT, Apache2, or GPL.
               | 
               | "Free software" is the only of the phrases that I see
               | having two competing common definitions, the "free as in
               | money", and "free as in Free Software Foundation's
               | definition of free software". This seems pretty
               | understandable, since "free" is overloaded.
               | 
               | I only infrequently see people mixing up "open source"
               | and "source available", and that's the specific thing I'm
               | trying to discourage people from mixing up. I think
               | keeping those terms clear, and especially calling out
               | "source available" software as _not_ being "open source"
               | (i.e. not granting you the freedom to modify it or run
               | your own copy in some cases) is important.
        
               | kodah wrote:
               | There's three domains where people usually use the term
               | "open source".
               | 
               | - Freely licensed software (eg: MIT, GPL, etc)
               | 
               | - Code visibility (eg: ForgeRock)
               | 
               | - Community focus/contributions
               | 
               | Not all "open source" implements each of these, and just
               | because they implement one and not the other doesn't mean
               | they're not expressly open source. Just some ecosystems
               | are _more_ open than others.
        
               | Lammy wrote:
               | Free Software == my project's code, to others
               | 
               | Open Source == other peoples' contributions, to my
               | project's code
        
               | TheDong wrote:
               | I have not seen this distinction commonly.
               | 
               | Can you link to a reference?
               | 
               | As I understand it, "Free Software" is the term the FSF
               | and general hacker community settled on for licenses that
               | preserve user's freedom to modify and redistribute source
               | code.
               | 
               | O'Reilly etc shifted to the term Open Source as part of
               | making the idea less associated with "hacker culture",
               | and more associated with businesses (as described here:
               | https://en.wikipedia.org/wiki/Open-
               | source_software#End_of_19... )
               | 
               | From there, I see "Open source" being slightly more often
               | associated with companies or younger developers, and
               | "free software" more often being associated with the GNU
               | project, copyleft projects, etc.
               | 
               | I'm curious if you have references or more explanation
               | about the difference you're trying to draw, since it's
               | one I haven't seen before.
        
               | Lammy wrote:
               | > I'm curious if you have references or more explanation
               | about the difference you're trying to draw, since it's
               | one I haven't seen before.
               | 
               | My distinction between the two is whether outside
               | contributions make it back into the original project.
               | Free Software is about the rights of end users to inspect
               | the code and make and distribute their own modifications,
               | but then Open Source takes it a bit further by explicitly
               | soliciting contributions with the ostensible aim of
               | building a better project through cooperative labor than
               | an individual programmer could build alone.
               | 
               | In practice though "Open Source" has turned into unpaid
               | project management work for billion-dollar corporations,
               | bitter disputes between contributors over conflicting
               | standards of morality, technical visions in constant flux
               | as contributors come and go, and endless bikeshedding
               | about semantic version numbers / code style guides /
               | other things that don't matter. For years I thought I was
               | totally burned out on Free Software and walked away from
               | all of it, but what I was actually burned out on is Open
               | Source and have been able to love programming again by
               | working on things that are explicitly "Free Software but
               | not Open Source".
               | 
               | The `actix-web` drama a few years ago is a perfect
               | example, when a huge crowd of onlookers felt morally
               | justified excoriating a popular project's creator /
               | maintainer for not managing their project to the crowd's
               | standards: https://steveklabnik.com/writing/a-sad-day-
               | for-rust
        
               | naoqj wrote:
               | >Open-source software (OSS) is computer software that is
               | released under a license in which the copyright holder
               | grants users the rights to use, study, change, and
               | distribute the software and its source code to anyone and
               | for any purpose
               | 
               | ??? Isn't React licenced under the MIT licence? It seems
               | to me that it tickes all boxes?
        
               | TheDong wrote:
               | As I wrote at the top of my comment. "I agree with you
               | that react is definitely open source" (and no, I did not
               | edit that in, it was there when you read it)
               | 
               | I'm aware react is licensed under the MIT license. I was
               | just talking about how the parent comment chose to define
               | "open source".
        
             | renewiltord wrote:
             | Everyone is going on tangents, but yes React is as open-
             | source as they come. What people are conflating are the
             | notion of community-driven and open-source.
             | 
             | React is a successful Facebook OSS project. An example of
             | one which went poorly is Thrift. Facebook open-sourced it
             | and then internally used fbthrift which diverged
             | drastically. OSS Thrift isn't that popular these days any
             | more.
        
             | lala45 wrote:
             | Free Software is an established term, and React certainly
             | is not Free Software, due to its patent. I very much doubt
             | that React is Open Source either, for the same reason.
        
             | sneak wrote:
             | No, open source means that the software is free software.
             | 
             | The source code to Windows is available.
        
           | tptacek wrote:
           | React is MIT-licensed. It is, of course, open source. If you
           | don't like their decisions, fork it.
        
             | lala45 wrote:
             | React is patented and Facebook is actively choosing not to
             | offer a patent grant, so unfortunately that's not the whole
             | story.
             | 
             | A fork may not be an option. Perhaps a given organization
             | may not even be allowed to use React, if Facebook decides
             | against it for some reason. Jurisdictions can differ as
             | well.
             | 
             | In my opinion, the best thing would be if Facebook simply
             | made the terms clear by using the Apache license or
             | similar. But hey, it's Facebook, so I'm not expecting
             | much...
        
               | bjt wrote:
               | What patents does Facebook have on React?
        
         | aliveli wrote:
         | Stay tuned ;)
        
           | ripphab wrote:
           | For what, another Phabricator, that I'll inevitably have to
           | migrate my company away from again?
           | 
           | So if history serves the next announcement to watch for is
           | your departure from Facebook and the launch of Edenity, which
           | will be sunset and abandoned inside a decade once it fails to
           | IPO. Am I close?
        
           | epage wrote:
           | A bit skeptical when there are relatively recent commits like
           | 
           | > Re-sync with internal repository
        
             | joatmon-snoo wrote:
             | Open sourcing an internal repository with extensive,
             | ongoing work on it is always a difficult affair, because
             | you're creating a second source of truth. (It isn't just
             | how you manage external contributions, but also workflows
             | like releases and CI.)
             | 
             | I wouldn't consider this to be a problem.
        
               | epage wrote:
               | It means they haven't (yet?) transitioned to open-first
               | and it'll require proving themselves that they'll do
               | open-first development before trusting them. Not willing
               | to bet my work on a product where the governance isn't
               | open but everything is driven by and for a single
               | company's needs.
        
       | bogwog wrote:
       | Does this do anything special for handling binary data, or is it
       | mostly for text like git? I've heard that Perforce (another
       | centralized SCM) does a good job with large binaries.
       | 
       | I love git just as much as the next guy, but git-lfs sucks.
        
         | martincmartin wrote:
         | I worked at Meta and used Eden. I remember it as a virtual,
         | FUSE based file system for a huge monorepo. Basically, if you
         | have GBs of data in your monorepo, and any individual user
         | accesses < 1% of it, then there's no point in having each "hg
         | update" update the other 99%.
         | 
         | But we were explicitly dissuaded from having binary data. I
         | worked on image processing, and wanted to store test images for
         | unit tests in hg, but the consensus was, that was a bad idea.
         | So we stored them in a separate data store, and had a make rule
         | to fetch them as part of the build.
        
       | maxmcd wrote:
       | Is there a FUSE filesystem for Git that takes a similar strategy
       | to edenFS?
       | 
       | Only setting up files and folders as they are requested might be
       | very helpful with various git monorepo access patterns. Maybe
       | there is something inherit to Git's design that makes this less
       | practical.
        
         | zellyn wrote:
         | https://github.com/microsoft/VFSForGit
         | 
         | Which seems to have been superseded by
         | https://github.com/microsoft/scalar according to the README.
        
       | ctur wrote:
       | The SCM ecosystem at Facebook is tremendously powerful and the
       | result of some of the best minds at Facebook working on those
       | systems for many years. From the scaling of the monorepos to the
       | code review workflows, nothing really matches it. The ergonomics
       | of most of the tooling was simply top notch (which it needed to
       | be... engineers, particularly at Meta, are an opinionated lot who
       | don't tolerate poor tools).
       | 
       | It's great to see this out in the wild now.
        
         | Yeroc wrote:
         | Do you know how this compares to Microsoft's efforts to scale
         | git via the Scalar [https://github.com/microsoft/scalar]
         | project?
        
         | jjcm wrote:
         | FWIW this is also true on the design side. I've researched a
         | lot of design teams and their custom tooling (I worked on
         | design tools at Atlassian and now am working on them at Figma).
         | Facebooks is leagues above the rest. I've been blown away at
         | what they do there. Some really amazing engineering and design
         | thinking happening on Facebook's internal tooling.
        
         | influx wrote:
         | It's powerful, but fbcode is sloooooooow.
        
           | martincmartin wrote:
           | How so? I never thought of it as slow.
           | 
           | Source: Was a Meta infra engineer until last month, working
           | in CDN & LogDevice, among other teams.
        
             | influx wrote:
             | What else have you used? Source: Meta infra PE until last
             | month, but have used build and source system at Amazon and
             | found it faster.
        
               | martincmartin wrote:
               | Yeah the fbcode build system was hella slow. A minute
               | plus just to build the "action graph." I did marvel at
               | all the lost productivity, especially since an minute
               | plus is enough time for me to context switch to another
               | task, or at least go get (another) cup of tea...
               | 
               | Mercurial / Eden were pretty fast though. Never had
               | complaints about them.
        
         | tehlike wrote:
         | As a facebook employee, and a former google employee, I prefer
         | google's SCM system and tooling instead..
         | 
         | Cider, Piper, CitC, Blaze, etc make a really complete system.
         | Nothing beats it.
         | 
         | This is kind of also surprising because product speed at Fb is
         | much better :)
        
         | peppertree wrote:
         | After doing a round of onsite with fb tools team, I got the
         | impression there were lots of bright engineers that wanted fb
         | pay without having to touch fb products.
        
           | jfengel wrote:
           | A lot of programmers would rather write tools for other
           | programmers than for non-programmer end users. It's the
           | target market that they know best, and it's most prestigious.
           | 
           | I wish more of those bright engineers would try to solve
           | problems for other users rather than re-re-re-re-re-
           | optimizing the life of their colleagues. But writing code for
           | users involves, among other things, knowing something about
           | users, which is more bogged down and less fun.
        
             | mym1990 wrote:
             | Their colleagues ARE users, they are just a different type,
             | and a type that engineers understand more.
             | 
             | I would rather a good engineer put their skills towards
             | helping others use their skills more effectively than put
             | that same engineer in a place where they don't like the
             | work and produce below par results.
        
             | xiphias2 wrote:
             | For some of us it's really hard to understand / solve
             | problems of people whose life is spent on browsing
             | instagram most of the time - when it's not TikTok.
        
               | jackomelon wrote:
               | Keep the holier-than-thou judgmental stuff to yourself.
               | Your comment adds nothing.
        
               | eyelidlessness wrote:
               | You're getting downvoted, and that's not undeserved
               | because this _is_ very judgmental on its face. But I get
               | the sense there's a sincere answer to a few sincere
               | questions worth at least asking: have you asked them
               | (users you've categorized this way) that direct question?
               | Or asked how work you're invested in isn't addressing
               | their problems /goals? If so, and if you found their
               | answers unrelatable, did you ask further questions which
               | might clarify for you what they want?
               | 
               | I know _all_ of that is a lot to ask of anyone. But you
               | might find you learn things you have in common with
               | people you don't expect to. And it might make your job
               | less frictionful too.
        
               | xiphias2 wrote:
               | It's not like I don't understand their problems/goals.
               | Just yesterday the person I was spending time with showed
               | a cat video from Facebook, and as I seemed half
               | interested only, she asked me if I like animals.
               | 
               | I love animals in real life, but that doesn't mean that I
               | love watching videos of animals on a screen, for me it's
               | not the same experience.
               | 
               | The main goal that I see social networks addressing with
               | many people is entertainment, but I feel that it takes
               | away from my social life with people, that's why I have
               | aversion to short videos for example.
               | 
               | Facebook didn't have these short videos forced on me, but
               | just a few months ago it started to show video reels for
               | me, and I couldn't stop myself watching them.
               | 
               | After bringing the settings back to just showing what's
               | happening with my friends, the next time I opened it, it
               | started showing addictive videos to me again.
               | 
               | Youtube disabled showing downvotes, which was the best
               | signal for me to see if it's worth to see a 15 minute
               | video, or if it's just a spam talking about nothing for
               | 15 minutes just to optimize content length for the
               | algorithm. And shorts are not a solution, as they don't
               | have any depth either. Also it started spamming me with
               | new channels that reupload videos of interesting people
               | from years ago just to make me think that it's new
               | content.
               | 
               | The main problem for me working on social networks is
               | that making profit can't be separated from making people
               | addicted to the lowest forms of entertainment (I'm a
               | Xoogler).
        
               | hobs wrote:
               | Start by removing a heap of condescension and recognizing
               | that there's interesting problems all around you.
        
               | chrisseaton wrote:
               | This is an unkind comment. Why condescend like this?
        
               | xiphias2 wrote:
               | I'm not sure why is it condescending. I have met people
               | who do this all the time while I'm trying to just have a
               | drink/dinner or get to know a person, but I'm just not
               | able to connect with heavy instagram/facebook users. I
               | prefer not to see them again, as for me it's very boring,
               | and I see them as being unkind, when in all fairness they
               | are probably just social network addicts.
        
               | chrisseaton wrote:
               | It's condescending because you're focusing on the media
               | that people use rather than what they have to say in
               | life. There are (obviously) millions of interesting,
               | passionate, intelligent, creative people using both of
               | these apps.
        
             | OJFord wrote:
             | But on the contrary.. many of the things well-built for the
             | majority of 'non-programmer end users' are not the way I
             | (as a 'programmer end user', whether the particular thing
             | is a programming-adjacent tool or not) would ideally like
             | them to be.
             | 
             | So I'd selfishly adjust it to 'solve other problems for the
             | same users'! Asahi, for example, awesome stuff - I've lost
             | count how many times I've had to explain (to both
             | colleagues and non-engineer family/friends/etc.) 'no no,
             | absolutely agree, love Mac _hardware_ [...] '.
        
           | seanmcdirmid wrote:
           | > I got the impression there were lots of bright engineers
           | that wanted fb pay without having to touch fb products.
           | 
           | I chose a job at Google Engprod (a tooling/developer
           | productivity org) because I specifically like to work on dev
           | tooling and I'm much less interested in working on products
           | aimed at end users. Surely, many engineers at FB feel the
           | same way.
        
         | LightG wrote:
         | I'm sorry, Meta has only just been born. These are Facebook
         | engineers.
         | 
         | It turns my stomach to read that name which is just a cloak for
         | the dagger ...
        
       | 0xbadcafebee wrote:
       | Hm. I can see why they'd build some of these features, but
       | there's some significant downsides. The VFS in particular will
       | end up a poor experience when a transitory network problem causes
       | apps to hang when pulling code. What happens if you 'grep -r', or
       | if 'mlocate' indexes it?
       | 
       | On the build side.... holy jesus, are they really compiling 40
       | different dependencies from scratch every time they push code?
       | This build has been running for 5 minutes and it's still just
       | compiling dependencies:
       | https://github.com/facebookexperimental/eden/runs/5997101905...
       | Come on, ya'll. You're supposed to be the "advanced FAANG
       | people". Cache some build deps, will ya?
        
       | hammycheesy wrote:
       | A similar effort was made by Microsoft a while back to scale up
       | Git in order to use with the Windows monorepo:
       | https://devblogs.microsoft.com/bharry/the-largest-git-repo-o...
        
         | 3a2d29 wrote:
         | Junior engineer here, so got isn't used for the windows repo? I
         | assumed git was the holy tool or all version control.
        
           | wincy wrote:
           | I thought this a few years ago when I was more junior as
           | well. In open source circles git has been used for quite
           | awhile but my company just recently moved one of our repos
           | from TFVC to git. A Fortune 500 company I worked for was
           | still using TFVC for some legacy products. Another product
           | from a acquisition used Subversion and the migration to git
           | (even with the company using GitHub Enterprise) still took
           | almost three years.
           | 
           | Getting the inertia amongst developers to migrate to a
           | different SCM can be quite the challenge.
           | 
           | Edit: initially said migrating to git was a challenge. But
           | really it's migrating from any SCM to another that's
           | challenging.
        
           | actuallyalys wrote:
           | There are a lot of advantages to using git, in part because
           | it was developed for a massive project (the Linux kernel) so
           | it's very thoroughly tested, in part because it's exploded in
           | popularity so a lot of a tools, integrations, and
           | documentation are available for it. However, it's not the
           | alpha and omega of version control. Some people prefer the
           | interface of Mercurial, some people use Fossil because it
           | integrates issues and wikis, others have stuck to older tools
           | like Subversion, and still others are experimenting with new
           | approaches like Pijul.
        
           | dharmaturtle wrote:
           | git was created in 2005. No idea what MS uses, though some
           | history is here: https://en.wikipedia.org/wiki/Microsoft_Visu
           | al_SourceSafe#Mi...
        
             | criddell wrote:
             | Microsoft used their own fork of Perforce for a long time.
             | Not sure what they use today.
        
               | strongpigeon wrote:
               | Source Depot is what it was called. IIRC, Windows was
               | moving to Git (through some virtual file system [0]) and
               | had some major teams actively using it, but that was a
               | while ago too.
               | 
               | [0] https://github.com/microsoft/VFSForGit
        
       | xiphias2 wrote:
       | It looks like Google's Perforce/Piper, I think that would be a
       | better comparision than Git, but I don't see any data on how the
       | two compares. Anyways, Eden being open source is a great
       | advantage already.
        
         | zelphirkalt wrote:
         | Never forget though, that being open source doesn't mean that
         | much, when there is only _one_ party deciding, what goes into
         | the code base.
        
           | josephg wrote:
           | Being opensource does mean it's free. And can dig in and read
           | the code. And if you want to, fork it and add your own
           | features.
        
           | bb88 wrote:
           | It's GPL 2.0, on github, which makes it ridiculously easy to
           | fork, tear apart, debug, etc, given your time and ability.
           | 
           | That said, I would like to see it self hosted. I think then
           | and only then will I give it a serious look.
        
       | krashidov wrote:
       | Facebook/Meta's dev tooling, libraries, and infrastructure has
       | always impressed me. React, Hack, jest, and now this. I am very
       | surprised they haven't tried to monetize this aspect of their
       | business like Microsoft and Amazon did.
       | 
       | They could be a very strong contender in that space instead of
       | being known as a terrible time suck for humanity.
        
       ___________________________________________________________________
       (page generated 2022-04-12 23:00 UTC)