|By Marcin Warpechowski||
|December 12, 2014 09:45 AM EST||
Web Components: What You Need to Know in 2015
Web Components are a collection of emerging web browser standards that are on a path to significantly change the way we develop UIs of web applications - a paradigm shift in web development. With polyfills already available in all modern web browsers, and full native support in Google Chrome, now is the perfect time to learn how you can benefit from using Web Components in your next project. In this article, you will learn about Web Components basics, available frameworks, Custom Elements, as well as challenges and applications associated with this new technology. After reading this article, developers will have enough background information to begin dabbling in Web Components.
What are Web Components and can I use them?
To a growing number of developers, the web browser is a first choice platform for building an application. However, as application complexity grows, a typical web-based application may suffer from browser and library incompatibilities, buggy and inconsistent UI or overall sluggishness.
Image by the author. Icons by WebComponents.org (CC BY SA 3.0)
It is clearly in Google's agenda to make the web browser a compelling alternative to the desktop for building applications in the 2010s. This is probably why the company is leading the effort to set standard specifications of the Web Components stack, namely Shadow DOM, Custom Elements and HTML Imports and the addition of the <template> tag to HTML5. The three specifications have been at work since 2012 and bear the Editor's Draft status in W3C, while the latter (<template> tag) has made it into the final revision of HTML5, which received a W3C recommendation status on October 28, 2014.
The role of the four specifications is as follows:
- Custom Elements are a way to define your own HTML tags with observable attributes. You can now have a consistent, easy-to-use HTML API for sophisticated UI elements that keeps the details of their implementation in Shadow DOM. Custom Elements can extend existing elements.
- HTML Imports are the solution for on-demand loading of Custom Elements and HTML Templates. You can recursively define HTML Imports in HTML Imports, which allows for effective dependency solving. HTML Imports are subject to browser caching, so one import will not be loaded more than once for a web page.
While on the specification side, Web Components must be referred to as a work in progress, and that work goes hand in hand with the actual implementation in Google Chrome and Opera. Since version 36 of Google Chrome (released August 26, 2014), all Web Components features are implemented and enabled by default. Mozilla is actively following, with parts of Web Components also natively supported. Other browsers (IE11, Safari) rely on using a polyfill script called webcomponents.js (recently renamed from platform.js), which is maintained by Google.
Future of frameworks with Web Components: Adapt or die
Google is heavily investing its resources in the Polymer library, which serves a few different purposes. First, it is a playground for concepts that were later reflected in Web Components standards. Second, it is a syntactic sugaring on top of the standards to enable a declarative way of creating Web Components through two-way data binding and property observation. Finally, it is a comprehensive collection of over 70 premade "core-" and "paper-" Custom Elements that can be used in UI and client/server communication, either directly or as a basis for more sophisticated elements.
A Dart port of Polymer, Polymer.dart, is used in the Dart ecosystem as the replacement for its Web UI library. This means Web Components are the suggested way to build interfaces of Dart web applications. However, Polymer is not the only library to embrace Web Components.
Google's AngularJS framework is set to switch to Shadow DOM and Custom Elements in its 2.0 release, which is expected to be available by the end of 2015. The recently released Dart port (Angular.dart 1.0) uses Shadow DOM already. Despite pressure from Polymer, Angular does not redefine itself as a competitor to it. In a message posted in June 2014 to a Polymer mailing list, Angular 2.0 team member Rob Eisenberg wrote, "Angular is really designed around optimizing application development (including DI, routing, templating and decorator directives, more advanced databinding) while Polymer is really optimized around custom element development."
On the other hand, the path taken by Angular 2.0 is widely criticized in the developer community, to the extent that Rob Eisenberg decided to quit the project in November 2014 and focus on his own framework, Durandal, which will also most certainly incorporate Web Components.
ReactJS, an applauded library for building efficient UIs with the help of a virtual DOM and a one-way data flow created by Facebook, is also preparing for the Web Components revolution. It is already possible to use Custom Elements as part of React views. With an architecture called ReactiveElements, it is now also possible to use React inside of Custom Elements.
Building atop a standard specification, we should see 2015 as the year when previously monolithic application frameworks such as Angular, Ember, or highly specialized frameworks such as React, cooperate together based on Web Components or risk becoming obsolete.
The wonderful world of Custom Elements
The big benefit of Web Components comes from Custom Elements and the ability to distribute them in packages that can be loaded using HTML Imports.
The emerging community is creating hundreds of Custom Elements already, most of which are developed in public on GitHub and made available under permissive open source licenses, such as MIT.
The first stop for finding a community-developer Custom Element is CustomElements.io, a directory created by Zeno Rocha. CustomElements.io uses the Bower package manager registry as the data source and lets you search through more than 600 available components.
Bower is a tool that has gained a major following among developers using Web Components. It offers unprecedented abilities to maintain a list of client-side dependencies and works with any Git or subversion endpoint or even packages distributed as ZIP archives.
Component.kitchen is a directory of more than 500 Custom Elements, curated by Jan Miksovsky. Jan is also building his own component library called Basic Web Components, which already consists of approximately 20 elements that implement the most common UI patterns, such as datepicker or dropdown that are not found in Polymer.
Mozilla has created Brick - a collection of ten Custom Elements intended to be used on mobile platforms such as Firefox OS. Mozilla has been a long-term participant in shaping the Web Components ecosystem. In 2012, it created X-Tags, a Custom Elements polyfill and syntactic sugar library, which now seems to have deprecated since Mozilla decided that Brick 2.0 will build directly upon the Custom Elements spec.
Also worth mentioning is Vulcanize, a tool developed by the Polymer team, which allows developers to combine several HTML Imports into one. This solves the problem of excessive network traffic that is required to load multiple imports in a single application.
While HTML Imports solve the problem of dependency loading, there are still a few issues that Web Components need to solve in the long run.
One of the current pitfalls is that it is hard to load HTML Imports from multiple locations. The dependency tree is solved using the URL of the HTML Import, so if you are using two elements that depend on the Polymer library, you should put them as siblings in the same path.
Similarly, it is impossible to use two versions of a Custom Element throughout the application, since the elements are registered in the same namespace. For most projects that should not be a problem, but it may cause an issue when one of your components insists on upgrading Polymer to its newest version, as this can have an effect on other components. A similar problem exists with the jQuery library, which has created a method to use it in a "no conflict" way. Perhaps we can expect Polymer to work out a similar solution.
Is thick client the way to go for business apps?
One thing that Polymer, Angular and Ember have in common is embracing the thick client pattern in web applications. Thick client strategy is convenient for B2C applications that iterate quickly with cross-platform features, but does not satisfy enterprise users who are unwilling to sacrifice the stability and consistency of their applications.
Starcounter uses the benefits of Web Components to collapse the stack between the client and the database in the MVVM architecture. A Custom Element called puppet-js enables two-way data binding between the client and the server using the JSON Patch (RFC 6902) and WebSockets protocol. As a result, developers follow a much simpler, declarative style of programming. Meanwhile, customers enjoy richer and by orders of magnitude faster UI compared to common REST-based applications.
Predictions for 2015
By all accounts, Web Components will continue to impact the client-side library ecosystem. The future will show if it can stand up to its promise of creating standard, interoperable building blocks for web applications. With Polymer set to release a 1.0 version in the second quarter of 2015, it is safe to predict that there will be a lot of developers willing to use it despite the dangers of the infancy period of this technology. When the excitement explodes, be sure to give it a try and share your feedback with fellow developers.
SYS-CON Events announced today that HTBase will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. HTBase (Gartner 2016 Cool Vendor) delivers a Composable IT infrastructure solution architected for agility and increased efficiency. It turns compute, storage, and fabric into fluid pools of resources that are easily composed and re-composed to meet each application’s needs. With HTBase, companies can quickly prov...
Mar. 26, 2017 08:15 AM EDT Reads: 2,841
There are 66 million network cameras capturing terabytes of data. How did factories in Japan improve physical security at the facilities and improve employee productivity? Edge Computing reduces possible kilobytes of data collected per second to only a few kilobytes of data transmitted to the public cloud every day. Data is aggregated and analyzed close to sensors so only intelligent results need to be transmitted to the cloud. Non-essential data is recycled to optimize storage.
Mar. 26, 2017 08:15 AM EDT Reads: 2,947
"I think that everyone recognizes that for IoT to really realize its full potential and value that it is about creating ecosystems and marketplaces and that no single vendor is able to support what is required," explained Esmeralda Swartz, VP, Marketing Enterprise and Cloud at Ericsson, in this SYS-CON.tv interview at @ThingsExpo, held June 7-9, 2016, at the Javits Center in New York City, NY.
Mar. 26, 2017 08:00 AM EDT Reads: 4,103
SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises.
Mar. 26, 2017 07:15 AM EDT Reads: 1,594
SYS-CON Events announced today that IoT Now has been named “Media Sponsor” of SYS-CON's 20th International Cloud Expo, which will take place on June 6–8, 2017, at the Javits Center in New York City, NY. IoT Now explores the evolving opportunities and challenges facing CSPs, and it passes on some lessons learned from those who have taken the first steps in next-gen IoT services.
Mar. 26, 2017 03:30 AM EDT Reads: 3,835
SYS-CON Events announced today that Interoute, owner-operator of one of Europe's largest networks and a global cloud services platform, has been named “Bronze Sponsor” of SYS-CON's 20th Cloud Expo, which will take place on June 6-8, 2017 at the Javits Center in New York, New York. Interoute is the owner-operator of one of Europe's largest networks and a global cloud services platform which encompasses 12 data centers, 14 virtual data centers and 31 colocation centers, with connections to 195 add...
Mar. 26, 2017 03:15 AM EDT Reads: 1,023
SYS-CON Events announced today that MobiDev, a client-oriented software development company, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MobiDev is a software company that develops and delivers turn-key mobile apps, websites, web services, and complex softw...
Mar. 26, 2017 01:45 AM EDT Reads: 3,718
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
Mar. 26, 2017 12:30 AM EDT Reads: 1,894
What sort of WebRTC based applications can we expect to see over the next year and beyond? One way to predict development trends is to see what sorts of applications startups are building. In his session at @ThingsExpo, Arin Sime, founder of WebRTC.ventures, will discuss the current and likely future trends in WebRTC application development based on real requests for custom applications from real customers, as well as other public sources of information,
Mar. 26, 2017 12:15 AM EDT Reads: 752
As businesses adopt functionalities in cloud computing, it’s imperative that IT operations consistently ensure cloud systems work correctly – all of the time, and to their best capabilities. In his session at @BigDataExpo, Bernd Harzog, CEO and founder of OpsDataStore, will present an industry answer to the common question, “Are you running IT operations as efficiently and as cost effectively as you need to?” He will expound on the industry issues he frequently came up against as an analyst, and...
Mar. 26, 2017 12:00 AM EDT Reads: 4,132
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor - all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...
Mar. 26, 2017 12:00 AM EDT Reads: 1,737
Apache Hadoop is emerging as a distributed platform for handling large and fast incoming streams of data. Predictive maintenance, supply chain optimization, and Internet-of-Things analysis are examples where Hadoop provides the scalable storage, processing, and analytics platform to gain meaningful insights from granular data that is typically only valuable from a large-scale, aggregate view. One architecture useful for capturing and analyzing streaming data is the Lambda Architecture, represent...
Mar. 25, 2017 08:45 PM EDT Reads: 6,023
My team embarked on building a data lake for our sales and marketing data to better understand customer journeys. This required building a hybrid data pipeline to connect our cloud CRM with the new Hadoop Data Lake. One challenge is that IT was not in a position to provide support until we proved value and marketing did not have the experience, so we embarked on the journey ourselves within the product marketing team for our line of business within Progress. In his session at @BigDataExpo, Sum...
Mar. 25, 2017 08:45 PM EDT Reads: 2,797
Things are changing so quickly in IoT that it would take a wizard to predict which ecosystem will gain the most traction. In order for IoT to reach its potential, smart devices must be able to work together. Today, there are a slew of interoperability standards being promoted by big names to make this happen: HomeKit, Brillo and Alljoyn. In his session at @ThingsExpo, Adam Justice, vice president and general manager of Grid Connect, will review what happens when smart devices don’t work togethe...
Mar. 25, 2017 06:15 PM EDT Reads: 2,575
SYS-CON Events announced today that Ocean9will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Ocean9 provides cloud services for Backup, Disaster Recovery (DRaaS) and instant Innovation, and redefines enterprise infrastructure with its cloud native subscription offerings for mission critical SAP workloads.
Mar. 25, 2017 05:15 PM EDT Reads: 1,963
In his session at @ThingsExpo, Eric Lachapelle, CEO of the Professional Evaluation and Certification Board (PECB), will provide an overview of various initiatives to certifiy the security of connected devices and future trends in ensuring public trust of IoT. Eric Lachapelle is the Chief Executive Officer of the Professional Evaluation and Certification Board (PECB), an international certification body. His role is to help companies and individuals to achieve professional, accredited and worldw...
Mar. 25, 2017 04:00 PM EDT Reads: 557
SYS-CON Events announced today that Technologic Systems Inc., an embedded systems solutions company, will exhibit at SYS-CON's @ThingsExpo, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Technologic Systems is an embedded systems company with headquarters in Fountain Hills, Arizona. They have been in business for 32 years, helping more than 8,000 OEM customers and building over a hundred COTS products that have never been discontinued. Technologic Systems’ pr...
Mar. 25, 2017 01:45 PM EDT Reads: 3,314
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From ...
Mar. 25, 2017 01:30 PM EDT Reads: 1,752
The taxi industry never saw Uber coming. Startups are a threat to incumbents like never before, and a major enabler for startups is that they are instantly “cloud ready.” If innovation moves at the pace of IT, then your company is in trouble. Why? Because your data center will not keep up with frenetic pace AWS, Microsoft and Google are rolling out new capabilities In his session at 20th Cloud Expo, Don Browning, VP of Cloud Architecture at Turner, will posit that disruption is inevitable for c...
Mar. 25, 2017 01:15 PM EDT Reads: 2,058
SYS-CON Events announced today that Cloudistics, an on-premises cloud computing company, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Cloudistics delivers a complete public cloud experience with composable on-premises infrastructures to medium and large enterprises. Its software-defined technology natively converges network, storage, compute, virtualization, and management into a ...
Mar. 25, 2017 12:45 PM EDT Reads: 1,910