onivim / oni

Oni: Modern Modal Editing - powered by Neovim
https://www.onivim.io
MIT License
11.35k stars 300 forks source link

Current state of development - or is Oni dying? #2673

Open christo-auer opened 5 years ago

christo-auer commented 5 years ago

No issue with the software itself but with the release cycle/development.

(I haven't found any better way to address this than here --- if inappropriate, please close).

I am a big fan of Oni and I am using it on a daily basis for professional work (programming and text). However, it seems like that the development of Oni has stalled since the release of the latest stable version. I'd really like to contribute code-wise, however I don't have the time or Javascript-skills. I'd consider becoming a patron if development picks up speed again.

Don't get me wrong, I am not complaining. I am just worrying. And it would be a real shame if the IMHO currently best UI frontend for neovim dies.

oni-bot[bot] commented 5 years ago

Hello and welcome to the Oni repository! Thanks for opening your first issue here. To help us out, please make sure to include as much detail as possible - including screenshots and logs, if possible.

bryphe commented 5 years ago

Thanks for the issue @christo-auer ! I can understand the concern.

First off - Oni isn't dead! I actually have been actively prototyping what an Oni v2 could look like - hopefully have details to share with insiders / patrons by year end. And I also use Oni daily for my work.

But there are a few issues that have contributed to a slower development cycle:

Lack of funding / time: For me and the core contributors, Oni is unfortunately a side project. I split up the <$250 in funding every month w/ active core contributors (usually around $75-$80 / mo / contributor), but it's impossible to fund significant development with this. For myself personally, I'm launching a startup, Ryan is starting his PhD, and Akin started a new job - all huge time sinks! My dream would be to be able to fund active development, even for a short time, but we don't have that level of funding and I don't see a way towards that w/ our current funding model.

BTW, we are tremendously thankful for our current set of insiders/patrons, because that truly does help us get the time we do have to work on the project. Also extremely grateful for the work our collaborators have done - @CrossR , @Akin909 , @Cryza , @TalAmuyal , @badosu .

I'd really like to contribute code-wise, however I don't have the time

This is the unfortunate OSS conundrum! Not only code, but triaging issues, supporting, etc takes a lot of time.

I'd consider becoming a patron if development picks up speed again.

And this is a chicken-and-egg problem. We need more $ to fund active development, but without active development, it's hard to get people on-board to support. I wish I had the answer to this, but it's a problem not specific to Oni but with OSS in general.

Prototyping: The free time I have been spending on Oni each month, I've focused towards prototyping / investigations for 'Oni v2'. I haven't been good at communicating it out, mainly because I've been waiting to have bits to show. I'm currently drafting a design document and testing out some architectures.

As a teaser - for Oni v2, I'm looking at alternatives to Electron. There's some features that I'd like to implement where we hit performance bottlenecks, and with those sorts of problems, we hit a fork - we can either double-down on Electron and continue to improve perf, or we can take a step back and see if there is a way we can improve perf at a higher-level with a different stack. There's also some features that have been difficult to implement in our current architecture (#405 , #520, #1040), that could be rectified with an improved architecture based on what we've learned with Oni v1.

My vision for Oni v2 is a truly native GUI app -> instant startup, <10ms typing latency, smooth scrolling, etc - but with the features users appreciate in Oni (neovim behind the scenes, works out-of-the-box, language support, JS plugins, etc). Likely would still have a Node backend for hosting JS/VSCode plugins, but this is a lighter dependency than all of Electron.

Oni has always been an experiment, with a mission to build an editor that is the fastest way to go from thought to code, and that mission is still alive and well. Oni v2 would be the next iteration of this experiment.

Hopefully more to share soon!

If anyone has ideas, though, on how we can get more funding / time, would ❤️ to hear from you.

christo-auer commented 5 years ago

Thanks, Bryan for the open and honest words! I, and for sure the community, really appreciate it!

First of all: I am glad that Oni is not dead! I think the concern mainly comes from other OSS projects that I became really fond of and which died a slow and silent death (NyaoVim, clojure for Android, etc.).

About the time issue: even with my super-trivial OSS projects, I have seen that bringing a full time job, a family (with kid) and holding a lecture on the weekend under one hood is virtually impossible. That said, it is very impressive and humbling what the Oni contributors (and other OSS communities) have created in their free time.

I hope that I can contribute in the future with issue reports, however, I cannot make any promises.

Also thanks for explaining the current funding model! Yes, I see how it is a chicken-and-egg problem. As a matter of fact, I thought about how much I use Oni everyday and just decided to become a patron. It is just a little bit but better than nothing and a token of trust I bring to this project after your explanations!

Your work on Oni v2 sounds very exciting. I think one of the most attractive features of neovim and vim on the terminal is the almost instant startup time (assuming you don't have thousands of plugins installed). However, (n)vim on the terminal looks and feels very antequated. That's why a like Oni so much. Bringing together a modern GUI with a fast startup and good performance is certainly the way to go. Really excited to see and hear more!

About Electron: I myself don't have much experience with it. But I have my experiences with React and React-native (actually Reagent as I am programming in ClojureScript). And as sexy as those frameworks are, they can really become and issue when performance matters.

In short, "native GUI app" sounds awesome!

About funding: I think, being transparent and open about where things are heading, is very important to maintain and build trust, to keep sponsors and win new ones (hey, it worked for me ;-) ). Besides that however I don't know how a sustainable funding system should look like.

Something off the top of my head would be a Kickstarter or Indiegogo project. It has worked for other software projects like Chocolatey (https://www.kickstarter.com/projects/ferventcoder/chocolatey-the-alternative-windows-store-like-yum/description). I would be an early backer! :-)

Again, thanks for the openess!

Christopher

bryphe commented 5 years ago

Thanks, Bryan for the open and honest words! I, and for sure the community, really appreciate it!

Definitely! Thank you for your consideration. With my experience so far - I feel like the best OSS projects are the ones where the entire community is a team. Some might write code, some might test and log issues, some might write documentation, some might contribute financially - but we're all working towards a common goal.

I think the concern mainly comes from other OSS projects that I became really fond of and which died a slow and silent death (NyaoVim, clojure for Android, etc.).

This is very unfortunate. I actually am interested in this problem and would like to explore ways to be able to fund more open source projects. But obviously I still haven't solved this problem for myself! My utopia would be a world where funding could trickle in from apps - like if I could sell an app and dedicate 30% to be split across all dependencies (and there dependencies). Imagine if every company did this - a career in open source could be a viable direction. Wishful thinking but I wonder if there is a path.

Also thanks for explaining the current funding model! Yes, I see how it is a chicken-and-egg problem. As a matter of fact, I thought about how much I use Oni everyday and just decided to become a patron. It is just a little bit but better than nothing and a token of trust I bring to this project after your explanations!

Thank you so much! It's truly appreciated and every little bit does make a big difference.

About Electron: I myself don't have much experience with it. But I have my experiences with React and React-native (actually Reagent as I am programming in ClojureScript). And as sexy as those frameworks are, they can really become and issue when performance matters.

Cool! Reagent is neat and I think re-frame is really interesting too. But yes, unfortunately with any of these web technologies you start at a deficit compared to native and can hit a performance wall. I'm excited about the tech stack we're investigating... because it has the potential to deliver the developer experience of React, but w/ native performance on par with C.

About funding: I think, being transparent and open about where things are heading, is very important to maintain and build trust, to keep sponsors and win new ones (hey, it worked for me ;-) ).

Definitely, this is one thing I haven't done well the past few months. I'll plan on sharing out the Oni v2 design doc draft shortly w/ patrons & insiders, along with updates on how the prototyping is going.

Cheers & thanks again @christo-auer!

PatrickMassot commented 5 years ago

@bryphe Thank you for your explanations. I still don't understand how all this explain the development priorities. I can see 11 issues tagged daily-editor-blocker, for instance #2140 which makes Oni unusable and could be temporarily fixed simply by changing the default settings. But the changelog seems to be mostly about adding tutorials for users who never used vim, or working on WebGL. Of course I'm exagerating, but I can tell you each new shiny tutorial makes me considering canceling my support.

bryphe commented 5 years ago

I still don't understand how all this explain the development priorities. I can see 11 issues tagged daily-editor-blocker, for instance #2140 which makes Oni unusable and could be temporarily fixed simply by changing the default settings.

Sorry about the issue you had with #2140 , Patrick! Thanks for sharing your thoughts.

The reality is that on a couple hours / week of development it's difficult to prioritize everyone's use case (it's that chicken-and-egg problem again!). But I do recognize that, even in light of that, we could still do better at recognizing the right set of priorities - something I have some ideas about how to remedy in Oni v2.

Note that most of the time I have been using has been towards prototyping v2. I'll be sharing out my notes today with backers - covers at a high-level both the technical aspects of Oni v2 and some of the process/funding model ideas. So will be helpful to get feedback on that - since it's applicable to this scenario.

Of course I'm exagerating, but I can tell you each new shiny tutorial makes me considering canceling my support.

I understand & appreciate your support! But please don't feel obligated if you're not happy with the project.

bryphe commented 5 years ago

BTW, as an update, I've (finally 😄 ) sent out the design doc / status update / ideas for Oni v2 to backers here:

https://www.patreon.com/posts/23053147

Interested in thoughts / feedback!

PatrickMassot commented 5 years ago

Thank you for the information. The dreams for v2 look really nice, but it's really frightening that they rely on first developing revery... Of course I would love to see all that becoming true!

bryphe commented 5 years ago

The dreams for v2 look really nice, but it's really frightening that they rely on first developing revery...

It's ambitious to be sure!

Of course I would love to see all that becoming true!

Me too 😄

xanf commented 5 years ago

I personally think that putting bet on revery may work to involve enthusiastic ReasonML community - since it will be one of the early native projects in ReasonML. I really looking for early prototype, since I'm playing with reasonml for a while and it will be an awesome real-world playground to test reasonml skills :)

P.S. fresh patreon VIP backer here (as javascriptninja) :)

jordwalke commented 5 years ago

Lots of people in the Reason community are excited about all the work that @bryphe is doing. Very foundational stuff! I can definitely see many people hopping on board to help out.

@bryphe has already made major contributions to the Reason community by getting the entire native toolchain to be seamlessly cross platform. The end result is that it's pretty much one click to get started contributing to fully native code that runs on all major platforms. There are many great languages that provide great out-of-box performance but require a lot of ramp up time (Rust, C), and many great languages that provide fast ramp up time but with a perf ceiling (JavaScript). Reason offers both fast ramp up time for the JS community of contributors and very fast performance, which makes it a great candidate for the underlying infrastructure of a highly responsive IDE developed by a community with a lot of web development experience. I'm also excited about all the tooling improvements that come from this. If new Reason community members are looking for useful native projects to contribute to, I'll definitely point them to Revery!

ghost commented 5 years ago

Even though there is a V2 scheduled in a (slightly) different language, I'm thinking of allocating some time to help develop Oni V1 once again, if it is of any help. I wanted to do way more last time, but other things got in between. I don't know how much time I can spare, but at the very least I'll try to work though some issues in the days to come.

By the way: hi all 😄

badosu commented 5 years ago

@samvv That, and you, are very welcome!

I use Oni as my daily editor but a new full-time job has taken much of my time lately, it is currently the best editor for my case and has the potential to be a great editor for everyone, from veteran vim users to newbies.

A stable, and refined, Oni would be a heavy contender in the editor space. Just freezing features and making a push for refining and stabilizing what we already have certainly could bring a horde of users and their contributions.

ghost commented 5 years ago

@badosu I totally agree! There's quite some work to be done, though, before it gets that maturity and stability. Luckily, I'm having lots of time the coming weeks so at least I should be able to do something. 😃

bryphe commented 5 years ago

Hey @samvv and @badosu !

Would love help stabilizing what we have with Oni v1 today! I mean, it is still my daily editor.

A stable, and refined, Oni would be a heavy contender in the editor space. Just freezing features and making a push for refining and stabilizing what we already have certainly could bring a horde of users and their contributions.

💯

Luckily, I'm having lots of time the coming weeks so at least I should be able to do something.

@samvv - that would be great to have your help! I'm taking a look at the CI issue right now (your PR should be green!), so hopefully once that is unblocked it'll be easier to contribute. Let me know if you hit any other blockers.

ghost commented 5 years ago

Thanks, @bryphe! I just noticed it when I got back home. WIll look into it.

CrossR commented 5 years ago

The initial patreon post about this that @bryphe linked to has now been opened up for non-patreons, for those who are interested.

(https://www.patreon.com/posts/23053147)

badosu commented 5 years ago

BTW, @Akin909's presentation video from VimConf is now available, congrats!

https://www.youtube.com/watch?v=MCBHz9o6gAg

ELLIOTTCABLE commented 5 years ago

Personally, seeing that there's a rewrite in OCaml coming, is prompting me to try out switching to Oni (from VimR). Keep up the good work, @bryphe!