DEV Community

Cover image for Twenty years of web development, a change is coming!

Twenty years of web development, a change is coming!

Michael Fasani on August 09, 2020

I have been working in web technology for more than 20 years. I spent the first five years of my career as a full-stack developer. Back then, we us...
Collapse
 
leob profile image
leob

Rust and WebAssembly are great and fantastic, but will you be able to make a living off of it? I'm all for innovation, but Javascript and other conventional languages is what's paying my bills at the end of the day.

Collapse
 
fasani profile image
Michael Fasani

This is a fair point. I do believe quite strongly that Rust will start to replace C in many organisations, big and small. But your right, I think in a few years in the big cities we will begin to see Rust positions. Today I think I can start to use it already as a CLI tool for some build processes maybe. The other point is, if I can make something noticeably faster by using WA as a prototype, then my ”bosses” are not going to stop me using Rust once they see the benefit.

Collapse
 
macsikora profile image
Pragmatic Maciej

I hope JS will stop being a compilation target in favor of smth which really is low level - WebAssembly.

Web development was in chains of JS for 20 years, until we have switched to compiled solutions, even now there are advocates of writing plain JS, and this I cannot understand. JS is nominal example of the language which never was designed, it has its good parts as Douglas Crockford is saying, but outside of the good parts we have a lot of footguns and problems like weak typing.

JS is not maintanable for any bigger codebase. Some can say, not true we have x lines of code and works fine. Yes works but costs of maintainence of such language code is huge, and highly depends on human discipline only.

I think languages like Reason, Elm or PureScript are the future of web development. Not sure about TS, maybe if TS will break it's compatibility with JS and will go in its own path then it has a chance to survive, funny as the most important reason of such TS popularity is exactly it's JS core.

In summary - I hope we will compile our code into WASM and JS will be just one of possibilities of languages. I think JS will stay in the surface where it's origins where, so for simple interactions in simple web pages, but for sure not in enterprise level systems.

Collapse
 
fasani profile image
Michael Fasani

For me, I think it’s worth remembering that a lot of JS is browser API that sort of masquerades as being part of JS. If chromium which is now in most browsers just decides that WA2 can now use the API’s of BOM and DOM then really JavaScript is gone almost overnight. I also think when we look at the speed of rendering on the GPU and how annoying the general DOM layout box model is... well we could just render anything and everything to canvas with no such limitation. Then web experiences can become like most interactive game experiences we are used to today. But of course, things like SEO and accessibility for screen readers are problematic, but then we just need a new spec for how to translate SEO for canvas and webGPU based sites. Don’t get me wrong HTML is pretty solid for rendering blogs and text. We have pushed HTML/JS to incredible new places, and we continue to do so... but I think perhaps, just moving it out of the way would allow new creative freedom like never before. I'm excited to see what changes the next few years might bring, and perhaps I am entirely wrong, but that doesn't matter. 🥳

Collapse
 
leob profile image
leob • Edited

Interesting, what you propose or suggest is really a new application programming model that's only using Canvas and leaving DOM behind, and then for the communication layer you can use anything that rides on TCP/IP (doesn't even need to be HTTP).

Not really "web" anymore. But yes HTTP and HTML do have a lot of advantages (SEO and so on), so we'll need solutions for that.

Collapse
 
elmuerte profile image
Michiel Hendriks

JavaScript (and the browser) is a great example of the quote

"We build our computer (systems) the way we build our cities: over time, without a plan, on top of ruins." - Ellen Ullman.

The lack of a plan is also quite visible in the rapid addition of new (in-development) APIs to the browser platform. More extensions are started then they finish. And people adopt these new constructions which are still extremely subject to change. These are the new ruins.

Add in NodeJS with also putting this construction on the server, and Electron for putting it on the desktop (and turning every simple application in a resource hogging browser).

Collapse
 
arthursav profile image
Arthur

After 7+ years of writing java/kotlin/swift and other strongly typed languages it almost feels barbaric coming back to javascript.

I really tried to like these cross platform frameworks that are built on top of JS but i just can't enjoy the programming experience.

Fortunately, more and more languages are becoming cross platform (kotlin comes to mind) and in the end it will not matter what language you choose.

Collapse
 
daviddalbusco profile image
David Dal Busco • Edited

If you extend Javascript with Typescript as many compilers or frameworks do, it does not almost feels barbaric I think, it can even looks like writing Java but less verbosely.

That being said, Rust looks cool!

Collapse
 
fasani profile image
Michael Fasani

I'm also playing with TypeScript at the moment, I enjoy both, but Rust just feels very cool imo. Looking forward to making and sharing something soon.

Thread Thread
 
daviddalbusco profile image
David Dal Busco

I almost only use Javascript when I debug or write Gatsby websites, otherwise, always Typescript.

You earned a new follower, looking forward to some intro to Rust blog posts, it is definitely on my "I should give it a try" TODO list 😉.

Thread Thread
 
fasani profile image
Michael Fasani

Thank you! I definitely plan to do some JS to Rust style posts. This was a very cool intro to Rust (github.com/rust-lang/rustlings).

Just check out that repo and you will be learning Rust immediately in the CLI, very nice intro experience to a new language.

Thread Thread
 
daviddalbusco profile image
David Dal Busco

Awesome!!! Thank you Michael, I'll check it out 🙏.

Collapse
 
andrewbaisden profile image
Andrew Baisden

Typescript is on my list to "re-learn" after I learned it but then did not use it because the job I was in at the time did not require it 😅 How many companies these days are looking for developers that use Typescript? I still keep finding jobs that just ask for Javascript.

Thread Thread
 
fasani profile image
Michael Fasani

I recently changed job position and at least here in Switzerland/Zurich I was surprised at how many companies are now asking for it (we also have a lot of Angular jobs here). There are many banking/financial/pharma/insurance companies, and TypeScript seems really popular now, more so than three years ago when I was last looking, especially in the higher-paying positions.

Thread Thread
 
daviddalbusco profile image
David Dal Busco • Edited

Angular and Stencil are both using per default Typescript. Companies using these are de facto using it.

React, Vue, Svelte (probably), Gatsby etc. can be used with Typescript. Therefore I would say that at least some companies are using it 😉.

P.S.: isn't Vue 3 event written with Typescript too?

Thread Thread
 
andrewbaisden profile image
Andrew Baisden

Valid points looks like I should join the party 😁

Thread Thread
 
daviddalbusco profile image
David Dal Busco

To infinity and beyond 🚀

Collapse
 
swagwik profile image
Sattwik Sahu

Yeah people from a Java C++ background might feel comfy with TS instead of JS

Thread Thread
 
daviddalbusco profile image
David Dal Busco

I have a prior long java experience, can't deny it 😉

Collapse
 
fasani profile image
Michael Fasani • Edited

@daviddalbusco your contribution count on GitHub is looking solid!

Thread Thread
 
daviddalbusco profile image
David Dal Busco • Edited

Yours also michael @fasani and you are doing a solid year too!

I am a big fan of open source and our editor for slides, DeckDeckGo, is of course such piece of software too. As it became quite a mono repo, my contributions count grown too 😁.

Collapse
 
phantas0s profile image
Matthieu Cneude

Well, I'm always trying to stay curious and learn new languages. It's not because you're an expert in something that you don't have the right to explore new languages / paradigms. I was into PHP, I learned Golang two years ago, and now ClojureScript.

It's really good because it makes me a better developer. At the end, between languages and paradigms, you found the same concept and, even at this level... nothing really change. Frameworks and libraries are still build on the same principles.

Collapse
 
robdwaller profile image
Rob Waller

I'm not a massive fan of JavaScript, but I can't see it dying out any time soon. People have been predicting the death of PHP for years and years, but it's still with us.

I like Rust a lot, but it's definitely not a starter language for new developers. Languages like JavaScript, PHP and Python will likely remain popular because they are easy to get going with.

One thing which may change though is Deno will replace Node over the next 5 years or so, certainly on the server side as it solves a lot of the problems Node has.

Collapse
 
fasani profile image
Michael Fasani

I worked with a guy who wrote a PHP 6 book, the poor guy spent ages on it and then it never happened.

The coolest thing about Deno.... a huge chunk is written in Rust!

Deno Repo Languages

  • TypeScript - 51.9%
  • Rust - 32.7%
  • JavaScript - 13.8%
  • Python - 1.4%
  • C# - 0.1%
  • HTML - 0.1%
Collapse
 
peterleonov profile image
Peter Leonov

Dude, you just wrote my biography too! Rust rocks :)

Collapse
 
fasani profile image
Michael Fasani

Peter, your GitHub intro says it all! I’m glad you liked the post! Have you done anything substantial with Rust? I am very new to the language, I haven’t built a single thing yet (other than following tutorials).

Collapse
 
peterleonov profile image
Peter Leonov

Not yet, but I finished Rustlings (github.com/rust-lang/rustlings) and enjoyed it a lot! Next stop for me: lear a but of assembler to understand better how Rust achieves the promise of the zero-cost abstractions.

Collapse
 
aaroncemery profile image
aaron

What timing! Literally just this weekend I was feeling the EXACT same way and started digging into rust. So far it’s nice to be writing something more strongly typed.

Collapse
 
fasani profile image
Michael Fasani

I enjoyed Rust so far. I like the borrowing and the specifying mutable values before being able to change them. Also cargo and the compile errors are pretty cool.

Collapse
 
uclusion profile image
David Israel

Its the AWS. Just focus on that - it is revolutionary in a way the other stuff you mention is not.