Introducing T3: A Minimalist JavaScript Framework from Box.com

t3js framework from box

Here is another promising open source JavaScript Framework “T3” from the giant cloud storage provider, Box.com. Box is already using it for in house development for more than a year now and finally decided to release it as open source for free public use.

T3 literally stands for “Take 3”, the first two attempts seems to have failed. Those failed, indeed!

Do We Really Need Another JavaScript Framework?

Why Not!

Evolution continuous and technology scales new heights year on year. If you look back in the year 2014, we have seen unprecedented increase in demand for JavaScript and so the creation of new JavaScript Frameworks.

Though, only small percentage of frameworks succeed but then every failure leaves behind learnings to be incorporated in the next one.

Many big development houses worked on building JavaScript expertise and libraries for in-house use and ultimately structured the code together to build full blown framework that promises to support web development as a whole rather than serving only the specific needs of the organization.

We have seen ReactJS from Facebook, Aura from Salesforce.com as well as Angular from the house of Google, and now the latest addition, T3 JavaScript Framework from Box.com. 

Also Read - 10 Best JavaScript Frameworks for Modern Web Applications.

What is the Idea Behind T3 JavaScript Framework?

Scalable client side web development is one of the biggest challenges of recent times, T3 attempts to solve this problem by coming up with modular and scalable JavaScript architecture.

It is a minimalist framework that is modular, made for collaboration and enforces best practices to build large and scalable client side web applications.

Components of T3js Framework

There are three key components in T3 framework, modules, services and behaviors, the three pillars of any scalable JavaScript front end –

Modules

Module is the DOM element and is a standalone component on the UI. Any user actions or events on the DOM element are managed by the underlying module independent of everything else on the page.

Modules can interact with other modules on the UI indirectly but you have to define that specific behavior via the central controller, the Application Object.

This makes modules loosely coupled and self-contained units, until unless you explicitly create want them to interact with each other via event bus, the application object.

Services

These are the reusable code libraries in the application; the simplest example is the piece of code that can be used to parse strings.

Behaviors

Behaviors are mixins for modules and can be used in multiple modules to avoid duplicity. Multiple modules might need an event to be handled in the same way and that is where behaviors come into picture. You do not need to write a separate piece of code for each module to respond to a given event of same nature.

T3 is dependent on jQuery and the main reason behind is to provide support for IE8. Of course, not many are using IE8 now and jQuery dependency is expected to be dropped pretty soon by the T3 developers.   

This framework is licensed under Apache 2.0, You can fork the GitHub repository or start contributing to it at - github.com/box/t3js.

Read more about T3 framework and get detailed documentation on the official T3JS website.

Conclusion

Box has been using T3 framework for quite some time now in production and that gives some assurance for it being production ready straight "out of the box". However, it is yet in the initials days of its life as open source framework and we need to wait and watch on how it performs under varied set of requirements.

Keep watching for further updates. Happy coding!

About The Author: noeticsunil

Sunil is the founder and contributing editor at noeticforce.com. He writes about anything and everything that makes modern mobile apps, web apps and websites possible. Passionate about coding in any language including Python, Swift, JavaScript, PHP, Java, Android & iOS dev, not excluding CSS/HTML. 

If you like this article, you can connect with noeticforce on Twitter or subscribe to noeticforce feed via RSS.