Are there any Atom users who aren't hacking Atom?


@mark_hahn Just to weigh in on your original question, a bunch of my coworkers are using Atom for their dev, but most are only doing tiny hacks, not really making packages per se. I think most devs are use to package development being harder and haven’t yet discovered how easy it is to do with Atom :smile:

Category suggestion: Lounge

haven’t yet discovered how easy it is to do with Atom

I’ve been using nothing but coffeescript on the server and browser, and node, for three years. So I fell into Atom head-first. I don’t know hard it is for people new to node/coffeescript. Luckily there is almost no async node stuff so they don’t have to learn the hardest part.

If I wasn’t hacking on Atom I probably would still be on Webstorm for now. Atom is admittedly a bit green around the gills at this point. Things like not scrolling when selecting. But the upside potential is unthinkably big. I see no reason why it wouldn’t have the astronomic growth node and npm have had.


That’s true! Not everyone is a web dev or using node, javascript, coffee :smiley: I do think a lot of developers have played with the DOM at one point or another though. It’s super powerful and super refined over the years. The chrome/webkit dev tools are top notch.

Apm, is the best package manager I’ve worked with, and of course npm makes dev, well, awesome.

One thing I use in some of my other work is Polymer. It’d be cool to see web components make their way in Atom. Has anyone ever done something like that?


i do coffeescript but haven’t created any package.
only when atom is blaming me on errors then i check the source and change something like adding a check for undefined. i am not pushing such changes into a patch because i am not sure if my hack is correct.

but i like to check and read through the core code. chasing for cool new tricks and stuff :smile:
settings-view is the only package i would like to hack and push some code to github. because since the beginning we see here the same featured packages but have to go page to find about new packages. that needs to be changed and i think its easy but challenging enough to get my code accepted :smile: - if its done sometimes :wink:


I haven’t done any packages yet. I find that anything I need someone else has already tackled, or if it’s more complicated I wouldn’t know how to do it. I’m not a developer per se, so… I did the package tutorial and played around with a few others. But really just to explore.

And so, apart from minor tweaks in my style sheet and a couple of selected package installations, I am not doing anything to it.

Edit: Almost forgot:
I think I did have two PRs merged in not too long ago, both for adding classic copy/paste/cut logic for Windows and Linux. You know, the kind of “hacking” that is done by adding the odd line or two to key maps.


I’m in no way shape or form a web dev and my DOM, java/coffeescript knowledge is incredibly basic. I actualy write .Net code in winforms so I doubt I could get that much farther from the guts of atom if I tried!

That said I HAVE hacked on atom. I saw something on this community, though that can’t be too hard, and with some guessing and googling of the language I got a PR into atom/atom about 6 weeks ago. I also ran the conversion routine and provided the language-vbdotnet syntax.

Cofeescript seems reasonably straight forward but as with anything the trick is knowing the libraries and the system, not so much the language. Was odd not having a built in error checker and debugger though.

Other than that I am using both the windows and OSX versions I have a window on what differs or whats broken on 1 side and so have been raising issues as needed to try help the product improve even if I’m not coding the fixes.


Cofeescript seems reasonably straight forward but as with anything the trick is knowing the libraries and the system, not so much the language.

Coffeescript is just a thin layer over javascript. So the libraries and system are actually the ones available for javascript. Atom uses nodejs which is the actual library and system.


A thin, delicious layer … like the cream cheese frosting on carrot cake :grinning:


Now I want cake, you owe me a cake.


That much I worked out, but googling javascript stuff was kind of a big scary mess of results. Mostly awful results. Perhaps I should read Javascript the good parts, but instead I will carry on blindly and hope for the best.

I did try some coffee script googling but was usually making the assumption you know JS. I don’t.


Perhaps I should read Javascript the good parts

The good news is that coffescript removes the bad parts and provides a few more new good parts. It is much less painful to use than JS.


That said, JavaScript as a powerful object model, capricious, monstrous sometime, but rather interesting. Monkey patching is, for instance, while a sensible technique, a wonderful hacking tool.

It make me think that there’s a opposite side to this thread which would be “how to hack Atom”, for instance I guess a lot of people does not have yet the reflex/knowledge of using the devtools to understand or test things (you know them when you work in the web field but not everyone does).


I’d find that useful. Most of the work I did was based on guesswork, and googling. Some pointers to resources on learning the languages, libraries and tools required would go a long way for those motivated to read them.


Yes. I’m using Atom to learn front-end web development, more or less. (Atom is more fun than a random web app.) There’s just a lot to be learned here, Atom builds on web technology.


And nodejs. It is strange how you use server-side and client-side technology mixed together.



I don’t hack on atom; neither does anyone at work I work with.

I wrote two packages, and discovered that using coffeescript didn’t fit my workflow (no specific critique of coffeescript, simply that I don’t care for it); however its very difficult to write plugs that tap into the windowing system without coffee script.

I think using coffee script as the core profile for the editor has severely limited adoption of people writing plugins.

Certainly coffee script has many users; however, there are many many more people who write in other compile-to-js languages, or in pure js. By using coffee script those developers have no path (except to learn coffee script) to create packages.

It would have been trivial to have the base editor support a javascript API and allow any compile-to-js language (including coffee script). Terrible decision… but, it’s free, so who am I to complain. I use atom anyway, I just don’t hack on it.


its very difficult to write plugs that tap into the windowing system without coffee script.

Atom fully supports writing packages in pure Javascript. Check it out.

It helps to be able to read coffeescript in order to look at and copy existing code. Luckily coffeescript is much easier to read than write. I would be surprised if it took any JS programmer more than 30 mins to be fluent in reading CS.

There are also several easy ways to convert any coffeescript to javascript for you to read. I have a chrome plugin that converts to/from coffeescript and javascript with one click.

P.S. I suggest you give CS another chance. Write some stuff in it. You’ll never go back. My philosophy is that if something is better I use it. I don’t care what others use.


Hm. I started with that, but then I had to write a view class. I took a quick look at the generated JS and I saw that there was this custom magic to define classes and to derive classes. So I thought using CS is the path of least resistance, here.

In the last month or two, has there been documentation written that explains how to extend classes in pure JS?


That magic was chosen because it is one of the most common patterns used in JS.

I don’t know. I would be happy to write one. Give me a few days and you can be my beta user.


Oops, I didn’t mean it like that. The magic made sense to me, but then I read that there were other libraries that implemented slightly different magic… So I thought if I use JS I either have to copy the magic which seemed iffy, or use some other utility function that might implement the wrong thing.

Sounds cool. I’m not sure if I want to go back to JS, now. I mean, I tried CS and it doesn’t hurt. But still there is a voice inside me that says maybe it’s not needed. So I’m really of two minds about this. In any case, the docs would be useful to lots of people, and maybe reading it helps to decide whether it’s good to try plain JS :smile: