7 ms·
Atom now opens files larger than 2MB
- andrewchambers 11y agoThis is 2015, 2MB files shouldn't be news worthy for a text editor. We seem to be bloating software faster than hardware improvements can offset it.
- mseebach 11y agoThis has nothing to do with bloat. While unimpressive not to be able to open files larger than 2MB, it's easy to see how and why such a limit came about, and as Atom seems to be styled as a text editor for programming, not really unreasonable, as very few human-created text documents get anywhere near 2MB.
- nightski 11y agoSorry, it's not obvious at all how the limit came about. That is pretty terrible.
- manigandham 11y agoAtom is a desktop/native wrapper around browser-like internals. The stuff inside is all just HTML/javascript/css running on node. There are some neat advantages, as well as just seeing how far a web interface for a desktop app can go. The limit came about because trying to open a 100MB file as an html page (even without all the extra styling and interactive options) will break any browser. It was just a hard problem to solve, having an HTML-based editor deal with so much text at once.
- rplnt 11y ago> trying to open a 100MB file as an html page (even without all the extra styling and interactive options) will break any browser. I'd love to test that. Anyone willing to privide an example file? HTML with css perhaps, no js. Should be pretty small when zipped.
- icebraining 11y agoAssuming you don't need anything complex, it's pretty easy to generate it. Here's a 100MB HTML file (compressed to 300KB): https://curl.io/get/yt7zbmfq/0eb1564f570236acf1d9f304855a7c79d4346fa9 https://curl.io/get/yt7zbmfq/0eb1564f570236acf1d9f304855a7c7... As a side note, VIM opens it in an instant /troll
- userbinator 11y agoThe limit came about because trying to open a 100MB file as an html page (even without all the extra styling and interactive options) will break any browser. I remember opening HTML files in that size range (they were logs) in IE6 around a decade or more ago, on a machine with <1GB of RAM, and it handled them just fine - there was a noticeable delay, but it wasn't unusable. Even searching for strings worked.
- mseebach 11y agoIt is obvious to me: I think they chose to load, parse, prettify, colour etc. and keep the entire file into an in-memory data structure, which is easy to reason about, and totally reasonable for "human sized" data. However, for arbitrary sized files, you need a mechanism for leaving most of the file in a raw state - that's harder (but not impossible, obviously). So, it makes sense to me that they would assume only "human sized" data (and expect users to use another tool for looking at large files, "do one thing well" and all that) and opt for a slightly simpler programming model. Apparently, they decided that the assumption was wrong, and so changed the model.
- dagw 11y agovery few human-created text documents get anywhere near 2MB. True, but as a programmer i very often generate and need to view files greater than 2MB.
- errtnsd 11y agoThis. Not to mention log files which commonly consume megabytes.
- bradleyland 11y agoNitpick inbound. You shouldn't open log files with an editor unless your intent is to edit the file. There are a whole host of tools (grep, less, awk, sed, etc) useful for parsing and exploring log files.
- mseebach 11y agoYou also very often do X, but that doesn't mean your programming text editor is the correct tool for doing X. Insisting on all tools having an X because X is a useful thing is how you get the very bloat the GP is talking about.
- lolhackernews 11y agoOn the other hand, virtually every other editor is the correct tool to do that task, yet this one is not. Are we supposed to accept that?
- andrewchambers 11y ago2MB is 0.025 percent of my ram, I shudder to think how much ram is actually being used by atom... At least the html looks pretty.
- userbinator 11y agoThe biggest problem I see is that this is an artificial, arbitrary hard-coded limit: https://github.com/atom/atom/commit/ec65a71d6dc8c3c44cb1b77a6cff09e9da39ccac https://github.com/atom/atom/commit/ec65a71d6dc8c3c44cb1b77a... If I have 64GB of RAM, I expect my applications to be able to use all of it when asked to, and not just give up completely. It's fine to slow down, and giving a warning "Opening large files may be slow. Do you want to continue?" would be nice, but working with a 2097151-byte file and giving up if it's 2097152 bytes is really unpleasant.
- zamalek 11y agoInterestingly, Visual Studio disables all editor services (cold folding, intellisense, etc.) except syntax highlighting on XML files bigger than 10MB. Code editors are surprisingly complex, it's not about simply putting lines on the screen. A good exercise in understanding the complexity is writing a simple syntax highlighting code viewer with native controls (not HTML) and see how much memory/CPU cycles your implementation uses for a 2MB file. Tons of optimization needs to happen - for example, as far as I know very little information about lines that aren't visible is kept in memory in Visual Studio - so called "virtual lines." I'm sure other more mature code editors have this type of optimization as well. From a native perspective this type of optimization isn't a complete nightmare to implement (although it's hard if you consider code folding), however, imagine trying to do it in HTML. The browser is still going too do all the reflow etc. for the lines that aren't even visible, eating up CPU cycles and memory. Even merely syntax highlighting is a problem. If you make one edit the entire file might be re-lexed: once again you need a unique solution for editors ("progressive lexing").
- pavlov 11y agoimagine trying to do it in HTML The question on my mind is, why do it in HTML? Especially if you're going to wrap that browser in something that approximates a desktop app anyway. Imagine if designers tried to do everything in PowerPoint for some unknown reason. "3D animation? Yeah, we can do it in PowerPoint with this incredible hack that makes slides sort of like faces on a mesh..." That's how it is with HTML today.
- linker3000 11y ago"Imagine if designers tried to do everything in PowerPoint for some unknown reason." A fair percentage of the employees where I work seem to have reached that point already - reports, training material, data for general discussion, GANTT charts with individual symbols that I guess must be manually moved every week. Gah!
- egeozcan 11y agoBecause of extensibility concerns and the sheer number of JavaScript developers? I'd agree if you say it's not a good compromise, but it is one nevertheless.
- deleted 11y ago[deleted]
- webtardsz 11y agoWow! 2MB! If only, you know, practically every other editor hadn't already reached this lofty milestone, like back in the 80's, then this might actually be a thing. But in 2015? Wow. Webtards at webscale! And beyond!
- georgerobinson 11y agoI once made the mistake of trying to edit a 50MB SQL file in Sublime Text. It took about 10 minutes to open. Once it had, every edit I made, every line I scrolled froze Sublime Text for another 2 to 3 minutes. I can only presume Sublime Text reads and renders the entire file at once, re-rendering on each edit, even if your window only shows 100 of the 10,000 lines. I love Sublime Text, however it is just impossible to use for large files. I suppose this is why we have stream editors like sed.
- dagw 11y agoHow long ago was this? I just opened a 40MB SQL file in Sublime Text2 and it took less than 40 seconds to open. Once open, editing and scrolling takes no time at all and searching takes maybe a second or 2. Doing a replace on a sting that appeared in every line took about 90 seconds. I agree the Sublime Text isn't as good as some other editors when it comes to large files, but 50 MB is generally not a problem
- georgerobinson 11y agoThis was about 1 year ago, Sublime Text 2.0.2, same version I run now. I'm waiting on Sublime Text 3 to be released before I upgrade.
- dagw 11y agoI'm also running 2.02 and, as I mentioned, have none of the problems you described.
- josteink 11y agoFunny how "untrendy" editors like Emacs (from the 70s!) handles 50MB files and larger without even raising an eyebrow, while all the "modern" editors seem crippled when asked to to do the same things. I'll stick to what works, thank you.
- deleted 11y ago[deleted]
- anirudt 11y agoA +1 for Notepad++ on this note.
- lelf 11y agoAtom changelog could be a good parody media (except that it’s not) There was this little gem a while back: “Fixed an issue where Atom would to fail to launch from directories that contained a file named undefined or null.”
- josteink 11y agoThat's pretty golden, but I like my jokes sourced. Do you have a link for that particular change-log entry?
- anilgulecha 11y agohttps://github.com/atom/atom/releases/tag/v0.150.0 https://github.com/atom/atom/releases/tag/v0.150.0
- userbinator 11y agoHow does that even... If they're not treating filenames as strings - and nothing but strings - then it could have some pretty surprising security implications, possibly to running arbitrary code just by opening files or directories with certain contents?
- drtse4 11y agoThis is so sad...
- jokoon 11y agoI find it crazy that we still struggle to have simple things like a decent text editor. Speaks volume on the average quality of software in general.
- bnastic 11y agoCute emoji in commit messages, along with this sort of achievement... OK, seriously, what is the Atom's raison d'être?
- Ygg2 11y agoSo you can edit your files on GitHub?
- stephenr 11y agoI just don't get the appeal for these not-really-native editors. I bite the bullet and use a Java based IDE because frankly there are very few good ones that aren't Java based and support the languages I use, but if you're just using it as an editor there are plenty of native apps for Mac, Windows and Linux.
- Brakenshire 11y agoThe attraction is having one editor on all the platforms which developers use (this is one of the few market niches where the users are seriously split between Windows, Mac and Linux). That means it can always be installed no matter what platform you're on, and justifies more effort than would be possible on any one platform, which may cover only a third or a quarter of the market. Also, I wouldn't say there's a clear distinction between an IDE and an editor. People want a modular program, which starts simple, and can be upgraded when the upgrade becomes useful or necessary.
- castell 11y agoWhich text editor do you use to open and edit 100+MB files (on Windows, Linux, OSX)? Which text editor can handle a 100GB text file and has a fast search and replace function? On Windows notepad.exe, wordpad and notepad++ aren't really prepared for that task. Helpful would be an editor that streams in only a small part of a big text file.
- rebugger 11y agoOn Windows I always used HiEdit http://www.winasm.net/free-small-fast-text-editor.html http://www.winasm.net/free-small-fast-text-editor.html Written in asm and can open files including several gigabytes. Vim does a quite good job too.
- dagw 11y agoan editor that streams in only a small part of a big text file vi does that.
- not-a-hipster 11y agoed, by Ken Thompson. It's actually extremely useful for this one specific task of editing particular lines in a large file. There's also sed if you want to perform arbitrary search and replace.
- nuxi 11y agoCRiSP was pretty good at that.
- 13years 11y agoVisual slick edit claims to support files up to 2TB http://www.slickedit.com/products/slickedit/new-features http://www.slickedit.com/products/slickedit/new-features
- 0x4a42 11y agoUltraEdit http://www.ultraedit.com/support/tutorials_power_tips/ultraedit/large_file_handling.html http://www.ultraedit.com/support/tutorials_power_tips/ultrae...
- not-a-hipster 11y agoDoes this joke of an editor still spy on you with Google Analytics? Things like this (and MongoDB) really make me want to get out of this industry. The amount of pointless wheel-reinvention that goes on simply due to fashion and short attention spans is (or ought to be) scandalous.
- lewisl9029 11y agoI've been trying out Light Table recently, and it seems to have no problems with large files (and generally feels much more snappy in use compared to Atom). I just tried a bundled 3MB+ .js file and it loaded practically instantaneously. Even opening a 10MB+ .mp3 file (for science!) didn't result in any delay longer than a second. Whereas opening the same files on the latest Atom took a good 5 seconds for the .js and 10 seconds for the .mp3 (and it looks like Atom had to give up on doing syntax highlighting on the .js file, whereas Light Table did not). These tests were all performed on a rather modest Core M processor, so YMMV. AFAIK, both Atom and Light Table are built on Electron and web technologies (Light Table uses ClojureScript but at the end of the day they both compile down to HTML/JS/CSS). So my takeaway from this is: Atom's performance woes are most likely not intrinsic to the web-based platform it's built on, but are rather results of implementation flaws of Atom itself. http://lighttable.com/ http://lighttable.com/
- beardicus 11y agoWell. The comments here so far are about what one would expect. We're well on our way to making a 2MB+ file of "LOL USE VIM/EMACS" comments. I've been using Atom for a bit now. I like it. I started out with vim but it never really stuck. I still use vim bindings in Atom for basic movement/yanking/pasting et cetera, but I admit, I am a GUI using creature and I like to grab the mouse every once in a while. I rather enjoy the fact that I can poke at my editor just using a basic understanding of web development technologies. I enjoy that Atom was easy to set up and install plugins, unlike the dozen different ways you can/should customize vim. I already have a much more tweaked environment with Atom simply because slogging through .vimrc and vim bundles (even with vundle) was a major pain for me. I've never run into performance issues or the 2MB file limit (yes, I do have to deal with log files, but opening them in a text editor is not part of my workflow). Clearly, others have different skills and priorities and Atom doesn't work for them. That's great. I'm glad there are options out there. Vim isn't a giant pile of shit just because it doesn't work for me.