Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Chromium Open Source

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).
This discussion has been archived. No new comments can be posted.

GitHub Open Sources Atom, Their Text Editor Based On Chromium

Comments Filter:
  • Maybe it's the past year getting to me, but I'm wary of a text editor that phones home. https://atom.io/faq [atom.io]
    • So turn it off?

      • It's still scummy to have it on in the first place.
        • by MightyYar ( 622222 ) on Wednesday May 07, 2014 @10:07AM (#46939279)

          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 MightyYar ( 622222 ) on Wednesday May 07, 2014 @10:09AM (#46939297)

          By the way, the data they are collecting:

          A unique identifier that is generated by computing the SHA-1 of the machine's MAC address.
          The screen width and height
          The version of Atom being used
          The name of each item opened in a pane such as EditorView, SettingsView, and MarkdownPreviewView
          The amount of time the current window was open for
          The amount of time the current window took to load
          The amount of time the app took to launch

          • 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?

            • 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

          • Or, let me put it a different way, which is perhaps more relevant:

            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.
      • Should be off by default.
        • Opt-in always results in lower participation than opt-out.

  • 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.

    • Should be with the users consent though, that a program starts sending data. For games, this consent probably comes with accepting the EULA.

      • 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)

    by serviscope_minor ( 664417 ) on Wednesday May 07, 2014 @09:37AM (#46938957) Journal

    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)

    • 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

    • 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)

        by _xeno_ ( 155264 ) on Wednesday May 07, 2014 @10:32AM (#46939563) Homepage Journal

        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.

    • by dotancohen ( 1015143 ) on Wednesday May 07, 2014 @10:48AM (#46939725) Homepage

      Remember back when EMACS stood for Eight Megs and Constantly Swapping.

      The new acronym is:
      A
      Ton
      Of
      Memory

    • 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.

      • 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.

        • 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

          • Emacs 10.7? What are you running? I have a a couple of dozen file buffers open, a Magit session, and some ag buffers and Emacs is reporting 39,748k. Meanwhile, my IntelliJ instance is reporting 1,341,992k with three files open. Each of my two Firefox instances is reporting between 450,000k and 500,000k, with less than 5 tabs each. When every basic application assumes it can grab between a few hundred megs and a couple of gigs or RAM, Emacs claiming 40 megs is sort of nice.
          • by narcc ( 412956 )

            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.

        • 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)

    • 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).

    • 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
      0 root -20 0 2 1 20 Ss 0.0 1e-10 0:10.00 ed
      -> Patrick J. LoPresti
    • I tried Atom when this was first announced a month or so ago.

      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
  • Emacs (Score:5, Funny)

    by Meneth ( 872868 ) on Wednesday May 07, 2014 @09:38AM (#46938971)
    Reminds me of Emacs; a decent operating system. All it lacks is a good text editor.
    • 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

      • by Shados ( 741919 )

        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.

        • Sounds good, but it's a very odd omission for an initial release of a text editor aimed at developers. Maybe they just figure most developers don't write C-family language code...
          • by Shados ( 741919 )

            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.

            • by q4Fry ( 1322209 )
              I maintain that Atom cannot possibly be targeting web developers if matching html tag open/closes is still a feature request [github.com] 3 months after its suggestion. It frankly shouldn't need to be suggested at all.
  • by loony ( 37622 ) on Wednesday May 07, 2014 @09:43AM (#46939035)

    a vi compatible mode?

  • Here is a link to the actual website:

    https://atom.io/ [atom.io]

    ps: it's only available for Macs

  • mac only? (Score:5, Funny)

    by rogoshen1 ( 2922505 ) on Wednesday May 07, 2014 @09:45AM (#46939069)

    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)

      by ilikenwf ( 1139495 ) on Wednesday May 07, 2014 @09:52AM (#46939133)
      Just use Komodo...it's less likely to spy on you by default, as it's based on Mozilla...more mature, too.
    • 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 ...

      • 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.

      • It will be on more platforms soon - they just chose Mac first because that's primarily what's used at GitHub.

      • by Shados ( 741919 )

        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

    • 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

      • by Evardsson ( 959228 ) on Wednesday May 07, 2014 @11:16AM (#46940063) Homepage

        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?

        • 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.

        • 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.

        • by Tailhook ( 98486 )

          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

      • by Shados ( 741919 )

        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.

  • by QilessQi ( 2044624 ) on Wednesday May 07, 2014 @09:46AM (#46939077)

    Man. And I thought my cubicle was cramped...

  • Komodo Anybody? (Score:5, Informative)

    by ilikenwf ( 1139495 ) on Wednesday May 07, 2014 @09:50AM (#46939113)

    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.

    • by dotancohen ( 1015143 ) on Wednesday May 07, 2014 @10:49AM (#46939749) Homepage

      Komodo doesn't support Google Analytics, and it would be difficult to convince people to install it as a plugin.

    • Having used both programs, there is one big difference between them (apart from the fact that one is an IDE and the other one is "just" a fancy editor): Atom seems to be easier to extend. The entire UI in Atom is an HTML document. If you want to change how things work you can mess with the stylesheet and voila, it works differently. Or you just outright replace part of the DOM. You even get the Chromium developer tools so you can see how everything works in detail.

      In principle it should be possible to imp
  • by marcello_dl ( 667940 ) on Wednesday May 07, 2014 @09:54AM (#46939163) Homepage Journal

    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.

  • I wonder whose requirements this targets.

    My own requirements are:

    • split second loading, saving, editing and searching of large text files
    • can log into any host via SSH and just use it
    • (nice to have) syntax highlighting and smart indenting

    Therefore: vi or vim. Virtually no other editor even comes close with respect to point 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

      • SSH for text editing is an ugly hack to work around the fact that we still can't do file sharing well.

        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

  • by TyIzaeL ( 1203354 ) on Wednesday May 07, 2014 @10:11AM (#46939329)
    • Notepad++: 7.3MB
    • Sublime Text: 7.6MB
    • BBEdit: 12.5MB
    • Atom - 67MB
    • It takes a lot of Sleep(1) calls to pad a program out to that many megabytes.

    • And my current Emacs: 150MB

      What's your point?

      You don't have 100MB of RAM to spare?

    • by darkain ( 749283 )

      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?

    • by mcrbids ( 148650 )

      I have 8 GB of RAM. I would never notice 67 MB of RAM.

  • "web-based" (Score:2, Insightful)

    by Anonymous Coward

    if it runs in a browser, why is it OS X only? someone missed the point.

    • Re:"web-based" (Score:4, Insightful)

      by Evardsson ( 959228 ) on Wednesday May 07, 2014 @11:10AM (#46939997) Homepage
      Or you could download the source (https://github.com/atom/atom) and build it locally. (I can verify that it builds and runs in Ubuntu 12.04 LTS). I think maybe the package managers for various *nix have gotten too simple, too many of us have forgotten how to do the configure, make, make test, make install dance.
    • It does not run in the browser. It's a standalone application that is based on web technologies.

    • by Shados ( 741919 )

      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).

  • So when's Slashdot going to fix this text editor?

    Oh that's right, Beta...

  • by SuperTechnoNerd ( 964528 ) on Wednesday May 07, 2014 @11:51AM (#46940477)
    Why would anyone need this when we have vi/vim?
    • Some people don't prefer it.

    • by Shados ( 741919 )

      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

  • It would had been so much more interesting to hear "Intel open sources Atom".
  • by spiralx ( 97066 ) on Wednesday May 07, 2014 @04:57PM (#46943357)

    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.

"What man has done, man can aspire to do." -- Jerry Pournelle, about space flight

Working...