What's your least favorite programming language?

Excluding silly languages like whitespace and malbolge, what’s your least favorite language to program in? No poll, since the amount of languages out there is pretty large, and I’m not going to write a huge list only to miss some Allegro LISP or something similarly arbitrary.

Mine is Prolog. I. Hate. Prolog. It operates under the guise of basically being “programming in first order logic, where you don’t have to worry about implementation details.” But every damn bug I’ve had in the language has been an implementation detail, and often betrays logic programming. “And” clauses should be order independent, they’re not. I understand the reason for this, logically, it would probably makes things harder if you had no guaranteed order, but I’ve had some insane infinite recursion bugs I’ve spent hours trying to find because I misordered a length and an append predicate.

The syntax is also unintuitive if it’s not your first language, the concept that you have to pass an uninstantiated variable to get a binding is rather annoying, but would be more tolerable if it weren’t so picky about exactly what can be uninstantiated. If I have a predicate like:


a(X,Y,Z) :- Z is X + Y.

You may, reasonably, think “okay, maybe I can’t say a(X,Y,5) because those are infinite results.” But the way the language forces you to think (binding variables in terms of other variables via predicate), you’re often tempted to do things like a(3,Y,2), but it will give you an uninstantiated variable error since it’s arithmetic. But even then, you can’t overload “a” because then whichever predicate it queries first will throw an error depending on whether you have a specific variable uninstantiated or not. Yes, I’m aware that in pretty much every other programming language you couldn’t do what I’m asking, my point is Prolog tries to lead you down thinking a certain path, but then refuses to allow you to complete that thought. It drives me insane.

So what programming languages do you hate with the passionate fury of a thousand suns?

Edit: Honorable mention is Ocaml. Not because it’s a particularly bad language, it’s actually rather cool in some ways, but rather because ocamlc (the standard compiler) has exactly one syntax error called “syntax error”, and it makes debugging a nightmare.

I’ve only been exposed to a few… BASIC for old 8-bit machines, 8-bit 8022 assembly, Pascal since the early days, Object Pascal, C, C++, Objective-C, VB, VBA, and many of the popular interpreted web languages like Ruby and PHP and Python and Perl.

Ah, Python. White space is important. That sucks. And BASH. I just don’t like its syntax, even though I know why it is the way it is. But those are both scripting languages, so I’m not sure if I should count them.

Compiled languages? Plain, vanilla C, I suppose. Procedural languages aren’t the way I think.

As soon as I saw thread title I thought of Prolog :smiley:

Last time I used it was at college… Borland TurboProlog (everything that Borland did at the time was “turbo”).

But it was fun learning the philosphy behind it, the declarative nature of it, the “red” and “green” cuts in the tree and how easy it was to write query that uses recursion.

Ada. What an awful language. It’s pretty easy to end up with some really nasty nested function calls.

Also any language that’s unintuitive, hard to debug, and obscure enough that finding help on the internet is very difficult. Here’s looking at you, OCaml.

Cobol. Need I say more?

I have a Love/Hate relationship with Haskell. I have installed a Haskell interpreter on every machine I have ever owned since college and played around with it. If you wanted me to write “Hello World!” with it right now without any references, I’d fail. Just can’t wrap my mind around it.

Haskell annoys me, not so much because of the language, but because the community around it is composed entirely of people with their heads up their asses.

I find Erlang is a much more practical (and fun) functional language for my purposes.

As to the language I like the least, that’s easy: Java. Here are the reasons why Java is fucking retarded:

  1. The JVM. Virtual machines may have seemed like a real “neato” idea in the 1990s, but there’s no fucking point to having a whole machine emulator just to run your code. The cross-platform argument is bogus. It’s not that hard to write portable code. People do it in C (C!) all the fucking time. Fuck that noise. They’ve introduced a huge abstraction to hide a few relatively trivial details. It’s not worth it.

  2. There are serious problems with multiple inheritance. So rather than solve those problems with something smart like Traits, they ban multiple inheritance and give you the crippled bullshit that is Interfaces.

  3. No unsigned ints.

  4. The Java culture of ridiculously lengthy and abstruse class names. Concision is not a bad thing when communicating ideas. Fucking Java code is like reading the phone book.

  5. Infinity billion other things that I’ve repressed from my memory.

No.

just…

No.

The classic Visual Basic (not Visual Basic .NET) is a monstrosity. Any language that differentiates x= 4 from set x = 4 must be bizzaro.

Until you try to print something or display it. Yeah, people do it all the time in C because they write to flat files, and use some interface tool that has been ported for them (QT, Motif, etc.)

I’ve been learning Objective C. I like the libraries Apple has come up with, I can’t say I like: [myobject function:parameter parameter_name:parameter]; syntax. Or the retardeness of two step initialization that it shares with VB: [[object alloc] init]; All the time? Really? I can’t [object make_me_a_new_one];?

Ah man, I quess I should proof read. Every face gets a semicolon followed by a “p”

I was going to say, that looks like a rather pleasant language.

Variable = :confused:
Error msg = :smack:
new = :slight_smile:
close = :mad:

FWIW: There is an option to disable smilies in text under Miscellaneous Options

I am not a programmer. But I have written extensive programs in three languages, one of which is not generally considered a programming but is. My favorite is Forth. It just accords with how I think. But it became a religion and the clergy destroyed it. There were no strings, no decimal arithmetic, either fixed or floating point and that killed it. Sure you could implement them, but it would have been painful. Still, I wrote a TeX-like interpreter for one of the Epson printers, in the mid 80s and that was a fairly large program.

I wrote a number of relatively simple programs in Basic, what became GW-Basic, including a primitive editor. It worked pretty well and wasn’t very complicated, but I would not have wanted to do anything really big in it. Still, when I wanted to write a program to average marks, that was my choice. I’ve looked a couple Basics out there, installed one or two, and I cannot figure out how to use them. I used to use U-Basic, a very nice language with loooong numbers but it will not run on my 64 bit Win 7 box.

But TeX itself can be used as a programming language and I have written some fairly elaborate graphics programs in it. Like all programming languages, it has its problems but it is pretty good.

I have also written a few small programs in Fortran and Pascal, but the less said about them, the better. I once tried C, but didn’t much like it. Ditto for Lisp.

I’m tempted by the project I’m currently working on to name Fortran77. But you know what, that’s not really fair to the language. I’ve seen enough of the language that I can see that it would be possible to write really clear, clean, elegant code in it. And it even has some clever little tricks that I haven’t encountered in any other language. My problem isn’t actually with the language itself; it’s with the generations of programmers before me who have left me with this code, and of whom almost all had no clue about how to program, in any language. Good programmers can write good code in any language, and bad programmers can write bad code in any language.



main = print "Hello World"


My least favourite language is VBA.

I’m going to go with TCL, which is a scripting language with all of the usual problems that scripting languages have without much by the way of unique features to recommend it. One particular idiocy of the language is that catch statements not only catch exceptions thrown with throw, but values returned by return. For the life of me I cannot understand how the language’s designer ever thought that could be useful.

Honourable mention to C++, which was a wonderful idea in theory that was botched in basically every way possible in implementation. Bjarne Stroustrup should be tried for crimes against formal language theory.

ABAP. The only language I know in which (foo bar) is semantically different from ( foo bar ) (the difference being the spaces around the parentheses). And that is just a mere taste of ABAP’s many quirks.
You may be thinking “ABAP? What’s that?”, but many of the manufacturing companies you’ve heard of depend on it.

I think Lisp was the worst language I didn’t ever write code in. I’d get about 30 pages into the book and I’d throw the book against the wall. My brain seems to have an overflow when I nest parentheses about 5 deep.

C was the worst language I actually did use. It seems designed to shoot yourself in the foot. Most current computer security problems are caused by C.

The problem with Lisp is that they kinda missed the idea that languages are languages because different symbols mean different things. It’s like trying to write English with an alphabet of two letters. Works great for a computer, utterly useless for a human.

Luckily I’ve never had to do any Lisping more involved than tweaking an occasional Emacs thingy.

x86 assembly language.

Of all processors that could have become popular, it has to be this one?!?! Gah!

Agree with PROLOG, I can’t just can wrap my head around it. Maybe I am too used to procedural programming.

I know that C# resembles Java on many levels (both being JIT and all that), but I prefer using delegates (C#) over extending another darn IButtonListener or what-not.

A few years again, I would put down any variant of functional programming because I do not see the point. It’s only until PHP and C# introduce closures and I finally got to use them when I understand how powerful it can be.