Predicting the Future of the Web - Richard Feldman at ReactiveConf 2019

November 07, 2019 0 Comments

Predicting the Future of the Web - Richard Feldman at ReactiveConf 2019

 

 

At ReactiveConf 2019 in Prague, Richard Feldman drew on his 12 years of professional Web development experience, and history of being an early adopter of technologies like React in 2013 and Elm in 2014, to make and justify some concrete predictions about the future of the Web in both 2020 and 2025.

Feldman started with positing that predicting the evolution of current technologies is a safer bet than blindly following the pack. This formed the base for presenting in the rest of the talk his concrete predictions for what is the future of web development, which he examined through four specific lenses: TypeScript, WebAssembly, Packages, and Compile-to-JS languages.

TypeScript is currently taking off, with the key front-end frameworks either having first-class support or working to add it. However, not everybody is getting on board. TypeScript opponents complain about its verbosity, and how that impacts source code readability. Feldman gave the following example of a convoluted type:

 ComponentClass < Pick < RouteComponentProps < any, StaticContext, any >, never >, any > & WithRouterStatics < (props:PropsWithChildren < RouteComponentProps < any, StaticContext, any >> ) => Element > 

Feldman joked that Java programmers may gleefully quip that some programmers used to make fun at them with long naming patterns such as AbstractSingletonFactoryProxyBean and that TypeScript may best be named EnterpriseJavaScript.

Feldman continued by explaining that, while providing some degree of type safety, the TypeScript type system is by design unsound and may provide a false sense of security in some instances.

However, the key relevant factor for Feldman, is the fact that he has heard about no team which tried TypeScript and then gave up using it, in spite of the technology’s drawbacks. Feldman thus predicted that by 2020, TypeScript will be the most common choice for new commercial JavaScript projects, and by 2025, there will be more people writing TypeScript daily than plain JavaScript without TypeScript.

WebAssembly may be used to improve the performance of JavaScript applications and libraries. Feldman however does not believe that improved performance vs. JavaScript will drive the future of WebAssembly. JavaScript performance is generally accepted as being satisfying in most cases, indicating that marginal improvement in speed is not expected to be a game changer for WebAssembly. Rather, Feldman thinks that WebAssembly will allow browsers to compete with app stores and installers. Feldman quoted the example of Figma which he described as a web-distributed C++ application. The web as a delivery platform presents a simpler user experience (no installation), and offers deep linking and other sharing capabilities.

Even though native applications tend to have large sizes, Feldman contended that in spite of all the talk around the bloat crisis and large payloads, large bundles are widely tolerated, specially for non-web, large, sophisticated applications, such as Photoshop. Rust, C++ or Go is however not going to replace JavaScript. Feldman predicted that WebAssembly will grow the WebApp pie by including in it heavy native applications, like games. By 2025, wasm should have created a new niche of heavyweight webapps.

On the package management side, Feldman predicted that npm should continue to remain relevant, in spite of its current financial problems, because it benefits from strong network effects. However, Feldman foresaw that by the end of 2020, there will be one new npm security incident making headlines, and by the end of 2025 at least one malicious npm package will have infected many developers’ machines.

Feldman quoted ClojureScript, ReasonML, and Elm as compile-to-JS languages of interest. After expanding on the benefits claimed by Elm, Feldman predicted that JavaScript alternatives will stay niche, but age well, in the sense that the companies which will have placed a bet on these technologies will continue to do so. By the end of 2020, compile-to-JS languages will still be growing, but none as fast as TypeScript. By the end of 2025, non-JavaScript dialects will have aged well, although TypeScript is more popular.

ReactiveConf is a yearly conference targeted at developers with talks addressing the latest technologies and trends in software development. ReactiveConf 2019 took place Oct. 30 - Nov. 1, 2019, and is the fifth installment of ReactiveConf.


Tag cloud