Nova by Panic
nova.app
nova.app
My main complaints at the time were a confusing extensions ecosystem; difficulty rolling your own; and the sense that (as with Coda) "programmer" means a person hand-coding web sites with HTML+CSS and maybe Javascript or PHP. Seemed like they weren't trying to convince anybody who already used VSCode et al.
That said, I have had some difficulty adjusting to Sublime's way of doing things, and VS never felt right to me, so maybe I'm just picky.
In any case I am happy to see another opinionated text editor in the mix!
[Edit: And right out of the box now, no support for Go files, not even syntax coloring, and it thinks go.mod is a media file and won't display its text. Searching extensions for "go" gets me three different extensions and no way to tell which is better/more-popular; and also shows me six totally unrelated extensions, three of which have "go" in their titles e.g. "django" and three of which do not. So... still not really shooting for the programmer market, but I will keep trying!]
[Edit2: Similar results for Rust. And extensions have to be written in Javascript, and the boilerplate is all for published extensions which maybe makes sense, but I really want an easy way to pipe ($BUFFER|$CLIPBOARD) to an arbitrary program and put the result in ($BUFFER|CLIPBOARD) with a pop-up on failure, and I find it really weird that there is so much shell integration but not that. OK shutting up now, playing with editor...]
I just had a similar experience, no Go or Swift (ok understandable maybe) support out of the box. But I paid for it it anyway since I like what they’re going for and have admired the company for a long time.
Easy to find means if I open a .go file or relevant directory, the app should ask me if I want to install support for Go files. And it should have One Approved Extension, the others should be available on request (as all are now).
If there's no good extension for a common language, I think it's on Panic to convince the community to make one, or make one themselves. One way of convincing the community would be to make it easy! (A quick look at the comments in the extension READMEs strongly implies Panic has not made it easy. The updates to the Go extensions are ~ 6 months old.)
So what's a common language? You could probably use GitHub to figure that out. If Go doesn't qualify then OK, I'll go back to my cave, but I think baking in CoffeeScript instead is pretty arbitrary.
I'm sure people use Go for back ends, but it's more for systems right?
That’s the impression I get as well, but it’s a shame since MacBooks are super popular among back-end engineers.
I would even speculate that by now, Mac-centric web devs are handily outnumbered by non-web devs (plus web devs doing backend stuff in Go, Rust, whatever).
I get that maybe Panic just doesn’t see that as their natural market, but I really love the polish of their apps and do wish Nova (or back in the day, Coda) met my needs.
Coda's demographic is really just wordpress developers who know just enough php to be dangerous.
1: https://github.com/GarrettAlbright/Luacheck.novaextension/bl...
2: https://docs.nova.app/api-reference/workspace/#showinformati...
Are they? They have a long history of getting bored with projects and cancelling them or letting them languish. Not the best assurance for a long term commitment like an editor...
That at some point they have to sunset tools that are not used by people any more (Like the Newsnet client, from what I remember) makes sense to me. It doesn't feel like they are just abandoning projects because there's something new and shiny to work on.
More than 10 years i'm using them both.
It's not an "Our Incredible Journey" blog post light on details but an actual reasoning from a business perspective. Including them sharing the actual tiny revenue they made with the product. As a non VC funded business they have to stay sustainable and healthy and I'm supporting that.
They even offered a refund and published an update so it can run on as many devices as possible for as long as possible.
Apart from all of that, it's an app that was sold for 9.99 Dollar so if you got a few years of usage out of that it seems fair in any case.
For such a cheap purchase, that’s better than I’ve had with certain expensive enterprise software vendors who shall remain nameless.
Yes. It doesn't make sense for someone investing in an editor/IDE though...
I love the idea of a native macOS IDE, but it seems like this will never be something I can actually use productively or ever recommend to anyone. Would happy to be proven wrong.
In the end, though... I switched back to VS Code. Native apps like this are much faster than such things, but I had too many use cases for the plugins.
Kind of the same experience as Sublime Text. It's _really fast_, but I just rely too much on plugins when the experience requires something more than vim.
Nova is pretty, and I'm impressed that they've added a Vim mode, although I haven't been able to really give it a try (my year expired before that was added!). But for me, it wasn't just a lack of plugins, it was that functionality I wanted wasn't there and the functionality that was front and center, like integrated Transmit and Terminal tabs, just wasn't that important to me.
I have very specific and weird needs. For example, I need syntax highlighting for LaTeX, but in a non-mathematic-but-programmatic-control-of-layout way.
VS Code supports that, oddly enough. No other text editor does.
A shame, as they claimed to fix some of this in the newer versions... but of course my 30 day trial has expired and their model means I can't try out the fixes to see if it's actually worth paying for now.
I really, really wanted to use Nova, would have paid full price no problem, but for some reason the one main Python plugin was extremely flaky for me. Linter highlighting would sometimes work and sometimes not, unaffected by the plugin settings, and the primary Python plugin I was using was based on somebody’s github repro that hadn’t been touched in a year or two.
I spent a bunch of time but couldn’t figure it out. So I ended up going to VS Code. It works well. The Python plugins work well. It’s a pain in the behind to configure, and it’s not the prettiest thing to look at. But I can grind out working code fast, partially because those plugins catch problems almost as fast as I can type them.
I would try Nova again in a heartbeat if the Python support improves.
But I actually recently wrote a todo to try out PyCharm Pro. I haven't decided if that's pointless yak shaving since VSC works pretty well for me. But I would like to configure VSC more to make my workflow faster. And my guess is PyCharm Pro is probably better out of the box vs having to spend time configuring VSC settings (so many settings...) and plugins.
Maybe they're really targeting a different audience.
Once you've got it set up and then committed your process to muscle memory, the speed makes the software recede and your work the focus.
(_The Pragmatic Programmer_, a book I highly recommend, advised me to "use a single editor well" and that has really made a huge difference in my career. I don't look for new tools until the current ones go unsupported or perform poorly—looking at you jEdit and TextMate—and my work flows are ingrained.)
Last I checked it literally embeds a JS engine with a custom API for extensions. Unless something has changed since I last looked... but if I glance at this URL (scroll down to "Providing a TreeView") it doesn't appear to have:
https://docs.nova.app/extensions/sidebars/#defining-a-sideba...
There is simply no reason it has to be different from the VSCode API; you can set up JavaScriptCore to hook into whatever native components you need. VSCode owns the market, full stop. This should mimic the API as much as possible to enable wider extension porting.
Hell, you could cover even a fraction of the VSCode API and that would still be more useful than the current Nova extensions API.
- committing to implementing every new documented Code API function as quickly, completely, and transparently as possible, because if you don't, extensions will break;
- resolving mismatches between how Electron apps do things and how AppKit apps do things, which may be easier said than done;
- possibly choosing not to support functionality in extensions that Code doesn't have;
- putting control of your flagship product in someone else's hands.
So I'm not really surprised Panic hasn't done that. If there were a way to create a basic converter that takes a Code extension as input and spits out a likely-needs-work Nova extension, kind of like there's a converter for TextMate syntax definition files to Code's format, that would be great, although that would almost certainly be easier said than done.
The fact of the matter is that VSCode's market share is massive, and expecting developers to port extensions solely because "it's a native macOS app" is not really a good pitch in 2020-2022. I would rather Panic suck it up and do the work to interop with the existing (massive) ecosystem so that those of us who like to run native apps can do so without it being a step down on just about anything else.
Something like this needs ecosystem buy in, and as far as I can tell right now, it doesn't have it. I wish it did.
Because the editor works very differently, it's unlikely they'd ever manage to make the APIs completely compatible, and because of that it'd unlikely that you'd have much porting between the editors anyhow.
There are many editors out there with incompatible plugin APIs (sublime, vim, emacs, vs code, fleet etc.). There is room for Nova to do their own thing, and do their own thing better without catering to the crowd of another editor.
No, there's really not. The marketshare for a native-macOS editor is comparatively small, and they would be better served just making it work and interop well.
There is nothing special about their extensions API and there is no glory in re-forging this path.
Got a link for that? I was looking for a TextMate grammar to Monarch converter and couldn’t find anything that works
In my opinion, Nova (through its lack) shows the true power of network effects, even in code editors, because even though VSCode is an inferior product in many respects, like speed and resource usage, it still wins due to its sheer popularity and extensibility. In a way, it is the story of JavaScript itself: a bad language that only works due to its popularity; as one uses JS, one continues to use JS as others do too, creating a virtuous cycle.
The good things about python have nothing to do with the language, it's the ecosystem and standard library (which is still not as good as, say, java's). So I'm not quite sure why people say javascript THE LANGUAGE is bad, but python the language is "better".
Until you’re the unfortunate person trying to debug an API deployment where the team behind the API decided to use ‘much more efficient protobuffs’ making them entirely unreadable and impossible to troubleshoot. Modern processors and networks are fast enough to allow us to spend a few extra bytes making protocols easy to work with as well as ‘efficient’, and I’d argue that at scale, those ‘efficient’ protocols waste probably 100x more developer time troubleshooting than their text based counterparts. YMMV.
I can't imagine this isnt possible with protobuf and the right debugging tools (though it's not my area of expertise)
Personally I'd rather stick with the simpler protocol until someone runs the numbers and finds something more efficient would improve performance or save money by a significant enough amount.
This argument must be the ultimate defense in code review. The thing is, we have the field of theoretical computer science and things like big O so that we can reason about code without having to do benchmarks about every little thing, because that's impossible in practice.
Regarding protocols, I'd argue that the most important thing for them is to be efficient, at least when IO is still the biggest bottleneck of computing. The other comment already points out debug being a tooling problem.
I’ll never understand why we’d make the trade off of making crazy inefficient human readable protocols for talking between computers instead of learning wire shark.
In another comment you said there should be numbers to back this sort of claim
Anyway, the problem with our software stack is that there are so many layers, so if we get performance wrong at every one of them, it'll compound terribly at the top. We should have some sort of strategy to decide priorities at each layers, say, lower layers like OS, container, programming language, network protocols, should be about performance, then we can be wasteful at higher layers, the domain code, if that gives us better abstractions and maintainability.
I don’t know about emacs, as I’ve never used it from either side
This is a profound observation that gets to the heart of the matter with both VSCode and Javascript, both of which I resisted as long as humanly possible. What gives them the greatest utility is that they're immensely popular, in spite of not being the best tool for the job. I came to VS from 10+ years in Eclipse, and to Javascript as a main cross-platform client language only with the demise of Air/Flash.
But the "network effects" or, let's say, the value of the community-driven ecosystem, is undeniable. In 2008 if you wanted to build 3D games for web, you pretty much had to use Flash - and there was a sizable community maintaining libraries. The environment was imperfect for its own reasons, although certainly no worse than cross-platform JS is right now.
Maybe another way to state it is: If you get enough good coders around even the junkiest tooling, they'll make good code.
But I can't think of any other industry that really works this way, that gathers around a bad standard like buffalo around a waterhole in the desert. I think it's a major flaw in software development in the 2010s-2020s that in order to dance between these walled gardens, independent developers so often have to use tooling that wasn't made for the job. Flash/Air was a breach in all their walls, and that was a reason it had to be made an example out of.
In other words, feeling the pain of JS over 20 years led to the creation of WASM that might not have been as needed had we had good languages on the web present.
https://www.destroyallsoftware.com/talks/the-birth-and-death...
> In other words, feeling the pain of JS over 20 years led to the creation of WASM that might not have been as needed had we had good languages on the web present.
honestly, that sounds like retroactive justification... bytecodes where a thing since way before js showed up, and afaik there was no technical reason it couldn't have been like that from the beginningThis is a rote complaint but how often do you really notice it? Even on my ancient spare 2010 MacBook Air, VSC is responsive and it uses less RAM than other apps like Teams or Skype, or simply loading Gmail in Chrome. Yes, vim uses less RAM but it also has like 5% of the functionality.
Is it possible that this is specific to particular plugins or languages? I mostly use Python, JavaScript, Terraform, and Rust but I did notice that Java is, as always, a lot more demanding.
Well, you specifically picked the most heavyweight experiences. The comparison was obviously against native text editors.
Opening it feels like it takes forever (5-10s) compared to something like Sublime Text (<1s) and when there are a lot of launches throughout the day, that adds up.
It is well optimized for what it is though, so the tradeoff of performance for functionality generally isn't a question.
You could argue it's highly situational, but IMO it's nice to always be able to see how complicated your codebase is getting, tech debt is no joke
Overall I would say that trying to notice and measure the effect isn't productive. It's just a bit of extra context I realized in retrospect.
I didn't try this one (I'm not on a mac), but I fully expect it to do that too. All of them do. (I'll be glad if somebody tells me it doesn't.)
Like? I have an 80 column width by default. To not let my code run the entire length of screen for obvious reasons. Also, it is code smell IMHO if you have to write that much code in a single line.
> I know Sublime introduced it but what does it do exactly? Why is everyone copying it? It just shows you the shapes of blocks of texts of a long file from ten meters away
Visual cues. I can immediately know if my linter finds something wrong. It highlights it in red. Without a minimap I'll have to scroll (or if you are using vim you would still need to ctrl+D till you find the problematic line).
If I am editing a Git repo, I can easily make out the additions/removals in the file. Additions in green and removals in red.
> VS Code has a breadcrumb IN ADDITION TO the minimap, possibly because Microsoft realizes its gimmick nature
I sometimes hide my Sidebar in vscode while working in Zen mode. I can then access the directory structure through the breadcrumbs. Especially useful when I don't remember the name of the file ahead of time to use it in command palette search.
Clicking on the filename in the breadcrumb gives me access to all the symbols defined within the file. Quick way to navigate between declared top-level variables/functions.
> Like? I have an 80 column width by default. To not let my code run the entire length of the screen for obvious reasons. Also, it is code smell IMHO if you have to write that much of code in a single line.
What about a split view? I'd be far less productive if my screen wouldn't have space for 4 split view's for >> 80 columns in my editor + a small terminal split by terminal multiplexer.
> Visual cues. I can immediately know if my linter finds something wrong.
Hmm, while there are a few things like renames of variables/functions/... or (type) signature changes for that to happen outside the view one is currently editing in, it's only solving part of the problem — as other files can have those issues too and require changes, so one needs to run a check/lint test or build anyway.
This includes using split views. Of course I have to mention that I use Mac as my primary development machine (which comes with 5K retina display). So already have plenty of real estate. It might be an issue on laptops. But I haven't tried it to give feedback on that. I just gave my personal anecdote.
> so one needs to run a check/lint test or build anyway
If your entire team is already using lint from the start you wouldn't have to worry about it. Even if not, you would have typically run the linter when you cloned the repo. The build process should have lint as a pre-step anyways. So the chances of you having non linted files elsewhere is minimal. And when you rename functions/variables you can rename as symbol, which will change it in all files that reference it. If you have the right workflow setup you wouldn't have to worry about other files being affected.
This I would consider as refactoring. It won't be just making normal edits anymore. Yes, when it comes to refactoring everything goes haywire. But that is a conscious decision isn't it? Then you'll for sure be running linter/tests anyways. So yes, in such cases what you said is valid. However, having a mini-map won't be a hindrance here. At least I don't see how it could be. It might be useless for this case. That I agree.
There are many useful things your editor can render on screen other than code. If you've used any IDE at all, you wouldn't be saying this. File browsers, syntax tree index, class hierarchies etc. Let you imagination run wild.
> Visual cues. I can immediately know if my linter finds something wrong. It highlights it in red. Without a minimap I'll have to scroll.
Again, lack of imagination here. You only need a red icon on a status bar or something to know if your linter has found something wrong, and a counter next to it to tell you how many. If you want to go to an error, you jump from the keyboard, not use your mouse to scroll.
> or if you are using vim you would still need to ctrl+D till you find the problematic line
As an Emacs user who's seen plenty of fancy vim configs of my colleagues, I suspect you didn't even bother configuring your vim at all.
> If I am editing a Git repo, I can easily make out the additions/removals in the file. Additions in green and removals in red.
LOL. Any reasonable editor has a diff mode and allows you to zoom in and out with something like cmd +/-.
As to the breadcrumb, I wasn't saying breadcrumb was a gimmick, I was saying the minimap is a gimmick, therefore Microsoft has to introduce breadcrumb to aid navigation because the minimap just takes up space.
Which is already available in the VS Code Sidebar. You have everything you mention in VS Code already.
> Again, lack of imagination here. You only need a red icon on a status bar or something to know if your linter has found something wrong, and a counter next to it to tell you how many. If you want to go to an error, you jump from the keyboard, not use your mouse to scroll.
Which I already get in VS Code. I am talking about advantages I get with mini map. I don't want to use my keyboard or the mouse to know where the problem is (if any). I can get 10000 ft view of my entire code in the mini map without having to touch my keyboard or mouse. You won't get it if you haven't used an editor with mini map functionality for a period of time.
> As an Emacs user who's seen plenty of fancy vim configs of my colleagues, I suspect you didn't even bother configuring your vim at all.
I just gave you my take on VS Code features that I like.
I have configured Vim according to my liking. I use Vim within VSCode. But what use is that for this discussion? I don't want to take any extra steps to know the status of the file. I get that with the mini map. I don't want to touch the mouse or keyboard to know where the problem is. Or which part of the code I want to instantly navigate to.
> introduce breadcrumb to aid navigation
You literally have a file browser in VS Code in the sidebar. Apart from that you have a Command Palette that you can invoke to navigate between pages. Why would you need breadcrumb to aid navigation?
> LOL. Any reasonable editor has a diff mode and allows you to zoom in and out with something like cmd +/-.
I am talking about what I like about the minimap. All editors have diff mode including VSCode. I want to see it at a glance without having to touch my keyboard or mouse. Not use cmd +/- to zoom in and out. All these introduce extra steps that I just don't want to do.
This is exactly what I'm trying to understand. Why? What *actionable* information does it give you that you can't get from a red bar next to the scroll bar or the error total on the status bar?
> I don't want to touch the mouse or keyboard to know where the problem is. Or which part of the code I want to instantly navigate to.
Why do you need to know where? Just jump to the first one from the keyboard. When you are done fixing one, jump to the next one from the keyboard until all of them are fixed. It's not like you can compile or commit before all of them are fixed anyway, and it's not like you can jump to the errors just by looking at the minimap.
> You literally have a file browser in VS Code in the sidebar. Apart from that you have a Command Palette that you can invoke to navigate between pages. Why would you need breadcrumb to aid navigation?
Because that's the only mechanism that will take you to exactly where you want in the syntax tree hierarchy within the same file. It's not great as it only takes you up and down one path, but it's better than having to click on a screenful in the minimap and then having to scan the entire screenful to find the thing you are searching for because all you have is the shape, you aren't even sure what exactly it is.
> I want to see it at a glance without having to touch my keyboard or mouse.
Why? Your compiler or linter or precommit script won't let you proceed without having them fixed anyway. What does it matter where in relation to everything else a blurry red line is in the file? If there's any type checking in your tooling, typically one error is going to lead to dozens and often half of the file will be red. The most useful information is the root cause of a massive error, how does a minimap help you besides telling you you broke half of your code in a file?
> Because that's the only mechanism that will take you to exactly where you want in the syntax tree hierarchy within the same file
That's not true. The quickest way is to Cmd + R. It opens the Command Palette with the list of all symbols. You can either fuzzy search or navigate to the symbol.
You also have it in the Sidebar. Check the Outline tab you'll get the entire list of symbols used within the file. I don't use the Sidebar Outline anyways because I have the Command Palette for it to jump to symbol. I find using Command Palette for most editor based operations much faster. That includes file navigation, going to a symbol (which you call syntax tree hierarchy) and other stuff (like running builds, running tests etc).
> Why do you need to know where? Just jump to the first one from the keyboard
Because I have a rough idea of what parts of my code is where. When I encounter an error, I simply know it is in that particular region of the mini-map and just click that region. It is so much faster than any keybinding that you can think of.
Also, if the error is in multiple places but I know the source for the error is not at the top of the file but at the bottom of the file, I can go straight to that region. Not all errors have to start from the first error that is encountered.
This is not something that can be explained. This is acquired experience that you get only after you give the feature a shot for sometime.
> besides telling you you broke half of your code in a file?
If that is your consistent experience then you have far bigger problems than the editor. I would look at why your code is so tightly coupled that it leads to half the file showing you red lines. That is not normal. At least in my experience I haven't had to deal with squiggly lines that span half the file. At most 2-3 lines. Unless I am refactoring code (which is not considered fixing in technical sense).
> Your compiler or linter or precommit script won't let you proceed without having them fixed anyway
I have a linter running in realtime in VS Code which auto-formats my file and points to any problems in realtime. The linter precommit script is only for extra layer of security and for those devs who have their own custom configurations which don't allow for realtime linter. I hope you realize that every developer has his/her own unique setup to make life easier for themselves.
I've been programming professionally since 2004, have tried the minimap on various editors since Sublime invented it, never found it useful.
As to tightly coupled code, well, ha, I don't know of a compiler/linter that won't spew 100s of errors because of one syntax error in a commonly used type.
I realize it's a unique workflow, that's why I want to know more why it's prioritized in every editor these days as I don't think this uniqueness qualifies it to ever become mainstream, much less prioritized.
I agree with you here that you have to go one extra step to open the Outline panel in the left. I would rather the Outline panel be in the right. However, I don't use symbols that often. My workflow is a bit different. So I don't particularly miss this feature. When I really need to look up by symbol, I just use Cmd + R and just fuzzy search for it.
> In the case of breadcrumbs, clicking on it with the mouse is probably faster than searching.
Again, this is personal preference. I find Command Palette faster. You find Breadcrumbs faster. But I guess since you already use Emacs, it is fastest with Outline panel on the right.
> I realize it's a unique workflow, that's why I want to know more why it's prioritized in every editor these days as I don't think this uniqueness qualifies it to ever become mainstream, much less prioritized.
Maybe Telemetry data shows that the feature is used a lot. I don't know. Even if it was by default turned off, I would turn it back on because I just feel comfortable having it on the side. I use it subconsciously so whatever I gave you were mostly from what I could remember. It is only when it is off (or when I am using another editor), that I subconsciously try to reach for the mini-map and find it jarring when it is not there. I gave you few examples. But I am sure there are few more that I am missing out on.
I mean, I can see why it got popular when Sublime introduced it. It was a time when most webdevs were editing in massive HTML templates, SASS/CSS and ES5, where the traditional outline view would return too much noise or missing important targets. But we've quickly moved past that era, it doesn't seem to make sense anymore for new players to prioritize it now.
Not only the position in a source file is relevant for many languages, but if you're jumping to references/definitions blindly from another source, you can tell which source file it is and where you are in a single shot without looking at the rest.
That being said, I don't use the minimap. I did try to use it though to see what's the fuss around it. For me it takes too much horizontal space. I can have another vertical split pane instead of having minimaps showing. Heck, I'm not even using scrollbars.
Having an indicator of which function your cursor is currently inside provides very similar benefits to me. Not as immediate as a minimap I have to say, but more useful if you take the time to read it. This is a tradeoff people will argue on forever.
https://docs.nova.app/api-reference/language-client/#languag...
- Users’ familiarity with Coda as a reference point for its increased quality
- Statements about the hard work that’s gone into it
I say this as a huge Panic fan. It just felt ‘off’ to me, like the initial arguments for trying it are “look how hard we tried” and “it’s better than our old product”.
This may be an unfair assessment but it’s what stood out for me.
Having said all of this, I’ll still give it a go!
It's very promising though and if anyone can stick by a product it's Panic. Also their apps are classic Mac -- eye candy but with thought out UX.
I can't run it on my old, BUT STILL HIGHLY USABLE Macbook Pro 2011, OSX 10.13.6.
Aside of the security issues, I think it's asking a lot of a third party releasing a new product to ship with support for OSes not supported by their first-party manufacturer.
Nova 7.5 (edit: previous release series) runs just fine on my 10.14.6 Mac mini from 2012.
If you're looking for compatibility, stick with Windows and perhaps Linux.
> For the curious, Nova has built-in support for CoffeeScript, CSS, Diff, ERB, Haml, HTML, INI, JavaScript, JSON, JSX, Less, Lua, Markdown, Perl, PHP, Python, Ruby, Sass, SCSS, Smarty, SQL, TSX, TypeScript, XML, and YAML.
Youre supporting stuff like Diff and Haml, but not stuff like Go or Rust?
Coda's main competitors back in the day included tools like CSSEdit and Espresso, tools that helped those working on CSS by giving a nice front-end where you could click around in the UI and it'd insert the relevant properties for each style without you having to remember the syntax, and then updating a live preview. All of which seems rather quaint now we have pretty good developer tools in most browsers, but back in the mid-to-late 2000s, that was a big deal for a lot of web devs.
And for web developers who are writing predominantly HTML and CSS (possibly with some kind of template wrapping), a bit of JS, and a teeny bit of PHP/whatever on the backend, "it doesn't support Rust" etc. is not a major problem for them.
And here's the one of the three for Go which looks the most robust from cursory glance: https://github.com/GwynethLlewelyn/Go.novaextension
Both of these were found by searching the built-in extensions library.
"Can a native Mac code editor really be that much better? Find out."
I'm pretty happy with VS Code, which is free (and before that, Atom, etc). Why put the onus on me to figure out why a $99 editor could be better? Show me. Tell me.
I realize that they make an attempt to show/tell down the page, but a list of features that my current editor already has doesn't answer the original question in the affirmative.
Nova has something unique in both a product and market. The customer-base is willing to give it repeated shots before totally writing it off, and that's a blessing that the majority of companies don't get.
This looks great though, and the site is beautiful. Wish it was for me.
And this really doesn't get close to what Visual Studio Code's Remote editing functionality can do. The Remote mode operates a full remote VSC environment over SSH or as a docker container, and that means things like being able to do find and replace at the remote end in the editor, but also manage git at the remote end using the built-in source control etc., but also it means support for extensions and build tools that run remotely.
It is astonishing.
I too cannot imagine going back to an editor that cannot do this. It has been so useful in conjunction with vagrant boxes, with a bit of ssh_config magic I wrote here that manages an ssh_config include file that (amazingly) VSC will follow:
(warning: ugly)
https://github.com/bbenoist/vscode-vagrant/issues/18#issueco...
What does VSC do to mitigate that?
> And this really doesn't get close to what Visual Studio Code's Remote editing functionality can do. The Remote mode operates a full remote VSC environment over SSH or as a docker container, and that means things like being able to do find and replace at the remote end in the editor, but also manage git at the remote end using the built-in source control etc., but also it means support for extensions and build tools that run remotely.
Well, for search, there's still grep/git grep/ag (the built-in multi-file search might actually work over SSH; never tried it since I don't use it locally either), and for git, there's still, well, git. Nova (like Coda before it) is definitely more of an editor with some IDE-like enhancements than a full IDE, and I'm fine with that (in some ways Nova is even more focused since Coda had a built-in documentation reader and MySQL client and other tools I never used). Sometimes a nice butcher's knife is more useful than a Swiss Army tool.
Basically it's not running a block filesystem over SSH at all. You are editing your files remotely. So there is no risk of block corruption (which has bitten me on the arse before).
In fact, if you log in twice to the same remote host as the same user using VSC, your editors will magically update each other, live. This is the underpinning of a pair-programming aspect of remote VSC that MS intend to productise.
And if you log into that machine and edit a file that is open in VSC Remote using something like vi, VSC will know about the changes. Plus you can edit very large files remotely.
Yes, you obviously could/can do all of your git stuff in a terminal window -- that is how I used to work even with VSC before the Remote facility was added. After 30 years of using unix I'm fine with that if I have to do it.
But you lose all the editor integrations, because git cannot work effectively over networked filesystems. Whereas with VSC Remote, all of that stuff works exactly as if it was local. Including almost all extensions, which install into the remote. The normal file search does not work well over a slow SSH filesystem link, because to search all those files they have to be downloaded, whereas file search in Remote mode is done by the remote.
What I like about this is being able to work with pretty much any machine that can support VSCode, without having to worry about installing dev tools on that machine. I then also use Vagrant so I can separate concerns among my clients (I'm kind of working in a pre-Docker world in the wider sense in the job I do, still, so Vagrant boxes and my own configuration system are a good substitute). Or I could edit inside WSL2, while VSC itself runs on the Windows machine.
I think Nova looks very nice indeed, and as a Mac user and erstwhile Transmit mega-fan I wish them well, but I was never impressed with Coda, which was interactively slow in the editor -- in some situations painfully so. (The iPad version was an occasional lifesaver but I use GoCoEdit there now.)
But it's pretty inescapable that VSC Remote is its killer feature. It's just that unless you've used it, it's hard to explain. Now that I know how much it has helped me, I can't envisage going back if I have the choice not to.
https://www.jetbrains.com/fleet/
Previous discussion on Nova
https://news.ycombinator.com/item?id=24495330 (Sept 2020) [542 comments]
I totally get the performance argument. That’s why I will never use a Java-based IDE again. Like JetBrains IDEs are just painfully slow where every key stroke has this additional lag before something appears on screen. But thankfully VSCode isn’t like that. Whatever upside another editor might be offering wouldn’t make much of a difference for me.
I fear that the days of native productivity apps are over.
It's a huge investment to switch, and maybe I'm missing something but the only advantage atm seems to be "it's native". I don't have issues with speed, VSCode is plenty fast. Otherwise it's probably just struggling with plugins, and tbh I also don't particularly like how it looks.
That said, I hope they keep at it and give me a reason to switch!
Which is not impossible btw; I didn't like VSCode to start either (I was using Atom for a long time), but VSCode just won on support and that made me switch. It has come a long way, and I have come to like it after spending lots of time tweaking and theming everything.
I think Sublime HQ showed that making a multiplatform editor is not much more difficult, but hey...
The developers of Sublime have a different view on that:
Edit: that said, I’ve now realized it’s been at least three years since I tried Sublime, so this could be improved?
Sublime HQ is not a big company, if they can do it most companies can.
I am pretty sure they are enjoying the payoff of the early decision of going cross-platform and using their own custom built toolkit.
Also, you don't have to do everything from scratch, libraries like glfw are well maintained and can help a lot.
When will there be a Rego extension? (Rego is the OPA policy language)
Nova is a proper Mac app, which is one of the reasons I love it so much. No Electron to gobble up RAM and CPU needlessly and no slow multi-platform Java stuff with a wrong UI.
They seem to cater solely to amateur freelance. It's not a bad audience, I'm just not a part of it anymore.
Not entirely sure what you mean by "run a file," but under "Project Settings" ("Project" menu) you can set up scripts for building, running, and cleaning a project, and after you do so buttons to run those scripts appear in the toolbar.
TextMate is in comparison to Nova a little more "batteries included" in that sense - those extensions are already written and bundled within the app.
Without those tools in place, it's harder to jump ship to Nova.
Warp speed. What a clever call to action! Pretty genius.
The animation showing different color schemes is really slick too.
Kudos to whomever made this.
I can't recall a time that analytics have ever made a "fuss" for me, but that's not why I dislike them :(
I don't own a modern Mac, so I can't check the settings out myself, but that's the first thing I would look at after reading this in the features list. Looks great otherwise though, and it's cute how it rhymes with "Coda".
I'm not quite ready to replace my existing apps but it's getting there.
I do prefer native editors but will be sticking with Textmate 2. Slow but very consistent development over the past few years and open source.
I’m curious about which aspect you see as burning.
I really love sublime and it doesn't seem to be dead just yet. Sublime Text 4 was also a pretty great release.
In my case, if every thing that makes me productive would cost $100 a year, I would be broke.
Its also quite a bit more than BBEdit (which I've had since
If it was closer to BBEdit (which I've had since System 6 days), I'd consider switching the text editor - it looks nice.
For me, the price per year compared to products that I already have that have more functionality would be for something that I don't use as much.
It looks nice. If it was in the $25-$50/year, I'd be considering it for the situations where I open up VSCode instead of BBEdit for some functionality there... but the price for where it is in my toolchain doesn't replace something worth that much per year.
...Whereas the all product pack is $250 a year to use.
I would guess that if someone is willing to pay $100 for it (because the person likes the features that Nova has over their other tools), that it's likely that person will also want the new shiny features every year.
Also, I wouldn't be surprised that some plugins might take advantages of some new features.
Making the distinction between licensing and ownership is important either way.
I bought IntelliJ on Dec 19, 2012 in their end of the world clearance sale ( https://blog.jetbrains.com/blog/2012/12/20/jetbrains-end-of-... )
Though yes, the price if you're comparing a new purchase is $250/y.
Still, it's trying to get in the spot somewhere in the lineup of IntelliJ, BBEdit ($30 for an upgrade license, $50 for a new one, good for about 2-3 years with updates), and VSCode.
Nova is the artisanal indie Mac app at its best. But unless your use case is exactly what Nova was designed to do, it doesn’t quite meet your needs.
Like a lot of people have essentially said, I love the concept of Nova, but it didn’t quite measure up.
In the meanwhile, Neovim (my primary editor) has really taken off and while some of the GUIs for it are great, they don’t have the fit and finish and polish of something like Nova.
Now if someone were to create a Panic-like UI/UX for Neovim, I’d pay for that in a heartbeat.
Seriously, what is wrong with this comment? Genuinely curious.
Well, for one, it's telling another (highly successful) company how to run their business.
But also, I am a web developer who's been developing on Macs for all of my professional career and most of my hobbyist years before that. It's very unlikely I'll use anything else at least for the foreseeable future. I am grateful that there's at least one company that is making a decent Mac-native editor to help me do my work. Work done to port this to other platforms would be wasted on me, and at any rate cross-platform applications are great in theory, but in practice they, or at least their Mac ports, are very rarely well implemented and almost always stick out like a sore thumb when it comes to UX.
At any rate, if one really wants to shame companies that make single-platform software, there are a wealth of them doing that for Windows.
I wanted to love (Coda) it but it wasn't good enough for me to switch. This looks slick, but I work multi-platform so this while it looks great, if doesn't do linux I'm out. They even talk about the lack of cross platform in the copy. If I need speed I'll use Vim or emacs. For day to day I bought the JetBrains suite. For a pretty inovative company, it looks a lot like exiting editors.
I'll keep using Panic's transmit on Mac.. And hoping someone makes a sftp client as good on linux...
(personally, I kept waiting for such a vision to make sense and ended up running Sublime Text on a Linux tablet pc instead)