# CanJS 4.0 and 5.0 Plans Discussion

**URL:** <https://forums.bitovi.com/t/canjs-4-0-and-5-0-plans-discussion/778>\
**Category:** CanJS\
**Created:** [December 12, 2017, 5:23pm UTC](https://forums.bitovi.com/t/canjs-4-0-and-5-0-plans-discussion/778 "2017-12-12T17:23:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![justinbmeyer](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.bitovi.com/justinbmeyer/32/179_2.png) [@justinbmeyer](https://forums.bitovi.com/u/justinbmeyer)\
**Post date:** [December 12, 2017, 5:23pm UTC](https://forums.bitovi.com/t/canjs-4-0-and-5-0-plans-discussion/778/1 "2017-12-12T17:23:56Z")

</div>

Hello everyone! I wanted to update the community on what are I think our plans for CanJS 4.0 and 5.0 should be. We’ll talk more about this at next week’s Contributor meeting.

In short, I think we should release 4.0 as soon as possible, followed by a likely 5.0 release in 3 months that will address some lingering internal API improvements.

**4.0** will be very similar to 3.0, with the following exceptions:

- Be [can-queues](https://www.youtube.com/watch?v=aHF7ntIxdSM) based, allowing users to more easily understand when event handlers are going to be executed and having tools to trace why handlers run (`can-queues.logStack()`).
- `can-stache` is being changed to so {{key}} only looks in the current scope. Also special keys like `{{%index}}` are being changed to `{{scope.index}}`. 3.0 supports all of this and warns if you have incompatible templates. [Read here for more information on stache’s changes](https://github.com/canjs/can-stache/issues/401)
- It will not be released with all the ecosystem plugins working. For example `can-kefir` or `can-validate`. These will be released shortly after the 4.0 release.

**5.0** should be identical to 4.0, and most apps should be able to upgrade without changes. However, we want to make the following changes to CanJS’s internals:

- Use an improved version of `can-util/dom/mutate` - [can-dom-mutate](https://github.com/canjs/can-dom-mutate).
- Use an improved version of `can-util/dom/events` - [can-dom-events](https://github.com/canjs/can-dom-events).
- Likely a new [nodelist API](https://github.com/canjs/can-view-nodelist/issues/37).

My hope is that these are the last of the 2.3 “quirky” internal APIs we need to clean up. We’ve already cleaned up the big ones with `can-reflect` and `can-observation-recorder`. Our goal is to eliminate `can-util`.

**5.0** will also include `can-element` and [can-query](https://github.com/canjs/can-set/issues/54)
