Floccus, an adventure in Ecmascript 8

Julian Brown described a cloud service he had been using to sync bookmarks. On May 1st, the service closed down. After some searching, he found the Floccus project. This tool supported most of what he needed. It connects to an external NextCloud server, allowing you to share bookmarks between different browsers.

Unfortunately, the bookmarks do not retain the ordering that you set up. Julian decided to add a WebDAV backend as a new feature. He was surprised to ind that it is written in the new ECMAScript 8 standard.

Some of the changes he found working with ECMAScript 8 included missing semi-colons, actual classes and inheritance, static methods, and a constructor(). Apparently, this version can run as a web extension on Chromium. Unlike previous versions of JavaScript, let defines actual locally scoped variables. The language also support cleaner concurrency using async/await keywords and Promises. Any async function always returns a Promise.

Julian also talked about a different syntax for lambdas/closures param => statement_or_block. The tool runs as a node.js program. An important concept in the implementation is the Adapter pattern, so Julian implemented a WebDavAdapter to add the functionality he wanted. The final implementation detail he discussed was the fact that all of the bookmarks are stored in XBEL. This is an XML application for working with lists of bookmarks.

The group had a few questions about the project, and showed some interest in the directions that ECMAScript has headed.

We had 8 people attending this month. As always, we'd like to thank HostGator, LLC for providing the meeting space and food for the group.