DEV Community

loading...
Cover image for What are the worst programming languages that nobody should learn?

What are the worst programming languages that nobody should learn?

jmfayard profile image Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ ・Updated on ・2 min read

I see this question coming up all the time:

What are the best programming languages that all developers should learn?

I have tried in the past in the argue that there is in fact not such a thing, but many good options in general, and more than one good options for you in particular, depending on what your context is.

I have to admit that I failed to convince anyone.

People still really would love to know what is the best programming language that all people should learn. And that makes sense. Honestly if there was a right answer, I would also love to know it.

The challenge

It might be much easier for you though to answer the reverse question:

What is the worst programming language that nobody should ever learn?

Is it Java, JavaScript, C#, CoffeeScript, Objective C, Perl, PHP, Cobol, Erlang, Brainfuck, F#, ...?

Please pick the one you think that it definitely never makes sense to learn it.

And me or my smart readers will play the role of the devil advocate that find a good scenario you when it actually would make sense to learn this useless language.

RULES: be polite. Insulting other developers community is not right.

Update: challenge results

The evil advocate was on a good streak to defend the case to defend BrainFuck, Python, Cobol, CoffeeScript, etc...

But then readers began to be always more astute and @daveford nailed it.

So this is the accepted answer.

The worst programming language to learn is the language that you have no motivation or desire to learn. It will be a miserable experience causing you to dislike the time it takes and the language.

Where to Go From There

Pick something that sounds like a sane choice for you and iterate from there. Relax the fuck out from the impossible idea to find the "correct" solution.

If for reasons you want to receive updates from me, you can follow me on dev.to or enter your email here https://jmfayard.substack.com/

Discussion

pic
Editor guide
Collapse
marcellothearcane profile image
marcellothearcane

Obligatory brainfuck

Collapse
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Nobody should ever learn brainfuck?

en.wikipedia.org/wiki/Brainfuck

I think that is wrong and here is my counter-argument.

Brainfuck is a legend among developers. Its name is brillant. Lots of developers have secretly dreamed of being good at Brainfuck. What if you could actually master just enough of Brainfuck to impress your friends? I think that would be a lifetime asset to connect with fellow developers. So much opportunity to make them laugh if you know a bit of brainfuck. Really worth learning if that motivates you.

Collapse
xanderyzwich profile image
Corey McCarty

I agree that obscure/obfuscated languages can be as helpful as learning advanced mathematics. You will get a more essential understanding of what a programming language is or can be.

Collapse
joeclarkphd profile image
Joseph Clark

You also would have to make some hard decisions about putting it on your CV, or mentioning it in an interview.

Thread Thread
ghost profile image
Ghost

if a company reject you because you have brainfuck in your CV, they don't deserve your awesomeness, it may even be a great filter, if you don't appreciate that someone took his or better yet her time learning brainfuck, don't even call me. :D

Thread Thread
joeclarkphd profile image
Joseph Clark

I think you have overlooked a part of the issue...

Thread Thread
ghost profile image
Ghost

the "fuck" part?, my same argument apply, if an adult is not capable to understand the difference on context of "I'm gonna f*(K you" and "I know brainfuck" probably don't have a lot of common sense, I wouldn't want them as my employers, of course all depends on how tough is the work market, if things are bad I'll work for anyone who pays :)

words are tools, no matter the word itself is the intent and context what can hurt. There are always people looking to be offended to feel some sort of moral superiority, but I don't care about them, those "moral trolls" will find something to be offended anyway. :)

Thread Thread
joeclarkphd profile image
Joseph Clark

I know this is a website for the young, but you will find that gratuitous cursing doesn't impress anyone over the age of about 20. It's not about morality... the problem is that using it makes you look like a fool, and unprofessional to boot.

Thread Thread
ghost profile image
Ghost

Is the name of the programming language, is not gratuitous, is part of a noun refering to a specific thing, and I would say it doesn't impress anyone over 8.

Is not just being impress by it what is childish is giving so much importance to something so irrelevant.

Discard someone for a job because of it to me is childish: in one hand you have a person motivated and interested enough to learn something that will probably will never give any profit, just for the love of it, but discard her/him for saying the name of a PL with a bubu word, that is ridiculous and childish, if I can avoid an employer like that, I will.

In this case is not about expressing in a offensive or even in a vulgar manner, is just a name, so you'll call it "Brainstuff"?, "Brainthingy"?, what if the interviewer doesn't know about it and is interested?, they won't be able to look for it, you just took the funcionality of a name, because of the form, that fundamental view would be a red flag to me.

My point is, of curse if you can't give an interview without cursing like a sailor, will get you nowhere, this is not the case.

If an interviewer curses, shows lack of interest, lack of self control or education; either way, is a bad thing; someone who mention that s(he) learned Brainfuck, doesn't show any of the before-mentioned attributes. Not being able to see the difference is, to me, a problem in someone older than 8-10 years old.

PS: And being young has nothing to do with this (many wouldn't consider me young), and being condescend or dismissive because of age is not professional either; in my time reading posts and comments here I never got the impression that their users are "too young" to understand that cursing is not funny, and you shouldn't do it in an interview. Specially because to me "too young" would be about 8-10 not 20.

Collapse
marcellothearcane profile image
marcellothearcane

I agree that it is a good idea to learn - you have to understand the very basic principles of computing!

But it still is not the most pleasant to code in 😡

Collapse
eljayadobe profile image
Eljay-Adobe

I prefer to call it B****fuck in order not to offend those with delicate sensibilities.

Thread Thread
ghost profile image
Ghost

they will probably being too busy looking for other stuff to be offended, for example, those people would really enjoy being offended by Spanish language, every noun has gender!

Collapse
thorstenhirsch profile image
Thorsten Hirsch

CoffeeScript. It's obsolete and will never return. And you can migrate existing RoR projects to modern JS.

Collapse
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Ah that's an interesting one, because you have really good reasons to never return to CoffeeScript.

Could it be the case though that nobody else would never be right to learn CoffeeScript?

en.wikipedia.org/wiki/CoffeeScript

The evil advocate has found this scenario:

Alice wants to learn programming. Specifically front-end programming. Her friend Thorsten tell her that the standard of the industry today is JavaScript, and probably TypeScript if you care about better productivity. And he is right.
But Thorsten lives in a different country or is too busy to help her. On the other hand, they have a friend called Charlie. Charlie is not a professional developer, he teaches programming concepts at the university. Charlie really doesn't like JavaScript, whose design was rushed in just ten days before it was shipped in the Netscape 1.0 monopoly. True, JavaScript is the industry standard, but that doesn't matter a lot for Charlie because he teaches programming concepts. And he is really good at that.
Charlie is ready to help Alice. As an academic, he is a fan of Ruby. He was hoping that CoffeeScript would clear up the JavaScript mess. That didn't happen for the industry at large, but CoffeeScript is good enough for Charlie's needs. And he is eager to share what he knows..
Thorsten thinks a bit. Learning front-end programming is tough when you are alone. The hard part is to learn the concepts. Charlie is great at that. He would love to help Alice with learning front-end concepts, if he is allowed to do it with CoffeeScript. Heck isn't that the most important part right now for Alice? Once she knows the concepts, she can switch to TypeScript really easily.

What advice would you tell Alice in this case?

  • Learn CoffeeScript with Charlie
  • ..or learn the right programming language alone?
Collapse
avalander profile image
Avalander

To be fair, your argument sounds to me like someone might like or use it. If accepted, this argument trumps anything, so it's pointless to propose any language in this discussion because someone might like it.

Will learning CoffeeScript be a terrible mistake that will set Alice years back in her learning path? Most probably not. She will even learn useful concepts and have fun with her friend.

Are there any employment opportunities with CoffeeScript? I'm pretty sure that at leas one or two companies still use it in some product.

Will she have to learn alone if she doesn't learn CoffeeScript with Charlie? That's her choice, but there are plenty of online communities and meetup groups where she can find other people to learn with.

Is CoffeeScript a reasonably good choice if the goal is to become a professional developer? Not really.

This, of course, begs the question of what is the context of the challenge. If we are trying to find the worst language that nobody should ever learn we either must define some constraints (the worst language for what?) or accept that no such language exists because I just want to have fun is as a valid argument to choose a language as any other.

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Hello @avalander I agree with all your points.

To be fair, your argument sounds to me like someone might like or use it. If accepted, this argument trumps anything, so it's pointless to propose any language in this discussion because someone might like it.

To be clear, my own answer to What are the worst programming languages that nobody should learn? is ... 42.

You cannot answer that question unless you can be in the context of everyone... which you can't do unless you are God.

My point was people are wasting energy because they would really like to know the correct answer to the reverse question.

What is the best programming language that all developers should learn?

And the bleak truth again here is... again 42.

It's the wrong question to ask.

Pick one that sounds fine in your context and get started.

Collapse
thorstenhirsch profile image
Thorsten Hirsch

That's a tough scenario. ;-)

But challenge accepted. Avalander already has very good arguments in her reply. I'd like to add that Coffeescript has a rather unique history. It's not so much a programming language of its own, but rather a syntactic sugar version of Javascript. It was created by Ruby-on-Rails developers specifically "in an effort to enhance Javascript's brevity and readability" (Wikipedia), to make it more Ruby-like. You've got to know that his was in a time when you didn't have separate developers for frontend and backend and there was no ES2015.

In other words: Coffeescript is the product of backend developers, who hated Javascript (but had to use it as the output of their transpiler), and thought that the frontend is just a tiny part of their web app.

Do you think a good programming language can be the result of such a mindset? I don't. And there are lots of articles out there describing Coffeescript's shortcomings like its ambiguous syntax or how hard it is to debug. So we have good reason to say that by Coffeescript is not a well-crafted programming language.

Sometimes technology doesn't need to be good to succeed, it just needs mainstream adoption. So you could argue that it's good to learn Coffeescript in order to get a job. But that's not the case. Frontend development has changed dramatically during the past 10 years and JS is not less important (~Coffeescript mindset), but more important than ever before! So from a practical point of view it's also not advisable to learn Coffeescript.

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

You have really good points, but the evil advocate has found something to reply.

Well, if everything you say is true, then learning Coffescript and the story behind it is super valuable for a programming language designer who would like to know which basic mistakes to avoid when designing a new programming language. Don't try to pretend to replace something you hate and don't really understand.

Thread Thread
thorstenhirsch profile image
Thorsten Hirsch

Indeed. There is nothing so bad that it couldn't at least be a bad example.

Collapse
eljayadobe profile image
Eljay-Adobe

As long as one considers CoffeeScript2 to be different from CoffeeScript, then I'd have to agree that CoffeeScript is obsolete.

Collapse
nickholmesde profile image
Nick Holmes

Even the "worst" language is worth studying (if not learning), so as to appreciate why its bad. And maybe why it's not.

(Let's exclude esoteric languages, because they are designed to be "bad", and its trivial to understand why that are bad. In this regard, they are fun, but not interesting).

In less black-and-white terms, I'm tired of developers telling me that, for example, functional programming is not relevant, but who have never actually bothered to study it.

The more you learn (or at least study), the more informed your opinions will be. As a software development professional, you have duty to inform your opinions.

Collapse
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Exactly. It takes a lot of time to realize that there is no right answer and that everything is a question of context and of trade-offs.

@daedtech is really good on this here Coders in the Hands of a Missing God: How Newly Minted Freelancers Badly Miss the Point

Collapse
moddib profile image
MoDDiB

Python because copy / pasting can be painfull !

Collapse
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Could it be the case that nobody would ever need to learn Python?

en.wikipedia.org/wiki/Python_%28pr...

Evil advocate counter-argument:

The fact that copy/pasting can be painful can be seen as a good constraint for a developer who wants to master his craft. It's painful to copy/paste. Fine. Then I have to find better ways to come up with code. That will probably be a big win in the long term

Apart from that, Python has a massive developer community that produces lots of good stuff. They are expert at teaching programming to beginners, to non-programmers who need to program. It's a great solution for prototyping stuff. It is used at Google, Facebook Instagram, Spotify and a lot more. It's a great solution for data science, scripting, backend programming.

And I'm just scratching the surface because I don't know a lot about python. Just imagine what someone good at Python and who like it could reply!

So suggesting nobody would ever need to learn Python is courageous because transparently wrong :)

Collapse
moddib profile image
MoDDiB

"The fact that copy/pasting can be painful can be seen as a good constraint for a developer who wants to master his craft. It's painful to copy/paste. Fine. Then I have to find better ways to come up with code. That will probably be a big win in the long term"
When you have 20+ years of experiences you really don't care about mastering : you want to be efficient.

By the way despite this it's a good language with a good community, I just regret this poor syntax choice even if at first it sounds good.

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Oh I agree with you on both points.
1) Being efficient matter and those little things should be fixed
2) Building a language is something, building a good language community is even more important

Collapse
avalander profile image
Avalander

Why would copy-pasting be substantially more painful with Python than any other programming language?

Collapse
ghost profile image
Ghost

I've heard that argument before, to copy/paste you just add the proper amount of space, unless you are using ed or nano is very trivial. On the other hand, Python2/Python3 being 90% of books and half of tutorials in py2, that's is somewhat annoying for new users.

Collapse
aleksandrhovhannisyan profile image
Aleksandr Hovhannisyan

Copy pasting what, and where? I'm not sure I understand the reasoning here, unless it's a joke that I don't get.

Collapse
vyzkhd profile image
vyzkhd

Think they're talking about potential indentation errors!

Thread Thread
moopet profile image
Ben Sinclair

Which aren't a problem if your text editor was made in the last 40 years.

Collapse
patarapolw profile image
Pacharapol Withayasakpunt

If you care about code readability and quality, you are gonna reindent it anyway.

Collapse
skhmt profile image
Mike S

Probably HolyC. It has only been used to create one "real world" application, and that was an OS whose creator sadly passed away and isn't really used for anything besides novelty. It's impressive in that a single person created a language and OS from scratch, but also it's not worth learning where there are hundreds of other languages you could learn.

Collapse
daveford profile image
Dave Ford

The worst programming language to learn is the language that you have no motivation or desire to learn. It will be a miserable experience causing you to dislike the time it takes and the language.

Collapse
Collapse
alexanderviken profile image
Alexander Viken

I think this old piece says it all still being relevant :) PHP a fractal of bad design

Collapse
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

This is also a favorite of mine.
But in fact there are really good reasons to learn PHP.
Wikipedia is built on it for example.
Wouldn't you accept the quirks of PHP if you had the opportunity to work on such a great project but it had to be in PHP?

Collapse
alexanderviken profile image
Alexander Viken

Tough call, but I don't think I would :) There are so many other great (OSS) projects that doesn't use PHP...

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

I am ready to bet that working on 99.9% of those open-source projects won't have the same positive impact than making Wikipedia 1% better.

I would choose Wikipedia.

Thread Thread
alexanderviken profile image
Alexander Viken

you are right about the positive impact for sure, but for me it would just bring too much misery working with technology i really don't enjoy. :) If they'd ever need skills I have, I'll be happy to help :)

Maybe it's time for wikipedia to become more technology agnostic. Think more in line of a microservice architecture. At first glance it looks pretty monolithic

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

I mean, I guess that the pay is pretty good at Wikipedia, no? So you could work on the impactful things during 3-4 days a week, and on the interesting tech things for the rest of the week.

Thread Thread
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

And also once you are there you are smart, so will find smart ways to improve their architecture, nothing is fixed in stone.

Collapse
moopet profile image
Ben Sinclair

I spent the last 90 years mastering whitespace but then whenever I choose to use it in whiteboard interviews I don't seem to make the cut.

Collapse
gjeloshajantoine profile image
GjeloshajAntoine

C++
At first it looks all nice and feature full and easier than C but it ends up having a lot of quirks.
As junior at least I wouldn't recommend and I feel there's a lot of other very nice complied langages nowadays.

Collapse
dmfay profile image
Dian Fay

I've never met anyone with anything good to say about MUMPS.

Collapse
sharpninja profile image
The Sharp Ninja

Any flavor of Scheme is an absolute nightmare, and R5RS is the worst of the worst. It's missing fundamental Scheme functions, which will drive you nuts while learning it and having to discover why the only examples on the Internet are broken in Dr. Racket, which gets my vote as the most abysmal IDE ever made.

Collapse
deciduously profile image
Ben Lovy

Jacquard punched cards. I could be wrong, but I think the state of the art in textile manufacturing has progressed.

Collapse
rogue_halo profile image
Rogue Halo

Fortran, obsolete now so not worth your time.

Collapse
jmfayard profile image
Collapse
dmfay profile image
Dian Fay

The latest language specification is from 2018. It's very much still being used in meteorology and other areas of scientific computing.

Thread Thread
murrayvarey profile image
MurrayVarey

Sure is. I've worked with Fortran. For a job. In this century.

That said, it's not something I often shout about.

Collapse
eavichay profile image
Avichay Eyal

LOLCode, probably.
BASIC, it's good for kids learning the basics but not practical in todays computing.
Objective-J,?

Collapse
daandl profile image
Collapse
jmfayard profile image
Jean-Michel Fayard πŸ‡«πŸ‡·πŸ‡©πŸ‡ͺπŸ‡¬πŸ‡§πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡΄ Author

Nobody should ever learn Cobol?

en.wikipedia.org/wiki/COBOL

The devil advocate has found this scenario.

Money and Security are two very powerful basic human needs.
A lot of people would want lots of money and guarantee to have lifetime job employment. A large part of those people don't really care how they earn this money and lifetime employment guarantee, as long as they have it.
How does Cobol ranks for those people?
Security: It's well known, to the point of the joke, that Cobol guarantee you a lifetime job since the banking and insurance industries has tons of it. Those industries are betting on blockchain right now to migrate. Since BlockChain is a bad technology, it's likely that most of those efforts will fail. Some banks will migrate to better solutions. But some will find out that actually this Cobol thing works great. The average JavaScript hipster on the other hand is likely to need to learn a new Framework just next month.
Money: That's an easy one. A well connected Cobol consultant makes way more money than the average San Francisco hipster programmer.

Collapse
nickholmesde profile image
Nick Holmes

So, you're saying Cobol is perfect for people with a predominantly self-centered world view. That is quite the devil's argument!

Professionalism ought to carry with it a set of ethics or code of conduct.

Collapse
devdrake0 profile image
Si

Since BlockChain is a bad technology

No, it's not.

Collapse
avalander profile image
Avalander

Algol 58 is probably far from the optimal choice in most cases. You could probably find a compiler if you try hard enough, but...

Collapse
mbougarne profile image
Mourad Bougarne

You should not learn Malbolge.

Collapse
iamjayshree profile image
Jayshree

literally brainfuck, it's confusing on a whole new level, you have to like a saga to write hello world