Live data from Hacker News

Buck – A build system developed and used by Facebook

buckbuild.com

101–110 of 131 posts

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

#101
post #55

Earlier quoted context omitted.

Doesn't support windows. You're better off with bazel or GN.

How do you in 2017 come up with a build system that doesn't even run on Windows.

how is current_year different than last_year?

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

#102
post #93

Earlier quoted context omitted.

It's an unpoular opinion, but I feel that React et al are just a way for Facebook to gain developer mindshare. Likewise how Angular is a play for Google to gain developer mindshare. The big guys want developers locked into their ecosystems. It's a play out of Microsoft's book. When you realize that none of these frameworks are even an improvement over jQuery, it becomes clear what the true motivation is.

Well, IMO, React is much better than building the equivalent in jQuery.

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 thanks to jQuery. I'd love to see what the React implementation looks like.

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

#103
post #66

Earlier quoted context omitted.

GNU Make works intuitively in pattern rules, but differently for normal rules? Uh oh.

It even has builtin implicit rules. Enabled by default. Checking for the existence of files that are not found in any new project for maybe ten or twenty years (such as RCS and SCSS version control files). On. Every. Single. Run. Yup.

But I love the built-in implicit rules. I use these frequently.

Often, I write a little test program in C or C++. I name the file "foo.c". Then, to build it I simply type `make foo`.

Sure the rules may be a bit stale, but there isn't much software i use today that I could use in a near identical manner 40 years ago. Make has truly stood the test of time.

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

#104
post #60

Earlier quoted context omitted.

When Buck was created (my team created it!) there wasn't anything that supported what Facebook needed in a build tool. There still really isn't as all the Blaze work-a-likes are focusing on various different needs. I would argue Buck actually helps to solve what you are concerned about. At Facebook, everything builds with Buck (and Google with Bazel I hear)...which means you learn it once and you know it for your Obj…

> At Facebook, everything builds with Buck Looking at https://github.com/facebook you seem to be using all sorts of build tools...

What Facebook uses internally in their monorepo and what they publish to open source for external consumption doesn't have to be the same build tool.

Facebook uses fbshipit (https://github.com/facebook/fbshipit/) to take slices of their monorepo and publish them to GitHub.

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

#105

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

Groovy rules side-by-side: https://buckbuild.com/rule/groovy_library.html https://github.com/bazelbuild/rules_groovy#basic-example

Such a valuable post. Thanks for the side-by-side comparison!

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

#106
post #39

Earlier quoted context omitted.

When Buck was created (my team created it!) there wasn't anything that supported what Facebook needed in a build tool. There still really isn't as all the Blaze work-a-likes are focusing on various different needs. I would argue Buck actually helps to solve what you are concerned about. At Facebook, everything builds with Buck (and Google with Bazel I hear)...which means you learn it once and you know it for your Obj…

Gradle?

Gradle was not the default Android build tool when Buck was open sourced.

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

#107
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

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

#108
post #20

Is there a watch command to detect file change and kick off the build steps?

Buck has a daemon that does it automatically. Often when you go to build it takes 0 seconds because the daemon has already done it before you get to it: https://buckbuild.com/command/buckd.html Note the daemon is automatically started when you `buck build`. (disclosure: my team created Buck when I was at FB)

Although the daemon doesn't automatically build things. Buck does use watchman (https://github.com/facebook/watchman) to watch files though, and it has a way to run commands when files change: https://facebook.github.io/watchman/docs/watchman-make.html

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

#109
post #55

Earlier quoted context omitted.

Doesn't support windows. You're better off with bazel or GN.

What about it doesn't support Windows? Not disagreeing since I haven't used it much and I'm on Linux, but they have "Quick Start" instructions for Windows. https://buckbuild.com/setup/getting_started.html

I don't believe c++ support exists yet for Windows (although it works if you are targeting Android).
Post reply on HN