Re:Emacs for Data Science
by lindbergh on Tuesday June 23, 2015 @03:18PM
(#9767026)
I recently discovered org-mode. Honestly, it is by far the best note-taking application I've ever used, especially in any math-heavy field, since it supports cross-references and most math symbols. And unlike LaTeX which ends up filled with markup, org stays very clean. However the basic export (to HTML and pdf) is not that good.
There's also support for basic spreadsheeting, but it gets very slow as soon as you have more than a couple hundred rows with auto-computed column values.
Re:Emacs for Data Science
by hsitz on Tuesday June 23, 2015 @05:52PM
(#9768097)
"However the basic export (to HTML and pdf) is not that good."
What are you referring to here? It's easy enough to customize the export formatting to whatever you want it to be, e.g., change LaTeX document class, switch to xetex for better font support, etc.
Re:Emacs for Data Science
by lindbergh on Tuesday June 23, 2015 @05:55PM
(#9768119)
What kind of shortcuts? Most LaTeX symbols will be replaced with their unicode counterpart, eg. \theta will become θ inline, once you toggle `entitiespretty' with C-c C-x \. Likewise for superscript and index, it changes as you type.
My equation blocks are created with M-o M-s which centers the current line in the buffer (when in fill-mode), so no need for C-c C-e equation.
Re:Emacs for Data Science
by diminish on Tuesday June 23, 2015 @01:40PM
(#9766280)
As a recent Emacs convert I was able to develop happily for Android/Java, Ruby, Rails, Web, WordPress and ChucK, Octave music language, a lot of CSV/Data import tasks, and minor C/C++ edits. For each one I had used a lot of IDEs earlier.
Re:Emacs for Data Science
by metaobject on Tuesday June 23, 2015 @02:40PM
(#9766735)
As a long time emacs user, it's great to know that it can grow to support new languages and environments. I wasn't aware that it supports Octave (the music language). Welcome to emacs, we hope you enjoy your stay!
One of my favorite things in emacs. When confronted with an arcane, custom "language" developed 30 years ago because of some immediate need without serious care taken. You can create a custom mode that gives you syntax highlighting, indentation support and other things fairly quickly. And it beats the built-in "editors" present in a lot of tools, especially those that don't let you directly edit the text file but insist on making you click through wizards and dropdown menus.
Re:Emacs for Data Science
by to3m on Tuesday June 23, 2015 @07:28PM
(#9768505)
This sort of thing is where I've found emacs most valuable. For proprietary or product-specific configuration and scripting languages, particularly ones where no decent editor is provided at all (or there's some terrible builtin editor, based on SciTE at the very best), being able to quickly put together an emacs major mode is very handy.
Once you've got the basics written, you can start to work. Then add imenu support, and you have file browsing. Then add your language to exuberant ctags - which has a line-based regexp mode that you can pretty much reuse your imenu regexps for - and get it to generate emacs-compatible tags files, and you've got basic cross-file symbol navigation.
(The quality of ctags-based symbol browsing can be hit or miss - for languages like Java or C++, where many mechanisms require symbols to be identically-named, it's not that great. But not-that-great is still a lot more convenient than nothing.)
Re:Emacs for Data Science
by fennecfoxen on Tuesday June 23, 2015 @03:37PM
(#9767177)
I can't find "octave music language" anywhere on Google either. But maybe the commentor was thinking of abc-mode and misspoke? That one is for a music language.
Re:Emacs for Data Science
by jaredandrews on Tuesday June 23, 2015 @04:34PM
(#9767590)
Out of curiosity, what do you use for Android Development with Emacs? I haven't tried for a while but last time I did I couldn't create a setup comparable to Android Studio.
Re:Emacs for Data Science
by fizixer on Tuesday June 23, 2015 @05:07PM
(#9767804)
Yeah emacs is a very useful tool as part of your data science workflow.
So is IPython notebook.
So is vim along with tmux, a good tiling window manager, and shell-tools.
However none of them are without flaws. None of them are free from requiring you to peek under the hood, and start a path towards becoming a hacker of your own tools, be it vim-scripting using python, or emacs scripting using elisp or guile. And once you have a turing-complete language under your tools, everything a programming language can do your tool can. But if there's a missing feature set requiring non trivial amount of code and no one on the internet has developed that code, you have to either take a long detour from your main project to develop that feature, or keep working the hard way, without that feature.
And most importantly, none of them should get you under the impression that yours is the final tool you'll ever need and it'll solve all your problems!
Re:Emacs for Data Science
by alexott on Tuesday June 23, 2015 @01:35PM
(#9766246)
Besides ready to use packages, main advantage of Emacs - its extensibility - I'm writing a lot of custom code in ELisp that helps me analyze files with results, interactively work with data in multiple databases (using some Clojure code executing via CIDER), etc.
Re:Emacs for Data Science
by ska on Tuesday June 23, 2015 @01:39PM
(#9766274)
That, and it's really good as an editor.
A lot of commercial IDEs are very well integrated with language and toolset, but often they're really not very good text editors (Visual Studio, I'm looking at you)
Re:Emacs for Data Science
by rndn on Tuesday June 23, 2015 @03:57PM
(#9767343)
This SciPy presentation (Kitchin, John Carnegie Mellon University) on Emacs + org-mode + python in reproducible research is worth a watch: https://www.youtube.com/watch?v=1-dUkyn_fZA
Re:Emacs for Data Science
by acomjean on Tuesday June 23, 2015 @02:22PM
(#9766591)
1) Available on most platforms (editing a file on the server.. emacs)
2) Its programable. You can store and replay key commands. I use this frequently to reformat data..
3) Steep Learning curve, but its fast once learned. Its hard to learn and takes a while. The basics are pretty straight forward, but not entirely intuitive.
4) Its extensible. Though I find it hard to manage add ons.
I use Org mode, but sometime have trouble remembering all the key commands.
5)Dired. Look up files and open.
For large projects I end up using the JetBrains IDEs. I think the "knowledge" of the project provides good insight. I think there are add ons to Emacs that will do the same thing. I haven't tried them. If I have to just open a file and edit, I'm happier in Emacs. I wish the IDE's would let you "bring your own editor"
Re:Emacs for Data Science
by wodenokoto on Tuesday June 23, 2015 @08:38PM
(#9768822)
Sublime doesn't interact very nicely with the terminal. There is a repl plugin, but it is slow and outdated. Is ctr-enter to send text to ipython that much to ask for?
If you use multiple platforms, you're gonna have a tough time remembering the keyboard shortcuts as some of them are totally different.
I haven't switched from sublime to Emacs, but it promises to fix all those things in exchange for more complexity.
Re:Emacs for Data Science
by vonklaus on Tuesday June 23, 2015 @02:29PM
(#9766661)
Basic code editors like Sublime and Atom are great for web development. They have nice linting plugins, snippet resources and are easy to get up and running. As another poster mentioned, other editors are much more powerful and can make you very productive. I use vim and nano to do simple edits, in SSH (emacs can be used as well).
However, you really need to assess what you are doing. If you are a webdev sublime and atom are great. You can use an IDE like rubymine if you want more language centric features. If you are doing compiled stuff (not my area), it probably makes sense to learn VIM or Emacs because you can fly through your coding and have access to the compiler and all of your files quickly from one place.
Re:Emacs for Data Science
by Tistel on Tuesday June 23, 2015 @06:05PM
(#9768155)
I have been using emacs for over 15 years. I still discover new things. I am working on a distributed project and found tramp mode about a year ago. Its amazing for multi-hop remote editing. Worth the price of admission alone.
There's also support for basic spreadsheeting, but it gets very slow as soon as you have more than a couple hundred rows with auto-computed column values.
Sample look and feel of one of my notebooks: http://i.imgur.com/SZTxQ6v.png
https://github.com/bdewey/org-ruby
What are you referring to here? It's easy enough to customize the export formatting to whatever you want it to be, e.g., change LaTeX document class, switch to xetex for better font support, etc.
With the calc package, emacs can even do basic symbolic math (e.g calculate a derivative function)!
My equation blocks are created with M-o M-s which centers the current line in the buffer (when in fill-mode), so no need for C-c C-e equation.
One of my favorite things in emacs. When confronted with an arcane, custom "language" developed 30 years ago because of some immediate need without serious care taken. You can create a custom mode that gives you syntax highlighting, indentation support and other things fairly quickly. And it beats the built-in "editors" present in a lot of tools, especially those that don't let you directly edit the text file but insist on making you click through wizards and dropdown menus.
Once you've got the basics written, you can start to work. Then add imenu support, and you have file browsing. Then add your language to exuberant ctags - which has a line-based regexp mode that you can pretty much reuse your imenu regexps for - and get it to generate emacs-compatible tags files, and you've got basic cross-file symbol navigation.
(The quality of ctags-based symbol browsing can be hit or miss - for languages like Java or C++, where many mechanisms require symbols to be identically-named, it's not that great. But not-that-great is still a lot more convenient than nothing.)
Do you mean this?
http://wiki.octave.org/FAQ#Why_.22Octave.22.3F
http://www.emacswiki.org/emacs/AbcMode
Though octave was originally a music term too.
Sorry, it's a pet peeve of mine that people keep thinking that GNU Octave has something to do with music.
So is IPython notebook.
So is vim along with tmux, a good tiling window manager, and shell-tools.
However none of them are without flaws. None of them are free from requiring you to peek under the hood, and start a path towards becoming a hacker of your own tools, be it vim-scripting using python, or emacs scripting using elisp or guile. And once you have a turing-complete language under your tools, everything a programming language can do your tool can. But if there's a missing feature set requiring non trivial amount of code and no one on the internet has developed that code, you have to either take a long detour from your main project to develop that feature, or keep working the hard way, without that feature.
And most importantly, none of them should get you under the impression that yours is the final tool you'll ever need and it'll solve all your problems!
A lot of commercial IDEs are very well integrated with language and toolset, but often they're really not very good text editors (Visual Studio, I'm looking at you)
P.S. There were C# parser for CEDET (in contrib), but it wasn't updated for a long time
Could anyone explain the advantage of Emacs over Sublime?
For large projects I end up using the JetBrains IDEs. I think the "knowledge" of the project provides good insight. I think there are add ons to Emacs that will do the same thing. I haven't tried them. If I have to just open a file and edit, I'm happier in Emacs. I wish the IDE's would let you "bring your own editor"
If your happy with sublime keep using it.
If you use multiple platforms, you're gonna have a tough time remembering the keyboard shortcuts as some of them are totally different.
I haven't switched from sublime to Emacs, but it promises to fix all those things in exchange for more complexity.
However, you really need to assess what you are doing. If you are a webdev sublime and atom are great. You can use an IDE like rubymine if you want more language centric features. If you are doing compiled stuff (not my area), it probably makes sense to learn VIM or Emacs because you can fly through your coding and have access to the compiler and all of your files quickly from one place.
note: we are hiring!
I've used Emacs for years, but never delved into org-mode.