Web applications UI

Matias Guijarro

BCU Day Out, 19th of November, 2015

Raise of web applications

  • Cloud computing
  • Software as a Service (SaaS)

A paradigm shift

  • Backed by industry giants (R&D investments + business)
  • Professionalization: front-end developer vs. "web designer"

Technology evolution

  • Since 2005: AJAX, "web 2.0", HTML 5
  • ECMAScript engines
  • web browsers as real development platforms

Serious biz

Why is it good for beamline control ?

Many benefits

  • enforced separation between front-end (graphical) code and back-end (control)
  • influence on work organisation (tasks dispatching)

Remote Access by design

 

No deployment cost

 

Better applications architecture

Multi-devices, multi-platforms, multi-clients

Many benefits (cont.)

  • web browsers have *always* provided backward compatibility
  • applications are self-contained (no external dependencies, self-hosted)

Long-term support

The best graphical design and user experience

  • a lot of innovation both in term of UI and UX
  • fancy look & feel

Domains of web applications within SW Group

Monitoring

Device control / testing

Data Analysis

  • fisx (multilayer fluorescence)
  • Tango dashboard
  • XBPM

Domains of web applications within SW Group

Configuration management

  • MXCuBE 3 (in development)
  • ISPyB

Experiment control and high-level user interface

  • Beacon app.

Which technology stack to rely on ?

Technology stack

  • evolution of computing in general
  • welcome change, flexibility regarding choices
  • bye bye frameworks

No ever-standing  / long-term silver bullets

My current tools for frontend development

ReactJS

Bootstrap

+ any library that get the job done:

dygraphs,

isotope, heatmap,

x-editable, ...

(depends on the project)

Good times are coming

  • web components !

Remarks / Problems / Ideas

  • Should we invest more in web applications development as opposed to desktop (Qt) apps ?
  • How do we see graphical applications @ BCU in 5 years ?

Decisions to take

  • need professional know-how for quality UI
  • required profiles: front-end developers, nothing to do with instrumentation or general software engineering
  • can trainees help ? or CDD ?
  • volunteer group members training ?

Lack of manpower

Organization

  • assign *front-end developer role* in team of developers for a project