11 ms·
HomeBrew Analytics – top 1000 packages installed over last year
- falcolas 9y agoHomebrew's use of analytics still bothers me; specifically, making data public like this. It was supposed to only be used for development efforts, not showing off top-1000 lists. Also, I guess this following statement is - taking the charitable option - out of date. > Homebrew's analytics are accessible to Homebrew's current maintainers. https://github.com/Homebrew/brew/blob/master/docs/Analytics.md#who https://github.com/Homebrew/brew/blob/master/docs/Analytics.... Yeah, I know, my tinfoil hat is quite elaborate. EDIT: Like I said, my tinfoil hat is quite elaborate; I already have analytics and automated updating turned off. I like to retain some control over what information is reported back to Google or other projects. That doesn't somehow boost my confidence in Google and volunteer-run open source projects to properly respect the privacy of their users.
- arkadiyt 9y agoReminder, you can opt out of this with: brew analytics off You can check the current status with: brew analytics
- teej 9y agoLet me lend you this handy piece of code, straight from my production codebase, written the day this feature was released. # disable homebrew from tracking metrics # see https://github.com/Homebrew/brew/blob/master/docs/Analytics.md HOMEBREW_NO_ANALYTICS=1
- thesmallestcat 9y agoYou're running Homebrew (and presumably OSX Server, if it still is a thing) in production??
- woodruffw 9y agoHomebrew maintainer here. That language could probably be more precise - only current maintainers have access to detailed analytics (the details being specified on that same page). I wasn't part of the creation of that particular page, but one thing we (the maintainers) commonly find ourselves doing is publicly referencing install statistics as justification for removing an unused formula or taking extra care during a version bump. Having public statistics for the top 1000 most popular packages makes those considerations a little bit more transparent. Edit: I've created a PR to fix the language: https://github.com/Homebrew/brew/pull/3120 https://github.com/Homebrew/brew/pull/3120
- falcolas 9y ago> as justification for removing an unused formula This does not, in my mind, help the case at all. This culture of deletion makes no real sense to me; something not being used for a month or a year doesn't mean it's not being used at all. What's the real cost of just leaving those formula around? A slight problem with it not working immediately when it is used? At least then it can be fixed, instead of seeing the "No formula found" text. The culture of deletion surrounding the long tail of digital artifacts just doesn't make any sense. Yeah, yeah. Get off my lawn, too.
- AlphaSite 9y agomaintain burden. betroth and the fact that git/GitHub really doesn't like huge dirs.
- sillysaurus3 9y agoI've been delighted to install casks using `brew cask install X` where X is some obscure program that I thought brew cask would never have bothered adding. Stuff like that dazzled me about brew cask, so I hope it never goes away even under the guise of maintenance burden. (It's pretty easy to contribute your own formulas, too! The checklist is pretty small.) That said, I've occasionally run into a broken `brew cask install X`, so I get that maintenance is a thing. But in that situation it seems best to let someone else notice that and contribute a patch rather than remove it entirely. I understand that might eventually lead to a large percentage of broken casks though.
- slagfart 9y agoThere's significant value, when developing a product, in knowing which other products your customers are likely to have, so that you can prioritise your different integrations. Similar data could probably be compiled from Google Trends, but this clean and authoritative view is something that can be trusted, and I think the result makes the open-source ecosystem stronger.
- falcolas 9y agoThat only sets up the value proposition for the maintainers - not for making it public. What value do any of us, not on the Homebrew maintenance team, derive from this list (other than fuel for "X is better than Y" arguments)?
- always_good 9y agoIt's interesting.
- nwatson 9y agoIt informs me of software I didn't know about and yet is popular among presumably mostly developers and power users. I need to know about that.
- stephenr 9y agoThere are literally dozens of "how I setup my machine/tools I use" lists and even setup scripts on GitHub.if you "need" to know what others are doing, refer to those. Or ask. I'll happily tell you my toolset, but I don't use home brew and I wouldn't allow it to send my usage to google even if I did
- marcomonteiro 9y agoThanks for being so open to sharing. Do you have a blog? How do I find your blog? Before you posted this comment how would I even know to look you up. Just because someone on the internet had a particular setup doesn't mean I want to follow it. Or that I have time to track down several people's opinions. Getting install stats directly from the homebrew project, which I know because I use it, is infinitely more useful to me and much more easily discoverable. that's just my opinion though and you're entitled to your own.
- opaque_salmon 9y agoI'm curious why releasing data in this fashion is troubling? It think this kind of public data sharing in an open-source project is good, since it builds transparency. A top-N list seems like a good way to measure the health of the Homebrew ecosystem, similar to other package managers. Without any other identifiable information like email addresses, it seems near impossible to de-anonymize statistical usage from this set.
- falcolas 9y ago> similar to other package managers Interesting; I don't see apt, dpkg, nix, or yum maintainers releasing top lists of packages. Even the package providers rarely provide a "top" list, especially one with compile-time flags. Those flags being provided in this list are very explicit, which could be easily correlated with data provided (or harvested) by other parties. > a good way to measure the health of the Homebrew ecosystem What value does this really provide to the general public, other than a, ahem, "member" measuring contest? You already see this occurring in this very thread - the MySQL vs. PostgreSQL comments. I fully expect a "Node vs. X" one as well.
- jhgorrell 9y agoHelps to find packages which I might have missed from other sources. LWN is good, but doesnt cover everything.
- zanchey 9y agoDebian publishes statistics gathered by the optional "popularity-contest" package at http://popcon.debian.org http://popcon.debian.org I can't remember whether the default is opt-out or in with the current installer.
- stephenr 9y agoIt prompts if you want to install it. It also doesn't sent data to a privacy abusing company like google.
- mikemcquaid 9y ago> volunteer-run open source projects to properly respect the privacy of their users If you don't trust us to respect your privacy why are you trusting us to download and run code from the internet on your machine? We need analytics to effectively run the Homebrew project (as you've noted: we are volunteers). If you no longer trust our project: go use something else.
- falcolas 9y agoIn short, I can verify what's being done on my computer. I can inspect the formulas and verify that what is claimed to be executed is what is actually being executed. I can't on yours (or Google's). EDIT: I'm sorry, was there something factually wrong with this statement to warrant downvoting it into oblivion?
- mikemcquaid 9y agoYou can trivially verify all the information that's sent by us to Google; we have an environment variable to do exactly that.
- fs111 9y agoThere is always macports: https://www.macports.org/ https://www.macports.org/
- evantahler 9y agoMySQL. Still more popular than Postgres.
- sairamkunala 9y agoI have read an article which claims LAMP stack has made MySQL preferred to Postgres.
- X-Istence 9y agoMany people on MacOS use Postgres.app for their PostgreSQL needs. http://postgresapp.com http://postgresapp.com
- cyberferret 9y agoMongoDB on the podium too... Interesting to see MariaDB in the middle of that list though...
- ianai 9y agoWith both numbering in the 6 figures and differing by ~50k it's not like they're vying for a lot of market share.
- jcrben 9y agoPeople should install stuff like their db with docker or vagrant anyhow. It'd be annoying to keep your app's db version in sync with the homebrew package.
- alexashka 9y agoCan someone explain the popularity of imagemagick on there? As in, are that many people tinkering with graphics via the command-line?
- mathgeek 9y agoI think it's still pretty commonly used on the server side for image manipulation on uploads.
- romanr 9y agoA lot of stuff at the top of the list is requirements/pre-requisites for other packages, for example wget is in top place used by other packages to download stuff.
- querulous 9y agoi'm not sure this is true. erlang ranks lower than elixir, but erlang is a prereq for elixir
- sairamkunala 9y agothis list is `install on request`. Find raw metrics at https://brew.sh/analytics/install/ https://brew.sh/analytics/install/
- memco 9y agoPersonally, I opted to download it manually since I prefer it over curl for some things.
- crehn 9y agoOr probably since the very first brew command on the homepage is `brew install wget`. "Ah, wget. I guess I do need that."
- noncoml 9y agoImagemagick and graphicsmagick are being used for server side image manipulation. E.g when you upload your images on a server, two of the first things to be done is to delete the metadata and resize.
- apeace 9y agoI'm surprised that ripgrep is so low, at #227. I've been using it instead of grep the last few months and I could never go back. Check it out if you haven't! Here is the repo and a technical breakdown by the author: https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep http://blog.burntsushi.net/ripgrep/ http://blog.burntsushi.net/ripgrep/
- lathiat 9y agoProbably in part because the_silver_searcher ('ag') which is a very similar tool is #65 It's the one I personally use simply because I discovered it before ripgrep came out. Plus the 'ag' commandline is super easy.
- Graziano_M 9y agoripgrep's command line is `rg`, and it's much faster. When I first installed it I aliased `ag` to it to easy the transition.
- jrimbault 9y agoHow often do you handle files large enough to observe a difference between grep, ack, ag and rg ? I'm willing to bet (and happy to lose) that most people, even in the subset who use grep "a lot" (defining "a lot"...), wouldn't see a significant improvement. They are people (I'm betting fewer) who need speed above all other concerns, and those people already make it to the top 1000.
- deathanatos 9y ago> How often do you handle files large enough to observe a difference between grep, ack, ag and rg ? > I'm willing to bet that most people, even in the subset who use grep "a lot" (defining "a lot"...), wouldn't see a significant improvement. Daily, but not for the reasons that I think you're thinking. I work in Python a lot, which means there is typically a virtualenv in the tree somewhere, sometimes more than one. Typically, I want to search the code base itself — not a virtualenv, not the .git directory, etc. ripgrep, by default, will ignore entries in the .gitignore (and the virtualenvs are listed there, as they're not source, and cannot be committed), and repository directories like .git, and will thus not even consider those files. For my use case (searching my own code base), this is exactly what I want, and culling out those entire subtrees makes rg considerably faster than grep. Yes — I could exclude those directories with grep by passing the appropriate flag. But it's time consuming to do so: ripgrep wins out by doing — by default — exactly what I need. I also greatly prefer ripgrep's output format; the layout and colors make it much easier to scan than grep's. Most of the people I've recommended ripgrep to are using grep, and passing flags to it to get it to do what essentially rg does quicker and/or by default. Ripgrep is an excellent tool. (I used `git grep`, which is also considerably faster for similar reasons, prior to rg. But `git grep` requires a repository — for obvious reasons — and thus fails in cases where you're not in one. I often need to search several codebases when doing cross repository refactors, and ripgrep has been quite useful there.)
- mholt 9y agoGreat. Caddy is #666. Hope that's not a sign. :P
- sairamkunala 9y agoI like Caddy on my linux servers. very few cases on Mac. Great software by the way.
- mholt 9y agoThank you!
- djhworld 9y agoI moved from NGINX to Caddy on my raspberry pi 3 for my home needs and couldn't be happier. The automatic LetsEncrypt stuff is great and has removed crufty cron jobs to make sure the certs are up to date, and support for HTTP/2 out the box (with 0 configuration) has seen a marked improvement in the performance of my site.
- mholt 9y agoThat's excellent to hear! Glad you are happy. Thank you to people like you in the community who test it in various environments to make sure it works well. ;)
- aylmao 9y agoA lot of people have yet to discover nvm (:
- rampantprint 9y agoMore likely due to issues rather than ignorance: "Homebrew installation is not supported. If you have issues with homebrew-installed nvm, please brew uninstall it, and install it using the instructions below, before filing an issue." https://github.com/creationix/nvm#important-notes https://github.com/creationix/nvm#important-notes
- jcrben 9y agonodenv is so much better than nvm https://github.com/nodenv/nodenv https://github.com/nodenv/nodenv
- shadowmint 9y agoSomeone super needs to turn that list into an expanded version with a 2 line summary of each line. I found myself tabbing out to google constantly like 'fdk-aac, wow, that's a thing? cool~'
- sairamkunala 9y ago> brew info fdk-aac was querying locally with this.
- shadowmint 9y agooh, nice! I didn't realize that `brew info X` had a nice summary line in it. Thanks for the tip.
- D4AHNGM 9y agoIf you want only that little description you can use `brew desc <formula>` as well.
- Graziano_M 9y agoI found myself googling 'yarn' and being surprised to find a bunch of pages about... knitting.
- dastbe 9y agoI'm surprised (in I guess a good way =) that awscli is all the way up at #15. Definitely expected quite a few utilities and languages to rank higher.
- deathanatos 9y agoI saw that and wondered if these count unique installations, or simply number of times downloaded. awscli updates a lot, so if we're counting downloads, that would give it a significant boost, I think.
- trengrj 9y agoIt is weird how small our global tech tribe is. I would estimate I download tmux via homebrew once a year on average. It is possible 112,000 represents a good estimate of all mac carrying tmux users in the world [*]. For comparison this is roughly the same number as employees at Apple. Assuming these stats aren't opt in.
- Scarbutt 9y agoFor another view, I'm a mac user, but prefer to use all those tools via a linux VM, either local, remote server or from a VPS. Also, not everyone doing development in macos uses homebrew.
- fredsir 9y agoIf you don't mind me asking, why do you prefer working in a linux VM or VPS? And what are the pros and cons?
- apenwarr 9y agoThis information is similar to debian's popcon: http://popcon.debian.org/ http://popcon.debian.org/, but one advantage popcon has is that it tries to measure actual usage of a tool even after it's installed. This avoids over-counting people who install something and then never or rarely use it. Of course, that's more of a problem with Linux distributions (which tend to install a kitchen sink worth of stuff) than with homebrew (where people probably install a much smaller subset). In any case, it would probably be quite easy for homebrew to collect the same statistic (basically just look at the atimes of installed binaries). [Disclosure: I'm the original author of popcon so I'm biased :)]
- peteretep 9y agoWho the hell uses homebrew to install Perl? OS X ships with it, and perlbrew is a much more natural way to install it if you care about not using the system Perl. Maybe it's a dep for another package?
- vortico 9y ago>Maybe it's a dep for another package? This is likely the reason. I would imagine more people use things written in Perl rather than Perl itself as a programming tool. Also, Perlbrew is not necessarily easier, simply because having one package manager manage your packages is better than having many package managers (cargo, npm, gem, etc). It suggests that maybe there should be a package manager for all these package managers... I'd personally want to use the simplest way possible to install something unless I had a reason.
- mollusk 9y agoIf I wanted a newer version of Perl (or Python, or anything else that ships with macOS), I'd use homebrew, if only to keep everything in the same place. By doing so, for example, brew upgrade would update everything. That's the whole point of package managers, having a discrete package manager for each package defeats the purpose. This is also a reason why I dislike npm and the weird practice of distributing non-js packages with it.
- mikemcquaid 9y ago> Maybe it's a dep for another package? Random pedantry: the list on that page is the stuff where people have typed `brew install perl` (or `brew upgrade perl`) and it hasn't been pulled in as a dependency. As to why: I have no idea :D
- onion2k 9y ago`brew install <thing>` is a natural thing to try first. If it works well then why use something else?
- peteretep 9y agoWorks well for what? There's a recent Perl already installed on machines that brew runs on
- whizzkid 9y ago#83 elixir #85 fish I am glad to see these 2 in top 100.
- phoenix24 9y agoJust curious, How does the brew analytics infra look like?Datastores, Aggregations, rollups etc.
- lamlam 9y agoThey use Google Analytics. Here's there post about it https://github.com/Homebrew/brew/blob/master/docs/Analytics.md https://github.com/Homebrew/brew/blob/master/docs/Analytics.... There are also instructions on how to opt-out.
- fibo 9y agoNice stats, also the single software version update frequency should be considered. For example I installed both node and vim, the latest only once.
- cm2187 9y agoI wish there was a decent package manager on windows too. Chocolates used to be OK but I often find outdated packages and they keep breaking the syntax of existing scripts regularly (like by making almost all packages now require the flag --allowemptychecksum). I don't know why it never really took off. This is such a practical way to setup a machine.
- cm2187 9y ago*typo chocolatey.
- JepZ 9y agoWhile I really like 'yarn', I was surprised to find it at #4. I did not expect it to be that popular :D
- kryptiskt 9y ago#575 algol68g 3,485 0.02% Now that's awesome.
- dawnerd 9y agoautojump should be higher. It's insanely handy once it gets your directories indexed.
- lavalike 9y agoI have been using z[1] for a _long_ while now, lovely little thing [1] https://github.com/rupa/z https://github.com/rupa/z
- forg0t_username 9y agoSeconded, it's a great utility, without dependencies, and very simple.
- abledon 9y agohave you compared autojump to z / fasd? Did you decide to stick with one for a particular reason?
- snorrah 9y agoYoutube-dl at #18 is hilariously telling, although to be fair it's great for archiving clips (from all sorts of sites, not just YouTube) that may get deleted due to all sorts of reasons.
- deleted 9y ago[deleted]
- piquadrat 9y agoIt also is updated very often (I guess to keep step with all the non-public APIs it probably uses). Almost every time I run `brew update`, youtube-dl has an update ready. This might inflate its download stats a bit.
- jcelerier 9y agoAren't qt and qt5 the same package nowadays ?
- k__ 9y agoWhy is yarn installed via HomeBrew and not npm?
- onion2k 9y agoBecause npm can't install a signed app. That said, if you really want to you can install it using npm - https://yarnpkg.com/en/docs/install#alternatives-tab https://yarnpkg.com/en/docs/install#alternatives-tab
- blairanderson 9y agoYARN went from idea to #4 ️
- christiangenco 9y agoDon't know what half of these are? Here's some quick and dirty Javascript to make each formula clickable to a detail page: document.querySelectorAll("td > code").forEach(code => code.innerHTML = `<a target="_blank" href="http://brewformulas.org/${encodeURIComponent(code.innerText)}">${code.innerText}</a>`) Cut and paste that in your Javascript Console (`View/Developer/Javascript Console` on Chrome) when you're on https://brew.sh/analytics/install-on-request/ https://brew.sh/analytics/install-on-request/.
- galfarragem 9y agoInteresting: Python3 #5, Python #6, Pypy #439 ... Go #22, Scala #78, Elixir #83, Rust #141, Typescript #584 ... Groovy #150, Kotlin #195 ... Go #22, Ruby #33 ...