I want to talk about folks complaining without knowing anything. The topic for today will be vimscript / vimL and particularly vim9script.
There has been a lot of stupidity around vimscript lately and I wanted to just share one that triggered this post.
He is right that vimscript (pre vim8 / right around the
nvim fork) was not in a great place. At the time
Bram was not working full-time on Vim but was clear about his
goals and direction for the language for vim8 and beyond. If
you haven’t read the plans for vim8/9 my last post covered the
vision that Bram had for the language and addressing the
legitimate concerns with the state of the language and
modernizing it for a new generation of developers.
Unfortunately the nvim wave was already in
full-swing and it became vogue to bash vim users while
claiming LUA was the future of plugin writing. Nvim folks have
been living in their bubble without much consideration for
where Bram left the original project that started this all.
Rather than having constructive conversations on the future of
vim/nvim we have decided that the split is too far gone; vim9
features never made it into nvim and many never will.
The desire to dunk on classic vim users and continue the lie that vimscript is terrible is just lame. I’d be surprisded if the folks who are bashing vimscript have written compliant vim9script, used vim8-popups, or any features introduced nearly 10 years ago in vim 8.0 (async, jobs, lambdas)
As someone who’s written vimscript for 10+ years I’d like
to think I am far more qualified to have this conversation
then the tech influencer community who starts to shake when
they see a:args.. people love dunking on variable
scoping in vim but don’t know vim9 got rid of all that. When
you are writing plugin code there is an expectation that you
have to understand quite a bit of the underworkings to
effectively make things happen. Vimscript is not
python or javascript where you use
whatever library will magically solve your problem with a
clean DSL; it is a specific language for a very specific
purpose and it does it well.