Matthew Lang avatar

Matthew Lang

Web developer amongst other things

The new world order of JavaScript

There’s no denying that JavaScript is an excellent language for the web, especially the front-end of any web application. Without it, we can’t enjoy a user experience that challenges native applications.

However, I am not convinced that JavaScript is a language that is suitable for all parts of an application’s stack, all the time. There are benefits to using JavaScript depending on the requirements, but it feels like JavaScript is becoming the go-to language for everything.

Heydon Pickering’s post is an excellent read about this issue and full stack development and how this role is changing with the larger set of JavaScript tools and frameworks available, but it’s his point about separation of concerns that resonated with me:

We need to revisit the separation of concerns principle. We simple can’t afford for people to have to know everything just to do something. It’s good that we conceptualize designs in terms of self-contained components now, but that can be a mental model without being a technology-specific land-grab.

Reluctant Gatekeeping: The Problem With Full Stack by Heydon Pickering

It wasn’t that long ago when front-end developers and designers worked with back-end developers on applications. There was a separation of the two roles and their focus, and each side had the knowledge to carry out their role. Front-end developers would work on HTML, CSS and JavaScript, crafting functional yet beautiful user-interfaces. Back-end developers would work on business logic and background processing.

With the rise of JavaScript though, we’re seeing a convergence of tooling onto a single language, and the roles of front-end, back-end and full stack developers becoming less about knowing the respective field and more about knowing JavaScript.

The new world of web applications is moving to JavaScript, and that’s great for the web as a platform. We can now build applications that rival that of native apps using a single language.

However, when faced with programming language choices in the stack, should developers be quick to default to JavaScript?

What did you learn in 2018?

8 years using Ruby on Rails and today I just used the after_find callback for the first time. Every day is a school day.

Private repos for developers on GitHub’s free plan is a great move by Microsoft to match the likes of GitLab. I’ll need to check to see if I need that $7 Pro plan now.

I probably need to start thinking about imports now for Commonmarks. Pinboard and Pocket are probably the two exports that I need to focus on.

I must admit, I do miss freelancing. Skipping the commute into the office this morning would have been a good start to the day.

I am hoping to add RSS feeds to Commonmarks today so that I can hook up my bookmarks to Micro.blog. The plan is to have a public feed that the owner can control as well as a private feed that the owner can use themselves.

Just finished watching Bird Box on Netflix. Fantastic to watch but closing the blinds now. 😱

This is my first round of the year with Ethan. I’m pleased to say we’re both hitting the ball well, but my game dipped on the last few holes.

Say hi to Commonmarks

My own bookmarking app is up and running.

It’s nothing fancy in terms of how bookmarking apps usually work, but I wanted this to look and act more like a blog than a collection of bookmarks. I opted for paginating results on the right with a sidebar on the left. In time the sidebar will include more filtering options.

I’ve had a couple of stabs at my own bookmarking apps over the years, but this one feels more right than wrong. The code is still rough around the edges, but I’m happy to open source it now on Github.

And the name? Well, think of it as a commonplace book for your bookmarks.

Update: Commonmarks has been renamed to Markcase and is still under active development. I’m hoping to open it up for registrations in spring 2020. Source code is available on Github.

Plugging the web development knowledge gaps

Dan Abromov’s Things I don’t know as of 2018, is a refreshing take on the knowledge gaps of software developers. Even though Dan is the creator and maintainer of a widely used package used with React, his list of knowledge gaps in web development is quite an eye-opener. And he made them public too!

I’ve worked alongside a lot of great developers, and I’ve been amazed at both their spread of knowledge on web development but also their gaps. I rarely pay attention to the knowledge gaps though. It’s easy to be amazed at the breadth of one person’s knowledge and not focus on a person’s knowledge gaps. Perhaps they just didn’t get round to that gap, and focusing on their knowledge gaps feels wrong, but should that be the case?

As I’m approaching 20 years working in software development, I’m starting to know the excellent job descriptions from the bad ones. Merely listing a long list of tech experience that you would like in a candidate is a poor way of getting the right one. In my view, the best candidate can come in and use their soft skills to learn and get up to speed in a few months regardless of their experience. I think it comes down to the fact that more organisations want their candidates to hit the ground running from day one. No training or onboarding, just another cog in the big development machine.

Given the number of languages, frameworks and other techs in web development, it’s a near impossible task to keep up with everything, but I’m taking two things away from Dan’s post.

  1. There’s no harm in not being up to speed with everything that a full stack web developer should do. Sure, I can deploy an app using Cloud66, Heroku and Dokku, but I can’t say the same for Docker and Kubernetes. I can deploy web applications, but only on the technology that I have chosen to learn.
  2. I’m considering changing my job description to be more specific. Sure I can be a jack of all trades, and know a bit of everything in the web development stack, but I’m sure I would be better off describing myself as a backend web developer instead and focusing on the technologies around that.

With these points in mind, I’m renewing my focus on Ruby on Rails as well as adding to this the knowledge that I need for the gaps around it.

It’s good to know though that I am not alone in not understanding a few topics that have been popular in the last couple of years.

Trying to keep pace with most of the topics in the web development world is a task in itself, but there’s enough work to keep me marketable as a backend web developer even if I do focus on a single core skill.

A few scrappy thoughts on buying online instead of locally

As I picked up our New Year’s Day order from the butchers this morning, I was reminded of how little I have used my local butchers and other local stores since I started working in an office.

When I worked from home, I shopped locally every week. Very rarely did we have to do our grocery shopping online. I was able to pick up most things from local stores during my lunch break. It was a good time to get away from my desk and get some air. Now that I commute to an office though, I don’t have the time in the day to continue to shop locally, and the stores where I work aren’t convenient too within my lunch break.

My thoughts on this are still a bit incoherent despite having tried to write this for close to an hour now, but here’s what I have in raw form.

  1. More people should be allowed to work remotely. Working from home gives you more time to run a few errands as well as shop locally and support local businesses.
  2. More people should be allowed to work fewer hours. Is a 40 hour work week really necessary anymore? Working fewer hours would allow us the time shop locally as opposed to just feeding more and more orders into the Internet retail giants.

I’m not an economist, and I’m sure there are holes in these thoughts, but if I could have seen the damage that internet shopping has caused to my local town, then I would have been a bit more selective about my spending habits over the years.

I’m usually the first person to defend the march of technology, but it’s come to a point where even I’m not sure that the change has been for good.

Great afternoon exploring the Gleniffer Braes with Jennifer and Drew. Drew even came prepared with his own walking stick!

Keep it simple.. Another great productivity booster from Nicholas Bate.

I’m clearing the desk, sorting out notebooks, reviewing app subscriptions, getting a list of books to read and considering what to focus on for 2019. I’ve been all over the place the last few years, time for some deep focusing.

Got my own bookmarking app up and running on Heroku last night using Rails. It’s a simple affair with just the ability to add and edit bookmarks and navigate bookmarks by tags. I’ll be looking to open source it on Github over the holidays, once I’ve tidied up a few things.

I’m still not convinced that JavaScript is the way forward for web applications.

At the rate of change in the JS community though, I’m sure it’s only a matter of time before they all go running back to SSR web applications. 😂

Spinning up another little greenfield Rails project. I was tempted to try another framework/language out for this, but I just want to get it done. So Rails it is then!

Instagram has been getting less appealing these days. The constant adverts on my timeline don’t help. I didn’t get many for such a long time and then all of a sudden a flurry of them. Maybe it’s a good thing and will keep me of it for a bit.

Love NB’s reminder about productivity balance.

When you add regular events to your diary, ensure you subtract one or two.

The Simplest of Productivity Boosters 1-50: 12

Firefox 64 is here!

Am I the only one who had higher expectations for this release of Firefox? It is the 64-bit version after all. Multiple tab selections you say? I’ll take it!

A fascinating and in-depth look at the typesets and other inspirations for the WALL-E movie. This being a favourite movie of mine, I had to recommend this. A lengthy read, but definitely worth taking the time out for.

Voyager 2 has officially entered interstellar space. The distances still boggle my mind.

Putting the finishing touches on a new website I’ll be lauching during the week. Great to be using Jekyll and Netlify for this.

Can’t wait for Avengers: End Game.