GitHub Open Sources Atom, Their Text Editor Based On Chromium 121
First time accepted submitter aojensen (1503269) writes "GitHub has made good on promises to open source Atom, a programmer's text editor based on Chromium. Atom is released under the MIT license (source repository). GitHub announced the following on their blog: 'Because we spend most of our day in a text editor, the single most important feature we wanted in an editor was extensibility. Atom is built with the same open source technologies used by modern web browsers. ... But more importantly, extending Atom is as simple as writing JavaScript and CSS, two languages used by millions of developers each day.'
Apart from being extensible via HTML, JavaScript, and CSS, Atom also offers out-of-the-box Node.js integration, a modular design with a built-in package manager (apm), and extensive features such as file system browser, themes, project-wide search and replace, panes, snippets, code folding, and more. Launched only 10 weeks ago, Atom seems to have a well-established ecosystem of packages and extensions already." The editor is based on atom-shell, a more general framework for building desktop apps using JavaScript/HTML. Beware: according to the FAQ, by default it sends "usage data" to Google Analytics (which can be disabled at least).
Apart from being extensible via HTML, JavaScript, and CSS, Atom also offers out-of-the-box Node.js integration, a modular design with a built-in package manager (apm), and extensive features such as file system browser, themes, project-wide search and replace, panes, snippets, code folding, and more. Launched only 10 weeks ago, Atom seems to have a well-established ecosystem of packages and extensions already." The editor is based on atom-shell, a more general framework for building desktop apps using JavaScript/HTML. Beware: according to the FAQ, by default it sends "usage data" to Google Analytics (which can be disabled at least).
Google Analytics? (Score:2, Funny)
Re: (Score:3)
So turn it off?
Re: (Score:1)
Re:Google Analytics? (Score:4, Insightful)
I disagree. It can be helpful to authors of software to see how their product is being used. As long as they are up-front about it, I have no issue.
When they try to pull the wool over your eyes, then it gets into "scummy" territory.
Re:Google Analytics? (Score:5, Informative)
By the way, the data they are collecting:
Re: (Score:2)
A unique identifier that is generated by computing the SHA-1 of the machine's MAC address.
You do realize, do you not, that a MAC address is anything but random, and that deciphering an SHA-1 of a MAC address may take a little time but is essentially trivial?
Re: (Score:2)
Yes, they should probably salt it. Right now they seem to simply apply the SHA-1 hash:
getUserId: (callback) ->
require('getmac').getMac (error, macAddress) =>
if error?
callback require('node-uuid').v4()
else
callback crypto.createHash('sha1').update(macAddress, 'utf8').digest('he
Re: (Score:2)
If you have any OTHER software that may make a hash out of your user's MAC address, such as a web browser for instance, you don't even need to decipher anything. You just compare one hash to the other.
Re: (Score:2)
Re: (Score:2)
Opt-in always results in lower participation than opt-out.
Re: (Score:2)
Makes it pretty difficult to get good usage data for your software, doesn't it?
Re: (Score:2)
Sure, but you should be asking your users if they would like to contribute that data, not assume that they want to. Steam asks me if I want to submit my hardware information, it doesn't assume I want to from the get-go. This has likely hurt "participation" but it keeps goodwill flowing between Steam and their users. Ultimately, metrics don't mean squat if no on uses it in the first place.
Re: (Score:2)
I agree that is preferable on initial run of the app, but even then there are slimy options (like Flash installing that crap if you forget to uncheck the box) and there are harmless ones like the anonymized usage data this app collects. And while I will complain loudly that Flash installs crapware with their pre-selected checkbox, I would not object to these guys pre-checking the box because the behavior is so harmless.
Re:100 year language (Score:5, Informative)
As for Dart, it's really just JS rebranded under Google afaik.
The only part of this that's correct is the Google part. Dart is StrongTalk with curly braces. The object model, type system, and core functionality are exactly like StrongTalk, the lead developer on both projects is the same, and the VM is based on the StrongTalk VM (open sourced under a BSD license by Sun).
Re: (Score:2)
Re: (Score:2)
Why is usage data in quotes? (Score:2)
Usage data is all Google Analytics can be used for. The product literally does not support collection of anything else. What's more, it's not like this is a rare or unusual practice. For instance video games have been collecting telemetry by default for ages now. It helps the studios figure out where they screwed up and made the game too hard, causing players to drop out.
Re: (Score:3)
Should be with the users consent though, that a program starts sending data. For games, this consent probably comes with accepting the EULA.
Re: (Score:2)
yeah the 18000 word document that exactly NOBODY reads completely and competently.
i could write a program and require that you on demand send me a picture of you in a Ballet Performance quality leotard and platter tutu and nobody would even KNOW about it until i tried to enforce it.
EMACS 2.0 (Score:5, Insightful)
Remember back when EMACS stood for Eight Megs and Constantly Swapping. It seemed quite funny to build an OS and language first and then turn it into an editor. With all the jokes about how it's a great OS shame it has no decent editor etc etc.
Well this is just EMACS circa 2014. But instead of elisp we have Javascript. And instead of the emacs-platfrom-which-has-no-name we have a browser.
Anyway, here's a few lines from my top window:
13226 user 20 0 902280 187184 27300 S 0.0 18.3 57:49.63 firefox
26114 user 20 0 35532 8680 4344 S 0.0 0.9 0:12.53 gvim
see the difference?
(but hey it's in a browser so it's officially cloud and webscale and at least web 3.1.0-RC2)
Re:EMACS 2.0 (Score:5, Funny)
Re: (Score:2)
Yep. They should adopt the slogan: "Atom - For people to stupid to learn elisp"
I would guess that's the motivation behind it.
too
Re: (Score:3)
Actually, my post is a bit mean spirited and I shouldn't be pissing on other people's parade just because I can.
It is still very much like emacs in architecture, but with a browser as the platform, not the emacs platform as a platform. This will make it quite resource hungry, but frankly now as then if it's a good editor, people won't care and will use it anyway. It's an instance of hardware being cheap relative to developers and it's not like it will be running on 1e6 servers so it's worth optimizing by re
Re: (Score:2)
It's even worse! Atom can't handle file sizes larger than 2MB!
(Source: http://reza.jelveh.me/2014/02/... [jelveh.me])
Re:EMACS 2.0 (Score:5, Interesting)
It's not so much that it can't, but that it won't. I got a beta invite, so one of the first things I tried to do was open a 6MB CSV file to see what would happen. It pops up a cryptic error message which you can decode using the developer tools: files larger then 2MB aren't allowed.
The reason is simple. Atom is slow. Really, really, really slow. Now granted the MacBook Pro (remember, it's also Mac-only) is a couple years old, which in Apple terms means it's time to be replaced (can't wait to stop receiving updates for it and getting yelled at by IT for that), but it absolutely and noticeably drags editing text.
Scrolling is slow. Editing is slow. Searching is slow. Everything is just - slow.
In a text editor. In 2014.
Re: EMACS 2.0 (Score:2)
i feel really really sorry for using this phrase, but in this case i also feel it fits perfectly:
epic fail
Re:EMACS 2.0 (Score:5, Funny)
Remember back when EMACS stood for Eight Megs and Constantly Swapping.
The new acronym is:
A
Ton
Of
Memory
Re: (Score:1)
Well this is just EMACS circa 2014. But instead of elisp we have Javascript. And instead of the emacs-platfrom-which-has-no-name we have a browser.
Anyway, here's a few lines from my top window: 13226 user 20 0 902280 187184 27300 S 0.0 18.3 57:49.63 firefox 26114 user 20 0 35532 8680 4344 S 0.0 0.9 0:12.53 gvim
see the difference?
(but hey it's in a browser so it's officially cloud and webscale and at least web 3.1.0-RC2)
It doesn't run in the browser - it's a standalone app. FWIW, it's using 5.7Mb on my computer at the moment - while emacs is using 41.2Mb. Your emacs analogy is perhaps more apt than you realise though: it's essentially emacs using HTML/javascript/CSS instead of lisp.
Re: (Score:2)
FWIW, it's using 5.7Mb on my computer at the moment
I find that a bit hard to believe. I've just launched it and not even given it input focus. Atom is using 55MB (33.1MB private), and there are three Atom Helper processes, each consuming 57.9MB, 34.4MB, and 21.4MB (56.2MB, 20.6MB and 10.4MB private) each. So that's a total of over 100MB for a text editor with one window, one tab, and no files open.
Re: (Score:2)
To be fair... Emacs 10.7 running on my Mac is currently consuming 150MB...
We've moved on past the days where we care how much memory this stuff takes up. If you're a developer you've probably got a pretty decent machine anyway.
I personally want more features... and more features means more memory and I'm happy to give it.
I did try Atom for a week and it wasn't quite ready for what I wanted to do with it and so I moved back to Emacs. I'm going to keep any eye on it though because the extensibility is CRAZY
Re: (Score:2)
Re: (Score:2)
If you're a developer you've probably got a pretty decent machine anyway.
I develop on the crappiest machine I can tolerate. It's a not-so-subtle way to encourage me to keep apps fast and light.
Re: (Score:2)
And it requires Mac OS X 10.8 or newer.
How an application based on HTML, JavaScript and Node.js needs one of the most recent OSes is bejond me (running 10.6.8)
Re: (Score:2)
I was thinking about the description of atom, and basically it sounded like the principles of emacs only doing it badly by using javascript instead of lisp.
The only "advance" here I think is that it allows more UI customization (presumably that's what the CSS is for).
True path, was emacs (Score:2)
26114 user 20 0 35532 8680 4344 S 0.0 0.9 0:12.53 gvim
0 root -20 0 2 1 20 Ss 0.0 1e-10 0:10.00 ed
-> Patrick J. LoPresti
Re: (Score:3)
It's nice in some ways. But not only is it big, as you point out, it's also very S - L - O - W and uses a HUGE amount of CPU resources for a mere editor. It's like trying to kill an ant with a cannon. A big, heavy cannon.
I tried it out for a few minutes, looked at the memory and more importantly CPU usage, and wiped it from the hard drive. It might be useful if you have a computer that is less than a few years old. But for now, I think I'll
Re: (Score:2)
Because nothing out-of-the-box will be a fit for everyone. Thus you want, or rather need, customization. Once you have customization you want more customization. So you end up with Emacs (or atom, or vim, or any of a countless number of other extensible editors). So instead of one editor for C, another for Java, a third one for HTML, a fourth for Fortran, other modes for plain text, and so on, you have just one editor that can do it all (remember emacs was developed back when programmers were expected t
Emacs (Score:5, Funny)
Re: (Score:2)
Like EMACS, it comes with a reasonable vim mode, although not a very well tested one (o creates two new lines and switches to insert mode, rather than one). The rest of the (non-vim) key bindings are a bit odd (e.g. command-N creates a new tab, not a new window), but it seems useable.
The thing currently that makes it worse than Vim is the lack of libclang integration for autocomplete. I don't know how easy it is to write add-ons that link to a C library (not very, I'd imagine) and without that the auto
Re: (Score:2)
Node.js (what this is built on) has very easy ways to load C++ add-ons, and those can link to C libraries just fine. In fact a lot of node package are done that way.
Re: (Score:2)
Re: (Score:2)
The primary target audience is closer to web developers and app devs in general. That said, there's 800+ add-ons and packages that were created during the beta...if none of those are in, then yeah: most developers don't have any interest in using this kind of editor to write C code.
It kind of make sense if you think about it: the whole draw is you can use web technologies to hack it. There aren't a whole lot of C developers who could care.
Re: (Score:1)
But does it have... (Score:5, Funny)
a vi compatible mode?
Re: (Score:3, Informative)
What another crap summary... (Score:1, Troll)
Here is a link to the actual website:
https://atom.io/ [atom.io]
ps: it's only available for Macs
Re: (Score:2)
Why troll? Also, not only Macs but apparently only 10.8 and up so...no go for me.
mac only? (Score:5, Funny)
Hmm currently only available for Mac..
On one hand, smacks of hipsterism. on the other.. as a windows user, now i know how it feels.
Re:mac only? (Score:5, Informative)
Re:mac only? (Score:4, Interesting)
Re: (Score:2)
Try out Brackets http://brackets.io/ [brackets.io]
Very similar to Atom's architecture, also open source, more mature community, better visual design (IMO).
Re: (Score:1)
The fact that it is only available on Mac makes me wonder if Atom is that great ...
Unless I didn't understand the idea (not easy to find out what Atom is, actually), they're developing a javascript editor on top of Chromium. How could that NOT work on Linux and Windows ?
What the incentive for doing yet another editor ?
Having an editor running inside a web browser to develop javascript code could be a nice idea (especially to instant-test code), but looking at their website I'm a bit puzzled ...
Re: (Score:2)
Their readme speicies requirements for building on Windows/NT and GNU/Linux. It could be that they have notyet created binary packages for other distributions.
Re: (Score:2)
It will be on more platforms soon - they just chose Mac first because that's primarily what's used at GitHub.
Re: (Score:2)
When you use it you can't tell its running in Chromium. Its the same development model used for the Blizzard launcher for Diablo/WoW/Starcraft, for a lot of Adobe applications, etc. Run in node.js, use a Chromium window (that looks like a native window) as the rendering canvas.
Developing in node still ends up calling native code (for I/O and stuff), and that has edge cases. A naive example would be, let say, if you didn't properly handle slash vs backslash, then you could break things in Windows vs Unix (i
Re: (Score:2)
I'm actually surprised that I had to dig down into the Faqs to see text that said "Mac only right now". I thought maybe my adblockers was hiding anything but the 'download for mac' button.
I don't know about other folks but Mac has never been the assumed default for any program I ever download, especially editors aimed at developers. The ones that are actually say it up front. Otherwise we assume windows, being that it's still the majority desktop OS. Failing that, slashdot links tend to point at linux a
Re:mac only? (Score:5, Funny)
I don't know about other folks but Mac has never been the assumed default for any program I ever download, especially editors aimed at developers.
(emphasis mine)
I think maybe they only provide the Mac binaries because us Mac users are (in their opinion) too stupid to build from source?
https://github.com/atom/atom [github.com]
You will see all the requirements in the readme there for building on Linux, Mac and Windows.
Have we, as developers, collectively forgotten how to build from source?
Re: (Score:2)
That's not it - I've been in the beta for a long time... they are just targeting Mac first.
In the web develop / startup world around San Francisco (where GitHub is) Apple computers are fairly popular... and that's apparently what GitHub primarily uses.
Re: (Score:2)
Indeed, Linux distributions have binaries in their repositories. It's just windows that was left out, and, being developer-oriented, it's far from being the first time this happens.
Re: (Score:2)
You will see all the requirements in the readme there for building on Linux, Mac and Windows.
These instructions work as well. I got it to run in OpenSUSE 13.1 in a few minutes. No problem if you have clues.
as developers
Mostly just office trolls around here now.
From the GP:
I'm actually surprised that I had to dig down into the Faqs to see text that said "Mac only right now".
You haven't been keeping up. OS-X is widespread among open source developers today. Watch a presentation related to open source work made any time in the last five years and you'll see Macs everywhere. Windoze is rare. Linux is ubiquitous in pseudo terminals. Otherwise the only time you see Linux is at Linux conferences.
This isn't surpr
Re: (Score:2)
While it can be used for everything, since its built on node/chromium in pretty much all JavaScript, the majority of heavy JavaScript development ends up done on Macs, for better or worse (node.js originally didn't work on windows, and a lot of people don't want to deal with Linux UI....that leaves Macs).
Not saying I agree, but thats basically why. Bleeding edge web development is overwhelmingly done on Macs.
Re: (Score:2)
I just replaced BBedit with Atom, because I'm a PC/Unix user stuck using a Mac by my employer and I find BBedit to be less than ideal. I want to highlight a line by pressing shift-end, BBedit won't do that and can't be configured to it. But it's the default in atom. BBedit isn't terrible, it certainly was the best of breed before atom. Yes, it's a resource hog relatively speaking, but nothing compared to the 4 dual display desktops full of stuff I have open and running.
Granted I have bettertouchtool and key
Re: (Score:2)
BBEdit [barebones.com], because it doesn't suck.
I tried to use BBEdit but BareBones refused to give me a copy of its source code. TextMate is much better in this regard; it's under GPL since a couple of years ago.
"...we spend most of our day in a text editor..." (Score:5, Funny)
Man. And I thought my cubicle was cramped...
Komodo Anybody? (Score:5, Informative)
I'm here at work using it right now...anyway, Komodo runs on Linux, Mac, Windows and is based on Mozilla...it has also been free and around for quite a while...extensibility? Yep...
I don't get why everyone reinvents the wheel when they could instead make something that already exists, but is more complete better.
Re:Komodo Anybody? (Score:5, Funny)
Komodo doesn't support Google Analytics, and it would be difficult to convince people to install it as a plugin.
Re: (Score:3)
Not sure if serious or trolling.
That means that I've done a good job.
Re: (Score:3)
In principle it should be possible to imp
Well at least (Score:3)
At least the advantage is honestly described: web technologies are familiar to a lot of people, so the environment doesn't pose a high barrier for entry.
If the accent had been instead on being a "web platform", I'd feel compelled to ask how much of it is compatible/portable to other browsers. Chromium and node.js are sure open source but much in control of a single company, did they choose to mess with it, forks would happen but they would be painful. Other projects are sure in control of a single company but they either have already forks like java, mysql, or have a company that is too little to start thinking like the average evil megacorp.
Requirements (Score:2)
I wonder whose requirements this targets.
My own requirements are:
Therefore: vi or vim. Virtually no other editor even comes close with respect to point 2.
Re: (Score:2)
split second loading, saving, editing and searching of large text files
Depends on the use. I'm increasingly using binary formats for things like CPU streamtraces, which can grow very quickly into the hundreds of MBs, and not using a text editor for exploring them. Source files tend to be a few KB, tens of KB if they're in dire need of refactoring, hundreds of KB if they're machine generated (and therefore rarely - but occasionally - hand-edited). As such, I don't mind my text editor having a size limitation too much. It does mean that I can't use it for everything, but mos
Re: (Score:2)
Many of the files I edit via SSH are configuration files in /etc, or relatively large generated files (output files). For the first case I would not want to share /etc with other hosts. For the second I would not want to have to transfer a large amount of data between hosts when it is unnecessary (and probably slow) to do so. For clarification, I could use a pager to view the second case files since I will
Prime Example of Software Bloat (Score:5, Interesting)
Re: (Score:2)
It takes a lot of Sleep(1) calls to pad a program out to that many megabytes.
Re: (Score:2)
And my current Emacs: 150MB
What's your point?
You don't have 100MB of RAM to spare?
Re: (Score:2)
EMACS (Score:2)
EMACS:
"An OS inside an OS"
"The Emacs operating system needs a better editor."
"Linux is just the bootloader"
Re: (Score:2)
Not only this, but considering how uninformative this site is, I'm trying to figure out just what I would gain, if anything at all, over Sublime Text right now. Visually from their screen shots, it looks mostly the same? So, besides that, what features ARE there that make this project unique compared to other offerings?
Re: (Score:2)
I have 8 GB of RAM. I would never notice 67 MB of RAM.
Re: (Score:2)
"web-based" (Score:2, Insightful)
if it runs in a browser, why is it OS X only? someone missed the point.
Re:"web-based" (Score:4, Insightful)
Re: (Score:2)
It does not run in the browser. It's a standalone application that is based on web technologies.
Re: (Score:2)
it only runs in a browser in the sense that its using a chromium window. Its still a client app that runs locally, and hooks up into native code for some operations.
They don't need to do a whole lot to make it work in other operating systems, just a few edge cases (and some people already got it to run in Linux and stuff).
Slashdot (Score:2)
So when's Slashdot going to fix this text editor?
Oh that's right, Beta...
Yet another editor (Score:3)
Re: (Score:1)
Some people don't prefer it.
Re: (Score:3)
This one is targeted more to people who would use something like Sublime Text. A bit more graphical than GVIM and stuff.
Also, in this particular case, everything is in CSS/Html/Javascript running on Node with Chromium. Want to change the color of your modified files (git) in the treeview? Its just a CSS selector away. Want to add a right click menu that does something completely custom? Javascript. Want to add a new screen? HTML.
Considering a lot of people who would use this editor do front end web developm
Weak (Score:2)
A replacement for Sublime Text (Score:4, Interesting)
A lot of the reason behind developing Atom is that Sublime Text has become very popular in the last few years with people wanting something between a text editor and an IDE, however Sublime Text is not open source, has a pretty poor extension API, has basically no documentation at all, and the developer ignores 99.9% of attempts to communicate with him. This situation isn't ideal, hence the development of Atom as an open source alternative - when it gets up to spec I'll probably switch over myself.