loading...

Twenty years of web development, a change is coming!

fasani profile image Michael Fasani Updated on ใƒป4 min read

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.

Posted on by:

fasani profile

Michael Fasani

@fasani

I have been working as a "webmaster" since 1998. Mostly I write JavaScript. I currently like React, Redux, Gatsby, WebXR, D3, Three.js.

Discussion

markdown guide
 

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.

 

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!

 

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.

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 ๐Ÿ˜‰.

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.

Awesome!!! Thank you Michael, I'll check it out ๐Ÿ™.

 

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.

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.

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?

Valid points looks like I should join the party ๐Ÿ˜

 

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

I have a prior long java experience, can't deny it ๐Ÿ˜‰

 

@daviddalbusco your contribution count on GitHub is looking solid!

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 ๐Ÿ˜.

 

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.

 

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.

 

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.

 

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. ๐Ÿฅณ

 

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.

 

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).

 

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.

 

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.

 

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%
 

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

 

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).

 

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.

 

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.

 

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.

 

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