Skip to main content

Adobe

Open Source AEM Core Components, A New Hope

“As Maine goes, so goes the nation” is a phrase that at one time was in wide currency in United States politics. The phrase described Maine’s reputation as a bellwether state for presidential elections.  As an Adobe Experience Manager (AEM) developer, it is not what proceeds from the Pine Tree State that concerns me, it is what is developed in Switzerland.
Component Development has changes a lot within the past few releases of AEM.  We went from Classic UI to Touch UI.  From JSP scriptlets to HTL.  AEM 6.2 added the Template Editor.  Given those changes, I was curious what new features AEM 6.3 would have in store. Adobe announced their “Core Components” would be open sourced.  These components include:

Page authoring components:

  • Page component
  • Breadcrumb component
  • Title component
  • Text component
  • Image component
  • List component
  • Sharing component

Form components:

  • Form container
  • Form text field
  • Form options field
  • Form hidden field
  • Form button

What does this mean to me or to you?  I think it means a lot.  In fact, Adobe releasing the AEM core components under an open source license gives me a lot of hope.
First of all, the code is beautiful.  I remember learning AEM over three years ago.  At that time, my background had been in J2EE, and I was an early convert to Tag Libraries. Needless to say, I was shocked to discover the foundation AEM components were still developed using scriptlets!  The code was ugly and quite difficult to follow.  I felt sorry for young developers learning how to build components from this confusing web of embedded Java code.  The years have been good to AEM.  Take a look at the new Image Component via Github.  Clean HTML with HTL markup.  HTL is used in all of these components.
Take a look at the Image Model as well as its implementation. AEM is no longer using the Java or JavaScript Use-API.  They are using Sling Models.  Sling Models are pure POJOs, or Plain Old Java Objects.  This makes Unit Testing much easier. For more information regarding Sling Models, here’s a link to the documentation: https://sling.apache.org/documentation/bundles/models.html.
With code this clean coming out of Adobe, we can expect new components based upon this code to be cleaner than anything created referencing the earlier foundation components.  No longer will you cringe when you open another’s code.  If the budding AEM developer has cut his teeth with clean code, there is a good chance the resultant code will also be clean.  My mind reels with the possibilities.
Let me take this scenario a step further.  What if a developer takes Adobe’s lead and begin to offer his custom component open source?  There are too few open source options for AEM components compared to other technologies, like Eclipse/IntelliJ Plugins, JSR 168 and JSR 286 compliant Portlets, and WordPress Plugins.
This leads me to my next consideration… About a year ago I was looking at the stylesheet of AEM’s responsive grid.  The code was quite similar to Bootstrap’s responsive grid.  This made me wonder why Adobe didn’t just use Bootstrap’s grid.  It would make the development of templates based on Bootstrap so much easier.  I concluded it was possible Adobe didn’t want to tether itself to Bootstrap.  I’m sure there was a licensing consideration involved.  I was concerned over AEM’s future.  How could Adobe promote AEM as a tool to easily create websites and not provide components based on popular libraries?
Perhaps moving to an open source license is just the beginning?  Maybe Adobe is moving towards a “Digital Distribution Model”?  Can you imagine a “Component Store” from within AEM, where developers could submit handy components meeting very common requirements?  There would be multiple flavors of Rich Text Editors, Responsive Column Controls, and Hero Components.  Adobe would be free from a dependency upon a certain version of a JavaScript library.  Authors would have a plethora of resources to build the pages they want.  This, of course, is wishful thinking.  We wouldn’t see anything like this for a few AEM releases.  I don’t even know if something like this is on Switzerland’s radar.  But now I have hope it could happen.  The foundation has been laid and I’m excited to see what will be built on it.

Thoughts on “Open Source AEM Core Components, A New Hope”

  1. CQ Sapient User

    What is meant by ‘if something like this is on Switzerland’s radar’ ? Why Switzerland’s reference ? Is it in relation with AEM’s origins in switzerland? But most of the product’ future road-map is now designed in Adobe’s office in San Francisco; many of CQ5’s original developer’s have moved to USA from Switzerland after Adobe’s acquisition.

  2. Shannon Sumner

    The last few commits to the Open Source Components have been from Switzerland and Germany. The Adobe developers I met from Summit where located in Switzerland. I didn’t know there was a team in the US developing as well.

  3. Road map comes from San Francisco, most of core AEM engineering team still in Switzerland I guess.

  4. CQ Swiss Developer

    It’s interesting how you can “learn” about the internal structure of your development team from blog comments such as these 😉
    I suppose the meaning of “many” and “most of” is in the eye of the beholder…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Shannon Sumner, Senior Technical Consultant

More from this Author

Follow Us