I see this is the result of a "configuration over convention" mentality. Personally, I prefer convention. Let's come up with something that works out of the box with great defaults, and let me adjust the few things unique to my project. The configuration approach is the opposite. You start with nothing and piece the whole thing together little by little. The thing is that 95% of all web projects could just work with great defaults. They just aren't that complex or unique to really benefit from this perfectly configured setup. That's why jQuery always worked so great. It took a lot of technical complexity and made it really simple to work with. I hope we get back to that type of thinking soon.
Although I agree with your general point (which is why I was such a fan of Meteor), in my opinion it's kind of a fallacy to compare jQuery, which is a DOM manipulation library, to UI libraries like React or state management libraries like Redux, which together give you solid patterns and debug tools to build entire apps.
Also agree with you, they are not the same.
React is actually an interesting case. It automates and abstracts the view/state handling so you don't have to worry about it, making your life simpler that way. But then it adds a ton of complexity in the tool management. So the overall development experience is just as complex, it's just that the complexity has been moved. I'd love to see an approach that abstracts and automates things in all parts of the development process. Do you think that's possible?
I think this piece is a good counterpoint to the original article.
This is so true. Also some programmers have taken over this line of thinking.
"Can you look at the image uploader?" 2 weeks later "Well you can set the aspect ratio, connect the Amazon S3 and even crop the image in your browser using this neat library I found. Just tinker with these 3 different configuration files, re-compile and you're good to go"
"Woah, that sounds awesome but does it upload an image?"
"Don't know, haven't tested that yet"
Just a week after I would be writing more and more complex algorithms and building functionality I thought I would never be able to write.
I wish it was that easy nowadays.
I don't get why people don't just still use jQuery. It works fine. It is incredibly easy to use, and is able to accomplish so much.
ES6 is better, faster, and doesn't have much bloat when compiled with Babel. It's a huge learning curve, yeah, but once you get over the hump building something with React, Vue, or whatever else is so much faster than the older libraries.
Depends on what you want to do. If you're just adding a carousel or parallax scrolling to a product site or blog, jQuery is probably fine. If you're building a web application that you'll have to maintain for years, jQuery will quickly become a miserable tangled mess.
Yep. A lot of the "just use jQuery" people don't understand that. The problem is that a lot of projects start off as "just adding a carousel" and end up at the "tangled mess" stage sooner or later.
The whole point of using React/Redux/etc. is to start off on solid bases and have a clear path to handle more complex needs as your app grows.
Yeah, agreed. I think the key is being able to identify the inflection point at which "just use jQuery" is untenable, whether it's at the beginning of a project or down the line as it becomes more complex. There's a cost to rewriting the whole thing in Angular/React/what have you, but there's also a cost to starting off there when your actual needs are much more humble.
That decision is more related on what it is that you are trying to build rather than the scale of it, since inevitably the scale will increase over time regardless of what you're working on.
If you are trying to build a web app in any sense, especially anything that relies on manipulating and modifying data on the front end, then "just use jQuery" is very much inadvisable at this point.
If you are building something like a brochure site that will never be updated, or something where all of the dynamism will be handled on the back end, then jQuery will do you just fine. I'd argue you'd be better off learning ES6 & learning to set up your project with Grunt, Webpack, or whatever for performance reasons, but jQuery will suffice.
I still think it depends on the scale of what you're building. Yes, projects inevitably grow over time, but if you're starting out small and you know the pace of growth will be slow, why overcomplicate things at the beginning? It's not like you're avoiding any work by frontloading the complexity of setting up a whole framework/build system/etc instead of doing it when you actually come to need it.
Remember, "premature optimization is the root of all evil" :)
Funny, I recently did an illustration to show exactly that:
If your app's business logic is mostly server-side, then yeah, this whole conversation isn't really relevant.
Omg... this is so damn true, it's not even funny.
Agreed. this fully justified my feelings over the past year trying to learn to code.
I feel like developers these days are over-complicating things and making the barrier to entry very high compared to how it was back in 2007 when I started learning to code. Now you can't even write simple CSS without a damn compiler.
Agreed. Hopefully things become simpler. I gave up learning back end dev because of all this. I can hand code html/css/js and php, but man these libraries go out of fashion so quickly
Exactly how I feel XD funny but frustrating..
Wait, so if this is the overall feeling..should designers learn to code?
That will be the follow-up article. But IMO no if you really want to concentrate on your craft. No one can be a unicorn. Yes if you want to add another skill set and be more marketable. But no if employers think they can just lump another job skill set on us and charge for the same damn salary. I'd say learn to understand the code and know how to design within the restraints of the technologies. Put yourself out there so you can read and talk code rather than write production code.
I started out as a designer, then became an engineer, and now I'm not really sure what I am anymore. I enjoy it all. Don't listen to people telling you what and what not to learn—just learn what you need to create what you want to create :)
I personally think that interaction designers should at least know how it all works, but I find that the answer comes down to the places that you want to work, the type of work you want to do, and what your goals are in your work/career.
My experience is that hybrid designers start out designers and are encouraged to be engineers because there is a greater demand for the engineering work. That makes keeping balance as a hybrid designer very difficult, and to be honest, I think that there are only a few environments where a hybrid designer can prosper, mostly at smaller technology companies. Otherwise, a hybrid designer is often prized more for their 'design eye' rather than their design skill.
That being said, being a hybrid designer opens more career opportunities, is considered a set up for hiring prospects, and really opens up your abilities to create personal projects solo. If you desire independence outside of a normal career path, then I think being a hybrid will help aid in that desire, both in your ability to land work, and your ability to create your own ventures. Save for that, if your desire is to work in an agency or a large company, you will rarely be tasked with development work.
THIS IS BRILLIANT!!!