My long time main code editor BBEdit just updated to version 14. As I’m currently running v11.1.4 it’s time to consider upgrading. I’m happy with how v11 works and not missing much. Syntax highlighting, SFTP mode, multifile search, diff all work great for me with Regex lurking in the background as a new temptation. I don’t much use the Markup menu to write HTML any more as I usually write in Markdown and when I’m not writing Markdown I know my HTML commands well enough to write the tags outright myself.
Superficially, the two applications look almost identical, along with the menus but two tier title bar has been reduced to a single bar. It’s cramped but less distracting than the two tier version.
Before I drop another $40 into BareBones’ coffers, I’d like to know what I’m missing out on and if there’s a better code editor in which to invest. Or are the best code editors for OS X free in 2021? Github built a powerful free editor called Atom before Microsoft bought Github. Let’s find out what’s out there in 2021.
Major Code Editors which exist for Macs
To make this list, an editor must either be free or cost $50 plus and have a dedicated fanbase of evangelists. This first list is not for casual lightweight text editors with syntax highlighting. The Mac version must appear as a full-fledged Mac application and not require adding a compatibility layer for either Windows or Linux.
- BBEdit (1992-2021; was $100, now $50): the original from Bare Bones Software. Ran on MacOS before OS X. Early claim to fame: HTML preview and built-in HTML markup tools.
- TextWrangler (2003-2016; free): free version of BBEdit. Extremely capable. Even faster to run. Much nicer than BBEdit free as TextWrangler doesn’t crowd menus with paid features which doesn’t work.
- TextMate (2004-2017; $100). The first major BBEdit alternative. Until 2016, BBEdit always looked a bit scrappy on OS X, more like a classic Mac OS application. Designers and some coders were sick of looking at ugly old BBEdit. Huge market, especially when one started to add additional tools. There is still an operational version of TextMate but it’s somewhat flaky on Mojave. Version control included.
Espresso (2007-2015, now back from the dead; $100). The heir to the brilliant CSSEdit from MacRabbit. Somehow Espress never quite captured the magic of CSSEdit and its very complete CSS tools. Not nearly as quick as BBEdit nor able to handle the huge files. I trialed Espresso years ago but found it much slower than the extremely responsive BBEdit. Made this list based on price and CSSEdit inheritance.Not in MacRabbit’s hands but in the hands of Kangacode who managed to turn the wonderful Anarchie into FTP also-ran as Interarchy (I’m a paid user of v10 and have been for decades, this is personal experience) after the brilliant Peter N. Lewis (Keyboard Maestro) sold it off to his protegé at the time Matthew Drayton.
- Sublime Text (2008-2021; $90 personal three years; $65 business one year). Now on version 4. Each version has been a paid update and now updates are on an annual plan. Claim to fame is its extreme customability. More on SublimeText below. Say what you want (and I will) about Sublime Text functionality, it’s a financially stable and viable project, scrupulously maintained by its pedantic creators. Version control unfortunately is another separate and equally expensive product, Sublime Merge.
- Coda, since 2020 Nova (2007-2021). FTP hall of fame builders of Transmit, Panic has been trying to get an editor app right since 2007. Coda and Nova look great but don’t bring much new to the party and are another $100 plunge with expensive updates. I’m a happy Tranmit user and since Interarchy disappeared into the sunset I recommend it to some clients but buying Transmit or Coda/Nova across our whole agency is basically without discounts and expensive to maintain (2 x $50 updates for Code/Nova) and now $49/year subscription.
- Atom (2014-2019). Atom is still maintained but hasn’t had much active development since Microsoft acquired Github as Microsoft already had its own free power editor, VSC. Atom apparently is at the core of the Electron app revolution (write once in js, CSS and HTML, run inefficiently everywhere). Huge memory requirements to run and for each open file. Still, Atom as a Github project was very intriguing. As Microsoft neglectware it’s a dead end.
- Visual Studio Code (2015-2021). A slightly better clone of the original Electron code editor, Atom. VSC is an extremely powerful application, with some amazing extendible libraries. It doesn’t look very Mac but it doesn’t look terrible. By far the most powerful and best maintained of the fully free editors. Same memory efficiency issues as Atom or any web browser. Full of Microsoft telemetry: after user revolt, Microsoft made it possible to turn VSC telemetry off.
I don’t recommend VSC (reasons outlined in main section). VSC is for unprincipled cheapskates with limited aesthetic sense or for coders with very serious financial limitations until they can afford something native. For programmers who work cross-platform (two of MacOS, Windows, Linux) a better argument can be made for VSC: to work in the same platform.
Editors which don’t make the list of major editors
These editors aim at the same category of the editors above with code highlighting and a focus on development. They are mainly the work of single developers and have more limited code library support, more irregular updates and/or at least one serious limitation. Pricing is certainly friendlier.
- skEdit ($5 to $25). Own a bunch of copies of this as the developer participated in many bundles. Doesn’t handle large files well and I remember not liking the syntax highlighting as well as either CSSEdit (work of beauty) or BBEdit (extremely clear to read). Focused on low contrast development environment with lot of colour which I didn’t like, more and more as my eyes age.
- CodeRunner 4 ($20). Also inexpensive and now on version 4. The developer has a generous one time purchase policy (which given CodeRunner went through four versions in a short period is probably a good thing) but seems to mean there is not enough ongoing revenue to keep the application up to standard. Indentation is broken which makes what is a very nice editor almost useless.
- Smultron (2011-2021; $8). Bright and cheerful. Couldn’t handle large files well. Doesn’t have code folding. Have had better and worse versions. Was originally free which built a base of angry freetards who have torn down Peter Borg since he started charging for his applications. Borg hasn’t helped matters with inconsistent qualty and excessive paid upgrades to Lingon. Licensing older versions requires a painful for all concerned manual interaction with Peter to request alternative license keys for previous version. Licensing mechanics should really be easier for end users (i.e. new serial numbers should license older versions automatically).
I own two of these but don’t use them much.
Alternative Text Editors for Mac suitable for Programming
Both are ultralight editors, one from a Japanese programmer, minimalist in spirit. The other is an attempt to bring Window’s Notepad back on the Mac OS platform. CotEditor requires 10.15 which I’m unlikely to install any time soon. The App Store is flakey for me again on Mojave so I can’t try Moped but it’s really a writing tool/notepad not a coding tool.
These two are here just as a sample of lightweight code editors built on OS X’s built-in tools. There’s certainly some others out there.
Pricing methods and levels
Every single discussion about these text editors ends up in an argument about pricing between its advocates and potential new users. The dialogue goes something like this:
Advocate: What do you mean $100 is a lot of money? This is the tool with which you earn your daily bread, it’s the main event. If [X Editor] helps you code at all better or faster, it will earn back the $100 many times over in a year.
The issue here is that the total cost of ownership of these editors is pretty high, very high when one considers the update policies each of them run. To really be productive, the ideal situation is to choose one or maximum two and focus on it.
Experimenting is costly though at $100/editor plus paid updates every year or two. Count on $200/editor every five years. Especially disappointing is when one’s text editor of choice just disappears as in the case of TextMate. At least Allan Odgaard did open source TextMate so it can be kept operational (if a bit flaky) on the latest OS X.
Nova/Coda in particular would cost a programmer quite a bit $99 to buy in, $49 for the Coda 2 upgrade and $79 for the Nova upgrade. A Coda purchaser would be out $210 for a code editor which has perhaps only now become best of class. Ouch. What’s worse is that Panic now wants $49/year subscription from Nova fans. In contrast, Bare Bones upgrade policy with BBEdit is more traditional and more reasonable. Major updates are $49 and come bi-annually since 2016. I originally bought v8 in 2007. My first upgrade was to v11 in 2014. BBEdit is now on v14 in 2021 and another upgrade will be $30. Based on the changes between v11 and v14, I could probably wait for v15 where the external code libraries will be better integrated. But this might be the last BBEdit for me as I have no intention of moving my Mac beyond 10.14 at this point and there’s a high risk v15 won’t support Mojave.
Payment per version upgrade works better for the customer, as I’ve enjoyed exactly the version I’ve paid for the last fourteen years for It works for BareBones as well as I’ve bought a second copy of v11 for a colleague at close to full price. BareBones has about $250 in licenses and upgrades and satisfied customers.
The argument that a week or thirty days should be enough to test a text editor kind of works. If one’s main vocation was testing text editors and software, it would certainly be enough time. The issue for a coder is that one has a bit of time to test an editor but then work gets busy again and one must work with the old stalwart and perhaps come and give the candidate another try in a month.
Sublime Text has this model under perfect control with a permanent trial available with only nagware to slow down the free user. Apparently conversion is under 5% though. I.e. for every paid users there are another 20 unpaid users. Those numbers are deceiving though as I’m probably on the list of unpaid users, despite only opening Sublime Text five times in the last seven years.
I sometimes like to have at least a couple available to me in case I have a big project open in my main editor (usually BBEdit) and I don’t want to clutter my workspace with additional unrelated files (TextWrangler and skEdit cover me here, Smultron has done this kind of duty). Since I own CodeRunner as well I might give it a try.
Free is its own problem. Gerbil wrote this about VSC in 2015:
Microsofts business strategy in action. Sell the product for under the price to crush competition. Take over GitHub, make sure there is hardly any resistance by making private repos free. There will be less and less editors and IDE’s in a couple of years. Do you think there will be al lot of JS developers who are going to buy Sublime Text or BBEdit ?
That’s the way M$ and other tech corps take control of your and my live. By giving everything away for free. You will be unpleasantly surprised when you receive the bill for all these “free” goodies.
This worst case scenario has more or less played out with the competent Espresso and innovative TextMate just disappearing. As an Electron app, VSC is a nightmare in terms of resource usage.
In the end, to build mechanical memory/efficiency and to save money a programmer should carefully choose one or two major text editors and use and maintain that one. As a programmer choose carefully: you don’t want your main work tool to receive too infrequent updates, or include long term bugs. It’s very important your main text editor to adapt and stay compatible.
Still standing Editors over Time
The list of still standing major editors is even shorter:
- Sublime Text
- maybe Coda/Nova (infrequent expensive updates worry me here, long term support of Tranmit mitigates my concern)
If we shorten this list to only include Mac native interface, the list is even shorter:
Most coders on Mac OS X who do not work cross-platform should choose a Mac native editor as it will use a lot less memory, run faster and integrate better into the OS. Coders who split their time between OS have a much tougher decision on their hands: enjoy a single interface and set of functionality cross-platform or pick best of breed tools for each of their main platforms.
I’d probably choose best of breed for both platforms but there’s a strong argument for a single tool which runs everywhere. In which case, Sublime Text would be my choice. VSC would take second-place. Atom as a Github product and a good looking editor would normally be my first choice, but Microsoft and EOL’d Atom. The very powerful Windows code editor UltraEdit is cross-platform but is not a full-fledged MacOS citizen.
Comparing BBEdit, Nova, Sublime Edit
BBEdit has always had speed going for it. I’ve been able to open 3 MB files without a hitch and larger ones on occasion. Not all editors are capable of handling large files. skEdit (personal testing) and Nova cannot.
Nova is a pretty editor, as far as such things go, and with files of relatively reasonable size it’s fast. With stupid huge files its performance drops noticeably, though. This isn’t just the ridiculous 109MB, nearly 450,000-line SQL file I threw at it once, it’s also with a merely 2MB, 50,000-line SQL file, and Nova’s offer to turn off syntax highlighting in both files didn’t help it much. This may sound like a silly test, but in my day job I’m occasionally stuck editing an 80,000-line JSON file by hand (don’t ask). This is something BBEdit and VS Code can do without complaint. Panic wrote their own text editing engine for Nova, which is brave, but it needs more tuning for pathological cases like these. They may not come up often, but almost every programmer has one stupid huge file to deal with.
The BBEdit 14 update is $40 for me and it’s a one time fee, while Panic’s Nova is $99 + $49/year. Not attractive at all. We’re in more than Sublime Text territory.
I also have a moderately deep knowledge of BBEdit and what a power user can do with it. With Nova, Sublime Text or VSC I’d have to start over. It’s great that BBEdit can now use external code libraries – this is something which Microsoft and VSC have gotten right for a change. Who knows for how long. But if VSC changes the library format (the Extinguish part of Embrace and Extend), the open source community will just clone them off: BBEdit and other clients will continue to run.
Git integration in Nova is attractive. Thank heavens Bare Bones finally got there with BBEdit 11 (which I already own).
I loathe the way VSC looks on Mac and Sublime Text just doesn’t feel much like a Mac app. It feels more like developing a website itself with its json preference files. Nothing wrong with having json available to edit preferences, but it’s just lazy leaving all the preferences in json files rather than in carefully constructed preference windows which highlight the important preferences and demote the less important ones and flag the dangerous ones (leave those for the direct json editing).
Atom was acquired by Microsoft which has a competing product and has decided to EOL Atom, slowly strangling it with compatibility and performance issues. Not worth getting involved it.
iindigo’s evaluation makes sense to me:
I wasn’t impressed. Atom is a web application (HTML, CSS, JS) masquerading as a desktop application and true to apps of that nature, it’s heavy, slow, and resource hungry compared to its proper native counterparts. File sizes do a great job at highlighting this difference. Two of the most popular Mac programming text editors, TextMate 2 and Sublime Text 3, weigh in at 32MB and 28MB respectively while Atom is an unnecessarily hefty 219MB — a full 7x more bulk. To find a native editor that heavy, one has to download a full-blown IDE with everything but the kitchen sink like Coda. RAM consumption stats tell the same story: Atom gobbles up an unreasonable 225MB of RAM after a cold launch while TextMate and Sublime only take up 20MB-35MB of RAM doing the same. Of course, the other big side effect of being a web app is that it doesn’t feel native. UI elements are all custom-styled, often behave differently than they do in the rest of the system, and just aren’t as responsive. All in all, Atom is a disappointment, particularly coming from the same company that made the fully native and very nice Github for Mac git client. It would’ve been amazing had it been written with proper desktop technologies like C++ and Qt5, but its Chromium-based core kills it.
TextMate is free and amazing and open-source. Thousands paid $50 or more for TextMate. TextMate has also stood still since 2017. New features are not on their way.
BBEdit is easier to use and more obvious. R. Owen uses both Sublime Text and BBEdit and in 2018 summarised the differences cogently:
A few important ST features that BBEdit lacks:
- Live linting, e.g. run flake8 as you edit. It is very dismaying that BBEdit still doesn’t offer this as it is a crucial tool.
- Lookup symbols, e.g. to to see where a function or constant is defined.
- A robust set of plugins, including excellent git integration and clang-format.
I have found two things I prefer in BBEdit:
- Side-by-side diff is built in and very well implemented in BBEdit. ST has some good plugins for this, but I prefer BBEdit for this task.
- Splitting a view is simpler in BBEdit than in Sublime Text.
- PHP Validation Applescript
- PHP Lint
- PHP Unit
- JSON validation in BBEdit
- JS Lint Script
- JS beautifier / another JS beautifier
BBEdit is still rolling while TextMate has shut down/gone open source, CSSEDit/Espressor just disappeared (still use CSSEdit as it has the tastiest CSS syntax highlighting straight out of the box), Transmit’s Coda died and became Nova, Atom has withered on the Microsoft vine.
The still standing major editors with Git and FTP features include:
- Sublime Text
- Visual Studio Code
It’s outrageous that Microsoft have been allowed to label a code editor to Code. It’s an attempt to be unclear, brand a word and cool. No one, not Apple, not Microsoft should be allowed to brand generic words which apply directly to the sector to which the multinational giant is targeting. I.e. Apple Computers is fine, as Apple and computers don’t normally go together. Photos as a photo editing app on the other hand is absolutely not okay.
Ranea summarises well some of the strengths of BBEdit (including v14 features) compared to Sublime and VSC:
- BBEdit keeps a history of find/replace searches, and lets you save complex grep patterns with names for easy recall. And you have to see its “Multi-File Find” feature to fully appreciate how great it is.
- You can build a “text factory” of multiple actions; it’s like having a simple version of Shortcuts or Automator built right into the editor. You can save them as text filters or use them for batch processing. I have a simple-minded Markdown to BBCode conversion “script” I created this way without writing a line of actual shell script.
- You can “process” lines in a file, searching for duplicates or lines that match specific patterns (including regular expressions), and delete those lines, copy them to the clipboard, or create a new document with them.
- BBEdit can operate on “columns” of tab-separated values, cutting, copying, pasting, and even rearranging them.
- While Git support is mostly (ahem) bare bones, it’s fantastic with file-specific commands like diffs and revision history.
- The “Pattern Playground” is outstanding for constructing complicated regular expressions that work with your documents.
The safest Mac native choice:
BBEdit. 29 years of history, powerful, looking better than it has since OS X launched, intuitive. New features like linting coming on board. Great integrated diff function unmatched for simplicity as with multifile string search. Permanent license, very reasonable upgrade policy.
Nova. For those who like to live dangerously and who are aesthetically driven. The best looking of all the Mac code editors. Doesn’t handle large files as well as BBEdit. Very expensive maintenance policy at $49/year.
Sublime Text. Geek paradise and an ideal home for cross-platform coders. A programmer can almost build his own editor from scratch, one json file at a time. But high maintenance and doesn’t feel quite native even if it’s much closer to native than VSC. Reasonable pricing for individuals at $99 with three years of updates for all platforms. Much worse for businesses at $49/seat/year plus the hassle of maintaining the subscription and adjusting it depending on seats.
VSC. For cross-platform coders with no budget who enjoy having Microsoft spy on them and helping Microsoft undercut the code editor market. If a programmer really doesn’t get on with Sublime Text, VSC is the only other viable cross-platform option. TextMate is there for the Mac only programmer without a budget.
What’s my favourite code editor? Two answers. I’m usually working with CSS and for CSS it’s still CSSEdit. Otherwise, I’m usually working with Markdown and I’m writing this in iAWriter. I have the option to write in BBEdit with Marked2 preview but there’s nothing more wonderful than a dedicated tool built right. If I have major text manipulation to do, of course, I open the documents right away in BBEdit.
If you are a writer and are looking for an editor, there’s no better way to write than in Markdown and with the Swiss iAWriter. iAWriter has improved itself on word-of-mouth with no paid upgrades or subscriptions for ten years. Run, don’t walk to buy iAWriter.1
The only downside with iAWriter is that one must buy from Apple’s app store which means updates and licensing is dependent on the app store (which has been come quite unreliable since Mojave). Hopefully if this trend continues iAWriter will let us migrate our licenses to an independent licensing system. ↩
Alec has been helping businesses succeed online since 2000. Alec is an SEM expert with a background in advertising, as a former Head of Television for Grey Moscow and Senior Television Producer for Bates, Saatchi and Saatchi Russia.