
Atom 1.1 is out - antouank
http://blog.atom.io/2015/10/29/atom-1-1-is-out.html
======
sho_hn
I was reading that page until I hit their preview of 1.2 work, and clicking
through to the PR for CJK soft-wrap sort of confirmed all my fears about what
a bad idea it is to try and write a text editor against a browser engine.

Just from skimming it a bit, to handle Korean, their developer decided that
Korean characters have a special unique width from other writing systems and
gets that width from the cached bounding rect of a particular char as run
through the engine, and then that factors into their wrapping calculations. So
now they have a function called getKoreanCharWidth and are basically
implementing alphabet-specific text layout in a bad way on their side of the
fence. It doesn't even work particularly well, but most importantly it's
obviously not a generic solution, and duplicates what the browser engine
already does much better by using proper shaping and layout engines.

On the flip side, it sounds like Atom is a really cool project if you don't
really know what you're doing yet and want to learn from your mistakes.
Reinventing the wheel and noting it hobbles is a good way to acquire
experience, and it's not like the world relies on Atom. Perhaps it also
creates positive pressure to improve the APIs they're writing against, even
though it's sad that happens so indirectly then.

~~~
edvinbesic
The one thing that intrigued me about Atom is that it would actually run in
the browser, meaning somebody would create a version you could load up in
chrome/safari/firefox and connect to your github account etc. However I
haven't seen anything of the sort yet. Does this exist?

Locally, I've tried Atom every now and again and even with the new
improvements in 1.1, as soon as you get above a certain threshold in number of
lines it starts to slow down considerably (>= 250ms key-press, subjectively)
which would only be acceptable if I was running in the browser and even then
would be barely useable. Come to mind, the cloud9 ide feels 'snappier' that
Atom.

~~~
terda12
That's pretty much the #1 reason why most people still stick to sublime or
other text editors. Atom just can't handle large files. It's a shame really
because Atom actually looks great and works well as a point and click text
editor. But right now Sublime offers everything Atom offers but built on a C++
engine.

In Vim I can just open up a 21mb db dump, do some regex to delete unwanted
rows, and be done after a few seconds. Its amazing how vim can handle large
files. I cannot imagine doing the same in Atom.

~~~
snurk
> right now Sublime offers everything Atom offers but built on a C++ engine.

Oh come on now, that's really exagerating.

~~~
melling
Not really. C++ will be much faster than JavaScript. Your battery will last a
lot longer on your laptop too.

For many tasks JavaScript might be fast enough but as your project grows and
you want to fo more complicated tasks, you'll hit a wall with JavaScript.

------
acabal
Glad to hear they seem to have fixed the fuzzy finder. It was really terrible,
and I actually switched back to Sublime because its fuzzy finder is fantastic.
The relief in switching back to Sublime's finder was palpable, but I'll give
Atom 1.1 another shot.

It's interesting reading about the character measurement problem. That makes
me wonder if it's even worth building a text editor based on web technologies.
Sublime appears to be based on traditional tech, and a single developer has
built it into the cross-platform gold standard. Atom is built on experimental
DOM-based tech, and a team funded by a massive company is still jumping
through hoops to do things like measure the length of a line. Is whatever DOM
brings to the table worth it? I genuinely don't know.

~~~
seanwilson
> Atom is built on experimental DOM-based tech, and a team funded by a massive
> company is still jumping through hoops to do things like measure the length
> of a line. Is whatever DOM brings to the table worth it? I genuinely don't
> know.

I'm guessing the big win is Atom gets to take advantage of all the advances
being made in the active JavaScript, Node and WebKit communities. At the rate
things are going (e.g. JavaScript is much faster compared to a few years ago),
I'd imagine any problems they're facing now will get solved eventually.

~~~
tracker1
I'm not sure how much JS is actually faster in the past few years... I mean
there's been progress, but a lot of the progress in the earlier days of V8
aren'twhat we've seen lately. Probably 5+ years since huge leaps in JS
performance have happened... it's just modern computers are pretty damned fast
and have been for a while (on the desktop). Even CPU development has been more
about reducing power use, than increasing raw performance for a while.

Most of the advancements/bottlenecks lately in browser tech are in how the DOM
and reflows work in the browser in practice. JS has been pretty damned fast,
and probably one of the fastest scripted environments all around for some
time.

~~~
seanwilson
> Most of the advancements/bottlenecks lately in browser tech are in how the
> DOM and reflows work in the browser in practice. JS has been pretty damned
> fast, and probably one of the fastest scripted environments all around for
> some time.

That's what I mean though. As Atom, web frameworks, Chrome OS etc. put
pressure on the DOM to be fast, it will get fixed by some layer in the stack
eventually in the same way V8 vastly improved the speed of JavaScript as there
was pressure to make JavaScript faster.

------
rayiner
> Atom needs to measure runs of text on screen to absolutely position the
> cursor, selections, highlights, and overlay decorations such as the
> autocomplete suggestion box. Chrome does not have a text measurement API at
> this time, so we need to measure text from the DOM. The problem with
> measuring from the DOM is that it forces a reflow, and these measurement-
> triggered reflows were a major source of slowness in early versions of Atom.

It's incredible that the web works at all, considering the heroic feats
necessary to accomplish simple things native toolkits got right back in the
1980's.

~~~
tracker1
Measuring for the width of a text string isn't exactly a typical action in
browser based applications/pages. That said, I'm half surprised they didn't
resort to canvas controlled rendering to work around the issue, making the
editor itself a controlled canvas field.

------
usaphp
The biggest problem with Atom for me is Sublime Text, it just does everything
that Atom does and most important is that my battery lasts about 30% more with
SublimeText compared to Atom, never mind performance improvements I get with
Sublime Text. I am using latest retina macbook pro 15.

~~~
shortstuffsushi
How often are you running you Macbook in a non-charger-available environment
where you'd run your battery down enough to test this? Or have you
specifically disconnected to test this? (Not /s, actual questions)

~~~
usaphp
I am working outside (parks, beaches etc) while my little son and my wife play
or relax next to me, so it's pretty much every day, with a new macbook I
started to get stable 6-7 hours while using sublime text, but with Atom I am
only getting around 4 max, so the difference is pretty dramatic for me.

~~~
shortstuffsushi
That's an awful long time spent at the park for a kid ;)

But, fair enough.

------
tracker1
Man, I will have to give atom a try again... been using VS Code for a few
months now because when I last tried atom it was painfully slow... I really
like the inline markdown preview.

Between Atom, VS Code and others, it's really interesting to see all of these
tools built around the browser. It's funny because this is heavier than what
Mozilla envisioned with XUL apps sharing a runtime.

That said, at least writing apps against a desktop deployment, android, ios,
and web being able to reuse a lot of logic is a pretty nice feature to have...
Even if you don't like JS. It's a trade off, but kind of exciting just the
same.

~~~
spion
VS Code is amazing speed-wise, I couldn't believe its web-based at all.

~~~
WorldMaker
VS Code shares a lot of code with the IE11/Edge F12 Dev Tools and it's great
seeing the performance gains in both over the last couple years.

------
seanwilson
I've been using Atom for about 1 year now for mostly JavaScript and Python
programming. It's great! I've easy to be productive in and performance has
been fine for me on a MacBook. It has an active plugin community and I've
found plugins for everything I need so far.

------
sigzero
Have they made Atom portable yet? By portable, I mean I can unzip it anywhere
and it is self-contained (everything happens in its own directory structure)?

~~~
snacksthecat
Yes, if you download the zip rather than the installer you can do this:
[https://github.com/atom/atom/releases/tag/v1.1.0](https://github.com/atom/atom/releases/tag/v1.1.0)

------
jastanton
Has anyone tried Atom recently to determine if any of these performance boosts
have made enough difference to consider switching back?

~~~
d2xdy2
I just updated to Atom 1.1 on my early 2015 rMBP... still takes upward of 20
seconds to open up a project containing <5 markdown files and a `.git`
containing <10 commits.

Once its started, it lags quite a bit. I really _want_ to use Atom, but the
performance just kills it for me.

~~~
seanwilson
You should report this as a bug I think. I've used Atom on a similar machine
for large projects with large commit histories and it's never takes more than
a few seconds to open.

~~~
d2xdy2
I might do that, I just hate submitting bug reports without being able to
really say where the problem is sort of coming from.

------
LegNeato
If you were seeing Atom Helper take 100% cpu on launch or when viewing
packages (especially with Nuclide), it should be fixed. Please comment or file
a task if it is not!

~~~
kentor
Same here. Just keeps freezing and I'd have to force quit. Unusable.

------
code_sterling
Currently using atom and it's package system for a POC for a custom dumbed
down editor. I'm really surprised at how much I've managed to accomplish in a
week. If we go through with the project, it'll be a joy to work on.

That said, I tried editing the package initially using atom, and switched back
to vim on the second day. So it'll suit our purposes, but a terminal based
editor still has so many more advantages when hacking on code. (Though if
editing a vim plugin were this clean and easy, I'd be outpacing Tim Pope).

------
sonthonax
I can understand the advantage of a text editor written in the world's most
popular language. But why did they choose to render text using the DOM?

Couldn't they have at least separated a rendering backend?

------
drdaeman
I've tried that editor year or so ago, and was disappointed that it ever tried
to connect to the network to do all sort of stuff. Don't really remember any
details, I think there was some analytics, auto-updates etc etc.

I'm certain that it can all be disabled, but is there any ready to use recipe
to do so? I mean, I want all the non-network-related software I use to
literally never try to do anything network-related (besides loopback
connections, okay), except when explicitly told to do so.

~~~
fivesigma
I don't know why this is being downvoted.

Atom automatically downloads updates and also hits a google analytics URL
every time you open it. The latter can be prevented if you disable the metrics
package but you can't turn off update auto-download. This is unacceptable for
what essentially is a text editor.

~~~
hollerith
Unacceptable to you. I'm OK with it -- at least when (like Atom) the code that
does the data collecting is open source.

In fact, I'd go so far as to say that using the internet to collect data on
usage patterns is a sufficiently powerful technique that if web apps were the
only apps able to do it, web apps would probably eventually drive out native
apps (and I don't think I would like that).

~~~
ParanoidAct
> In fact, I'd go so far as to say that using the internet to collect data on
> usage patterns is a sufficiently powerful technique

 _No-one_ is saying that's a bad thing. What's bad is that it does this
automatically without your consent, so long before you can even disable it,
it's already leaking data.

What's even worse is that it also send potentially sensitive data that appear
in exceptions to bugsnag.com and AFAIK, there's no way to disable that by
disabling the metrics collection. In fact they don't seem to tell you about it
at all.

[https://github.com/atom/atom/issues/4966](https://github.com/atom/atom/issues/4966)

------
ryannevius
How are Atom's regex find/replace capabilities? I use Sublime Text's all of
the time...and can't imagine using a modern text / code editor without them.

~~~
tlrobinson
The big thing I miss is multi-line find/replace.

[https://discuss.atom.io/t/multi-line-find-and-
replace/10222](https://discuss.atom.io/t/multi-line-find-and-replace/10222)

[https://github.com/atom/find-and-
replace/issues/398](https://github.com/atom/find-and-replace/issues/398)

------
xdinomode
I have Atom and Brackets installed but see no reason to use them over Sublime
Text.. My preferred text editor would be vim simply because I can code while
ssh'd.

~~~
13years
I love Brackets since they have added instant search. That is the killer
feature for me.

Being able to search 10k+ files instantly as you type is really awesome.

~~~
tracker1
Similarly, I've really enjoyed VS Code's Git and Search features... Though
thinking of trying Atom again after this release noting performance gains.

------
cnp
Beware of using vim-mode in 1.1; there are bugs related to paging!

------
orionblastar
The title doesn't explain that Atom 1.1 is a beta test and the main page still
has Atom 1.0 for download.

I went to download and got Atom 1.0, there is a special link to click to get
the 1.1 beta test.

This may be confusing to people expecting 1.1 but getting 1.0 because they
clicked on the wrong link.

Microsoft Visual Studio Code is based on Atom, so I expect it will get updated
sooner or later as well with these changes.

~~~
SlashmanX
This is incorrect (possibly updated since you commented). The download link on
the main atom.io site will download version 1.1. This is the first release
that went through the BETA channel (i.e the beta channel was recently
introduced as a way of trying out the latest version) to a stable release.

Although, the header on the blog post does still have "1.0" so it is
confusing.

------
nikolay
Since I upgraded, my Python linters work no more. Tried 1.2, same thing.

------
iMark
I second the question: Is it any good?

~~~
aikah
It's good if you have a powerful machine with a lot of RAM and a fast hard
drive for IO. But hey, it's free. The alternatives are Visual Studio Code and
Brackets.

Brackets is more useful for Web designers and Integrators (support for
photoshop projects...)

VS Code has nice Typescript and git integration (makes committing code very
easy)

------
k__
Finally I can use FiraCode!

~~~
vdaniuk
Yeah, with current gorgeous themes and FiraCode ligatures, code in Atom looks
absolutely fantastic.

