There is no silver bullet
===============================
The other day I had a chat on IRC aout text editors with other sundogs.
That has always been a mine field, but I was surprised to see that my
editor choices where somehow considered "unusual". Some other sundogs
have indulged in discussions about programming languages, and I guess
their reaction to my "preferred programming language" would be of the
same kind.
If you expect me to take any side on the Emacs vs vim war, you will be
disappointed: I regularly use emacs(1), vim(1) (or a few other vi(1)
flavours and clones) and ed(1).
I actually learned the basic vi(1) commands at the same time I learned
the basic Unix commands, and in the same way, i.e., by reading again and
again an introductory book on Unix, 3 or 4 years before I had the chance
to sit in front of a Unix console for the first time and try out what I
had learned. Then I started using GNU/Emacs (but I used also the Lucid
one), mainly for programming and text production (LaTeX), and I ended up
using it also for task and calendar management (org-mode). I use vi/vim
for some programming and for config files and/or small edits. Later on,
I started to appreciate the simplicity and essential power of ed(1) for
small edits, scripting, and for simple todo-list management, but also
for some basic programming. Each of these editors has its own pros and
cons, and each of them shines in something at which the other ones can
barely cope. The rest is mostly personal preference.
I think pretty much the same holds for programming languages. I have
seen holy wars unfolding on Perl-vs-Python, C++-vs-Java, go-vs-rust,
Haskell-vs-OCaml, C-vs-... well C is a story on its own, and these kind
of comparisons are pretty pointless anyway :)
And you know what? I regularly end up using several programming
languages at the same time, since none of them is good for everything
(there are exceptions to this rule, meaning that I think some of them
are good at basically nothing, but that's another story). I have written
sizeable amounts of code in C, Python, golang, Perl, Lisp, Scheme,
Haskell, Erlang, C++, PHP, Java, Tcl/Tk, and POSIX shell (and I don't
include here the early stuff I did in FORTRAN and BASIC and the
task-specific languages in R, Maxima, Octave...), but I would not
esclusively choose any of them for my daily stuff. Each has its own
strengths and issues, and can offer something that the others can't:
execution speed, development time, code readability, expressivity,
compactness. To be honest, I forgot over time what Java, PHP and C++
have to offer, except of bloat, but that's a rant for another phlog
post...
Well, the point is that there is probably no "silver bullet". I actually
think that looking for one, or believing that you have found it, is the
best way to preclude yourself from good discoveries and some great fun.
-+-+-+-
P.S.: If you really want to exile me to a digitally-deserted island,
just please give me access to an i486 with tomsrtbt [1] and tcc [2].
That'd be more than enough :P
[1]
http://www.toms.net/rb/
[2]
https://bellard.org/tcc/