12 ms·
> Here's a little editor story for fun. During beta we found some bugs in Apple's text layout engine that we just could not fix. Our solution? Writing our own t
by Brendinooo 6y ago
> Here's a little editor story for fun. During beta we found some bugs in Apple's text layout engine that we just could not fix. Our solution? Writing our own text layout manager… from scratch. Not only did this fix the bugs, but it also boosted our editor's performance. We're not messing around!
Seems like there's nobody better than Panic at doing this sort of thing. They're willing to push Apple's UI forward, but they always do it in a way that feels Apple-y. Didn't they also pioneer a tab UI that Apple ended up adopting?
- riordan 6y agoIndeed they did. I also fondly remember how wonderful the web development deployment workflow was in Coda. This was back before source control was ubiquitous and CI/CD was required for any real production environment. It was the cleanest way I'd seen to go from saving in your test editor and having a clear path to SFTP it to the server. I half recoil in horror and am still in awe of how considered their experience was.
- joshcain 6y ago100%. Coda was especially useful if you weren't running your server stack on your local dev machine. Hit "Publish" and all your changed files are pushed up automatically. So much better than hunting through an FTP client every time you make a small edit.
- pilsetnieks 6y ago> This was back before source control was ubiquitous Your memory may be playing tricks on you, it wasn't that long ago. Coda 1 had SVN support out of the box, and at the time SVN was already old and in decline, not to mention CVS and other lesser source control systems. By the time Coda 2 came out, git had won the DVCS battle, and was built into it. Now, granted, back then I wasn't very keen on version control either but it's not because it wasn't there, it's because I was young and inexperienced, and didn't know any better. Plus, those days the only common use for source control was actually, well, source control, unlike today. It was something you had to discipline yourself to use for no immediate benefit.
- smoe 6y agoFrom my memory in the mid 2000 version control and automatized deploys weren't ubiquitous for the audience Coda mainly targeted: web site development. I started my career at around that time in a company using Python for web application development and everything was in SVN but already in the progress of being moved to git and while there wasn't a CI/CD server, all deploys were done running a single cli command. On the other hand for years to come I have seen e.g. people and agencies doing websites in Wordpress making changes directly in production. In that circles, which often included people with no heavy technical background like designers that learned some php/html/css Coda was quite a relevation I think.
- Wowfunhappy 6y agoThe company itself would likely have become part of Apple if not for one bit of unlucky timing. Apple wanted to turn Panic's Mac OS 9 music player, Audion, into iTunes. https://www.panic.com/extras/audionstory/ https://www.panic.com/extras/audionstory/
- Brendinooo 6y agoThat's such a great story that's equally well-told. I think that story is what turned me on to Panic in general. Their blog was a must-read for me for years.
- munificent 6y agoIf you haven't seen it already, you will love this video by Cabel Sasser: https://youtu.be/8ZXWdR7RzV8 https://youtu.be/8ZXWdR7RzV8 Cabel, and Panic in general, are true heroes of mine.
- Wowfunhappy 6y agoOh, cool—check out the player that pops up if you hit "Play Now" on an episode!
- dewey 6y agoThere's also a really cool episode about that (and other things) on their official podcast: https://podcast.panic.com https://podcast.panic.com
- forgotmypw17 6y agoRest in peace, SoundJam. Best music player on Mac before Apple transformed it into the iTunes atrocity. SoundJam's hierarchical playlist has yet to be replicated by any other music player to my knowledge.
- haroldp 6y agoStill upset.
- mooman219 6y ago"Writing our own text layout manager… from scratch". I would be pessimistic of the magnitude of this statement. I do a significant amount of text engine work and I'm skeptical what they implied by this. The likely case is they glued together other solutions (Like HarfBuzz/FreeType/etc) and expose their own API on top of that. This is perfectly acceptable and even encouraged for accessibility reasons. It may be that CoreText isn't acceptable for their use case. What I think this would be misinterpreted as them writing the whole stack from scratch. For example, shaping is part of layout and it would be monumental if they wrote their own shaper given even HarfBuzz, DirectWrite, and CoreText do not have complete coverage yet. Additionally, BiDi + line breaking + shaping has bugs even in Chrome on some edge cases.
- earthboundkid 6y agoFor a text editor, why not just drop BiDi? I guess it sucks if you use a BiDi language for your comments, but there’s nothing per se wrong in making a solution that doesn’t work for everyone around the world if it works better for a subset of people.
- monadic2 6y agoYou'd also want BiDi for general-purpose "text" documents like markdown. There are many aspects of text rendering that aren't necessarily relevant here (think: word- and line-breaking) but directionality strikes me as a major feature.
- csande17 6y agoFor what it's worth, I fired up BBEdit (another popular commerical Mac code editor) and pasted in some Arabic text. It didn't behave remotely correctly -- the text shifted around bizarrely as I moved the intertion point. I think it's entirely plausible that Panic also shipped a text-layout system without full bidi support -- maybe that's why theirs is faster and less buggy on LTR text. The left-to-right language market (English, Spanish, French, Russian, Chinese, Japanese, Korean...) is probably big enough to support a Mac app development studio on its own.
- sho_hn 6y agoTo 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.
- ryantgtg 6y agoThanks for working on Kate! That's my go-to editor.
- ddevault 6y ago>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.
- sumedh 6y agoDo the Windows based laptops have a similar touchpad like the Mac which just works, last time I checked they did not.
- MacsHeadroom 6y agoAt the same price point in the professional space, of course. Lenovo X series and System76 have solid touchpads- and have for years.
- imwillofficial 6y ago“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.
- 6y ago
- p1necone 6y agoThey entirely rewrote something because apples implementation wasn't good enough, that doesn't feel appley to me. "Appley" would be living with the limitations of apples implementation because apple knows best, and they tried their hardest to lock you out from any alternative option.
- slmjkdbtl 6y agoCan you share what bug did you encounter with the apple text layout engine? I too have written simple text layout code for a text editor (dealing with wrapping, tabbing, cursors and all those things), and those are the most logically chaotic and ugly code I've ever written, turned out buggy and not maintainable, I'm interested to know how other people did it
- Brendinooo 6y agoI pulled that quote from the article; it wasn't me developing for the Mac!
- mhd 6y agoIf I recall correctly, that's exactly what TextMate did years ago and what was one reason why it was considered to be so fast. Plus ca change in a proprietary world.