Bye Bye Emojis: Emacs Hates MacOS
lunaryorn.com
lunaryorn.com
The difference is that GNU is a lot smaller and has a lot less power and resources than Apple and Intel. So much that it is relatively easy and, in fact, explicitly allowed by the GPL, for someone like Yamamoto to come along and decide that, by golly, Emacs will have unique macOS-only features and Apple deserves to have more money to do whatever it wants to its users because its users enjoy Apple's treatment, smelly GNU/Beards be damned. This is a lot easier than fixing icc for AMD CPUs or putting headphone jacks into iPhones 7.
> We are not welcome, and never will be.
You are welcome. You are very welcome. Apple is not. You should not identify yourself with Apple's operating system.
You're sounding like "I'm not using this feature, why does it even exist?". If things worked like that, then everybody would be using Linux on all computers today.
Your argument sounds like "A man shouldn't be allowed to marry a man because I don't want to marry a man"
It is kind of funny. But also funny because GNU's adherence to their licensing philosophy means it's just as easy for you to get the full macOS-enhanced fork. So the angst seems unreasonable to me.
(Also, the whole emoticon trend is pretty annoying, from an implementation perspective. First it was just B/W icons, fine. But then users wanted color, and now fonts have to do something they've never done before, embed multiple colors for a glyph. There were multiple proposals for font formats to do this, IIRC Microsoft proposed a new TrueType table with color references, and Mozilla proposed just stuffing most of SVG into OpenType, I didn't follow this story to the end. Fonts were already pretty complicated and prone to vulnerabilities, and this more than doubles that complication. But it gets better, now that there's color and high detail, in this brave new politically correct world we need to be able to have a range of skin tones and genders for all emoticons with a person in them! Now we need color and gender "zero-width" modifiers, multiple for small groups! More than double the complexity again! Can't we just go back to B/W symbols and let people use PNG/JPG/SVG if they want an arbitrary fucking picture?)
If crippled is a broken spine, then this is preventing some people from wearing a funny badge until everyone can wear funny badges.
https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00...
Doesn't sound like crippling to me.
> Deciding not to implement the feature in the first place, well, that's a reasonable decision given their desire for functionality to be cross-platform. But accepting it, then turning around and removing it later even though it was already implemented, that's just spite.
Well this ignores the challenge of maintaining an open source project.
Presumably Emacs is still using platform-specific APIs for the actual drawing of the text, yes? So properly supporting Mac font rendering should not adversely affect maintenance of Emacs in general, and similarly it should not be any more work to maintain the correct Mac font renderer as it is to maintain the incorrect Mac font renderer.
The GNU position wrt. Mac support is that only the APIs that GNUStep also supports can be used. You may disagree with the principles underlying that choice, but it is a long-standing policy of the project. It was a mistake (according to this policy) for them to merge the emoji support, and when the mistake was pointed out they removed it. So it's a bit more nuanced than your comment makes out.
If I want I will identify myself with whatever I decide to identify myself with; I don't really care about Apple, but now you've turned it into a matter of principle, moralizing what people shouldn't do.
You should not identify yourself with GNU/Linux. How did you like that?
How about identifying oneself with JustWorks(SM), vertical integration, and things being purposely designed not to get in one's way?
There are other, non-GNU free software alternatives out there.
[1] http://unicode.org/emoji/charts/full-emoji-list.html#1f644
It was done for rather childish reasons... and it makes no sense. It doesn't serve them. It doesn't serve anyone...
But its what I expect from GNU, and the FSF hardcore community at large... you know, the PETA of software.
https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01...
It's not like it's difficult to get Yamamoto's Emacs. So GNU's gesture is almost purely symbolic. If you don't care about getting a free OS and you like the conditions that macOS imposes upon you, you can easily use Emacs with macOS-only features.
Yeah... and pedantic. And childish. I support free software, I commit to open source projects, I love just about any form of Linux and I prefer OSS when its as good as proprietary (sometimes it is... like blender... and sometimes its crap in a bucket... like GIMP ...)
I think my aversion and disappointment comes from the fact that, like PETA, this group and the RMS brigade are very much the public face of a movement, but a movement that doesn't need a single face... but regardless, they are the what outsiders see, and when you turn every piece of software into a political statement, you end up hurting the cause.
There are people out there who will, through some sick twisting of the mind, treat animals poorly or not care about actual animal abuse because PETA has been the face of the animal cruelty movement (or GreenPeace, another great example of this effect, I'm sure it has a name) ... even though the cause is good, and there are good organizations (ASPCA)... the annoying, loud, politically charged reactionary groups like PETA, GreenPeace, GNU, RMS/FSF ... those groups turn people away from free software...
Maybe I'm ranting more about the politicalization of software... maybe its all tied together and one and the same... I just know that I've heard plenty of people say they don't use Linux because it doesn't have X application, or X drivers... when it really does, but the common distros don't include them because they aren't in-line with their political view of the situation...
https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01...
https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01...
There's a real need for innovation and great ideas to better support all manner of open community resources, free software and beyond. But stupid control games are totes better than all that.
Do you know any other platform that managed to form a foundation for org-mode? Until there is, emacs may not be called a "lackluster platform".
It's RMS being RMS. I think he's ridiculously dogmatic and unpractical, but you can't be surprised by this - he has his ideologies to push with fervent absolutism. I doubt he's all that concerned about the market share of his text editor.
There's a place for ideological purists in software and I for one am glad RMS is around.
That's because that comes directly from the commercial companies rulebook. Apple (for example) will not make an application that runs better on Android or Windows than on one of its OS.
It would not be beside any of the big brand to remove something that was working before just because that remove a tiny bit of interest in their own platform. That makes cruel business sense ... and they are also hated for it when it happens.
Let’s not forget that thanks to its libre licensing this is a strategic issue, but not a technical one – recovering the removed features on macOS is a few patches away.
GNU is not UNIX, and no amount of "freedom" peddling changes the fact that it purposely violates UNIX principles. The only thing that could change that is their code (for example ditching info in favor of man pages, removing the z option in GNU tar, or dropping --long-options), and that's one thing they'll never change. I'm so glad I don't have to put up with the likes of Stallman "setting me free" by removing features GNU/Linux doesn't support.
As much as I enjoy "cat -v considered harmful", it seems the battle is lost for UNIX itself.
That doesn't mean their software is bad.
Also, Emacs is incredibly useful, and one of the best general-purpose text editors out there.
I do and oh-how-right you are. What I have major difficulty with is comprehending why people like it, and why they tolerate Stallman's nonsense when there are alternatives. The "rip it all out because it's not ours and re-invent everything just because" attitude is so fundamentale broken.
There are other examples, like tar (I know you would disagree, but dammit, GNU tar is so useful). When there isn't, or Stallman deliberately cripples his software, there are usually alternatives (clang, etc.) which we use, unless "we" are FSF people. Which most of us aren't.
Yes, his attitude is somewhat broken, although I understand why it exists. Also, he's not quite as NIH as you seem to think: There are several cases where he advocates use of software that isn't his own (heck, he advocates clang, or at least has no problem with it).
Also, I have no objection to long options, or to utilities that are a little bit richer (just so long as they still interoperate, and you can still use the standard options, which is usually the case).
And you'd win that bet. Not even a vim user (except on Amiga), but straight vi. Why? Because vi was always there when I needed a text editor, and by learning vi, I automatically learned ed, sed, and ex. All of a sudden, I could write multi line sed programs.
Either way, there are several philosophies and schools of thought. Many of them yield good results in different situations. "Do one thing..." is not the same as "do _only_ one thing..." and there are exceptions to the rules and _we_ made the rules so _we_ can/may change them.
Sticking to rules when they don't make sense is stubbornness and locks one in a local maximum.
tar cf - file | xz -9evc > archive.tar.xz
xz -dvc archive.tar.xz | tar xf -To put this into perspective for you, you could use the block device /dev/dsk/c0t0d0s2 as a tar file to write a tape archive to:
tar cvf /some/path /dev/dsk/c0t0d0s2
The manual page for tar clearly states that tar is for tape archive manipulation:
BSDTAR(1) BSD General Commands Manual BSDTAR(1)
NAME
tar -- manipulate tape archives
Tape.Your statement is an indication that what you really need is to read AEleen Frisch's Essential System Administration so that the UNIX concepts would sink in, because if you're making such statements, you're just not there yet.
Edit: I should add that, since it doesn't appear to be a true interop issue, it may not be a sound decision here. I'm defending the rationale for the policy, not this particular application of it.
No, the goal is that "GNU Emacs should never offer people a practical reason to use some other system instead of GNU".
Universal interoperability is just a side effect.
Of course he wants people to choose GNU, but most importantly, he wants to preserve people's freedom to choose GNU, which means it must not become a second-class citizen to proprietory additions from Apple, Microsoft, or anyone else. If it's portable to GNU, the issue goes away. He says so explicitly.
Homebrew tap here: https://github.com/railwaycat/homebrew-emacsmacport
The Free software movement needs a few extremists like RMS.
I side with camp which thinks copyleft is major way to push towards free software.
It comes down to wether you ideologically support idea that software should essentially be distributed with the source code always. (RMS's view).
GNU Emacs is part of GNU/Linux. Why are you surprised that [other OS] is a second-class citizen for a project which already has a clear OS target.
Besides, the guidelines for GNU packages clearly states that GNU packages cannot emphasise features of proprietary OSes. So it's not really the maintainer's fault, it's one of the rules for GNU packages (you can blame the FSF, but you've got to look at it from their perspective).
GNU packages are different from other projects, because they're actually part of an OS. So they have an obligation to support the OS they're a part of more than other operating systems (especially proprietary operating systems).
- /* Don't use a color bitmap font unless its family is
- explicitly specified. */
- if ((sym_traits & kCTFontTraitColorGlyphs) && NILP (family))
+ /* Don't use a color bitmap font until it is supported on
+ free platforms. */
+ if (sym_traits & kCTFontTraitColorGlyphs)
https://github.com/emacs-mirror/emacs/commit/9344612d3cd1643...That's not the reason that has been given here - there was no claim that the technology was difficult to bring up to current spec. The reason was that non-GNU platforms had better font handling and now that's not allowed for a GNU project.
2) It's perfectly okay (and good) that they want their software to behave consistently across platforms, as otherwise those are not really cross-platform.
3) Coloured typeface are illogical, just use pictures, which is what emoji are. It's fairly easy to insert images into a buffer in Emacs.
Sure and how it is represented in the underlying file? Is this platform independent?
Emoji are just a part of Unicode. As far as I care, I wouldn't mind if Emacs would just render it as [GRINNING FACE U+1f600]
The point of free as in speech and not free as in beer is that the choice you make does not need to be right or wrong by the standards of other humans. Holding back technology because it's not available on "your" platform is just as monopolistic as any corporate entity they have butted heads with.
No, it may be yours, but I'm pretty sure that was never the FSF's point. Not now, and not 20 years ago.
Holding back technology because it's not available on "your" platform is just as monopolistic as any corporate entity they have butted heads with.
- It's not "their" platform, it's free platforms.
- The tech is still available, it just won't be included in their official release. Other MacOS ports are free to use it.
If it's not "their" platform then how is it available elsewhere? If other distributors have access and can make it available then it is very much a GNU political standard and not a side effect the technology.
How are those platforms free if existing features have been removed due to politics? I stand by my point, 20 years ago the FSF was a foundation that wanted to make technology available to all - without having to worry about IP ownership. They have removed a feature that was technically sound due to it's status as a commercial work. How am I free to use this if I can only do so in designated zones?
Freedom of ideas is supposed to be a given in a free society. The FSF certainly supports it, but they weren't created for the purpose of promoting it.
In any case, your initial statement was that "the choice you make does not need to be right or wrong by the standards of other humans", which is actually the opposite of the FSF's position, which is that some choices (like developing, distributing or even promoting proprietary software) are unethical and should be opposed. That's the definition of making a standard and holding other humans to it.
If other distributors have access and can make it available then it is very much a GNU political standard and not a side effect the technology.
I don't disagree. It's still not their platform, it's all platforms they consider ethical.
How are those platforms free if existing features have been removed due to politics? I stand by my point, 20 years ago the FSF was a foundation that wanted to make technology available to all - without having to worry about IP ownership. They have removed a feature that was technically sound due to it's status as a commercial work. How am I free to use this if I can only do so in designated zones?
I completely disagree with your portrayal of the FSF of 20 years ago. The whole point of the creation of the GPL, instead of using the existing permissive licenses, was to legally enforce the position that the Freedom of the software, not its technical superiority, is the fundamental goal. This is a markedly political position, and one which prevented the creation of many features. Being "technically sound" was never enough to be considered good software by the GNU project.
- well, right now, it's just bloating Emacs for the rest of the world. If one needs it on MacOS, I'm sure it can be added it to a personal installation.
The post also misses the second half of the paragraph, which suggests a method to get emoji working again:
If some symbols, such as emoji, do not display, we suggest to install
an appropriate font, such as Symbola; then they will be displayed,
albeit without the color effects.Yeah. I'm sure everyone's happy with that answer.
It's fairly obvious the second part of the paragraph is a workaround, not a fully fledged solution.
I'd be A LOT more sympathetic if they hadn't been shipping it working for two years. At that point it's a little late to put the horse back in the barn.
Some of Stallmans list seems insane to me. They withheld accurate scrolling until all the other platforms had it? They are crippling font rendering to the lowest common denominator? They don't want background transparency on OS X because what is ostensibly a console program doesn't have it on other OSs?
This is the kind of stuff that "free software" people do that turns off normal people. I do understand some features. I can see why they wouldn't want to use the system spellchecker if they didn't have a spellchecker on other platforms. Very significant features like that that really could divide the platform makes some sense to me.
But breaking font rendering? Making scrolling work worse? Not having some generic cosmetic effects like background transparency? That seems way too dogmatic.
Worse is that Stallmans email seems to imply that some of the things that they held back on OS X should have been available for a while, but no one was keeping track of when the free platforms caught up to parity. Does that mean it's possible that OS X could have supported something to years ago, doesn't have it today, but Linux has had it for a year? If you're going to impose a rule like that you should be tracking it.
> But breaking font rendering?
I would instead see at is making font rendering work equally across platforms.
> Making scrolling work worse?
Again, making scrolling work equally across platforms.
> Not having some generic cosmetic effects like background transparency?
Again, equally.
I am more than a little surprised that this is so surprising to people...it seems rather par for the course for GNU philosophy.
If you truly want to make a platform agnostic piece of software, then you end up limiting yourself to the "lowest common denominator".
People seem to have gotten used to the presumption that if you want to make software, you have to make platform specific versions for the best user experience. Want to write a mobile application? Well the best user experience comes from "native" apps...so you should make one specifically for iOS and then one specifically for Android.
That. Is. A. Huge. Problem. (*at least in the eyes of GNU)
And in principle I agree most of the time. Locked/incentivized eco-systems lead to the dominance of a few "popular" platforms as choosing which platforms to support (as a developer) becomes a function of market coverage. This has been demonstrated time and time again for better and for worse...although usually the latter.
So yes, GNU can be kind of extreme into their adherence to their core philosophies...but, honestly, I don't think this is a "fight" (so-to-speak) that can be made with half measures and exceptions.
And yes, you can have a transparent terminal on Linux, make emoji work, have better scroll, etc
> And yes, you can have a transparent terminal on Linux, make emoji work, have better scroll, etc
Well...sure, but it looks like all they did is remove the usage of Mac specific APIs from mainline:
https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00...
So they aren't so much sabotaging Emacs when it is on Mac, they are just refusing to utilize platform specific APIs and tools. Again...see my first comment.
Can't you define fontsets on OS X?
It's worth pointing out that this is not the official 'Apple Color Emoji' font, so it will always lag behind Apple's implementation. That, and have completely different (IMHO, ugly) artwork, which can be a real issue
http://www.npr.org/sections/thetwo-way/2016/04/12/473965971/...
http://samedaytranslations.com/blog/lost-in-translation-emoj...
Anyway I find emoji worsen the communication. There was a time where I could just use :) when I was smiling and :D when really laughing. Now there's so much different smiling variants that you have to use at least 3 laughing-with-tears to convey even a little amount of joy so the other side doesn't think you're just dismissing them with a normal non-laughing smile.
PS what's going on with scrolling in the second link?
[1] https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00...
It's quite silly that the the author of this post thinks non-free support was a top priority for the free software foundation.
The FSF don't want to make their software better on non-free operating systems which, given their goals, doesn't seem particularly unreasonable to me.
Users of non-GNU systems that use GNU software: the FSF is actively trying to make your life more difficult.
I admit it feels weird that GNU is doing it, since the others can be explained by them wanting to make more money, and this can't. But I guess we should be as understanding of them trying to "win" the thing they want (software freedom, defined as they choose) as we are are of companies trying to "win" (money).
I must say, Emacs still runs better on macOS than Xcode does on Linux.
https://wiki.dequis.org/notes/emoji/
https://lists.x.org/archives/xorg-devel/2015-August/047175.h...
Also, people use emacs for all kinds of crazy stuff, like IM and email and so on ...
Unfortunately the "normies" won this battle and now I have to deal with the complexity of pressing the Shift key all the time.
[1] http://www.omgubuntu.co.uk/2016/03/enable-color-emoji-linux-...
I believe that having this implemented in FreeType would be sufficient to get it to work in GTK3 Emacs; not sure about plain X toolkits.
Different people like different things. 1337-speak and obscene levels of abbreviation largely came into being as SMS and text in-game chat were popular because, for a lot of people, spelling out words was much slower (or costly). The former mostly faded whereas the latter is still useful for twitter and people who actually still do SMS due to restrictions
Emoji (and emoticons before them) are similar. It is a way to convey an emotion or have a bit of fun in a concise manner. Some people like to type "That is hilarious". Others will type "LMFAO". And others still will put a pacman that is laughing. All convey the same message just in a different way.
Apple users: Take the temporary pain to protect your future.
Still, it's great to see them take their user base so seriously!
Those of you complaining about RMS's curmudgeonly demeanor, perhaps you would rather be using Apple iEmacs™ and “Microsoft Visual Emacs 2013”, with about the same freedom as you have with macOS / iOS, Android, TiVo, etc., which would play about as well together as ntfs on mac and hfs+ on linux? (or maybe that alternate universe would be Google Mosaic on FranklinOS?). While you're at it, you should thank the couterpointedly curmudgeonly jwz that Emacs is not tty only, and you have at least one viable non-corporate(-ish) browser choice.
Or you could just run emacs in your iTerm. Or you could get all the big software pimps (Apple, Microsoft, Google, Adobe, and maybe the W3C) to agree on a good (please not bitmaped) format, then patch Freetype, again. But I really hope it's already being worked on? I'm sure Emacs will work with it then.
1. Why would you even WANT this?
2. Find this unacceptable? Then recall what Apple did to Logic and Final Cut Pro users on Windows.
The desirability of emoji aside, Unicode has plenty of space for this. The bulk of Unicode code points are CJKV (Chinese, Japanese, Korean, and Vietnamese ideographs) characters. Compared to that, a few emoji outside of the BMP don't really amount to much.
In fact, I am under the impression that the popularity of emoji had an unintended benefit. It seems to have contributed to a much better support of non-BMP¹ Unicode characters across the board. Until the extended emoji set came along, most characters outside of the BMP where fairly specialistic or extremely regional, so bugs didn't show up as fast as they do now. It used to be a tiny miracle of you managed to view a PDF containing non-BMP characters properly, nowadays that is just how things work.
1: https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilin...
That's literally just your opinion, users find them useful and convenient.
> don't add any value
1. they provide user value, that's why they were integrated in smartphones in the first place
2. they provided significant technical value in forcing developers to correctly handle astral codepoints, which they previously had no incentive to. Case in point, MySQL only added support for astral characters (at all, not even correct handling just storing them) in 5.5.3 in 2010, the same year emoji were added to Unicode and about 2 years after emoji were added to iOS
The new crop of "variable" emoji is doing the same thing with composite grapheme clusters (aka that codepoints don't map 1:1 to user-visible "characters")
> waste unicode space
Utter bullshit.
As of Unicode 9 there are 1085 "emoji" (including back-specified dingbats and the like going back to Unicode 1.0, according to current specifications Unicode had 139 emoji in 5.2, before japanese emoji were formally added in 6.0) in a codespace of 1114112 with 128237 allocations as of 9.0.
By comparison, the Tangut block added in Unicode 9.0 contains 6125 codepoints, and the separate Tangut Components block contains an additional 755. There are no extant Tangut users and we have no knowledge of the script having been used after 1502.
> developers' time.
Tough shit?
"the users have the freedom to run, copy, distribute, study, change and improve the software"
Yep.
Somebody needs to implement this. If not for the practicality, just to irritate Stallman.
Oh, and the rest of the Emacs team: Don't think you're getting away with this, either: it's despicable.
I may well actually work on exporting the GCC AST in protest.
GNU Emacs is still under the GPL. Feel free to modify it to re-add the feature that was removed. The only reason you have the freedom to do that is because of Richard Stallman's "high horse".
> Oh, and the rest of the Emacs team:
Reminder that GNU Emacs is part of GNU/Linux, and thus features are developed against GNU/Linux first and other operating systems later. In addition, it is part of the requirements of GNU packages that they not encourage users to use proprietary operating systems. This includes having features on proprietary operating systems that do not exist on free operating systems.
Surely you see why that's important, right?
> I may well actually work on exporting the GCC AST in protest.
Have fun using the freedoms that the GPL grants you while protesting against the movement that caused free software to exist in the first place. Hypocrisy is so much fun.
Yes, but that's terrible. Making your software demonstrably worse for a subset of your users isn't acceptable. If any other group did this, you'd likely be enraged. What if .NET Core dropped support for an API on Linux? Would you really be comforted by the people saying: "it's open source: fork it if you want the features back"?
>Have fun using the freedoms that the GPL grants you while protesting against the movement that caused free software to exist in the first place. Hypocrisy is so much fun.
I have no wish to protest GNU as a whole. I do wish to protest the pig-headedness of RMS and others, which keeps us from actually moving Emacs and other packages forward. Not allowing Emacs to touch the GCC AST isn't protecting freedoms: it's needlessly obstructive, and utterly pointless.
It's the same situation here: not patching in functionality until there's cross-platform support? Okay. Actively removing functionality that doesn't work cross-platform (yet)? Not cool.
Which is why they removed a feature after realising it made GNU/Linux users have a worse experience than on other platforms.
> What if .NET Core dropped support for an API on Linux? Would you really be comforted by the people saying: "it's open source: fork it if you want the features back"?
Yes, because I guarantee that someone would fork it. Just like someone already has a fork of Emacs that is macOS-friendly. And it probably already has the patch reverted.
> Actively removing functionality that doesn't work cross-platform (yet)? Not cool.
It was a mistake for them to merge it, and they're fixing their mistake. That's how I see it. GNU packages have to be "portable to GNU", specifically all of their features have to be portable to GNU. A feature which is not portable to GNU is not a feature that the package should have -- otherwise you're both encouraging people to use proprietary operating systems as well as fragmenting your userbase.
On the OS X Cocoa ("Nextstep") port, multicolor font (such as color
emoji) display is disabled. This feature was accidentally added when
Emacs 24.4 included the new Core Text based font backend code that was
originally implemented for a non-mainline port. This will be enabled
again once it is also implemented in Emacs on free operating systems.
If some symbols, such as emoji, do not display, we suggest to install
an appropriate font, such as Symbola; then they will be displayed,
albeit without the color effects.
IMO: this is the least important thing of this week to me. It certainly doesn't deserve the "Emacs Hate MacOS" subtitle.Someone has to be ideologically pure, in a world of jailed software.
http://donhopkins.com/home/archive/emacs/skull-and-crossbone...