Hacker News new | ask | show | jobs
by grinich 3738 days ago
The most fantastic thing about Atom to me has been the underlying technology-- specifically Electron, which is a novel combination of Chromium and NodeJS.

We at Nylas built an email app that originally was a fork of Atom, and now runs on Electron (which is evolving way faster). http://github.com/nylas/n1

I honestly think that Electron is the future of desktop software, and it all started with Atom. Hats off to those folks for continuing to invest in this project!

(also, zcbenz is a complete badass who doesn't get enough credit)

3 comments

> I honestly think that Electron is the future of desktop software

I like your software but this statement makes me sad -- it's really not a great situation where a desktop software is written in a language that's not exactly great (to say the least); it runs on the top of countless abstraction layers that make the product comparatively very slow. I have 20 CPU cores and 64G RAM, and Slack starts much slower (!) than MS Word 2016.

Thanks for the kind words!

If there's one thing consistent about software, it's that things always get faster. People had a similar sentiment about Java (sloowwwwww), and yet now the JVM is pretty amazing and powers a huge part of the world.

We know N1 isn't as fast as something written in C++, but we're not super worried about it because this is likely the slowest that N1 will ever be-- and yet lots of people are still using it every day! V8 and CPUs will continue to get faster and faster each year, and we'll also improve the codebase.

Our main objective was to make N1 easy to extend by today's developers. And (whether you agree with it philosophically or not) JavaScript is leading the way for the future of programming. So it's the right choice to use in this regard.

For reference, check out the NPM growth: http://imgur.com/R8UjESZ

(Also, I think React might be the biggest UI programming paradigm shift in like 15 years. Not specific to JavaScript, but we're also betting a huge amount around that vs. traditional MVC architecture.)

As an aside, I don't believe the Slack app is taking full advantage of ElectronJS. It's essentially still just a wrapped webapp. (They run the same version in the browser.)

Full ElectronJS apps can use something called ASAR which effectively creates a super efficient bundle for loading application code at launch. More here: https://github.com/atom/electron/blob/master/docs/tutorial/a...

> Full ElectronJS apps can use something called ASAR

That was a major reason Atom went from unbearably slow to start to reasonable. I wonder if the Atom github people pushed the Electron github people to do this.

WebAssembly and and Mozilla's Servo are innovations that will likely change that perception. Servo might even make web the preferred platform for performance.
As much as I'd love to use something like Nylas, the deal-breaker for me was its sync engine. Having a third party store and index all of my emails just isn't an option for me, and I can't justify jumping through hoops to host it myself when I can just use a client that doesn't require any server-side component.
That's fine-- I totally understand. It's not built for everyone. Cloud Sync is needed for features like Snoozing and Send Later. (And more things upcoming...)
Have you guys thought about maybe bundling a local sync engine with the electron app or streamlining the setup and integration process for a local sync engine some other way (a pull-able Docker container comes to mind)? That would definitely make Nylas a lot more attractive for privacy conscious users like myself.
What specifically have you had issues with? We haven't seen great proven cross-platform support for docker images, which is why we're still using Vagrant+Virtualbox. From the folks we've talked with, it seems to be a pretty painless process. (We do this for development all the time.)

Obviously features like Snooze and Send Later won't work, but the idea here is you can build the entire stack or deploy it to your own VPS at any time.

[ot] N1 is great, too bad I can't recommend to pretty much anybody because there's no translation support.

The bug is open since October 2015, has 50+ comments and no feedback from devs. https://github.com/nylas/N1/issues/24

IIRC Atom doesn't have translation support either, I wonder if it has something to do with Electron.

It's not Electron, it's just a focus issue for us right now. Shipping things like swipe-to-archive and open tracking are more important than localizing the interface.

It's definitely on our roadmap though! (For people who want to help... https://jobs.lever.co/nylas/3c688d62-4985-4224-b59f-ab0a4f48... ;)