Did the JS community forget clever is not smart?
Tags: javascript
Published: 2018-12-22 23:43:58

---
title: Did the JS community forget clever is not smart?
published: true
description: My frustrations of the trends and how I think they are hurting everyone. 
tags: JS
---

I'd like to start by saying some words of appreciation for the community. Without the efforts of the few who contribute to the tools and scripts that they share with the world almost none of this could be possible.

With that said I personally feel that their same efforts now maybe the very thing that is undoing / undermining everything. 

# Clever is bad for the community and thats ok. 

Everyone at some point has found a difficult problem to solve that required a difficult solution. You could say that today the problems are growing faster than there are solutions to solve them. I'm also a firm believer that sometimes you just have to make it work and thats ok. With that you should always strive to except things the way they are even if they are "bad" and thats ok. Clearly perfection is the enemy of good. So now that we agree that clever things sometimes happen and we shouldn't feel bad if and when they do lets move on. 

# Why clever is not smart?

Smart should not be difficult. Smart is simple, smart is easy and it just makes sense to all who perceive it. The whole reason its smart is because its effective, reproducible and easy. All of which tends to be at direct odds with clever. 

# Why is the JS community trying to be so clever?

First, I'm not an expert js dev. Hell I'm not even really all that much of a mid level dev. Though, I bet you I represent a great portion of the community who feel like they have been completely left out of the industry as a result of the large wave of clever devs from the last 5 years. Thats not to say all the new things are clever and not smart. For example the "destructuring assignment syntax" is amazing and really smart. Most everyone gets it right away and it just works. Sadly that can't be said for the other major advancements in our community. Let's look at Webpack for a moment. Its everywhere everyone is using it though, I bet you not everyone got it right away. I bet you many still don't get it. Yet here it is, quite possibly in at least one project you are working on right now. Ok, let's not blame Webpack, its just a reflection of what everyone is trying to do. It's trying to solve difficult problems and so naturally it sometimes has difficult solutions and we all agree thats ok. 

So whats really happening here? Well for starters everyone has been upping their standards, and thats good right? You all know what I'm talking about. 

* "You don't need jQuery for everything"
* "You should use ES6 today (babel)"
* "imperative vs declarative"
* ect..

So naturally the problems are changing and are generally getting harder and thus so are the solutions. 

let's look at another example via a popular library. 

http://photoswipe.com/ is arguably the best option out there for photo galleries. Naturally that means the majority of new devs are gonna find it on google when they look up how to add a photo gallery in js as I did. Since it favors pure js it will naturally win over lightbox who I think still uses jQuery because this is what we are telling the community to avoid. 

So when that new dev goes and reads the example code to see how they can integrate this lib as their own photo gallery and they come across something like this. 

```
var closest = function closest(el, fn) {
    return el && ( fn(el) ? el : closest(el.parentNode, fn) );
};
```

What message are we sending to the community when we insist you should be comfortable enough with this code to even start to use this library?  

This is a part of the example for just trying to initialize that library! 

Sure they noted their was gonna be a learning curve to this library in the read me but, is this what they meant? 

I'm begging you all to observe what you believe to be smart and really ask yourself are you just being clever? If so thats ok but, let's do more to not push that as the standard since that is hurting our over all community. 

`<!-- end rant -->`

Thank you. - Josh Chernoff.