Hacker News new | ask | show | jobs
by snazz 2466 days ago
It’s possible that native graphical editors will increase in popularity at some point. There’s probably a niche of people who don’t like the potentially poor performance of Electron-based editors but don’t want to learn (or find that they dislike) terminal-based editors like Vim and Emacs. Who knows? Google Trends isn’t an accurate way to tell the popularity of programming languages either.
7 comments

Sublime Text, is native, isn't?

Sure, much of the API and all the plugin stuff is in Python, but the core is all native C++ AFAIK.

Its native but cross platform so many Mac purists don’t consider it as “native” as TextMate, which is built specifically for the Mac and doesn't compromise on standard Mac UI idioms.

Having said that, if they had known all the modern alternatives were going to be even less “native” amd run in a browser engine, they'd probably have been less nitpicky.

Eh, as a macOS user until recently, I found Sublime Text to be a very integrated application. Appearance and behavior was exactly as I'd expect from modern macOS applications.

It may not be heavy on archaic Mac features such as AppleScript integration, but I hope we can all agree to ignore those technologies.

TextMate just brings memories of the 10.4 Tiger days.

TextMate never had AppleScript integration, AFAIK.

Also, I'm not convinced we should ignore those "archaic" technologies, at least in the abstract. Applications can provide "dictionaries" of commands that, when implemented well, provide GUI applications with the kind of "snap together for amazing effect" you get with shell scripts and a host of well-written CLI tools. You arguably can't script the AppleScript-intensive BBEdit to the same level that you could, say, Emacs or Vim, but imagine the possibilities of a suite of apps from different makers that all had complete scripting dictionaries that could all be woven together with a deep system-wide scripting language.

I actually think it's a shame that AppleScript has been kicked to the curb. I don't think we have a "modern" replacement yet -- certainly not in the Apple ecosystem, and I'm not sure anywhere else. (Shortcuts on iOS is trying, but it's not on the Mac yet, and it gets pretty clunky if you start doing overly complicated automation bits with it.)

AppleScript is a great idea in how everything is scriptable.

Unfortunately, the language itself is a horrible abomination from the wild 1990s days of Mac OS... sorry, now macOS... and writing absolutely anything in it is painful.

I feel like Apple introduced Automator to overcome the pain of AppleScript, but it never really caught on (I don't even know if Automator is still on macOS.... yep it is, still with the cute Aquaesque icon)

Nowadays everything is Electron anyway and those are not that well AppleScript-able, but what to do, that's life

"AppleScript" can do JS now, but it's so clunky and badly documented that it's barely worth it.
I think AppleScript and Automator is/will be deprecated and the replacement would be Shortcuts present on iOS.

I think the main developer of AppleScript left Apple last year.

I think I read something on these lines on HN, I may be remembering things slightly wrong

The language itself is pretty bonkers, to be sure. I think the Amiga probably did this better with ARexx, simply because Rexx was much better for "friendly scripting language." I was going to say I'd made my peace with AppleScript, but it'd be more honest to say "I've gotten better at beating AppleScript into submission."

iOS Workflow/Shortcuts is what Automator should have been in a lot of ways. If Automator was superseded by a macOS version of Shortcuts, I'd actually love it, as long as it didn't lose any of Automator's functionality. (All they'd really need to do is add Shortcuts that run AppleScripts and shell scripts, I think, and be able to use automator actions exposed by applications.)

I love Applescript. Not necessarily the language but what you can do with it is great. It's one thing that's keeping me on Mac--there's no Windows equivalent, much less a Linux equivalent. You can kind of hack stuff with Autohotkey but that's not the same thing at all.
>Eh, as a macOS user until recently, I found Sublime Text to be a very integrated application. Appearance and behavior was exactly as I'd expect from modern macOS applications.

Compare the file browsers and find dialogs and the difference is night and day.

Yes! Sublime Text certainly has the functionality, but the search/replace UX is a big part of what keeps me going back to BBEdit for technical writing.
Right. I’m referring to 5 to 7 years ago when Sublime 2 was still young.

I personally liked ST2 but I know that some people held their nose.

TextMate is native and modern.
Depends on what you mean by "native". The core is compiled to a native binary. But it doesn't use macOS native text editing or UI idioms beyond the level of windows and menus. If you don't want to use TextMate, you might as well use Visual Studio Code instead, which is closer in spirit to the native Mac idioms and is easier to configure.
I'm not well versed on the specific implementation details of ST, but whatever the ST team does on macOS yields a result that is much closer to a native application than VSCode does through embedded Chromium. The difference in text rendering is particularly noticeable on a non-hidpi display.
Sublime Text is C++ expect for the plugins part. And they have put years to optimize it. It beats everything when it comes to performance, memory, and power consumption.

The only fight it can't win over VSCode is the extensions and ecosystem.

It’s also declining according to the chart, but you’re right that it’s both native and way more popular than TextMate.
I found that ggl trends graphs for tech topics usually decline over time and I attribute it to more non-technical crowd becoming netizens and thus technical topics will usually seem declining.
> It’s possible that native graphical editors will increase in popularity at some point

Panic seems prepared to take that bet, with their development of Nova [1], a replacement for Coda.

[1] https://www.panic.com/nova/

It better be way, way better than Sublime Text is the plan is to charge Panic prices. Their apps are best of breed but this is a crowded space and they’re competing with free.
I mean, Sublime costs Panic prices. It just doesn't care that much if you abuse its trial.

(Wait, maybe I'm misreading your comment. Are you trying to say "Sublime is free, so Nova will have to be way better to compete with Sublime" or "Sublime wasn't good enough to justify its price, so Nova will have to be way better than that to justify its price"?)

Not the parent poster, but I'd agree that Nova would have to be pretty close to revolutionary to even get me to consider it.

People invest a lot of time into their existing text editors. For many people (myself included) a potential replacement would have to be more than a little better, because otherwise it's not worth the somewhat large cost (in terms of time spent on setup+mastery) of switching.

Panic also has a tendency to create something, and then neglect it for ages, which includes their previous editor...

They just have too many products than what they can focus on...

They seem to be doing okay with Coda already?
I can't say I've ever met anyone who actually uses Coda. Does it appeal more to the Dreamweaver crowd? (No offence to anyone who uses Coda, or Dreamweaver, or anything else!)
FWIW, I met folks from Panic when Coda was first released, back when the Macworld Expo was a thing, and said -- honestly -- that the program struck me as "Dreamweaver without the suck." They joked it was a shame they couldn't use that as a tagline.

Coda is more like VS Code and Sublime Text in some ways, but it definitely has Dreamweaver's "one stop shop for big web sites" thing going. (BBEdit also has that to a large degree, despite being even more of a pure HTML/text editor.) The biggest liability Coda has is that it feels designed for a time when we were primarily building sites out of hand-coded HTML; like BBEdit, it really isn't optimized for working on MVC-based apps, whether server-side or front-end.

I used to use Coda and Coda 2 - I loved them, and they were true "Mac" apps. But I switched to Sublime and Vim for one reason alone - Cmd-T/Ctrl-P fuzzy file opener.

That one feature makes such a difference to me as I switch between big project trees that I can't do without it.

I'd happily pay Panic for Nova if they add that back in.

Coda does have "quick open," with ^Q, doesn't it?

(Ironically, as I get more deeply into Vim, I've found the :find and :buffer commands to be faster and just as useful as the CtrlP plugin, even if they're not quite as forgivingly fuzzy.)

^Q isn't as fuzzy as I'd like it - I do a lot of rails work and being able to type apvwpeopsho to match app/views/people/show.html.erb is really useful
Emacs is not by any stretch terminal-based. It can work in a terminal, but it also fully supports graphical environments. In fact, I dare say that most Emacs users use the graphical rather than the terminal version.

Example: https://www.youtube.com/watch?v=FWQB_9QcGI0

I would consider myself an Emacs user and I use the graphical version too. With the exception of the menu bar and toolbar, Emacs seems to be graphical but not a graphical user interface, if that makes sense. It is still primarily a text-based application controlled through the keyboard. There’s certainly nothing wrong with that approach, but my litmus test is if you lose a significant amount of functionality by using the terminal version instead of the graphical version, it’s graphical. I don’t really lose anything (and I don’t think most people do) when running emacs -nw.
Actually you lose quite a lot, which is of course everything that requires a graphical environment. Examples include smooth pixel-based scrolling (see my other reply below), extensive image support everywhere (e.g. EWW/elfeed/GNUS/Org) which includes animations, PDF viewing (native on macOS), true color / SRGB, SVG rendering, better font support including emojis on macOS and multiple frames.

Maybe you don't care about any of these but don't tell me you don't really lose anything.

No smooth scrolling is a deal breaker for a lot of people I'm guessing
It does have smooth scrolling. On macOS (Emacs mac port), it's the same inertia-based scrolling that every other system app is using and on Linux pixel-based smooth scrolling was added for Emacs 26.
Smooth scrolling equivalent of editors are bulk editing commands, keyboard macros and Elisp etc.
Yea, I try VSCode every so often, but I keep coming back to Vim in my terminal for the majority of my editing, but I actually have been using TextMate 2 (before release) as my GUI editor of choice. It’s simple, fast, and gets the job done.

If I wasn’t writing so much Python, I’d say I have a type.

A niche? Tons of people use non-Electron/web based graphical editors.

Visual Studio, Sublime Text, TextMate, BBEdit, SlickEdit, Notepad++, XCode, Vim, Emacs, heck, one could add IntelliJ into the mix...

> There’s probably a niche of people who don’t like the potentially poor performance of Electron-based editors

Haven't noticed any performance problems with VS Code, since I started using it everyday maybe 3 years ago. I switched from Intellij based editors to VS Code and before that I used vim for a decade.

600 MB memory usage with just one small text file open IS a performance problem imo (but I agree the app doesn't feel slow).

Especially on MACs were RAM is priced at a premium.

On Windows I developed a small program that sums the ram usage of my browsers and Electron apps I use. Between Firefox, Chromium and VSCode it's frequently around 4 GB of ram ! That's insane just to basically browse text.

You might like to follow OniVim2: https://onivim.io

It is native, cross platform, and not based on Electron. It also uses Vim as the core editing engine.

> It is native

It isn’t native in this context; As a sibling comment mentioned, OniVim2 uses revery[0], which uses it’s own widgets (not native ones) like flutter[1].

Quoting from my old comment[2]:

> We really should be trying to use the native GUI toolkit (or cross-platform native UI libraries like libui), not using Flutter-esque libraries that draws everything from scratch.

> Coherent UI is a very important point to users IMO. Users can assume that some special feature from App X will also work on App Y.

[0] https://github.com/revery-ui/revery

[1] https://github.com/revery-ui/revery/blob/master/README.md#de...

[2] https://news.ycombinator.com/item?id=20612195

I'll adopt whatever definition you want "native" to mean for the discussion - and under your definition of native, I would say it's pretty clear that users of text editors and developer tools don't care much at all about "native"(your definition of using the platform provided widgets). Just look at the market share of developer tools and IDEs/editors that don't use stock platform widgets. They are the ones that have become dominant. The problems that people have with the dominant players that have gained traction is the performance. You might be able to make the case that using stock widgets matters for non-developer tools (and I would only partially agree there), but for developer tools when people say they want "native" they are more likely to mean they want the performance that more often comes with natively compiled languages without a VM. It makes sense that developers would trade stock platform-widgets in exchange for an editor with greater cross platform reach because users of these tools benefit from network effects of these tools having wider reach. They want someone to have written the plugin/extension they're looking for.

Personally, I'm not looking to increase the ways that I'm locked into my current operating system, so all else equal, I'd favor an editor that runs everywhere.

FWIW personally with "native" i mean "native widgets too, where possible". It isn't always possible and i'm ok with that, but if your application uses a text edit area, a treebox for project files, a menu bar, a bunch of tabs and perhaps a toolbar (the "standard" IDE layout -AFAIK- introduced by MSVC4 back in the 90s and replicated by pretty much every IDE and most "programming" text editors since then) then every mainstream (and most niche) desktop OS outside of Linux/X11 has native widgets that provide 99% of the functionality (with that missing 1% being the text edit area itself and some minor UI stuff).

(and also FWIW, of all text editors personally i use Notepad++ on Windows and Geany on Linux - though as i really dislike Gtk3 and Geany switched to that, i'm looking for some alternative that uses a more snappy and lightweight toolkit - for now the Debian version i use is still on Gtk2 but that is just a matter of time to be replaced)

Under that definition of "native", it's pretty clear developers don't care very much about having "native" text editors/IDEs, wouldn't you agree? You can look at editor usage to see how they are voting.
Yeah most developers probably do not care, but it isn't like nobody cares (for example i do and i read comments like mine on HN often, so there are others who do too). At least when it comes to text editors there are options and you can use whatever you want regardless of what a complacent majority votes for :-P.

Though i also believe that the functionality some people want from their applications is only available on (what i see as) applications with inferior UIs and they'd rather get used to these UIs than not have the functionality - that is, their vote is for the functionality, not for the UI.

The other thing to consider is that developers spend up to ten hours a day in these editors. The biggest benefits of OS-coherent UI is that an application is quickly learnable for the first week. But when you use an editor for multiple years, all day long, many would trade that for increased customizability.
If not Electron, is it native or does it use some other web engine?
It uses the authors' own Revery [0] framework, based on ReasonML and GLFW. So there's Javascript in the stack, but no Chromium.

[0] https://github.com/revery-ui/revery

ReasonML does not imply JavaScript - it can compile natively using the OCaml native compilers - and that's exactly what Revery does. GLFW is also native/C.