Abstract
The TC39 is responsible for the present and the future of JavaScript - ECMAScript. As such, it is important to understand their principles, goals and other related work arount this globally used general purpese, cross platform, vendor neutral programming language.
Specifying JavaScript
Definitively, TC39 sounds like a commando group’s name ready to enter into the action for some reason. Nonetheless, it is just the generic name of the group of people in charge to think, mantain and evolve the definition of JavaScript. Formally, TC means ‘Technical Committee’ which is a group that addresses a particular area or topic in order to build some standard. In this case, TC39 or Technical Committee number 39 is the group in charge of JavaScript. All JavaScript developers around the world are tied to this group even if they do not know anything about it. Because JavaScript is very important for the world today, it is worthy doing some research about this TC39.
JavaScript is one of the Web Standards languages that powers all websites in this super global network of information called World Wide Web (W3, WWW). When we see a web page that suddenly starts a beautiful animation and other stunning effects, or when we enter a password in some text field in a web browser, and the webpage shows a message saying that it is not correct, it is highly likely that you are in contact with JavaScript. So, the importance of this group TC39 is basically for the good or doom of the entire humanity as it is known today. Besides the hyperbole, what I know is that two words define clearly their job and mission: Specifying JavaScript. But, what is a specification?
What is a Specification?
A specification is an official document where some technology is described in different levels of abstraction, its scope, functionality, behaviour and other functional features. Other non functional aspects of the technology may be described as well. For example: design principles, technical vocabulary, formal verifications, acceptance tests, etc. That document is very important for having a unique source of truth and a reference guidance for projects implementing the given specification. Another way to understand a specification is as a process of standardization of some entity as a process or technology. When a standard is produced, many related entities can trust in their own developments because there is a trustable source of description of a system. In a word, a specification allows to speak the same language between the groups of interest around the specificated entity or technology.
In their webpage, the group description is: ‘Ecma International’s TC39 is a group of JavaScript developers, implementers, academics, and more, collaborating with the community to maintain and evolve the definition of JavaScript’. Their critical mission is to think about JavaScript and steer its development and evolution. The future of JavaScript is, to some extend and at least today, the future of the W3. The TC39 is part of a more global organization of standardization: the Ecma International (ECMA). The ECMA is an international association dedicated to standardization of information and communication systems. JavaScript is one of those Technologies subject of continued standardization. Because the web is a widely used technology for people, organizations and business alike, those standards are a global necessity to improve communication and collaboration.
Specifying ECMAScript or JavaScript?
The official name of JavaScript, surprisingly, is not JavaScript but ECMAScript. I can safely say that the informal name, popular name or nickname of ECMAScript is JavaScript, and the formal name of JavaScript is ECMAScript. I know, it is a kind of circular self reference, but that is the case. ECMAScript is a registered trademark of Ecma International, and JavaScript is a registered trademark of Oracle. So, to avoid future issues related to trademarks, and to mantain the programming language open and accessible, the name ECMAScript was choose as the official trademark name for what we all know as JavaScript. Besides, JavaScript or ECMAScript is a globally used programming language which is part of the open technologies behind the W3. It means that ECMAScript does not belong to anybody, but it is openly defined and that definition publicly accessible. All the interpreters or compilers for JavaScript are implemented for different entities or groups of interests based in the official standard.
The Ecma International define the scope of the TC39 as the ‘Standardization of the general purpose, cross platform, vendor-neutral programming language ECMAScript®. This includes the language syntax, semantics, and libraries and complementary technologies that support the language. This work intends not to use patents or if so then only royalty free patents. To aid in achieving that objective, this TC is using the Royalty-Free Patent Policy.’ One important point here is that the TC39 is using the royalty free patent policy. It is a mean to maintain ECMAScript as an open technology, and avoid to be engulfed for anyone. Another point is to stress that ECMAScript is defined as a general purpose programming language. It means that it should not be tied to a specific scope, but it may be thought as a tool with a more general approach and scope. Today ECMAScript powers the entire W3, but perhaps tomorrow, when other technologies are to be developed, ECMAScript may serve as the language that will power them. So, the point is to remain open, accessible and free.

The Program of Work of TC39
The program of work of the TC39 is:
- To maintain and update the standard for the ECMAScript® programming language.
- To identify, develop and maintain standards for libraries that extend the capabilities of ECMAScript®.
- To develop test suites that may be used to verify correct implementation of these standards.
- To contribute selected standards to ISO/IEC JTC 1.
- To evaluate and consider proposals for complementary or additional technologies.
I want to highlight the work of develop test suites to verify the correctness of any implementation of those standards. If you are interested in the field of programming language, this is a huge opportunity to learn from the years of experience of this group as well as learn how they designed the tests for verification of correctness, and process they follow to allow JavaScript to evolve and thrive.