Hacker News new | past | comments | ask | show | jobs | submit login

Here's an example: I wanted to add TLS 1.1 support to NSS (Mozilla's security library). I downloaded the code, downloaded Visual Studio, and imported the source files into Visual Studio. Then, from the menu I was able to learn that F12 is "go to definition" and Ctrl+Alt+Shift is "go to declaration," which were huge time savers for navigating an unfamiliar codebase. All the other shortcuts I needed were the same as the shortcuts of every other program on my computer. Visual Studio also highlighted all kinds of syntactic and semantic errors in near real time as I edited the files, which saved me many compilation steps. And, it's updated-in-real-time autocomplete was a real time saver as well. As a result, I was able to complete the necessary changes to add TLS 1.1 support within hours of the first time I'd ever used Visual Studio.

In contrast, I still don't know how to do "Go to Definition" in Emacs; in fact, I don't even know how to tell Emacs how to find all the source files for a project. I doubt I would have been able to complete the same task in the first day I'd used Emacs.




It's an apples to oranges comparison because Visual Studio is an IDE built for programming for Windows while Emacs is a text editor that can edit C++, Python, function as a Lisp IDE, edit org charts, browse the web, play music, read e-mail and typeset papers, among other things. It's, actually, a small OS built to emulate the OS Lisp machines ran.

Emacs can be used as an IDE. I use it every day that way. I can use it like that because it's completely programmable. When I needed a Pyccuracy-specific editor, it took me an afternoon to write one (not from scratch) in Emacs-Lisp. I could probably have a spreadsheet inside it, if I really wanted.

Try to build a Lisp IDE inside Excel... ;-)

About the "go to definition" thing, it depends on what major/minor mode you are using. There is probably something like that for C-ish development. I just never used it.

And for finding all files in a project, there must be something that parses makefiles and rounds up source files. Emacs is older than many of us and someone must have already solved this specific problem in the past 40 years.

I am playing with "nav" in order to build special-purpose browsers. I would love to have a YQL-mode, but I feel I should replicate the multi-pane tool Yahoo makes availabe.


Calling emacs a text editor is a bit disingenuous isn't it?


I also said "It's, actually, a small OS built to emulate the OS Lisp machines ran"

The way you interact with Emacs is through a text editor.


You are right on some fronts. It does require some work in Emacs to set up the ideal dev. environment.

I mostly do C/C++ stuff. I use gnu global for code tagging and navigation [1](aka "goto definition" thing). As for project organization, I have no experience but you might want to check out CEDET [2]. It appears that CEDET has made it into emacs trunk, so hopefully you can get some nicer "project" stuff in emacs soon.

[1] http://www.gnu.org/software/global/

[2] http://cedet.sourceforge.net/


How many years of experience did you have using Windows before then? You had a lot of domain knowledge already whether you realize it or not.

"The first time I used Emacs I found all kinds of Lisp functions I already knew. It has a familiar grep command that lets me click on results to jump right to each matching line in a set of files. I used the online help to find a command that evaluates Lisp expressions immediately allowing me to extend my environment just like typing into a REPL. ..."

You probably get the idea.


Suppose the first day you used emacs you faced that task. You would look in the menus: Help / Search Documentation / Look Up Subject in User Manual

You might try "definition", but the hits for that aren't programming-related (emacs has a much wider scope of functionality than Visual Studio), so you'd probably go up to the top level of the manual. One of the topics there is "Features for maintaining large programs". That would tell you exactly what you want.

In your example you talk about "shortcuts of every other program on my computer". So you're assuming a programmer comfortable with windows. If I take the same liberty and assume a programmer comfortable with Unix, s/he will look in the Tools menu, see "Search Files (Grep)" and have immediate success finding the definition without any use of the emacs help system.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: