Foreword

As of late, I’ve been in “Full Consultant Mode” looking at different project\gigs\jobs\companys  and I came across this question.

Comparing the windows developer stack to another stack you have used (such as XCode or UNIX/vim/python) where does the Windows stack shine? Where do you find it lacking?

(I thought to myself that answering this could take a bit so why not build on this and write it into a couple proper articles on my experiences with Javascript vs Windows development with .net)

As a web developer, I’m a pretty staunch advocate of really getting down and learning the heck out of javascript and have been for the better part of my career. I’m going to discuss what I see as the present problems surrounding the “javascript ecosystem” are a more recent phenomenon that many front-end devs are not talking about.

That said much of my programming experience has been divided between front-end javascript and backend .net development so these observations come with my personal biases. This is just one dev’s opinion.

On Tooling

Tooling in the javascript ecosystem leaves something to be desired. Working with a lightweight text editor like sublime, atom or visual studio code with the terminal is fine for most things. For the more complicated things like setting up a new spa project, I tend to lean on things like Yeoman to handle much of my boilerplate. For further simplification of things like code refactoring, new content generation, unit test runners and many of the other niceties I’ve grown accustomed to I use Web Storm. I can configure most of these things in the other mentioned text editors but I prefer laziness, laziness being one of Larry Wall’s virtues of programmers, and I like having the option not to have to think about how to wire up my project.

 

 On Javascript the language

In the language itself, there has been a steady stream of new features that have made managing complexity in javascript a good deal easier. ES6 is providing a module system, typed collections, and types that include functional methods and behaviors out of the box, traditional classes as an alternative to object prototypes. Skipping ahead to ES8\ES2017 and we are getting things like async and await to the language. As a developer coming from gigs that require refactoring work on legacy codebases with over 20,000 lines of es5 javascript on a single page, I can safely say that things are getting better as I now have quick access to the tools to make managing complexity a whole lot easier.

 

On Javascript Frameworks

Javascript Frameworks have seen lots of overall improvement with respect to code organization,  design patterns, testability. With that said I understand the sentiment of this article. The ground around javascript is shifting with respect to tooling and frameworks. Granted the core concepts in many of the js frameworks are similar but, I find it reminiscent of the Linux desktop environment changes in the late 90s or even the first js library wars in the early 2000s but, even more extreme. Things in the space are “generally” moving in the right direction in terms of good ideas being carried forward but, on the whole, more than a fair bit overwhelming and frankly a mess. The best way I can think to describe it is “JS Darwinism” or “Survival of the Fittest Javascript Framework”

 

Conclusion

Javascript is developing into a force of nature in programming. I’ve seen of javascript go from being perceived as a “hacky” glue language to “fad” to a full-fledged development stack in the span of my 8-ish years as a developer.  While javascript doesn’t yet have a  perfectly smooth developer story, like it or not javascript will be the future. As the browser’s capabilities improve so to will javascript but, the framework wars will wind down, and all the tooling options with it. When that happens they we all will have a much better ecosystem and a better javascript because of it.

 

Do You Agree?

Do You Agree?

Am I wrong? Is the javascript fine as is? Is it the future of software development?

All this is just one dev’s opinion. Tell me what you think in the comments.