XaiJu
onivim
onivim

patreon


Oni v2 - Update #1

Hey all!

I wanted to give you a quick update on the prototyping progress for Oni v2. The primary focus for my prototyping time has been ensuring that we have the right set of rendering primitives to build an editor.

In parallel with Oni v2, we're building Revery - a general toolkit for building fast native desktop apps - and I wanted to put it through its paces and verify we have the pieces we need to make forward progress on Oni v2.

To that end, I mocked up a static UI that exercised some of the main rendering functionality required:

- Ligatures
- UTF-8 rendering / Glyph Fonts
- Flexbox layout
- Component Architecture  

Here's the result at the end of my prototyping:

Pretty humble and basic - but it almost looks like it could be a (very minimal...) usable editor! So I'm happy with the outcome.

You can see that we have ligature support, along with the ability to render font-awesome glyphs, which is great - it shows our stack is working end-to-end. (Keep in mind though, it is totally static).

The technology feels like building a React app - except it's completely native! 

However, of course, with any prototype, we find issues that we'll need to fix. Here's a few that came up during the course of prototyping:

- revery#108 - Text Rendering: Implement correct gamma correction
- revery#109 - Text Rendering: Investigate subpixel rendering strategies
- revery#115 - Performance: Cache results of `hb_shape` calls

And there are still gaps in the technology that need to be filled (specifically around mouse/keyboard input). But we can work in parallel on these while we build out the core editor experience.

We've also had some really exciting progress from collaborators:
- Akin has made progress on implementing box shadows (revery#107)
- Manuel has started working on texture atlases for our native font rendering (revery#53) - important for perf!

I've also spent some time on less-exciting investigations (or at least... not as fun as technical stuff!). As mentioned in the previous update - I'd like to sell Oni2 at some point (patrons / backers won't have to pay another dime though). The majority of our foundational work will be MIT Licensed in other repos (like Revery!), but the editor itself will be under a more restrictive license. My plan for the Oni2 repository is to use the CC-BY-NC-ND 4.0 license - it permits free and educational use, but commercial use is restricted.

For non-patrons, once we have an MVP, I plan on selling either 1-year or 3-year commercial use licenses. Patrons will get a lifetime commercial use license as a thank you for the early support. Let me know if you have any questions / feedback / ideas here, though! My goal is to create a sustainable business that can support building a high-quality editor - and I'm open to any ideas to make that happen.

The licensing is important to figure out, because I want to release a public repo as soon as possible. It'd be great for you to see live code, even if it is just a static executable to start. 

With that, the next steps for me are:
- Creating the Oni2 repo
- Setting up boilerplate stuff like the License, cross-platform CI, basic tests, etc
- Port over the prototyping work completed thus far, so that we have a running executable on Linux/Windows/OSX with the new tech stack.

Basic stuff, but it is important foundationally for the project.

The next high-level goal I have for Oni v2 is to have basic read-only text rendering working, by end of January. Having this can help validate the performance and start-up time in a real workloads. Stretch-goal would be to have smooth scrolling and a minimap. Editing soon after :)

Oh and also - on the Oni v1 side - we released a new build of Oni (v0.3.9) that addresses an error on startup in OSX Mojave - the bits are available here.

I'm personally very excited about what 2019 will bring for the project. My hope is that we can realize the vision of an editor with the speed of Sublime, the language support of VSCode, and the editing experience of Vim - a complete package!

Thank you for your support and helping us bring this vision to fruition. Myself and the collaborators on Oni are very appreciate of what you do for this project.

The next update will be in 2019 - so in the meantime, Happy Holidays and Happy New Year! Thanks again!

Best,
Bryan

Comments

IANAL, but the way I read the license, NC only 'protects' against commercial copying (e.g., selling media containing the source code, or displaying the source on a billboard), not against commercial use of the program itself. Have you consulted a lawyer to verify that this license does what you think it does?

I am wondering if the new architecture in Oni 2 could allow any support for remote attachment in the future? <a href="https://github.com/onivim/oni/issues/247" rel="nofollow noopener" target="_blank">https://github.com/onivim/oni/issues/247</a>

Thanks for the update! It seems like you'd go for a similar model as Chocolatey. I must admit I am a bit torn. I can't use Chocolatey in work because it is just to expensive and company policy won't allow installing it anyway. If I wouldn't get a commercial license as a patreon and I also wouldn't know and appreciate Oni, I must admit I'd first search for alternative nvim frontends for work before paying for Oni. That said, I can completely understand your plans and can't wait to try out the first builds of Oni v2. Also: Cheers for new release of Oni v1! And: Happy Christmas to all!

Hi Bryans, thanks for the reply. Sounds great!

Hi David! Ah Ryan just asked a similiar question. I definitely want to make the source code available (I'll start the repo shortly!) and open for PRs and enhancements. My plan at the moment is to switch to the less-restrictive CC-BY-NC (without the 'ND' clause) so that it's more clear. In spirit I think what I want is simple / fair: if you use it to make money, buy a license - otherwise use it however you'd like for free. It's surprisingly tough to find a license that is a perfect match, though (unfortunately!)

Thanks for the clarifications. So about the freedom 1, will everybody have access to the source code, and be able to ask for pull request? (not sure how it could be compatible with a licence mechanism for commercial use).

Good question David, I should've called this out in the post explicitly! Couple differences - the CC-BY-NC-ND 4.0 license is much more restrictive: - It only permits non-commercial use (that's the 'NC' part - at odds with freedom 0) - It also restricts distribution (that's the 'ND' part - so at odds with freedom 2/3) The CC-BY-NC-ND 4.0 wouldn't qualify as a FOSS license. (Although the foundational pieces, like Revery - are MIT Licensed - and thus would qualify as FOSS). In an ideal (my perfect) world, we could build a quality Oni v2 editor sustainably as totally free software - but unfortunately I don't see a path to sustainability there. So I'm striking the compromise of having it be free for personal/non-commercial/educational use, but charging for commercial use, to help sustain both Oni v2 and our OSS dependencies. Definitely open to other ideas though!

Great suggestion! Ya, I think, especially to start, it will be modestly priced - maybe increase the price a little bit each release. My plan was to eventually get to a Sublime-like price point ($100/US dollars / yr, which would be 87€) - but that would be once it gets to Sublime-like quality :) A trial would be a good idea too - Sublime has a very generous trial policy that helps there.

I've not yet read the CC-BY-NC-ND 4.0 license, but how does it compares with the "four essential freedoms" <a href="https://www.gnu.org/philosophy/free-sw.html?" rel="nofollow noopener" target="_blank">https://www.gnu.org/philosophy/free-sw.html?</a>

I love the idea of taking money from those who make money. If the 1 year subscription costs more than 100€, I would also offer 6 months. For something that, at least for me, is not yet mature to pay 100€ is too big an investment for some. Also because people do not know yet whether they do not like it after X weeks. Not everyone has time to try it out for 4 weekends with open source projects.

Personally, I don't mind paying for a tool that helps me earn my living. It helps the team behind it build a better product, which will make doing my own work easier and more enjoyable...

Long time reader, first time poster here. I appreciate the need to find a way to make money, but i know that I personally will be a lot less interested in Oni if it ends up with a non-free license. I suspect many others will feel the same way.


More Creators