My Evolution with Javascript

Start from the beginning
                                        


At initialization, all three sections were DIVs that were fully populated and scrollable. Section A and B had selectable rows and any new selection row in A or B would select a new row in the Results C section, or just several cells in a resultant row.

This was such a simple interface that we thought we could find a simple elegant solution. We already had a data layer interface on the server that could supply any data need on a selection change.

Our solution? Using AJAX via XmlHttpRequest.

Javascript networking capabilities was brand new, being released in 2002, but already there were numerous developers and groups creating JS framework and object packages. With our first application, we employed the low level XmlHttpRequest function utilizing only GET functions, since nothing could be changed by the user, as per requirement. We developed a non-RESTful set of calls, which returned in the newly developed session API methods instructions to "change to Row X" or update "Cell X, Y, Z in Row X", for example.

When we had our development completed, I began cursory testing on the new app, selecting random rows from Sections A or B. I could not believe how blinding fast the updates in Section C were! I had to do double-takes when only specific cells were changed to see if they really were updated. This new paradigm of calls through the JS code, I knew right then, was going to be big. Real big.

I began surfing the web to see if other developers were as happy as I with this new paradigm of programming. There wasn't much, but I did find a group out there that was trying to promote JS network programming, call SOFEA, which stood for "Service Oriented Front End Architecture". It is also called SOUI or "Service Oriented UI"

Dojo Toolkit

Our second application was implemented using one of the new frameworks out there, which could cleanly wrap the XmlHttpRequest() function and handle error cases more cleanly. Dojo is an Open Source toolkit built by a host of dedicated developers which still exists today, version 1.17 (I was likely on v1.4 back then). Additionally Dojo allowed users to simulate object-oriented and behavioral methods for the various UI widgets on the screen. While not as fast as going pure XmlHttpRequest, it was still amazing.

What I didn't know was this: We stumbled upon the Single Page Application (SPA) paradigm in 2005

Being Held Back by the President of my New Company

In 2008, our little startup where all of the above occurred was acquired by Medidata Solutions. One day a group of strange people came into our conference room to announce that we were being bought, and as part of the due diligence process, I demoed these new JS based products to Glenn DeVries, the president of the company (and de-facto CTO and head architect).

I'm not totally sure if he liked what he saw or not, but he did encourage me to discuss my use of the Dojo framework with the tech leaders in the near future.

After our purchase / merger, we began a process of re-tooling and redesigning all of the original products into the new company design and philosophy. The current architect in our startup, Peter Abramowitsch and I had some deep dive technical brainstorming sessions with Glenn. Guess who won those arguments?

Glenn insisted that all new UI development would have to be done using Ruby on Rails (remember, this was 2009), and nixed the idea of a SPA / JS design for the UI. In fairness to him, as a leader, he knew the costs that higher maintenance of products would affect the company bottom line, and Ruby on Rails, at the time, was the leader in Test Driven Development, with their rollout of rspec and Gherkin based cucumber test frameworks. In a summary lengthy email to me, Glenn said basically it's my way or the highway, but I did respond with," ok, it's your company, but there's a future here with AJAX and JS frameworks on the client side". Little did I know...

Another time, during a reveal, I remember Glenn and one member of our team discussing how much they didn't like Javascript, citing its loose type-ness and weakness in error handling. I was a bit perturbed by their comments, but I kept my mouth shut. Arguing with the big boss(es) too much doesn't lead to very useful results.

Of course, UI development in the new applications still incorporated a good bit of Javascript for user validation and complex interactions. Early Rails used the prototype JS framework, which was such a dog that we ended going with jquery, speeding the product up considerably.

Vindicated in the 2010s

Years went by, and I eventually moved onto the server side, hung up my coding hat, as being an engineering director for distributed services for multiple products took all my time. And really, I was happy about that – over time, I noticed the endless niggles and bugs on the UI side were always the last obstacle to products releases time and time again, and I was glad to not have to deal with those headaches!

Then around 2012, I heard rumors about a new product being built in the NYC office using a whole new, huge Javascript framework called Angular, developed by Google. Not only that, the company was moving to Single Page Application paradigm whenever possible. I was so pleasantly surprised – Javascript as a core level framework for application development had finally arrived!

I told the UI teams over in California about this new change and it appeared that they already had begun thinking about the next product coming out using Angular. In managing that product's development on the server side, I did hear complaints about the ramp-up time that Angular had, but the team persisted and the new SPA product was finally released a couple of years later.

By then, the difficulties surrounding Angular became quite known in the UI world, and any cursor internet search would reveal numerous Javascript frameworks vying for the hearts and minds of web developers. Around 2015, the wave of acceptance of React.js became a major shift in the world of UI development, and the company adopted this as the chosen framework for all current and future development.

Summary

I've since retired from the work world, but I felt like I grew up with Javascript, evolving over time, from an HTML add-on for user validation to becoming the most popular language used in the world of software development.

I am happy for it!

My Evolution with JavascriptWhere stories live. Discover now