I have only been working with JavaScript for a couple weeks, but it has already left a considerable impression on me. So far, my perspective of the language is quite positive in comparison to my current knowledge in programming languages, which is limited to C and C++. I would say that I am proficient with those two syntaxes and I have some experience with Python and Java. Comparing JavaScript with C and C++, I think what grabs my attention the most is how forgiving it can be. For example, formatting and continuity are very crucial in C/C++. If a code is just missing one semicolon, the file will fail to compile. On the other hand, in JavaScript there has been a few times where I catch a missing semicolon, but only after I have already tested the code several times. If I had to choose a metaphor for the languages, I would say that C is like one of those stereotypical strict Asian parents who get angry if their child brings home an A- on an assignment and JavaScript is more like the grandparents who are just proud you’re learning and trying your best.
I think it is too early for me to definitively state whether I think JavaScript is a good or bad language. Although, with what I know so far about the language, it leads me to believe that it was developed with some sense of ease-of-use; moreover I think that could be a step in the right direction because it could attract new users to programming. I could also see how the flexible formatting and leniency as stated previously, becoming an issue. Since the size of files for coding tend to increase with more complicated problems, it could become more difficult to troubleshoot and locate the lines where errors are, if something as simple as a missing semicolon was not caught early on. A better example would be how functions can return various types of objects. Since JavaScript does not require the user to specify the type of object a function returns, the program may error out if it receives an unexpected value or incorrect type. Overall, I am enjoying learning the new language and as many of its features have benefits and potential setbacks, I hope that JavaScript will continue to prove its superiority.
I think it is also important to include some information about athletic software engineering and the role it plays in how I learn and practice JavaScript. Rather than the traditional experience of learning new functions and features of a programming language, and then spending around hours in a lab applying what we learned to a mini-project type assignment. Athletic software engineering is more geared toward active participation when learning and doing programming ‘workout’ sessions instead of the usual lecture class. In most of the software classes I have taken before, the objective seems to be to complete the assignment, which will show whether or not you comprehend the material. The goal with athletic software engineering is to see how quickly you can program a solution. Since the focus is more on speed, some may believe that it can be correlated with lower quality work, but if the program still runs effectively and accurately then faster times actually indicate better programming skills. I included the learning style that I am using since I believe it is helping me absorb the content better and it will benefit me in the long run. Although it can be a little stressful at first, I think this take on learning can be successful since it challenges the student to rapidly perform the learned skills rather than just knowing how to solve the problem.