Atom 1.29
blog.atom.io
blog.atom.io
Or, to put it another way: your depiction in the article really makes it easy for those who have reservations about using Atom to come to the wrong conclusion, and it's not one that paints it in a good light. Might I suggest replacing it with a GIF that showcases the actual issue that this release was supposed to fix?
In a single-threaded setup, maintaining 60fps is likely impossible. You may think of "just deleting a few lines of code" as trivial. But syntax highlighting alone requires re-parsing, as will automated formatting, type inference, and whatever else we expect today. It's unlikely for this to be done within the 16ms frame budget.
If you're offloading such work to separate threads, you can draw the frame right away and maintain 60fps. But you won't be able to update all the meta-information and frequently see "flashes of unstyled code".
https://galois.com/blog/2017/12/tree-sitter-new-parsing-syst...
Yours would be a nice world to live in.
I've seen IntelliJ and Eclipse both crawl when doing "basic editing tasks". Hell, Vim does it too if your line length is long.
Or even if it is short if you're using LaTeX with syntax highlighting. This even has its own entry in the manual, called tex-slow (http://vimdoc.sourceforge.net/htmldoc/syntax.html#tex-slow).
Typing a single cursor in most documents was never really an issue in Atom. But when you layer on a ton of plugins that do all kinds of stuff, and add in some complicated grammars with larger documents and lots of cursors at once, then performance would start to suffer.
Given the huge number of people who work on remote servers, I find it surprising that proper solutions are still so hard to find. A "file system provider API" for VSCode is in the works so I'm hopeful for the future.
To give you an example of what you can do I often use tramp locally to edit files as root: instead of having to fire a different instance of an editor as root to edit a config file I can just do it "remotely" from my main Emacs instance, with all my config and without worrying about messing something up by having the entire editor running privileged.
I work in embedded development so I also often use it to browse and edit files on the live target system (beats using a crappy dumbed down vi from busybox). And of course as you mention for general sysadmin tasks it's also great, I'm a developer but that doesn't mean that I don't have some sysadmin to do from time to time.
My current solution is just SSH/Vim but I think I'd like to go back to a graphical editor. I like Vim but sometimes it's a hassle on the big projects.
How many files are you able to handle, remotely, with Nuclide/Watchman?
Does it work if the remote files are on an NFS share (i.e. spotty inotify/fanotify support) mounted onto the server you're SSHing into (no, the NFS share cannot be mounted directly on the workstation)?
How many file-change events (on your workstation or on the remote) can this system successfully sync/handle in a short time? If there is, say, a 250k file alteration that happens due to checking out a branch, is there an indication that it detected the changes and is making progress syncing them, or does that necessitate a manual sync?
Context: I've worked in environments where local editing and manual sync got really annoying: for compliance/regulatory reasons, certain tools, e.g. source control, were only available on the remote server, so having all code on my laptop and manually syncing to the remote got quite tedious. Even better, the significant (i.e. I might conceivably need to open them/run tests that touch them) number of source files in the remote repo was in the tens of millions. I wasn't able to get any incremental sync/change-detection systems working successfully: on my workstation (OSX), large changes would overflow the fsnotify kqueue, no matter what wrapper around it I used. On the remote, watching was either unavailable (due to the age of the Linux server) or prone to failures in the event of large changes in files (e.g. checking out a new branch).
I've spent a lot of time mucking about with lsyncd, unison, and lots of other tools, and eventually gave up with the conclusion that directory-diffing is too slow given slow remote filesystems, and change notification systems aren't up to the task of managing bulk changes across a huge repo. Watchman sounds really promising here; I'd love to hear more about your experiences with it.
However, things don't work as well with an NFS share and I think you get an explicit warning when you try to do it.
One of the steps is to install Watchman. If your remote server is on Linux, make sure to read that part of the docs: http://facebook.github.io/watchman/docs/install.html#linux-i... (In my case I just set the three settings to 999999)
Finally, you may need to create a .watchmanconfig file at the root of the folder you're working on.
Also, the manual is pretty good. It comes with Emacs, of course, or can be read at https://www.gnu.org/software/tramp/
My favorite thing about TRAMP is how well integrated it is. It's not just opening remote files, you can also open shells on remote systems, or do file management with dired (I have a bookmark pointing to dired on a remote system I use frequently, for example.)
Since Atom doesn't provide anything that we can't install in VSCode as a plugin, there really is no reason to use Atom right now. The only problem I had with VSCode was the default interface, that I modified with plugins until it pretty much looks like Atom, but runs way faster.
- Bracket Pair Colorizer
- EditorConfig for VS Code
- ESLint
- Git Blame
- Material Icon Theme
- Path Intellisense
- Prettier - Code Formatter
- SCSS IntelliSense
- TSLInt
- Winter is Coming Theme by John Papa
I hope github is going to continue working on Atom independently from MSFT. Competition is a good thing. But since both products target the same audience, from Microsoft's perspective I'd understand if they'd bring those brilliant minds together in one team.
Perf for VSCode is definitely much better though.
[1] https://github.com/atom/xray/blob/master/docs/updates/2018_0...
I feel like a lot of their resources are being put towards git integration instead of improving the editor and performance... which are some of the primary reasons people leave for VSCode.
Maybe I'm the odd man out though, since I like to use CLI git directly.
A good git interface really is a game changer and can speed up your workflow quite a bit, especially if you utilize feature branches/git flow.
But then I figured out that Atom's git integration is actually quite neat and I started using it mostly to do `git add -i` as it makes staging files or parts of files really easy.
I still don't trust it with pushing/pulling, switching branches etc. so I still drop to the command line for those, but the atom git integration is incredibly useful for seeing your changes and committing a particular part of them.
1. That adds a lot of friction if you want to try out another editor 2. When it breaks, fixing things is not always easy. There are millions of git CLI users; you are probably the only one with your particular editor setup. 3. When I'm pairing with another developer, I don't want to be helpless when using their machine because they don't have the same intricate editor setup as me (or vice-versa)
There are a few things I use a Git GUI for, like staging/discarding chunks, or getting a nice graphical diff.
I would vote yes! I would love to see better GitHub integration in VS Code.
HN discussion here: https://news.ycombinator.com/item?id=17258114
It's reducing Electrons job to the view / plugin layer and have most processing done in a Rust backend.
If that is case, why Google doesn't just acquire Sublime Text and open source it?
Edit: Turns out Xi was burned out of Fuchsia, the next generation Android. So I guess Xi is tool for testing concept in Fuchsia. And it doesn't look like Xi will be amiable for general usage in the next 2 to 3 years time.
It's a generic editor backend with an official GUI for OS X.
Xray seems much more actively developed and actively managed by Atom developers.
They will "support" both by supporting VSCode and declaring Atom to be a subset of VSCode. I give it 8 months, tops.
So far only visual studio (not code) can do it properly, and one which name I forget. I posted issues everywhere about it. I'm still disappointed, or it might be difficult to implement.
Can some kind user tell me if this latest version performs better now?
I know people will give me shit for this, but this is one of the reasons why I like to have multiple tools for multiple use cases.
Atom is for development. It's for programming in source files and being basically an IDE that I have a lot of control and customization over.
When I need to work with long logfiles or hunt through large compiled text files, I use something like Sublime. And if the files get absurdly large (like 5GB+) I start reaching for CLI tools.
I completely understand that many don't want to work like that, and if it works for you then that's awesome! But I like my tools to be good at what they do, and if that means tradeoffs in areas that other tools are good at, then it's fine with me.
Even if Atom could never open a file over 100kb, I'd still use it daily, because it's plugin ecosystem, customization, and the ease that you can write very custom plugins for it is unparalleled. And if atom ever starts giving those things up to be able to open larger files, i'm going to be quite upset.
This is exciting. Anyone has feedback anout how it actually impact performance?
It's not groundbreaking, but folding is definately better and more responsive, and using tons of cursors (which often happens from using a plugin that gives me sublime-style click-and-drag to place cursors ability) is improved by a noticeable amount.
The new parsers do regress when it comes to opening minified files though, so a 300kb file with the whole file "on one line" will drop the editor to 1fps (interestingly it only happens when something syntax highlighted is on the screen, so if I'm scrolling through a minified file and hit a large enough string that's not highlighted, the FPS picks back up to 60!), but opening 500mb+ logfiles isn't really an issue any more (meaning as long as there are linebreaks at reasonable points, and you don't mind waiting a second for it to open, it's pretty consistently fast). I'm not sure if that was the tree-sitter parser or other updates made in the last year, but at some point it stopped slowing down with "logfile" style large files.
Please keep in mind I have an... absurd... amount of plugins installed. I use this editor to do heavy javascript/flow development, as well as python and go and a bit of PHP, with a ton of "nice to have" plugins like automatic test runners, coverage reporters, "intellisense" style IDE stuff, and more for each language. It's also running on a pretty beefy 8-core 32GB machine. so interpret my experience through that lens.
It's just that people somehow enjoy this new new dimension of expression in text-only media. It has long been pretty obvious that text lacks the subtlety of face-to-face or voice interactions, and that many problems stem from people misjudging the intended tone of writing. Emojis, while imperfect, may help ;)
What do you have against emojis? I'm hoping I can set my hostname to all emoji characters (UTF-8) so that other workstations on the network will show my hostname as those emoji characters.
To me the combination of both gives a hell of a lot more to base interpretation of tone on.
Communication is messy as hell, and the fact that emoji's render differently doesn't add that much confusion in most cases (of course there are the odd watergun vs revolver emoji problems, but the worst offenders are slowly being brought into line)
However, emojis can change when sending them from my Android phone to an iPhone, changing the meaning of the message inadvertently.
2. What about emoji's that aren't faces, or that have taken on a different meaning (see, eggplant or that infernal clapping emoji that's taken over twitter)
If it makes writing commit messages more fun and it means that people will make more of an effort to come up with descriptive messages then I say amazing. I can't count the number of open source projects where people write absolutely useless commit messages, even coming from projects I respect. I'll take emojis over "several changes, new stuff" or "some other small fixes" (to quote actual commits from an open source project I've been hacking on lately).
Of course both things are largely unrelated but I just wanted to point out that there's not a very strong "commit etiquette" in the hacker community as of today, it's not like much of value will be lost by letting kids use emojis in them, and maybe a little could be gained.
I don't believe that, the confusion around the meaning of emojis are well established[0][1][2][3].
I strongly suspect that the confusion and vagueness is even more predominant in professional communications than personal. Please consider that everyday the likelihood of someone reading your code who is from a different culture or context is even higher, somethings might seem obvious to us, but that is not necessarily objectively so.
If you think I am making an argument for using plain and simple language and not just avoid emoji, you're right, that is the point.
From a pure economic point of view, considering the arguably nonexistence value emojis provide, any risk or cost is too much.
0. https://www.businessinsider.com/science-reveals-the-most-con...
1. http://fortune.com/2016/04/14/emoji-miscommunication-study-u...
2. http://www.dailymail.co.uk/sciencetech/article-3549376/Frust...
3. https://www.mrporter.com/journal/modern-problems/the-most-co...
But in day-to-day chats they're useful. Text is extremely bad at conveying emotion and nuance. Stuff like humor, sarcasm, irony is really hard to transmit, especially with more people. A well placed emoji/smiley can help.
I heard that for some folks it makes it easier to find the right commits, unfortunately it's the opposite of being inclusive because other collaborators can become easily distracted by them.
I also think you're placing to much value on some vague notion of "professionalism" which seems to exclude all emotion and any fun.
"Professionalism" in this sense stymies business success by, for example, prohibiting the effective means of communication people choose for themselves with some nebulous argument to appearances.