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

To me, the quote and what you put after came as a big surprise - I was ready to nod in agreement as you recognize this as a sad story about the platform.

The last time I was working on a text editor (KDE's Kate) and found a bug in the text layout engine it was written against (Qt's), I wrote a patch, submitted it upstream and it made everyone else's apps better, too.

I can't imagine the world of hurt, discomfort and frustration of developing against a lib set I can't read source code of or improve.



I've been a professional macOS developer for almost 20 years now and I can't tell you the number of times that this has been an issue.

With no access (or ability to patch) the platform source code you are left with a) hacky work-arounds, b) re-implement the component or c) change the app's design or feature to compensate. All of which are a pain / more work / risky etc, etc - just to work-around bugs in the platform.

Sure you can file radars (I do), but whether something gets fixed or not, is up to the gods...


The same happens with html and browser bugs all the time.


If it's an open source browser (Firefox or Chromium-based) can't you submit a patch?


That is likely to be non-trivial to develop unless you’re very comfortable with large, complex C++ projects and then you have to convince them to accept and ship ship it. That’s better than not having the option but it’s not for the faint of heart.


Chromium — yeah, seems like not friendly towards outside contributors, and nobody has convinced Google to accept stuff they don't care about (JIT for unpopular CPUs, support for new windowing systems, video decoding acceleration APIs, …).

Mozilla? Getting your patches merged is rather easy and very pleasant. Firefox is truly a community project we all build together.


Sure, but this is a thread about how Linux is better than MacOS because you can modify Linux. Those same criticisms you have I think could apply to Linux too.


True. In my experience though, it tends to work out. If 100 people are affected by a bug it's a drop in the ocean in the grand scheme of things, but now you only need a 1 in 100 chance of someone being up to the task! And the others can help with info and testing along the way.


still have to care about Safari, where one man can prevent all communication to localhost for years. with no real reasons, breaking the spec.

https://bugs.webkit.org/show_bug.cgi?id=171934


That patch will likely take weeks or months to reach end users


Sure, but this is a thread about how Linux is better than MacOS because you can modify Linux. I think a Linux patch would take much longer to reach users. Modern browsers auto update frequently, but I don't think Linux users update Linux as frequently.


Kate replaced Sublime Text for me, so thanks!


>I can't imagine the world of hurt, discomfort and frustration of developing against a lib set I can't read source code of or improve.

Thank you.

It boggles the mind that anyone who can write code would ever use a closed source operating system.


> It boggles the mind that anyone who can write code would ever use a closed source operating system.

Some of us want our work to actually reach people who don't write code or sysadmin their own computer, i.e. most people in the world. I, for one, think my effort is wasted if it doesn't benefit those people. So while working exclusively on a free-software platform is tempting from an ideological purity point of view (edit: and I envy people like you that manage to make a living doing it), I don't think I'd ever actually do it.

Edit: I should be more concrete and less snarky. Working on developer tools is good and necessary, and you can do that effectively on a free-software platform like Linux. But I choose to focus on end-user-facing software, particularly in the field of accessibility. I could work on desktop Linux accessibility, for the vanishingly small number of blind people who use desktop Linux (and that number is shrinking; one of my blind programmer friends just switched to Windows). Or I could target one or more of the mainstream platforms where the users actually are. I suppose I could work exclusively on web applications, but I don't think that would be the best use of my skills. And even then, while I could develop primarily on Linux, I'd have to test on other platforms too.


> Some of us want our work to actually reach people who don't write code or sysadmin their own computer, i.e. most people in the world

The majority of the internet is run on free software, and free software touches nearly every stack, even ones that are otherwise proprietary.

With regard to accessibility, there are open source tools out there that are pretty great for blind users, but they still need more work. There are also blind users that can't afford a Windows licenses or expensive screen reader software. I've worked with a local charity that helps people with sight impairments, and the money just isn't there when it comes to expensive software licenses and hardware.

If more open source options for people that have sight impairments become available, that would help a lot of those that are currently priced out of using modern technology for work, leisure and social interaction.


Or you could realize that your "mission" would be to break the chicken-and-egg problem, write more end-user-facing software in an open platform so that non-developers can actually enjoy the same benefits that developers do.

Someone has to do it. If you have the skills, why not you?


> I could work on desktop Linux accessibility, for the vanishingly small number of blind people who use desktop Linux

> one of my blind programmer friends just switched to Windows

Where they happy that their choices were being reduced to using a closed source operating system, now forever being dependent on the support of a giant corporation, partially because their friends like to write code that "actually reaches people" instead of contributing to an open and accessible solution used by a vanishingly small number of blind people?


Working on a free software platform is not mutually exclusive with reaching the majority of end-users. You can develop web apps for example or use cross platform toolkits for native apps. That's what I do and it works great.


One of the major selling points of the Editor posted here is that it isn't a cross platform app or built with web tech. Those already exist and it's great that we have choices but some developers like Panic have carved out a niche selling software thats very specific and tightly integrated into the platform. For those developers using the platform they're developing for makes a lot of sense.


When you use Nova and then go back to something web based, like Atom, it becomes clear why that’s not ideal. It jut feels snappier.


And then when you go back to something terminal based, like Vim, it becomes clear...


To be fair if you get a few plugins for web dev running vim/nvim does slow down a quite a bit.


I have a zillion plugins and vim is still snappy. Plus, editing requires so much less effort that it'd be better even if there was lag, which there isn't.


Good to know, it might be an issue with my config in that case. Agree on the editing side though.


Do you not see how this is a self-defeating attitude? Do you recall when I suggested that you would be a great fit for leading an organization devoted to improving accessibility in free software? Have you resigned yourself to failure in the pursuit of improving access to open source for users with accessibility requirements? It'd be a pity to know that was the case.

I really wish you would step up and embrace the ideals you espouse, because I think that you could make an amazing impact if you applied yourself to it.


Oh, the prejudice!

I like developing on Windows. Especially since the programs I write are run only on Windows. That's what the specific trillion dollar industry my employer serves uses mostly on desktop.

I don't want to tweak the platform. I want to concentrate on the code I write. I could be equally productive on OS X or Linux, but frankly, I don't care. They are all interchangeable computational substrates for me. As long as you can write any program on them, that is...


It's almost as if none of the replies read Drew's comment. Drew is talking about developing an editor for a closed source system and dealing with interfaces that break and then are hard to change, unlike open source systems that receive patches. It has nothing to do with "tweak[ing] the platform." Fixing a bug (which upstream would do, not you) is not tweaking, a bug is unintended behavior.


Yes, but I am not paid to fix the platform.

From my employers point of view it is irrelevant if I could fix the platform since they most certainly don't want to pay for it.

This is not evil. It's just how some parts of the industry work.


From your employer point of view you might be able to save a lot of time and money by submitting a patch for the bug upstream, instead of having to write your own text layout manager from scratch to work around an issue, which if you're unlucky won't even add any additional value to the client by itself other than enabling that feature.


The operative word is “might”

As experienced devs with love of open source, they made this choice after thinking about it. They just have different value weights for their goals and those aren’t the same as other folks. Not a biggie


> unlike open source systems that receive patches

Which you have to create and convince the maintainers to accept. Some maintainers are gracious and others not so much.

Impression I get with Microsoft 'developer doesn't want to work on it' isn't a show stopper like it is with open source.


Is is not incomparably faster to fix a problem in an open source component than it is to write a full replacement for it? Would your employer not prefer to see you spend a few days digging through source and submitting a patch upstream than spend many weeks writing a text layout engine from scratch? The result is the same (working text layout), but the time (== money) required is substantially less in the open source situation.

I get your argument for a closed platform where you have a direct phone line to its developers that will fix any platform bugs you find ASAP, but MSFT hasn't been that kind of platform for years...


Sure. Perhaps the main constraint in my employers case is simply that the market uses Windows.


Some of us prefer the Xerox PARC experience, and gave up on the promise of Linux Desktop with its fragmentation and continuous churn.

My MFC/VCL applications work just fine today, and can be easily extended to take advantage of modern UWP APIs.


In what way(s) does Linux fail to follow in the footsteps of PARC?


It is a bit hard to explain in an HN comment something that requires live experience,

You can start by having a look at,

http://toastytech.com/guis/cedar.html

"Eric Bier Demonstrates Cedar"

https://www.youtube.com/watch?v=z_dt7NG38V4

"Alto System Project: Dan Ingalls demonstrates Smalltalk"

https://www.youtube.com/watch?v=uknEhXyZgsg

"SYMBOLICS CONCORDIA ONLINE DOCUMENTATION HYPER TEXT MARKUP 1985"

https://www.youtube.com/watch?v=ud0HhzAK30w

You can see how NeXT builds on many of these concepts on the famous "NeXT vs Sun" marketing piece,

https://www.youtube.com/watch?v=UGhfB-NICzg

Sun also had some ideas along these lines with NeWS,

"NeWS: A Networked and Extensible Window System,"

https://www.youtube.com/watch?v=4zG0uecYSMA

Naturally OS/2, BeOS, Windows, macOS, iOS, and even Android share some of the ideas.

Now, before I proceed note that actually modern Linux distributions have all the tooling to make these concepts happen, but it fails short to have everyone agree on a proper stack.

So basically, the main idea is to have a proper full stack in place for developing a Workstation computer as one single experience, from bottom all the way to the top.

On Xerox's case, they used bytecode with in-CPU execution via programmable microcode loaded on boot, and later on just a thin native glue on top of host OS.

The environments had frameworks / modules for the whole OS stack, supported distributed computing, embedded of data structures across applications (OLE can trace its roots back to these ideas), REPLs that not only could interact with the whole OS (commands, modules, running applications), it was also possible to break into the debugger, change the code and redo the failed instructions.

Linux distributions get kind of close to these ideas via GNOME and KDE, but the whole concept breaks, because they aren't part of a full OS, rather a bunch of frameworks, that have to deal with classical UNIX applications and communities that rather use fvwm (like I was doing in 1995), and use a bunch of xterms, than having frameworks talking over D-BUS, embedding documents, all integrated with a REPL capable of handling structured data, and call any kind of executable code (including .so, because the type information isn't available).

And then every couple of years the sound daemon, graphics stack or whatever userspace layer gets redone, without any kind of compatibility, because it is open source so anyone that cares should just port whatever applications are relevant.

It is quite telling that most Linux conferences end up being about kernel, new filesystems, network protocols, and seldom about how to have something like a full BeOS stack on Linux. Even freedesktop can only do so much.


> It is quite telling that most Linux conferences end up being about kernel, new filesystems, network protocols, and seldom about how to have something like a full BeOS stack on Linux.

A perfect summation!


Do the Windows based laptops have a similar touchpad like the Mac which just works, last time I checked they did not.


They do, when they introduced the precision touch-pad. However ironically it created a lot of problems in software that responded poorly to the high precision events. Chrome being one of the most obvious offenders, took months for them to finally fix it (hence edge scrolling so much nicer then chrome on its release).

These days it just works though.


At the same price point in the professional space, of course. Lenovo X series and System76 have solid touchpads- and have for years.


As long as PC laptops continue to use that terrible Synaptics touchpad system, they will always be inferior. Anybody I've seen who claims any PC touchpad matches a Mac doesn't know what they are talking about. And I say this as a user of both but mostly PC.


I had a 2016 macbook and an HP Spectre 360. The touchpads were comparable. On the other hand, the macOS part of the macbook was pretty terrible.


I'm kind of the opposite. I have a ThinkPad X390 Yoga and a MacBook. The ThinkPad touchpad is perfectly usable, but not great like the MacBook. The dealbreaker is that the Linux part of the ThinkPad is a complete pain (Intel WiFi headaches - went as far as submitting a kernel bug), while the MacBook just works.


“Solid” does not mean comparable. I have both high end dell and Lenovo laptops for work, and my Mac at home. My girlfriends MacBook Pro is far nicer to use despite being slower. Even for Windows.


Macs, with their amazing touchpads, are (at least for the moment and the last ten years or so) general purpose computers that can run pretty much every widely available open source operating system. This is a false dichotomy.

From GP:

> use a closed source operating system

That's not "Windows".


> that can run pretty much every widely available open source operating system.

That's just not true, though. Here's a git repo listing what works and doesn't work in Linux for all of the macbook pro models since 13,1 (released in 2016): https://github.com/Dunedan/mbp-2016-linux

You'll notice that power management (suspend/resume) doesn't work for any model, wifi only works for a few select models, and support for audio is pretty spotty. If you buy Mac hardware, you're pretty much locked into MacOS if you want to have a reasonably acceptable experience.

BSD support is much, much, much worse--it basically doesn't work at all for any relatively recent model.


> BSD support is much, much, much worse--it basically doesn't work at all for any relatively recent model

Well, would probably work fine with an external keyboard/mouse :D

NVMe should crash right now like it did on Linux before 5.4, but the Linux patch for that https://github.com/torvalds/linux/commit/66341331ba0d2de4ff4... is absolutely tiny, I could probably replicate these quirks in FreeBSD in a few minutes.

The SPI keyboard and touchpad thing though is just.. WHY?? Everyone went with HID over I2C, Apple went with a completely new protocol over SPI. So annoying. I wouldn't want to work on supporting that crap.

> power management (suspend/resume) doesn't work for any model

um, that page says that you have to disable a power saving state on NVMe and it would work on any model with Intel GPU.


Can you explain why this is such an important feature? How often are you writing code where you're not at your desk with a real keyboard and mouse?


MacBook’s touchpad is so good that I was not using the mouse anymore just a few weeks after having my first Mac. It happened naturally and at some point I just stopped connecting the mouse.


All the time.

But more to the point: Apple has proven it _can_ be that good, so I want a control that _is_ that good. Why would I ever go backwards?


Because like they just pointed out, you can only use this magical touchpad on a Mac running MacOS.

It's not like Apple benevolently gave this touchpad to the world, for our betterment and happiness, but for the singular, exclusive purpose of luring you into their ecosystem. But you don't benefit when they profit, you were the prize.

You should demand they give it away for free, because you should not give a shit about their profit because they (it) do not give a shit about your life or freedom or the economy of the social strata you live in. It's an alien machine that will eat you or it will fight you but it won't know the difference.

For me it's this, it's been proven I can get an OS that is open and free, doesn't mean I have to support and buy into some terrible multinational corporation whose goals I do not agree with, and that I get to have control over my own OS in a sense that is utterly freeing compared to MacOS or Windows. So why would I ever go backwards?


...what?

I pay Apple for hardware and software. I get good value in exchange. I don't particularly care beyond that.

You're trying to change this into an argument about freedom and open source. It's not. I want a trackpad that feels premium, the same reason I buy a nice car. I do not care how it's done and I do not care about the price.

tl;dr If the Linux ecosystem could provide it, good - I'd consider it. Put up or shut up.


100% of the time for me. I prefer the trackpad over the mouse.


100% of the time for me, I wouldn't wipe my butt with a trackpad, let alone use one for work.

It's always fun for me to meet people who do things the complete opposite I do them. It's oddly satisfying, like, I'm glad someone is my polar opposite on an issue or activity.


Tabs or spaces ?


It depends. For lists, I do spaces. Allows for more levels than a tab would. But for everything else, tabs.

I've also grown to loathe that first-line tab beginning the second paragraph. It makes left-aligned text look wonky.

I loathe centered text too.

I'm not a rounded rectangle person.

I think the colored block UI that's all over Android, sites like HN, etc. looks tacky. We went from semi-transparent glass UI to flat colored blocks, and somehow interfaces got slower and more processor intensive. Now, that's a horse of a different color.


That made me smile....thanks @jmnicolas :)


It’s like we all have an evil doppelgänger out there’re of us who is religiously fervent about trackpads


Honestly, I think of any number of issues in the world that we have to navigate, and I am truly grateful that so few of them require a trackpad.


Trackpads are really un-ergonomic when they're attached to the laptop. Both your wrist and neck are bent because the trackpad and screen are attached that way.

Consider getting a separate USB trackpad and putting it in a "mouse like" position so your wrist is straight and you can raise the laptop to just under eye level.


I position my MacBook where I'd place my standalone trackpad. I could probably get a Magic Trackpad from work. But that would mean I need to carry another accessory with me.

So I'll have a proper monitor and a standalone keyboard in front of me. And the MacBook screen on the side is being used to display secondary information (chat windows and logs I don't need to actively look at).

Having the fingerprint sensor and the TouchBar lock button within reach are also nice (yes, I actually like the touchbar)


I use a dedicated keyboard, but I put the MacBook on side and use the trackpad as my mouse. It's smooth to use, has great gesture support for switching between applications.

And the most important feature for me. I can work a full day on it without any RSI related symptons. No other mouse can do that for me.

I use a normal mouse on my gaming rig, though. Because trackpads are awful for gaming.


> has great gesture support for switching between applications.

There are keyboard shortcuts for those, which are even nicer imo. Reduces the amount of times you need to take your hands off the keyboard.


I used those before I got a MacBook. But then I found the hand gestures to be more intuitive.


The Mac's trackpad is so good that you dont really need a mouse when writing code. I use the trackpad more at my office desk.


Surface line all do and any professional level laptop from the past few years should too.

The term to look for is “Windows precision trackpad”.


If linux wouldn't require you to send patches upstream that would be great. Last time I checked the font rendering was off. So Linux seems to need to catch up to system 7 maybe? Certainly it's lagging osx 10.0.


I laughed so much reading this, certainly not untrue.


Thanks for working on Kate! That's my go-to editor.


> I can't imagine the world of hurt, discomfort and frustration of developing against a lib set I can't read source code of or improve.

"our joy at Panic comes from building things that feel truly, well, Mac-like"




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

Search: