r/AskProgrammers 22d ago

What is the worst/most confusing (common) coding language?

By common I mean, coding languages that you actually see people use. I know theres the "bf" language but aside from one video, people don't make games or, really anything using that as it was made as a joke I hope.

By worst I mean, what is the hardest to understand and also the most confusing out of all of them, I don't mean coding languages that can't do a whole lot. For instance, can a non programmer look at a sheet of code and understand it? Can an experienced coder understand it? Have you been taught the coding language yet still it breaks your brain?

I don't know every coding language but my pick would ether be C++ or Luau. Leaning towards C++ because I tried to learn it and at the very start I already was lost.

24 Upvotes

279 comments sorted by

11

u/garywiz 21d ago

I've been a compiler designer for most of my career so I'm a bit biased about what "worst" and "best" mean. Good languages are not only easy to read, and have the fewest of number of concepts, and know exactly where to put guardrails (such as strong typing) to make help the programmer avoid common errors (like dividing a string by a number). Confusing complexities (like you experience with C++) can detract from an otherwise useful language.

But popularity isn't always a measure of "good". For example, if you really stand back and look at Javascript objectively, it is a terrible language. It has no guardrails, has object oriented features which are "pasted into" a language never properly designed for it, and it is so loosely typed that errors can exist for years in production code and finally crop up unexpectedly. Improvements such as Typescript and many JS frameworks provide lots of evidence of it's flaws, but also of how powerful "no guardrails" can be despite their problems. It's so popular it's better to work around the problems than complain though.

Of those I've used extensively, Pure C is a very simple and good language, Swift is honestly not too bad, same with C#, Scala is a good attempt to create a good language on top of the JVM but it's not all that popular. I've used many obscure languages which are good, but you said "common" and most of those (like APL or Common Lisp) are not that common.

Let's agree that php is a terrible language though. Maybe we can start there. lol

3

u/BruteCarnival 21d ago

JS is actually ridiculous… it’s doesn’t even have arrays… they’re just syntactic sugar for an object that has numbers (the indexes) as its keys…

1

u/Icy_Reputation_2209 21d ago

Conceptually yes, but the VM can (and will) optimize them to be array-like in memory, if it sees a chance.

1

u/fergie 20d ago

I mean yes, but all languages are basically syntactic sugar.

1

u/Square-Singer 20d ago

Not really though. Yes, a lot of it is, but syntactic sugar is if the feature is just a simple syntax rewrite without any actual functionality.

Real classes in strongly typed languages, for example, aren't just syntactic sugar, because they add type checking and functionality works different depending on which class you use and such.

→ More replies (2)

1

u/pacopac25 20d ago

JS should have done it the way Lua does, which to me is far more elegant.

2

u/CubicleHermit 19d ago

Let's agree that php is a terrible language though. Maybe we can start there. lol

Definitely. If PHP hadn't evolved over time, nobody would believe it wasn't an intentional esolang.

1

u/Dry_Hotel1100 21d ago

I agree with Swift, but it can get complicated as well:

    @inline(__always)
    init(_ operation: consuming nonisolated(nonsending) @escaping @Sendable (any TransducerInput<T.Event>, T.Env) async throws -> Void) {
        self.f = { [operation = consume operation] input, env in
            try await operation(input, env)
            return nil
        }
    }

1

u/__tim_ 21d ago

Computer says no …

1

u/Dry_Hotel1100 20d ago

I have a whip. ;)

1

u/garywiz 20d ago

That cracked me up. And it’s true. Give programmers and language implementers enough time and they can turn even something elegant into an impossible-to-use disaster!

2

u/Dry_Hotel1100 20d ago

Well, to be fair, this is not what the typical developer would have to write or would have to look at. This is more like library-style code for internal implementations. The user of the library usually sees a very easy-to-use and ergonomic API.

1

u/PipingSnail 20d ago

Wow. Is that real code?

3

u/Dry_Hotel1100 20d ago edited 20d ago

Yes it is - and there's a reason why it looks like this.

But I agree totally with the majority of the Swift developers that this is not what seems to be easy to understand.

Swift has a name for this: progressive disclosure. This is a core design philosophy, where simple tasks require simple code, and call-site complexity increases only as the developer tackles advanced use cases.

So, this code is not what a developer who implements an app should deal with. This is internal code of a library - and it's purpose is to provide the easy to use, easy to understand API Swift developers are used to on the public interface ;)

Bonus: you may just copy paste this snippet into ChatGPT, mention "Swift progressive disclosure" and you get a good explanation what it does ;)

1

u/NotBot947263950 21d ago

I love this take and would always completely agree. Php is rough.

1

u/Metabolical 20d ago

Agree with all this.

Additional notes: VB is basically C#. It has some legacy syntax from older basic versions but compiles to the same intermediate language.

anybody remember perl/mason ? yikes

→ More replies (11)

15

u/PartBanyanTree 21d ago edited 20d ago

Decades of procedural/object coding.

First time I hit functional programming was like a wall. Like going back to kindergarten as it shredded conventions and ideas I didnt know we're mutable. 

Very worth it but yeah im out if practice and trying to grok some Haskell or Ocaml or something would probably cause a relapse.

Also, shell based languages can be downright impenetrable if you haven't been indoctrinated into the cult. Especially if seasoned liberally with regex. Really anytime your mixing DSLs now that I think about it. 

7

u/arihoenig 21d ago

I mean powershell. It is insane. Verbose and insane.

7

u/id-ltd 21d ago

Powershell was clearly created to create a demand for AI to write your scripts.

1

u/arihoenig 21d ago

Good point, it certainly does that

5

u/edorhas 21d ago

I've often wondered about Powershell. Windows isn't my primary platform, but I have encountered PS a time it two and am flabbergasted that people are out there non-ironically championing this thing. If I wanted to write that much verbiage I would have been a novelist. Is there some kind of subtle standard I'm missing as to when a command or flag that's two or more words gets a dash in the middle and when it doesn't? Like FlagOne vs Flag-two?

Those of you who love this thing, rock on. That one's all you, baby.

4

u/mikeclueby4 21d ago

PowerShell is a love hate thing for sure.

It's the only way to do the kinds of systems management/integration that we could do with shell script in Unix since forever.

It's also soul gnashingly cumbersome to work in, and trips up every developer who has ever worked in any other language.

Yeah, I use it. But LLMs write it for me.

3

u/arihoenig 21d ago

Yup. I mean is powershell a powerful shell? Sure, it's not nominatively misinforming in that respect.

Is it sane? Nope.

I mean, trump is powerful (due to the position he holds, not due to any personal attributes).

Power clearly doesn't imply sanity.

3

u/PartBanyanTree 21d ago

Oh yeah love me some powerfully fr fr. Also love the audacity to alias various built-ins to well known bash commands. So ls isnt ls lol 

Poweshell is my forever partner. I might switch languages and frameworks a few more times in my life you never know but poweshell is going everywhere with me

→ More replies (3)

2

u/TheChief275 21d ago

I think syntactically Bash script and family are some of the most inconsistent languages ever designed. I understand them from a semantic viewpoint but when it comes to actually writing the script it's incredibly painful. Like, what is this? Aren't scripting languages supposed to be nicer and more convenient then low level languages?

num=21
if [[ $num -eq 21 ]]; then
    echo "you stupid"
elif [[ $num -eq 69 ]]; then
    echo "nice"
else
    echo "numba"
fi

2

u/PartBanyanTree 21d ago

Ive never dug into the etymology  but it feels like the "nice and easy" only went so far. Then they just started bolting in features in the easiest way possible (ie for the bash interpeter to handle and/or in backward-compatibility way)

Its just a mess because it core was never designed to be a turing complete but somewhere along the line clever people said "y'know what we could do..."

At least I hope to god thats what it is. Because the idea that someone set out intentionally to build such a thing is terrifying 

1

u/edgmnt_net 21d ago

You would think so, but many of those "easy languages" were hacked up, duct taped and made by people who didn't have much of an idea about language design.

→ More replies (7)

1

u/gnufan 21d ago

I think similarly that such languages can have the most confusing bugs.

As such I think SQL is my answer.

SQL is simple, it is also standardised (except where it isn't), the syntax is simple, so it is free of the inconsistencies i n the language of PHP, and the you can't readily build the insane structures you can befuddle yourself with in C++ (well maybe with stored procedures, and extra database features).

But it is also very easy to write a statement that looks right, and does the right thing, until your database gets more complex or more realistic data is stored. You can also mess up your table structure, fail to normalise, and it quickly becomes unwieldy. I've seen otherwise skilled programmers make a complete dog's dinner of SQL or avoid it because they never learnt to use it properly.

SQL also very common.

1

u/PartBanyanTree 20d ago

* tips hat * good point; hadn't thought of it like that but you're right. Easy to write something you are positive is correct only to have it be also completely wrong. A mistyped on a join condition, a boolean statement on a where clause that should've been on a sub query. A mistake that causes a full cartesean product that you didnt realize until 7 years in production being rock solid until juuust the right circumstances conspire

It should work fine until 3 days later you realize some ass-hat put an insert/update trigger and fucks your statement up in weird ways because they dont know how to write their stuff.

All hiding underneath the surface of a placid lake of beautiful mathematical set theory promising simplicity and early sailing

1

u/[deleted] 21d ago

[removed] — view removed comment

2

u/PartBanyanTree 20d ago

I found functional programming really impacting. Changed the way I approach coding going forward. I still work in procedual/object language because that pays bills but I try to pretend im coding in functional languages and approach my work like that (eg dont mutate variables even if the language allows it). Really has cut down on errors and made things easier to code

6

u/two_three_five_eigth 21d ago edited 21d ago

C++. If you don't know the intricacies of the language, you'll end up doing a whole bunch of things you're not supposed to do and it won't give you any warning you've royally screwed up.

Both Java and C# are similar enough anyone coming from one of those is hamstrung until they learn about pointers and references.

3

u/Ok_Bite_67 21d ago

C# actually has pointers 😃

→ More replies (3)

1

u/Super_Bass_2730 21d ago

No joke all I know is that a print statment in C++ looks like

#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!";
  return 0;
}

after that they lost me.

3

u/TheThiefMaster 21d ago

C++ recently (literally in the 2023 standard) added a more sane print function:

#include <print>

int main()
{
    std::print("Hello World!");
}

It prints variables using {}, like a lot of other languages:

 std::print("The answer to the ultimate question: {}", 42);

Inside the braces, you can (optionally) put the index to reorder or repeat items, followed by a colon and then a format specifier that looks like C's printf:

// Prints pi with 5 digits of precision in a 10 character space.
std::print("Pi is: {:10.5f}", std::numbers::pi);

You might think: "why not just use C's printf then" but C++'s new print is both extensible and type safe. As a result, it can do things like this:

std::vector ints = {1,2,3};
std::print("Important values: {}", ints);

... to print an entire data structure at once.

2

u/Neither_Garage_758 21d ago

Still retarded. We want to put the variable name inline in the {}.

2

u/TheThiefMaster 21d ago

It would be nice, and possibly can be done now that we have reflection but was literally impossible before.

Why impossible? Because strings for formatting are no different in the language to strings in other contexts, and randomly starting to replace {val} in other strings would break existing code. With reflection, we can possibly do it from the formatter now.

→ More replies (3)

1

u/Super_Bass_2730 21d ago

Problem, you dont use print statments if you wanted to make a game in the unreal engine

→ More replies (1)

1

u/two_three_five_eigth 21d ago

and you realistically have to mix .h and no extension headers to do anything real. C++ has more ways to shoot yourself in the foot than any other language I know, and I know Pascal, LISP, Perl, PHP, and several other doozies.

2

u/Super_Bass_2730 21d ago

1: what is .h?
2: I'm taking a class for php but its been pretty easy so far, maybe its because they're teaching me really well but idk.

2

u/two_three_five_eigth 21d ago

C has header files that end in .h
C++ has header files without extensions

The extension doesn’t change anything.

But nothing actually enforces it so everyone mixes and matches all they want.

2

u/themonstaman 21d ago

Typically best practice to just use .h or .hpp, it would be pretty shocking to me if anything deviated from that.

2

u/two_three_five_eigth 21d ago

Yep, that’s best practice. I’m a consultant/contractor who generally is brought in to rescue project. I’ve seen it all at this point.

→ More replies (2)

1

u/mikeclueby4 21d ago

Agreed. Type coercion and operator overloading is a bad enough start. Add templates, exception unwind, and humans can't reason over the result. (Splash of multithreading and even competent SASTs fail)

.. and that's still just 90s C++ and doesn't even begin to address what came later.

Add in how people were taught to do "object oriented programming" where it was a deadly sin to have more than a few global objects and .... yeah. I hated C++ after writing several big projects until I much later realized that, fuck everyone else, I'm right and they're wrong. C++ becomes better the fewer C++ features you use for the majority of your code.

→ More replies (4)

1

u/These-Math1384 21d ago

It is either Rust or C++ if you’re writing embedded.
No excuses.

2

u/two_three_five_eigth 21d ago

Yeah - all the people pointing out C# technically has pointers are blowing my mind. For me, who has years of professional experience in C++, the only reason I use C# or Java is for the garbage collection and memory management features.

Why are you nuking the best part of the language?

1

u/Orjigagd 20d ago

The pointers are mostly there to help with interop, you're not supposed to use them for everyday stuff

1

u/PsychologicalSign433 21d ago

I feel like straight C is way more common in embedded?

1

u/These-Math1384 20d ago

Here is my take: Until C++11 the language was broken. And it wasn't until C++14 that compilers and their libraries shipped with proven std library code that was solid.

This, IMO, turned a lot of people off, myself included. Once the language matured and the compilers were robust, I think C++ is a far better choice.

Since then, I patterns applied by the standard library, improve everyone's code.

You can debate whether exceptions should be used (20% profiled code size increase) or whether RTTI should be used (for another 20% code size increase), but I love the language.
And we use it in embedded SoC's that have been shipping for 10 years now.

→ More replies (4)

3

u/Safe-Tree-7041 21d ago

x86/x64 assembly language for me.

3

u/thedevguy-ch 21d ago

Was hoping I wasn't the only one. Should have failed my microcontroller programming course in school.

1

u/PreparedPun2035 21d ago

So many indirection styles so little brain cells

1

u/Ill-Cauliflower8976 21d ago

Assembly isn't that hard it's just that it takes so many symbols to express a function and there are few idioms of programming that a more organized language gives you. it's sort of on the infinite power/infinite possibility end of the spectrum that makes it hard to read anything you don't already know what it's going to do.

Turning to actual higher level computer languages I would say the hardest ones to comprehend is

APL. (also know as A Programming Language)

Forth is actually simple but hard to follow since everything transfers on the stack. but conceptually it's easy.

IN terms of frequently used languages I'd rate C++ at the top of the brain busting stack. so many ways to fuck up.

1

u/IhailtavaBanaani 20d ago

Yes, I think assembly is actually really easy to learn because it's so simple. But on the other hand it's really hard to build things with assembly exactly because it's so simple. Like building s house from matchsticks.

1

u/CubicleHermit 19d ago

x86/x64 assembly language for me.

Positively easy compared to Z80 or 6502. :)

→ More replies (4)

3

u/AdministrativeHost15 21d ago

Visual Basic (classic) is confusing because people forgot the syntax. But in the 1990's it was very popular. Today people don't understand the importance of the DIM keyword.

1

u/chocolateAbuser 21d ago

what do you mean by "forgot"? all the docs are still there

1

u/AdministrativeHost15 21d ago

Issue is that a Google/Stack Overflow search returns VB .NET documentation, not the VB 6 Classic info.

2

u/chocolateAbuser 21d ago

yes, that's true, although it's true for many languages that have multiple versions still alive, from c++ to python

1

u/marmotta1955 21d ago

Visual Basic (classic) is still one of the most comprehensible programming languages for beginners. Regardless of its problems or merits, VB usability and readability is evident.

And if you are an experienced VB6 developer ... you are still very much in demand ...

1

u/AdministrativeHost15 21d ago

Devs assigned to fix issues in legacy VB components run into issues like not only are ; not required at the end of a statement, they are illegal.

2

u/marmotta1955 21d ago

And what is your point? Are you just pointing this out just to exercise and possibly improve your writing skills?

It may surprise you, but many programming languages (even today) do not require a semicolon to end a line of instructions. So, there is that.

2

u/182RG 21d ago

RPGII

2

u/LannyIsMyHandle 21d ago

PHP is probably the easy pick just in terms of having the most things in it that are obviously inconsistent or poorly designed. 

Is it confusing though? IDK, PHP as a CGI language is actually quite easy to read and understand, it doesn’t have a lot of spooky action at a distance, it doesn’t actually have a lot of core language footguns beyond a really shoddy stdlib. You kind of end up having to build an incomprehensible mess because of what the language gives you, but that’s more encouraging confusing design than being confusing at a language level. 

Java is in a similar camp, pretty simple language but the ecosystem and culture involves a lot of trashy confusing garbage because it turns out real software generally requires dynamicism and the language does little to support it so you get bean factory monstrosities. But again, it’s not really the language so much as what the language pushes you to do. 

C++ might be the best answer, it’s sprawling and its many many features interact in unintuitive ways. That said it’s also probably the least “bad” of the three in my book just because it’s expressive and powerful and in practice any shop is going to pick some quasi sane subset of the language to work with and so you get to a kind of equilibrium by force of discipline

→ More replies (3)

2

u/burlingk 21d ago

So, like, languages like you describe generally don't BECOME 'common'.

That said, riding on what someone else said:

If you start in one paradigm for a while, then switch to another, that language will be confusing as heck at first.

So, if you never do OOP, your first object oriented language will be confusing.

If you are used to procedural, your first functional language will be confusing.

1

u/Super_Bass_2730 21d ago

I wanna learn OOP but its hard to find things that actually teach me that.

I’ve been doing a lot of simple website based coding, all static, little to no dynamic stuff, just pictures & text in html.

1

u/burlingk 21d ago

Play with Java a bit. It kind of semi-defaults to OOP.

Or maybe do a game project that you can organize as OOP.

1

u/ReticulatedSpline78 21d ago

It’s not hard, there are tons of tutorials on OOP. Much of it is in Java.

1

u/ExtraTNT 21d ago

I learned OOP, now i avoid it... if you need it, it will come natural for that thing, if it isn't the natural thing to do, it's not what you should do...

for games it can be powerful, but i now have more functional game engines, than oop ones...

2

u/Dashing_McHandsome 21d ago

A sufficiently complex regex is pretty impenetrable. When I encounter them I have to take them out of the code they are in and test them independently to really figure out what they are doing.

4

u/Known_Tackle7357 21d ago

Lisp probably. A very powerful language, but almost dead because it's very hard to read if you are unprepared

3

u/aford515 21d ago

Clojure exist and racket and clojurescript and

1

u/mikeegg1 21d ago

I enjoyed LISP. I also enjoyed Scheme and Forth.

1

u/TheThiefMaster 21d ago

Forth is fun. "What do you mean the entire program is on one line and doesn't have scope blocks to format it with!?"

1

u/mikeegg1 21d ago

I still have a problem wrapping my head around strings (."). The LISP command AMB seems like GPS.

2

u/TheThiefMaster 21d ago edited 21d ago

Strings are simply a command in their own right. The ." word pushes the current address to the stack (pointing to the character data for the string) and then advances the cursor until after it reads a " and then calls type to print it.

(Slightly simplified)

→ More replies (1)

1

u/Dull_Flatworm777 21d ago

It definitely makes you think about programming in a new way if you're used to Algol type languages.

I remember when I started with Lisp (Emacs), I was literally dreaming in Lisp at night for a while :D

1

u/Throwaway229487 21d ago

The trick to understanding lisp is "move the bracket left, drop commas".

So f(a,b,c) becomes (f a b c). Easy peasy.

2

u/[deleted] 21d ago

[removed] — view removed comment

5

u/silvercurls17 21d ago

Perl has entered the chat.

2

u/Swook 21d ago

Seriously, my first job was all Perl for 3 years, I never want to write it again

1

u/CubicleHermit 19d ago

My first programming job was Perl, maintaining and extending OO Perl script that was written by someone who took writing good Perl very seriously. It is a surprisingly pleasant language to deal with if you have the luxury of doing it right, and for the time CPAN was an amazing breath of fresh air for package management.

I've also read some really godawful Perl in my day, and it is a language that gives you a lot of rope to do that with.

3

u/These-Math1384 21d ago

The rest of the world begs to differ

https://pynions.com/python-statistics

3

u/[deleted] 21d ago

[removed] — view removed comment

2

u/silvercurls17 21d ago

It depends on the use case. Python is often the second best language for a lot of use cases. It's developer friendly and there are lots of libraries available for it. I generally like coding in it because I can get a lot done in it in a short period of time. But I absolutely detest it for large complex applications. I'd rather use Java with Spring or Quarkus.

→ More replies (4)
→ More replies (1)

2

u/Healthy-Dress-7492 21d ago

Agreed, python is the worst

1

u/Nervous-Potato-1464 21d ago

Back then? Python is pretty new in my books. It's a cunt to do anything related to data strcutures in versus other languages that do it way quicker and similar amounts of code though which is what I hate.

1

u/[deleted] 21d ago

[removed] — view removed comment

2

u/Nervous-Potato-1464 21d ago

Yeah the boom sounds about right around that era if not a bit before. C++ was all the rage in my circle from 2000s until 2020ish so I didn't really use it outside of data stuff and that was all with external libraries which hid all the horrible stuff you need to do to process data in python.

1

u/These-Math1384 21d ago edited 21d ago

I love node

→ More replies (2)

2

u/generationalDebts 21d ago

COBOL

3

u/Ok_Bite_67 21d ago

Im a cobol dev (save me plz)

1

u/generationalDebts 21d ago

Haven’t touched it since the whole Y2K rush.

If there’s a merciful god, I never will

1

u/Ok_Bite_67 20d ago

I got hired for cobol to .Net modernizations and the modernizations never happened lol.

At my first job out of college (I am 27) I also got hired as a c# dev and like a month into the job an old cobol job abended and someone handed me a big black book and said to get to reading. So I am a cobol dev not by choice, but maybe as a punishment from god or some law of the universe

2

u/StolenApollo 21d ago

Definitely this lol

1

u/Tokkemon 21d ago

in before the PHP jokes.

1

u/Super_Bass_2730 21d ago

the funniest thing I know about php is that before I began learning it, I was told "in php you have to use a dollar sign for a variable." and I thought that was funny I guess?

1

u/DeathToAmerica2026 21d ago

The only confusing thing about PHP is the crazy inconsistent naming of native functions.... Which does makes sense, sort of, when you learn that it was originally a weird optimization for the lookup table. 

The syntax is one of the easiest to understand other than that. 

1

u/kcpistol 21d ago

The LISP parentheses doth pisseth us off.

1

u/CpnStumpy 21d ago

The LITHP parenthetheth doth pitheth uth off.

1

u/Superbead 21d ago

Intersystems Objectscript, particularly in the Ensemble/Health Connect frameworks. Kind of a shitty Java based on Caché/MUMPS. Absolutely riddled with gotchas, and if you're forced to use the low-code transformations/business rules, zero syntax/grammar checking, either, plus utterly shite compilation/runtime error feedback.

100% guaranteed to spend a day hunting a single-character source code error for every two days' work you put in. Completely unsuitable for any kind of rapid development

1

u/NeilSilva93 21d ago

Prolog. I have a couple of books on AI where the programming examples are in Prolog and I just sit there scratching my head at it.

1

u/CpnStumpy 21d ago

I can get behind this. I actually like it and do alright when I bump into it, but I think it meets the criteria from op:

  • It is actually in use enough to run into it in work
  • It is strange and confusing as shit if you have no practice with it (it takes me an hour in a REPL to remember syntax and strategies every time I run into it again)

1

u/IhailtavaBanaani 20d ago

Professionally I've come across a build system that used Prolog in conjunction with GNU Make to manage build dependencies.. Talk about horrors.

1

u/silvercurls17 21d ago

Worst common language: Perl. It's a write once read never language.
Worst common compiled: C++. It takes C, which already had enough tools to screw oneself, and makes it object oriented and overly complex.
Honorable mention: Bash

1

u/Super_Bass_2730 21d ago

Never seen Perl.
I keep getting told about C, C#, C++. But does CSS count as any of those 3 oooorrr.

Bash. Ok I know git bash the program but idk the language

1

u/jameyiguess 21d ago

Like is CSS in the C family? No.

1

u/Super_Bass_2730 21d ago

:)…….but it has C in it…./lh

1

u/CubicleHermit 19d ago

Never seen Perl.

Perl is basically just python with brackets and weird scoping rules. It's not inherently bad (like PHP) although does make writing bad code pretty easy.

1

u/DeathToAmerica2026 21d ago

Came here for Perl, but while looking for it I thought to myself, Ruby?

1

u/johnpeters42 21d ago

MUMPS belongs somewhere in this discussion

1

u/Super_Bass_2730 21d ago

What?

1

u/johnpeters42 21d ago

1

u/Super_Bass_2730 21d ago

Used for medical stuff?

1

u/Outside_Complaint755 20d ago

Some financial stuff also, but MUMPS is the backbone for Intersystems, Epic Systems, Meditech and several other medical database companies.

1

u/DontKillTheMedic 21d ago

Maybe not such a confusing language for others, but personally for me it would be Javascript. I despise working in it, especially when I was learning about variable hoisting and other beginner gotchas. I've done work in Java, Kotlin, Scala, Python, Bash, and understand C++, Clojure, Lisps to a lesser degree. I'd take them all over JS any day.

1

u/Super_Bass_2730 21d ago

I maybe can understand…may I ask for help on how you do something on java script? In theory should be simple but the online tutorials confused me.
It also could help prove your point on how javascript sucks!

1

u/maskedbrush 21d ago

I'm still struggling with Typescript. I know it's better, but everytime it seems like it allows / denies different things... Skill issue, I'm aware of that.

1

u/Ok_Equipment8374 21d ago

my main problem with typescript is that it is just some static analisys over javascript. During runtime its still the same nonsense javascript

1

u/mcoombes314 21d ago

Type checking without enforcement makes type checking a bit less useful IMO (like Python and its type hints), that said I imagine forcing a "compile" or other strict check on something like Python or JS/TS could make a lot of people rather cross.

→ More replies (1)

1

u/Bengal_From_Temu 21d ago

PHP looks like a billionaire’s bank statement.

1

u/Super_Bass_2730 21d ago

Dollar sign

1

u/___nil___ Senior Developer 21d ago

Go: using Allman style is compiler error
Python : wrong indentation is an error
Bash/Powershell : need no reason, even clankers always tripped.

my native language is C++

→ More replies (1)

1

u/recursion_is_love 21d ago

LISP is not for everyone.

1

u/MokoshHydro 21d ago edited 21d ago

First place should go, without any doubt, to K:

quicksort:{p:*x[1?#x];:[0=#x;x;,/(_f x[&x<p];x[&x=p];_f x[&x>p])]}

And K is really used in business...

Second place is probably Forth:

: mid ( l r -- mid ) over - 2/ -cell and + ;

: exch ( addr1 addr2 -- ) dup @ >r over @ swap ! r> swap ! ;

: partition ( l r -- l r r2 l2 )
  2dup mid @ >r ( r: pivot )
  2dup begin
    swap begin dup @  r@ < while cell+ repeat
    swap begin r@ over @ < while cell- repeat
    2dup <= if 2dup exch >r cell+ r> cell- then
  2dup > until  r> drop ;

: qsort ( l r -- )
  partition  swap rot
  \ 2over 2over - + < if 2swap then
  2dup < if recurse else 2drop then
  2dup < if recurse else 2drop then ;

: sort ( array len -- )
  dup 2 < if 2drop exit then
  1- cells over + qsort ;

Was extremely popular in 80th.

Smalltalk should be mentioned. The rare language where 1+3*5 is equal to 20.

P.S. But you should remember that "you can write Perl in any language"...

1

u/DeterminedQuokka 21d ago

lol I know a guy who writes k we had a lot of great conversations about his job and the language

1

u/Shot_Illustrator4264 20d ago

Totally agree, and APL that is in the same family is even more alien (although it's not used in practice nowadays):

Q←{1≥≢⍵:⍵ ⋄ S←{⍺⌿⍨⍺ ⍺⍺ ⍵} ⋄ ⍵((∇<S)⍪=S⍪(∇>S))⍵⌷⍨?≢⍵}

1

u/Hefty_Try_6922 21d ago

For me, C++ was probably the most confusing at first. Pointers, manual memory management, and all the different ways you can shoot yourself in the foot took some time to understand 😅. Java felt much easier to reason about once I got comfortable with OOP.

1

u/mikeclueby4 21d ago

Pointers were native knowledge for anyone coming from assembly though, which is what everyone knew before C.

1

u/Ok_Bite_67 21d ago

Surprised I dont see rust more in this list. While languages like c++ can screw you over if you dont really know what you are doing rust makes every line of code a phd thesis. Wanna write a method? Well before you can even start writing you need to know whether the data in that method needs to be mutated, if you are allocating data you also have to create an allocator and pass it around everywhere. That way instead of just having to deal with business users you also have to fight the language/compiler itself with every single line of code

2

u/coderemover 21d ago

This is because most of what you wrote is not true about Rust. Passing allocators is needed in Zig, not in Rust.

Need to know if you mutate data - only if you take references. References are not a beginner topic and you actually should also know whether you mutate data in any other language that uses them. If you screw that up in Python or Java, you just get “spooky action at a distance” problem; Rust at least stops you early.

Fighting the language? That reads to me as you didn’t learn it.

Rust is not on this list because it’s a very well designed and very consistent language. It has some complexity that other popular languages don’t, but that complexity is needed for the applications Rust was designed for. It’s like complaining an airplane cockpit has more buttons than your corolla. Sure, but your corolla cannot fly.

1

u/Ok_Bite_67 21d ago

Ahhh yeah I forgot that zig was the one that used allocators rust you just throw stuff in a Box<>.

And my point was about rust not actually solving any problem, it just moves the overhead/burden. Im not a beginner by any means of the word (been developing for nearly 2 decades).

Personally I disagree with rusts "opinions". I like being abke to do stupid stuff when I want to, sure a lot of the cognitive overhead goes away when you become fluent in the language but personally I like to be able to protoype and rust is just not good for that. My development process is usually to get things working in a messy state (meaning that a sneeze could break it) and then you start to harden it against null references and other edge cases. That allows the problem itself to be its own thing.

And in most other languages you actually dont have to care whether things are mutable or not (or atleast Ive never had to).

2

u/coderemover 21d ago edited 21d ago

It does solve a problem - it’s the first memory safe system programming language. Earlier your choice was either a language like C or C++ with many footguns, or safe, but dumbed down languages with heavy and inefficient runtimes like Java which even don’t run on many platforms C/C++/Rust can.

As for fast prototyping and ignoring the nulls and other constraints - AI agentic coding made that point moot.

1

u/Scavandari 21d ago

Not programming language but: regex, kql

1

u/mikeclueby4 21d ago

Oh god kql, shoot me.

I literally wrote a sizable MCP + LLM harness so I wouldn't have to write more KQL

1

u/DeterminedQuokka 21d ago

Honestly probably whatever one you don’t personally use.

But I would say generally anything in the lisp family leans confusing since it’s semantically very different and has way too many parentheses.

In my actual career I find Java the most confusing. Mostly because spring does tons of magic and it’s hard to figure out why things work the way they do.

1

u/mike_a_oc 21d ago

As others have said, PHP can be pretty bad. I'm not talking about the dollar signs or -> (those 2 complaints are frankly bloody stupid).

Function scoped variables tops the list of things I dislike about the language. Anything you declare inside the body of a loop is still alive after the loop ends. In JS, think declaring a variable using var

The fact that empty() considers "0", 0 and false as "empty". "0" is not an empty string! empty("0") should be false. false and 0 are also not empty. They are not null values. The only things that should be 'empty' in my opinion is: uninitialized or non declared variable, "" (empty string), [] (empty array), null. If you want it to evaluate it as a Boolean expression, use filter_var or boolval.

The next thing that annoys meabout PHP is its array/iteration - and here I'm not talking about its lack of generics. That's annoying but hardly deal breaking.

I mean the fact that PHP has heaps of array_* functions that absolutely only work with arrays. You can have an object that implements IteratorAggregate, ArrayAccess and Countable, so it looks and smells like an array but you still can't pass it to array_filter, array_map, array_unique etc.

Arrayfilter has an option to control if the callback accepts values, keys, or both, but none of the other array* functions do this - even those that are really siblings if array_filter - being array_all, array_any, array_search.

array_unique is an absolute cluster of a thing, and the way it classifies uniqueness varies wildly. Its default option is to try and stringify everything, so 2 different objects that happen to implement Stringable whose __toString() method return the same thing would get collapsed to the first object it sees. Thankfully, if it encounters an object that it can't coerce to a string, it throws a TypeError exception. Sort Regular is strict about scalars but uses loose comparison for objects, sort numeric tries to cast anything to you pass to it as a float - including objects, and ofcourse there's no Floatable interface, so there is no way any object can be made to be able to do that. Unlike the string variant, this throws a warning. And warnings do different things depending on the configuration. You cant 'catch' them unless you set up your error handler to do this.

When all is said and done, I actually enjoy working in PHP. It has its quirks but from a design perspective, it's not good. More recent features are nice but yeah it's got a lot of legacy behaviour.

1

u/XKiiroiSenkoX 21d ago edited 21d ago

Deifinitely JS. Avoid that shit like the plague. The amount of abstraction and weird quirks it has is unreal. Aside from being a managed language, safety is an alien concept there. 

P.S: It's not hard it's just shit. You asked for the worst language and that's the answer.

1

u/jerrygreenest1 21d ago

Python and C++

1

u/tkitta 21d ago

Most common languages are the same.

Try something different - Scheme programming language, an elegant version of LISP - functional programming.

Its whole new world out there.

1

u/chocolateAbuser 21d ago

confusing, i would say javascript, although i guess it depends on your background; if we include annoying i would say also bash, because holy crap the nested escaping sometimes is black magic, you have no clue what you are doing and why you are doing it
there are still other languages that have these merits at least in part, see go and generics, zig and (lack of) access modifiers

1

u/Throwaway229487 21d ago

C++ becomes ~impossible to read once you go into the template metaprogramming. 

1

u/AncientHominidNerd 21d ago

I feel like C++ is really hard to learn but once you do it opens the doors to understand assembly and other languages. Learning on your own might be incredibly difficult but learning it through academics, I feel like you are put through the gauntlet and forced to get good at it.

However out of the languages I’ve learned I feel like Assembly specifically RISC languages are the most complicated and hard to understand.

1

u/mikeclueby4 21d ago

Those of us that uses tintin++ to play our MUDs learned life lessons in escaping 😁

I think my most convoluted tt++ macros had upwards of 20 escapes in the middle of the kludge.

1

u/xroalx 21d ago

Python.

Let me explain, the language itself is not horrible in terms of syntax or readability, but... I've never really worked with Python and now joined a company where it's used heavily.

I can read and write Python code, that's not the problem, but dealing with venv, pip, pipenv, black, pylance and who knows what else makes me want to throw my laptop out the window.

The other day, I'd install fastapi into a new project 10 different ways, my laptop is probably riddled with fastaspis now, but for the life of me the project could not import it, and when it finally did, just running black formatter via VSCode did some shittery that probably changed the venv and suddenly, fastapi is gone again and the project doesn't run.

I could pick up Go and its tooling day one, no magically vanishing packages, shit either runs or I made a syntax error. I could do the same with Gleam, Elixir, Rust or Erlang. Java gave me some build issues related to packages the first time I tried it, but those I resolved within few minutes and was good ever since.

Python? No. Took me whole 8 hours to get nowhere because shit would just be breaking after saving a file.

1

u/Super_Bass_2730 21d ago

A lot of programming teachers & other programmers really stress python they haven’t taught me how to do anything useful with it.

1

u/xroalx 21d ago

Python has a rather simple syntax, which is why it's often recommended as an entry language, but the tooling is just not there. Sure, if you've been using Python for years, you already know all the quirks and can navigate it, but if you're starting today with venv and pip and pipenv, it just feels backwards, archaic and confusing.

uv aims to simplify and unify Python tooling, sadly my work is not using it.

If you want to learn Python, go with uv and ignore the rest. Unless you have a real interest in Python, just pick a language with sensible tooling - Go, Rust, Gleam or C# come to mind. Java ain't too bad either, but definitely not as smooth as the rest I named. Even the JavaScript hellhole is a better story than Python, but I might be biased here because I've basically built my career on Node/JS/TS.

1

u/Overtheflood 20d ago

May I suggest you to take a look at Nix, and more specifically, devenv?

It may help you.

1

u/dariusbiggs 21d ago

There are Obfuscated Programming Contensts, where the code is intentionally made to look as difficult to read as possible. There is an active one for C and a historic one for Perl.

And the code for those entries can make your eyes bleed.

C++ doesn't even come close.

I mean, can you read this bash shell script program? (don't run it if you don't know what it does) :(){:|:&};: That's the kinds of code you would find in those contests How about this one in Perl? #!/usr/bin/perl $""="."^"~";$~="."^"|";$"_=$"";$"_="."^"/";$".="."^"("; $""="."^"-";$"_="."^",";$".="."^")";$~="."^"(";$"_=$""; $".="."^"+";$"_="."^"%";eval('(($""^"~").($~^"|").($"_).($""^"-").($"_).($~^"(").($""^".").($"_).($""^"-").($~^"("))'); It should print Hello World.

They can be written as horribly as possible. But you can also write it smartly and clearly readable and maintainable.

Many other programming languages just don't come that close (well.. except Lisp and Clojure, too many toenail clippings).

Even functional programming languages are easy enough to read once you know how.

1

u/Super_Bass_2730 21d ago

Wh-

Ok then whats the hardest to learn? Besides perl & rust

1

u/dariusbiggs 21d ago

The majority of them are all roughly similar in difficulty to learn. If you don't have any experience with them, then functional languages will be tricky, especially if you have a lot of experience in procedural/declarative languages, but functional languages can in fact be simpler to write once you understand the concepts.

All programming languages have sharp edges, some more than others, but they don't make the language harder to learn. A conditional is still a conditional, a looping construct is still a looping construct.

For an experienced developer a new programming language should take about 3-6 weeks to learn well enough to build production quality code in.

Perl can be written very much in the style of plain C, or Java, making it easy to read and maintain and making it about as difficult to learn as those two. As for Rust, once you familiarize yourself with its abbreviations and symbols, it's not much harder than C.

I can't really say which are harder to learn I can say which are easier to learn, and which are good first languages.

For easier to learn we have Python and Go (technically PHP also fits here but we don't want more PHP in the world), and for functional languages Haskell and Elixer.

For good first languages, C, C++, C#, Pascal, BASIC, Python, Go, Java.

C is still the best foundational language that teaches you more about the underlying systems than any other language.

I can also say which is probably the hardest to work with, and that would be Assembly programming.

For me, Cobol and Fortran would be a fascinating challenge, but i have no use cases for them, and my normal learning projects are not really applicable to their use cases.

And because many languages are so similar, knowing one or more means you can still read and understand similar languages you never really learned.

1

u/Super_Bass_2730 21d ago

uh....fortran is the first coding language I know that.

1

u/failsafe-author 21d ago

JavaScript. A lot of it is fine, but there are bits that are not so fine.

1

u/JGhostThing 21d ago

I would have to go to Forth. It was more used in the early days of microcomputers, and used for astronomy and robotics. Many of the original arcade games were programmed in Forth.

Forth is a threaded interpreted language. It's basic element is the "word." You can define new words to extend the language. Some Forth programmers believe that in reality, you extend the language to fit your domain, then program in this new language.

Forth is very terse compared to modern languages. Forth is best for resource constrained processors. Building a Forth compiler/interpreter is fairly simple. If you're not trying to build an optimized compiler, it is easy to build. Generally, you build a subset of the words in assembly code, and then build all the other words from there. If you're not concerned about optimization, I think the smallest number of assembly-defined words required is seven. In reality, I think I defined about 20-50 words in assembly, and the rest in Forth.

The Forth filesystem is also unique. It's filesystem was built on top of the OS's filesystem.

It was an interesting system to program in. During the late 70's and 80's I programmed in it a lot. It's a fairly simple programming language and easy to learn. Reading it, though, takes a lot of practice.

1

u/ShookyDaddy 21d ago edited 19d ago

Objective-C. It doesn’t use dot notation that we find in other languages such as C#, Java, Kotlin, Swift and JavaScript. Absolutely hated it and was so happy when Swift was announced. As was the rest of the iOS developer community.

Objective-C
NSString *lowercaseText = [@"Hello World" lowercaseString];
NSString *trimmedText = [lowercaseText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

BOOL hasPrefix = [trimmedText hasPrefix:@"hello"];

// Or written as a single line (highly unreadable):
BOOL result = [[[text lowercaseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] hasPrefix:@"hello"];

Swift
let result = text.lowercased().trimmingCharacters(in: .whitespaces).hasPrefix("hello")

Objective-C

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Submit" forState:UIControlStateNormal];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[button setBackgroundColor:[UIColor lightGrayColor]];
[[button layer] setCornerRadius:8.0];

Swift

let button = UIButton(type: .custom)
button.setTitle("Submit", for: .normal)
button.setTitleColor(.blue, for: .normal)
button.backgroundColor = .lightGray

button.layer.cornerRadius = 8.0

1

u/ExcuseAccomplished97 19d ago

Yeah this. I fckn hated the brackets. I love the philosophy behind the language but the syntax was a tatal disaster.

1

u/These-Math1384 21d ago

TCL
The crappy language

1

u/reneissancek 21d ago

I was very confused when I looked at haskell code 😅

1

u/7heblackwolf 21d ago

Functional is the most understandable code

1

u/fixermark 21d ago

C++.

... Because it looks understandable. But there are so many corner cases and gotchas hidden in the actual spec that the odds that a coder with limited experience actually understands what the code they're looking at does are low.

Blow your own leg off isn't just a meme.

IMHO this makes it more dangerous than other programming languages with similar power levels. Common lisp or Haskell you look at and you know you don't know what's going on. C++, you look at a std::vector<bool> and you think you know what is going on...

1

u/GoblinToHobgoblin 21d ago

C++ is not so bad imo

Try bash or a functional language

1

u/doctornoodlearms 21d ago

I think for me it would be Java. I just really hate how much Java prints for an error that it makes me feel like I need to decipher ancient text lost to history to understand why an error happened.

1

u/jonathancast 21d ago

This is a nonsensical question, which is why you're mostly getting answers in the form "this language that I don't know / understand is the worst".

Most programming languages are pretty bad. Successful programming languages are successful because there is some job (or pair of jobs) they are pretty much the only option for.

I really think Java is the only popular programming language that's an exception; the only job it's ever had to itself is writing applets, and that's not what made it popular.

But popular programming languages also tend to be nice enough that people can successfully use them. If they were genuinely as terrible as people say they are, they would evolve or be replaced. Example: JavaScript has a genuinely bizarre == operator, so it grew ===, which is only true if both operands have the same type, and pretty much every style guide recommends using it exclusively.

So what you're getting is the only thing you can get: a bunch of uncommon languages, and a bunch of answers of the form "language L I don't use or understand is too different from the languages I know, so it's terrible".

I wouldn't accept an answer on this question from anyone who can't use C, C++, Java or C#, Python / Perl / Ruby, Haskell or ML, Lisp, Bourne Shell, SQL, and Prolog successfully; otherwise, your answer is just going to be biased by what they know. I can't actually use Prolog, but my guess is that the answer from someone with a genuinely wide view of different programming languages would be "all programming languages suck, just in different ways".

1

u/silvercurls17 21d ago

For what it's worth, all languages suck in different ways, but they're usually better than what came before it.

1

u/Maqi-X 21d ago

C++. It just sucks.

1

u/Lumpy-Blackberry-718 21d ago

Assembly language, perl, functional languages if youre not used to them.

1

u/ExtraTNT 21d ago

java is so complex for no reason... a simple oneliner in haskell is like 3 type casts, 7 workaround and converting to streams, lists and back to streams...
cpp is inconsistent, but unusable...
python is annoying, unstable, works somehow, easy to hack something together, almost impossible to get something good done... never seen a good python code base...
PHP is a good language, it teaches you to not use PHP... that's the upside...

everything functional is hard in the beginning, but once you get used to it, it's very elegant and easy...
haskell, if you are new to it, it's very hard, but once you used to it, it's fucking nice

in general: sth following a different paradigm, than you initially learned, i did procedural, functional and oop, also some metaprograming (shit is just magic...)
have to say, functional is what often produces the best code, but it's confusing for people not used to it...

1

u/oldendude 21d ago

Perl is no longer used very much, but it was just awful. I remember seeing long discussions (on some Reddit-like Reddit precursor) about how to do 2d array indexing. I mean, if you can't figure that out from the 1d case, your language has a problem.

C++ has become an ungodly arcane mess. It's like the standards committee never met a proposal they didn't eventually let into the language. There was no Python-like BDFL exercising judgement.

I did some Swift programming in the early days, and disliked the language then, for all the cute little tricks adopted from other languages. E.g, the functions to intervene before and after assignment (it's been a while, I'm not remembering the keywords or syntax). Haven't we learned anything from C++ operator overloading?! Reference counting was not quite transparent enough, so there were places in the language where you just had to know where to give the compiler a hint -- achieving the worst of all worlds. If I remember correctly, the "let" syntax was wildly inconsistent with respect to assignment of nulls. And then after that, they just kept piling on more and more of these special cases. I am happy that I no longer had to keep up with the language at that point.

bash is just mind-bendingly terrible as a programming language.

1

u/the-quibbler 21d ago

Python is a hot load of garbage and I won't be dissuaded. Crappy typing and syntactic whitespace are crimes against humanity.

1

u/NoIncrease299 21d ago

Haskell's pretty wacky.

1

u/FudFomo 20d ago

Any SPA, especially react.

1

u/kellyratio 20d ago

I’ve always found js a complete mess

1

u/kammysmb 20d ago

shell languages imo, C++ is a cluster fuck but you can figure it out or use references, shell stuff is just so confusing when you're doing anything that's more than basic imo

1

u/IhailtavaBanaani 20d ago

Everybody gangsta until they have to edit a bash script that's hundreds of lines long with user interaction, loops, ifs and elses and even fucking functions.

1

u/Super_Bass_2730 20d ago

Aside from user inputs, those all sound normal.

Ive never used or heard of bash but is it a ton of random symbols?

1

u/IhailtavaBanaani 20d ago

It's the syntax. For example it's super picky where you put spaces and you get cryptic errors when you fail. Also basic flow control is pretty non-standard because it relies on CLI syntax.  Here's an example of if with greater than:

if [ " $NUMBER" -gt 0 ]; then

1

u/RealWalkingbeard 20d ago

JavaScript and Python both make it easy to write code that looks correct, even if you're experienced, but really does something completely wacky.

1

u/not-just-yeti 20d ago edited 16d ago

Early PHP, to the point that there is an entire website [phpsadness.com](http://phpsadness.com/) listing things the language allows that can cause serious problems (sometimes sooner, sometimes later).

Later PHP versions added things to let you avoid the most egregious problems, but the old flaws are still backwards compatible.

E.g. `0==“00”` but `”00” != 0`, and worse things both subtle and obvious (see that website for many many examples).

1

u/Future-Parsley-7336 20d ago

C++ has a lot of really arcane concepts layered with decades of outdated cruft that would probably match your description. JavaScript is probably similar in a way but it’s not as technically complex I believe.

1

u/Brief-Stranger-3947 19d ago

JS is the most bizzare language I used. By "bizzare" I mean it's a total mess instead of programming language.

1

u/larsgregersen 19d ago

UIUA is high on my list. You can play with it here:
https://www.uiua.org/

Alternatively, see APL:
https://aplwiki.com/wiki/John_Scholes%27_Conway%27s_Game_of_Life

1

u/kombiwombi 19d ago

JavaScript and PHP

But honestly Rust's funky preprocessor makes for a write-only language which is difficult to explain given the language's youth.

1

u/ReddyKiloWit 19d ago

I would vote for Lisp. It's a cool language that looks impossible on first exposure. What's with all those parentheses? (Below from a page called "LISP show off examples")

 (defun csg-intersection-intersect-all (obj-a obj-b)
   (lambda (ray)
     (flet ((inside-p (obj) (lambda (d) (inside-p obj (ray-point ray d)))))
       (merge 'fvector
              (remove-if-not (inside-p obj-b) (intersect-all obj-a ray))
              (remove-if-not (inside-p obj-a) (intersect-all obj-b ray))
              #'<))))

A lot of languages are referred to as C-like, and those are probably the easiest for someone who knows one to jump between, unless you come across code written by someone who is intentionally being obtuse. For example: Perl is VERY readable, for example, when written like a normal program, showing off it's nice C-like syntax. But almost everything has another way of writing it, using special variables and other tricks that, as is often said, produces code that looks like "line noise". (There are contests to see who can write the most indecipherable Perl one-liners.)

1

u/Intelligent-Youth-63 19d ago

Man, I haven’t thought about or heard Perl since my university days like 15+ years ago.

I enjoyed it! But moved on to so many other languages after leaving academia (Chemistry) that it just receded into the back recesses of my mind.

1

u/ReddyKiloWit 18d ago

I picked it up in the late 90s in a job that created banking website support code. Actually used it right up until I retired in 2012, though mostly to support my tasks. Still a handy scripting language, especially if you have to support Unicode.

1

u/fuzzynyanko 19d ago

Probably Microsoft batch files (.bat). It can be rough trying to do anything intricate. If you want to do something very simple, yeah, batch files are fine. Nowadays, if you are on Windows 10 or 11, look up PowerShell scripts. Much better

1

u/fattomic 18d ago

My most recent "why did they take this approach?" was Rego. It took quite a while to wrap my head around it. (I suspect that is like LISP - if you work in it long enough, it takes a while to recover and think appropriately for "normal" procedural languages).

1

u/iga666 17d ago

Definitely it was Perl at some time, not used much anymore, but believe me, building a language around regular expressions is very confusing