Web Development and the Spaghetti Syndrome

Josh Boldt
Differential
Published in
4 min readJul 31, 2016

--

One of my favorite foods growing up was spaghetti. As a little kid, the prospect of eating long slimy noodles with red sauce that I could splash everywhere was very enticing. Therein lies the problem with spaghetti, at least from the adult-crowd. Spaghetti is messy. It mixes together and can be a pain to eat. I feel like no matter what, even today I still manage to get the red sauce or noodles all over the place.

In a lot of ways, Javascript and modern web-development is like spaghetti. It is messy. You do one thing and manage to have collateral damage in a million other places, kind of like red spaghetti sauce getting all over your shirt as you (try) to carefully eat. There really is no easy way to eat spaghetti and there is no easy way to build great web applications. Let’s call this the spaghetti syndrome.

Two months ago, coming into my apprenticeship at Differential, I knew nothing about web development. My background was in Java, Python, and C. So you could say I was in for a bit of an adjustment. I will never forget the frantic weeks leading up to the internship as I tried to learn how to make web applications. Node, Ember, Angular, Webpack, ES6, ES2015, Babel — they were all bizarre, foreign concepts with cool names. Needless to say, I felt the spaghetti syndrome.

Enter Meteor and React

One unique advantage of working at Differential is that we use some of the most advanced technologies in the industry: Meteor and React. For a beginner, I thought, ”Oh no, more complicated things to figure out. How am I going to learn this?” It turns out, I was very wrong. Meteor and React have made learning web development not only an extremely rewarding and fun process, they have allowed me to focus on writing code for great products. Let me tell you why.

Reason 1: Meteor Magic

Meteor is a fantastic web development framework that does many things to ease the pain of building great web applications. As a beginner coming into web development, Meteor had this magic about it that made my life so much easier. One great thing about Meteor is how it automatically sets up much of the configuration for your application and makes it work seamlessly with your browser, in real time. This negates many of the weird and *spaghetti syndrome* nuances of web development. While there are advantages to learning how to do all of this manually, in more cases than not, letting Meteor do it for you is best. It really feels like magic.

Reason 2: React and Component-centric Development

Meteor takes care of the headache of web application setup and maintenance. But when I am building my actual application, how do I structure it, keep track of data, and make my code reusable for other projects? Enter React. React is a clever library for solving many of these problems. The best thing about React is that it forces you to think in *Components*. By thinking in Components, you force yourself to break down complex interfaces into small, reusable parts. Not only is this a good practice for reusable code, it makes managing your code and your data flow infinitely easier. React has been incredibly useful not only as I write my own code, but as I begin working on code others have already written. Whereas Meteor is the magic that just makes things work, React is the structure and mental framework for building a great web application.

(Never) Too Cool for Tools

When I was a child, to fix my problems with eating spaghetti, my mom used two ingenious tactics that just so happen to be great metaphors for the fixes that Meteor and React provide in the web development ecosystem.

First, she replaced my plate with a bowl. This magically made the process of eating spaghetti far easier and cleaner. The bowl captured all the spaghetti and prevented the mess from happening. In the same way, Meteor automates the process of setting up our web applications making it as easy, clean, and seamless as possible.

Second, she used a knife and cut my spaghetti into small, digestible (both literally and figuratively) chunks that I could eat. Mess. No. More. While I was sad that I couldn’t ~~play with~~ swirl my long spaghetti noodles, by breaking the spaghetti into smaller pieces, much like React breaks a web application into small, digestible components, I was able to eat quicker, easier, and without making a mess.

Spaghetti Syndrome No More

Ultimately, the point I want to convey is that the web development ecosystem is unnecessarily complicated and going through massive changes. Both for newcomers and experienced developers, using tools such as Meteor and React will make your lives infinitely easier and will let you focus on what’s most important: building great web applications.

To get started, check out these links below:

Bonus: React can also be used to create iOS and Android applications. Check out this great blog post to find out how with React Native.

This post originally appeared on the Differential Blog.

--

--