6 ms·
Emacs can do whatever you want. If it doesn't, it can be added. In fact, Emacs is an IDE... It's just not a mouse-based IDE. Mouse clicking makes my hands hurt
by lutorm 17y ago
Emacs can do whatever you want. If it doesn't, it can be added. In fact, Emacs is an IDE...
It's just not a mouse-based IDE. Mouse clicking makes my hands hurt much faster than using the keyboard. I also find it annoying to switch from mouse<->keyboard, so I don't want a UI that relies on constant mousing.
- RyanDScott 17y ago"Emacs can do whatever you want. If it doesn't, it can be added...." Um no. But if so, then someone better start busting a lisp to get emacs to make cute little bubbles. I'd love to see that.
- lutorm 17y agoThey'd just be text-based little bubbles...
- doty 17y ago"Emacs can do whatever you want." Saying "Emacs can do whatever you want" is like saying "your computer can do anything you want." Sure it can, so long as you're willing to write the code to make it go. But my time is finite; I cannot be bothered to re-build environments that have already been implemented elsewhere.
- sjs 17y agoIn the 30+ years Emacs has been around people have written a huge amount of Emacs Lisp that does pretty much everything you can think of. Almost every feature from other editors and IDEs has been implemented in Emacs. I like Lisp but rarely write very much Emacs Lisp, and when I do it's usually an extension of some code someone else started. There aren't a lot of new ideas and when an Emacs user sees one he implements it for Emacs.
- doty 17y agoYou may say this, but I don't see semantic member or statement completion for any language. I don't see "go to definition" or "find all references." Frankly, although cc-mode is fantastic for indentation and stuff, it offers a small fraction of the features of Eclipse or NetBeans. Yes, I've used ctags and I've used etags. They tend to be interesting approximations but are never 100% reliable. They don't do a deep sematic analysis of my program. (For example, they don't understand C macros.) They don't update as I type. The closest I've ever seen has been the "Semantic Bovinator" thingy. I have never managed to get it to run, nor has anybody I've seen try. You experience may be different, of course. (I realize that by posting this I'm inviting a raft of people to post and say "It works for me!" :) )
- nitrogen 17y agocscope is quite a bit better than ctags, and is insanely fast on modern hardware. It integrates in vim (and probably emacs) and does fully analyze C, including "calls" and "called by" info. It appears to be useful for C++ and Java as well: http://cscope.sourceforge.net/ http://cscope.sourceforge.net/ That said, I use vim for C, but I still use Eclipse for Java and C++/Qt.
- scott_s 17y ago"Go to definition" is 'gd' in vim. If vim has it, emacs certainly does. Perhaps vim and emacs don't do everything you want. But also, perhaps you don't know their capabilities as well as you think you do?
- aerique 17y agoI don't see "go to definition" or "find all references." SLIME has this in Emacs for Common Lisp and perhaps other languages that work with SLIME. I'm on a non-multitasking phone now so you'll have to do the googling yourself.
- sjs 17y agoI said, "Almost every feature ...", and you probably found a few it lacks. I'm not talking in absolutes as that rarely produces an interesting discussion. Thus I don't really see your point, if anything you helped to prove mine, as hundreds or thousands of other features are available out-of-the-box or on Emacs wiki, github, etc. Additionally I don't understand why one needs IDE support for something `grep -Hn` can do, but to each his own. We might use different technologies. I mostly write Objective-C, Ruby, Python, C, JavaScript, and recently some Objective-J and Erlang. Now and then I write Lisp (CL, Emacs), Scheme, Haskell, x86 assembly, and PHP. The only one of those I don't write in Emacs is Obj-C. Other editors or IDEs may be better at certain tasks, just as Emacs has unparalleled Lisp support with SLIME. When there is clearly a best tool in one field then people tend to use that tool, if the payoff is worth it. Except for pg and a few others, people generally write Lisp in Emacs. I write Cocoa and Cocoa Touch apps in Xcode and IB. I'm pragmatic about it. But when I tried to use Eclipse for Mojo (webOS) because Palm recommended Eclipse + Mojo plugin, it ended up being more productive for me to extend an existing Mojo mode for Emacs[1] to have even more features[2] than the Eclipse plugin (or any of the others, Komodo, etc). Similarly if I were doing Java I would at least look into IntelliJ IDEA or Eclipse. [1] http://www.emacswiki.org/emacs/MojoSdk http://www.emacswiki.org/emacs/MojoSdk and http://github.com/samsonjs/mojo.el http://github.com/samsonjs/mojo.el [2] http://www.webos-internals.org/wiki/Comparison_of_Editors http://www.webos-internals.org/wiki/Comparison_of_Editors (temporarily down)
- lutorm 17y agoThe difference is just that for your IDE, someone had already written the code necessary to make it do what you want. That's not because the IDE is an IDE and Emacs is Emacs, it's just because someone happened to write that code for Emacs. My point was that this has nothing to do with Emacs vs IDEs. It's true that some things are lacking, so it's too bad that whoever wrote the code that does your high-level syntactic analysis didn't make it independent enough that it could be used in other places than whatever IDE you were referring to.
- Silhouette 17y agoRespectfully, I think you're avoiding the main point of the post to which you replied. Good keyboard navigation in an editor is valuable, and many IDEs have poor support for it. On this we can probably all agree. But as I read it, the grandparent post was about functionality. Modern IDEs have a level of semantic awareness that generic editors like Emacs don't, at least not without a prohibitive amount of effort to implement it. As a text editor, Emacs is very powerful. As a code editor, it lacks support for even basic semantic analysis, which means such tricks as it does have are naive operations based on text matching. In a world where even entry-level IDEs have support for basic refactoring, auto-completion and code navigation, Emacs is the dinosaur that hasn't seen the asteroid yet: awesome raw power but completely unaware of the bigger picture.
- abstractbill 17y agoThe flip side of this is: Emacs was invented around the time I was born, and could be used to edit the languages that were available at the time. It can still be used to edit those languages, as well as the hundreds (thousands?) of languages that exist today. I won't be surprised if it's around in 10 or 20 years more, and still able to edit every language under the sun at that point. Emacs may have a shallower understanding of languages than an IDE, but the breadth of languages it understands is pretty amazing.
- Silhouette 17y agoSure, but when you're working on a project that uses only a few languages, specialised tools are always going to be much more effective, and you just update the tools as you update your choice of language(s). Jack of all trades is master of none, as the saying goes.
- abstractbill 17y agoIn many ways I'd love the luxury of writing code in just a few languages. The reality is though, at justin.tv, I've needed to write code in (at least) 7 different languages over the past 2.5 years. I would not have liked to learn 7 different IDEs on top of learning new languages. (We don't tend to gratuitously start using new languages - it's just often a requirement as a project gets more ambitious and wants to do more things and reach more targets).
- Qz 17y agoI also find it annoying to switch from mouse<->keyboard, so I don't want a UI that relies on constant keyboarding.