I haven’t been actively browsing the forum lately so I kinda missed this topic, but it was brought up in IRC and I’ve kept an eye on Atom since the first minute.
I’ll try and sum up my impressions and thoughts of Atom as of now (because it’s been out for a while now). I never used it because I don’t have an OSX machine, but I am eagerly waiting. However, I must say that I mostly use ST to write plugins for ST because it really is a lot of fun, so I’m mainly going to focus on how I use it.
- They use Discourse. Finally a
forumdiscussion platform that does email notifications and it’s even open source! (and you can influence it really easily because the developers are VERY vocal) - It’s “hackable to the core”. Well, maybe not in the core, but to the core is a pretty accurate statement because many features that are built into Sublime are actually packages for Atom (e.g. Find in Files). And the most exciting thing about it: You can modify the UI almost in any way you want! This is the advantage from technically rendering a website - it’s incredibly easy to modify the UI and since the web is really central in our every day life and use (of the internet) almost every developer knows at least something about HTML/CSS/JS. This is the real advantage from using web technology for “everything”, such as a code editor, and I’m really excited about that. Have you seen what is possible?
- Shared Source (?) of the core and Open Source for many packages. Yes, Sublime Plugins are also open source mostly, but Atom packages go way deeper than in ST. You can actually modify stuff in Atom that is implemented as a package that you would never be able to in ST.
- Package Development. Creating and publishing a package is incredibly easy. There is even a test environment to run tests on them. Also since it uses node.js as its base you basically have access to the whole node.js package library and because of dependency management you can import whatever you want. I’ve always wanted to do similar for ST and Package Control, but it’s quite a task and I never got down to it. And package settings are handled better by far. Publishing a new version is basically running a single command. It takes care of committing, pushing and creating a tag and I really want to have that for PC as well in some way.
- Support is very vocal as well. Developers are even on the IRC channel sometimes and some of my requests regarding the website have been implemented less than a day (such as an RSS feed for blog posts).
- Javascript. Yeah, I hate it for several reasons that I’m not gonna discuss here. I will use it if I must and sadly this happens quite often because apparently there is no alternative for client-side DOM-modification in browsers (yet). I can fully understand the decicion behind using JS for a web technology-based editor, but I will never like Javascript. Coffeescript does help somewhat, but it introduces another problem that is optional parenthesis. If I were to switch at some point I will certainly miss Python a lot.
- Speed. No need to iterate on this again. Custumization has its prize and that is most likely performance.
- Package ecosystem and “sublime.wbond.net”. Hands down, Will’s site is just plain better than theirs in showing information and being easy to use. Well, their site kind of focusses more on the readme of the packages which is a good thing, but everything else is inferior.
- Cross-platform support. Yes, it will eventually be at some point but currently it’s not and unusable for me.
- No YAML for configuration sadly. Converting syntax definitions form plist to cson (basically coffeescript syntax for serialized data) is an improvement but not good enough. I don’t really feel like re-writing AAAPackageDev in CS/JS, but maybe I will. Considering the possibilities it might even be possible to write a package that interprets YAML settings files directly from the source without conversion to json/cson and you can specify it as a dependency if your package uses it. (Maybe a Python plugin interface as package too?)
So yeah, I really have to try it in order to find out how it really is and I will likely not switch quickly, but I am damn excited. Also, there might be some very interesting news regarding the future of Sublime Text in the next week or so.