It was my third hour staring at the screen without having made any changes. I had combed through each line of code multiple times – hadn’t I? – and yet I still had not found the error that was preventing my program from executing. Finally, I cracked and sent my intimidating teacher an email pleading for assistance. At that point, I could not care less whether he got back to me in time to submit the assignment; I just wanted to know I had not been defeated by a measly 50-line program. I continued to feverishly analyze my code and refresh my inbox until, at last, he had replied. His answer was one line: “There is an extra space in the exponent in line 19.”
Laughing and crying at the same time, I made the edit and successfully ran my Mathematica program for the first time. It was the day I vowed to never mess with such a seemingly capricious language as Wolfram again. Of course, since I had to finish the course, which was a course that focused on Mathematica, my resolution did not last long, but the frustration of that day has stuck with me. I am now grateful beyond words any time I am shown or figure out how to implement a tool for code quality control, because I am well aware of the maddening alternative.
I was elated when ESLint was introduced to me. The green check mark of ESLint has become a soothing sight as I lumber through programs in IntelliJ and JavaScript. Although getting ESLint to function was also a challenge in and of itself, now that it does its easily fixable red warnings help me feel confident in what I am producing not being too far off the beaten track. When I do not yet feel facility for a new skill and have no feedback on a task using that new skill, it can be tempting to give up until I am in the position to gain feedback to ensure that I am not putting energy into something that will have to be scrapped entirely. ESLint pushes me, and perhaps other new coders in JavaScript, to continue trying to solve problems on my own with its gentle assurance of syntactically, if not semantically, correct code.
ESLint has also assisted in concreting some of this new programming language’s conventions in my mind. For example, my default variable declaration keyword is “let,” because I was not positive about the difference between “let” and “const” and the former seemed more flexible. ESLint has helped me define the distinction and begin to use “let” and “const” in their respective appropriate conditions, as it will remind me when a variable I automatically declared with “let” has not been reassigned throughout the program and should be declared with “const”.
I would recommend ESLint to any other new JavaScript programmers and look forward to what else it will help me accomplish and learn in the future!