DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

The Right Idea Becomes the Wrong Idea Over Time

2008: Don't build your server-side application with JavaScript. Are you f#@cking crazy?


2018: Build your server-side application with JavaScript. It's probably one of the most practical choices you can make.


Regardless of whether or not you believe the 2018 statement, it's plausible at the very least. Yet I find myself observing people being overly caught up in past advice, even when the entire ecosystem has evolved around that specific advice.

JavaScript stands out to me in this regard. If I were you, I would avoid all things 2008 JavaScript like the plague. But 2018 JavaScript is practically an entirely different language. The ecosystem remains a bit wild for my tastes, but it's no longer true that the language itself is unworkable.

This is a time-travel joke built around Japan's industrial advances

Past scars get more attention than they need to. For some of us, we never want to see JavaScript again in our lives, but 2018 JavaScript is a sensible choice with wonderful tooling. Things aren't perfect but it's no longer mangled spaghetti as a default. We figured a lot of stuff out, we built entire new runtimes. We wrote a lot of new code.

JavaScript is the example here, but this applies in general. New software concepts keep old names. Old best practices rot without getting appropriately discarded. The case that really made me want to make this point was one particular result from the State of the Web Survey we just wrapped up.

25 percent of teams still support IE 10 and under!! I'm all for browser support but this is about 0.5% of browser activity being supported by 25% of teams! This is absolutely bonkers to me. There are a lot of use cases that could mandate supporting these old browsers, but I am certain it is not 25% of cases.

People support older versions of IE because they made the choice and never revisited it. People hate JavaScript because they had some bad experiences and never let old scars heal.

You don't have to love JavaScript, I'm not a big JS person myself, but the old joke is dead.

I think this is one of the all-time funnier jokes in our industry. If anything, I mourn the fact that we can't complain about JavaScript like we used to.

Oldest comments (34)

Collapse
 
alephnaught2tog profile image
Max Cerrina

Jeez, way to be a reasonable and respectful human being who focuses on bringing the community closer together instead of divisiveness.

JERK.

Collapse
 
imben1109 profile image
Ben

JavaScript bring me to paradise and hell. I do not know where I am.

I just think of TypeScript when JavaScript appears. I do not know why.

Collapse
 
alephnaught2tog profile image
Max Cerrina

200% more hipsters new programmers who download their boilerplate want an easier way to get started which is super reasonable given the crazypants environs of the current state of webdev.

FTFY

Collapse
 
twigman08 profile image
Chad Smith

I think one can easily argue that it is actually harder to get into pure front end development now though. Forcing new programmers to learn and pick up build tools and transpiling? No thank you.

You'll find me as someone who suggests people to not learn JavaScript as their first language right now.

Thread Thread
 
ben profile image
Ben Halpern

I still โค๏ธ Ruby as a teaching language.

But you can make a lot of arguments for different choices. A good teacher is the most important thing. Iโ€™ve heard folks who started with Haskell and everything was great because they had the right people.

Thread Thread
 
twigman08 profile image
Chad Smith

I can definitely agree with that. With the right teacher any language can be just fine as your first language. In the end pretty much any programming language is teaching you core basics of programming in general.

Then again I am also the crazy one who learned C++ has their first language. haha.

Thread Thread
 
eli profile image
Eli Bierman

I think Javascript is still amazing for beginners because you don't have to set up a local development environment to try it out. You can just use the browser DevTools console. Also you can get immediate visual feedback interacting with web pages and building elements.

You can also still just write little scripts and include them in HTML pages, then just open them in the browser and debug them from the console. A visual programming IDE that you already have on your computer. There's really nothing else like it for beginners. No command line necessary, which deters more beginners than we'd like to think.

Collapse
 
speculative profile image
Jeffrey Tao • Edited

I've never really understood what seems to be large swaths of the developers posting on the internet who like to debate the relative merits of technologies or view certain technologies as illegitimate (see also: PHP). Widespread usage of something seems like an indicator of at least reasonable quality/soundness/viability, in my opinion.

Most choices of technology for a given problem are usually in some way a reasonable choice to make.

Collapse
 
perttisoomann profile image
Pert Soomann

"Eventually, when the opponent is challenged or questioned, means the victims investment and thus his intelligence is questioned. No one can accept that, not even to themselves."

Collapse
 
mortoray profile image
edAโ€‘qa mortโ€‘oraโ€‘y

I'm still happy to hate JavaScript. Despite being everywhere, and being useful, it's a mess of a language. It lacks just about every modern programming feature. It's horribly unsafe. It's still slow. It's bonkers.

Modern JavaScript is a flowery dress covering a mannequin made of trash.

Don't let the old joke die! :)

Collapse
 
zeddotes profile image
zeddotes

What's your preferred language?

Collapse
 
mortoray profile image
edAโ€‘qa mortโ€‘oraโ€‘y

Depends on purpose. For web server APIs I'd use Python. For anything involving calculations, extended logic, or lots of code I'd use C++. For mobile I'd use Fuse system I worked on -- if it remains an option.

I only ever begrudgingly used JavaScript, TypeScript, etc. because I have no real option.

Collapse
 
jfrankcarr profile image
Frank Carr • Edited

Same here. There's a lot of legacy corporate code out there that's driving this. Old ColdFusion and ASP.NET web apps that won't run on newer browsers, especially Chrome, are a significant part.

Collapse
 
guitarkat profile image
Kat

Yeah I can see why for legacy stuff, but when they push for awesome new stuff but then go... IE8 or IE7..... .....

Collapse
 
perttisoomann profile image
Pert Soomann

Right and wrong in the title are a bit too strong.

But I agree that over time the outside factors changes and some issues become non-issues.

Having to compile your resources into single JS / CSS / image file is good example, as this does not offend anyone's choice of language or framework.

Because internet speeds improved and underlining web technology improved too, you could look at it from completely different point of view and maybe split files up based on functionality so you don't accidentally expose something that should be available for limited users.

Actually I believe now the rad thing is to have CSS that handles only above the fold HTML, and another CSS file for the rest.

The problem is when people use these "best practice" lists not understanding the underlining reasoning and not factoring in their own project use cases, but it's even worse when they start rolling eyes when someone isn't doing it exactly like they do.

The beauty of development is, at least for me, there is no 1 right answer.

Also I've noticed when you are feeling stressed about your tech-stack loosing popularity, just wait 5-10 years, and your technology will be "in" again, and you can be leading expert :D

Collapse
 
rrampage profile image
Raunak Ramakrishnan

Good ideas are always relevant e.g backwards compatibility, minimalism, accessibility, simplicity in design. Technologies and fads may come and go.

JS is an interesting amalgamation of ideas. The primary one (portability) was to make the web more interactive, without having the user install a separate software. Java applets, Flash, ActiveX failed at this. JS allowed for web pages to go beyond simple text, images and hyperlinks. Most importantly, JS allowed a generation of programmers to play around with code in the comfort of their browsers, thus lowering the barrier to become a developer. Now that it has become ubiquitous, ECMA and major browsers do not deprecate parts of the language, leading to efforts like typescript, the (old) coffeescript and an increasingly complicated JS to smooth over old mistakes.

The support for IE is a battleground for ideas. Will you break the web for a section of your users who may not have control on their browsers due to IT policy? Or will you support a browser which has been abandoned by its vendor itself, knowing that users of that browser are at risk of viruses? Backwards compatibility vs security. As developers, we have to always fight conflicting tendencies of using shiny new technologies vs sticking to mature technology. Too much of the former leads to hype driven development where teams keep rewriting the product in framework du jour instead of solving business problems. Too much of the later may lead to security issues as the technology itself stops being maintained.

Collapse
 
guitarkat profile image
Kat

This is me. Let's use Edge. How about none of those options?

Coding for IE8 has been hurting my heart as a front end type of person. The personal hell of supporting old IE is painful. The job is hard enough. :p

Collapse
 
zeddotes profile image
zeddotes

Babel?

Collapse
 
dance2die profile image
Sung M. Kim

Having to manage a VB6 app with browser that opens IE8 has been painful...

Migration to remove VB6 app has been going on surely but very slowly.