[NA] Which programming language is the worst?

What is the worst language you've had to code in?

  • Perl

    Votes: 5 13.5%
  • C

    Votes: 1 2.7%
  • Cobol

    Votes: 6 16.2%
  • Fortran

    Votes: 6 16.2%
  • Assembly

    Votes: 4 10.8%
  • LISP

    Votes: 6 16.2%
  • Java

    Votes: 4 10.8%
  • C++

    Votes: 3 8.1%
  • Some proprietary non-sense

    Votes: 14 37.8%
  • Basic

    Votes: 4 10.8%

  • Total voters
    37
You'll notice Python wasn't even an option for most hated in the vote list... No one in their right mind would think to vote that :)

Though the only thing I dislike about Py is that in my industry (finance/data science), a lot of people learn like 3 pandas functions and declare themselves competent engineers (advent of GPT has not helped).
It's a lot like people who discover VLOOKUP for the first time and think they're now an Excel whiz...

Someone started at a new job a while back (I wanna say April, but can't recall) and someone there had Excel files with formulas 17 to 20 nested IFs deep in a single cell. Excel wizards indeed.
Her previous team did a lot of VBA work for 5+ years each, but not single one of them knew about SELECT CASE and they had If Then statements for 12+ different conditions. I've got 28 years of VBA under my belt, and I cried. I showed her SELECT CASE (she'd not worked with VBA when she joined the team) and within a few weeks everything was changed over, and they thought I was some kind of savant.
 
While I have no personal experience with it, I've heard it said that they made Perl by combining all of the bad aspects of other languages into one single, terrible language.
No, that wasn't perl, it was PL/I. Huge but made up for it by being slow. Or the other way around.
 
So you guys use/used these languages, which is amazing to an outsider like me (I did BASIC in high school) but who creates the languages? Not sure what I’m even asking, lol.
You really don't want my 20 min lecture to my beginning computer science class. It starts with...there are over 300 programming languages out there, don't fall in love with [python, java, c#, etc] if you want to stay in the business. Be prepared to get up to speed on the new language in a week, worth your paycheck in a month. The only way is to understand the basics of procedural languages, after that, it's merely

"paren/square bracket/curly bracket/angle bracket/colon/semi-colon/spaces/period/quotes, ah sh*t, where's the reference manual?"

Mantras
1) The program is not the solution. The program is the implementation of the solution.
2) Think First, Code Last.

Even better, be fantastic at problem analysis & developing the solution. We can offshore the programming, we can't offshore the domain knowledge.
 
Someone started at a new job a while back (I wanna say April, but can't recall) and someone there had Excel files with formulas 17 to 20 nested IFs deep in a single cell. Excel wizards indeed.
Her previous team did a lot of VBA work for 5+ years each, but not single one of them knew about SELECT CASE and they had If Then statements for 12+ different conditions. I've got 28 years of VBA under my belt, and I cried. I showed her SELECT CASE (she'd not worked with VBA when she joined the team) and within a few weeks everything was changed over, and they thought I was some kind of savant.
But hey, with Excel's super advanced syntax highlighting, or even it's retaining of formatting of the formulas, it's easy to keep track of where you're at in those nested IF statements! :p /sarcasm

At my first job we had an insurance client who sent us big CSV files of their financial holdings, but due to constraints on their end they had to send them as like 10-15 different files. Our account team was entirely non-technical consultants, somewhat versed in Excel but nothing else.
So every morning they would stitch these holdings together by hand into one mega file and load them into our system via a browser. When I eliminated the need for a human being to do this every morning at 7 am by writing a 5 line python script that automatically copied it to where it needed to go, their mind was blown.

But that was nothing compared to when I introduced them a cron job, when I set up a couple tasks there you could have been forgiven for mistaking me for Jesus H Christ himself. Probably made my whole year in the eyes of my boss by introducing them to technical tools that had been around since the dawn of time. But better to play the savant card for compensation reasons :happydance:
 
But hey, with Excel's super advanced syntax highlighting, or even it's retaining of formatting of the formulas, it's easy to keep track of where you're at in those nested IF statements! :p /sarcasm

At my first job we had an insurance client who sent us big CSV files of their financial holdings, but due to constraints on their end they had to send them as like 10-15 different files. Our account team was entirely non-technical consultants, somewhat versed in Excel but nothing else.
So every morning they would stitch these holdings together by hand into one mega file and load them into our system via a browser. When I eliminated the need for a human being to do this every morning at 7 am by writing a 5 line python script that automatically copied it to where it needed to go, their mind was blown.

But that was nothing compared to when I introduced them a cron job, when I set up a couple tasks there you could have been forgiven for mistaking me for Jesus H Christ himself. Probably made my whole year in the eyes of my boss by introducing them to technical tools that had been around since the dawn of time. But better to play the savant card for compensation reasons :happydance:
Good grief....BTDT. Contract at the USAF Academy, a SQL program (database) took 2 hrs to run. Fortunately, it was one of those "on demand" reports. I re-wrote it during lunch, took 5 minutes to run. Was then told it couldn't be used because new development wasn't in the contract. No, this wasn't new development, it was maintenance, which was the entire contract. The program manager (also a contractor) was clueless an idiot and one of the reasons I left after 3 months.
 
Good grief....BTDT. Contract at the USAF Academy, a SQL program (database) took 2 hrs to run. Fortunately, it was one of those "on demand" reports. I re-wrote it during lunch, took 5 minutes to run. Was then told it couldn't be used because new development wasn't in the contract. No, this wasn't new development, it was maintenance, which was the entire contract. The program manager (also a contractor) was clueless an idiot and one of the reasons I left after 3 months.
I don't know what's worse, a blind, moronic rule-follower (like the manager you're mentioning) or the questionable developer who built a report that took 24x longer to run than your version :D
But that experience sounds a lot like my family member's experience working in military contracting. Some things you don't touch and problems you don't solve, no matter how absolutely, obviously completely solvable they are, because your contract specifies you're not responsible for X.
So instead, let's all wallow in misery and wait for general atomics to send out some overpaid technician to come out and do it for us! We'll just live with broken stuff for a week... because rules.
 
Last edited:
One of my current mainstay clients is insurance too. They run Excel. For mac!

I was able to hack together some API integration in Mac VBA by dropping to a command line, running wget, and parsing the results back into a workbook. (VBA XHR support doesn't exist in the mac version for unknowable reasons) -- whatever their feelings are on it, >I< feel like I'm doing dark arts with this terrible code.

All because nobody in the company had the tetleys to stare down the sales or underwriting team and get them off of their Excel habits. SOOOO much tribal knowledge locked away in buggy spreadsheets that I am slowly extracting into lambda functions for use elsewhere.

But now I am un-fireable since nobody else does VBA in the company and the more lambdas filled with tribal knowledge I accumulate, the more I can integrate them elsewhere in the company and spread my sunshine.

It's utterly ridiculous. The upside is, it's the contractor equivalent of "rest and vest", which I dub "chill and bill" :D
 
One of my current mainstay clients is insurance too. They run Excel. For mac!

I was able to hack together some API integration in Mac VBA by dropping to a command line, running wget, and parsing the results back into a workbook. (VBA XHR support doesn't exist in the mac version for unknowable reasons) -- whatever their feelings are on it, >I< feel like I'm doing dark arts with this terrible code.

All because nobody in the company had the tetleys to stare down the sales or underwriting team and get them off of their Excel habits. SOOOO much tribal knowledge locked away in buggy spreadsheets that I am slowly extracting into lambda functions for use elsewhere.

But now I am un-fireable since nobody else does VBA in the company and the more lambdas filled with tribal knowledge I accumulate, the more I can integrate them elsewhere in the company and spread my sunshine.

It's utterly ridiculous. The upside is, it's the contractor equivalent of "rest and vest", which I dub "chill and bill" :D
Nice!
The good news is if you're working with most insurance companies they'll no doubt have already set up an op-plan to get off Excel.
The project roadmap probably goes back to 2005 when the idea was first floated to abandon Office 97, has been continually evaluated through today, and will have a phased approach to shift app usage by functional group starting in 2043 and ending in 2143.
 
I learned COBOL using punch cards, which compounded the hatred. The card punch was in the math & science building, the card reader was on the other side of the campus in the admin building. This was in January, so I had to trudge back and forth in the cold and snow. Uphill both ways.

I still have nightmares.
 
What I love most about excel is when I request data from a company, and they send it in Excel, but use it like Publisher or Word.
 
Nice!
The good news is if you're working with most insurance companies they'll no doubt have already set up an op-plan to get off Excel.
The project roadmap probably goes back to 2005 when the idea was first floated to abandon Office 97, has been continually evaluated through today, and will have a phased approach to shift app usage by functional group starting in 2043 and ending in 2143.

lol -- are we coworkers? :D
 
What I love most about excel is when I request data from a company, and they send it in Excel, but use it like Publisher or Word.
Oh, this is (one of) my pet peeves. "Why are you pasting pictures and typing paragraphs into Excel?"
 
Surprised Pascal wasn't mentioned.
That was my introduction to programing in early 90s. Couldn't figure out when to use "function" and when to use "procedure".
 
Surprised Pascal wasn't mentioned.
That was my introduction to programing in early 90s. Couldn't figure out when to use "function" and when to use "procedure".
pascal is the best useless language out there. My favorite part of pascal is the senseless contextual use of ;
 
I’ve never written code for a living, although for some years I hacked together enough C for PIC micros to make a nice little side business. I’ve had to maintain and modify a good bit of various crap for work, and I learned BASIC and COBOL back when both were still in common use. Oh, then Pascal, and Perl, and a couple others. I used bits and bobs from time to time in my various jobs for automation and other stuff.

In my own experience, Perl was an absolute nightmare. Writing my own stuff in Perl - no sweat, easy peasy. But trying to get anything that anyone ELSE had written to run on any system I had? No, sorry, that needs a bunch of libraries. Oh, and those need other libraries. And eight layers of that later, “Sorry, that obscure library doesn’t exist for your specific Linux kernel version”. I concluded that most Perl code written would apparently run only on the specific machine on which it had been poorly written. I guess things are better now, as long as you don’t have a problem with letting some automated tool install a few million lines of someone else’s code on your system.

Anything I do now is likely to be a bash script.
 
Surprised Pascal wasn't mentioned.
That was my introduction to programing in early 90s. Couldn't figure out when to use "function" and when to use "procedure".

I’ve been making a living working with Pascal (well, Delphi, but still…) for 19 years now.


Sent from my iPhone using Tapatalk
 
R
I’ve been making a living working with Pascal (well, Delphi, but still…) for 19 years now.


Sent from my iPhone using Tapatalk
Really interested, in what industry it is used still. I know Skype was written in Delphi.
 
pascal is the best useless language out there. My favorite part of pascal is the senseless contextual use of ;
It was good for what it was used for at the time, which was teaching students structured programming instead of spaghetti code. In the early 80's it was a big revelation that you could program without Goto statements and line numbers.
 
Last edited:
How about Ruby? Rails was one elegant piece of coding. Blocks rock.
 
It was good for what it was used for at the time, which was teaching students structured programming instead of spaghetti code. In the early 80's it was a huge revelation that you could program without Goto statements and line numbers.
Yeah, Pascal was more of a “teaching” language. But structured programming is a portable skill. I tried training the “new” guys to use plain-language algorithms first as part of a design method, but they all seemed to want to jump right in to whatever Python or whatever they were using. The bad part was readability and maintainability, and only they could understand why it worked. Sometimes they didn’t understand how it worked, though. And if it didn’t work they’d just throw more code at it. We used to call that, “brute force and ignorance”.

I’m glad I retired.
 
readability/understandilibity of code is kind of, um, interesting.

the old joke wrt C was that programmers assigned to maintain some C code would always complain about the "spaghetti code" and rewrite the routine. They'd complain about it even when it was written by them only a few months ago.
 
readability/understandilibity of code is kind of, um, interesting.

the old joke wrt C was that programmers assigned to maintain some C code would always complain about the "spaghetti code" and rewrite the routine. They'd complain about it even when it was written by them only a few months ago.
Past me has screwed me more than anybody else in my career. I also occasionally leave apologies in the comments for myself or others when I leave something I know is a mess to be dealt with later. And, of course, the "woe unto thee" if you try to modify this procedure warnings. Convoluted problems sometimes require convoluted solutions.
 
readability/understandilibity of code is kind of, um, interesting.

the old joke wrt C was that programmers assigned to maintain some C code would always complain about the "spaghetti code" and rewrite the routine. They'd complain about it even when it was written by them only a few months ago.
LOL....yup.

When I was fresh out of grad school, I got a contract to clean up a small business dBase project that was coming apart. Basic accounting and inventory mamagement stuff - the usual.

I got the source code and immediately saw the problem. The project lead (a cute blonde programming student), thought that it was a great idea to use animal names for variables. Seriously. Instead of "Float32InvoiceAmt" or "IntQtyInStock" she had written the entire project using "Cat", "Dog", "Bear", "Snake", etc. :mad2:

Apparently, some CS professor along the way had told her that variable names didn't matter.

Solution? Apply grep liberally.......
 
Last edited:
Me: "This doesn't make any sense. Who was the idiot that wrote this code?"
Coworker: "You. You wrote it, that's why I'm asking you about it."
 
LOL....yup.

When I was fresh out of grad school, I got a contract to clean up a small business dBase project that was coming apart. Basic accounting and inventory mamagement stuff - the usual.

I got the source code and immediately saw the problem. The project lead (a cute blonde programming student), thought that it was a great idea to use animal names for variables. Seriously. Instead of "Float32InvoiceAmt" or "IntQtyInStock" she had written the entire project using "Cat", "Dog", "Bear", "Snake", etc.

Apparently, some CS professor along the way had told her that variable names didn't matter.

Solution? Apply grep liberally.......
In the 90's I worked with a guy that liberally used unions in C so he could use variables for two purposes in a function without allocating more memory. If he needed a variable a hundred lines into the function (yeah, I know, lots of issues here) he'd just find one of the type he needed and create a union for the new name and start using it for that from then on. When I had to work on his code the first thing I would do is get rid of all the unions. Most of the time that was all that was needed to fix the bug, but on at least one occasion, it created a bug due to the fact that the code sometimes expected the variable to be shared memory. Absolutely insane to think anyone would do something so crazy.
 
Last edited:
What, no option for JCL?

I have an associates in comp si that was earned when dinosaurs roamed the earth and was necer used.

Favorite: 360/370 assembly language
Least favorite: Cobol

Everything else I learned falls within the above spectrum. By the end of my time using IBM mainframes I could write a oretty decent JCL stack for my jobs, although I could still FUBAR it once in a while.
 
"spaghetti code"
My one (and only) adventure with SQL - calling it with FORTRAN 77 on VAX-VMS (probably 80's). The SQL commands worked fine in the main program, but for reasons I never understood, you couldn't embed them in subroutines. So, since I was supposed to be writing a tool for "short term temporary use" - the heck with it - one long unstructured main routine.

They were still using it long after I left that department.
 
Unfortunately I got my start in VBA - which isn't case sensitive on variables, and I would lazily type without worrying about case. Oh, the problems that caused me later on with others.
 
R

Really interested, in what industry it is used still. I know Skype was written in Delphi.
The company I work for has several different divisions. One of them develops and supports pension software for public funds. It started out as FoxPro. Version 2 was written in Delphi. Version 3 is web based and actually uses proprietary tools for the business logic. There are still several clients using V2, which is the version I primarily support.

It was mentioned that Pascal is a "teaching" language. That's exactly how I was introduced to it 35+ years ago. In high school I was a "grunt" at a software firm. A friend of mine was studying to be a programmer there. He was using Turbo Pascal. I knew Basic from C-64 and other machines already, but also did the Pascal thing. Funny that two decades later I'd end up using it again.
 
What, no option for JCL?

I have an associates in comp si that was earned when dinosaurs roamed the earth and was necer used.

Favorite: 360/370 assembly language
Least favorite: Cobol

Everything else I learned falls within the above spectrum. By the end of my time using IBM mainframes I could write a oretty decent JCL stack for my jobs, although I could still FUBAR it once in a while.

Sounds familiar. When I did my math degree I minored in computer science. My early CS courses used a Xerox/Honeywell mainframe and we had teletype machines. There were only a handful of teletypes, so we often had to wait for one to free up. When I took COBOL, a concurrent FORTRAN class had priority for the teletypes and we were relegated to card punch machines.:(
 
My first programming class in college was C, then when I transferred to a 4-year school in Computer Engineering, the 200-level class was C++. Then when I came back to school after a 4 year hiatus, the 'intro' class was Java. For whatever reason, our 'capstone' class for MIS was a Ruby on Rails project, which I have not used any reference to since then.

I had an internship during college that I had to learn VB.NET and C#.NET to manage a DotNetNuke CMS.

I got my first job out of college because I told the Ops Director that I could get their Excel-based operational metrics dashboard onto a web based platform in no time. That got me pushing out PHP (I know - it's technically 'scripting' vs. 'programming' - but I did get to the point that I was doing multi-threading with PHP to build out a real time data warehouse for metrics capture and reporting - that was ~15 years ago. PHP may do native multi-threading by now). Eventually my skunk-works PHP stuff got picked up by corporate IT and I transitioned to IT to redevelop the platform in Java - but it was the absolutely horrendous framework of Oracle ADF. THAT. SUCKED. After I got that all stabilized, I moved back to Ops and focused less on code and more on data and process analysis. That introduced me to Python (and a very little bit of R).

Jumped to consulting and specifically in automation and that pushed me back into Java which I did for a few years while swapping between my Ops and IT hat (sometimes mid-conversation). I haven't really done any coding in several years now, though. Every once in a while I'll dig out an old Raspberry Pi and try to come up with some cool project that I can dive into to re-hone the coding skills, but then basketball or soccer, or whatever comes up and the RPi ends up in the box and I end up uninstalling IDE's.

Out of all of them that I've used or at least tinkered with, Oracle ADF (as a framework, at least) reigns supreme in the suckage factor, but Perl is a close second just because... WTF!?
 
My one (and only) adventure with SQL - calling it with FORTRAN 77 on VAX-VMS (probably 80's). The SQL commands worked fine in the main program, but for reasons I never understood, you couldn't embed them in subroutines. So, since I was supposed to be writing a tool for "short term temporary use" - the heck with it - one long unstructured main routine.

They were still using it long after I left that department.
We used to call that a "PTF" - Permanent Temporary Fix.
 
The company I work for has several different divisions. One of them develops and supports pension software for public funds. It started out as FoxPro. Version 2 was written in Delphi. Version 3 is web based and actually uses proprietary tools for the business logic. There are still several clients using V2, which is the version I primarily support.

It was mentioned that Pascal is a "teaching" language. That's exactly how I was introduced to it 35+ years ago. In high school I was a "grunt" at a software firm. A friend of mine was studying to be a programmer there. He was using Turbo Pascal. I knew Basic from C-64 and other machines already, but also did the Pascal thing. Funny that two decades later I'd end up using it again.

For its time, Turbo Pascal was a well packaged platform, which had a lot to do with its wide adoption. As a student, you could wander into any college bookstore and buy the book and 5" floppy with compiler, IDE, and libraries. No installing, no admins, just launch the disk on any PC and program away.

Only the oldest of us remember a world without PCs on every desk. But Turbo Pascal was perfectly situated to take advantage of that explosion in the 80's, and far superior to Basic, the previous candidate for ubiquity.

Pascal looks clunky now, but it was awesome compared to the common tools of the 70's: Basic, Fortran, Cobol, etc.

Pascal lost out to Java because they were late to the OOP party. I remember in CS classes in the mid 80's being told "someday there will be languages with objects built in."
 
Based on my user experiences, ALL computer languages suck!
- Is it too hard to make a button flash so I know that I actually pressed it? Windows 3.0 did it! Phone/tablet software running on hardware with more memory and CPU speed than anywin 3.0 machines can't do this!
- In concert with above, how about some feedback that the program/app/whatever is waiting on data from somewhere else? "I thought I pressed the button, did I really do so? I'll press it again! Now I have two instances of a web page or something!"
- It is apparently too hard to use the proper keyboard for a phone/ tablet app. If I'm entering a phone number, use the phone # keyboard. Use a numeric keyboard if that is the input! I know they are available! ForeFlight uses a good language- it capitalizes the letters when entering airports, for example.
- Not all inputs start with a capital letter- turn that setting to "off" for that control! Examples include passwords!
- Web pages, data entry, etc.- move the focus to a control so I can just start typing!
- When correcting spelling, highlight the new word so I can see that the correct correction was chosen! I find it easier to see a misspelled word over proper spelling used in the wrong context!
 
Basic, the previous candidate for ubiquity.
Basic, as VBA, is everywhere. I use VBA mainly because I can send it to most people as an Excel File without installing, admin, etc. Some companies disable VBA, but they seem to be in the minority.
 
readability/understandilibity of code is kind of, um, interesting.
Reminds of the Obfuscated C Contest. For example,
C:
char*lie;

    double time, me= !0XFACE,

    not; int rested,   get, out;

    main(ly, die) int ly; char **die ;{

        signed char lotte,


dear; (char)lotte--;

    if (atoi(die[1])<1) exit(1);
    for(get= !me;; not){

    1 -  out & out ;lie;{

    char lotte, my= dear,

    **let= !!me *!not+ ++die;

        (char*)(lie=


"The gloves are OFF this time, I detest you, snot\n\0sed GEEK!");

    do {not= *lie++ & 0xF00L* !me;

    #define love (char*)lie -

    love 1 *!(not= atoi(let

    [get -me?

        (char)lotte-


(char)lotte: my- *love -
    
    'I'  -  *love -  'U' -

    'I'  -  (long)  - 4 - 'U' ])- !!
    
    (time  =out=  'a'));} while( my - dear

    && 'I'-1l  -get-  'a'); break;}}

        (char)*lie++;


(char)*lie++, (char)*lie++; hell:0, (char)*lie;

    get *out* (short)ly   -0-'R'-  get- 'a'^rested;

    do {auto*eroticism,

    that; puts(*( out

        - 'c'
    
-('P'-'S') +die+ -2 ));}while(!"you're at it");


for (*((char*)&lotte)^=

    (char)lotte; (love ly) [(char)++lotte+

    !!0xBABE];){ if ('I' -lie[ 2 +(char)lotte]){ 'I'-1l ***die; }

    else{ if ('I' * get *out* ('I'-1l **die[ 2 ])) *((char*)&lotte) -=

    '4' - ('I'-1l); not; for(get=!


get; !out; (char)*lie  &  0xD0- !not) return!!

    (char)lotte;}


(char)lotte;

    do{ not* putchar(lie [out

    *!not* !!me +(char)lotte]);

    not; for(;!'a';);}while(

        love (char*)lie);{


register this; switch( (char)lie

    [(char)lotte] -1 *!out) {

    char*les, get= 0xFF, my; case' ':

    *((char*)&lotte) += 15; !not +(char)*lie*'s';

    this +1+ not; default: 0xF +(char*)lie;}}}

    get - !out;

    if (not--)

    goto hell;

        exit( (char)lotte);}
 
Based on my user experiences, ALL computer languages suck!
- Is it too hard to make a button flash so I know that I actually pressed it? Windows 3.0 did it! Phone/tablet software running on hardware with more memory and CPU speed than anywin 3.0 machines can't do this!
- In concert with above, how about some feedback that the program/app/whatever is waiting on data from somewhere else? "I thought I pressed the button, did I really do so? I'll press it again! Now I have two instances of a web page or something!"
- It is apparently too hard to use the proper keyboard for a phone/ tablet app. If I'm entering a phone number, use the phone # keyboard. Use a numeric keyboard if that is the input! I know they are available! ForeFlight uses a good language- it capitalizes the letters when entering airports, for example.
- Not all inputs start with a capital letter- turn that setting to "off" for that control! Examples include passwords!
- Web pages, data entry, etc.- move the focus to a control so I can just start typing!
- When correcting spelling, highlight the new word so I can see that the correct correction was chosen! I find it easier to see a misspelled word over proper spelling used in the wrong context!

Screenshot_20240301-195047.png
 
Back
Top