10 ms·
Moving Atom to React
- eknkc 12y agoJust checked the new version briefly. Scrolling performance seems to be much better, especially on a large display with fullscreen editor. Atom is getting pretty decent for daily use.
- tolas 12y agoHaven't been following it too much recently, but just curious, why use it over Sublime?
- regularjack 12y agoI'm also a Sublime user but the fact that Atom is open source might be reason enough to change.
- 1qaz2wsx3edc 12y agoEspecially after going full open source, I have a lot of respect for that change (http://blog.atom.io/2014/05/06/atom-is-now-open-source.html http://blog.atom.io/2014/05/06/atom-is-now-open-source.html). Otherwise I feel it would of gotten stagnate. <3 githubbers
- eknkc 12y agoI still use Sublime mostly. However, Atom seems to have a thriving ecosystem around it. There are a lot of high quality Atom packages. I believe it's mostly because Atom has a more accessible developer interface for newcomers, being it is just a web app. And it's open source. Also, Sublime seems to be abandoned for a while. Not that it stopped working or anything.. But I believe the lack of development will push people away eventually.
- Swizec 12y agoI just find it funny that replacing "Atom" with "Emacs" in your argument doesn't feel out of place at all. Well, Emacs Lisp might be less newcomer friendly and it's not a webapp. But still, thriving ecosystem - check, accessible to developers - check, huge number of packages - check, runs everywhere - check.
- jshen 12y agoatom works well out of the box. Emacs ... not so much.
- baddox 12y agoHow often do most developers set up a new environment? For me, it's nowhere near enough for me to care at all whether my main development tool "works out of the box."
- jshen 12y agoI used emacs for years and I spent far too much time fiddling with it to get it to the place of something like atom.
- hamburglar 12y agoThe thing Atom has which Emacs doesn't is that it's approachable even if you don't appreciate all the customization and the rich ecosystem. You can sit down with Atom and just explore it like you would any other GUI text editor, and it pretty much behaves exactly like you'd expect without having to learn any obscure commands or shortcuts. You can learn the commands and shortcuts (and explore the ecosystem) as you settle in. I'm primarily a vim user and I still prefer vim to Atom, but within a day or two of seriously trying out Atom, I was probably up to speed with 90% of the core functionality I use in vim on a day to day basis. That last 10% is a bit of a killer, though. :)
- willismichael 12y ago
- virtualwhys 12y agoNot nagged to buy within an hour of installation, I'd consider that a plus in favor of Atom. Of course, Atom is open source and has potentially huge community backing to push it forward (vs. pleas for features and fixes to the other editor's seemingly absent overlord).
- mmcclure 12y agotl;dr At this point: not much. That might change soon, though. When I switched laptops recently, I made the conscious decision to only install Atom to see how things went...so far so good, although at times it does bog down pretty noticeably, and this is by far my biggest complaint. There's also no alt-drag support (to create a straight line of cursors like Sublime), but that's a fairly small gripe. I loved the plugin ecosystem for Sublime, and in the short time Atom's been around, the ecosystem has already exploded. Lots of awesome themes and plugins are already available, with more coming every day. The low barrier to entry (most things can be done with JS / CSS) probably has a lot to do with that.
- martindale 12y agoAtom is [more] free than Sublime. You have the freedom to modify its behavior.
- ReAzem 12y agoAtom is free as in freedom.
- silversmith 12y agoI switched mainly because ST2 was acting up, throwing errors left and right. Considered upgrading to ST3, but there were plenty people discussing bugs in that too, and some plugins I use were not yet compatible. A colleague had invites to spare for Atom beta. Checked it out, found it to be 'just like ST2, just without the crashing part' and stuck with it.
- desireco42 12y agoI finally tried Atom and it looks pretty much like SublimeText, which I use quite a bit. Is there a reference somewhere where it says it was inspired by good work of SublimeText editor? Ah Google always provides: https://github.com/atom/atom/issues/2038 https://github.com/atom/atom/issues/2038
- RSO 12y agoI've been using Atom for a while now, and I'm really impressed with the progress that it's showing. There are still some times that I'm forced to switch back to Sublime (mass-editing a large text file for instance), but I'm really enjoying the experience!
- TheMakeA 12y agoOne thing that I would like to see is multiple process support. At least once per day, one tab will become unresponsive (for seemingly no reason) and I have to kill the entire editor and reopen it.
- mrbogle 12y agoTry the new editor, it may help with this.
- forrestthewoods 12y agoI hope that some day Atom is fast, full of features, and on Windows. My gut tells me it will be a long, long time til it replaces Sublime Text 3 as my editor of choice. =[ Edit: Since several people chimed in with the same thing. I'll check out the windows binaries for. I expect to use ST3 for awhile longer still, at least until Windows is a first class citizen, but this will be great to monitor Atom's development. Thanks!
- zhemao 12y agoYou can install it on Windows. You just have to build it yourself. https://github.com/atom/atom/blob/master/docs/build-instructions/windows.md https://github.com/atom/atom/blob/master/docs/build-instruct...
- abritishguy 12y agoPrebuilt windows downloads: http://atom.someguy123.com/ http://atom.someguy123.com/
- JoelHobson 12y agoIt's already got a huge amount of features when you include packages (and installing them is completely frictionless). Unofficial windows builds exist too[1]. And as someone who's used to heavyweight IDEs, Atom is already pretty fast (not that I'm going to complain about the react update...) [1] http://atom.someguy123.com/ http://atom.someguy123.com/
- Igglyboo 12y agoThe pre-built binaries are OSX only but there are instructions for building on Windows and Linux.
- sandyarmstrong 12y agoWeird behavior with scroll wheel. It seems to not stop where I'd expect. Works great with trackpad, so I guess that's what the developers must be using. Fast scrolling by dragging the scrollbar nub is pretty slow, still, but this is definitely an improvement.
- mrbogle 12y agoWhat platform? What kind of mouse are you using? The team uses all different mice. I use an apple magic mouse, and it works well. You can change the scroll sensitivity in the settings.
- elwell 12y agoNot trying to start an editor war, but I've been trying to learn Emacs for the past week. The learning curve is still at the point of being frustrating/painful. Should I stick with it or download Atom? (Anyone have a solid opinion between the two?)
- spopejoy 12y agoEmacs is the One True Editor.
- rhizome 12y agoMaybe, but ed is the standard text editor.
- yulaow 12y agoYou are all old, nano is the future! Other than /s, I wanted to say I am also learning emacs after some years of both vim and st2-3 and I really like it. I have still to stick to a cheat sheet to remember common commands but I am on my way to the Stallmanmination
- swah 12y agoI use ST because it just works. Let me tell you.. Atom will probably never come close to Emacs programmability and extensibility. Its by far the most beautiful software environment. Its a living thing. In Emacs you're constantly reminded of the love of generations of hackers in improving it. The C-core-and-Lisp-scripting pattern was a perfect match. Emacs has the quality without a name. But Atom is modern. Emacs is single threaded (IIRC) and a single evil elisp snippet takes it to its knees. Those thousands of elisp mdoules (mostly) work together, without any kind of sandboxing. I think this is also notable and beautiful. It was achieved by a lot of hackers who cared a lot. This is MY little list of people who wrote emacs philosophy or code that I loved, off the top of my head: erik naggum (rip, most people hated him, but he loved and understood lisp and I want back to old usenet posts for insights many times those insights now lost somewhere) luke gorrie (slime originator iiuc, mind blown w/ his demos. also erlang guy and hacker at heart steve yegge (js2, explained emacs qwan in many posts) sacha chua TamasPatrovics (anything!) Eduardo Ochs (eev, built his own little world inside emacs) David O'Toole (linkd.el, many other intersting packages) rubikitch (!!! so many useful emacswiki snippets) alex schroeder (emacswiki master iirc) Matsushita Akihisa (moccur-edit.el, still miss this in Sublime) dr qubit Nikolaj Schumacher (beautiful auto completion packages) xahlee magnars sveen Using emacs feels like being immersed in the rich culture of a past civilization.
- cnp 12y agoSo psyched. The speed in which the editor used to function drove me totally crazy and I was hoping that GitHub would find a solution. And I'm doubly psyched that they chose such an awesome technology! Great work. edit: Just installed the update and indeed, all of the "clunk" that you used to feel is gone. Gonna retire Sublime Text 3 now :)
- notduncansmith 12y agoI don't know if I'm ready for that step yet. One thing that attracts me to Atom is the infinite UI hackability. If I don't like the color of the text in the tree view, I can change that, just by writing CSS. It's an editor by the web, for the web, and of the web. Sublime, however, feels much more fluid. When I open a file in the tree view, it animates down (have yet to get that working properly with Atom - it animates but it looks choppy). It's faster, for obvious reasons. The themes I have in place look damn good, and I have a git package that can show me a diff of the file I'm looking at (oddly, Atom lacks this feature). I very much look forward to following Atom and maybe in a year or two, if they've gotten it up to a level of performance I can tolerate, I'll give it another shot. Ultimately, right now the choice is between the performance and usability of Sublime, vs the aesthetics of Atom. Sublime's performance actually gives it a bit of an aesthetic edge over Atom, so despite the hackability of Atom's UI, it's just not there... yet. I'd love to make the switch, but the subtle (though perceptible) UI lags and smaller ecosystem make it a subpar choice right now.
- TimWolla 12y agoThere is a git-diff package that shows colored bars next to the line numbers: https://github.com/atom/git-diff https://github.com/atom/git-diff. While not a real diff I find it pretty helpful.
- notduncansmith 12y agoYeah, I do have that installed. It's nice to know how big of a change I made, but still requires me to use more memory than I'd like when composing a commit (or go to the terminal). Maybe SublimeGit has spoiled me, but I really feel like leaving my editor to make a one-file commit is for the birds. It doesn't break my workflow nearly as much as popping back to the terminal, doing a status to make sure I'm committing what I think I am, adding the file, then doing a commit, then (possibly) pushing. 3-4 steps compared to 1 from the editor (add and commit, or add and commit and push, this file).
- donw 12y agoHaving spent the past two weeks diving deeply into React, this doesn't surprise me. If you haven't tried it out, give it a go. Being able to rewrite the virtual DOM at will makes development so much cleaner, and it plays incredibly well with other tools, because React is just a presentation layer (I'm using it with Backbone) There are rough edges (TransitionGroup), but they clearly know what they are doing.
- dmak 12y agoCan this play nicely with Angular and still make use of Angular's two-way binding?
- rezistik 12y agoI'm interested in this as well. I believe some people have had success by attaching components to the window as globals.
- josebalius 12y agoTake a look at http://josebalius.github.io/ngReactGrid/ http://josebalius.github.io/ngReactGrid/ for an example.
- auvrw 12y agoif all you're after is two-way data binding and don't necessarily need all the other functionality provided by Angular, it might be worth mentioning that React actually can do that, even though it's not a pattern that occurs that often if you use the Flux application architecture http://facebook.github.io/react/docs/two-way-binding-helpers.html http://facebook.github.io/react/docs/two-way-binding-helpers...
- Spendar89 12y agoI think its important to note that React does not encourage two way data binding. Quite the opposite, actually. Data is supposed to flow one-way, from parent to child. That being said, there's an extension that adds two way bindings, called ReactLink. You can read more about it here: http://facebook.github.io/react/docs/two-way-binding-helpers.html http://facebook.github.io/react/docs/two-way-binding-helpers...
- kolev 12y agoI've used React since it became available and the editor is still pretty slow, to be honest. Can't imagine using it with the option enabled. Honestly, Sublime Text is great, I've purchased a license, but the speed of development will kill it. Every day I "Check Update" and I get disappointed. Not that it needs that much new stuff, but still. You don't feel the heartbeat, if you see what I mean. One great feature of Sublime that I miss in Atom is persisting unsaved changes between restarts, which I abused for temporary To Do lists and stuff.
- lelandbatey 12y agoUpon downloading and running Atom, that was also immediately the thing I missed most. I really love the scratch-space as a feature that Sublime Text gives me, and I find that I want it in more and more things.
- JoelHobson 12y agoIt's not really the same thing, but there's a scratchpad plugin for Atom that might be useful for you. https://atom.io/packages/scratchpad https://atom.io/packages/scratchpad
- kristofferR 12y agoYeah, since this is generally how things work in OS X it makes Atom feel quite ancient to me. It's such a major step in the wrong direction to have to go back to trying to avoid shutting down applications/your computer since it's such a big hassle. If I want save something I'll save it and if I want to close something I'll close it, just keep it "open" for me in the mean time.
- spolu 12y agoThis is very interesting. Reminds me of what I saw in Chrome Secure Shell source code while hacking a while back on a vt100 emulator in JS. ls -l ~ was always the best test to see how scrolling would behave and how fast was the rendering... What they say here and what I realized then is that the most important part is about rendering only what is visible on the screen!
- Sir_Cmpwn 12y agoThis is a natural consequence of forcing an editor into the browser. Everything about Atom just seems so unneccessary to me. What's compelling about Atom that draws people in, compared to Sublime or even vim (my editor of choice)?
- sehr 12y agoIt's very easy to make plugins for. Most web developers know JavaScript, not everyone knows vimscript/viml
- orbifold 12y agoYou can write plugins for vim in python, perl and ruby aswell.
- shadowmint 12y agoTo be fair you can write vim plugins in python, and a fair number of people do. It's also, I'd argue, a fail from the Atom guys to make their plugins run in coffee script natively, rather than allowing people the choice of compile-to-javascript/native javascript to write plugins in (this has definitely hurt adoption for the creation of plugins that do more than trivial things or syntax highlighting). The thing about atom that is compelling for me is apm (the command line atom package manager); its really very good. (Yes, I know you can write 'pure javascript' atom plugins, but its complex and it's clunky; you have to manually implement the coffee script inheritance semantics. Fail.)
- adrusi 12y ago"Coffeescript inheritance semantics" aren't anything special in javascript. If the editor was written in javascript syntax and still chose to make use of inheritance in its design, extensions would look the same. This works just fine, and it can't get much more javascripty: ExtensionComponent.prototype = Object.create(Component.prototype); function ExtensionComponent() { Component.call(this); } ExtensionComponent.prototype.doSomething = function () { // ... };
- ivank 12y agoTyping text at the end of a 1000-line file seems to be laggier with the React-based editor enabled.
- cturhan 12y agoAfter this news, I downloaded and build on windows and yeah it might replace my favorite text editor :)
- jbeja 12y agoWould they gain better performance if they use canvas intead the dom?
- paulrov 12y agoat that point you may as well just write it from scratch. You would have to write your own text layout engines and everything.
- aikah 12y agothey could use WebGL and an engine that supports ASMjs. But it wouldnt make sense since it's not a web app. IMHO,it's a mistake to use webtechs to code a serious text editor. TextEds require great performances,if I cant open a 3MB with it,it's just not worth it. They could have kept javascript/coffeescript for plugins and write the UI in C/C++.Javascript is fast with engines like V8,the DOM is absolutely not fast at all.
- beefman 12y agoI tried scrolling through a 1MB JSON file with all four combinations of React DOM on/off and hardware acceleration on/off. Anything with React on was crashing slow. With React off, hardware accel was maybe slightly better on. Sublime 2 blew Atom away. Chrome had flawless scrolling too (albeit with no syntax highlighting). MacBook Pro running 10.9.3.
- flyrain 12y agoWhy we need another editor? We already have vi, emacs, st, ... Why Atom?
- toxicFork 12y agoWhy do we need cars when we have horse carriages?
- afro88 12y agoBecause they're faster. Atom is slower than Sublime :) But Atom is free, open source, and actively being developed.
- flyingbeaver 12y agoCars were not faster at the beginning. You don't know if something will eventually become better unless you try hard.
- taeric 12y agoNot really a good analogy, though. There were serious benefits to getting off horses, even if we ignore the speed promise of automobiles. Moving to a text editor that is written in JavaScript doesn't really seem to have much promise of gains in the future. Though, the enthusiasm there is nice and there is no reason to bemoan its existence. Just don't be surprised when the things it can do have already be done in more venerable environments in the past. :)
- Cthulhu_ 12y agoMaybe more like why do we need electric cars when we have petrol engines, maybe? IDK. Maybe we just don't need it, but it's nice to have a different approach / a choice.
- mproud 12y agoA 2 MB file limit makes Atom just impossible for me to use.
- seanp2k2 12y agoCurious: what type of things would you want to edit over 2MiB? I think it's probably more a function of "having such a huge DOM would be a bad UX anyway" vs just some arbitrary limit.
- xienze 12y agoLog files.
- adrusi 12y agoI'm curious, do you really need a text editor for log files? It seems like the wrong tool, after all, you're not editing your logs. I have never found a case where `cat example.log | grep Error | less` is insufficient. Granted, I think a good editor should be able to handle files of any size, but if atom sacrifices that for the ability to let an extension display anything it wants inline with the text, it doesn't seem like a catastrophic loss.
- nilkn 12y agoMoreover, if you really need a text editor for a log file, you can just launch vim or something for that task. I've never really understood why people get in this mindset of "X is my editor, and I will only use X." I guess, though, this is harder to do if you insist on a completely GUI-based interface.
- snotrockets 12y ago> I've never really understood why people get in this mindset of "X is my editor, and I will only use X." If you use certain software a lot, you'd find it behaviour and shortcuts ingrained into your subconscious mind. Like driving: an experienced driver doesn't consciously think of how to control the car, she just does. This is what makes Emacs or vi users so efficient: they had years to get the operation of those editors ingrained into their brains. Which takes quite an effort, that is not worth repeating with another editor (unless yours is broken).
- exogen 12y agoThe new rendering method kills subpixel font rendering, I suspect due to the translate3d hardware acceleration. Unfortunately noticeable for those of us not yet on retina-resolution screens.
- eklavya 12y agoYeah, I was wondering what was wrong.
- MagerValp 12y agoThe font rendering in Atom is what's currently keeping me from giving it a serious try: http://discuss.atom.io/t/atom-vs-textmate-font-rendering/9072/3 http://discuss.atom.io/t/atom-vs-textmate-font-rendering/907...
- Kiro 12y agoSo it's a change for the worse in other words.
- Kiro 12y agoSo it's a change for the worse in other words. This should be the top voted comment.
- nathansobo 12y agoYou can disable hardware acceleration in the React editor in the settings view to get subpixel anti-aliasing back at the cost of performance. A frustrating trade-off for us, to be sure.
- niix 12y agoOne of my biggest pain points with Atom was the speed. More specifically, the selecting of multiple lines greatly killed performance and made me switch back to Sublime. Glad to here they are making efforts to speed the editor up, I'll give it another go!
- ehurrell 12y agoSpeed was really a killer for me too, it became slow very easily. It also began erroring out of update-checks and package installs, making it feel quite worthy of the beta tag. Look forward to seeing where it is now!
- deleted 12y ago[deleted]
- paulrov 12y ago> we’ve been focusing on making basic text editing smoother and more responsive This REALLY shouldn't be an issue with basic text editing in any text editor
- SimeVidas 12y ago> We also render the cursors and the hidden input field that receives keyboard events as their own layers on the GPU How is this performed? transform: translateZ(0)?
- hoffer 12y agoNo mention of the Brackets editor here from Adobe. Also built with JS and open source. Any opinions on it in comparison to Atom? http://brackets.io http://brackets.io
- jipumarino 12y agoIt gets better every time I try again, but I'm still missing four things: - Good project management. I tried the project-manager plugin, but it doesn't seem to remember my fuzzy finder options and reindexes everything every time. - Good Vim emulation, like Vintageous in Sublime. - Keyboard mapping override. I use cmd-j and cmd-k for switching tabs in Sublime. I cannot map this easily in Atom. - Actually, I disabled tabs in Sublime and only use the side bar. I miss this in Atom too.
- mercer 12y agoI would love to switch from Sublime Text to Atom, but the two main things holding me back are the noticeable performance issues (compared to ST), and vim keybindings. ST's vim support is good enough for me, and when I need more I'll just switch to Vim for those things. But Atom unfortunately is still too limited, although it's good to see progress. Happy to see the performance issues being worked on, though, and as a big fan of React, I'm happy with their choice.