March 30, 2023
The Problem with JavaScript
Have you ever found yourself constantly learning new JavaScript frameworks, only to find them outdated a few months later? Have you ever struggled with the complexity and inconsistency of the language itself? If you’re a developer, chances are you’ve experienced these frustrations at some point in your career.
Why do developers love JavaScript?
JavaScript has been a staple in the world of web development for over 25 years, and for good reason. Its versatility and power make it a go-to language for developers of all skill levels.
JavaScript can run on all major web browsers, as well as on the server side with Node.js, making it highly accessible. Furthermore, it has a rich ecosystem of libraries, frameworks, and tools that make it easier to build complex web applications quickly and efficiently.
The highly dynamic nature of JavaScript allows developers to build and modify applications in real-time, making it an ideal language for building responsive and interactive web applications. Its longevity has allowed it to mature and evolve, with new features and functionalities being added regularly. This means that developers can continue to push the boundaries of what is possible with JavaScript, making it a highly exciting language to work with.
In addition to its technical capabilities, JavaScript also has a low barrier to entry, making it accessible to developers of all skill levels. Whether you’re a seasoned pro or just starting, JavaScript is a language that is easy to learn and understand. This makes it an ideal choice for companies looking to hire new developers, as well as for individuals looking to expand their skill set.
JavaScript is likely to remain a dominant language in web development for years to come. So whether you’re building a simple website or a complex web application, JavaScript is a language that should be on your radar.
What’s the problem with JavaScript?
One of the biggest issues with JavaScript is the constant need to keep up with the latest frameworks or libraries. It seems like every other week, there’s a software tool that’s being hyped as the next big thing, and developers feel pressured to learn it. This is problematic for two reasons; not only do you have to constantly spend time learning the latest technologies, but you also risk investing in tools that will soon become outdated.
For instance, AngularJS was once a popular framework for building web applications. It has since been superseded by Angular, a complete rewrite of the original framework. This has caused confusion among developers and required them to learn a completely rewritten framework, rather than just updating their knowledge of the previous version. Additionally, many JavaScript frameworks are not intuitive or easy to use. They often require a steep learning curve and can be confusing, even for experienced developers. This can result in frustration and decreased productivity.
Why is there constant hype around the latest frameworks and tools?
The ongoing development and hype surrounding the latest JavaScript frameworks and libraries can be attributed to:
- the rapid evolution of technology,
- competition among companies and developers,
- and marketing efforts.
This constant stream of new tools can be both a blessing and a curse for developers. On one hand, it allows them to take advantage of the latest capabilities and technologies. On the other hand, it can create a sense of overwhelm and make it difficult to keep up.
The constant need to learn new frameworks and libraries can also lead to frustration and decreased productivity. Additionally, it can lead to the risk of investing in tools that will soon become outdated. Therefore, it is imperative for developers to carefully evaluate the tools and technologies they use, considering factors such as productivity, developer happiness, and sustainability. This will help them make informed decisions and find a balance between staying up-to-date and using proven effective tools.
What’s the solution?
The solution is simple: follow the scientific methodology.
Science has been doing this for thousands of years and it’s a very good way to learn from the past and reuse information.
Here’s a little guideline about how to choose a technology and/or a framework:
1) Run experiments
Scientists do not simply “believe” or follow the hype; they conduct experiments and work with falsifiable data to arrive at the truth. They perform experiments, verify the numbers, and then proceed.
Isaac Newton famously said, “If I have seen further it is by standing on the shoulders of giants.” By building upon the work of those who came before them, scientists make significant contributions to our collective knowledge and understanding of the world around us.
This is what Newton did; he utilized all the research that preceded him to conduct his studies. However, we are not doing the same in the tech industry. That is why we continue to make mistakes and suffer without learning from the past.
2) Assess the code and trust your instincts
Evaluate:
- the amount of boilerplate code,
- the level of effort required to achieve the desired functionality,
- and the quality of the code itself.
If an approach feels intuitive, compatible with your preferences, and something you would enjoy working with, then that technology is likely a good choice.
3) Try to understand its source code
The most critical step is to comprehensively understand the source code.
If you discover a valuable NPM or PHP library, you may modify and add new features by forking them because they are open-source. Open-source means that code is out in the open for everybody to read, understand, and change. That’s also a big part of the open-source culture outside of the corporate-owned frameworks. But we cannot contribute to the current “hyped” frameworks, and that’s a big problem. That’s why it’s important to try to understand the source code of a framework you want to learn.
4) Don’t follow the hype
In the world of software engineering, it’s all too easy to get caught up in the hype of the latest and greatest framework or tool. However, as the saying goes, “the grass isn’t always greener on the other side.” It’s essential to consider the long-term effects on productivity and happiness, rather than blindly following the latest trend.
Although it may be tempting to switch to the newest and shiniest tools, this can lead to a constant state of learning and re-learning. Such a state can be overwhelming and ultimately decrease productivity. In addition, constantly switching to new tools can contribute to frustration and decreased job satisfaction.
In short, it is crucial to take a step back and consider the long-term effects of our choices in software engineering.
5) Prioritize productivity
Contrary to popular belief, being “uncool” can be advantageous in software engineering. Avoid blindly following trends and instead apply the scientific methodology to evaluate the tools you use. Prioritize productivity, which means creating value sustainably and efficiently over time. Your output should not decrease, and the quality of your work should remain high.
Using metrics such as the number of questions on Stack Overflow or the number of issues on GitHub to determine the quality of a framework can be misleading. Instead, focus on selecting an intuitive tool that you can use immediately and understand easily. The best frameworks are often minimal and provide a solid foundation that allows you to add your architecture and approach. Avoid frameworks with too many options, as this can lead to confusion and a lack of focus.
Obsessing over hype can be detrimental to the tech industry, wasting time, effort, energy, and money on tools that may become outdated quickly. It is crucial to avoid being forced to use outdated tools simply because they are trendy. Ultimately, prioritizing productivity and sustainability in your work will lead to long-term success and fulfillment in your career as a software engineer.
How to build a better future for software development
While it can be difficult to effect change in large corporations with massive profits, small steps can lead to significant progress in the long run.
If you’re in a leadership position, you have a unique opportunity to influence change. You can start by educating your team members and encouraging them to prioritize productivity over hype. By fostering a culture of critical thinking and open-mindedness, you can help create a workplace that values innovation and sustainability.
Even if you are not in a leadership position, you can still make a difference. You can raise awareness and build a community of like-minded individuals who share your values. By sharing your thoughts and concerns on social media and online forums, you can connect with others who are passionate about creating positive change in the tech industry.
To wrap up…
For developers, navigating JavaScript can be challenging due to the language’s constantly changing frameworks and libraries, as well as its inherent complexity and inconsistency. It’s easy to feel overwhelmed by the pressure to constantly keep up with the latest tools, which can lead to decreased productivity and job satisfaction.
However, there are ways to make the process easier. By choosing intuitive and easy-to-use tools and frameworks that have proven to be effective over time, you can increase your productivity and long-term job satisfaction. In addition, evaluating different frameworks and tools scientifically can help you make informed decisions about what will work best for your projects.
It’s important to prioritize the long-term effects on productivity and happiness rather than just following the latest trend. By doing so, you’ll be well on your way to finding the right tools and technologies that will help you be more productive and satisfied in your work.
Ready to kickstart your career in software engineering?
If you’re ready to start your new journey in tech, we welcome you to Coyotiv and can’t wait to have you on board. You can book a video call with one of our team members or just fill out the application form and we will get in touch with you. You can also subscribe to our newsletter to stay up-to-date on the latest industry news, trends, and updates from Coyotiv. Keep in mind, one of our team members is always there to answer your questions through text in the live chat!