I think Matthew's argumentation is well thought out, clear and valid.
I don't use variable tabs myself but I can empathize with those who
do. I remember that floating-point functions were at first a crippled
set, and it took some time (a year? two? more?) to convince Bram that
the full set (which was available in the meantime as a "third party
patch") was worth including (and would add only ridiculously little
executable bloat). IMHO the time is ripe for making variable tab stops
a "standard" part of Vim, even though it is a feature which I do not
use myself.

In order to decide whether or not it is actually "a small thing" in
terms of executable bloat I would like to see figures: let's say the
size of two Huge executables for the same OS, word size (32/64) and
GUI, differing only in inclusion or not of the variable-tabs feature.
(I assume that that feature, if and when part of "standard" Vim, would
be "ifdeffable" at compile time, via configure on the OSes where
configure is used; and this means that it would routinely be
ifdeffed-out in Tiny builds.)

Best regards,
Tony.

On Sun, Mar 11, 2018 at 10:36 PM, Matthew Winn <v...@matthewwinn.me.uk> wrote:
> On 11/03/18 15:04, Bram Moolenaar wrote:
>>
>> First of all, I'm sorry to disappoint you.  This patch has been floating
>> around for a long time and has never made it in.  It's not urgent, and
>> not a small thing to include, with the result I have been postponing it
>> for a long time.
>
>
> But it is a small thing to include. Vim already includes code that is called
> when a tab needs to be displayed and works out how many columns need to be
> skipped to get to the next multiple of the tabstop setting. From what I
> remember all the variable tabs change does is check to see if the new
> setting has been set and if so it looks up how many columns to skip instead
> of calculating it. It's really not that complicated, and it has the
> advantage that if the new setting isn't set then the only line of new code
> that is called is the one that checks whether the setting is used. If not
> then only the existing code runs, which means that anyone who doesn't use
> the new setting has no chance of seeing any alteration in behaviour.
>
> The only slightly iffy thing about it is that it doesn't play well with the
> linebreak setting, but that's a known issue with the current tab
> implementation as well.
>
> If Vim was in some sort of feature freeze state where it was considered to
> be complete for all time and no changes apart from bug fixes would ever be
> made then I could understand your reluctance to add this, but you've been
> perfectly willing to add far larger and far more disruptive changes to Vim
> even when there's been no user-driven request for them at all. Why is this
> one such a big problem?
>
>> A few statements needs further discussion though.  I have recently been
>> involved in a product launch, which fortunately had the resources to do
>> user studies and gather statistics about usage from different kinds of
>> users.  Including doing user surveys that are statistically sound.
>>
>> What has become very clear is that there is no direct relation between
>> what comes up in forums and what users really need or want.  For bugs
>> and things that are hard to understand it can work, the more people
>> complain the more likely it is a real problem.
>>
>> When it comes to new features or changes in existing features, it can go
>> in any direction.  Some user may loudly express their opinion, and also
>> get other users to say they also want it.  But when asking the average
>> user, it turns out they won't need it, or even get confused by it.
>> And in other cases users don't ask for functionality, but when we add it
>> then lots of users find it very useful.
>
>
> You can tell what sorts of functions people are likely to find useful by
> looking at the sort of tasks people are likely to do. Very few people are
> likely to want a terminal emulator built into an editor because they already
> have ways to get at command lines outside the editor. They may certainly
> make use of the feature once it's there, but there are very few tasks that
> they couldn't do in an external command line that they can now do inside a
> Vim terminal window. Very few people are likely to want interprocess
> communication because it's not the sort of function people would even expect
> an editor to have.
>
> But editing tabular information is something that a great many people do.
> It's not just a matter of working with tab-separated data files. How often
> do you want to assemble columns of information in a text file where the
> columns are inconvenient sizes? You wrote Vim so I'm sure you use it for all
> sorts of things, and I bet there are times when you've found that spaces are
> annoying for getting the columns aligned while tabs between every column
> waste space and mean you run out of screen. That happens to me a couple of
> times a week, and I doubt my requirements are anything exceptional. That's
> the sort of common real-world situation this change addresses, and right now
> it's something that can't be done in Vim at all. If I want columns of text
> in a reasonable amount of space I need to use a spreadsheet, and then I have
> to keep going through removing all the spurious ks and js and ZZs that
> appear all over the place when I forget which environment I'm in.
>
> I would bet money that far more people find themselves thinking "I wish Vim
> was better at handling columns of data" than "I wish Vim had better
> interprocess communication" or "I wish Vim had more ways of writing regular
> expressions" or "I wish Vim was programmable in my favourite language".
> Those are developer requirements. Variable tabstops are an end-user feature:
> a basic function that's of use to everyone rather than an advanced addition
> that only experts will care about. Shouldn't end-user features be given
> priority?
>
> --
> Matthew Winn
>
>
> --
> --
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> --- You received this message because you are subscribed to the Google
> Groups "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to vim_dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui