Vy – A Vim-like in Python made from scratch
github.com
github.com
Lack of Python3 support is concerning as always with any modern Python project.
I'm not fluent in Python at all, and so it seems I have to have both, and if `pip install` doesn't work then I `pip3 install`. That seems pretty broken to me.
https://www.python.org/dev/peps/pep-0394/
The long-term plan is to make "python" version-agnostic. But for the time being, it is acknowledged that compatibility with Py2 is too important to do it just yet.
Qt has license issues; GPL wrappers are a no-go and I still can't completely understand LGPL so I'd rather not risk it.
It surprises me that given Python's size there isn't a one go-to permissive licensed GUI library.
I'm really not a fan of pip as a delivery mechanism though, if it isn't ready to be packaged properly then git clone and make instructions would be better.
> Python is such an amazing language; it turns vy such a powerful application because its plugin API is high level naturally.
Ok, so you really like Python.
> You can take the best out of vy with no need to learn some odd language like vimscript or emacs LISP; since vy is written in Python, you use Python to develop for it.
Ok, so you _really_ like Python.
I'd note that Vim also allows writing plugins in Python, so that alone doesn't warrant an entirely new editor. My biggest problem with this is that it doesn't explain what it provides which other editors do not. As such, I'd label this as the author thought "I love Python and want to make an editor which is all about Python, ignoring all existing Python-supporting editors and IDEs."
That shouldn't be enough to get people using it, though. It's not ubiquotous, like Vim; it doesn't have the plugins and wholesome environment of Emacs; it doesn't have the comparable refactoring/debugging/project management features of modern Python IDEs; it doesn't even claim to provide anything new.
Shameless plug, I wrote Snake https://github.com/amoffat/snake, which makes writing plugins in Python much easier.
For me personally "i did a X clone in Python" is always interesting because the language is so easy to read that it makes for a good interface and algorithm documentation. The article made the front page - looks like it is interesting for a lot of other HNrs too.
I take things like "vy" as the author being proud of what they wrote and wanting to share it. No harm done.
I don't see these posts as the author suggesting this is supposed to be the way forward, the new thing, etc. And to be honest, it's usually technically more interesting.
Seems more like a personal project that they crafted after the original Vim, more than anything else.
But Emacs Lisp is more powerful and in some cases nicer to use than Python. How old it is doesn't matter. And Guile is even better. I don't understand why I'd want to use Python.
https://github.com/jonathanslenders/pyvim
I've used Vim for years but on cli only as one of many jobs, fzf pydoc grep find ssh etc etc. I don't quite understand the GUI approach but that's ok
edit: I'm thinking of IntelliJ and realizing I've not used other for-profit IDEs much.
I thought everyone always says it stinks and lacks better components.
What you will notice is of course the GIL. Once any plugin starts doing enough work there will be noticeable lag unless Vy supports plugins using multiprocess python.
I have been toying with writing an editor in guile scheme and despite using _very_ suboptimal data structures and algorithms everything is instant up until maybe 10 simultaneous cursors in a 30kb file.
Due to the shitty implementation (really just a first draft), that was actually creating a new buffer for every insert.
----------------------
First and foremost, atom has pretty much noticeable lag, even for someone like me who thinks emacs is instant (which it isn't).
I agree that it requires a sensible plugin design, but the GIL will only get you so far. I haven't used atom much, but I suspect the heavier plugins rely on async tasks, which can be implemented using python's threads, or for python 3.4 and later using asyncio. This takes me to my next point:
People also under-estimate how FRIGGIN FAST v8 is. JS executed in v8 (or node) will run so many laps around cpython it makes a web-technology-hater (but whatever floats your boat!) like myself cry and bang my head to the wall. People seem to think that they play in the same league. They do not.
I thought that this was a clone of Vim, not Emacs.
"Vim-like" is an adjective, so where the noun it's modifying?
Laptop (computer). Roguelike (computer game). A glass of the house red (wine). Tabloid (newspaper). Convertible (car). Mobile/cell (phone), though these days people usually just say "phone". Etc.
Youth is wasted on the young.