Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What's so impressive about Homebrew specifically?


Also curious. I'm waiting, or even begging for something like flatpak on mac os just due to the number of times pip/npm/python in general has broken due to homebrew.


What's wrong with elementary OS? (pls don't kill me HN — Edit: yup, downvoted for a simple question)


• Nothing available that's as lightweight and good as Apple's "office"-type suite.

• Nothing as all-around good as Preview (yes, seriously).

• Worse battery life, partly due to worse OS optimizations and partly due to not having Safari available. Solutions to this in Linux that actually yield good results usually involve hard-capping performance at a pretty low level, IME.

• Little things like screen recording and screenshot capabilities not being as nice for basic use, out of the box.

• AFAIK not only is the default English keyboard on Linux far worse at the task of writing in English than that on macOS, there's not a single alternative layout that's close to as good as the Mac default. Yes, I'm dead serious about this, and frankly it's friggin' weird they'd have such a significant advantage on something like that in the year 2020, and I really wish other operating systems would catch up because I do not like being forced to use Apple products just so my experience composing documents in English isn't bad. I do not understand how they still have such a large advantage here, but somehow, they do. Totally baffling.

• If you do anything serious with software-UI-related graphic design, or work closely with people who do, you pretty much need a Mac because odds are good you'll be using at least some mac-only software or have things shared with you that work only in mac programs.

• You lose a variety of time-saving integrations with i-devices, if you're someone who takes advantage of those.


I'm not understanding the English keyboard complaint, am I missing something?


Look up how you type: those • characters I used in my post, an m-dash (—), a c-cedilla (ç), a german double-S (ß), basic accented characters for various Western European languages (we have many, many loan words and phrases from those in English—façade, résumé, áñ∂ §ò öñ), punctuation for French and Spanish (no, you don't strictly need these for English—but in practice, depending on the register you're writing in, actually you do), major world currency symbols ($, £, €, ¥, ¢), basic mathematical symbols and mathy Greek letters (≤, ∑) and so on.

Look up how you do that on US English keyboard layouts in macOS, Linux, or Windows. Then check AltGr and US International alternative layouts for the latter two. Marvel at how macOS manages to crush all those options in usability with their default, without affecting the experience for someone who doesn't need those at all. Join me in wondering how no-one else has at least matched them on this, which is not some recently-added feature in macOS, but is practically ancient in computing terms.


> Look up how you type: those • characters I used in my post, an m-dash (—), a c-cedilla (ç), a german double-S (ß), basic accented characters for various Western European languages

No thanks! I already new how to type — (Compose - - -), and I was able to guess how to type the others simply by trial and error in less time than it would take to duck/google how to type them:

Compose + . + - → · (close enough for me Edit: Compose + . + = → •) ┃ Compose + c + , → ç ┃ Compose + s + s → ß

Compose + e + ` → è ┃ Compose + e + ' → é ┃ Compose + ` + e → è ┃ Compose + ' + e → é

Bonus: Compose + - + > → → ┃ Compose + = + / → ≠ ┃ Compose + / + = → ≠ ┃ Compose + : + ) → ┃ Compose + L + L + A + P → (Edit: HN seems to have stripped out the last two, a smiley face emoji and the \\// / Star Trek/Live Long And Prosper hand. So I guess the compose key can type more characters than HN even allows.)

ß°ηυ5 þē 5€¢•ηⅾ: Pressing the alt key reveals underlines under selectable gui elements. Press any letter that's underlined (while still holding alt) to activate the element (menu item, button, etc.). Try this in every GUI you use regularly and then race a macOS user stuck with reaching for a trackpad or mouse everytime they need to click something. Јоⅰη ⅿе ⅰɳ wօɳԁеrⅰηg Һօw ɳօ‐օɳе аt Аррⅼе tҺօυgҺt tо аⅾԁ tҺіѕ, wҺⅰϲҺ іѕ ɳօt ѕоⅿе rесеɳtⅼу‐аԁԁеԁ fеаtυrе ⅰɳ ԌΝU⁄Ⅼіɳυⅹ, Ьυt ⅰѕ рrасtіϲаⅼⅼУ аɳсіеηt ⅰη ϲоⅿρυtⅰɳg tеrⅿѕ (¡ΝаѕtУ Wⅰηԁоwѕ, рrеҺⅰѕtоrіс Wіηԁօwѕ 95, Һаⅾ tҺеѕе υηⅾеrⅼіɳеѕ аⅼwаУѕ ⌵іѕⅰЬⅼе!).


Great! Linux, I assume? goes looking OK yep, I'll enable it and start re-training myself on that, for when I'm not on mac. It's not quite as quick for most of the things I need frequently, but seems tolerable.

Remaining questions: 1) why would the default be bad? Like, why ever would one make a default bad if there are non-bad options? Especially for something everyone should want to be good on a computer, like composing text in the user's language, and 2) ugh of course even once enabled the default compose key is bad (there's a theme here) and both enabling it and configuring it depends on which WM/DE you're in, Wayland vs. Xorg, and so on, and from some googling it's even possible to run into inconsistent behavior between different friggin' GUI toolkits under the same DE.

OK that second one is a comment, not a question. Still.

I'd recently googled the problem of (specifically) typing an em-dash on Linux, and just tried it again, and sure enough this solution doesn't come up until the sixth hit, in an unassuming Google documentation style guide. "Just memorize a 4-digit number" is the overwhelming answer to that question, on search engines, for some reason, despite plainly being awful. Maybe the configuration hurdle and bad default behavior is why that's the go-to solution, I dunno.

[EDIT] none of the above irritation aimed at you, I hope is clear, and sincerely, thanks for the pointer.


1) why would the default be bad? Like, why ever would one make a default bad if there are non-bad options?

Because it is not bad, it just chooses different advantages and disadvantages.

Right Alt could be configured to do regular Alt modifier, or could be configured to enter additional characters (Alt Gr - third/fourth level).

The first case has advantage that Alt-based keyboard shortcuts on right side can be conveniently entered by one hand. That is why there are Shift, Control and Alt on both sides of keyboard.

Second case has advantage that you can enter more characters, but entering rightside Alt-based shortcuts is more awkward.

Conventionally, US keyboard uses the first approach (as there are less need for entering more characters), while many non-US keyboards use the second approach.

Also, why Compose key is not accessible by default? Because there is no Compose key on common PC keyboard (in constrast to some old Unix keyboards). Therefore, Compose key need to 'steal' some existing key, which is problematic, because users expect existing keys to work as expected. I personally use Menu key as Compose key, but other users may have different expectations.


I imagine it defaults to off and the top results recommend the Control-Shift-U<Unicode codepoint> because otherwise people switching from Windows would complain. It’s my understanding that on Windows typing these characters involves holding down Alt while typing arbitrary Windows-specific numbers on your number pad (What happens if you don’t have one? I’ve no idea!) — or more intuitively, opening a new browser tab, Googling the name of the character, copying it with a keyboard shortcut or context menu (I hate leaving X11 and not being able to simply highlight text and middle click to paste!), and pasting.

All distros I've seen allow you to choose a keyboard layout (and I think at least usually AltGr) at first boot, and I imagine this is how most people using primarily non-English type quickly, on any OS. I personally just use a little WM/DE agnostic script to make capslock useful and add a Compose key:

    #!/bin/sh
    setxkbmap -option caps:super
    xcape -e 'Super_L=Escape'
    setxkbmap -option compose:sclk
... and ‘xcape -e 'Shift_L=Multi_key'’ to make tapping Shift work as Compose (xcape is installed by a little bootstrapping script I run when I clone my dotfile repo). But this is better for me because I mostly use Compose for little things like curling my apostraphes (Compose + < or > + ' or " → ‘,’,“, or ”), not so many characters that it needs to be perfectly fast. I don’t have a monitor set-up that’s nonstandard in anything but aspect ratio, or use native apps I don’t trust (like Snaps), so I’ve never had a use for Wayland.

[EDIT] No problem, you’re welcome!


> • Nothing available that's as lightweight and good as Apple's "office"-type suite.

I personally create markdown documents in vis (a text editor like vim, but lighterweight — < 4 MB including optional syntax highlighting, and opens instantaneously enough that I use it to edit many of my HN comments, including this one, by pressing Control + I in my macOS-unsupporting browser) and can compile them to html with discount (< 1 MB) or to PDF, docx, reveal.js slides, etc with Pandoc. This is the peak of ‘lightweight and good’ to me. Apps like Abiword (an extremely lightweight WYSIWYG word processor, but I don't even know how tiny it is because it’s built in to the miniscule Puppy Linux distro that is currently running entirely in my RAM — making any traditional OS look bloated and sluggish to be constrained to run off a PCIE SSD at fastest) may better meet other people’s personal definitions of these words. Given the popularity of web “apps” like Google Docs, I think a native application like any in the LibreOffice suite is probably more efficient than most people care enough to notice.

> • Nothing as all-around good as Preview (yes, seriously).

Not having ever needed to fill out a PDF form, I won’t comment.

> • Worse battery life, partly due to worse OS optimizations and partly due to not having Safari available. Solutions to this in Linux that actually yield good results usually involve hard-capping performance at a pretty low level, IME.

“not having Safari available” — there are a million WebKit based browsers on Linux from the extremely Safari-like Gnome Web to Luakit to suckless Surf.

“hard-capping performance at a pretty low level” — Macbooks have their performance capped by cooling systems that can’t sustain high clock speeds anyway

> • Little things like screen recording and screenshot capabilities not being as nice for basic use, out of the box.

Speak for yourself, Simple Screen Recorder has been exactly that, simple and nice, out of the box, for me.¹

> • AFAIK not only is the default English keyboard on Linux far worse at the task of writing in English than that on macOS, there's not a single alternative layout that's close to as good as the Mac default. Yes, I'm dead serious about this, and frankly it's friggin' weird they'd have such a significant advantage on something like that in the year 2020, and I really wish other operating systems would catch up because I do not like being forced to use Apple products just so my experience composing documents in English isn't bad. I do not understand how they still have such a large advantage here, but somehow, they do. Totally baffling.

Like a sibling comment, I don't know what you’re talking about. However, I can say I love typing with my current layout.²

> • If you do anything serious with software-UI-related graphic design, or work closely with people who do, you pretty much need a Mac because odds are good you'll be using at least some mac-only software or have things shared with you that work only in mac programs.

~~ It’s too bad if this niche has failed to produce more portable programs. But I don’t see it as a failing of the OS for the vast majority of users.~~

elementary OS is itself a serious commercial software-related graphic design project. I am not aware of it’s designers using any macOS only software

> • You lose a variety of time-saving integrations with i-devices, if you're someone who takes advantage of those.

I don’t and I don’t see them as things to be taken advantage of by consumers as much as things to take advantage of and consume them and all their hardware-purchasing decisions through lock-in.

[1]: On the distro I use, PrintScreen instantly pops open a screenshot in a lightweight MS P aint-style editor (mtpaint, which can crop with one shortcut). On ChromiumOS there’s one shortcut for fullscreen shot and one for drag-to-capture (Control + [Shift +] Show Apps IIRC), either one of which triggers a notification with a thumbnail of the shot that can be clicked to open the folder. I've also seen a small gui for taking shots of windows, areas, or the full screen with or without the cursor and/or a specifiable delay (on an old Puppy). I imagine elementaryOS has a very similar method to macOS, but I’ve never bothered to distro-hop to it because after using macOS for a while at school I didn’t miss it at home (it seems like a good OS only compared to Windows).

[2]: Eg. I can type a superscript one simply by tapping <Compose> <s> <1>, where Compose is mapped to tapping my left shift key. IIUC this would require installing third-party software like Karabiner Elements on macOS.


Yeah, I get there are other reasons people choose Linux—I do too, as I find Win10 intolerable as a working environment so if I'm not on Apple hardware, Linux is my only realistic option for getting things done while still being able to interact alright with the world outside my own computer. I just think that's a small set of the reasons one might find any Linux OS to represent a serious loss of functionality, versus macOS. I agree it'd be cool if more major/trendy design tools were cross-platform, but I work with what I've got.

I don't think the default US keyboard layout on mac makes typing superscript unicode easy but it looks like there are a ton of ways to make it easier, by pointy-clicky through the GUI settings to add either of a couple ways of typing them, by editing a keymap file, or yeah, by using any of several programs like Karabiner. That'd actually be a great addition to the default US English keyboard on mac—a toggle for Unicode super-/sub-script modes.

[EDIT] incidentally, have you observed significant power savings with Webkit browsers on Linux? I like Surf and given FF's ongoing shake-ups I'm giving other browsers a look again, for my browsing-on-Linux needs. On macOS I see something like a 15-20% gain in real-world battery life and noticeably-better overall system responsiveness, using Safari over Chrome or Firefox. Is a similar, dramatic effect noticeable in Webkit ports to other operating systems?


Unfortunately I don’t use GNU/Linux on the go enough to give you a good answer. Surf specifically is probably not good for battery life and now I realize I probably shouldn't have brought it up in this context, because it spawns a separate process per window/tab — it’s noticeably slower than any other browser I’ve used. But GNOME Web/Epiphany though does seem lighter than FF from my limited use of it, worth testing. Personally I use Palemoon as a FF alternative without the shakeups and because the Pentadactyl (fork of Vimperator) extension is beautiful, but I can’t vouch for it’s efficiency.


Palemoon looks pretty good. May give that a shot, thanks.


1) Rarely breaks. Worst I've seen is needing a permissions tweak after an OS upgrade, in many years of use. Back when I switched from Macports I switched because ordinary usage kept rendering Macports so goddamn broken that it was easier to nuke its directory and start over rather than figure out how to fix whatever my bold command of "install package" had destroyed this time. I've never seen normal or even slightly abnormal use put Homebrew in a broken state that required manual intervention to fix.

2) Command line UI is alright. This should be a given but isn't always.

3) Can manage proprietary software for me. There's almost nothing I use (maybe actually nothing?) on my Mac that Homebrew doesn't have an up-to-date package for, aside from Apple-provided apps.

4) Enough people use it that despite being a semi-free-for-all community-run thing packages are pretty much never broken, including the proprietary ones. I'm also continually surprised by how often I find some obscure thing with five stars on Github, want to try it out, and sure enough, there's a Homebrew package.

5) Lets you manage your packages with ordinary user-level permissions. No root elevation required.

6) I can clean practically all of what it's done and get back to a nearly-vanilla system (with the exception of some of the proprietary apps) by deleting one directory. My system and GUI will still boot like nothing's happened. IMO keeping your user-level packages strictly separate from the system-level ones, and managed totally separately, is absolutely the right way to go. I didn't realize how much I wanted this until I started using Homebrew on a Mac, after many many years of Linux package management.

7) It leaves system-level packages that it upgrades alone, so doesn't break core system stuff (I would fucking love this to become a norm on Linux—system uses and assumes latest LTS version for stuff like Python, but I can install whatever version I like for my own use, without affecting that whatsoever and without having to use a different goddamn version-management tool for every single language)

8) I'm pretty sure you can have more than one version of something installed at once and there's a command to switch between them (juggling symlinks, probably), but my recollection of this is vague and may be wrong.

9) If you're actually doing multi-user on your desktop/laptop I think it lets you have per-user install directories and active packages—but I don't really know anyone who does this, and haven't known people to share a computer, really, since over 15 years ago. Amusingly enough, iPads, with practically nothing resembling multi-user support, are the exception to this use pattern, as those seem to get shared among members of a family all the time.

Bad things:

1) Requires Ruby (seems like a dumb complaint, I know, but I hate installing an entire scripting language for a single command line tool, and no not all Linux distros ship with Ruby by default, far from it)

2) I dunno if it still does (I'm working mostly on Debian now) but for approximately forever it's had a completely braindead default for how often it auto-updates its package list when running other commands, and you had to go change that every time you installed it on a new machine so you'd not rip your hair out in frustration when your command to install a package was delayed because it'd been a whopping 16 minutes since the last time it checked for updated packages. Why the hell this didn't default to, like, 12 hours or something is entirely beyond me. AFAIK everyone hates the default behavior, to the point that it's become a common jokey-reference among Mac nerds, and I've never been able to figure out why anyone would want it.


Homebrew is solid, and I think you make a good list.

I had it break before with weird cyclical linking issues, but mostly it works good enough.

What I was more curious about is what specifically sets it apart from a solid Linux package manager?

> Lets you manage your packages with ordinary user-level permissions. No root elevation required.

This is the one major difference I'd say is not currently common on Linux. Could be easily solved by keeping package list databases in $HOME - the only reason root is required nowdays is because these are usually kept as 1 copy per system.


> This is the one major difference I'd say is not currently common on Linux. Could be easily solved by keeping package list databases in $HOME - the only reason root is required nowdays is because these are usually kept as 1 copy per system.

As I posted elsewhere, I think it'd actually be very hard to replicate the experience of Homebrew on macOS, on Linux, specifically for GUI programs, because not only is the the Linux GUI (and related multimedia capabilities, for that matter) so much more fragmented than macOS (where all that ships as one big, stable package) but that fragmentation bleeds through to and manifests in one's experience with individual applications. If not for that, yeah, it'd be very achievable.

Its package selection is also a whole lot bigger than most Linux package managers, in my experience. I don't think I've seen a selection nearly this wide since I was a Gentoo user, many moons ago.

The CLI is better than most Linux package managers—some of those are improving, though. Good error messages and "did you mean..." go a long way.


> think it'd actually be very hard to replicate the experience of Homebrew on macOS, on Linux, specifically for GUI programs, because not only is the the Linux GUI (and related multimedia capabilities, for that matter) so much more fragmented than macOS (where all that ships as one big, stable package

Curious about this, since as far as audio goes, as long as there's PulseAudio on the system, all others tend to have compatibility with it in mind.

> Its package selection is also a whole lot bigger than most Linux package managers, in my experience

That could be, but I personally haven't had an issue with the Arch repo + AUR selections, that's tens of thousands of packages.

> Good error messages

Hmm, these are mostly there, I just made a mistake on purpose and got this, (pacman):

error: invalid option: '--search' and '--sysupgrade' may not be used together

> and "did you mean...

Did you mean would be nice. Git has that and it's certainly helpful


> Curious about this, since as far as audio goes, as long as there's PulseAudio on the system, all others tend to have compatibility with it in mind.

There are hold-out ALSA users (even Linux OSS users still around, I think) and I gather people who need well-performing audio for Serious Work (particularly anything latency-sensitive or requiring that multiple streams be mixed at high quality without errors), and have decided to use Linux for it, end up having to replace or bypass PulseAudio one way or another (this info may be out of date, but given PA's history, I kinda doubt it).


Friendly ALSA user here :)!

I think the Pulse situation is very similar to the one with systemd (they’re even by the same author IIRC). There are some haters, but if you’re a hater-hater than you can just ignore them (eg. GNOME IUUC depends on both Pulse and systemd, and haters of the dependencies who want the DE just have to find their own shims, like Gentoo’s, deal with some error messages (random games and things often give me a lot of audio-related ones, but generally work ok anyway) or just leave for another DE or WM).


I dunno exactly but my coming back to Debian for a server recently the apt experience hasn’t been as nice as brew in terms of discovery and use


I am personally a fan of more lean solutions than apt, but there are several on Linux, like pacman (Arch), apk, (Alpine), Portage etc.

Search: pacman -Ss <package>

Install: pacman -S <package>

Remove: pacman -R <package>

Pacman is not tied specifically to Arch either.


Oddly enough, my favorite package management experiences, by far, have been Homebrew on Mac and Portage on Gentoo. Talk about polar opposites.

I do think, unfortunately, that the experience of a very stable base of macOS with Homebrew on top would be nearly impossible to replicate on desktop Linux, because Linux's GUI layer is so intertwined with user software, and is so... uh, "free and libre", I guess, is a nice way to put it. You'd end up with a bunch of copies of KDE and Gnome libs and probably multiple competing IPC buses or god knows what, in no time. Maybe multiple sound daemons stepping on each other. You'd probably have issues like different apps deciding to do scaling or font rendering differently, or who knows what, because lots of "basic features" on macOS are instead choices on Linux.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: