Live data from Hacker News

Buck – A build system developed and used by Facebook

buckbuild.com

121–130 of 131 posts

Re: Buck – A build system developed and used by Facebook

#122
post #97

Earlier quoted context omitted.

For my needs yarn was a drop in replacement for npm and it is faster, 5s vs 17s for a fresh install but critically it's reproducible, I get the exact same output in node_modules every time I run it and that alone was worth the switch. As for using the npm registry (by default) so what? Why would the npm folks care, MS uses it as well with vscode ans its automatic resolution.

Agreed that yarn is faster and reproducibility is critical, but in case you aren't aware, you can have reproducibility with npm too by using the "npm shrinkwrap" command.

Updating a single package version in a yarn.lock file is much easier than updating a single package version in an npm shrinkwrap file, in my experience. With yarn it's just a single command. With npm shrinkwrap, you have install everything from the current snapshot, then install the package you want to update, then run npm prune, then regenerate the shrinkwrap file, then look through hundreds of lines of mostly irrelevant diff to make sure that it did what you wanted it to.

Re: Buck – A build system developed and used by Facebook

#123

Earlier quoted context omitted.

I once thought that too. But after working under a jQuery ninja I learned that it's far more powerful than most people give it credit for. More importantly, it's significantly easier to reason about DOM changes in jQuery vs other frameworks because there's no magic at all. For example, here is a SQLite playground that I built with a friend https://sql.glitch.me/ . The entire frontend is only 100 lines of Javascript t…

Pretty sure no one really doubted jQuery power.. it's about maintainability, state management, modularization. If you tinker hard enough, you can achieve those with jQuery, but it'll never be as easy as React. Also, your site doesn't load (project not found)

I guess we just disagree over whether or not all that is made easier with React. I have worked on large jQuery codebases that do everything you mentioned: they are maintainable, they manage state in a comprehensive fashion, and they are modularized.

JavaScript Fatigue inducing media tries to taint jQuery calling it all sorts of things but that hasn't stopped me. Sure you need to learn and use a handful of useful patterns to build with it, but it's the same situation if you want to make proper use of any framework.

And I updated the url for my demo :)

Re: Buck – A build system developed and used by Facebook

#125

My name is Michael Bolin and I created Buck. When I started the project, Buck had one specific goal: to make Android builds faster ( https://youtu.be/CdNw6mRpsDI ). At the time, the recommended way of building Android (from Google) was to use Ant. So when someone points to Buck as an example of "creating competing tools more often than persisting with and improving existing ones," I'd like to point out that you can't…

I think when you say "make Android builds faster", you mean "make Android application builds faster" -- as opposed to making Android operating system builds faster. Those are two very different things, and for the uninitiated the casual use of language here is confusing. The Android operating system has never been built with ant, but historically was built with make until around Android N when that team started migra…

I got confused by the exact same language 5 years ago when one of the Apache Groovy project managers (before it joined the ASF) started repeatedly saying "Google have now chosen Groovy and Gradle for building Android." I didn't know if they meant building Android at Google, or as the default build system shipping with their (then) new Android Studio tool.

Re: Buck – A build system developed and used by Facebook

#126
post #46

Buck is a great tool but doesn't work on windows, where bazel is now starting to support. So for crossplatform builds, either GN or bazel.

The only thing that I'm aware of these days that doesn't work on Windows is C++ code (but it works if you are building for Android on Windows). It's even covered in the getting started guide: https://buckbuild.com/setup/getting_started.html

Yea that's what I meant for crossplatform builds when I compared it with GN (c/c++ only, production-ready) and bazel (multilang, unstable).

Are you a member of the buck team? Your new account only has activity on this submission.

Re: Buck – A build system developed and used by Facebook

#127

This looks like a clone of Google's Blaze/Bazel: https://bazel.build/

Buck was started after former google employees at facebook wanted to use something like blaze (ended up being called bazel). Kinda like a lot of other things they copied from google at facebook. Dremel -> presto, etc.

What are some other things apart from dremel?

Re: Buck – A build system developed and used by Facebook

#128

Nice build output. Unless you want to look over it afterwards that is.

A couple of quick notes: * It also writes build output to an output directory * It detects a tty and does the right thing, so on CI you get a linear log * In the output directory it also includes timeline graphs that can be loaded in Chrome's devtools traceview ( https://github.com/catapult-project/catapult/blob/master/tra... and in Chrome proper). * The tracing can be viewed live https://buckbuild.com/command/server…

Sweet! Looks like a great project, congrats!

Re: Buck – A build system developed and used by Facebook

#129

Continuing the trend of Facebook creating competing tools more often than persisting with and improving existing ones, which I feel dilutes effort and has fragmented a number of ecosystems. We've got a couple of Facebook fans at work, which has left us with a number of our systems using different tools to accomplish essentially the same tasks, and no strong case on either side for us to standardise on one of them. Ma…

I can't speak to the rest of Facebook's stuff, but I think the build tool problem is a special case. Per their docs: > Buck is designed for building multiple deliverables from a single repository (a monorepo) rather than across multiple repositories. It has been Facebook's experience that maintaining dependencies in the same repository makes it easier to ensure that all developers have the correct version of all of t…

Great!
Post reply on HN