ECMAScript 2015Moreover, TC39 decided that their entire development process should be revamped and started working on the planned improvements. They agreed on three major things:
- Small improvements, no big promises
- Strict release lifecycle
- Community-driven improvements
Proposals LifecycleAfter the long years of discussions and considerations, the committee finally came to an agreement over a strict proposal lifecycle and fixed a yearly standard version as they recognized the need of upgraded versions in a timely manner. Moreover, the proposals became community-driven, instead of corporate-driven. But let’s dive deeper into the whole development process of one new ECMAScript functionalities. It consists of one informal and four formal development “stages”: As I mentioned before, everyone can propose a new functionality to be incorporated into the standard and all of those ideas are going into Stage 0 – “Strawperson”. This is the initial state of the feature proposal and there aren’t any specific requirements here, just coming up with a creative idea. If that idea is favored by someone from the committee it goes to the next stage – Stage 1, Proposal. This is the first formal stage of a new feature development. The person who recommends the addition should provide an explanation of his motivation for introducing the extension. The member of committee who liked the idea becomes a “champion”, who is responsible for outlining the problem, discussed at the regular meetings and urging TC39 to review it. At this stage major changes are allowed. If the feature has the committee’s approval, it goes to the next level – the list with Stage 2 “Draft” proposals. At that point the author should precisely describe the syntax and semantics, using formal spec language, as well as provide experimental implementation. Only incremental changes are allowed from that point onwards. The next stage is called – Stage 3 “Candidate”. Reaching that phase means that the addition is almost done. Its semantics, syntax and API are completely described, and only modifications motivated by critical problems could be applied. Also, reaching this state means that all committee members have signed off that the feature should be included in a future standard version. The final Stage 4 “Finished” means that the addition has been significantly tested and integrated in most popular browsers. All the proposals at Stage 4 are included in the next standard candidate draft at the beginning of February each year. The whole process of giving life to one new feature could last from a couple of months to a few years. So, the main reason for adopting this development lifecycle is not to block ready-to-be-released features because of discussions on unfinished functionalities.
ECMAScript Release LifecycleFurthermore, the committee takes a specific approach when it comes to delivering the new standards succeeding ECMAScript 2015. Here is an approximate timeline. The new release Candidate Draft is introduced at the beginning of February. The next two months are a period for testing all the stage 4 proposals. At TC39’s Meeting in March all stage 4 proposals are incorporated and approved. The new specifications version is branched from master and only editorial changes are allowed. In the next three months ECMA reviews the proposal of the new version and if everything goes well, the official yearly release standard comes to life in July.
You might be wondering why you should know all those facts. What I wanted to show you with my article, is the big effort that someone else does in order to make our lives as programmers easier and the end user’s experience more delightful.
So, here is my advice for all programmers – go for the newest version, it will minimize your efforts and make your life easier.
And if you are a business owner and you are wondering why your team insists on using new technologies and constantly refactoring the code, then give them a chance, new technologies don’t bite.
Choosing the right technology stack is at the foundation of your successful business and many times the latest technologies are the answer. Learn how we can help you leverage their power!