Just a kid with a computer here. I am familiar and have reached a reasonable level of fluency with javascript and python, with typescript being a somewhat satisfying switch I made.
It’s been 4 years, I haven’t touched another language. I wanna study something future proof and genuinely helpful. The reason I never went beyond js and py was because I already had everything I needed, I could make anything I wanted. I really want to dip my toes in the strong programming waters.
Can you suggest a language?
What programming language you should pursue learning really depends on what you’re trying to create, what problem you are trying to solve, what career you’re pursuing, etc.
From your criteria of future proof and genuinely helpful, I would suggest COBOL! Though full disclaimer, if you look at my post history, well… clearly I have some bias here!
In all seriousness, COBOL certainly meets the criteria of being a future proof language. COBOL continually stands the test of time, whilst many other languages have been born, been used, and have died within the 64 years of COBOL’s existence. That’s because, ultimately, COBOL is great at what it does in the industries that it is used in. Furthermore, COBOL uses English-like syntax, meaning these decades old COBOL applications with varying levels of documentation are still able to be maintained since COBOL code is inherently self-documenting.
People have always joked about how COBOL is a “dead” or “dying” language. But this just… isn’t true. In the 70s C/C++ was meant to kill COBOL. In the 80s it was Pascal. In the 90s… Java. And yet here we are in 2023 and COBOL is still alive and kicking no matter how much people want us to believe that it is not. There is every reason to believe that COBOL will continue to thrive long into the future.
Is COBOL a genuinely helpful language? I’m not sure if you’re referring to it being helpful for yourself, or helpful to other people. But there is value in learning COBOL just to understand why and how the things we use in our everyday lives work, such as when we pay for something electronically. It would be very hard to go through even one day without using a COBOL application. Also, there is always a demand for programmers trained in COBOL to maintain and modernize existing systems.
I have a list of beginner COBOL resources over here if learning COBOL sounds interesting to you!
Here is some additional reading on why it is worthwhile learning COBOL:
COBOL is probably the last language I expected to recieve as a suggestion, other than esolangs. I’m told COBOL doesn’t have fundamental functions like recursion and there’s really no support or libraries for it. I don’t see this being really practical in the real world.
With that being said, there are quite a few jobs for it. It’s certainly an interesting suggestion but I’m afraid I can’t really get into this without familiarizing myself with more strongly typed languages.
I dunno if this’ll really be of the same level of demand for the next decade or two but it’s certainly opened my eyes about it. I had no idea a language like that would be useful till date.
Edit: I’ve found out that there are frameworks and libraries for COBOL. Damn.
Sorry this reply is late! Just wanna add a bit more context now I’ve read your reply!
Most people’s understanding of what COBOL can and can’t do seems to be based on the 1985 COBOL release. And to be fair, when looking at a old legacy COBOL application, it will most likely be a COBOL 85 application.
However, COBOL has had newer releases since 1985. As of 2002, COBOL actually does have recursion. COBOL gets updated roughly every decade to include new programming concepts.
Though in practice, most companies which have COBOL applications will use some kind of dialect which may cover the features that COBOL is missing which is needed for their specific purposes. These dialects get updated much more often than the standard COBOL release. Companies will often pay the maintainers of these dialects to add features they want implemented as well.
Working with COBOL isn’t so much about writing new COBOL applications, rather it’s about modernizing existing ones. For example, reusing the existing business logic contained within COBOL programs written decades ago. Though that said I believe it is estimated that there are 5 billion new lines of COBOL still being written every year!
But certainly, knowing COBOL isn’t often a prerequisite for entry-level COBOL positions since most companies will assume that younger programmers will not have learned it, and will invest the time into training their new employees in COBOL as well as the specific dialect they use, if they use one. For me, I got my graduate position working with COBOL with no prior COBOL experience.
Nonetheless, I’m glad I managed to pique your interest, and good luck in your future learning endeavours no matter what languages you decide to pursue! If I was going to recommend a different language to learn, I’d suggest Java and C# like many other people have here in this thread. I work with C# extensively alongside COBOL. Both Java and C# are ones you’ll very likely encounter if pursuing a career in programming.