Skip to Content

GlueCon 2016 – Let’s talk about JavaScript and Threading

Quick Introduction

GlueCon is always one of my favorite times of year.  GlueCon 2016 did not disappoint.

The conference is held between Denver and Boulder, in Broomfield Colorado.  It’s a majestic location for the conference, with the beginning of the Rocky Mountains in the background.  Although I usually see Denver during the winter, in ski season, the summer view is remarkable.  If you get a chance to visit, go to Boulder and take one of the mountain trails, then stop for dinner on the way back.  You won’t regret it.

GlueCon is a developer conference for developers.  It’s one of those “no need for the basics” conferences where complex ideas are shared, and the latest technology can be put out to the test.  What I really love is that demos don’t have to be perfect, and the more complex your talk, the more the audience really likes it.

That’s good, because details are where I’m best.


The session – JavaScript and Threading

This year at GlueCon I decided to present something a little different.  Usually we talk about something related directly to an SAP product.  But, this time, I thought it was time to talk about a technology challenge.  It’s one that we face when building on SAP – especially with SAP UI5 or OpenUI5, but it still strikes at all the web developers out there.

The problem is the JavaScript threading model.  Or lack thereof.  Sort of.  Let me explain.

When JavaScript was first conceived, one tenant was to “do away” with all of the complex threading issues.  ECMA standards were created so that all the code would run in the same thread as the GUI – thereby solving many of the multi-threading and race condition problems that exist in other languages.

But it didn’t work.

As JavaScript became a more popular language, many deficiencies had to be addressed.  One of them was the asynchronous loading of external data – AJAX – which was slowing down the browser a lot.  And, there was a missing “background task” model that was missing too.  The ECMA authors attempted to solve these problems, while maintaining the integrity of the variables you are using.  In other words, they tried to eliminate the race condition.

And this works, sort of.  Multiple iterations have now given us some very powerful tools to work with.  Developers, however, aren’t aware of these tools.  And so they continue to write code that runs in the GUI thread, and it causes the browser response time to look, well, pretty bad.

I’m working on an entire series of blogs about this topic – to mirror my talk.  Watch for those on our new blog platform.  I’ll update this post as they become available.


Did they like it?

Yes.

My session started off as a 20 minute session, which was then extended to 45 minutes (to give the topic more time).  The room wasn’t full (my competition is pretty fierce), but we definitely had a good discussion on the merits of multi-threading in JavaScript.

IMG_5994.jpeg

The slides are now up on SlideShare.  Feel free to email me – Jonathan.Baker@sap.com – if you have any questions, or would like a presentation for your company – I’m more than happy to share.

Thanks where thanks are due

I also want to thank our support team from SAP.  Both Helena Losada, and Laurien Lummer, were both a huge help in getting everything set up and pulling the logistics together.  And, as you can see, they also brought the kegerator!  (Root beer, and it was delicious.)

IMG_4129.jpeg

I hope to see you all at GlueCon 2017.  It’s definitely worth it!

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply