Archive for October, 2018

The Web vNext

Thursday, October 25th, 2018

I have been reading a lot about Web development lately, and pondering the future of web development.  For the longest time I shied away from Web development, largely because it was so laborious and frustrating.

I dabbled a bit back when people were using COM objects with VBScript on the server and Javascript on the client in classic ASP pages. Even back then, companies were making software look like Windows applications within the browser (IE).  By today’s standards, those applications look dated, but today’s web SPAs function in a similar manner, although great progress has been made in standardizing browsers, abstracting out their idiosyncrasies using frameworks, and handling variable display sizes.  My current experience is that it’s still harder and more time consuming to develop a good web application, and they are still not as rich as a Windows app IMHO.

That begs the question as to why people are writing applications for the web anyway.  For eCommerce sites, I get it, but for other line of business applications why not throw off the shackles of HTML/CSS and embrace a new UI framework altogether?  Now I know what you’re thinking…..this guy has lost it and wants to re-invent the web which a lot of smart people have worked on for years to make Web 2.0 a reality.  Before you call the white coats, read on…

When a user goes to a web site for any commercial activity they should be ensuring the website has a valid SSL certificate from a trusted authority.  The Internet is a dangerous place these days where web sites may be trying to attack your computer.  We download content from such sites into our sand boxed browser. This is not that much different than downloading a signed application.  We use signed applications all the time now, when using applications on our phones, tablets and desktops from the “app stores”.  The only difference is whether the store owner i.e.: Apple, has reviewed the application testing for malware.  Open source software such as Tortoise Git is often signed as well to ensure users trust that the application they are getting is from the advertised source and is safe to use.  I think it’s safe to say that most people would trust a signed application.

With that premise in hand, why aren’t we all writing signed Desktop apps using REST back ends?  Or if we really want to leverage single source cross platform applications, why not use WASM with a UI framework that allows an application to be written in languages that are typically used for native desktop, and mobile devices such as C#, Delphi, or C++?

The performance of even Javascript is pretty decent.  Many games have been ported to the browser using Javascript transpilers or EmScripten.  WASM allows developers to take this one step closer to the metal (CPU) and skip the run-time parsing and execution of Javascript.  Blazor is a project that does just that, within the confines of HTML/CSS, but also shows the possibility of using WASM with a different presentation framework such as Uno, or Ooui.  Obviously I’m not the only one thinking that a different presentation layer might be overdue in the web space.

One of the advantages of Blazor is to eliminate some of the third party dependencies, making the development stack more reliable, and to use the same technology and tools throughout.  Of course you can learn and use Javascript throughout the entire stack now, or a Javascript transpiler, but without WASM using your development language of choice is not possible.

I would like to see Object Pascal support the entire development stack.  Preferably the same language dialect and core libraries.  Perhaps something similar to Blazor, or maybe FMX targeting the web with WebGL.  All we need is to be able to capture the compiler IR and feed it into the WASM LLVM back end (okay there might be a little more to it than that).  The web is a huge horizontal market that is ripe for disruption and with the right moves, Delphi could grab a chunk of that segment, making the product relevant again.

What do you think is the future of Javascript on the web?  Will it be dethroned at some point by WASM? Is the future of the Web HTML/CSS, a different UI layer, or perhaps a mix depending on the type of web app?  Should I dust off the Delphi .NET compiler to generate MSIL to feed the Mono WASM run-time, or do we need a way to get the current compilers to output LLVM IR?

Maybe it’s just time to call the white coats as pondering all the options can drive you crazy…

Big Cats Rule

Friday, October 19th, 2018

Just as a follow up note to my previous post about using my K750 keyboard on a Mac with VMWare Fusion, I mentioned that my Logitech M510 mouse wasn’t tracking all that well.

In fact, sometimes my keyboard would not seem responsive either.  It seemed to be a problem only when using my external USB 3.0 enclosure which houses the SSD I run my Fusion VMs from.  I thought for a while that perhaps I was experiencing some interference between my WiFi and the Logitech Unifying Receiver.  Odd, because I have been using Logitech for a long time at home without issue.  What lead me to believe it might be interference was an experience at work.  When a new WiFi wap was added close to my machine I got similar behaviour from my keyboard and sometimes the Google speakers would cut out while playing music.  When I switched to a Bluetooth keyboard the issue stopped.

As a result, I was looking around for a Bluetooth keyboard and mouse combination that I liked to replace mine.  Unfortunately the only solar keyboard I could find was the Logitech ones I already owned.  Even Logitech for some reason wasn’t making a solar Bluetooth version.  I love never having to charge or replace batteries.  I wish my mouse was solar too!

For kicks, I did some googling to see if other Mac users were having issues, and eventually found links that indicated people had keyboard and mouse issues after upgrading OS/X to High Sierra, which was when my keyboard issues started (although I never connected the dots myself).  One poster had similar problems with a USB device and indicated that for whatever reason, when he plugged the USB device into a hub rather than directly into his Mac mini the problem did not occur.

I dug up a USB hub I bought as part of a tub of miscellaneous cables at a garage sale, plugged my USB SSD and unifying receiver into it and my problems disappeared!

As far as I am concerned the OS/X versions named after the big cats were less problematic.