DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

Is it just me or are we in a low-hype phase?

Software goes through a lot of hype cycles: New frameworks, NoSQL, Blockchain, etc.

But it seems to me like we’re in a period without so much hype in general, which is nice.

There’s some hype around Typescript in the JS community, but given that TS is a maturing technology, it doesn’t quite feel the same.

There’s still ML hype but it seems to have settled down. Same with containers.

JAMstack is hyped right now, but it doesn’t seem overly hyped per se.

The waters seem relatively calm, unless I’m missing something.

Top comments (65)

Collapse
 
rhymes profile image
rhymes • Edited

I agree, I still see the "JS ecosystem everywhere" as a bit of a trend but less than a year ago.

WebAssembly is in the upward trajectory of the hype, it hasn't reached peak hype though (probably because it's not ready for the mainstream)

I wonder what we'll all be psyched about next

Collapse
 
kenbellows profile image
Ken Bellows

I'm a little nervous about the WASM hype. There's a sub-trend in there that showed up when WASM was first being discussed and has reemerged a few times since then that goes: "WASM means we don't need JS anymore! WASM means we can write the web in C# or Go!" And while the current counter argument is that that's just factually false, since WASM functions need to be imported into JS and run from there, that needn't always be true; if enough of the community clamors for end-to-end WASM apps, it'll probably happen eventually.

And I see a lot of potential danger in that idea: web app code becomes a lot less transparent, the attack surface of web apps dramatically increases, the potential for various walled gardens increases, the push to constantly improve JavaScript decreases, the complexity of web apps could blow way up...

But maybe I'm wrong; maybe those concerns are already present with WASM as it currently is, once it gets more mainstream use. And I do absolutely see its value. But still, I'm nervous. Not necessarily pessimistic, just... nervous.

Collapse
 
puritanic profile image
Darkø Tasevski • Edited

This is right, WASM is far, far from being production ready, as it's a really unsafe option that will be a step back from the current web. Wasm is just a compiled bytecode that executes in the browser, it's usually C, C++ or Rust code in the background but once compiled to wasm it looks like this:
wasm-bytecode
Good luck debugging this, and more importantly, good luck trying to figure what is this code meant to do on the client side. This code is much much harder to analyze than JavaScript because Wasm is a binary format whereas JavaScript is clear text. While malicious actors often heavily obfuscate JavaScript, deobfuscation is still relatively easy. By bringing Wasm into the game, bad guys get new ways to hide and obfuscate the intentions of their code.

And as there is still no viable WASM analyzers, an WASM app is just a blackbox to the user. The only thing that you can do is to analyze network requests and see if there is something suspicious there. In other words, say hi to the coin miners on every site, as with Wasm based approach, the return of investment will be higher for the malicious actors, since heavy math calculations can be done faster with Wasm than with JavaScript. To date, the majority of Wasm samples analyzed have been associated with cryptocurrency miners. Another opportunity for an attacker may be exploitation of hardware bugs.

On the side note it should be pointed out that Wasm is not intended to be seen as a replacement for JavaScript, but rather as a complement. For example, Wasm modules may be used for performing computation intensive tasks and JavaScript (and HTML) for providing the UI and gluing things together.

I guess that whole situation will improve with time, but, sadly, we're not there yet. Until then you can take a look here to learn how to disable WASM in the browsers.

Thread Thread
 
kenbellows profile image
Ken Bellows

On the side note it should be pointed out that Wasm is not intended to be seen as a replacement for JavaScript, but rather as a complement. For example, Wasm modules may be used for performing computation intensive tasks and JavaScript (and HTML) for providing the UI and gluing things together.

Yeah, this is what I meant when I said the following:

while the current counter argument is that that's just factually false, since WASM functions need to be imported into JS and run from there, that needn't always be true; if enough of the community clamors for end-to-end WASM apps, it'll probably happen eventually.

My concern is that while it's currently the case that WASM is no JS replacement, I don't necessarily trust that it will remain true, especially given how loud the cry was from the "JS sucks" community that WASM will finally let us write for the web in "real languages" etc etc. I'm not catastrophically worried or anything, I think the developers of WASM have a stake in keeping it scoped pretty narrowly for the time being at least, but I don't think we can predict what the web will look like in 5-10yrs; I could see WASM turning into a core part of the web platform that can be used independently of JS, and I agree with your concerns if that does happen. Not ready to disable WASM just yet, though; squoosh.app is just too good 😁

Thread Thread
 
puritanic profile image
Darkø Tasevski

That's right, once again 😄Web is evolving rapidly, and while my comment might seem grim and in disfavor of WASM, I really hope that it can evolve into something like Js today but without its bad parts. Sharing, collaboration, and open source are the keys for the better future, and I wouldn't want to see web locked down and obfuscated.

Also, that's really cool app :D Tnx for share!

Thread Thread
 
rhymes profile image
rhymes

@puritanic

This is right, WASM is far, far from being production ready, as it's a really unsafe option that will be a step back from the current web

I agree is far from being ready. I don't think it's inherently unsafe, it's boxed in the same box JS is. Regarding the step back or forward it really, really depends on what developers do and what becomes popular in the next few years. If all devs do with WebAssembly is "I can't wait to recompile my desktop app, ship it in the browser, call it quits and who cares about the web" yeah, we'll have a problem. But if it's used as a performance enhancer and used in conjunction with JS, why not?

Good luck debugging this, and more importantly, good luck trying to figure what is this code meant to do on the client side. This code is much much harder to analyze than JavaScript because Wasm is a binary format whereas JavaScript is clear text.

WebAssembly has a text format though, not as readable as a normal programming language but I'm quite sure "view source" tools that make our lives easier will appear. I think it's too early to decide if WebAssembly will doom us all or not.

I guess that whole situation will improve with time, but, sadly, we're not there yet.

That's why we're saying it will take some time to become mainstream :)

@kenbellows

I don't necessarily trust that it will remain true, especially given how loud the cry was from the "JS sucks" community that WASM will finally let us write for the web in "real languages" etc etc.

This is a real thing, but I also don't think that developers will start throwing all the web principles out of the windows just because they can finally code a textarea using Go. That's bonkers in my opinion. Also: WebAssembly still needs to talk to JS and has only a few types, I reckon that writing an entire app might even be counter productive :D

Not ready to disable WASM just yet, though; squoosh.app is just too good 😁

Squoosh is a perfect example of why one would use WebAssembly for the transformation functions to alter images and JS for the rest of the app

We'll see! :)

Thread Thread
 
kenbellows profile image
Ken Bellows

For more background on squoosh and the tech that went into it, in case you're interested: youtu.be/ipNW6lJHVEs

It was built by a Google team including some of the more public faces, like Mariko Kosaka and Jake Archibald, who present the talk at that link. It's a pretty neat discussion of PWAs, WASM, and applying them practically on the web now

Thread Thread
 
rhymes profile image
rhymes

thanks!

 
kenbellows profile image
Ken Bellows

WebAssembly has a text format though...

I was going to comment this myself, though I wasn't sure how usable the WASM text version is; I haven't read much about it. x86 has a text version as well, but it's horrible, haha. From the samples I have read it does seem like WASM's text version is much, much more readable and usable than traditional textified ASM.

I don't think developers will start throwing all the web principles out of the windows just because they can finally code a textarea using Go.

I doubt that too, I think what I'm more nervous about is an influx of Go (or other language) developers who start saying, as you said, "I can't wait to recompile my desktop app, ship it in the browser, call it quits and who cares about the web".

Just to say it again, I'm not super pessimistic about any of this, I think our community is far more resistant to negative change than that. We're a very self-critical community that is willing to reconsider best practices over time, despite what some may say. And because of that, I think it's worth talking about the things that we need to avoid, so as to "immunize" ourselves against possible future bad practices.

I really appreciate the input from everyone in this thread; I've learned a lot, and I have a lot to think about 🙂

Collapse
 
rhymes profile image
rhymes

Yeah, I understand, I don't think the majority wants WASM to be a better version of Java Applets :D

Currently there's a lot of JS going around, an some of it it's ill performing, WebAssembly could be a way to improve on that, not necessarily write an entire app in it on the server and just use the browser as a deploy target, but build a standard web app and use WASM if and when needed.

Paradoxically the long term view I've seen mentioned a few times by people interested in it is the one where WebAssembly becomes a universal binary target for regular apps.

I'm going to hype (sorry Ben :D) here but the dream here is to have a portable standard API. Imagine a situation where, because everything can be compiled down to webassembly, I can access the same battle tested functions (how many times as devs do we need to reimplement time.now().utc ?) for any language? Maybe even in an opensource standardized library.

I'm sure there's going to be people who abuse it (it happens to all technologies when they go mainstream, people use them for everything and anything) but we'll see.

This is a great overview of where we are and where we're going with WebAssembly, it also talks about the standard library/common interface thing: WebAssembly’s post-MVP future: A cartoon skill tree (you can skip down to "Outside the Browser" if you want to focus only on that part)

Thread Thread
 
ben profile image
Ben Halpern

I'm pretty hype about WASM, though mostly just waiting for it to happen.

Everything outside the browser is so proprietary (Apple, Windows, Android, etc.) and WASM has the potential to open things up in that regard I think—And also allow for more powerful, reusable code.

(Google is doing its best to gradually make the browser their own proprietary platform, but that's another story).

Concerns here are real, but I think there's a lot to be pretty excited about with WASM.

Google is probably hoping to kick off a pretty big hype cycle around Fuschia I'd imagine.

Thread Thread
 
kenbellows profile image
Ken Bellows

I definitely agree with the overall excitement, and I think we've already seen some early successes. But regarding the proprietary code problem, haven't we tried this before with the JVM? It did pretty well for a while, but hasn't really solved the cross-platform problem. Do you (and anyone else who wants to chime in) see any major distinguishing factors between the two that might make WASM more successful than the JVM as a super-platform?

@rhymes , you said, "I don't think the majority wants WASM to be a better version of Java Applets". Was that a reference to security issues, or performance, or just the "compile everything to JVM bytecode instead of writing JS" trend of the 2000s, or something else?

Thread Thread
 
frothandjava profile image
Scot McSweeney-Roberts

any major distinguishing factors between the two that might make WASM more successful than the JVM as a super-platform?

20 years of development in JIT compilers.

Thread Thread
 
kenbellows profile image
Ken Bellows

So then, is it really just JVM 2019? Nothing systematically different between the two, it's just more efficient at JIT? It's all just down to performance, not a matter of WASM doing something fundamentally different to the JVM or us using it differently or anything?

Thread Thread
 
rhymes profile image
rhymes

@kenbellows , I'll try to answer :)

But regarding the proprietary code problem, haven't we tried this before with the JVM? It did pretty well for a while, but hasn't really solved the cross-platform problem.

WebAssembly's binary format is an open standard and can be reverse engineered. There's a text version of the binary and I'm sure "view source" tools will pop up when mainstream. You can already go from text to binary with command line tools. Is it super readable? No. But it's not proprietary. This is the first difference.

Another difference is that it's designed from the start to be cross platform, and already is: it's cross browser and cross platform.

Yet another difference is that all the major companies are backing it: Mozilla, Microsoft, Google, Apple are all in it and the major browsers support the 1.0 specification (backed by the W3C). An example implementation that's already in production is the one by Figma which used to speed up their design tool:

As you can see, our load time improved by more than 3x after we switched to WebAssembly regardless of document size. This is a huge improvement for our users, who often create very large design documents and frequently switch between them.

An additional load time benefit of WebAssembly that isn’t captured in this graph is that load time no longer depends on application size. As long as users have loaded the app before, the browser should already have the translation from WebAssembly to native code cached from last time.

WebAssembly doesn't need to be recompiled everytime so that's a plus :)

This is really a great intro if you want to understand it better: WebAssembly. Neither Web Nor Assembly, All Revolutionary

Was that a reference to security issues, or performance, or just the "compile everything to JVM bytecode instead of writing JS" trend of the 2000s, or something else?

No I just think they are two different things even if at the surface they can seem similar. WebAssembly can potentially be used as an applet. Drop a binary in a page and play a 3D game completely disconnected from the web around it. But it goes beyond that.

 
frothandjava profile image
Scot McSweeney-Roberts

IIRC, the JVM didn't JIT at all back when applets first appeared. By the time it did it was too late and people equated Java with poor performance.

I suppose WASM is more tied in to the browser than the JVM tended to be. So that's a bit different (if you don't include any browser that was written in Java).

The programming model is different. Applets had a fairly well defined shape. WASM is more anything goes. Not sure if that really qualifies as fundamentally different though - it's certainly solving the same sorts of problems that Applets, ActiveX, Flash and Silverlight were meant to solve.

Collapse
 
molly profile image
Molly Struve (she/her)

I definitely agree in terms of backend technologies and databases, the waters are relatively calm. For a while everyone thought Go would solve all the problems but that has died down. Containerization has matured quite a bit as well and is not as new and shiny as it once was.

I'm kinda digging the calm, makes me not feel so left behind 😊

Collapse
 
ben profile image
Ben Halpern

Yeah, calm is nice.

Collapse
 
kaydacode profile image
Kim Arnett 

All of the Bitcoiners lost their money and now everyone hates tech.

😂 But really - It does seem like not much is going on lately. WWDC and Google I/O aren't far away - maybe that will spark some excitement :D

Collapse
 
cjbrooks12 profile image
Casey Brooks

I think we're in a time, not of low-hype, but of maturation. SPAs and rich, interactive web experiences were brand new just a few years ago, which is when we saw the explosion of JS frameworks and static site generators. Now, us developers are starting to figure out how we should be using the web, not necessarily how we could, and that is lending itself more toward rallying around the existing tools and making them better, rather than making new stuff.

Collapse
 
bosepchuk profile image
Blaine Osepchuk • Edited

Ben, I can't believe you forgot about all the awesome tech I'm planning to use in my new project to be the Uber for Star Trek action figure interactions.

We have so much amazing tech going into this project I'm sure I'll miss something but here are the highlights:

  • we are going to write the back end in Rust and Go
  • we heard that monoliths are so 2010 so we are going all in on containers. Every. Function. In. Its. Own. Container.
  • the front end will be transpiled into JavaScript from a new language that nobody's heard of yet and nobody will remember three years from now
  • we'll be 6g compatible (President Trump is helping us with that one)
  • we are going to use all the acronyms: DDD, TDD, BDD, etc.
  • BLOCK CHAIN, baby! It'll solve all our problems
  • Gpus are out. We'll do all our AI on purpose built chips
  • we're developing our own line of self driving cars to get the action figures to our customers with a minimum of human involvement. So, of course, we'll need some serious deep learning, computer vision, machine learning, etc. It's a little out of the norm for a software project but it will be worth it. We expect to offer full autonomy but the end of the year

It's going to be glorious!

Collapse
 
codingmindfully profile image
Daragh Byrne

Functions in a container is soooo last year. Everybody knows that you should actually put containers in functions instead. Serverless docker images running stateless is the way forward.

(I’m actually creating a service that will auto generate 16 page rebuttals of any given technology choice, with full details of why it can’t possibly work and why you should do it my way - it’s going to be such a hit!)

Collapse
 
bosepchuk profile image
Blaine Osepchuk

Totally agree. We're going to throw everything out and start over with serverless docker images running stateless--I can't believe I didn't see that myself.

Your project sounds cool. If you could work in an IOT angle, you could probably cash in for 7 figures in a couple of years.

Thread Thread
 
codingmindfully profile image
Daragh Byrne

I’m going for the exitless exit. I don’t actually sell anything and a million bucks appears in my bank account. It’s going to be the next big thing!

Collapse
 
sebastiandg7 profile image
Sebastián Duque G

Best dev.to comment so far.

Collapse
 
tvanantwerp profile image
Tom VanAntwerp

Hmm...

So, I don't think this hype has really started yet, but I could imagine hype around things like Google Stadia and similar streamed video games services. If that type of delivery becomes the norm, it would be a huge shift for the gaming industry. It's weird to me to think of a future where I don't own my games, but just pay for access on any device. And what would that business model look like? I'll confess that I've put well over 600 hours into Skyrim in the past, but would I still be willing to do that at $1/hour? Amd how much more will this merge gaming experiences with social media experiences? (Can't say I'm looking forward to more social experiences in the things I use to get away from social experiences!) The gaming landscape could be fundamentally altered. We'll see how much hype builds around it, though.

Otherwise, as I live and work in DC, I see the 2020 election hype train building up steam. So Americans, brace yourselves for two years of vitriol.

Collapse
 
davidbradbury profile image
David Bradbury 🐧

I think if they can get some of the major technical issues taken care of, there is a lot of opportunities outside of the gaming space.

Being able to subscribe to a service where I can pay a monthly rate and use a cheap laptop to remote into Windows/Mac/Linux boxes that already have the Adobe Suite, Office Suite, and any other service I might want at speeds far better than what I could reasonably afford.

If they can make that feel native, support multiple monitors, and not have terrible response times, I'd gladly switch from owning my own expensive box in exchange for that.

Collapse
 
doerrfeldbill profile image
Bill Doerrfeld

Could see similar repercussions for DAWs for music production

Collapse
 
klaudiomilankovic profile image
Klaudio Milankovic

I think that the hype is always there (graphQL, react, react native, vue...) but we just got adjusted to it.

Collapse
 
pinguinosod profile image
David Cautin

That's our secret captain, we are always hyped.

Collapse
 
jamesmh profile image
James Hickey

I kinda get the sense that many people are getting really fed-up with solutions to problems that most of us don't even have (Microservices, SPAs, AI, ML, most front-end craziness ala node_modules madness).

A well-structured monolith with extra front-end magic included where needed is seeming like the new "hype" to me (I've been seeing lots of articles about this lately)

That being said, I think solid skills in software organization, architecture and design are what most devs needs - not more knowledge about specific technologies.

Collapse
 
thejoezack profile image
Joe Zack

It wasn't that long ago when you would scroll through a site like this and every other article would be how blockchain/ml/graphql/cloud/serverless was going to eat the world. Those are all good things, but it's nice to see that some balance has returned.

Collapse
 
aimerib profile image
Aimeri Baddouh

Maybe it's just me and the circles I run in, but GraphQL keeps getting more and more attention. Granted it's now been around for a little bit, but the tooling keeps getting better and better.

Collapse
 
ben profile image
Ben Halpern

Yeah. To me there's a different flavor between hype and maturation/adoption. I think GraphQL has matured and is ripe for broader adoption. There were some accompanying technologies related to GraphQL that FB and others released at the time and GraphQL sort of won out in a sea of hype.

Collapse
 
rhymes profile image
rhymes

Maybe Hasura will hype next 😉

Thread Thread
 
aimerib profile image
Aimeri Baddouh

I am actually super hyped about Hasura! Tanmai Gopal (one of the co-founders) actually gave a talk at my local meetup, and it was only me an another person present, so we basically got a one hour personal lecture on how GraphQL works, including demos. It was cool because he never really even tried to sell the idea of Hasura, but I was familiar with the product at the time.

I love the idea of not having to build the integration between graphql and my database, nor having to maintain a database myself, so yes to Hasura!!!

Thread Thread
 
ben profile image
Ben Halpern

I happen to know that the Hasura folks have plans to put out a lot more DEV content. Maybe @praveenweb can elaborate 😊

Thread Thread
 
rhymes profile image
rhymes

Yes!

Thread Thread
 
praveenweb profile image
Praveen Durairaju

Glad to see love for Hasura! :D

As @ben mentioned, we have plans to put out more content around GraphQL across the frontend frameworks like React, Vue and Angular and more around serverless as well.

Collapse
 
aimerib profile image
Aimeri Baddouh

I never really thought of it like that, but you're absolutely right. There's some hype about the W3C CSS work group proposals lately.

Me personally, I'm super excited about sub-grids, and it seems like every podcast I listen to has been talking about them too. It's a great time to be a web developer!