Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Wednesday February 09 2022, @11:08PM   Printer-friendly
from the all-the-better-to-track-you-with-my-dear dept.

Move over JavaScript: Back-end languages are coming to the front-end:

In the early days of networked computing, mainframes did all the heavy lifting: users connected to massive machines with video terminals that could do little more than send and receive text. Then in the 1970s, personal computers came along and made it possible to do serious computing on the client-side as servers handled tasks like authentication and storage in many networks. The rise of the internet in the 1990s swung the pendulum back to the server, with web browsers taking on a role not unlike terminals in the mainframe era.

The client-side made a come back over the past decade as developers built "single-page applications" (SPAs) with JavaScript. But a new crop of tools is sending the pendulum swinging back towards the server.

At the vanguard of these tools is Phoenix, a framework for the programming language Elixir, and a feature called LiveView. Using LiveView and a bit of JavaScript, developers can create browser-based interfaces for real-time applications like chat rooms or Twitter-style status updates. All UI elements are rendered on the server first and sent to the browser, ready-to-display. The only JavaScript required is a small amount of code that opens a WebSockets connection that handles sending input from the browser and receiving refreshed HTML/CSS from the server.

Phoenix isn't the first platform to offer a way for back-end developers to create front-end interfaces—Microsoft's ASP.NET Web Forms for Microsoft .NET existed back in 2002—but it did inspire many new tools. Caldara for Node.js, Livewire for the PHP framework Laravel, and StimulusReflex for Ruby on Rails, to name a few. Microsoft, meanwhile, released a new .NET feature called Blazor Server that modernizes the old Web Forms idea.

"My goal is not to get rid of single-page applications, but to obviate them for a large class of applications," Phoenix creator Chris McCord says.

There is a lot more in the full article.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Thursday February 10 2022, @03:57PM (3 children)

    by Anonymous Coward on Thursday February 10 2022, @03:57PM (#1220223)

    Oh come on. Java has one of the best backwards compatibility track records of any language out there.

  • (Score: 1, Interesting) by Anonymous Coward on Thursday February 10 2022, @05:28PM (1 child)

    by Anonymous Coward on Thursday February 10 2022, @05:28PM (#1220249)

    That seems to be changing. I have a Java environment spread over servers, desktops and embedded devices. For the first 15 years, everything was fine. Now, with the exploding Java version numbers, I have to worry that the Java versions on the development boxes set (differing based on stable/oldstable) different minimum target levels, third party libraries having to be updated to support the Java on the newest development boxes, hoping compatibility remains on the embedded devices. And then there is the reorg of the Java internals I need to build native parts against.

    • (Score: 0) by Anonymous Coward on Thursday February 10 2022, @06:03PM

      by Anonymous Coward on Thursday February 10 2022, @06:03PM (#1220268)

      Then there's software like Crashplan that deliberately breaks compatibility on unsupported OSes rather than just not support them. There's really no reason why the GUI part of the program needs to be the part that doesn't work across platforms.

  • (Score: 1, Interesting) by Anonymous Coward on Thursday February 10 2022, @11:15PM

    by Anonymous Coward on Thursday February 10 2022, @11:15PM (#1220364)

    Java the language has spectacular backwards compatibility, only a few things have ever been deprecated. (Most famously the Java Web Start in-browser tech.)

    But old Java Runtime Environment / Java Virtual Machine releases were supported for decades. Now Oracle is evolving Java a lot faster, which is fine, but putting the JRE/JVM support cycles at much shorter. So instead of "Install JVM, apply occasional security updates, done." You have to "Install JVM, apply occasional security updates, upgrade JVM, apply occasional security updates, upgrade JVM again...." it's irritating, especially when there are breaking changes between versions. The move between JVM 7 and JVM 8 fixed a long standing Java bug in rounding floating point values, which broke hundreds of our automated tests.