WW 785: Mark-of-the-Web

Beep boop - this is a robot. A new show has been posted to TWiT…

What are your thoughts about today’s show? We’d love to hear from you!

I’m still at the beginning of the episode, but everybody keeps talking about developing for the platforms being dead, yet we have yet to see a good alternative that is cross platform.

Java is bloated.
Electron + JavaScript is even more bloated.
WebApps are a non-starter for many, because of data protection or regulatory reasons which mean, either they don’t want to, or legally cannot store their data in the cloud.

That means that people still want and/or need good local applications.

Our ERP client is written in Java and takes a minimum of 2GB just to load, when the user starts actually working in it, that quickly climbs. The CRM/DMS system requires an additional 2GB per user for the client. During the testing phase, we had a terminal server with 160GB RAM, but it wasn’t enough, we’ve now switched to a terminal server farm with each server having 128GB. The old system was written in COBOL and ran on Windows 2008, it could accomodate all of the users on a server with 32GB RAM!

Electron is similar, I use Notepad++ and VS Code, the former is native and uses a whopping 4MB when loaded, VS Code 100 times that, that is before VS Code has even opened a document. Yes VSC is more powerful, but not that much more powerful.

We use Teams. Most of our users have 4GB RAM on their PCs and it quickly slows to a crawl, when they start a video conference. On my 8GB ThinkPad, it quickly gobbles up the full 8GB and I have to quit everything else that is running, so that the fans don’t cause the laptop to take off and the conference doesn’t start to stutter.

Then you have the UI “glitches”, because these tools are designed to work everywhere, so they actually work nowhere well.

There is still very much a need for good, well written local applications. But that means actually investing time and money and employing programmers who know their job. Electron is just the easy way out that isn’t satisfying to anyone.

1 Like

Regarding the opening of macros in Office documents, currently, you can disable the capability in Group Policy.

The change to disable them has been pushed out, because a few business users still want the ability to run macros out of the internet.

Why not swap it round? Default safe and let these people who want to live dangerously change their settings? They are the ones that use GPs anyway.

Web apps are the industry standard now, thanks to the widespread usage of crossplatform languages like Java and Javascript. Everything runs in a web app now except relatively obscure apps for niche use cases. As the use case for installed apps declines, so is the need to buy devices running proprietary operating systems offered by giant corporations.

Sub-$200 Chromebooks also offer a better alternative to $1000 devices for people who just need a device that does the job, rather than an expensive toy they can show off to their peer group. 7-8 years of updates on a useful device for $150-$200 is a great deal compared to the offerings of previous decades. You can play top video games on a Chromebook using NVIDIA GeForce now and other cloud services. The rise of cloud gaming means the GPU power on the device matters a lot less than it used to.

Literally every large company has legacy apps that are BUSINESS CRITICAL that are not being ported to the web, and probably never will be. Many in the banking and insurance industry still rely on COBOL apps running on mainframes, for example.

If your job is relatively unimportant to the company, you can do it on a Chromebook or the like. If your job is critical to the company bottom line, you probably have some workstation class device to do your job… be it AutoCAD for designing a vehicle, planning software (critical path scheduling maintenance for power turbines, say), 3D object and scene creation for movies, C&C control software and machinery to make parts, or the software running the plane, train or crane that you pilot… and on and on and on.

It’s nice to fantasize that everything is new and “Web 9.0”, but it’s not, and it probably never will be.

1 Like

We use one bloated hog of an Electron App, Microsoft Teams, everything else we use is a local, native application at work.

At home, I don’t use any WebApps. My photo editing software is native, the office suite is native, my mail client is native and so on.

Not everybody uses cloud services for everything. As @PHolder says, most legacy software, in fact most corporate software, is native Windows, or maybe Linux or macOS if you are lucky.

You’re confusing proprietary legacy apps with public web apps used by large tech companies. COBOL has nothing to do with JavaScript being the dominant language for web apps. Javascript is popular because Javascript is the most useful language of its kind available, period, end of story. If it weren’t, then Google would have replaced it with Google Dart a long time ago. They couldn’t and they haven’t.

Your views on the usefulness of a Chromebook seem to come straight out of 2005. Virtual desktops, cloud services and web apps make the home user’s device, and the device in the worker’s cubicle or office, borderline irrelevant, so long as it can run a browser while plugged in to an external monitor and keyboard. Virtual desktops, cloud services and web apps are how the corporate world works today, and increasingly how the home PC user operates today too. The client-server model of 2005 Microsoft is dead. You can run AutoCAD or anything else on a virtual desktop.

It’s nice to fantasize that the world is as it was in 2005, but it’s not. Maybe you’ve had an extended break from the corporate world?

JavaScript is used in WebApps, because it is the only language that web browsers can interpret.

Many (most?) businesses don’t use Webapps, They use legacy applications, few of which are web browser based, let alone Internet based.

1 Like

There are lots of far less popular alternatives to JavaScript. Microsoft and Google both make browsers and could choose to fully implement any of these languages.

" 1. CoffeeScript

This language is transcomplied into JS. What it does is improving readability of JavaScript and making the code simpler and shorter. CoffeeScript can also be used with Node.js. It is not a modification or a subgroup of JavaScript, though. But if you want to use it for coding, you need to know JavaScript anyway. Drawbacks of CoffeeScript include a need for compilation, a limited feature set and few specialists writing in it.

  1. Dart

Dart is a Google’s product that offers a lot of opportunities for constructing well-structured apps. It is a new-gen high-performance language that gives pretty much flexibility to developers. Dart is regularly upgraded by Google, but if compared to JavaScript it still has fewer capabilities and a smaller community.

  1. TypeScript

This programming language has been developed by Microsoft. Its primary function is enhancement of JavaScript capabilities, which it is backward compatible with. When compiled to JS, any app written in TypeScript can be viewed in most browsers. It is also compatible with Node.js. TypeScript supports classes and modules connection as well as static type-checking. The community of the language is smaller than that of JavaScript, and coding using this language it more time consuming.

  1. ClojureScript

ClojureScript is an implementation of Clojure programming language with a compilation into JavaScript. It emits JS code which is compatible with the compilation mode of the Google Closure compiler. It smoothly works in most browsers, is compatible with mobile platforms and Node, js. It is a simple and powerful programming tool, though not as popular as JavaScript.

  1. Opal

It is one of object-oriented languages acting as a transcompiler to JavaScript from Ruby. As developers claim, Opal is developed to complement or completely replace other languages including JavaScript, Java, and C, C++, C#and Eifel. However, as of today, its popularity it low. And still, it is certainly worth mentioning.

  1. Elm

Elm is a relatively new functional language used for graphic interface development. Despite its not very long history, it is now actively utilized by web-developers who work with JavaScript. It is easily compiled to JavaScript and offers much flexibility in front-end development. Elm is easy to use and feature a self-formatting code.

  1. Kaffeine

If you feel that capabilities of JavaScript are not sufficient for all your tasks completion, try Kaffeine — an effective tool, the main purpose of which is an extension of JavaScript syntax. Its code compiles JavaScript code and makes the process of debugging simpler.

  1. Roy

Like many other languages, Roy is compiled to JavaScript. It has been developed as an experimental tool and to a large extent resembles JavaScript. Roy not only makes generation of code simpler, but also has some features of functional languages like pattern matching, whitespace significant syntax and others. Here again, the main problem is low popularity of the language.

Why is JavaScript Better?

As you see, today there are some real (though less popular) alternative to JavaScript. And still, you’ll hardly do without the latter. The reasons for it are not only above-mentioned JavaScript advantages, but also some independent facts:

  • all browsers support JavaScript;
  • JS scripts and plugins are used everywhere by everyone, even by regular users;
  • it has the richest feature set;
  • specialists who can code in JS languages are always in demand.

Finally, JavaScript is regularly upgrading, and new releases allow resolving more and more complicated tasks.

8 JavaScript Alternatives for Web Developers to Consider | by Natalia Kharchenko | codeburst

There is no evidence that “most businesses don’t use webapps” or that most use legacy applications in 2022. That was true back in 2005. You seem to be operating on old assumptions. A virtual desktop operating within a browser extension is a type of webapp and they are extremely common across all types of companies now.

"The desktop virtualization market was valued at USD 6712.8 million in 2020 and is expected to reach USD 12290.22 million by 2026 and grow at a CAGR of 10.6% over the forecast period (2021-2026). Desktop virtualization is a technique used to separate the personal computing desktop environment from a physical machine, using the client-server computing model.

Desktop virtualization is valuable for small and medium businesses, as it lowers expenditure on hardware and reduces the system administration and maintenance costs. It provides a superior computing experience and solves several complex problems. As a result, desktop virtualization has several benefits, such as reduction of operational costs and increased user satisfaction. Thus, the mentioned factors are expected to fuel the growth of the desktop virtualization market during the forecast period.

  • The growing adoption of cloud computing and increasing demand for Bring Your Own Devices (BYOD) in the workplace are significant factors driving this market.
  • The ability to lower complexity and deliver apps to various mobile users is boosting the adoption of desktop virtualization in all types of businesses. The advancements in management and storage make VDI a more viable option.
  • Desktop Virtualization is completely in sync with cost reduction. Hence, cost-effectiveness is expected to be a key driving factor for the growth of the market."

Desktop Virtualization Market Forecast, Outlook, Growth (2022-27) (mordorintelligence.com)

If you look into any of those, they probably all are parsed or compiled into Javascript (even if that’s Web Assembly) because that is all that browsers support. You’re making my argument for me (made elsewhere, more on that in a moment) because they’re all attempts to work around the failings and limitations of Javascript.

Now, as for your presumed crusade to let the world know you’re a sucker for everything that is Javascript, I’m telling you now, here, publicly, what I already said before. Most visitors to this site don’t care about language flame wars, so stop with the fanatical preaching and let it go. We get it that you love Javascript, and that you have apparently have no practical appreciation for any of the other choices. I don’t “this week in Javascript” taking over every thread here… so please restrain yourself from continued posting on the matter.

1 Like

I’m so old that when I saw the reference to Elm I thought of Pine.

1 Like