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...
For further actions, you may consider blocking this person and/or reporting abuse
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
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.
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:
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.
Yeah, this is what I meant when I said the following:
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 😁
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!
@puritanic
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?
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.
That's why we're saying it will take some time to become mainstream :)
@kenbellows
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
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! :)
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
thanks!
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 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 🙂
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)
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.
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?
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.
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?
@kenbellows , I'll try to answer :)
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:
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
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.
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.
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 😊
Yeah, calm is nice.
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
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.
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:
It's going to be glorious!
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!)
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.
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!
Best dev.to comment so far.
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.
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.
Could see similar repercussions for DAWs for music production
I think that the hype is always there (graphQL, react, react native, vue...) but we just got adjusted to it.
That's our secret captain, we are always hyped.
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.
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.
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.
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.
Maybe Hasura will hype next 😉
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!!!
I happen to know that the Hasura folks have plans to put out a lot more DEV content. Maybe @praveenweb can elaborate 😊
Yes!
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.
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!
I haven't been hyped for something in the last 24 hours...
So yes
OCaml! Rust! Serverless!
😬 Did you feel the hype? 😬
maybe google stadia can Hype ...
I think people are starting to catch on to all the reinvented wheels. Ever since Dominos Pizza came out with that app that let you order pizza by voice, I saw this coming.
I believe that super new high tech app was once called a phone call back in the days of the land line. Time to break out the JBox and hook up the 4 pair...
I noticed the same, we are in a period of stability at least in the Frontend ecosystem, current leading frameworks have been there for years now and are quite stable, even if they are adding new features continuously.
New framework doesn’t get enough traction and remain in niches, with little communities.
It's because you are entirely focused on your product right now, dev.to. You've subconsciously put on blinders to whatever is brewing and are focusing on getting things done.
You've likely also become hardened to hype, not letting it phase you as much.
I assure you, if you look around you'll find all sorts of excitement over shiny things. :)
Yes, things are calm. I think we are kind of using in production the "hyped" technologies, dealing with their challenges (or drawbacks) and in a "should we really use this??" phase.
Ps. IMHO "serverless" is maybe hyped now...?
With JS, i can do more with less. JS doesn't control me, and it's the best language to get shit done to me.
Hype comes and go, but i believe JS stay there. The reason is that, the best programming language is not nessessary the most perfect one.
Nooo.... dun jinx it!
Im really loving that we are in a low-hype phase.
In all seriousness, its probably a cyclical thing, so lets hope this last as long as possible. And personally i prefer it to be less hyped, as it allows us to discuss technology trade offs more objectively. 🙂
I feel like the web is taking a breather in terms of evolution. We've found our new mediums, the new languages, and the new efficiency-boosting frameworks. Now it's just implementation. It's a good time to refine our skill sets while waiting for the next crazy thing to pop into the scene.
I completely agree! I've felt this a lot recently too. I don't think it's a bad thing though. Existing tools are maturing quite a bit, and we're just now starting to understand how many of these existing tools can be used in interesting ways, that truly maximize their potential.
That being said, a part of me also thinks people (including me) aren't dedicating enough time to rethinking existing tools & patterns- afraid to go back to the drawing board on some tech? Unsure. For example, email behind the scenes is still as archaic as ever isn't it?
Oh, it was simply a panic, as a result of the end of the exponential phase of computers development.
Now more or less the people are starting to realize that the new technologies will not help and the big era of optimizations is coming.
And more you need to optimize, the lower level technologies you should use. Down back to assembly language.
C++ and C will be much more popular soon. And assembly language a bit later.
GraphQL HYYYYYPE!
Now that you say it... yeah I haven't heard about anything like when TypeScript or GraphQL went out. Let's hope it lasts a while.
Hoping the next trend will be ActivityPub!
It's probably cyclical. We'll see one in the coming months.
Rust, WASM, Flutter
Is there no hype, or have we all become desensitized?
What about Web assembly? is nobody hyped about that?
No new tech hype is always better, devs can focus on shipping code. But if there's anything that needs more hype right now, I think it's PWA. It's quite underrated, PWA needs to be mainstream.
It's all about Python / ML / AI right now. That's where all the hype is.
It definitely was hyped a while ago, but all I am seeing now is a load of presentations from 'AI/ML' startups that tried it but only seem to be able to linear regressions (which I wouldn't class as AI/ML at all, just basic stats)
Maybe everyone is happy with the tools they're using? 🤷♂️
What do you think about hype for GraphQL? According to the state of js it's most wanted technology to learn.
Gatsby?