Atom 1.11
blog.atom.io
blog.atom.io
Day 1: Atom and Google Chrome: https://mobile.twitter.com/Edditoria/status/7858488116043776...
Day 2: Sublime Text and Safari: https://mobile.twitter.com/Edditoria/status/7858488116043776...
I didn't disable any packages and extensions, because I need them for daily work. So the result represent what I actually need. I also intended to avoid activities other than coding and checking email.
In short, Sublime Text and Safari survive longer. But Atom and Chrome are usable, at least.
For me, I will continue to use Atom and Chrome. Because Atom is more direct and user-friendly to me, and I feel much better on Chrome Dev Tool (sorry but feel better than Firefox). Another reason is that I can show others who want to learn programming. The licence for ST is not cheap for them.
I know 2-days testing is not enough, so would try again if I can.
First time to comment here. Sorry for bad English.
I'm only half joking. In its graphical incarnation, it's not exactly pretty, but fairly user-friendly, minus a few relatively easy-to-learn keyboard shortcuts. Within month it'll be second nature to them.
But I still wouldn't recommend it.
I took a career assessment test about 20 years ago through this organization => http://www.jocrf.org. They said I tested in the bottom 5% of all people they've tested for finger dexterity. My fingers are just clumsy. I knew it, and they provided some validation for that.
At this point, using Atom (or any GUI IDE) provides me with 80%+ of the functionality I need when coding. If I get to a point where my IDE mojo starts becoming a blocker for me, then I'll revisit optimizing my IDE skillz.
I don't know anyone that learned it as a first editor (everyone already knew vim or emacs) but it seems like it could be a much better experience for someone new.
Personally, I don't think it would be good to introduce the newbies to modal editing right off the bat. They'll most likely have to learn a whole new set of keyboard shortcuts. Don't make them learn a whole new editing paradigm, too: they'll have given up before you can say, "which mode am I in now?"
Still nowadays, I only use it when I cannot use my favorite set of IDEs, usually Clojure or being in a space constrained place.
Then again, I never really got on with IDEs: Too complex, too hard to customize, too specific to one language (for the most part), too big a learning curve with not enough benefit.
It was the only thing that I somehow could use to try to get an IDE like experience during university days (comparing with my usual Amiga/Mac/Windows tools), on our UNIX environments, initially AIX and DG/UX workstations.
Eventually coupled with DDD for a sane debugging experience.
So VI vs Emacs? Definitely Emacs.
Emacs vs IDE? Only when I have to.
However, I must say that if I was asked the question "Emacs or IDE?" The answer would be "EMACS!" said rapidly and with great force. I never really understood why people like IDEs. Maybe I've just been using the wrong ones. It might have something to do with the fact that most of my IDE experiences is tied to Java, a language I find so unpleasant that I have to cleanse myself with Lisp, Python, Ruby, Haskell, Rust, or some other, equally pleasant language to get the bad taste out of my mouth after using it.
It also could be that the support for the Lisps in Emacs in unbelievably good. It's not as good as the Lispms or some of the proprietary IDEs, or so I've been told, but I can't afford either, and those only work with one dialect of Lisp, whereas Emacs works with all the popular ones and a few that aren't.
The thing, is that Emacs doesn't offer many of the tools Lisp environments offer, is like trying to judge Smalltalk developer experience by using GNU Smalltalk instead of Squeak or Pharo.
Your last sentence was a bit scrambled, but I gather you're saying that other Lisp development environments are superior to Emacs. That may be true, but most other Lisp environments are either in the Emacs family (Edwin, Hemlock), not superior to Emacs in any way (Dr Racket), or really expensive, so I know nothing about them (LispWorks, etc.).
So in conclusion, I'll take arguably inferior but really really good over allegedly superior but very very expensive.
Xerox Interlisp-D was similar mind-blowing.
Regardless, I don't see myself using either or their descendants any time soon: Emacs is a very good environment, and I don't have several grand to spare.
Yes, the UI is awkward, but I've never really had any issues with it. It's functional.
Yes, Emacs isn't multithreaded. And yes, this can sometimes get annoying, although it's quite rare for me to actually have trouble with it. And slave processes, while expensive, are cheap enough.
In any case, threading support is on the todo list, so it may be done sometime this century.
You seem to be misinterpreting me quite often. It's ONE issue. A development environment which is not multithreaded, is not very advanced.
> it's quite rare for me to actually have trouble with it.
No surprise: Blub paradox at work. Your tools limit your thought.
If my Lisp Machine would be single threaded, it would suck.
> Yes, the UI is awkward, but I've never really had any issues with it. It's functional.
Most Lisp-based development environment have much better UIs. For example in LispWorks or on a Lisp Machine the keychords are shorter. The Dynamic Windows UI of the Lisp Machine is still light-years ahead of anything GNU Emacs.
Here I made a demo how the documentation system works on the Symbolics. It uses Zmacs (the Emacs editor on the Lisp Machine, which Stallman used before he developed GNU Emacs) a component to write documentation records. This stuff had been developed in the mid-end 80s...
Here Kalman Reti gives a demo of a Lisp Listener on the Symbolics and debugging mixed Lisp/C code:
Seriously, give the comma a break! It's starting to actually confuse me.
Anyways, on the subject at hand... A lot of the work Emacs does is either 1) manipulating text onscreen, where multithreading doesn't matter, or 2) communicating with subprocesses, which is usually pretty close to multithreading in any case. MT would be nice, but it's not as important as you think it is.
>No surprise: Blub paradox at work. Your tools limit your thought.
Oh, it totally sucks that there's no MP, it's just that there's usually a workaround: This is Unix, not DOS: we can spawn processes if we have to.
>Most Lisp-based development environment have much better UIs. For example in LispWorks or on a Lisp Machine the keychords are shorter.
If I want shorter keychords, then I'll bind them myself. I'm not sure if you've noticed, but the rest of us don't have Knight keyboards at our desks: We have to make do with what we've got.
>The Dynamic Windows UI of the Lisp Machine is still light-years ahead of anything GNU Emacs.
You keep saying that, and have yet to show an adequate example. This seems to show that Emacs's UI is adequate. And for editing text, the thing I use my editing environment most for, it is.
>Here I made a demo how the documentation system works on the Symbolics. It uses Zmacs (the Emacs editor on the Lisp Machine, which Stallman used before he developed GNU Emacs) a component to write documentation records. This stuff had been developed in the mid-end 80s...
It's a bit nicer than Emacs's, I'm willing to admit, but it's quite close, actually.
>Here Kalman Reti gives a demo of a Lisp Listener on the Symbolics and debugging mixed Lisp/C code:
That is actually genuinely cool, but it's not something we can have anymore: Most of us are on UNIX platforms, which don't really allow for this kind of debugging quite as well as the old Smalltalk/Lisp systems. But Emacs does have GDB integration, which is the next best thing.
It looks a bit like this - https://www.dropbox.com/s/vqjrz2wiwuxho4z/Screenshot%202016-...
The machine was in sleep mode in day 1, but I forgot to put it to sleep mode before closing the screen (I hate this the most at OSX 10.10) in day 2. You can see that there is a little bit different between 2 charts.
This machine is MacBook Air 13" 2013. The battery goes down to 86% design capacity (7150 mAh) according to coconutBattery.app
I haven't really used VSCode much beyond a quick "check out", but the majority of comments I read are the opposite. That Intellisense "just works" and that tern very much suffers from the "open source documentation" issue...
Can you go into some more details about the pain points or some pro/cons of each?
VS Code's intellisense (which uses typescript for both js and ts files) however requires definition files for any dependencies to be installed separately (which may or may not exist/be up to date), requires you to explicitly exclude stuff like your node_modules folder otherwise it will simply stop working with no error message. This gets worse if you have multiple nested node/npm projects as is common with, for example, electron projects where you have to make sure you explicitly exclude the paths to any node_modules directories under the jsconfig.json root and you'll need separate jsconfig.json files for every project (which might be what you want, but isn't strictly required with tern like it is here). Another issue is that since vscode is clearly geared towards typescript, a variable's type is determined when it's declared and only then so something like "let app;" sets the app variable's type to "any" which it stays for the entire file no matter what object is assigned to it later.
There are some things I like, such as the ability to define JSON schemas and a number of the issues above don't apply when using typescript but when writing regular old javascript it's pretty lacking.
Outside of that, i havent had this happen. However, if it is simply annoying in your editor you can put them in .gitignore and either tell vscode to not list anything in the .gitignored list, or explicitly ignore files and folders by default.
Although it could probably be argued now that Atom has a better plugin ecosystem in regards to your comments about customization.
WebStorm is doing pretty well, except that I don't like the customization options ( they are 1/10 compared to Atom / Sublime ).
But kudos for Atom team, because they brought Electron, which is a huge game-changer.
It's better because much of the features many people hope to have is built by the professional team and built-in. You don't have to waste a weekend to check 3 alternatives for every feature you want that may not be as good in the end as they are created by developers whose skill vary greatly.
I got tired of tuning the editor when things work out of the box and even better than properly equipped atom/sublime so I can actually get stuff done.
I hope these discussions include more of other non free apps than free vs free.
I've tried VS Code and liked it - if anyone knows of an equivalent/replacement for Hydrogen in VS Code I'll make the switch.
Scientific tools (Jupyter/IPython)
- Executing blocks of code (cells) in a Jupyter Kernel
- Managing kernels (restarting, stopping, interrupting and selecting different kernels)
- Viewing interactive graphs, HTML, SVG, laText output from Jupyter from within Visual Studio Code
Thanks for mentioning this, I wouldn't have noticed otherwise :).
This time they added a configuration option for the large file warning threshold. This isn't enough.
Anyone else have the same problem?
I've seen things like vim have problems with files like that, I think mostly from trying to syntax highlight the visible region.
The kind of files that choke Atom are large data files that there are usually better/different tools for, that have very different requirements from code editing. And that has little to do with the relative huge-ness of your projects.
It's already been proven that Javascript can be fast for this kind of thing. So there is something in the infrastructure that can be improved.
Last year I was working on a game demo under time constraints and to cut a corner I base64 encoded a bitmap font. Every time I opened that 32KB file it began to slow down because that one big line.
That being said I still use atom daily but not one big files or ones that contain big lines.
I think the problem is simply that their stack handicaps them severely in this respect. I need my text editor to be able to handle large files and to be extremely fast.
When you need to edit data files or other huge files - don't use Atom.
But on the bright side it's very clear and useful to have python lint output from pyflakes or similar. gvim+pyflakes is decent, but Atom's presentation feels more modern. Atom's markdown renderer is very convenient.
Python in VS Code is great. Best debugging experience I've had with python.
Disclaimer: Emacs user.
For example, just a random snip out of a random file:
let tree = root.render({state: store.getState(), push: store.push})
let rootNode = createElement(tree)
let oldRootNode = document.getElementById('root')
oldRootNode.parentElement.replaceChild(rootNode, oldRootNode)
store.subscribe(() => {
let newTree = root.render({state: store.getState(), push: store.push})
let patches = diff(tree, newTree)
rootNode = patch(rootNode, patches)
tree = newTree
})
VS will get the indentation right, but Atom will not(notice how "let rootNode..." and everything after that is pushed in). const login = (email, password, remember) => a.chain(
submitting(true),
a.ajax({
request: {
url: '/api/sessions',
method: 'POST',
data: { email, password },
},
callback: (status, data) => (
a.chain(submitting(false),
a.setToken(data.token, remember),
a.setUserId(data.userId),
a.setAuth)),
})
)
const onEmailChange = (push, value) => {
push(emailChange(value))
}Granted maybe this is just some truncated example? I hadn't run into weird spacing like this yet so maybe open a bug with something small with reproduction steps?
`onEmailChange` doesn't even have an open or close curly bracket, it is the indentation format that is confusing us. Below is the same code indented by VS.
const login = (email, password, remember) => a.chain(
submitting(true),
a.ajax({
request: {
url: '/api/sessions',
method: 'POST',
data: { email, password },
},
callback: (status, data) => (
a.chain(submitting(false),
a.setToken(data.token, remember),
a.setUserId(data.userId),
a.setAuth)),
})
)
const onEmailChange = (push, value) => {
push(emailChange(value))
}
`const onEmailChange` shouldn't be under `login`. If you count the brackets you will see that `login` ends before `onEmailChange` starts. But for some reason Atom doesn't understand that.Maybe my syntax is different than most, but I see problems like this all the time with Atom. The exact same files indent fine in VS.
Regarding filing a bug, I thought about it, but then I didn't think anybody would care about this.
Project Manager - https://atom.io/packages/project-manager (this one is a must, IMHO)
Sublime Style Column Selection - https://atom.io/packages/Sublime-Style-Column-Selection
File Icons - https://atom.io/packages/file-icons
Sort Lines - https://atom.io/packages/sort-lines
...and a pile of linters is most of my setup.
When I use Sublime, I miss `terminal-plus` so much. And `pigments` works better too.
Here's my complete package list:
~/.atom/packages
├── Stylus@3.1.0
├── atom-beautify@0.29.13
├── autocomplete-meteor-packages@1.3.0
├── autocomplete-paths@1.0.2
├── coffee-compile@0.22.0 // disabled, use source-preview instead
├── language-pug@0.0.19
├── linter@1.11.18
├── linter-coffeelint@1.1.2
├── linter-jade@0.3.2
├── linter-jshint@3.0.0
├── linter-stylelint@3.3.1
├── linter-stylint@2.2.4
├── linter-tidy@2.2.0
├── merge-conflicts@1.4.4
├── meteor-api@2.20.0
├── minimap@4.25.0
├── minimap-find-and-replace@4.5.1
├── pigments@0.37.0
├── source-preview@0.5.0
├── source-preview-pug@0.2.0
├── source-preview-sass@0.1.6
├── source-preview-stylus@0.1.5
└── terminal-plus@0.14.5Even better would an option to disable native full-screen in macOS. Does anybody know if that is likely to ever happen?
This was a huge deal breaker for me, I hope it is fixed soon.
EDIT: I love Atom in general, it has some very convenient features, e.g. the git info integrated in the UI and the file sidebar options which are more complete than other editors; I did not mean to be overly negative with my comment and I'm sorry if it seemed that way.
Can anyone use it to type characters including the AltGr modifier?
A text editor which doesn't support keyboards after having been out for years?
Just ditch that thing for something this side of the millennium marker eh?
Emacs, Vim, VS Code or whatever. They all support keyboards and they're all open source too.
AltGr worked fine in DOS editors like the Borland Turbo C 1.0 "IDE" from 1987.
I thought the Emacs reference would give it away, but oh well.
The first public release of GNU Emacs, the emacs which, along with its derivatives, is pretty much the only one in use today (save those oddballs using lispms, and the other oddballs using Hemlock derivatives), was released in 1984, and is 32 years old. The original emacs is 40 years old.
I miss ITS and TWENEX every so often...
If you want to scratch that ITS itch, you can emulate it, of course, or you can request an account on UP (http://up.update.uu.se).
If you want to know how to emulate ITS, or just want a refresher in how it works, I recommend http://its.victor.se/wiki/
That's comical and sad at the same time.
A lot of color schemes are imperfect and I'm weird so it bothers me a lot. With Atom I can fix them in a very short time and I don't need to learn anytihng new.
Has there been any progress on this? Does neovim make this easier?
P.S - Do VSCode team contribute back to Electron?
I have 15 years dev exp. Most other IDE have similar productivity to each other - Atom is a step up.
No?
Well, then, I'm still not using Atom: unlike many, I don't mind JS, but not having a uniform buffer model is a major regression from Emacs, and the features we're getting instead just don't cut it.