Home » Javascript » The Irrational fear of JavaScript “Script Kiddies”

The Irrational fear of JavaScript “Script Kiddies”

Over the last several months, I’ve seen a lot of whining, complaining a fear regarding Angular 2 in particular and the JavaScript platform in general.

Terms like “JavaScript fatigue” are indicative of the attitude.

Another place I see this is with the recent announcement from the Angular team stating there will be another major point release every six months.  Like this is a bad thing?

Or the general attitude that particular (modern) design decisions that have been made in some of the more recent frameworks that have been released are bad for JavaScript.

And I look at that and honestly wonder why these people are programming in the first place.  If change bothers you, you are really in the wrong industry.

The Irrational fear of JavaScript "Script Kiddies"
Photo via tookapic via Visualhunt.com

I’m Moving To …

I seriously saw this comment on one of the articles announcing the major point release and jumping to version 4 instead of 3.  The actual comment was, “I’m going to move to React.”  Now, the reason he was going to move to React because he’s afraid that these major point releases are going to be drastically different from the previous version so that he’ll always need to be learning something new.  I understand the fear.  But, I think it is unfounded.  Aside from the fact that the Angular team has assured us that there won’t be any breaking changes in the next version, what we have to take a look at is WHY there were so many breaking changes from version 1 to version 2.

Remember when…

Remember back to when AngularJS was first introduced?  The best platform we had at the time was jQuery and KnockOut.  Yes, there were others, but those were the most prominent.  Especially jQuery.  Since then, the browsers have stabilized and most of the reasons for using jQuery have vanished.

Another factor we need to consider is that the language has changed.  Oh, yeah, you can still write code like you used to 10 years ago, if you want.  But, the standards committee has finally committed to putting out new standards for the language every year.  So now, we have improvements that handle scope closure issues and fat arrow functions and the promise of not having to use promises or callbacks to force JavaScript into a more synchronous flow by using async and await.

And then there is the history of various frameworks that have come out since.  We’ve made a lot of mistakes in the past that have led to improved ways of working with JavaScript to achieve various goals.  Function programming has crept into the mainstream.  Reactive programming has become more popular.

For any framework to stay stagnant under these conditions would be foolish, if not suicidal.

And to that programmer who is leaving Angular for React?  Good luck.  You think Angular is bad.  React makes all those changes you dread without changing the major number.

What would it be like if …

Just imagine with me what it would be like if nothing ever changed.  How far back do you want to go?  How about back to where I started programming.  OK, that was 29 years ago.  I started programming on DOS 3.1 using Clipper (that’s a dBase III compiler).  We had 640K (that’s 640,000 bytes, not megs, not gigs) to program in.  We used overlay tricks to cram programs that were three times that size into the computer.  There was no GUI and what graphics we did have were incredibly grainy.  You were lucky if you had color.  There was no Internet, that was still the “property” of the colleges and the universities.  No Google to find answers to your questions.  No blogs. No cell phones. No social media.

And all of that was less than 30 years ago.

And yet, the way many people act, they would like things to stay the same.  And I ask, “Why?”  So that 30 years from today we are still struggling with the same issues we are today?

Maturity

Every new technology goes through essentially the same process.

At first, it is brand new.  No one really knows the best way to use it.  Some are better planned than others, others were accidents and were subject to more discovery than others.  JavaScript was one of those that was more of an accident.  So, we’ve spent a lot of time trying to figure out the best way to use it.  Think about this, if we had known then what we know now, don’t you think JavaScript would have been designed differently from the beginning?

At some point the new technology either dies, or matures enough that people start experimenting with how to use it best.  This is the place where design patterns are developed and features are added to the language.  This is the part of the cycle I love and is generally where I tend to jump into the technology.

Eventually the technology matures and gets boring.  This is where I tend to jump off.  Java and .NET are in this phase.  The patterns for both are well established.  What features are being added are at the “nice to have” level.  But generally everything most people need to be able to do can already be done with what is available.

We are currently at the beginning of the experimental phase.  Expect to see A LOT of change in the next several years.  If you don’t like it, move to a more mature technology that won’t change so much on you.

Conclusion

The final factor that magnifies all of the problems with JavaScript I’ve mentioned is that for way too long, JavaScript has been the language of Script Kiddies.  These are “programmers” who think that because they can achieve some sort of animation or validation on an HTML page by copy and pasting JavaScript they are real programmers.  So when someone with much more experience comes along and shows them a better way to program, instead of trying to learn they assert that this new way is wrong, or ridiculous, or declare they are going to take their toys and go to some other castle.

The problem is, all the castles are now occupied by Kings and Queens instead of children who don’t know any better.

 

Other post in Javascript
Summary
Article Name
The Irrational fear of JavaScript
Description
Over the last several months, I’ve seen a lot of whining, complaining a fear regarding Angular 2 in particular and the JavaScript platform in general. Terms like “JavaScript fatigue” are indicative of the attitude. Another place I see this is with the recent announcement from the Angular team stating there will be another major point release every six months. Like this is a bad thing? Or the general attitude that particular (modern) design decisions that have been made in some of the more recent frameworks that have been released are bad for JavaScript. And I look at that and honestly wonder why these people are programming in the first place. If change bothers you, you are really in the wrong industry.
Author
DMB Consulting, LLC

Related Post

  • Is JavaScript Broken?Is JavaScript Broken? I read a post this week that was essentially a rant on the way JavaScript handles concatenation.  It states that JavaScript is in someway “broken” (without actually using that word) […]
  • JavaScript Variable GotchasJavaScript Variable Gotchas If you’ve been programming using JavaScript for any length of time, you’ve probably run into several of the JavaScript variable scope gotchas.  You may have even been able to fix them.  […]
  • Reactions to React JS and Associated BitsReactions to React JS and Associated Bits I’ve been learning React JS over the last several weeks.  Currently, I now know 4 of the major JavaScript frameworks: Angular 1, Angular 2, EXTjs (4.2 – 6.0.1), and now React JS.  To be […]
  • JavaScript MVVM – You’re (Probably) Doing it WrongJavaScript MVVM – You’re (Probably) Doing it Wrong If you are using one of the many frameworks that say they are using JavaScript MVVM, you might not be using it the way it should be used. Many of my clients aren't. This article will […]
  • 4 Reasons To Drop MVVM4 Reasons To Drop MVVM The MVVM design pattern has been around for quite a while now.  It has a lot of strengths when done correctly. But, I believe the time has come to recognize that MVVM has a lot of […]

About Dave Bush

Dave Bush is a Full Stack ASP.NET developer focusing on ASP.NET, C#, Node.js, JavaScript, HTML, CSS, BootStrap, and Angular.JS. Does your team need additional help in any of the above? Contact Dave today.

One Pingback/Trackback

  • Joy George

    I think the fear is more on the tooling side migration efforts. ng1 to ng2 was little difficult with breaking changes. As you know buying in managers to get funding for migration is always tough. Another fear I have seen with tooling. For ng2 everyone has to experiment and find right tool chain though ng-cli is there in beta. Earlier developers didn’t need to spend much time on tooling once they select Java or .Net. But with new gen JavaScript they should think what is their tool chain. It is difficult when it comes to large enterprise apps. But as you said if someone fear change this is not the industry for him 🙂

  • David Carson

    Massive straw-man post, imho.

    “If change bothers you, you are really in the wrong industry”?

    I could just as easily say “if you’re more interested in upgrading framework versions than actually producing something useful, you are really in the wrong industry” – and that would see a lot of JavaScript developers looking for new careers.

  • Pingback: Dew Drop - January 4, 2017 (#2396) - Morning Dew()

  • John E.

    Back in the day, before the open source revolution, you sort of bought into a single vendor when it came to a full stack web development framework. For better, or worse, upgrade cycles were drive by vendors (that were notoriously behind the developer community in terms of the demand for bug fixes and new features). The upside of this was that things evolved somewhat slowly. Over time frameworks evolved that sat on top of these aircraft carriers sized frameworks that added incremental complexity over a very stable core API.

    I’d say things started to change as PHP hit full stride and the larger developer community brought ideas and patterns from other languages. I doubt many people write PHP like they did in 2005.

    That said, much the same has happened to Javascript, with Node on the back-end and the increasing adoption of single-page-apps (whether for web or mobile). In addition to new ways to use Javascript, a flood of developers from all over started to bring their ideas and patterns into the greater JS community and things haven’t stopped since. Moreover, since JS has first class functions, functional programmers now have a way to express their patterns and solutions that are well suited to building, scaling, and testing modern applications.

    All this is great, and it’s happened in such a short amount of time that anyone with their pulse on the JS community is going to be overloaded—to the point where things are comical—and where there is comedy there is tragedy, aka, community trolling.

    My advice to anyone feeling like their head is going to explode is to take a step back, learn React/React native, Angular2/Ionic2, Docker, and RxJS; understand functional reactive programming and master ES6. Whatever direction the community takes it’s a fair guess to say FRP is taking root in the JS community and you’re going to have to grok it if you’re going to remain employable.

    Telling someone suffering from information overload to study more may seem counter-intuitive; however, that’s the point. The problem isn’t information overload, it’s that one has forgotten how to learn. A bit of research on how to study, take notes, and learn new things is key to going forward as, I assure you, if you think things aren’t going to change at least a dozen more times in your career, well, you’re really setting yourself up for a lot of pain!

  • I don’t think the fear is irrational at all. We all just spent a good long time learning Angular 1, or some other equivalent framework. Now along comes Angular 2, where every time you start to try to build something there are 10 new things you need to learn, understand, and hold in your head, and each of them may take long enough to grok that by the time you fully understand it you forget why you needed to learn it.

    What company is going to be able to afford to sit idle while developers go through this process? Or are they going to try to hire developers who have done this on their own time? How many of those will they be able to find?

    From the developer side, all the time they spent learning Angular 1 is now out the window as far as being useful for Angular 2. If they dive in and spend the time to learn Angular 2 with all the little slippery pieces, each with a ton of options that take time to fully understand, will that pay off? Or will it fall out of fashion (or never take hold) before developers have even gotten enough of a handle on it to be fully fluent in its use?
    It’s all very well to criticize developers who are having a hard time getting their arms around this new thing as luddites, but, really, at some point this stuff is going to get so complex only a few people will be able to do it. And a framework with an audience of 8 people isn’t going to be well-adopted.