DEV Community

Michael Fasani
Michael Fasani

Posted on • Updated on • Originally published at michaelfasani.com

Twenty years of web development, a change is coming!

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 used the term webmaster. I would set up servers (which included e-mail and FTP), order domain names, create databases and order SSL certificates. I would code the backend and the frontend, plus open up Photoshop to do a little bit of design and UX from time to time. I was the scrum master and the business analyst plus I would support customers and project manage their websites. These tasks and job titles were all just part of being a webmaster. You crafted the web by yourself, and it lived in a box in the room next door, occasionally you would have to go in and check on it, maybe even restart it.

Later in my career, I saw an opportunity to specialise. Living and working in London, I saw the increasing need for the expert. Recruiters started to ring me, asking about specialist job titles. I very much enjoyed the visual element of working in the browser and JavaScript was growing in power and clearly here to stay. Macromedia Flash had died, and Java applets were long gone. People were talking about HTML5 and making huge promises. The title JavaScript developer was being thrown around in my world for the first time and with JavaScript being such a strange language there was an obvious need for experts, I decided to bet my career on it.

Looking back, I was not wrong. I have had a pretty decent career for the past ten years and rarely have I needed a backend skill set. In today's market, you can easily get by being a specialist and JavaScript is all the rage.

However, recently I find myself somewhat bored of the JavaScript world, keeping up with the latest and greatest frameworks and build tools. It just feels like nothing much is really changing. React and Vue are great libraries but I was able to pick up the basics in just a few hours. Frontend for me just no longer feels like the challenge it once was. Nearly all the browsers are running a version of Chromium and our build tools protect us in terms of backwards compatibility. I no longer need to know the browser quirks and hacks or the strange nuances of JavaScript. Today we can simply write ES6 or TypeScript and JavaScript just works.

I feel a change is coming and a big one, words like serverless, static sites and cloud computing are popping up daily, people are talking about writing C++ in the browser and compiling it to WebAssembley. We have exciting new browser API's like WebGPU, USB, Midi, Web Speech and WebVR. Some exciting things are starting to happen and potentially JavaScript will die, it will be a slow death for sure. But we need to remember that nothing lasts forever.

Today I hear people say JavaScript won't die and WebAssembley will just be an extension of JavaScript. But what is that based on? I think they say it just to cling to what they already know.

It's certainly exciting times for the web and I guess I have a fear that I will be left behind in the JavaScript world. I feel like it's time for me to break free from the chains of JavaScript. It's time to learn something new.

Where are we headed? I am not sure. I just know that I don't feel like learning yet another JavaScript framework.

I have decided that I will commit to learn Rust and dive into WebAssembly. Rust is a powerful language like C++ yet safer. I can use it in the browser and on the server, plus it will be a challenge for me to switch from JavaScript to a low-level programming language like Rust.

My current plan is to focus on several interconnected paths. I will dive into Rust, WebAssembley, Amazon Web Services (AWS) and of course, Gatsby so I can share my experiences on my personal blog.

I hope you will join me on this journey as we explore some of these new technologies together.

Discussion (30)

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 Author

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 Author

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 on

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 on

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 Author

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 Author

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 Author

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 on

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 Author • Edited on

@daviddalbusco your contribution count on GitHub is looking solid!

Thread Thread
daviddalbusco profile image
David Dal Busco • Edited on

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 Author

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 Author

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 Author

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.