10 ms·
Tokamak: A Rust IDE for Atom
- beefsack 11y agoThe plugin ecosystem seems to be really flourishing in Atom, the Go plugin was great and quite excited to see this. I try Atom every couple of months but never last long before heading back to my terminal. I'm assuming it's only a matter of time though before it's polished and fast enough that we'll see a lot of converts.
- simcop2387 11y agoMain thing that's kept me from using it is lack of good support for remote editing. Once it's got something that it'll fit the way I want to use it much nicer.
- masterj 11y agoHave you tried Nuclide? It has good remote project support since FB web engineers have to develop on remote servers.
- deleted 11y ago[deleted]
- therein 11y agoI tried Nuclide but unfortunately it doesn't play well with the custom build-time include paths that we have. They are available as environment variables on the coding environment but Nuclide can't make use of them.
- m_mueller 11y agoWhat I use on OSX is "ExpanDrive", it's a nicely polished paid app that lets you mount sshfs drives system wide (your server only needs to support ssh access). With that you can manipulate remote files with whatever local program you have, it's fully transparent.
- simcop2387 11y agoI've tried a few of those on windows but they all seem to have terrible latency, I think they're constantly reconnecting to the server whenever an operation happens.
- m_mueller 11y agoOn OSX it works well enough for me to work directly on the server if I have LAN connection or good internet with low latency. If the connection is shaky I'm working locally, sync with Rsync and use ExpanDrive to check on result files. But yes, it's a question of managing your expectations.
- superuser2 11y agoHave you tried using rsync or a similar outside-the-editor utility to keep files in sync between your local workstation and the remote server?
- Scarbutt 11y agoSwitch to Vim or Emacs and you don't have to worry about remote editing plugins anymore!
- simcop2387 11y agoThat's largely the way I do it, but I have to use windows at my current job, so a good terminal isn't really present. putty does ok but it's cumbersome compared to openssh, and cygwin makes it better to use but terminals aren't very good. My current setup is ConEMU and cygwin. Trying to get permission to setup some kind of VM on the machine, (likely VB) so I can use what I'm used to.
- NTripleOne 11y agoAlternatively people could continue using their editor of choice without having an evimgelist shouting at them every 30 seconds.
- ngrilly 11y agoWhat kind of remote editing: edit files stored in a virtual machine while you develop? or edit files stored in a remote server you administer?
- Klathmon 11y agoThere's a remote-sftp package that allows a bit of this. But I've only used it for light fixes and config file changes on servers, never for real full remote development.
- indianhippie 11y agoSame here. I have tried it a few times. The sole reason I'm not moving from Sublime is the speed of the editor.
- albasha 11y agoIt will never be as fast as Sublime. Not before a few years at least.
- landr0id 11y agoAs much as I hate the idea of basically bundling Chrome with the application to get it to run, since this is essentially Chrome then wouldn't it be able to utilize WebAssembly in the future instead of the JavaScript engine?
- Touche 11y agoIt's written in CoffeeScript, so unless they rewrite in C++ using WebAssembly would make it slower.
- cheez 11y agoThat itself (rewriting in C++) to make it faster in the browser would be hilarious.
- Matthias247 11y agoI don't think JS is the bottleneck. I think one of the bottlenecks is algorithms - because Visual Studio Code is much faster than Atom on the same node/electron platform. The other main bottleneck might be that the browser DOM is used for rendering, which is super flexible but probably not as fast as a more dedicated text editor GUI toolkit.
- oblio 11y agoIt's probably the architecture difference between Atom and VS Code. VS Code plugins run out of process and have access only to a limited set of APIs (http://code.visualstudio.com/docs/extensions/our-approach http://code.visualstudio.com/docs/extensions/our-approach).
- Slippery_John 11y agoI want so bad to love it, but when a 200 line markdown file causes significant delay, there's just no way I can commit to it.
- fit2rule 11y agoI'm the same .. I keep wanting to switch to Atom from ST3, because all the cool kids are doing it, but every time I make the attempt I'm thwarted by the feeling that its just not a very well-written application if it can't handle my 500-line files without hitting swap - on a system with 16gigs of RAM and plenty of cores free. It may be that its worth the effort - I wouldn't know. But the feeling that I'm not actually improving things by moving to an editor that can't handle big files is just too prevalent. So I inevitable switch back to ST3 and go back to work, every single time. Sorry Atom guys, its just not working for me.
- tomc1985 11y agoMy big peeve was started time... nothing quite beats gedit or gvim or notepad.exe, though so far it seems a tie between ST3 and VSCode
- usaphp 11y ago_
- chadzawistowski 11y agoIt probably refers to the tokamak fusion reactor design https://en.wikipedia.org/wiki/Tokamak https://en.wikipedia.org/wiki/Tokamak
- yan 11y agoHow? Только != Тока
- bertiewhykovich 11y agoGiven that the tagline for the project is "Fusion Reactor for Rust," I'd guess that the project's name is designed to read to English speakers as "Tokamak" while maintaining a "Russian flavor." EDIT: Not being a Russian speaker, I completely misunderstood this comment -- I apologize for my blithe ignorance.
- stcredzero 11y agoRust is iron oxide. The project namers weren't thinking about astrophysics. If you fuse iron, you wind up with less energy than you had before.
- the8472 11y agoThe oxygen is perfectly fusible, at least if you're a star. Less so in foreseeable tokamak designs. Not to mention the iron hydroxide in rust.
- tetromino_ 11y ago"Тока" is a misspelling of "только" which you frequently encounter because in fast speech, that "ль" doesn't get pronounced. Sometimes, it's deliberate; the writer is going for the effect of transcribing colloquial speech - like in English, you might write "innit" instead of "isn't it" to render a casual spoken conversation. And sometimes, it's a sign of a illiteracy - like in English, when people write "should of" instead of "should have" because it sounds the same and they don't know any better.
- levemi 11y agoNice. Personally, I'm also excited about an IntelliJ plugin that's being worked on: https://github.com/intellij-rust/intellij-rust https://github.com/intellij-rust/intellij-rust The rust tooling is really coming around.
- Xorlev 11y agoIs this just bundling the existing Atom Rust tools with a convenient menu for creating projects?
- halestock 11y agoThat's what I was wondering, by consuming this are we relying on this project's author to keep Atom up to date?
- seanp2k2 11y agoAnother thing doing this for AVR etc development is PlatformIO: http://platformio.org http://platformio.org It also does builds and code uploads to boards and other things like library management.
- linksbro 11y agoYou used this website template (http://html5up.net/hyperspace http://html5up.net/hyperspace) which has a Creative Commons 3.0 license, and you scrubbed the author's name and attribution from the template. Please respect the license! http://html5up.net/license http://html5up.net/license
- coldtea 11y agoNot the author of this or the original, but attribution doesn't mean it should be right on the page and in the same place as the original template. The attribution text is right in the source code, first thing you'll see.
- linksbro 11y agoAttribution is a fine line; removing the attribution from where it was in the template and plastering "All Rights Reserved" copyright over it is a very clear violation of the creative commons license. In some situations, it's difficult to place attribution along with the media, but in this case, it's not - it's a webpage - and having the attribution be in the source code is not really acceptable, because it's not reasonably accessible for someone looking for it. If you look at that page and only that page, what leads you to believe that this is built of off a CC-BY work? Nothing. Sure, you can add "for copyright and license information, visit this link" in the footer, with a link to the github readme page that has the attribution, but removing it all together and only leaving scraps of it in the source code is just careless, reckless misuse of the original author's work.
- chvid 11y agoThe template author is selling an attribution free version of his template - if you click download it will say: "Need an attribution-free version? Check out Pixelarity, my latest and greatest side project that offers attribution-free usage of all of my templates, exclusive new templates, and support (from me) for just $19."
- 11y ago
- echelon 11y agoCan this (or any) Rust IDE jump to definitions, do project-wide code refactoring, or highlight incorrect parameter types? These are the three big things I really want in an IDE, and without them I'll probably stick to Vim (as I'm more productive there); the features I mentioned are kind of a tipping point between editor/IDE use for me. (It doesn't look like any of these are supported based on the advertised features, but maybe I didn't read closely enough.)
- TheHydroImpulse 11y agoRacer (which this package uses) supports jumping to definitions (including standard library ones).
- groovy2shoes 11y agoAllegedly, Racer supports jumping to definitions, but in my experience with the Vim plugin, it's not particularly reliable, e.g. in the way ctags is. What I found most frustrating was that it seemed to look for a definition in the current buffer, failing that it looked in the standard library, and failing that it just did a substring search in the current buffer. It was practically worthless to me once my projects grew beyond a single module.
- nemild 11y agoIs there a reason you can't just create some Exuberant CTags regexes?
- groovy2shoes 11y agoNo, there isn't. I'm not complaining about the state of doing Rust in Vim, though. I'm complaining about the state of Racer.
- kibwen 11y agoThe Rust developers themselves (particularly Niko Matsakis) have been using ctags since long before Racer existed. You can see their ctags definition file at https://github.com/rust-lang/rust/blob/master/src/etc/ctags.rust https://github.com/rust-lang/rust/blob/master/src/etc/ctags.... , and you can run `make TAGS.emacs` or `make TAGS.vi` from within the Rust repo to generate them for the stdlib.
- stevebmark 11y agoDoes plugging in a third party code completion engine really make this an IDE? Do I get cross file variable/method/class name refactoring? Do I get runtime code debugging including stack inspection and breakpoints? Do I get test suite integration? Atom itself is a text editor, not a code editor, which is why I'm asking if this set of functionality crosses that distinction line. If Atom is capable of being a true IDE (code editor) then that would be big news.
- groovy2shoes 11y agoI agree. The difference between an IDE and a text editor is absolutely not that an IDE has more advanced editing capabilities (e.g., code completion). In fact, it's quite the opposite, in that most programmers' text editors provide far more sophisticated editing capabilities than a typical IDE. What sets the IDE apart is right in the name: integrated development environment. That is, everything you need for development all rolled up into a single integrated environment (hopefully, this is obvious). So, an IDE ought to provide not just editing capabilities, but facilities for managing, configuring, building, running, testing, debugging, etc.
- rootlocus 11y ago+1 for debugging. I believe an IDE with strong debugging support will go a long way towards rust world domination!
- yitchelle 11y agoCan't upvote this comment enough. I have just started learning rust and the lack of debugging options are telling. I know it is early days for rust, but for some, this would be show stopper from picking up the language.
- bluejekyll 11y agoThe lldb works well and has a gui mode, until a better ide comes along.
- zubspace 11y ago
- rubber_duck 11y agoAtom doesn't have debugging capabilities - if you really wanted an IDE for rust on this kind of stack you should probably be using VSCode - they have debugging UI and are even adding GDB integration.
- baq 11y agoside note: lovely name.
- bakhy 11y ago"Makes precompilation and show error while coding." -- some parts of the web page may be in need of a little proofreading ;) but that's less relevant. keep up the good work!
- dawidloubser 11y agoI do enjoy using Atom as an everyday editor for ECMAScript / React apps, where the convention is to have many very small files. ES6 + Hasklig font + Ligatures make for a particularly visually-pleasing coding experience. Unfortunately, Atom has severe performance issues with files that are anything above "tiny". For example, a 500-line XML file will lock Atom up for many seconds, to several minutes, while it's inefficient little ECMAScript parsing engine tries to chew through it. I build the latest version almost daily in anticipation of improvements in this area! This is what prevents my adopting this otherwise lovely, vibrant, flexible editor for all my tasks. A real IDE like IntelliJ has no problems with applying various tooling (parsing, validation, de-bugging of XSLT, etc etc) to a 15,000-line XML file. In the longer term, I do hope that somebody is addressing this - which I think is literally the only thing that Atom has going against it.
- viperscape 11y agoI personally don't like the extension building aspect in atom. Extending emacs, or sublime is much simpler to me.
- Touche 11y agoPlease don't call JavaScript "ECMAScript", that name only exists for trademark reasons.
- oDot 11y agoA comparison: https://areweideyet.com/ https://areweideyet.com/