Atom now using Io.js
github.com
github.com
Edit: to clarify, this is relevant because both Atom and NW.js use a webkit shell.
Why then would they still refer to "Node" in the release notes, all the way up to the most recent version??
"Fix initializing node integration in the webview when the page in it navigates."[1]
Difference is in the handling.
As a matter of fact, Visual Studio uses semantic analysis - classes show differently than other identifiers.
In any case, I've never heard of someone using non-regular expression CFGs for lexing. Are there cases?
I don't believe cordite is claiming that Atom's syntax highlighting fails because it uses regular expressions internally.
(I don't know if Atom's syntax highlighting even works that way, FYI. Though I would guess that it does.)
I don't know if it is also related to long strings in general on one line (have not tested)
That's a nice summary on the quality on web technologies.
2009: "Hey guys, we can now draw on a widget; we called it Canvas!"
2011: "Wow, look at this cool OpenGL wrapper that locks up your system in ways VoodooFX didn't manage to do in 1998! But you can use it on your web site, which is what people want, right, guys?"
It feels like we've redefined "progress" to mean "the same thing as 20 years ago, but worse"
More like the same thing as 20 years ago, but the dominant language is a LIS.. I mean a Schem... I mean it's a bit like Self.. look, it has garbage collection, a JIT, supports objects and goes somewhat fast. Oh, and it's used to drive a GUI made up of stringly-typed ... things that kind of looks like SGML and has no chance in hell of achieving good draw performance. But you can calculate fibonacci in CSS and get even worse performance than doing it at compile-time with C++ templates!
Also, for me at least, it's the principle of the thing -- we are talking about a measly few MB of text; if you can't even open that, IMO something has gone horribly wrong.
Some editors with "minimap" functionality (Sublime Text and Emacs that I'm aware of, maybe others) can give you a fairly good visual overview of large swaths of a file at once. Sometimes strange entries are obvious just because of the shape of the line and in those cases the minimap makes it easy to see when something unusual is happening.
Wait... we kind of need a text editor that can open the file, don't we?
VisualStudio handles them instantly, but even Sublime Text seems to take a bit of time "processing" it.
As for data files, we have XMLs (yeah, I know..) over 50Mb in size.
Atom is a long way from supporting such projects. This probably doesn't apply to most web projects, but 2Mb is far from a huge file :)
SOAP dependency?
Right now, Atom is just too slow when compared with other editors such as Sublime. Given enough time it shouldn't be an issue (maybe), but right now I think it's a huge pain point for a lot of devs.
In all fairness though: I wouldn't notice 99% of the time, and I can well imagine that this problem will disappear with time.
If atom has a daemon feature that I never found, or one upcoming, I'd consider it again. Until then my workflow involves too many client closes for me to not notice the significant delay that atom has when opening a new file.
Snark aside, feature X is rarely absolutely needed (you can replace your generics by some boilerplate; you can use grep instead of your text editor to process huge files), but in some cases it can make your work significantly easier and that's why people want it.
In my own case, opening video files in Sublime and having the hex and ASCII side-by-side made my job significantly easier when I was writing a parser. I could easily select portions of the data (e.g. an embedded metadata), annotate it with comments from the spec, then paste it in a unit test.
I have Atom installed, but see no reason to migrating since Sublime works well enough. My only concern is that the Sublime package ecosystem will likely start rotting now that Sublime itself is essentially abandonware, so at some point I might need e.g. autocompletion for Typescript and the best package will be on Atom, not Sublime.
- Database dumps (if you're dumping a database to a text file, how often will it be under 2MB?)
- Data, in general. Tab/CSV text files are still the lingua franca of non-hierarchical data and that will probably never change.
- Code you don't control or haven't refactored yet. OK, we can all agree that a 2MB source code file is probably "doing it wrong." But maybe you don't control it. And even if you do control it... well, you need to edit it to refactor it, right?
That said, I don't think the 2MB limit is a total death knell for an editor. I keep TextWrangler (OSX) and UltraEdit (Win) around precisely because they're good with larger files. If my primary code editor is good at large text files, that's a bonus, but it's not a total necessity.
That will gain it enough traction to prove itself in the market, and over the next few years it will fix all the problems such as the 2MB limit, and whatever else is there. And then, laggards (well, you're probably more of an "early majority" type of person in Crossing the Chasm lingo) will see enough value to join.
The editor is intentionally crippled.
I'm the author of the Zeus editor and I regularly use an old 1.25 Pentium with 512 MBytes of RAM to test the performance of the editor.
Even running on that 15 year old machine Zeus stays fully responsive while editing a 60+ MByte file.
For a modern day tool a 2 Mega file limit seems rather low.
I'm guessing that Zeus isn't based on a web browser but was designed from the beginning to be an editor.
So it too is limited by the total memory available to the application.
For a 32 bit Windows application the available memory comes in at around 2 Gigs and for a 64 bit Windows application that explodes to 8 Terra bytes.
So even if Atom was 32 bit it should have 2 Gigs of memory to play with.
I'm not sure why Atom does limit files to 2 megs, but if it is because of the expansion of memory then there must be some serious expanding happening there.
But Atom was also supposed to be an editor...
And well... it isn't. The biggest thing I can tell is that it's "hip". Meanwhile Sublime Text spins around it at 40MPH doing donuts.
I tried. I really tried to use Atom. But the text editor is just so slow and unresponsive, and that is a flat out dealbreaker for a text editor. Its extensibility isn't any better than Sublime's, and I feel like Python's a way better language than Javascript, so I'm happier tooling against Sublime.
I too wish Sublime Text was open source, coming from an open source development background, but I understand exactly how hard it is to develop open source software and feed and clothe yourself - people only buy "support contracts" for the first year and rarely renew, and only for software they feel is technically complex enough that they might actually need help or customizations.
For the record, I also backed GNOME Builder (which I also already find superior to Atom) in the hopes of some day it becoming the text editor and development environment I lust after. But my greatest fear is that more time will be spent on the shiny features and not enough time on the things I really care about like a decent GUI debugger so I don't have to live with poking at GDB, ahead-of-build compiler warnings/errors, and code refactoring tools.
- it's hip (dont discount that, its important. it excites people, and gives contributors a reaso to contribute)
- it's in JS - maybe not right for you, but there are lots of people who have the opposite opinion.
- it's open source: for some, a closed source editor is a deal breaker. Imagine the people who say "i hate emacs and vim; I'd love to use sublime but it's closed source" - they'll run to atom.
- its got corporate backing (gnome builder may die or wither, there are many who can believe that atom wont because of GitHub's backing)
So those are some pretty big niches right there!
Compared to Sublime, Atom developers can build much richer interfaces.
my own supercollider IDE in Atom:
https://atom.io/packages/supercollider
this is a full repl with a debugging call stack
haskell IDE:
https://atom.io/packages/ide-haskell
preview your development work in a web pane:
https://atom.io/packages/mobile-preview
but yet I think the packages are still young and there is much more that can be done. its early days.
ST3: Instantanous, VS2013: 1 second, Atom: 3 seconds
You know you've got problems when Visual Studio is running rings around you.
http://www.sublimetext.com/forum/viewtopic.php?f=2&t=17509
The product is alive but understandably slow with a single developer.
On the constructive side of things, anybody have recommendations for editors that do handle large text files well?
Obviously vi and emacs do. (Correct?)
OSX - TextWrangler and its big brother BBEdit are the best I've found - but this is not something I've extensively researched.
Windows - UltraEdit boasts that it can edit files of arbitrarily large sizes and in my experience this is true. UltraEdit costs money but I have an old version I keep around for when I need to work with bigger files.
For example Atom seems to think a 2 MByte file is large.
I personally think 100 MBytes files are quite large.
But some users with massive log files consider Giga Byte files as being large.
too bad its taking so long, i cant wait until full support comes to browsers
This would annoy me as a user, I don't care that you really want the await/async feature. ES5 is not that bad. It's not like the difference between Lua and Vimscript. Just use ES5 or compile your ES6 prior to distributing.
To be fair you could (and I have...) say the same thing about coffee script.
Just let the plugin authors write in whatever-the-heck they want and compile it to js, and distribute as js, like everyone else.
On the bright side, this shows that the github guys are thinking about things other than coffee script at last. Thank goodness.
The summary is, It Just Works™, efficiently.
However, that io.js ships with v8 4.1 is quite a large step ahead for dependants, not just for language features, but also under-the-hood stability and performance.
Of course, there is also everything that node 0.11.x has, plus a release schedule to match Atom's own release cadence. :)