share
Stack OverflowWhat is the strangest programming language you have used?
[+50] [131] Anders Sandvig
[2008-09-15 14:11:35]
[ polls experience practical war-stories ]
[ http://stackoverflow.com/questions/63241] [DELETED]

For me I think it has to be the scripting language of an old proprietary telephony platform I used in the early 2000s. The language itself was not so bad, but the fact that it was meant to be edited with a drag-and-drop GUI, which did not expose all the functionality I needed, was quite frustrating. I also remember having to manually implement many common functions, such as calculating the length of a string.

Whenever I wanted to use "custom" or "advanced" functions, I had to edit the script files in a text editor, but as soon as I opened the files in the GUI again they were reformatted and restructured, which usually resulted in broken code. And, of course, this was an interpreted language, so I would not know it was broken until I actually ran it—oh, and did I mention that it did not run the same in the simulator as in the live environment?

So, what is the strangest programming language or environment you have used, and why did you use it?

Note that I'm interested in languages and environments that you have actually used for "real-world" situations, so Whitespace, Brainf**k and friends are not valid—unless you have used them for something "real", of course.

So you dont mean LOLcode then? - Marc Gear
Indeed, I don't. - Anders Sandvig
How long was the piece of string? - Rich Bradshaw
Asci, UTF8, UTF16, UTF32 or something else? - Tim Matthews
(1) aawwwww.... Brainf**k is not valid. :/ - Arnis L.
(3) This should be a community wiki. - Xavier Ho
(2) Duplicate of stackoverflow.com/questions/63241/… - nico
I voted for 'not a real question' before I knew there was a duplicate. The question should be closed, no doubt about it. Just don't get hung up on the 'not a real question' part, it's really a duplicate. - George Stocker
I'm surprised war-stories is a tag... - Jakub
[+40] [2008-09-15 14:54:31] Schnapple

My second job (circa 2003) had me programming web surveys in a scripting language called Quancept. Although the product it was currently in was designed to do web surveys, the language supposedly had its roots in the 1960's, doing phone surveys. Whether this was ever true I never followed up on but it clearly was an ancient language - no functions, no way to reuse code, etc. Every "question" and "answer" you asked people had to be hardcoded into the script. And it was very limited, but it never failed that the client wanted something herculean done with the presentation of the questions that no amount of scripting or CSS was going to be able to pull off (the resulting HTML had no useable pattern). It had some neat stuff, like how it could randomize answers (to offset people who just picked "C" and moved on) but keep track of where the responses go, but I was dying for a "real" language.

Interestingly, the way I moved up in the company was to make a C# program that would generate code for it. Clients would send us the survey in the form of a Word document. I could paste the question into the "question" textbox, paste the answers into the "answers" textbox, click a button and voila - the necessary script was generated, with all the Word stuff (like the apostrophes and dashes and so forth that the compiler would choke on) stripped out. It would even add it to a running script in the bottom pane and increment question numbers automatically.

When I offered it to my coworkers, they declined to use it. They said that they didn't really trust it but I think the real fear was that it might underscore how trivial a job it was and how unnecessary it was to have them sit there and do it.

And since doing this and some other stuff in C# got me noticed, I advanced in the company. And the scripting job I used to do got offshored (all the aforementioned coworkers saw the writing on the wall and jumped ship by then).

So the happy ending to the story is that I automated myself out of that shitty job and into a better position.


(3) Interesting story. Exactly the kind of "war story" I was looking for. :) - Anders Sandvig
(1) I just left a market research job... quancept - and it's processing companion Quantum - are special little languages - MattBelanger
(1) thinkgeek.com/tshirts-apparel/unisex/frustrations/374d This t-shirt fits very well. - Ólafur Waage
1
[+27] [2008-09-15 18:55:36] user9356

APL. I used it in a programming course I took in high school around 1980. Quite mind boggling.

To back up my case, here are some samples from Wikipedia. See if you can guess what they do without reading the wikipedia article:

↑6?40

X[⍋X+.≠' ';]

(∼R∈R°.×R)/R←1↓ιR


I can't be sure it even rendered correctly here. I liked the overstrike characters in the first version--very creative. APL set me up for the "carry everything you've built around with you" workspace that I later enjoyed with FORTH. - gbarry
I liked APL. We used it for Physics class back in college. Don't remember enough to have any idea what the above code does though 8-) - runrig
My numerical methods course was in APL. The prof did automated grading of our programs. They had to work and the fewer characters they were, the higher your grade. - Nosredna
Extremely concise, non-ASCII, array-oriented, functional, usable without loops and conditional statements, ancient---definitely the strangest language I've seen. I only recently learnt about it and was so inspired that I decided to write my own interpreter. - ngn
2
[+25] [2008-10-17 16:55:36] dviljoen

I'm inviting a flame war, but Perl! Craziest freaking language in the world! I know!!! Its powerful. Yeah, yeah. I get it. But I still think its a crazy, weird language. Just trying to figure out your execution context at any point in a perl script will make you go postal (no offense to any of our fine postal carriers out there).

Also, can't remember the name of it, but there was a dos-based mortgage processing system I used years ago that had its own precompiled language and database format. It was a screwy system. Somebody help me out who knows.


(1) Re Perl - ain't that the truth. Once you get the hang of it, you can do some great stuff very quickly, but it doesn't leave your brain the same as it was before - and not in a good way, like LISP. - Tom Anderson
(2) Perl; the way I write it is fine. It's when I read some "guru's" obfuscated "ain't my code economical and awesome" monstrosity, that I find myself wanting to check-in to a rubber room at Arkham. Yes, it's very nice that you can write in one line what takes me 50. Why didn't you write it in ASM? Code has two purposes: Communicate instructions to the machine, and communicate instructions to the other programmers who have to maintain it. Perl is a great language, but can often fail spectacularly at purpose #2. - NDP
@NDP Word up! Sorry, I mean: yes, totally. Clever code is about the dumbest thing you can do to your future self, in any language. - Yar
3
[+24] [2008-09-19 22:48:59] vog

XSLT [1] is a very strange language.

It is purely functional (no side effects) as Haskell, but has a very clumsy syntax (XML) and has a very limited set of abstraction mechanisms. It's a useful template language for text based and XML based output formats.

It is quite readable (to the extent XML can be called "readable") and it's easy to adjust existing XSLT templates. However, creating new XSLT templates from scratch is a real pain.

[1] http://en.wikipedia.org/wiki/XSL_Transformations

(6) I actually thought that XSLT was a very elegant way to transform one xml document into another. I used it do do just that as a batch process with a large number of UI pages defined in XML for a (now published) game I was working on. I also created XSLT to create shcmeas from similar component defs. - Tom Leys
If you take a closer look at it, you'll see that templating and transforming tree structures are nearly the same thing. :-) And yes, templating (i.e. creation of HTML and PDF representations of plain XML data) is the one application the whole XSL is designed for. - vog
(2) It's also Turing complete: unidex.com/turing/utm.htm - Josh Lee
4
[+20] [2008-09-15 14:55:21] Mario AT

MUMPS is a very good candidate : 1 letter commands. They never heard of something like mnemonics. You can put as many letters ( errr, commands) in a line as you like. Have you ever heard the term letter soup? Well, this is a MUMPS program. Very probably, one can make all calculations to send a rocket to the moon in a couple of pages program.

MUMPS is an Operational System and language at the same time. Because of this it is extremely powerful and compact, but absolutely weird. Is mostly used to control medicines, stocks and everything related in hospitals, but, due to its size and speed, it is good for any kind of inventories control. Currently it also can be found as an object oriented language with GUI's and all, and not only in the old "DOS" or text style.


You have to realize where it started though... working on a PDP-9 back in 1971?!? where memory was at a total premium. I worked with MUMPS for 10 years and it gave way to very concise programming when the max sometimes your programs could be was 1000 characters or less :P - SomeMiscGuy
I applied to work at Meditech, creator of MUMPS, a couple of times. I remember taking an M/MUMPS test as part of the interview, but can't remember anything about it. - SarekOfVulcan
All of the MUMPS commands have mnemonics (S=SET, G=GOTO, W=WRITE). They just aren't used by most programmers since the size of the source code matters for performance, at least on the older platforms. Anyway, there aren't that many commands so this quickly becomes intuitive. The lack of any way to break out of a nested loop (you usually end up setting a quit flag and checking it all the time) is definitely a bigger problem than one-letter commands. - Nate C-K
5
[+17] [2008-09-15 14:54:49] kristof

Prolog [1]

I have enjoyed it though :)

[1] http://en.wikipedia.org/wiki/Prolog

prolog must die!!!! The problem is, XSLT is almost the same thing.. - Alex
Yes :) - Tim Matthews
@Alex -they're completey different: xslt is just another functional language, but prolog is a logical* language, orders of magnitude more complex - annakata
6
[+14] [2008-09-15 21:53:41] Omegatron

Definitely LOLCODE [1]

Example lolcode program:

 HAI
 CAN HAS STDIO?
 I HAS A VAR
 IM IN YR LOOP
    UP VAR!!1
    VISIBLE VAR
    IZ VAR BIGGER THAN 10? KTHXBYE
 IM OUTTA YR LOOP
 KTHXBYE
[1] http://lolcode.com/

(13) But did you really used this language? - romaintaz
This really made me laugh ;-) - drhirsch
@Koning Baard XIV: I would really like to se your php interpreter for LOLCODE :) - AntonioCS
@Koning - isn't is 'TEH' not 'THA' in lolcode? - Skilldrick
(1) MOST AWSUM. WILL BE INCLUDD IN R NEXT RELEASE - Michael Baker
I CAN HAS UPVOTE - Stephen Furlani
7
[+11] [2008-09-15 17:36:22] MtotheThird

Definitely Prolog. Learning that language broke my brain and forced me to completely rebuild my programming skills from scratch, and I'm a better programmer for it.

I had to learn it while working on a control system for a hypermach windtunnel -- thousands of sensors and a complex web of constraints designed to keep the whole thing from exploding. Prolog was the perfect language for it, and actually the system was quite elegant. Just with a terrible UI. :)

I have to say, though, ChucK [1] is awesome, and my canonical example of a domain-specific language done exceedingly right.

[1] http://chuck.cs.princeton.edu/doc/language/

8
[+11] [2008-09-15 14:39:22] Rikalous

Forth [1] - bonkers. Brilliantly bonkers.

[1] http://en.wikipedia.org/wiki/Forth_programming_language

You can't find a link for Forth? Actually I don't think Forth is all that strange. - BubbaT
I don't either. But everyone else does. - gbarry
Lotsa luv for FORTH. A couple of colleagues had developed an assembler in FORTH (where you also wrote the assembler in FORTH, then X-compiled) that was strange at first, but soon a thing of beauty. Used it quite extensively some 25 years ago. Would not mind using FORTH again if I ever came that close to writing assembler again. - fredarin
9
[+10] [2008-09-15 14:25:16] Joel Coehoorn

DOS batch. It's a pain to do anything significant at all.


The original MS-DOS batch language was quite limited, yes, but both Windows NT/2000/XP/2003 and 4DOS/4NT have some neat extensions that make it all more usable. - Anders Sandvig
(2) MS-DOS batch was interpreted, line by line. You could do interesting stuff by getting the batch file to rewrite its own lines as it ran. I don't know if this still holds for Windows, fortunately I have better options available now. - David Hicks
Batch files are pretty powerful and can help do soem amazing things. Yes powershell, vbscript, and jscript are more powerful... but they also haver a higher learning curve and external dependancy. - Matthew Whited
(2) I'm not saying you can't do anything -- only that it's painful. - Joel Coehoorn
@David Hicks: Yes, if you change the .cmd or .bat file while it's running it'll continue executing from the same offset it left off at. So you can have it rewrite itself. Be careful if you edit it manually while it's running! - Drew Noakes
10
[+8] [2008-09-17 13:08:41] Chris Mazzola

PostScript [1].

And ever since I've denied knowing anything about it. :P

Horrible.

[1] http://en.wikipedia.org/wiki/PostScript

I don't think postscript itself is so bad, but what Adobe puts in their files counts as high treason. - fryguybob
Adobe is the company for which this phrase was coined: "If all you have is a hammer, then everything looks like a nail." - dviljoen
Aww! I noodled around with postscript a bit (enough that i could write loops to plot points from arrays of data, draw grids, etc), and i rather liked it. It seemed to have a pretty clean and nicely homoiconic approach to defining functions and so on. - Tom Anderson
11
[+8] [2008-09-19 22:38:30] vog

Sed [1] is the strangest language I ever used in real-world situations.

If you just use it for regex search & replace, everything is fine. However, that's just the "s" command. Sed support many more one-letter commands with subtle differences between e.g. "n" and "N". Writing bigger sed scripts is a pain. Reading foreign sed scripts is practically impossible.

[1] http://en.wikipedia.org/wiki/Sed

(4) Speaking of sed, someone managed to implement Tetris in it: uuner.livejournal.com/55238.html -- quite impressive, indeed. - Anders Sandvig
12
[+6] [2008-09-19 21:38:38] David Locke

The weirdest language I've ever programmed in is the AI scripting language for Age of Empires 2. The code looks like the following.

(defrule
  (conditions)
=>
  (actions)
)

I love poking around on the CDs they ship with a game and the 100 page manual for this script is the best think I've found.


(2) The langauge is called CLIPS. I've used it in a class. - Joshua
Thanks, that's a very cool thing to learn. - David Locke
13
[+6] [2008-09-15 16:22:51] kfh

PERQ microcode. ( Example of RT13 in microcode [1]) 40 some bits of instruction and you got to hand code them all. If you did it wrong, the machine crashed. If you didn't call the Video interrupt service routine often enough, the machine crashed. For debugging, there was a three digit LED on the front that you could increment (not set!). Beyond that you either used PDP-11 Link boards to hook the machine to another PERQ where you ran the kernel debugger, or you leased a $50k logic analyzer and used that......

Fun!

[1] http://www.chiark.greenend.org.uk/~pmaydell/PERQ/rot13.mic.html

Seems like fun :) - Emre
14
[+6] [2008-09-15 16:23:56] Peter LaComb Jr.

RDML/RDMLX is by far the weirdest I've ever used. Conditional statements must be wrapped in single quotes IF they contain certain types of content. This means that literals in conditional statements must have two single quotes around them.

This is a valid statement:

 If COND('#POLN11 *EQ *BLANKS')

As is

 If COND('#POLN11 *EQ ''ABC12345678''')

And that is just the beginning. There is no concept of scope - ALL variables are global. And, like RPG, if you read a file that contains fields of the same name as the ones you're working with, you lose whatever value you had stored. Unlike RPG, there is no facility to prefix a file (prefixes the field names with what you define) to make the field names unique.


Sweet! I wonder what justifications they had for implementing it that way... ;) - Anders Sandvig
15
[+6] [2008-09-15 14:21:35] epatel

AppleScript [1] is pretty weird I think. Examples [2] and excerpt from Learn Mac OS X Snow Leopard [3]

AppleScript is a strange language. It tries to look as much like English as possible, which includes having several different ways of saying the same thing. This makes AppleScript readable even by non-pro grammers. However, many programmers find AppleScript hard to write in, because it’s not actually English. You can't just write English and expect AppleScript to understand you.

[1] http://www.apple.com/applescript/
[2] http://web.archive.org/web/20070814134928/www.codeferous.com/art/index.cgi/AppleScript/ASScriptSamples.html
[3] http://books.google.com/books?id=rl89dhd3pHsC&lpg=PA505&ots=2SKkjyt9Gj&hl=sv&pg=PA505#v=onepage&q&f=false

Your "Examples" link is dead. If you can find the source again, could you post some example code here with a link for reference? Thanks. - Bill the Lizard
@Bill ok with a link to webarchive? - epatel
Sure. Thanks for taking the time to hunt it down. - Bill the Lizard
16
[+6] [2008-09-15 14:15:49] Chris Nelson

Actually used and not just seen as a curiosity? RPG (RePort Generator) on IBM System/38 and AS/400 systems. Strangely, it worked a lot like relay ladder logic used to program control systems.


Supposedly called that because it's effect on the programmer is similair to another RPG (rocket propelled grenade) - Martin Beckett
Ran into it but never actually dealt with it--we abandoned the whole system before it got that far. - Loren Pechtel
I once heard of a Star Trek game written in RPG. Never did find out anything further about it. - David Thornley
RPG was a required part of my CS/CIS program in college. They never actually offered it in the whole 5 years I was there... I ended up getting a waiver for that particular class. Seems that nobody wanted to teach it... - Brian Knoblauch
17
[+6] [2008-09-15 16:33:33] Todd Johnson

I did a report in college on Icon. Very powerful, yet strange language.

http://www.cs.arizona.edu/icon/


Icon was the first language I noticed that had generators and iterators. Awesome. - Nosredna
18
[+5] [2008-09-15 14:55:19] Paul Reiners

ChucK [1], which is the first 'strongly-timed' programming language I've used. It's a music programming language, so you need to have individual threads play 'on the beat'. Because of this dur (short for "duration") and now are as fundamental to the language as int and 0 are to most languages.

impromptu [2] is a similar language, although I haven't had a chance to play around with it yet.

[1] http://chuck.cs.princeton.edu/
[2] http://impromptu.moso.com.au/

I'm just starting to play with ChucK myself, and love the time paradigm it uses too. I'm hoping I can stick with it long enough to get over the learning curve… - andrewdotnich
19
[+4] [2008-09-15 15:11:44] JosephStyons

I once worked for the IT department in a telemarketing company (I know, it's evil, that's why I'm not there anymore, ok?).

They had a proprietary scripting language called "Magellan" that had special hooks into the dialing system, so you had events firing for "On Pickup" and "On Hangup"... But as a language it was like some kind of hybrid between Excel and Visual Basic 6.

The company that made it went out of business, but you can still see a few references online: http://www.google.com/search?q=melita+magellan


20
[+4] [2008-09-15 14:16:02] user7658

I used LabView once and found it pretty unusual to me. It's a very graphical, sort of drag and drop, programming language. Wikipedia: LABVIEW [1]

[1] http://en.wikipedia.org/wiki/LabVIEW

LabView isn't bad for what it does, similar to it is SciTegic Pipeline Pilot. - Rob Z
21
[+4] [2008-09-15 14:18:53] Galwegian

I use to use the R language [1] (and S [2]) for statistical analysis and modelling.

R is open source and there was no set way of doing things. The way functions were called varied greatly depending on the library used. A lot like PH I suppose.

[1] http://www.r-project.org/
[2] http://en.wikipedia.org/wiki/S-PLUS

22
[+4] [2008-09-15 16:56:31] Graeme Perrow

Got to be APL (a TLA which stands for "A Programming Language"). Here [1] is an example from another thread. My actuary friend says it's very powerful, but I always called it "The Martian Language".

[1] http://stackoverflow.com/questions/18642/what-is-the-most-unreadable-programming-language#41197

Definitely has to be APL, what with its own character set and all. @ Gaeme: Your actuary friend is correct. When it comes to array manipulation, APL is extremely powerful. - RobH
23
[+4] [2008-09-15 17:03:05] community_owned
24
[+4] [2008-09-15 23:28:40] rjbs

TinyMUSH. It is (was?) a pretty complete language, for the problem space. Later, they added Tcl embedding to it, but that was well after my time. I "worked" on a World of Darkness roleplaying game, and we needed a really good set of objects to represent weapons. I spent a few weeks building a new weapons system, and was really proud of it.

All the code (the routines) gets put in object attributes, and those have to be entered by hand in one line. Some people used a program to convert well-formatted code into single lines and then dumped it into TinyFugue, but for some reason that never appealed to me. I entered all my code, branching statements and all, in single lines.

Programming in such a bizarre environment was actually a lot of fun, but after I became a professional programmer and tried to go back and do it again, I was pretty horrified and unable to keep at it.


25
[+4] [2008-10-01 04:26:06] Mark Stock

Prograph [1] which was a visual programming language [2].

[1] http://opi.ospgli.org/
[2] http://en.wikipedia.org/wiki/Visual_programming_language

26
[+4] [2009-03-18 19:41:34] user57368

RPL [1], from the HP 48/49/50 series graphing calculators. It's half FORTH, half Lisp, but it's the most powerful language ever shipped on a handheld calculator. These days, the calculators also ship with a very nice CAS, so they're competitive with Maple and Mathematica for a lot of things, particularly ease of use. (Once you grok RPN.)

[1] http://en.wikipedia.org/wiki/RPL%5F%28programming%5Flanguage%29

I got so used to this, that when they finally made me buy a 'brand X' calculator that I had to take foreign languages just to have enough curse words to describe it. Why in the world would they give you a language that can do Diff-E but has no high-order functions or first class collections!?! - TokenMacGuy
+1 I've currently got an HP50g. Nice to be able to soothe my programming itches while idle in school (I also own a TI, but it doesn't use Reverse Polish. That, and its not as fun to code in) - new123456
27
[+4] [2009-06-05 03:19:20] Slace

Maybe I've lived a simple life but I'm going to say that JavaScript is the stangest programming language I've ever had to use (and still love to use). But really:

alert(typeof(Boolean)); //"function"
alert(typeof(true)); //"boolean"

So a boolean variable doesn't equal the typeof call for Boolean.

Or how about self executing anonymous functions:

var divFound = function(node) {
               if(node) {
                 if(node.id === "what_i_want") {
                   return true;
                 } else {
                   return arguments.callee(node.parentNode);
                 }
               } else {
                 return false;
              }
            }(document.getElementById("some_deep_node"));

Yep, I've used self executing recusive anonymous before :P


28
[+3] [2010-05-26 23:46:33] Secko

Chef [1] would be one at the top. All the programs look like recipes.

Hello World Example:

 Hello World Souffle.

 Ingredients.
 72 g haricot beans
 101 eggs
 108 g lard
 111 cups oil
 32 zucchinis
 119 ml water
 114 g red salmon
 100 g dijon mustard
 33 potatoes

 Method.
 Put potatoes into the mixing bowl.
 Put dijon mustard into the mixing bowl.
 Put lard into the mixing bowl.
 Put red salmon into the mixing bowl.
 Put oil into the mixing bowl.
 Put water into the mixing bowl.
 Put zucchinis into the mixing bowl.
 Put oil into the mixing bowl.
 Put lard into the mixing bowl.
 Put lard into the mixing bowl.
 Put eggs into the mixing bowl.
 Put haricot beans into the mixing bowl.
 Liquefy contents of the mixing bowl.
 Pour contents of the mixing bowl into the baking dish.

 Serves 1.
[1] http://www.dangermouse.net/esoteric/chef.html

29
[+3] [2008-10-17 16:38:00] community_owned

SNOBOL, from college days, was my strangest language. Its' paradigm was pattern matching, and each statement could have one or more goto references following the pattern match. One for absolute goto, or a single or combo pass-fail set of labels. Not very structured!

It was intriguing to have to think diferently to build a program that met its assigned goal. One challenging assignment for the course was to build a text editor. That was extrememly difficult to complete.

There was also a variant called SPITBOL, which was a subset and compiled version (SNOBOL was, at the time, interpreted).


My college assignment was to write a LISP interpreter in SNOBOL4. Sigh, good times. - uncle brad
Ah yes, haven't heard that name in a long time. I remember picking up a freeware SNOBOL4 compiler at a computer show way back when I was in high school. I don't think I ever did anything constructive with it though, can't remember anything about the language syntax now. - Brian Knoblauch
30
[+3] [2008-10-17 16:43:29] Robert S.

REXX on OS/2 Warp. I don't even know where to start with that explanation.


I liked rexx, i missed better math support in it. - tovare
I missed the rexx boat in my Amiga days. - Robert S.
(1) Isn't REXX basically what perl would have been if it was invented by a COBOL instead of a C programmer? - Tom Anderson
(1) Oh, those guys who were so frustrated with DOS batch LOVED rexx. It was truly a cult. - NDP
31
[+3] [2008-09-17 13:41:20] codebunny

Using Fortran to read data obtained from Datatakers, and produce HTML and graphs for an almost-realtime website. I wrote the comments in Latin, and when asked about it, I said I was documenting one dead language with another. Had to change jobs to escape.


32
[+3] [2008-09-15 14:40:49] Jonathan

Occam [1] is the strangest language I ever used. It is a parallel language, designed to work on more than one processor, and written in an age when that meant lots of computers chained together, which reminds me of the Replicators from SG-1, actually.

[1] http://en.wikipedia.org/wiki/Occam_programming_language

(1) I was going to say this. Occam has PAR and SEQ keywords that you could put around statements (run parallel or in sequence) and functions could have more than one return value (first time I ever saw that). - Lou Franco
33
[+3] [2008-09-15 14:46:05] SarekOfVulcan

FOCUS for Mainframes is the weirdest one I ever used, I think. Scary to see that it's still in active development.... http://www.informationbuilders.com/products/focus/ibm_overview.html


Weird, maybe. Painful, definitely. I am using it now. Just today had to delete a set of records. Oh, the pain... - Grant Johnson
34
[+2] [2008-09-15 14:52:37] ewengcameron

Haskell is a pretty weird declarative language. As the HaskellWiki says, "it is a polymorphically statically typed, lazy, purely functional language".

You can end up with some pretty impressive stuff from only a couple of lines of code. It does surprise me that with Python and Ruby taking off in recent years, I haven't heard of anyone using Haskell. Then again, if you visit the Haskell site [1], you'll probably realise it's been a bit neglected in the last few years.

[1] http://www.haskell.org/

Lots of people are using Haskell - you can check out Hackage to see what they are doing. There is also a very active Haskell IRC channel on freenode. hackage.haskell.org/packages/archive/recent.html - Alasdair
35
[+2] [2008-09-15 15:14:19] ceo

TRAC [1]. Only language I've ever used where you're supposed to write self-modifying code.

[1] http://en.wikipedia.org/wiki/TRAC_programming_language

36
[+2] [2008-09-15 16:00:46] ThatBloke

PROGRESS [1]: UI + database querying language all wrapped into one. Like many 4GL languages it is very powerful (one line of code to update a record in a database with UI) but as soon as you need to program for real life projects you needs thousands of lines of code, a real gasworks.
They even tried to simulate object-oriented programming with a procedural language - SmartObjects - boy did you have to be smart to program with them.
I used it for 12 years and I am happy to have left it behind.

[1] http://www.progress.com

37
[+2] [2008-09-15 16:45:38] Jon Gretar

MEL (Maya Embedded Language). A bit like Perl... But with some strange quirks that tooks some getting used to. Great fun though and very simple to create a nice tool to help with animating 3D objects and so on.

Used it once to tease an artist at work by creating this script that rotates the model by 1 degree every minute. Fun when things irritate people without them noticing it.


38
[+2] [2008-09-15 17:03:45] community_owned

We have a production order management system for convertible bonds in K:

http://en.wikipedia.org/wiki/K_(programming_language)#Examples


39
[+2] [2008-09-15 17:41:42] Fernando Barrocal

I would say that the worst experience I had in matter of programming languages was on early days of computing (my early days) When I had a Sinclair TK-83 (A kind of TK-85 Clone from MICROSIGA) where I used SinclairBASIC. What makes it weird is that I couldn't type the function names like using the five letters to write PRINT, but instead I had to use a combination of keys (SHIFT+FUNCTION P) and it was really awful to debug a 30 lines of code to discovery in the 14th line, a POKE command typed with P, O, K and E instead of SHIFT+FUNCTION K. I can say the language was made of key strokes like:

10 SHIFT+FUNCTION L PRICE=12; //(let)
20 SHIFT+FUNCTION P PRICE;    //(print)
30 SHIFT+FUNCTION G 10;       //(goto)
> SHIFT+FUNCTION R            //(run)

Just in case you are wondering WTF is a TK-83, here you go [1]...

[1] http://www.old-computers.com/museum/computer.asp?st=1&c=1019

40
[+2] [2008-09-15 18:55:55] Kwondri

I have to say it APL back in the mid-80's. This was a very symbolic language and was great if you were a mathematician or just a genius. Just in case you want to know more about APL: http://www.thocp.net/software/languages/apl.htm


41
[+2] [2008-09-15 14:18:43] Rob Z

So far the weirdest languages I have worked with tend to be proprietary scripting languages for various business and scientific languages. In some cases the languages are similar to and older version of Visual Basic for Applications or a more advanced version of BASIC which tends to be fairly easy to pick up and work with. While others tend to be extremely bizarre languages that are less of a "macro language" and more of a way of scripting reports.

So far the worst thing about most of these scripting languages is that they are for one off projects, once I figure out how to write something useful with the language I end up never having to use it again.


42
[+2] [2008-10-25 13:24:46] David Robbins

JCL - Job Control Language. Yup, in "Operations" with the wide tie wearing zombies who chose not to go to trucking school and decided that they, too, could have careers in the exciting field of data processing.

This was back in the days when you could have an ash tray at YOUR DESK! AWWWWWEEEESSOME!


43
[+2] [2008-10-22 11:38:34] Piku

I wrote an entire simulation of a train using the joyless mind-sapping thing known as ISaGRAF [1] which is an "industry standard" system for creating electronic simulations.

And you can either write hardcore chip logic using something vaguely like Pascal, or with little drag and drop GUI diagrams that look very similar to flowcharts.

I'm sure it's not bad for a small system. But an entire train consisting of ten carriages and their electronics?

This was where I learnt that hardware designers think very differently to software people.

[1] http://www.iclinks.com/Products/IntelligentRTU/Sdk.html#ISaGRAF

44
[+2] [2008-12-06 21:02:15] JonStonecash

In descending order of weirdness (from the languages that I have actually written "production" programs in):

  • APL: A Programming Language -- super powerful and super confusing. Perl is clear in comparison.
  • IBM 1401 assembly language. Optimized for character processing in 4KB of memory. Characters were 8 bits wide: seven for the character and one for the "word mark". The "word mark" bit was used to mark the end of strings (something akin to the null character delimitor for c strings). The copy/move string command would copy characters from A to B until it ran into a word mark in A (and sometimes in B). Bad things happened when you forgot to insert the word mark; the move would wrap around memory and wipe out what passed for the operating system control code in those days.
  • Snobol: a string processing language -- when I used it in the 70's, I was just realizing that not all language had to be procedural.
  • Prolog: Oddly enough much like Snobol in that it matches patterns.
  • AWK: a unix-style pattern-matching package that I used for close to 10 years for mangling characters as part of a file copy. Sort of like regular expressions on sterroids.
  • XSLT: When I was in the XSLT zone, I could do some wonderous things to XML files. But it took a while to get one's head wrapped around the functional approach.

45
[+2] [2009-06-05 03:30:32] Jason Watkins

For a serious answer, I've played around with J [1]. There's no question that there's some interesting advantages to the language, but it's hard to see that when navigating the ascii noise syntax and non-existence of structured programming features most take for granted. About the best that can be said of it is that its' modern ascii is better than APL's historic non standard characters.

For a joke answer, it would have to be SKI combinators [2]. Interesting as a learning curiosity, and that learning might lead somewhere valuable, but useless themselves.

[1] http://www.jsoftware.com
[2] http://en.wikipedia.org/wiki/SKI%5Fcombinator%5Fcalculus

46
[+1] [2009-04-13 03:09:39] TokenMacGuy

I can hardly say i've used it in anger, but for a while, iShell [1] was free for many uses, And it provided better multimedia support than HyperCard (like color!), so we chose it for our final project. The programming 'language' was a visual one, with drag and drop source editing. It was actually fairly natural to use, once you got used to finding the pieces to place.

screencap of iShell Programming

Ultimately, the project suffered from a lack-of vision on all-our parts, and so we never got much farther than a dozen rooms of content with a few interactive elements.

If i had to make a similar presentation-oriented app again, and didn't need anything like a database back-end, xml-rpc or other such silliness, iShell might fit the bill.

[1] http://www.tribalmedia.com/products/ishell/

47
[+1] [2009-04-13 03:35:29] jcelgin

The first time I used LISP I felt like I had just been shown the matrix. It was a terrible, overwhelming feeling of hopelessness and parentheses.


48
[+1] [2009-06-05 02:52:56] fredarin

Easiest question in a while. The answer is TECO: TECO - Text Editor and COrrector [1]

Lets see what the code formatter makes of this example from Wikipedia:

 @^UB#@S/{^EQQ,/#@^UC#@S/,^EQQ}/@-1S/{/#@^UR#.U1ZJQZ\^SC.,.+-^SXQ-^SDQ1J#@^U9/[]-+<>.,/<@:-FD/^N^EG9/;>J30000<0@I/
 />ZJZUL30000J0U10U20U30U60U7@^U4/[]/@^U5#<@:S/^EG4/U7Q7;-AU3(Q3-91)"=%1|Q1"=.U6ZJ@i/{/Q2\@i/,/Q6\@i/}/Q6J0;'-1%1'
>#<@:S/[/UT.U210^T13^TQT;QT"NM5Q2J'>0UP30000J.US.UI<(0A-43)"=QPJ0AUTDQT+1@I//QIJ@O/end/'(0A-45)"=QPJ0AUTDQT-1@I//
QIJ@O/end/'(0A-60)"=QP-1UP@O/end/'(0A-62)"=QP+1UP@O/end/'(0A-46)"=-.+QPA^T(-.+QPA-10)"=13^T'@O/end/'(0A-44)"=^TUT
8^TQPJDQT@I//QIJ@O/end/'(0A-91)"=-.+QPA"=QI+1UZQLJMRMB\-1J.UI'@O/end/'(0A-93)"=-.+QPA"NQI+1UZQLJMRMC\-1J.UI'@O/en
d/'!end!QI+1UI(.-Z)"=.=@^a/END/^c^c'C>
[1] http://en.wikipedia.org/wiki/Text%5FEditor%5Fand%5FCorrector

makes the original emacs seem more impressive. - Roman A. Taycher
49
[+1] [2009-06-11 06:07:15] beggs

Back at the height of the .com boom I worked on a project to create a remote testing automation system for network switch as a contractor. The language spoken by the switches was an implementation of MML [1] originally written by a small Russian company. It was so hard to understand the language due to it's lack of constant structure and style that we ended up writing a PERL parser act as an intermediate layer and protect everyone on the projects sanity. All during the project I had flashbacks to my college course on x86 assembly...

On the other hand... I've always enjoyed LISP... emacs or ansi I love parens! Seriously I took the red pill during and AI class in college and have been modifying emacs sense. As an added bonus it makes the noobies eyes hurt.

[1] http://en.wikipedia.org/wiki/MML%5F%28language%29

50
[+1] [2009-06-11 06:47:25] Kobi

SIC - The Single Instruction Computer [1].
The assembly of this theoretical computer has only one command:

SBN - Subtract and Branch if Negative:
SBN A, B, C

Meaning:

if((Memory[A] -= Memory[B]) < 0) goto C  
// Wikipedia has a slightly different definition

This computer is in fact Turing complete. As a university assignment in Compilation (using Scheme [2]), we were given an emulator of such a computer, and had to write a compiler to help us calculate the factorial of a number. Some students though writing the compiler was too hard and coded the entire program by hand, which was OK with the professor as long as it worked (I guess it taught them the value of a compiler).

[1] http://en.wikipedia.org/wiki/One%5Finstruction%5Fset%5Fcomputer
[2] http://en.wikipedia.org/wiki/Scheme%5F%28programming%5Flanguage%29

51
[+1] [2010-05-23 11:24:21] CHiRo79

The strangest programming language I've ever programmed is the Lisp language. It changes your way of thinking about computation. It's beautiful and amazing :-)


52
[+1] [2010-05-26 23:42:52] Nix

Its got to be.... Var'aq [1], But if you are a Trekkie you would probably like it.

And if you are truly interested, Intro to Var'aq [2]

[1] http://www.fact-index.com/v/va/var_aq.html
[2] http://www.mjstemen.com/varaq_site/varaq_intro_page_02.html

seems with geocities some klingon knowledge faded away .. - miku
not for esolang: esoteric.voxelperfect.net/wiki/Var%27aq ;) - Jack
53
[+1] [2010-05-26 23:45:33] thursdaysgeek

It was called INFO, and it ran on an old Prime. It was a database and a language and a IDE. But what was weird was how it was written.

It was so easy to learn, that I was programming the first day, and yet was capable of true oddness. The programs had line numbers, and if the numbers started with an odd number, the commands were SQL like and worked on the entire set. If they started with an even number, the commands were a block that dealt with each item in the set one at a time.

So, a simple type of program could be something like this (I don't recall the syntax either)

100  select * from user_table 
110  join with address_table 
120  exclude duplicate addresses 
200  for each record in set 
205    print firstname, lastname 
210    print addressLine1 
220    print City, State, Zip 
300  display "address labels printed" 

It was capable of quick and impressive applications, that were almost simple to understand, and yet had a sneaky power that I was only beginning to understand after two years at the job.


54
[+1] [2008-12-06 21:14:12] plan9assembler

colorforth [1]

[1] http://www.colorforth.com/ide.html

55
[+1] [2008-12-06 21:47:35] Zsolt Botykai

Linc 4 GL [1]. Then Cobol was generated as running code.

[1] http://en.wikipedia.org/wiki/LINC_4GL

56
[+1] [2009-02-07 03:02:22] Jim Sawyer

Lots of possibilities here.

machine languages:

  • DigiComp
    used because:
    1. only language I knew - my first.
    2. only language spoken by the platform.
  • IBM 360/70 channel controller microcode
    used because:
    1. the i/o hardware guys had to steal something,
      and big blue's channel controller was covered in POO.
    2. software guys are, for the most part, completely POO less.

assembled:

  • A weird AT&T; micro implementing an abstract machine (aka a DSL),
    with 3 numeric registers (can do arithmetic),
    a string register or two (can index, substring, and catenate),
    PLUS an entire 256 bytes of RAM - all for data.

    used because:
  • someone, upon seeing the machine,
    cleverly realized it was actually a
    platform for small business accounting software.
    in disguise.
  • hummer winblad would need funding, someday.
  • Cray-1

    Load a register from memory?
    No, no, no, my friend.
    Move an address into one of these registers, over here.
    Now do something else, entirely unrelated, for a while.
    Ok, now look in this other register, over there.
    Tada! - It's that data you wanted from memory.
    See - easy, peezy.

higher level:

  • SNOBOL

    used because:
    1. writing the code to translate a runway coordinate database
      takes the same number of weeks as doing the translation by hand.
    2. writing code is more fun.
    3. fuzzy math is easier than it sounds.
      e.g. what is one times fuzzy risk plus zero times nothing?
      four - 'cuz zero times never again divided by BUFD equals three.
    used again, and again, and again
    because:
    1. bootstrapping (a new language)
      without SNOBOL
      is like a day without sunshine.
      30 times in a row.
    2. every time.


How about something a bit weirder?

Severely, grotesquely weird?


Like:

  • HTML - Eeou, yuckey weird.
  • C++   - You must be joking weird.
  • Java  - Ok, just stop it. This isn't funny any more weird.


And finally, there's the absolute, hands down, weirdest weirdo of them all:


  • Smalltalk - through the looking glass weird.
                        A lot like nirvana. (The concept, not the band)
                        Having arrived you can never go back, never,
                        and you mustn't even try - for then the weirdness,
                        my god, the weirdness -simply unbearable.
                        Now how weird is that?

57
[+1] [2009-02-07 03:39:57] Clayton
  • SAIL
  • XPL

58
[+1] [2009-02-07 04:58:56] community_owned

IBM ImagePlus MODCA Image Rendition.

Pretty advanced format in the days when every KB counted - you'd have a complex metamodel with overlays, image data, scale information and a number of variants - IOCA/PTOCA. Very unusual in the world of image processing.


59
[+1] [2009-03-18 19:23:42] Paulo Guedes

I have never seen something as strange as Centura and its weird IDE Gupta.


I though Centura was pretty straight forward. Trying to debug a Nightmare of Multiple Inheritance Spaghetti Code was not. - runrig
60
[+1] [2008-10-25 12:36:00] danimajo

Cache Object Script.

http://en.wikipedia.org/wiki/Cach%C3%A9_ObjectScript.

Caché ObjectScript is a functional superset of the ANSI-standard M (ie, MUMPS) programming language.


61
[+1] [2009-06-11 07:14:27] Marc Climent

Around 2005 I programmed in SDL, which is quite a weird environment, mixing flow diagrams with code in a hard-to-debug-and-weird software pieces. It was like having an UML diagram with embedded code.

We used SDT (then Telelogic, now Rational SDL) and they have a lot of strange bugs in the compiler like problems with string concatenation and weird warnings.

For me it was painful but the communications guys seemed happy. Strange people...

For an example: SDL Tutorial [1]

[1] http://www.sintef.no/time/elb40/html/elb/sdl/sdl%5Ft01.htm

62
[+1] [2009-06-11 07:24:54] Srdjan Jovcic

I was working in UNIFACE [1]. Kind of evolved from character-terminal-oriented, platform-independent forms designer, but I was using it for program which was supposed to run on PCs...

[1] http://en.wikipedia.org/wiki/Uniface%5F%28programming%5Flanguage%29

63
[+1] [2008-11-05 02:01:46] thursdaysgeek

About 10 years ago I was at a job that had a PRIME computer (yes, it was completely obsolete), and on it was a language called INFO. It was actually a scripting language and database together, and it was so easy to use, I was using it the first day. And so odd, that it was really easy to completely screw up the process. I don't have any example code, so I'll give you some ideas.

It had line numbers, and if the numbers started with an odd number, the statements were SQL like and worked on the entire set. If they started with an even number, the statements were procedural.

100 select * from table1 where field1 = "value1"

110 select * from selection set where field2 = "value2"

200 for each value in select set

210 field3 = field3 + 5

220 next

300 print field1, field2, field3 from selection set

It used an ISAM database, and it was quick to learn, quick to run, and if compiled code was needed, we could write it in CWIC, which then compiled to a FORTRAN. CWIC was also very easy to learn. But that odd/even line number changing the way the code was used allowed really complex, funky applications. (I'll have to go see if I can find a real example.)


64
[+1] [2008-11-05 02:40:10] le dorfier

For me, definitely ObjectVision It even beats out Forth.


65
[+1] [2008-11-08 09:38:02] zendar

Word Perfect Macro Language for WP5 for DOS. It was late 80's early 90's as I remember.


66
[+1] [2008-12-06 20:30:10] user43983
67
[+1] [2008-10-17 16:57:20] pearcewg

Modula-3

http://en.wikipedia.org/wiki/Modula-3

I coded with this for a year in the early 90s. It is mainly strange because it is exotic, and not many people have professionally coded with it.

And, of course, Object Pascal incorporated most of the features of Modula-3.


68
[+1] [2008-10-17 17:15:43] shrub34

I enjoyed the horrors of using Siebel 6.2 SmartScript for an online insurance quoting system. What made it interesting is that it was almost VB code that you actually coded into the database, but it could hit the underlying compiled VB/C code. This made the one project where it was used difficult since there were 4 developer all working on the same progression of screens in this work flow. Add to it that the built-in web based Siebel was unable to handle multiple browser windows.


69
[+1] [2008-10-22 11:31:40] CraftyFella

I worked on Microsoft Great Plains.. Which uses Dexterity [1]. For me one of the worst things about the language was the fact there was a limit to the size of the procedures you wrote.. I spent many hours removing comments, and renaming variable to 1 letter to get a few precious extra characters. I'd be interested to know if anyone else ever had to use it.

[1] http://en.wikipedia.org/wiki/Dexterity_programming_language

70
[+1] [2008-09-17 13:57:27] CodeRot

Postscript. I will agree with a previous posting....I also will deny having ever used it.


71
[+1] [2008-09-19 14:50:45] Mario AT

Actually the language used by the TK-83 and TK-85 (which were Sinclair clones) computers was plain BASIC! I had and still have a fully functioning TK-85 with 48k memory. The problem with them was the keyboad. When typing text, the keys acted as regular nowadays keys. The "L" key meant the "L" letter. But when one was programing, by using key combinations, one would press the shift + the function keys and then any other key, the computer would write on the screen the meaning of this other key. So pressing the shift+function+"L", the computer would understand that you were actually typing "LET", and would write this word on the screen. So in the example given by Fernando Barrocal, once you've finished typing it, would actually be presented in the screen as :

original example :

10 SHIFT+FUNCTION L PRICE=12; //(let)

20 SHIFT+FUNCTION P PRICE; //(print)

30 SHIFT+FUNCTION G 10; //(goto)

SHIFT+FUNCTION R //(run)

would appear on screen as :

10 LET PRICE = 12

20 PRINT PRICE

30 GOTO 10

run

In the beginning this way of programming was quite slow, because even with all keys having the programming meanings printed on them, it took some time to get used to it. But after a while, as with everything, once one got used with this way of entering commands and functions, the programming was VERY fast. With the left hand you would press the shift+function keys combination and with the other hand one would just keep pressing the keys with the commands and the computer would write the whole thing for you.


I have a vague memory of Vic-20's working this way too - CAD bloke
72
[+1] [2008-09-25 21:41:07] BCS

It never had a name but my current job started out working with a "language" the consisted of a real-time rule enforcement engine based on a graph. It had no explicet sequential operations and allowed arbitrary linking. Also rules were first order objects. It was/is actually a really cool spectacularly flexible system, just totally impractical (system requirements >1GB ram and about 90s boot time).

The current incarnation is way different but is not quite ready for public consumption. ;)


73
[+1] [2008-09-15 19:29:30] Sergio Morales

Not really strange, but I thought having to use Scheme and Oz for university assignments was funny. I do know Scheme is pretty common for learning programming basics, though; yet several of my subsequent professors mocked it since I would never have to use it for anything realistic again. The most different thing I've had to code on would be PIC and AVR Assembly Language, but that's not really strange either, just complicated and mind-bending :p


74
[+1] [2008-09-15 17:24:12] community_owned

In the '80s, I used MIP-2 (I think that's the correct spelling). Management Information Package v2 to write a nightly closeout system (calling it "accounting" would give it too much credit).

It was a proprietary language on National Semiconductor grocery store checkout systems. The syntax was like assembler. E.g. add op1, op2. It also included Basic-like Input and print functions and it was interpreted. The only "data structure" was a one dimensional array. I had to create a 2D table in the code. The icing on the cake was that you had to send the file from the mainframe to a remote system via bisync modem in order to debug the code. If there was a syntax errror, the load would fail. No messages, just failed to load.

Those were the days!


75
[+1] [2008-09-15 17:24:52] Lyle

I think the MUMPS answers are unfair. The single letter commands were shortcuts to save program size space - which was an issue in 1978. However, you could spell them out and follow good structured design if you wanted to, certainly by mid-80s when most of the space limitations disappeared. To me the only strange thing about MUMPS was the persistent data which removed the need to interact with a database. It does have a funny name, but certainly assemblers, embedded systems, and experimental/educational things must seem much stranger.

By the way - it's a real world thing. A ton of commercial products based on it.


76
[+1] [2008-09-15 17:43:28] community_owned

Frontier [1]. A combination outliner, object database, programing environment. The only language I have ever used where the outline level was a syntactically relevant feature. A lot of fun to play with and I used it quite a bit years ago doing admin work for Macintosh system 7 machines.

[1] http://frontier.userland.com/

77
[+1] [2008-09-15 18:12:16] Will M

Has to be LISP, though the only "real world" use I ever made of it was in a course on LISP and AI, a long time ago.


78
[+1] [2008-09-15 18:21:54] Scottie T

When I took a course on AI, I learned LISP and Prolog in the same semester. I never could decide which was stranger, but LISP just seemed to be much more difficult for me to understand. Too many parentheses I think.


79
[+1] [2008-09-15 17:09:11] community_owned

I actually had to write a Brainfuck interpreter (in an imaginary assembly language!) for a class once.


80
[+1] [2008-09-15 17:00:17] Nathan Chase

Lingo. [1] A really bizzare hack of HyperText that never worked how you would expect it to. Macromedia Director projects were a time-draining chore due to the necessity of using it.

[1] http://en.wikipedia.org/wiki/Lingo_(programming_language)

81
[+1] [2008-09-15 16:28:03] community_owned

NCR-500 machine language: 12 decimal digits per instruction (2-digit opcode, 2-digits for each of 3 operand addresses, 2 digit conditional next instruction, 2-digit next instruction), and 4 planes of 100 memory locations. One can enter these instructions into memory using a console that looks just like a cash register!


82
[+1] [2008-09-17 12:33:46] sdkpoly

Not much experience, but I think it was LOGO - it is just a bunch of math functions.


83
[+1] [2008-09-17 12:38:21] petr k.

KAREL. It is used in programming education. Basically you control Karel (a robot - does the name Karel Capek ring the bell to somebody?) with simple commands. The thing is, Karel is a dumb robot in its own, so you get to teach him new commands.

For small kids education it's a great thing :-) It's certainly not used for real-world problem solving, but I couldn't resist the temptation to mention it, nostalgically, anyway.


84
[+1] [2008-09-17 12:40:51] chilehead

FORTH and Prolog. I enjoyed both, but as far as I know both are pretty much dead languages now. FORTH worked great on my Atari800. Took a little getting used to, but it was fun. Prolog was great for some of the AI work I used to do in school.


85
[+1] [2008-09-17 12:49:12] Toby Hede

I vote Erlang [1]. Partly because a purely functional language is always going to be a shock if you are coming from procedural and OO languages, but also it's focus on concurrent programming reveal a very interesting bias. I think it's a very valuable paradigm to experience.

[1] http://erlang.org

86
[+1] [2008-09-17 13:02:00] Diodeus

Ladder Logic [1] is a language used to emulate the functionality of electromechanical relay control circuits. It is generally used in industrial process control systems in programmable logic controllers.

[1] http://en.wikipedia.org/wiki/Ladder_logic

87
[+1] [2008-09-17 13:03:31] Michael Stum

ARexx [1]. Not really "strange", just somewhat obscure.

[1] http://en.wikipedia.org/wiki/AREXX

88
[+1] [2008-09-17 13:05:43] leppie

Must be GWBASIC. At age 6. All those line labels!!


89
[+1] [2008-09-19 21:55:31] community_owned

Miranda: http://en.wikipedia.org/wiki/Miranda_(programming_language)

Did a programming class where we had to implement a simple program ("fgrep") in a bunch of different languages. I skipped Prolog (left that to my lab partner), enjoyed Smalltalk, but was most impressed with Miranda: 4 lines (of which one was the "#!" line and one blank). Ada code was a few hundred lines spread over three files. :-)

My worst programming experience would have to be "sendmail" though. The configuration language for rewrite rules is in fact a proper lambda calculus. At one point I knew my way around it, three months after leaving that job, I couldn't for the life of me remember a single thing.


90
[+1] [2008-09-19 22:16:38] Matt H

WinBatch. I'm not talking about regular windows batch files, this was a proprietary automation scripting product I had to use to write installation scripts at an old job. It could interface with windows native functions, but the whole thing was pretty clunky and it didn't offer much in the way of code re-use between files. I can see where it fits a niche, but if they just added a few modern language features it would definitely be an improvement. Its IDE isn't very helpful either. It's just... odd

I guess they have a CGI web script language out now. A bit scary.


91
[+1] [2008-09-19 22:23:43] shoosh

Motorola C-5 Network processor microcode.
After 2 potential products failed miserably due to performance issues and Motorola discontinued the the C-5 management finally realized that this was a nice waste of a year for 5 people but its time move to another platforms.


92
[+1] [2008-09-17 13:14:00] Ben

ML [1] and also APL [2]. Both involve writing code that looks like it can't possibly do anything useful.

[1] http://en.wikipedia.org/wiki/ML_(programming_language)
[2] http://en.wikipedia.org/wiki/APL_(programming_language)

93
[+1] [2008-09-17 13:30:30] Anonymous

I don't think you'll ever find referencese to STRATOS. You had to write it in reverse polish, and all functions were horrible three letter acronyms.

I've always thought that it was a school project for creating a parser, and the students who wrote it, adapted and sold it to some stupid company (ours).

It was some kind of assembler, but it was meant to manage databases.


94
[+1] [2008-09-17 13:35:52] Carl Camera

CLU [1] was the first one I thought of, but this was in college and doesn't meet your real-world criteria. Also, CLU is not odd, it's obscure. APL [2], needing its own keyboard for its own syntax has to be the strangest that I've played with, but again, I've not used it for a real world application. I suppose programming my HP TI-59 calculator [3] would be the weirdest programming language from my past. One guy published the program that allowed the TI-59 to play backgammon and the machine only holds 960 instructions. Genius!

[1] http://en.wikipedia.org/wiki/CLU_programming_language
[2] http://en.wikipedia.org/wiki/APL_(programming_language)
[3] http://en.wikipedia.org/wiki/TI-59

95
[+1] [2008-09-15 16:52:34] Abhishek Mishra

used brainfuck.. took 2 days to code a 3 digit incrementor


96
[+1] [2008-09-15 16:55:12] community_owned

Robbins-Gioia CAT II 4GL programming language (CAT=Control and Analysis Tool)

I guess it's not that "strange", but when I first started my job, i couldn't find anything about it on google. I don't think anyone actually uses the software besides the government.


97
[+1] [2008-09-15 16:55:20] Jekke

One of the first languages I ever worked with was TCL, which is not Tcl. It was Western Union's Teletype Control Language. Mostly, it existed for the techs to be able to carry around strips of paper tape to reset machines that had gone loopy. But, it was powerful enough to allow the TWIX (not the candy) my father had reassembled in my bedroom to act as a very simple printer for my Atari 800XL.

Oh, and PAL--Paradox Access Language, which was a pre-SQL database query tool that you programmed by drawing pictures with ASCII characters. I kid you not.


98
[+1] [2008-09-15 16:35:58] community_owned

TECO [1]. The WPS-8 development group at DEC used software production tools -- Code Library (with locking checkout), Tree-controlled Builder (like MAKE), and a few others -- all written in TECO. I had to maintain them since the original author was no longer available as he had decided to go into another line of work.

[1] http://en.wikipedia.org/wiki/Text_Editor_and_Corrector

99
[+1] [2008-09-15 16:43:32] Mike Warot

I'll put my 2 cents in for Ladder Logic as well. It takes some getting used to, but when you get down to brass tacks, it's brilliant. You can do all the programming you want, and be certain that it can't crash. There's no conditional branching (but plenty of conditionals), so program flow is NEVER interrupted. Who else can write a program that executes every line of code every 8 milliseconds?

--Mike--


100
[+1] [2008-09-15 16:43:39] community_owned

CLP for the iSeries / AS400 is the strangest language that I have ever used


101
[+1] [2008-09-15 16:03:52] community_owned

STEVE: it's a robot simulation language.


For as silly and arbitrary as the syntax is, Steve is incredibly well thought out. when the python binding for breve matured, I never found it really as clear for physical simulations as steve, so avoid it, even when I use python for many other things. - TokenMacGuy
102
[+1] [2008-09-15 16:16:48] user8512

By far, LOLCODE [1]. Never developed a production app, but I've actually written small, sample programs in the language.

[1] http://lolcode.com/specs/1.2

103
[+1] [2008-09-15 14:20:01] TK.

CLIPS (used for cognitive modelling) its a wierd combo of PROLOG and c and some other languages, powerful but horrible. Im so glad that my university days are over!


104
[+1] [2008-09-15 14:18:04] Lewis Jubb

One company I worked at used RTL2, they had pretty much the only licence in the country for the compiler.


105
[0] [2008-09-15 14:13:16] harriyott

COBOL was pretty weird - it was like writing prose. The strangest had to be ladder logic for PLC hardware - programming by circuit diagram!


106
[0] [2008-09-15 14:13:59] Unkwntech

PAL (Playlist Automation) script, its used for automating playlist information inside DJ software.


107
[0] [2008-09-15 14:14:43] Chris Upchurch

Ook! [1]

[1] http://www.dangermouse.net/esoteric/ook.html

Ook! has real world applications? - Rob Z
108
[0] [2008-09-15 14:20:11] Gulzar Nazim

I did not actually use it but read a lot about MUMPS [1]..

[1] http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx

I work with a guy who programmed in MUMPS back in the day. He still waxes nostalgic about it since there were no data locking issues (supposedly) and it was all much simpler than the current N-tier application layout. - Jason Z
@Jason - No data locking made things easier? Did they have to code for race conditions, or did MUMPS handle that for them? - Rob Z
109
[0] [2008-09-15 14:19:00] tomdemuyt
110
[0] [2008-09-15 14:23:16] Nathan

Brainf*ck [1] is pretty weird, but I can't say I've ever used it for anything "real".

[1] http://en.wikipedia.org/wiki/Brainfuck

... which is exactly why I listed it as a bad example of a "strange" language ;) - Anders Sandvig
111
[0] [2008-09-15 14:32:15] fencliff

ABAP [1].

Hated it from the first go.

[1] http://en.wikipedia.org/wiki/ABAP

ABAP initially seems pretty archaic, but it's really efficient for database driven stuff. Sure it's a bit of a shock if you're coming from something like Java or Ruby, but take another look - there are many jobs to which ABAP is really well suited. - Chris Carruthers
112
[0] [2008-09-15 15:44:49] pobk

ERLANG [1] is quite interesting, although as languages go, it's fairly sane. It's scalability is stupidly cool, though.

[1] http://erlang.org

113
[0] [2008-09-15 15:06:25] Mario AT

ABAP is a mixture of Clipper, Delphy (Pascal) and C, so it is no so bad.


114
[0] [2008-09-15 17:20:19] community_owned

B or BCPL [1], the predicesor to C. used C like control statements mixed with assembly. I worked a packet switching network stack in it at Honeywell in the early 80's. Nearly fried my brain trying to debug the system

[1] http://en.wikipedia.org/wiki/BCPL

115
[0] [2009-06-11 07:27:56] community_owned

mIRC sripting :D


116
[0] [2009-06-11 07:47:22] Damien_The_Unbeliever

An in-house, proprietary "language" called Nexus.

Creating programs for this systems involved editing a number of INI files. One file would describe all of the forms for the application, something like:

[Form1]
txtEdit1=10,10,100,20,""
btnOK=10,100,50,20,"OK",Evt_OK

Okay, hopefully you get the idea, without me having to add more. Basically, each line within a section would describe the control you wanted, where it was positioned, captions, etc.

Then there were other INI files. One described the complete database (one section per table). One described broadcast events (each section described an incoming message - possibly from a control, from another event, from the server, and the lines within the section described what new events to raise). One described the over-the-wire messages that were sent to the server (this one was a joy, because each message you wanted to construct to send out had to be crafted by a single SQL statement against the database). All in lovingly hand-crafted INI files.

Of course, there was no compiler. Errors would be raised when the application started up (or possibly later). Of course, depending on what mistake you'd made, you might get an intelligent error message, or you might get an obscure error message from half way down within the custom-built INI file parser...

They kept promissing that an editor was going to be developed...


117
[0] [2009-06-11 07:48:56] TWith2Sugars

For me it was Mozart-Oz [1], a strange language that I used in my 2nd year of uni - Had to develop a maze generator / solver with it.

[1] http://www.mozart-oz.org/

118
[0] [2009-06-11 07:55:04] MiffTheFox

A few years ago, I was doing some hobbyist work with the OHRRPGCE [1] game creation toolkit. The scripting language bundled with it, Plotscript, was to say, one of the oddest languages I've ever worked with. (Now, this was an older version I used, so things may have been changed.)

For starters, in addition to being case-insensitive, it was also whitespace insensitive. I.E., any and all whitespace, save the newlines needed to work it, was stripped by the compilier.

Functions had to have their signature defined before actually having the function itself defined. For example, at the top of the file, you'd have:

define script (5,chest item,1,0)

And later on you'd put:

script,chest item,item to get,begin
    get item name (1,item to get)
    show text box(63)
    get item (item to get)
end

Variable declaration was done by calling a function with the name of the variable, and then it could be set. Globals were defined with a different function in the global scope.

variable (hero combined health)
hero combined health := 0
if (hero by slot (0) >> -1) then(hero combined health += get hero stat (hero by slot (0),0)
if (hero by slot (1) >> -1) then(hero combined health += get hero stat (hero by slot (1),0)
if (hero by slot (2) >> -1) then(hero combined health += get hero stat (hero by slot (2),0)
if (hero by slot (3) >> -1) then(hero combined health += get hero stat (hero by slot (3),0)
if (hero combined health << 1) then,begin
    #...
end

That was supposed to check if the player's party still had any HP remaining. Isn't it obvious?

Also, another thing I've noticed looking at my old scripts was that operators were never less than two characters long. Subtraction was --, greater than was >>, etc.

[1] http://hamsterrepublic.com/ohrrpgce/

119
[0] [2009-06-11 09:27:53] chugh97

SmallWorld


120
[0] [2009-06-20 14:35:22] boost

SNOBOL, particularly the C-SNOBOL4 [1] variant by Phil Budne [2]. It is strange by most standards, but incredibly expressive and powerful. I'd use it more if I could.

Some interesting examples are at http://web.archive.org/web/20061003165457/http://lands.let.kun.nl/TSpublic/coppen/DirtySNOBOL.html

P.S. The above url does not format well in []() markup.

[1] http://www.snobol4.org/csnobol4/
[2] http://www.ultimate.com/phil/

121
[0] [2009-04-13 02:35:20] GoatRider

Verilog [1], a hardware description language. Which means it compiles into gates. You feed this into a gate-simulator, and if that works an FPGA, and if that works you tape-out and make a chip. What's really weird about it is that everything you write happens at the same time. If you want sequencing, you have to build circuits for that.

[1] http://en.wikipedia.org/wiki/Verilog

122
[0] [2010-07-06 08:24:51] Ira Rainey

AMX Axcess [1]. Back in the mid nineties I worked for a videoconferencing company, back in the days of £20K hardware codecs and multiple ISDN lines. We used a control system made by AMX which had a touch screen control panel which you could design screens for using a very basic GUI tool.

The language was a lot like C in some ways, but used all kinds of odd commands for controlling a whole range of plug-in boards which you could control relays/potentiometers/RS232 comms/etc which we used for video switching, camera moving etc.

The strangest thing about the language was that it ran in a constant loop, so once the code reached the end it would start back at the top again, in a kind of never-ending procedural way.

[1] http://www.amx.com/products/AXCESS.asp

123
[0] [2011-02-18 08:21:12] Christian Davén

I worked as an APL [1] programmer in 2005-2009. It was definitely a weird choice to build a Windows application in, but as they say: you can write FORTRAN in any language [2].

It wasn't so bad by then, since the vendor ( Dyalog Ltd [3]) had actually implemented if and for, but one of my older colleagues didn't trust this new for loop concept and used conditional gotos instead. That's how he did it in the good old days, and saw no reason to change.

If you had a programming question, there was really only three places to ask: the senior programmers at our company, Dyalog's support or the mailing list. I never tried it, but I can't imagine getting answers at Stack Overflow.

Unfortunately, most Dyalog APL users weren't doing modern Windows apps, which meant that we found lots of GUI bugs that then were ignored. It didn't make sense for Dyalog with 5-10 programmers to fix bugs that only affected one customer (and the language is of course closed-source).

The same thing with the library; noone else seemed to have a need for SSL, encryption and hash functions, XML parsing or other modern techniques. This was very frustrating, and we even discussed sponsoring a full-time developer for Dyalog that would fix "our" bugs and "our" features.

(Oh, and did I mention the developer license is £850 per year [4], and our customers also had to pay horrible run-time licenses...)

I learned a lot from APL, however, and sometimes miss its powerful array manipulation.

[1] http://en.wikipedia.org/wiki/APL_%28programming_language%29
[2] http://www.codinghorror.com/blog/2005/04/you-can-write-fortran-in-any-language.html
[3] http://www.dyalog.com/
[4] http://www.dyalog.com/prices_conditions.html

124
[0] [2009-06-11 06:49:46] Josh Einstein

T-SQL......................


125
[0] [2009-12-29 16:52:42] George Sisco

PCL - printer control language. We used to hack it to change form data on printers because our PCL generator was a bit wishy washy so we had to manually edit it a lot. Also, we had a printer that didn't quite use official PCL, but it's own variant, which caused all sorts of headaches.

Also, PCL is not very readable.

PCL isn't dead, but it's obscure as all get out IMO


126
[0] [2009-12-29 17:11:31] AntonioCS

mIRC Scripting [1]

When I was in school I used this to generate some data for some projects (peoples names, birthday dates etc)

I also did a lot of scripts just for fun. It now seems strange and featureless compared to languages I have learned and worked with. Still, I had a lot of fun with it.

[1] http://en.wikipedia.org/wiki/MIRC%5Fscripting%5Flanguage

127
[0] [2010-05-23 11:19:03] Snake Plissken

C++ templates

are the oddest thing I have ever used.


128
[0] [2009-06-11 06:01:29] Daniel C. Sobral

Definitely Java.

I mean, I have used MUMPS, Forth, APL, Lisp, ML, various assemblers, Logo, Prolog, even Postscript. And while they might LOOK different than what passes for mainstream languages nowadays, they each had purpose, character. They knew what they were about.

Java... Java is an horrible language in the very field it choses to address. Most non-newbie programmers readily admit that. And, yet, it's widely used. That is SO STRANGE!


Java is an horrible language A part of me just died. - Delan Azabani
129
[-1] [2010-07-06 08:06:15] Turing Complete

Visual Basic 6.0.

Although I have to say that since then I know why about 95% of the "developers" out there are completely incompetent. I usually call them "RAD - victims".

Second worst was this "javascript".

A language that is so full of pointless problems, you need user agent detection all over the place, you have no real type system (my hate for dynamic typing comes mostly from javascript!), etc...

Third worst was C++.

An unreadable mess, mostly to satisfy the needs of narcistic "zomg I'm soooo 1337 lolz" - nerds.

--

I'm so glad that we have REALLY usable programming languages now. C# and F#.


130
[-1] [2009-06-20 14:39:38] Ed Schembor

I had to work on a project in PROLOG while still in high school. I had only worked in Basic and Fortran before that. Blew my mind.


131