After completing the Thirty Day Challenge, I opened up my Python books, took a look at Django for web development in Python, and took another look at React JS. The React pursuit has taken me into another dimension. Web development has changed dramatically since becoming a professional Java developer in 2005. This will be the first in a series of articles about my transformation into the new dimension.
Before I became a software engineer, the whole purpose of writing code was to solve problems. There was a need to monitor applications and scrape logs on several servers. Nagios was perfect, but I had to write just about every plugin and since logs create history issues when a human isn’t there to monitor 24/7, I created specialized triggers that needed manual resetting whenever a log entry showed a temporary problem. Intermittent problems are the hardest to troubleshoot. Analyzing patterns provide probable evidence to help pinpoint the problem. Customizing existing tools without modifying the core tools became a specialty I loved doing and I thought that becoming a software engineer would better suit this endeavor. I was wrong.
The tedious work with Java, Tomcat, Apache and ExtJS broke me. It wasn’t the idea of having to write code every day. It was losing sight of the main goal when each one of these tools had issues of their own. Creating virtual networks was a nightmare – they didn’t work all of the time. It seemed like even written instructions weren’t guaranteed to work. Little did I know that new tools were coming that would replace these, tools that allow the developer to focus on developing. Below is a list of some of the tools that I’m learning, focusing on the development as a whole and seemingly better designed as if they answered the call by developers to integrate things right.
Webpack – A Node package that is designed for use in a development environment to build great websites. Tools have been designed for this, such as the Webpack Development Server; there’s no need to run LAMP or WAMP for developing with Webpack. I’m just starting to learn how to use it. I’ll write more about it in the future.
Pug (Formerly Jade) – Pug turns HTML coding into a programming language with conditional statements, loops, includes and so on. This is perfect for tools such as Webpack running in VSCode. Pug files can be used as templates with include files which can be written into other files and save from writing repeated code. While back-end tools can generate HTML, building the static HTML this way saves the back-end server to process more requests.
SASS – This is like Pug for CSS in that it is a preprocessor for writing a friendlier style sheet code. It is Node-friendly as well.
All of this is bringing back the passion I possessed in the mid-Nineties when it was all new to me. Python and Django are coming along too, but now the focus is to separate front-end and back-end servers and use RESTful APIs extensively in web development. The tools mentioned above are for front-end development. There are many reasons to minimize server-side processing; I don’t think Facebook would look good with latency issues from serving millions of users in instances. Passing the work to the web browsers make more people happy (even when their tablets crash) then waiting and waiting for the server to respond when overloaded.
I’m looking forward to learning more and writing about it.