Am So., 11. Aug. 2019 um 22:04 Uhr schrieb Bram Moolenaar <b...@moolenaar.net>:
> That is not at all we are doing.  Function chaining has nothing to do
> with OOP.

Definition of OOP is uninteresting/irrelevant here.

> > Historically, something that I strongly appreciated about Vim was its
> > (now obviously accidental) culture of backwards-compatibility in the
> > *plugin community*. This happened (accidentally) because Vimscript
> > evolved so slowly, it was usually worth the effort for plugins to
> > support 10-year-old versions of Vim. Contrast to Emacs, where I found
> > most plugins required the latest version.
>
> That is not true, over time new functionality was added and quite often
> plugins soon popped up which used this functionality, thus depended on

Vacuously true. *Functionality* is useful. *Features* often are
useless noise, and only add entropy. Language-level features in
particular.

I reported my experience based on deep familiarity with Vim and Emacs
plugin ecosystems.

> that new version.  And old plugins keep working, that is what backwards
> compatibility is about.  If you see an old plugin break because of new
> functionality, then please report it soon, that's not what we want.

Back-compat is easier *for plugin authors* if they don't have to
carefully select a subset of Vimscript.

> > Why in the world is foo->bar() worth sacrificing even a small amount
> > of backwards compatibility,
>
> If you think this breaks backwards compatibility, please give an
> example.

It increases the cognitive burden (to plugin authors) of finding a
backwards-compatible subset, and thereby makes back-compat a less
common, higher-cost endeavor.

> > > I was first thinking of adding a property to the function command:
> > >         function Total(arg) method=list
> > >         function Total(arg) method=dict
> > >
> > > Many languages now support an optional type, using that we could do:
> > >         function Total(arg: list) method
> > >         function Total(arg: dict) method
> >
> > Type-parameterized methods are usable in languages with IDEs. But I do
> > not think it makes sense to change Vimscript into a language that
> > requires an IDE: that is a regression, not an improvement.
>
> I hardly ever use an IDE for any language, including Java and
> Typescript.  True, someone who is familiar with a good IDE can do
> certain things faster, but these IDEs are lacking a good editor...
>
> Anyway, the real question I'm asking is if selecting a function/method
> based on the type is actually useful or will just make things more
> complicated?

You can suggest *any* language feature and you'll find people who want
it. That's why C++ has all of them. So this survey is a formality.

-- 
Justin M. Keyes

-- 
-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/CALbULwE737eMtFcvqcvR6KoBzqA54cs74MTXsZG14hCDr_M6aA%40mail.gmail.com.

Raspunde prin e-mail lui