[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

web-based, distributed, accessible applications (was LibreFaso)



tl;dr - web-based, distributed, accessible applications - we have the technology 

I found the recent discussion of the LibreFaso project quite interesting and wish them well in their efforts.  The topic also brought to mind some thoughts I've been having about web-based, distributed, accessible applications.  Rather than hijack the LibreFaso thread, however, I've started this one; please respond as appropriate...

If I were trying to get a bunch of students involved in creating accessible applications for personal computers, I'd probably choose Python as the implementation language.  To be honest, it's not my favorite programming language.  For starters, it's object-oriented, simplistic, whitespace-sensitive, and has poor support for concurrency and distribution.  That said, it was designed to be easy to learn and has immense popularity.  So, it wins, hands down...

However, this note has to do with a rather different objective: creating a platform for web-based, distributed, accessible applications.  These might include chat platforms, educational software, forums, multiplayer games, and combinations thereof.  So, I'd want the underlying technology to be performant, robust, and scalable.  It should also have good support for globally distributed and highly interactive web-based applications.

These sub-goals mesh well with the major goal of making the apps available to a worldwide user base which will probably be using cell phones and/or a variety of personal computers.  All of these devices support web technologies by default, so no local installation or maintenance will be needed.  This allows a globally-distributed user and developer base, with coordinated development, easy updates, etc.

In any event, I only know of one technology stack that checks all of these boxes.  It isn't a well-known stack, though it is gaining popularity as companies realize the need to transition from Node, Rails, and such.  This stack starts with the Erlang VM, which supports a substantial fraction of the world's long-distance telephone routing network.  With this background, the issues of concurrency, distribution, and robustness are clearly under control.

The next layer is Elixir, an Actor-based, dynamic, functional programming language with Ruby-like syntax, Lisp-level macros, a strong and active tool base, and a variety of convenient features such as pipelines and plugs.  Finally, we come to the Phoenix and LiveView, a pair of web support technologies which eliminate almost all JavaScript coding, while providing great interactivity and performance.

Here are some links, for the curious...

https://elixir-lang.org/
https://elixirforum.com/
https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
https://www.phoenixframework.org/

https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)
https://en.wikipedia.org/wiki/Elixir_(programming_language)
https://en.wikipedia.org/wiki/Erlang_(programming_language)
https://en.wikipedia.org/wiki/Open_Telecom_Platform

- Rich Morin





Reply to: