On Sat, 9 Jul 2011, Nguyen Vu Hung wrote:

> @all:
> Iem nghĩ thảo luận những đề tài dễ gây ra bất đồng như emacs vs. vi
> hay gnome vs. KDE hoàn toàn được welcome nhưng các bác cần bình tình
> và khách quan :)
>

+1

Vậy khi nào em đánh mất temper hoặc khách quan các bác vui lòng bỏ quá và nhắc
nhở em nhé :-).

> >
> > I wonder how could you manage with Vim/Emacs for
> > profiling/debugging/refactoring/searching?
> >
>
> For C and C++ programmers] vim or/and emacs can call external tools like
> gdb, grof.  Search google image "emacs IDE" for an evidence.
>
> I am not familiar with C/C++ profiling with third party tools or Java or
> other languages.      * Make you more a tool-user, not a programmer.  You
> just know what they do,  never know how they work.  
>

I assume Hoang is talking mainly about Java, and the points I'm gonna give
support only Emacs.  That's enough to make a very email.

Emacs has [1] JDEE which does decent jobs for

* source-level debugging
* source code browsing, supports for tags
* make file support
* automatic code generation
* Java source interpreter (Pat Neimeyer's BeanShell)

Or, if it's just about Java debugging, check out [11] jdibug.

As Hung-san said, Emacs can call and fully interact with **any** external
tools

* [2] CEDET provides a feature-rich, powerful integrated development tool for
  several languages:

  - Project management
  - Smart completion
  - Very advanced code browsing
  - Inline documentation lookup
  - Symbol references
  - Code generation
  - UML diagrams

  Check out its website for more details.

* GDB (some fancy manuals/tutorials: [3], [4], and [5], want some [6]
  screenshot?);

* Profilers:

  - For C/C++: [7] google-perftools, [8] grof, [9] the decent Valgrind and
    [10] DTrace.

  - For Java: good interaction with [13] JProfiler and [14] YourKit, although
    both are non-free.

* Code refactoring: Emacs could be used with [12] Xrefactory (non-free), or
  simpler, you could make use of Emacs' powerful searching, replacing, and
  macros to do the job for you.  I will not provide any more information about
  these features since they are too basic.  Google if you want to know.

* Searching/replacing:

  - Both Emacs and Vim support both "usual string" and Regex searching and
    replacing.

  - Both interact decently with `grep`, `ack`, `sed`, and `awk`.  Don't want
    to call for external command everytime?  Sure, wrap them out using Emacs
    Lisp!  It might be easier than you think.

  - For Emacs, check out CEDET, again.

* Bonus:

  - You could run shell command inside Emacs and Vim, feeding input from them
    and filtering output into them (like inline sorting using `sort`).  Check
    out Vim's 'filter' (aka. "!"), and Emacs' 'shell-command',
    'shell-command-on-region'.

  - Finding terminal helpful?  Try Emacs's `shell` or the true terminal
    [15] `multi-term`

You might argue that "But that's not Emacs, that's other tools."  I completely
agree with the point you make.  So what's wrong with that?  As soon as they do
the work?  What you need is:

+ tools which do the jobs, and
+ do it in a decent way, and
+ greatly improve your speed/performance
+ etc.

If you find a way to archieve the purposes, does it matter if Emacs *does it
for you* or Emacs *helps you does it*?  I think not.


>
> > I assume that you know well emacs, so please explain us the gist of
> > algorithm behind emacs dealing with large chain of characters[IMAGE].
>
> Hỏi kiểu này dễ xảy ra personal attack quá :)
> Bình tĩnh tự tin không cay cú nhé > all.
>  

+1 for Hung-san

Hoang, I don't care if you want to raise a personal attack.  I assume you
really want to know how Emacs deal with large chunks of characters.  I'll give
you a [16] link for the purpose of breaking the ice.  Come and ask after you
read this and still have any question.

>
> > Let's give your own opinion instead of quoting other 's.
>
>  +1 :)
>

Like Gwenhael, I've used both Emacs for large C, C++, Common Lisp, Python,
Perl (I hate Perl, but yes) and Scala projects (sorry, never *large* with
Java, and sorry again Vim users, I'm not on your side this time).  By "large"
I mean hundreds of files with the total of up to several hundred-thousand
lines of code.  I tried Eclipse, Netbeans, even Microsoft Visual Studio
several times but failed to love them every time.  The power of Emacs is at
the hands of its users.  For me, Emacs just does the jobs and does it so
nicely.  I could use Emacs to browse the web (some says this sucks, but for
reading news, that's pretty enough), control my Twitter account (Twittering
mode), as my general-purpose powerful IDE for every programming language, my
issue tracking and SCM client, as my terminal, my FTP client, my note taker,
my event organizer (try [17] Org-mode, it supports Android!), my text
processor (LaTeX, RestructuredText, and Markdown), my calculator, my system
monitor, etc. virtually everything.  I love its simple, distraction-free, and
extremly flexible enviroment.  A bit off-topic but that's the way I love it!

I'm not saying that my editor is better than yours.  I'm not comparing my
editor to any others. And I'm not convincing you or anyone else to switch to
Emacs/Vim.  I just want to disprove the argument you made in your previous
mail.  If you don't know anything good enough, don't take them into
comparisons.

[1] http://jdee.sourceforge.net/

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

[3]
http://www.gnu.org/software/libtool/manual/emacs/GDB-Graphical-Interface.html

[4] http://emacswiki.org/emacs/GDB-MI

[5] http://tedlab.mit.edu/~dr/gdbintro.html

[6] 
http://www.flickr.com/photos/nothingpersonal/3733686206/#/photos/nothingpersonal/3733686206/lightbox/

[7] http://code.google.com/p/google-perftools/

[8] http://www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html

[9] http://valgrind.org/

[10] http://hub.opensolaris.org/bin/view/Community+Group+dtrace/WebHome

[11] http://code.google.com/p/jdibug/

[12] http://www.xref.sk/xrefactory/main.html

[13] http://www.ej-technologies.com/products/jprofiler/overview.html

[14] http://www.yourkit.com/

[15] http://www.emacswiki.org/emacs/MultiTerm

[16] http://www.gnu.org/s/emacs/manual/html_node/elisp/Buffers.html

[17] http://orgmode.org/


Best regards,
Dương "Yang"
-- 
Dương "Yang" ヤン Hà Nguyễn
Web log: http://cmpitg.wordpress.com/
"Life is a hack"

[ Do not send me Microsoft Office attachments, please.
  http://www.gnu.org/philosophy/no-word-attachments.html ]

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GIT/C/ED/L d++ s-:-(:) !a C+++(++++) ULU++++>$ P-- L+++>$ E+++
W++>+++ N+ o+ K w--- O- M@ V- PS+ PE++ Y+>++ PGP++ t+ 5 X+ R-
tv+ b+++ DI+++ D++ G+++ e* h* r* y-
-----END GEEK CODE BLOCK-----
_______________________________________________
POST RULES : http://wiki.hanoilug.org/hanoilug:mailing_list_guidelines
_______________________________________________
HanoiLUG mailing lists: http://lists.hanoilug.org/
HanoiLUG wiki: http://wiki.hanoilug.org/
HanoiLUG blog: http://blog.hanoilug.org/

Trả lời cho