Subject: RE: [hackers-il] YA Vim Trick: Indenting an Arbitrary Block

From: Omer Musaev <[email-masked]>
Date: Wed, 20 Feb 2002 12:05:19 +0200

> That's a vim-only feature that won't work in other vi's. I 
> personally consider it a misfeature because it adds nothing 
> whatsoever to the marker trick Shlomi described, while creating 
> incompatibility and complicating the interface (adds another mode).

I disagree with the above statement. Considering out-of-date tools 
to preserve "backward compatability" with older platforms is a bad 
thing - and here comes my explanation.

Consider cars as tools for driving. A driving is rather old practice, 
and almost everyone who can drive one representative of a vehicle 
category can drive almost any other representative. 

Modern cars has now as standard many features that were considered
as high-end/experimental/ecsotic/extreme. An example for that is 
semiautomatic gear box. 

The device was initialy deployed in tanks and Formula-1 racing cars.
Right now many new vehicles come with such a box as an standard feature.
It has many advantages over both "traditional" manual gear and 
"traditional" automatic gear - actually it combines benefits of both. 

However, they are not "compatible" with neither of traditionals.
This means that a driver who is using semiautomatic gear is not 
"compatible" with older cars. So he has a disadvantage. His new 
"service" has a hidden cost of re-learning that would have to be
paid if and when he decides to use "traditional" service.

On the other hand, semiautomatic gear allows one to spend less fuel
while putting much control over the machine. Thus, while the driver
uses the feature, he actually enjoys better "service" from the "tool"
that he "uses". Integrate the effect of the "service" over time used, 
and suddenly you have a quantitive measure of a feature. Which means
that cases when using modern "service" can be more productive, despite
the fact of inherited cost of possible re-learning.

Having introduced the benefits and drawbacks of "swquential" gear boxes,
let me return to realm of software, and introduce 2 hipotethical persons.

One, let's call him Yoav - is a system administrator in a large company.
The company has 800 personal computers, 50 servers running various brands
of Unix and 20 servers running various releases of NT and Win2K. Yoav 
is a part of admin team, and his duties include installing new versions 
of software on both Windows servers and Unix servers, and, in addition, 
he is in charge of DNS/YP.

The second user, let's call him Yoel - is a system level programmer.
He is writing programs in C for few brands of UNIX, and he has his 
own Unix station he is allowed to customize as he wishes. 

It seems to me that needs of those users are quite different. I do not 
want to perform a full analysis of those needs - mainly because I am no
good at it, but I think that H-IL/Cabal members will be happy to do that.

> 
> 
> I find that the elegance and simplicity of the tools is very 
> important to me. I like my tools transparent and understandable, 
> and often I prefer not to use tools that do things too obscurely
> or too automatically, or that I have no chance to understand 
> (e.g., no source code and nontrivial implementation), for as long
> as more understandable tools exist, even if they are less 
> efficient. Is it only me, or do other members of the list feel 
> the same? 

Speaking about me - it is hard to tell. I do like systems that are 
giving most abilities and power - for example the question Emacs/Vi
has its answer for me. In addition, I do like predictable systems -
those that I do not have to understand fully to be able to use 
in a productive way. In that aspect GNU Emacs ( up to 20, did not 
try 21 ) are out of question, but XEmacs is quite comparable to vi.

> Or is your choice of, e.g., Linux as a desktop system
> based on other factors? I'm suspecting that this might be what 
> differentiates a "user-mindset" from a "hacker-mindset" (whether 
> the person is a hacker or not). Either person might or might not
> be a programmer, but while a user desires functionality only from 
> tools, which are blackboxes, and demands elegance only from actual
> code they work with, a hacker-minded person makes no distinction
> between tools they write and code they work with -- nothing is
> truely a blackbox.

Well, I think I am not a hacker minded person according to that 
definition. I do not think I have a privilegy to spend time - which I 
do not have - to learn thing in unproductive way. However, focusing 
on a limited set of tools and mastering them deeply is my favorite 
way of doing things. Believe me or not, I do not master perl - awk
is good enough for me.

> 
> ------------------------ Yahoo! Groups Sponsor 
> ---------------------~-->
> Access Your PC from Anywhere
> Check Email & Transfer files - Free Download
> http://us.click.yahoo.com/Z8IZpD/3XkDAA/yigFAA/saFolB/TM
> --------------------------------------------------------------
> -------~->
> 
> To unsubscribe from this group, send an email to:
> [email-masked]
> 
>  
> 
> Your use of Yahoo! Groups is subject to 
http://docs.yahoo.com/info/terms/

---

From: Adi Stav <[email-masked]>
Date: Wed, 20 Feb 2002 15:11:28 +0200

> thing - and here comes my explanation.

That's not what I meant. I'm not opposed to new features, even in vi.
I like multi-level undo (not specifically vim's, though) and I like 
its syntax coloring, and so forth. But specifically "visual mode" is 
a feature that is absolutely not needed -- its functions can be 
served completely by the existing standard markers. It has no 
advantages whatsoever; it only introduces incompatible complexity 
that does not quite fit with vi's design concepts. 

Markers fit perfectly in vi; every command takes a movement, so you
can apply it to a region by doing an over-region movement. Nothing
is more complicated than it needs to be. With visual mode, suddenly
you have a new mode altogether, in which you cannot use commands
normally. For example, What if you want to delete a word before you 
indent your region? You can't use "dw" because you'd lose your 
region before you get to type "w". Not to mention that you can have
26 different markers and only one visual start point.

So "visual mode" is not a new feature, it's just an old feature 
reintroduced with a more limiting, less general function and with
a different syntax. Plus it's non-portable. I can't see why would
anyone choose to learn visual mode rather than markers, given the 
option...