The usefulness of exploring so-called useless languages

On social media, particularly X (Twitter) and Reddit, I see posts about new programming languages and frameworks that seem to come out of nowhere, making new promises, and developing new communities. The ones I have been keeping an eye on the most are Vlang and Bun, and while I haven’t particularly had the chance to try out either in any serious manner yet, the “BEP stack” (Bun + Elysia + Prisma) seems like it would be a fun thing to try out. But what I notice is that frequently, there is a hype bubble around their announcement, and then the release doesn’t turn out perfectly, so all that built up praise and hype turns to annoyance and doubt. 

However, they do attract interest for a reason. For some, they promise to fix an issue that their current go-to has. For others, like myself, they just seem intriguing and fun. Something new to figure out, built by a small community for specific reasons rather than a corporation going for as wide a reach as possible. The main issue is that there doesn’t seem to be a lot of reason to learn these uncommon programming languages, new or old. Shouldn’t one focus on what is most used and marketable in the current day? 

The continued interest for a variety of reasons shows to me that no, there is some reason to take a look at these languages, whether they be those claiming to be useful and solving existing problems, or esolangs explicitly trying to be as strange and hard to use as possible. So, what are these benefits, exactly?

(Bun via Vishnu Sivan / dev.to)

Reasons to Learn

Increasing Fluency

Perhaps the greatest argument for learning these languages, besides just getting lucky and getting ahead of the curve on the next big thing, is increasing your overall programming fluency. Just like with learning a human language, the more you learn and practice, the easier it is to learn others, especially if they’re related. As every language has its own particularities and ways to approach and solve issues, it stands to reason that the more languages you learn about, the more logical ways you’ll learn to approach computer problems. With this increase of skills and knowledge of how to solve issues and approach aspects in different ways, also comes a deeper understanding of the underlying mechanics of the code and concepts. Essentially, every programming language learnt helps to become more fluent in the language of computers overall.

Marketability

There will always be a demand for those with knowledge in multiple languages, but what if those languages are outside the common tech stack? As mentioned above, knowing multiple languages of any sort makes you a better programmer overall. It also shows your capability and willingness to learn more languages, especially if you show personal interest in them. Employers are typically interested in those that have shown they have the ability to learn multiple languages, especially those related in some way to ones relevant to them.

That being said, there are markets for niche languages. Cybersecurity is a bigger one: Go, Rust, Nim, and DLang have become common languages in malware, and other uncommon languages are at risk of being used as there are ways they can bypass existing defenses more easily. There’s also the field of legacy upkeep, if you have an interest in historical programming languages. COBOL is a big example of an important, but no longer commonly learned language, that is still seeing jobs pop up as more of the only people who know it retire.

(COBOL via IBM Mainframer)

Community

Alluded to above, connecting to the community is another aspect that these languages can help you with. Smaller communities like this can be easier to join and make yourself known in as well, since there is less of a sea of people to fight against on platforms discussing the topic. There is often many opportunities to get engaged as well, whether being able to participate in an open source language’s development, submit bug reports, or just discuss updates on official forums. Since these are often community-led projects, supported by engaged and tight communities, it is a great way to get involved.

Even for those who are not at the level of comfort or skill to be able to contribute to the project, the simple fact that there is less mainstream tutorials, help, and AI support for these projects often necessitates reaching out to real people for assistance. This is a great way for many people who don’t know how to engage with a community yet to be forced to get themselves out there and into the conversation, whether on social media, Github, or an official forum.

(GDScript Discussion via Godot Forums)

Fun and Engagement

Finally, if there’s one thing to say about the tech field, it’s that it’s a bit overcrowded. Learning something that you think sounds interesting but uncommon makes you stand out…but also is just something fun for you. Burnout is real, and sticking to the same language and types of projects is boring. Pushing yourself to engage in something you just find intriguing opens you up to new challenges and opportunities that you will enjoy doing, engaging you and expanding your skill set while keeping things fresh. The more you enjoy learning, practicing, and expanding your portfolio, the more you will keep up with it.

I’ve seen it myself, with people who decide to look up the most common tech stack and brute force their way into the industry. No matter how intelligent they were, they did not have a particular interest in the scene, and gave up. The ones I know who’ve gone through the process to get themselves a career are the ones who will happily show off and discuss some new project they made after discovering some strange new framework they thought looked fun. If you can’t have fun in your programming life, you’ll struggle to find the desire to engage and broaden your horizons. So go ahead, go try out that niche program. It might not change the world, but it can help you develop.

A Proven Example

Now, if you’re not convinced, here is an area that has been studied: programming languages for kids. Though deeply simplified and not of much use outside their specific purposes, they have been extremely successful at getting children to quickly move onto more advanced languages.

Perhaps the most common language specifically targeting children is Scratch. Its website says that its goal is to inspire people to think creatively, reason systematically, and work collaboratively. It is designed with the purpose of teaching children the logic behind how “computers think”, and has been very successful at this goal despite being a visual, drag-and-drop language that focuses on creating visual novels, games, and animations. Another aspect is the forums and community – Scratch encourages sharing code, projects, and problems in a community forum, teaching the importance of helping out and engaging early. 

(Scratch 1.4 via Consolarium Code Club)

I know Scratch was taught to us when I was in school, before I really knew what a programming language was. It was just seen as a way to talk to a computer and get it to do something you wanted, but this understanding of the logic of how the computer “thinks” allowed for easier jumps into other, more detailed computer projects in later grades.

Other popular restrictive languages have followed this sort of thinking. Luau and GML Code are good examples – while not targeted specifically at youth, they are still simplified versions of existing code (Lua and C# respectively), meant for very specific purposes (game modding and development), and are common languages for teens to learn. From my own experience, learning Luau and jumping to Java, or learning GML and jumping to C# are very common due to connections the communities have, and those who have learned the “simple” code first had a much smoother beginner experience with the “proper” languages than those who jumped straight in.

(GML Visual Overview via GameMaker Manual)

What does this show, in the end? Engaging in niche languages that don’t have wide usage is still useful, as they are proven to increase fluency and introduce people to close communities. These skills and events are beneficial no matter your age. So get out there and learn what seems fun and engaging to you, and pair that up alongside important staples, to keep yourself well-rounded, engaged, and excited about what you’re doing.

Or study COBOL and get an elusive senior development position. Your choice.

Sources and Further Reading


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *