i'm assuming this response is a troll, given the use of the sort
of gratuitous insults that Bozhidar mentioned; specific examples
noted below. (And this somewhat amuses me, given the recent
discussion about whether it's possible to critique different
technologies without resorting to doing little more than
trash-talking them.)
If it's /not/ intended to be a troll, then i feel it pretty much
providing data which substantiates Bozhidar's complaint.
At any rate, on this occasion, i'll respond to a number of the
points made; but feel free to have the final word (and sling some
more gratuitous insults).
Fluid Dynamics <a2093...@trbvm.com> writes:
* i don't have to learn and use a distinct, possibly
resource-hungry, IDE[2] for every new programming language
or environment i need/want to work in. (When the Swift
language was released, for example, basic Swift support in
the form of `swift-mode` became available within less than a
week.)
Eclipse has plugins for a wide variety of languages.
True, but i don't think i've ever heard that one of Eclipse's main
selling points is that it's light on resource usage.
* Further to the resource-usage issue, i can more easily use
Emacs
remotely over low-bandwidth links than i could use an IDE.
Typical home and mobile connection speeds are multiple MBPS
these days.
You respond to me saying that /i/ like Emacs for its ease-of-use
across low-bandwidth links (which i regularly have to deal with)
by .... what, implying that i should be a so-called 'typical'
home/mobile connection user instead?
Anyway, 'typical' varies from geographic location to geographic
location. My home connection is ADSL2+, but my mobile provides 4G
speeds only within a limited geographic area - and when i visited
the city of Newcastle, New South Wales, recently, with it's
population of ~300,000, my mobile data connection was
intermittent, let alone of a decent speed. In such a situation,
i've found being able to use a text-based UI, rather than being
forced to use a graphical UI (even using something like NoMachine)
quite a boon.
Further, even ADSL2+ bandwidth can be heavily saturated when other
people on the connection are e.g. streaming HD movies at the same
time as one is trying to work on a remote system ....
* IDEs typically don't allow one to change their basic
behaviours
whilst they're running. Related: if there's a bug fix or
feature i want applied, i can apply it myself, rather than
having to hope that the maintainers will (a) accept that
it's something that /should/ be applied, and (b) actually
apply it.
The second, at least, applies to every open source IDE,
including a certain EPL-licensed one.
Not quite, at least not insofar as i understand what you're
saying. i'm talking about not having to patch the source tree and
recompile, even across new versions. In my Emacs config, i've
redefined a few different Emacs functions to behave the way i
want, such that, even when i install a new version of Emacs, i
don't need to make any changes to the source itself to get the
desired behaviour.
Unfortunately, one MUST do all of that and CANNOT use it as a
black box, because it is the software analogue of a computer
with no keyboard or monitor or anything else resembling a user
interface, so one must toggle everything in and know the
hardware internals backwards and forwards to get anything
done. :)
A strong claim, considerably stronger than the weaker claim that
Emacs needs tweaking to get to one's 'ideal' workflow, or even
that Emacs needs more tweaking than other software to get to that
workflow. i actually agree with the latter claim, but also feel
that /for me/ the the benefits of doing most of it just once in
Emacs have vastly outweighed the costs. i certainly acknowledge,
howver, that this is a classic instance of 'YMMV'.
Of course, there are some IDEs that run on top of the JVM, and
are thus as widely available platform-wise as the JVM ...
Granted.
* Emacs is the product of approximately three decades of
constant
development, such that it handles many corner-cases of many
scenarios (e.g. in the area of i18n) and continues to adapt
to new ones.
Three decades worth of accumulated legacy code. I can barely
begin to imagine what horrors must be lurking in some of the
darker and less well-traveled corners of that thing's /src
directory. But you could probably form a fairly accurate basic
picture by reading the collected works of one H. P. Lovecraft
... :)
A gratuitous insult, but sure, see http://emacshorrors.com/ for
such examples.
Still, it's easy to dismiss the ugliness of legacy code when one
doesn't have the luxury of not having to deal with the needs of a
diverse user base over an extended period of time:
http://www.joelonsoftware.com/articles/fog0000000069.html
And what kind of i18n corner cases tend to arise with a 7-bit
80x24 character-based display (or emulation of same)? Just out
of curiosity.
Do you really think Emacs can only be run in a terminal? If you
do, then it suggests you don't even have a basic familiarity with
Emacs, which has had GUI support for around a couple of decades
....
i generally use a GTK3 build of Emacs, and only use a
terminal-based frontend to the Emacs daemon when necessary (and
when it is, i'm glad such a facility is there).
As for i18n issues, here's a current thread on the help-gnu-emacs
list:
https://lists.gnu.org/archive/html/help-gnu-emacs/2015-03/msg00205.html
The issue with its documentation isn't, of course, its existence
or comprehensiveness. Rather, the last time I tried using
emacs, I seem to recall always ending up with this sequence of
events:
a) I am trying to do some task X, for which the obvious key
combination bleeps or does something weird but definitely
doesn't do X for some reason. b) Soon, I have a split pane with
my document on the left and the help files on the right, with
the latter open to a page on task X and the input focus in it.
c) A little bit later, I have a split pane with my document on
the left, the input focus in my document, and the help pane on
the right open to a page on how to switch focus between panes,
and I don't remember the long and complicated sequence of
keystrokes needed to perform task X any more because it was
deleted from my brain's short term memory to remember the long
and complicated sequence of keystrokes that is how one says
"alt+tab" in the obscure and archaic dialect known as emacsese.
d) Repeat b) and c) a few times, while experiencing an acute
event of abnormal pre-menopausal hair loss. e) Give up and
fire up Notepad, Eclipse, or whatever seems best suited to
current task. ;)
Yes, i've occasionally been frustrated by some of Emacs'
behaviours also. Fortunately, since Emacs is so easily directly
modifiable, i'm usually able to change those behaviours (not
least, the keybindings for certain things, when i just couldn't
get used to the default keybindings).
Having said that, i can't say i've never been frustrated when
trying to use Eclipse. Just one example: i had quite some 'fun'
trying to set it up for Android development with the ADT plugin,
with Eclipse getting itself into a broken state a few times before
i managed to successfully install the plugin. So just as you've
had some bad experiences with Emacs (as have i!), i've had some
bad experiences with Eclipse, but /in my own context/, have found
persisting with Emacs to provide a greater benefit than persisting
with Eclipse as my main IDE.
* The Emacs ecosystem is growing rapidly; http://melpa.org/
currently lists ~2400 packages ("extensions" or "addons")
available for easy installation via Emacs' package.el UI.
I wonder how anyone can find anything in that mess. The Java and
Clojure IDEs are probably each sandwiched amongst hundreds of
consecutive entries all the rest of which are for languages
nobody has ever heard of outside of one obscure city near
Bernhöfen, or that nobody has used since 1987, or that nobody
has used period because the whole thing was invented as an
obscure joke (e.g. Befunge).
More gratuitous insults.
Perhaps you missed the text box at the top of the melpa.org page
which allows one to enter filter terms? Type in 'clojure' as a
filter term and see what happens.
Further, using the package.el UI within Emacs itself, one can use
various Emacs search facilities (not only e.g. `isearch`, but also
extensions such as e.g. `helm-package`) to quickly narrow down the
list of possibly suitable packages.
Point #2, period, with some caveats about how
"easily-modifiable" something really is if it's easily
modifiable by anyone who understands its innards, but
understanding its innards requires completing a four-year degree
program in emacsology at an Ivy League university.
By the same token, one could argue that one needs a degree in Java
engineering to work with Eclipse, or that one needs a degree in
Clojure to use LightTable. :-P
Anyway, i tend to feel that being able to use Emacs `Customize` UI
to modify various settings, or to write ELisp like:
(setq a-customisable-variable 10)
or even like:
(defun move-buffer-file (dir)
"Moves both current buffer and file it's visiting to DIR. By
Steve Yegge." (interactive "DNew directory: ") (let* ((name
(buffer-name))
(filename (buffer-file-name)) (dir
(if (string-match dir "\\(?:/\\|\\\\)$")
(substring dir 0 -1) dir))
(newname (concat dir "/" name)))
(if (not filename)
(message "Buffer '%s' is not visiting a file!" name)
(progn
(copy-file filename newname 1) (delete-file filename)
(set-visited-file-name newname) (set-buffer-modified-p
nil) t))))
are things that would unduly stress anyone who can program in
Clojure.
This easily qualifies as a very strong candidate to be crowned
understatement of the century, and we're not even 1/6 of the way
through this one yet. Steeper? It's like comparing a gentle hill
to the part of a roller coaster track that's more than halfway
up the side of a loop-the-loop. The emacs learning curve is so
steep it has overhangs!
That's not my experience, and that's not necessarily the
experience of every Emacs user, even though it seems to have been
your own experience. Different people find different systems
easier/harder to learn.
One-time cost. That's what they tell students about their
thirty-thousand-dollar tuition debts they'll be paying off for
the next forty years, too, isn't it? :) (See quip about
emacsology degree programs, above.)
The same argument could be used to dissuade people from learning
new programming languages. (For example, many people find that
they need to pay for courses of various lengths to learn the art
of programming, and/or to learn certain programming languages in
particular.) Are you really suggesting that only things that can
be learned in moments, for little to no resource cost, have any
'true' value?
For example: being able to use CIDER when i wanted to start
learning Clojure meant that i could focus on learning Clojure
itself, rather than an entire new dev system.
And I already was familiar with Eclipse...
Fair enough.
Have they gotten around to adding a feature that makes it simple
and intuitive to switch between the help pane and a document
pane without having to navigate the help pane away from the
thing you can't memorize to some other, pane-switching thing you
also can't memorize? Such as, say, making alt-tab (or
control-tab since nowadays you'd run it in a terminal emulator
embedded in a real window system) switch panes? :)
Again with the claim that Emacs is a terminal-only application,
rather than being something that can be run in a windowing
environment (i run it under the i3 wm) and a terminal (at the same
time, if necessary).
As for switching between panes, you can use C-x o
(`other-window`), or (as i do) `windmove`, which allows one to use
e.g. C-TAB j (which i've bound to `windmove-down`) to give focus
to the pane directly below the cursor, or C-TAB l (which i've
bound to `windmove-right`) to the pane directly to the right of
the cursor.
WFM, YMMV.
Alexis.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.