Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-120121-160161-

INVENT THE WORST PROGRAMMING LANGUAGE

Name: Anonymous 2006-07-09 1:18

1. you can define keywords, operators, grammar rules, general concepts endorsed by the language, etc.
2. do your worst
3. we are starting from the ground up, so it is prohibited to import complete keyword sets from an existing language (no OK, ALL JAVA KEYWORDS, THREAD OVER, HURRRRRRRRRR)
4. and we need a name for this language as well

Name: Anonymous 2006-07-09 2:35

Make it stictly OO.

Name: Anonymous 2006-07-09 2:38

Er, isn't brainfuck more or less the worst programming language ever?

Name: Anonymous 2006-07-09 3:36

>>3
whitespace

Name: Anonymous 2006-07-09 3:53

Malborge.

Name: Anonymous 2006-07-09 3:57

Variables must be preceeded with a dollar sign
*rimshot*

Name: Anonymous 2006-07-09 4:14

Prefix global variables with @@, and class variables with self. Whitespace is significant. Typing is entirely static, except for globals. Overloading is mandatory. Memory-handling is explicit stack manipulation.

Name: Anonymous 2006-07-09 7:13

make an enterprise edition

Name: Anonymous 2006-07-09 8:49

Yes, it must be massively overengineered.

To make up for the shit static typing, make 50 different types of iterators. Don't allow default values, and all library calls require use of imported constants, not integers.

Name: Anonymous 2006-07-09 11:16

Use a different syntax for assigning objects vs assigning primitives, eg:
set foo = bar '//object
a = b '//primitive

Let objects have a default field which is referenced automatically if you use a = b, so instead of throwing an error it just gives weird hard to track bugs.

Arrays are indexed from 1, except for certain library functions.

Name: Anonymous 2006-07-09 11:24

Line numbers. No flow control other than IF and GOTO. Static typing. Hungarian notation is mandatory as it's actually part of the language. Variable names limited to 4 characters besides prefix. No automatic conversion from one type to another. Variables are global by default. No structures nor objects. No user-defined functions; must use either eval() (eval still requires line numbers!) and a special hack to receive function parameters in an array. If functions want to return something, they need to use one of a set of global stacks (there's one per each different data type). Explicit memory management with segmented memory (segments are 4 KB each, can only allocate segments, variables can't span over several segments). Arrays are actually variable variables, so ia[1] is the same as ia1 and i[a] is the same as ia. Lines limited to 80 characters. No string literals; must use hexadecimal. Most syntactic elements are optional and infered by "DWIM" rules. For example, you can type "+", and it means add 1 to i_, because + is usually used with integers; on the left we use i_ which is the default integer variable; on the right we cannot use i_ because we already used it so we use 1 (because 0 would have little sense). User must learn all of this to use it.

Name: Anonymous 2006-07-09 12:32

can't... java

Name: Anonymous 2006-07-09 21:06

Code is compiled against a proprietary suite of large, slow libraries, using the proprietary compiler.

Name: Anonymous 2006-07-10 2:18

The only characteristic of viagra: makes your penis erect, therefore it makes it bigger.  The only thing that gets bigger in programming that I can think of is a unit of measure.

Obviously we must ignore all other units of measure and make VIAGRA synonymous with bytes. Allocate VIAGRAs of memory.

Name: Anonymous 2006-07-10 5:22

If we have VIAGRA, we must have SEX.

A language that makes casting integers to longs implicit is too easy. We must make any such operation explicitly require the SEX (Sign EXtend) operator.

The opposite (long -> int, int -> char, etc) is the entirely arbitrary BOBBITIZE.

Name: Anonymous 2006-07-10 6:59

All arithmetic operations must be written in either prefix or postfix notation. Only both notations can be used; the compiler determines weather prefix or postfix has been used in any given expression.
Eg: the expression 3 + 5 * 20 / (7 - 2) can only be written as
/ + 3 * 5 20 - 7 2 (prefix) OR
3 5 20 * + 7 2 - / (postfix)

Also, compiler errors should return line numbers in binary, and the actual error descriptor should be in the form of a short riddle.

Name: Anonymous 2006-07-10 7:30

>>35
forgot: The output would be:

please insert a number: 12
hello world, the number you entered was 12

Name: Anonymous 2006-07-10 12:28

string literals should be represented as linked lists of chars thusly:
((H((e((l((l((o(( ((W((o((r((l((d((!((NULL))))))))))))))))))))))))))

(note that the parentheses tokens are double parentheses so that you know they are not a literal parenthesis.)

this representation has the obvious advantage of allowing you to concatenate two strings in O(1) instead of O(length of second string).

Name: Anonymous 2006-07-10 14:07

here's what i've got so far, explaination in next post:

10inport[nulltermstringNulltermstringLength];
20inport[linenumberNulltermstringLength];
30inport[uintNulltermstringLength];
40inport[uintAllocateMemory];
50inport[variableAllocateMemory];
60inport[linenumberAllocateMemory];
70inport[uintUintToNulltermstring];
80inport[stringUintToNulltermstring];
90inport[linenumberUintToNulltermstring];
100inport[nulltermstringPrintNulltermstring];
110inport[linenumberPrintNulltermstring];
120inport[uintPrintUint];
130inport[linenumberPrintUint];
140variable[uintBottles];
150|144:==dereference[uintBottles];
160variable[nulltermstringBottlesOfBeer];
170'\ bottles\ of\ beer\0':==dereference[nulltermstringNulltermstringLength];
180goto[linenumberNulltermstringLength];
190dereference[uintNulltermstringLength]:==dereference[uintAllocateMemory];
200dereference[uintAllocateMemory]+1:==dereference[uintAllocateMemory];
210nulltermstringBottlesOfBeer:==variableAllocateMemory;
220goto[linenumberAllocateMemory];
230' bottles of beer\0':==dereference[nulltermstringBottlesOfBeer];
240variable[nulltermstringOnTheWall];
250|15:==dereference[uintAllocateMemory];
260nulltermstringOnTheWall:==variableAllocateMemory;
270goto[linenumberAllocateMemory];
280' on the wall\0':==dereference[nulltermstringOnTheWall];
290variable[nulltermstringTakeOneDown];
300|42:==dereference[uintAllocateMemory];
310nulltermstringBottlesOfBeer:==variableAllocateMemory;
320goto[linenumberAllocateMemory];
330'. Take one down, pass it around, \0':==dereference[nulltermstringTakeOneDown];
340variable[nulltermstringBottles];
350|4:==dereference[uintAllocateMemory];
360nulltermstringBottles:==variableAllocateMemory;
370goto[linenumberAllocateMemory];
380dereference[uintBottles]:==dereference[uintUintToNulltermstring];
390nulltermstringBottles:==nulltermstringUintToNulltermstring;
400goto[linenumberUintToNulltermstring];
410nulltermstringBottles:==nulltermstringPrintNulltermstring;
420goto[linenumberPrintNulltermstring];
430nulltermstringBottlesOfBeer:==nulltermstringPrintNulltermstring;
440goto[linenumberPrintNulltermstring];
450nulltermstringOnTheWall:==nulltermstringPrintNulltermstring;
460goto[linenumberPrintNulltermstring];
470|153:==dereference[uintPrintUint];
480goto[linenumberPrintUint];
490|100:==dereference[uintPrintUint];
500goto[linenumberPrintUint];
510nulltermstringBottles:==nulltermstringPrintNulltermstring;
520goto[linenumberPrintNulltermstring];
530nulltermstringBottlesOfBeer:==nulltermstringPrintNulltermstring;
540goto[linenumberPrintNulltermstring];
550nulltermstringTakeOneDown:==nulltermstringPrintNulltermstring;
560goto[linenumberPrintNulltermstring];
570dereference[uintBottles]-1:==dereference[uintBottles];
580dereference[uintBottles]:==dereference[uintUintToNulltermstring];
590nulltermstringBottles:==nulltermstringUintToNulltermstring;
600goto[linenumberUintToNulltermstring];
610nulltermstringBottles:==nulltermstringPrintNulltermstring;
620goto[linenumberPrintNulltermstring];
630nulltermstringBottlesOfBeer:==nulltermstringPrintNulltermstring;
640goto[linenumberPrintNulltermstring];
650nulltermstringOnTheWall:==nulltermstringPrintNulltermstring;
660goto[linenumberPrintNulltermstring];
670|133:==dereference[uintPrintUint];
680goto[linenumberPrintNulltermstring];
690|25:==dereference[uintPrintUint];
700if[410]dereference[uintBottles]:==0;
710else[720];
720return;

Name: Anonymous 2006-07-10 14:07

from >>38
main features:
line numbers
hungarian notation
no whitespace
no functions (only gotos, arguments are passed with global library variables)
all numbers must be in octal
string encoding is EBCDIC
strings use single quotes, not double
no comments allowed
variables are pointers
too late i realized that all caps must be used, no lowercase

finer points:
keywords are used with the form: keyword[thing being modified by keyword]
if-statements work thus: if[line number to jump to if false]statement to test
assignation goes: value to be assigned :== where to assign it; backwards of most languages
testing equality also uses :==
for initializing nulltermstringBottlesOfBeer, i showed how you could use NulltermstringLength, but for the other strings i just coded the size directly cause it's easier (in this case)

keywords so far:
inport (not import)
variable
dereference
goto

Name: Anonymous 2006-07-10 14:18 (sage)

go do something productive, faggots.

Name: Anonymous 2006-07-10 14:33 (sage)

>>40
like trolling /prog/, for instance

Name: Anonymous 2006-07-11 1:56

>>38
great, we thank you for your contributions!
i think the keyword "return" to end the program is wonderful.

Name: Anonymous 2006-07-11 2:16

>>38
Jesus Christ, it is beautiful

Name: Anonymous 2006-07-11 3:04

Been done already. See INTERCAL for an example. Numbers are input as two decimal octets, there's COME FROM, you have to say PLEASE in the source often enough, file input and output occurs in roman numerals. (or was it ONE TWO NINE THREE SEVEN and so forth?) Conditional execution of code happens by suspending and reinstating execution of certain COME FROM and/or other lines.

Yeah, all been done before.

Name: Anonymous 2006-07-11 7:31

>>60
What admins...

Name: Anonymous 2006-07-11 23:56

THREADS EXISTING NO LONGER

Name: Anonymous 2006-07-12 2:47

INTERCAL isn't the worst language. Malbolge is, or would be if someone hadn't done a cryptanalysis.

Name: Anonymous 2006-07-12 12:15

>>9
i am a poor c-tard, explain how these 50-odd iterators would work for me?

more ideas:

the parsing of nulltermstrings will be done by functions like NulltermstringToUint, which will take the uintNulltermstringToUintSource'th character of nulltermstringNulltermstringToUint and place it in uintNulltermstringToUintDestination.

however, there will also be a stackstring datatype in which strings are uints stored on a stack. stackstrings can then be parsed by popping between stacks, analysing and modifing as we go.

(and now that we've defined string handling functions, we can write quines!)

obviously, converting between types is not automatic, but must be done with functions. uintNumber:==sintNumber is an error, we must use the UintToSint function.

allocating memory has been done, and i like the idea of using strictly segmented memory, and allocating only single segments, but the segment size should probably be something more like 256 (or 16?) bytes rather than 4K, as this would make string handling much more difficult.

another thing that should be worked out is memory deallocation. should this just use another function (e.g. free() in c), or can we come up with a better method?

oh, and we should probably have a method of self-modification.

finally, we still need a name for this language. i've been calling it 4code as a working name, but that's not a very impressive name

Name: Anonymous 2006-07-14 15:02

Call it ANONYMOUS C

Name: Anonymous 2006-07-15 0:55 (sage)

how about world4ch script

Name: Anonymous 2006-07-15 1:29

all keywords and functions will start with either l (L) or I (capital i) followed by five numbers. bracket equivelents in C will be } to open a block and { to close it. line comments begin with #\#/* . there are no block comments. also, things must be indented with 9 spaces AND have the brackets.

everything must have a ! at the end of it. variables are referenced in strings with $[variablenameq


I98276! l39732!(l82765!) } #\#/* defining a function
         I32948! l82765!;      #\#/* print the argumnt

         l202834!  = l298376!();
 
         I32948!("HELLO $[l202834q");
{

l39732!(!"hay wats ur name?!");

Name: Anonymous 2006-07-15 2:26

It's just like java, except you have to write every thing in binary..
I call it OOH Binary!

Name: Anonymous 2006-07-15 13:35

ALL FUNCTIONS ARE ANONYMOUS
ALL STATEMENTS MUST BE WRITTEN IN UPPER CASE. TYPING IN LOWER CASE WOULD BE A SYNTAX ERROR BECAUSE AS EVERYONE KNOWS CAPS LOCK IS CRUISE CONTROL FOR COOL.

Name: Anonymous 2006-07-15 14:21

FCOOLS - FourChan's Object Oriented LanguageScript.
Particularly evil because we never implemented anything OO. And wtf is LanguageScript? But anyone who takes it at face value will be like "damn how sweet is that?" and start coding.

That or wappascript.

Name: Anonymous 2006-07-16 3:16

>oh, and we should probably have a method of self-modification.

this is a REQUIRED FEATURE of this language, for sure!!
explicit support for self-modifying code

proposal:
there is a pseudovariable/function that returns the address of the "program counter" or currently executing instruction.  something like "instrptr"

there is another (library?) function that takes a block of code as an argument and returns its machine language opcodes.

using these and function pointers we could have a lot of fun.  buffer overflows would actually need to be necessary parts of your program.

Name: Anonymous 2006-07-16 13:21

the letter E inside a string causes the remaining part of the string (until Q for Quit) to be evaluated as program code. there is no way to disable this other than to escape those letters with four backslashes.

Name: Anonymous 2006-07-16 22:28

To program in the language, you must first define all commands you will use.  To define them, you must only use the language you are writing in.  Therefore, the code will reference itself.  There is only one pre-written command, which is to store the information in a random (even if it's already in use) memory location.  There can only be one memory location in use by the language at a time.  It will be hailed for its space-saving capabilities, and forced on all programmers.

Name: Anonymous 2006-07-16 23:38

MODS /B/ IS NOT WORKING PLZ FIX CUZ I LIEK /B/. KTHNKSBAI.

Name: Anonymous 2006-07-19 19:32

All types are objects, and all variables are pointers. All operators are called exactly the same way functions are. For example, to add x to y:

x->+(y);

Furthermore, there is no heap. There is no such thing as a return value for a function, but rather, what is returned is the object called; i.e. the above code returns the pointer to 'x'.

So to perform (x+y)/(u-v) and store it in z, you do:

int a,b,z; (z->+((a->+(x))->+y))->/((b->+(u))->-v);

Name: Anonymous 2006-07-19 19:33

*stack

Name: Anonymous 2006-07-19 19:34

Oops, also forgot function brackets around y and v. Oh well.

Name: Anonymous 2006-07-20 20:33

It's called HTML.

Name: Anonymous 2006-07-20 20:41 (sage)

>>46
Too easy to comprehend, uses already existing syntax.

Name: Anonymous 2006-07-21 9:35

All characters are in morse code.

Name: Anonymous 2006-07-22 23:09

lol. I like that Idea. Otherwise...

OPERATION AND RECALL LEAP-YELLING (aka ORLY)

This is the language used by SONY on their music/data CD's

A sample page looks like this:
>>hay_guys !!!
--what.happen.?
>>set *bomb* if chance < 0
--launch zig.drm
>>terminate if (cat > 999|divide < -1)
--talkback +tracert {infinite loop}
>>reboot if (tits|gtfo)<1

Name: Anonymous 2006-07-22 23:17

I think we should design a number system which will be based on syllables. 1,7,11,27,107,117, etc

And do it backward. Also, I like >>18's idea of syntax errors in the form of a short riddle. But perhaps they should be in the form of a small dose of ritalin, just to keep the programmers on the edge.

Name: Anonymous 2006-07-23 0:35

10 REM Hello World in BASIC
20 PRINT "Hello World!"
30 END

Name: virilius 2006-07-23 22:32

its aribic translitrated with the greek alphabet and then spoken into a microphone with a bad text2speech prog :)

Name: Anonymous 2006-07-25 14:19

>>53
1,7,11,27,107,117

Isn't 107 pronounced "one hundred AND seven", as in you need the 'and' for 101-109? 101 would work there.

Name: Anonymous 2006-07-25 15:11

>>56
I think Americans say 'one-hunner-sevn'.

Name: Anonymous 2006-07-25 17:18

>>57
i'm american, but i say 'a hunnerd seven', i think i say 'one hundred seven' when i'm trying to speak clearly.

but from a bad programming language standpoint, this is a feature. some compilers use the 'and', and some don't. no bad programming language should have good cross-compiler portability

Name: Anonymous 2006-07-25 19:03

>>58
but from a bad programming language standpoint, this is a feature. some compilers use the 'and', and some don't. no bad programming language should have good cross-compiler portability
I stand corrected.

Name: Anonymous 2006-07-26 9:01

>>58
Then 77 would be the portable way to write it, but you'd be out of luck for anything higher.

Name: Anonymous 2006-07-26 9:05 (sage)

>>60
scratch that, the numbers after 77 would have to be 27000, 77000, 27 billion, 77 billion... is billion 3 syllables? maybe quadrillion.

Name: Anonymous 2006-07-26 10:05

Quadrillion still won't work. 77000 == 27 quadrillion

You'd have to do something like 21,001,000 , 27,001,000 , 20,001,001,000 , 21,001,001,000 , 27,001,001,000 , etc.

Name: Anonymous 2006-07-27 0:36

All numbers must be written in binary.

Name: Anonymous 2006-07-27 1:19

No, tits.

Name: Anonymous 2006-07-27 1:45

>>63
>All numbers must be written in unary.

Fixed.

Name: Anonymous 2006-07-27 3:05

>>65
0000 00000000000000 000 0 00000000000000 00000000 0 0 00000 0 000000000000000 0 00000000000

Name: Anonymous 2006-07-27 10:07

There's a version of intercal where everything is written in trinary.

Name: Anonymous 2006-07-27 14:39

>>65
it should be negative unary, so you can represent negative numbers without having to use a pesky negative sign. i.e. 0 = 0, 00 = 1, 000 = -1, 0000 = 2, 00000 = -2, etc.

Name: Anonymous 2006-07-27 15:44

>>68
just use 2's complement: 256 zeroes = -1

Name: Anonymous 2006-07-29 16:58

>>40
I just got it -- unlambda is the /b/ of programming languages. All functions are anonymous and BOY OH BOY are they LEGION.

Name: Anonymous 2006-07-30 12:47

>>70

looks like you need to MURK LOAR

Name: Anonymous 2006-08-01 4:29

ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER!

Name: Anonymous 2006-08-01 5:07

OK ALL JAVA KEYWORDS, THREAD OVER, HURRRRRRRRR

Name: Anonymous 2006-08-02 7:12

>>73
ero java == worst, language, etc.

Name: NonymousQ 2006-08-03 0:14

Anything .NET. VBScript, JScript, whatever. Just fucking sucks.
Other than that, let's see you one needs to make a really bad language..... You would need to use multiple file types that achieve mainly nothing, or not much. So let's go with .f for functions and classes, and .i for their implementation, and .head for globals
Variables created in their implementaion files (.i) can only be (re)used in that same file. i.e Variable q is created in imp.i, can only be used in imp.i . Exception: if q is a global, declared in a .head file.
What else...
The language is only ported to Fedora Core 2 (Linux), and is oddly still being heavily developed. There is no garbage collection, and everything instantly demands 90% of your availible system resources.

Creating an executable is nearly impossible; you have to give the compailer random, useless flags just to create a .compiled file, which in turn then needs to be compiled into the final executeable.




Result: WTF is wrong with me?

Name: Anonymous 2006-08-09 7:59 (sage)

Name: Anonymous 2007-07-05 7:03 ID:1yhvYsoZ

already been done its called C++

Name: Anonymous 2007-07-05 7:33 ID:9oJodBBC

>>77
Bumping faggot

Name: Anonymous 2007-07-06 15:12 ID:ebvSFlGJ

you MUST type variables in diffrent caps everytime you refrence it.

time=0
TIME=2
Time=tIme+2

if TiME=4

repeating the variable in the same caps is a SYNTAX ERROR

Name: Anonymous 2007-07-06 15:19 ID:ICIivaKb

go away

Name: Anonymous 2007-07-06 19:48 ID:9Ovxq4eu

>>79
You know, this makes some sense, actually. It enforces the principle that variables with larger scopes should have more descriptive names.

Name: Anonymous 2007-07-06 19:50 ID:ICIivaKb

    ┌─┬──┬──┬──┬──┬──┬──┬──┬─┐
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    ├─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬┤
    ├┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┤
    ├┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┴┬─┤
    └─┴──┴──┴──┴──┴──┴──┴──┴─┘

Name: Anonymous 2007-07-06 20:46 ID:tNJHoA2g

Very simple.

Read code.
On Code: Random error, then FREEZE.

Name: Anonymous 2007-07-06 21:08 ID:APpULTHM

you must start EVERY line of programing with four arrows >>>>
and comments are written like this:
/BEGINING_OF_A_SINGLE_LINE_COMMENT/this is a comment/ENDING_OF_A_SINGLE_LINE_COMMENT/

Name: Anonymous 2007-07-06 21:16 ID:APpULTHM

and certain commands should only work 27% of the time XP

Name: Anonymous 2007-07-06 21:47 ID:HwxuKK9s

cbf to read entire thread

forced indentation of code is a must have

Name: Anonymous 2007-07-07 9:00 ID:BBvas4ZD

No variables, Instead, you must allocate memory addresses manually. Additionally, you can only allocate data to one byte at a time.

Name: Anonymous 2007-07-07 9:05 ID:+284FShd

>>87
DEY CALL DAT ASM FOO

Name: Anonymous 2007-07-07 10:37 ID:yXC27PjZ

python

Name: Anonymous 2007-07-07 10:49 ID:zG75UExX

Make it so the compiler takes a 1 min break every 5 seconds of compileing.

Name: Anonymous 2007-07-07 11:25 ID:BoKx39EH

Compiler commandline parameters should be in enterprise-quality XML.

Name: Anonymous 2007-07-07 19:31 ID:aaxCRy7D

They already made it, it's that turing-complete XML language.

Name: Anonymous 2007-07-07 19:34 ID:7d4C1qgD

>>92
XSLT?

Name: Anonymous 2007-07-08 1:50 ID:tWLqLTod

>>92
*touring

Name: Anonymous 2009-01-14 14:44

FAGGOT

Name: Anonymous 2010-06-07 6:48

Hi, I can spam /prog/ too, you faggot.

Also, smoke weed everyday.

Name: Anonymous 2010-06-26 10:00

ur gay

Name: Anonymous 2010-06-26 15:29

Here's what I got:
* calls a numbered primitives.
@ calls a value on the stack.
[ defines a function.
~ within a function defines arguments.
$ calls a function.
^ is an if statement. In needs to be followed by at least one [] block.
% is else.

*0 = eqauls
*1 = plus
*2 = minus
*3 = mult
*4 = div
*5 = mod
*6 = ==
*7 = >
*8 = <
*9 = ||
*10 = &&

I once implemented this. It's insanely easy and really satisfying.

Name: Anonymous 2010-06-26 15:38

>>98
Oh and # is return

Factorials:
!this defines a function on the 0 place on the function stack with the ability to calculate factorials
!there are already no need for parens because it's polish notation
[ 0 ~0 ^(*10 @0 0) [ # 1 ] % [ # *3 @0 $0 *2 @0 1 ] ]
!this is how you call it
$0 5
returned 120

Name: Anonymous 2010-06-26 15:42

>>47
A programming language requires stacks to be Turing compatible.

Name: Anonymous 2010-06-26 16:25

>>100
A damnable lie!

Name: Anonymous 2010-06-26 16:45

No language is complete without an interpreter!
Programs are given names that are capital Cyrillic letters. Examples:     ф     х     ц     ч     ш
The interpreter requires all instructions to be ASCII binary text and since no program can be over 100 characters (800 bits), a call to another program is given by ~H which means "Stop running this program immediately, copy the stack, etc and start running Program ц". These two features should increase complexity.

Name: Anonymous 2010-06-26 16:50

The completed executables have 2gigabits of header that is TOTALLY USELESS

Name: Anonymous 2010-06-26 16:56

>>103
Don't make it useless, make the header contain the program code repeated 9 times so that you can check whether data was corrupted before executing.

Name: Anonymous 2010-06-26 17:39

Malbolge laughs at your puny efforts.
Seriously, is this /freshmanprogramming/ now?

Name: Anonymous 2010-06-26 17:42

>>40
FUCKING CRUISE CONTROL, HOW DOES IT WORK?

Name: Anonymous 2010-06-26 18:20

>>105
I was a reader of esolang after Malbolge was invented but before any programs were written for it. This thread started when Malbolge was 8 years old and the most interesting program anyone was able to produce was a broken version of cat. When it comes to essies Ben is a bit of a genius.

You could conceivably make a worse language, but I doubt it will be anytime soon that someone makes one that is any of the following:
- not a mere derivative
- is worse in a way that is interesting
- creates that same kind of wasteland that needs crossing

Name: Anonymous 2010-06-26 20:34

MASO
A new language for modern computing.

I'm going to start off with some core features and their justifications:

1) ALL IDENTIFIERS MUST BE AT LEAST 20 CHARACTERS
Now that even consumer computers have gigabytes of memory, there is no justification for short identifiers.  Everyone knows that code is only written once but read many times, so this rule eliminates confusing variable names like 'i' and 'x'.

2) EVERY LINE MUST HAVE A COMMENT
Self-explanatory.

3) EACH COMMENT MUST BE AT LEAST 30 CHARACTERS AND END WITH A PERIOD
This is to discourage programmers from circumventing rule (2) by making comments that only contain, say, a space.

4) EVERYTHING IS AN OBJECT
Unlike, say, C++, there a no 'primitive' types.  This simplifies container classes, eliminates issues with boxing, etc.

5) EVERY OBJECT IS A DICTIONARY
Similar to Javascript and Lua, this simplifies the language implementation and provides run-time flexibility.

6) EVERY OBJECT DICTIONARY IS AN XML STRING
People already know XML and may already have editors that support XML.  Performance might be a little worse, but performance matters for only around 10% of any given program and, as we all know, that part is written in C++ anyway, right?

7) ALL BINARY OPERATOR EXPRESSIONS MUST HAVE PARENTHESES
Should (a ^ b << c) be interpreted as ((a ^ b) << c) or (a ^ (b << c))?  Just a few extra parentheses eliminate operator precedence mistakes.

8) THERE IS NO EQUALITY TEST OPERATOR
Rather than have confusion between '=', '==', ':=", etc, the equality test operator ('==' in C) is eliminated.  If you want to see if A and B are equal, check if (!(A < B) && !(A > B)).

9) ALL OBJECTS MUST SUPPORT THE '<' AND '>' OPERATORS.
This is because of rule (8).  Because operator overloading can be misused, overloading any other operators is prohibited.

10) ARRAYS ARE ONE BASED
Non-programmers might be involved in the production process and they are used to arrays that start at one.  See Lua for additional reasons why this is a good idea.

--------------------
Operators and syntax
--------------------

1) OPERATORS
+, -, *, /, ^, and, or, not
note: to make the language more orthogonal, 'not' is a binary operator

2) FLOW CONTROL
if else, while, sometimes, don't
note: something in a sometimes block will happen some times and not others
note: something in a don't block will never happen, even if the same statements
appear elsewhere outside of a don't block

3) OTHER KEYWORDS
new, delete, start, kill, injure, maim

4) FUNCTIONS (in BNFFF form)
(return value) (function name) { (statements) }

5) BLOCKS
There some controversy in the programming language community about significant whitespace.  In MASO a compromise is reached: blocks must begin with a '{', but afterwords use significant whitespace (no '}' is needed).

6) STATEMENTS
Statements end with a '.', or a '?' or '!'.  If they end with a '?' or '!' they can be referred to as "questions" or "exclamations".

--------------------
Example code
--------------------

#include <stdio.h>

main() {
    printf("Hello world!\n");
}

Name: Anonymous 2010-06-26 21:04

Terrible!

Name: Anonymous 2010-06-26 22:22

>>96
funny, this thread was bumped by an idiot

Name: Anonymous 2010-06-26 23:25

>>101
Well, either that or it has to be typeless

Name: Anonymous 2010-06-27 0:58

There are only two usable variables: variable_number_one and variable_number_two. You have to use the stack for everything else. Function names can only contain numbers, and numbers are written in octal as "one hundred and fifty seven". It's strictly object oriented, and classes can't have more than two member functions and three variables.

Name: Anonymous 2010-06-27 11:19

>>108
8)
but EqOrd!

Name: Anonymous 2010-06-27 11:35

this thread is from fucking 2006?

Name: Anonymous 2010-06-27 11:40

>>114
Yes, things existed before you knew about them. Shocking, I'm sure.

Name: Anonymous 2010-06-27 12:20

>>113
U MENA ¬(∀e.Eq(e)→Ord(e)).

Name: Anonymous 2012-01-20 4:17

>>108
Bump from oblivion for this epicnessnessness!

[implement-green-text]
>sitting in the office
>browsing /prog/
>come across this post
>laugh out loud uncontrollably several times
>no one in the office does programming
>can't explain what is so funny about a seemingly mundane subject
>more uncontrollable laughter
[/implement-green-text]

And then you were the sea, John.

Name: sage 2012-01-20 6:16

only octal number literals are supported

Name: Anonymous 2012-01-20 8:33

>>116
U MENA ∃x.¬(Eq(x)∧Ord(x))

Name: Anonymous 2012-01-20 12:50

The code must be sung. Syntax and definitions revolve around lyrics. Functions are choruses, the verses are the initial running thread, programs are called songs, et cetera. But what to call it. VoiceCrack?

Name: Anonymous 2012-01-20 13:26

Python


class FORCED_INDENTATION_OF_CODE:
    def __init__(self):
        print "Look mom, a procedure without parenthesis!"

Name: Anonymous 2012-01-20 13:43

( main ) = ( do ( "HELLO" ) ).
        ( var ( $HI = "Hello, world!" ) ).
        ( if ( $HI ) ) ( do ( "PRINT" ) ).
                ( "%d".printf( $HI.to_s ) ).
        ( end ( "PRINT" ).
        ( return 0 ).
( end ( "HELLO ) ).

that was kind of fun

Name: Anonymous 2012-01-20 13:51

A combination of COBOL and SQL with higher-order functions. Each statement is a function and has its own syntax and set of clauses. Keywords are reserved in some statements but can be used as variable or function names in others. Some keywords are synonyms but have slightly different syntax to match English grammar. User-defined functions can also have their own clause types. The documentation only shows basic uses of the statements, never the full variants. The only error messages are "TOO MUCH ON MY MIND." (out of memory), "I THINK I CAUGHT A BUG." (unhandled exception or signal) and "SORRY, I DON'T UNDERSTAND." (any compile-time error).

LET DOUBLE OF X BE MULTIPLY OF X AND Y GIVEN Y EQUALS 2.
COMPUTE DOUBLE OF 10 GIVING V.
WRITE OUT V LEFT ALIGNED NO PADDING.


COBOL's EVALUATE:
->->--EVALUATE-*--identifier-1--*-*-------------------------*--->
             *--literal-1-----* +  *--------------------* +
             *--expression-1--* +  V                    + +
             *--TRUE----------* *-ALSO-*--identifier-2--*-*
             *--FALSE---------*        *--literal-2-----*
                                       *--expression-2--*
                                       *--TRUE----------*
                                       *--FALSE---------*
 
   *---------------------------------------------------*
   *----------------------------*                      +
   V                            +                      +
->--WHEN phrase-1-*--------------*-imperative-statement-1------>
                 + *-----------*+
                 + V           ++
                 *ALSO phrase-2**
 
->--*-----------------------------------*-*--------------*-----><-
   *-WHEN OTHER imperative-statement-2-* *-END-EVALUATE-*
 
 
     where phrase-1 is:
 
->->-*-ANY--------------------------------------------------*---><-
   *-condition-1------------------------------------------*
   *-TRUE-------------------------------------------------*
   *-FALSE------------------------------------------------*
   *-*---*-*-identifier-3-*-*----------------------------**
     *NOT* *-literal-3----* **-THROUGH-*-*-identifier-4-**
           *-arith-exp-1--*  *-THRU----* *-literal-4----*
                                         *-arith-exp-2--*
 
     where phrase-2 is:
 
->->-*-ANY--------------------------------------------------*---><-
   *-condition-2------------------------------------------*
   *-TRUE-------------------------------------------------*
   *-FALSE------------------------------------------------*
   *-*---*-*-identifier-5-*-*----------------------------**
     *NOT* *-literal-5----* **-THROUGH-*-*-identifier-6-**
           *-arith-exp-3--*  *-THRU----* *-literal-6----*
                                         *-arith-exp-4--*


SQL's SELECT:
>>-+--------------------------------------------------+--------->
   |                      .-,-----------------------. |
   |                      V                         | |
   '-WITH--+-----------+----common-table-expression-+-'
           '-RECURSIVE-'
 
>--fullselect--+-----------------+--+--------------------+------>
               '-order-by-clause-'  '-fetch-first-clause-'
 
   .----------------------.
   V                      | (1) (2)
>----+------------------+-+------------------------------------><
     +-update-clause----+
     +-read-only-clause-+
     +-optimize-clause--+
     '-isolation-clause-'

     where order-by-clause is:
             .-,------------------------------.
             V             .-ASC--.           |
>>-ORDER BY----+-sort-key--+------+---------+-+----------------><
               |           '-DESC-'         |
               '-ORDER OF--table-designator-'
 
sort-key:
 
|--+-column-name---------+--------------------------------------|
   +-integer-------------+
   '-sort-key-expression-'

     where fetch-first-clause is:

                .-1-------.
>>-FETCH FIRST--+---------+--+-ROW--+--ONLY--------------------><
                '-integer-'  '-ROWS-'

     where update-clause is:

>>-FOR UPDATE--+---------------------+-------------------------><
               |     .-,-----------. |
               |     V             | |
               '-OF----column-name-+-'

     where read-only-clause is:

>>-FOR READ ONLY-----------------------------------------------><

     where optimize-clause is:

>>-OPTIMIZE FOR--+-integer-+--+-ROW--+-------------------------><
                 '-ALL-----'  '-ROWS-'

     where isolation-clause is:

>>-WITH--+-NC------------------+-------------------------------><
         +-UR------------------+
         +-CS--+------------+--+
         |     '-KEEP LOCKS-'  |
         +-RS--+-------------+-+
         |     '-lock-clause-' |
         '-RR--+-------------+-'
               '-lock-clause-'
 
lock-clause:
 
|--USE AND KEEP EXCLUSIVE LOCKS---------------------------------|

Name: Anonymous 2012-01-20 16:40

All programs start like this:
#include void.h

Name: Anonymous 2012-01-20 18:08

>>121

The plural is parentheses. Please learn it.

Name: Anonymous 2012-01-20 22:15

www.php.net

THE FORCED COERCION OF THE TYPES, THREAD OVER

Name: Anonymous 2012-01-21 1:54

Ducks.
Ducks are TOURING-COMPLETE, they can swim across a (theoretically) infinite river in either direction, at each step they can catch a fish, take a dump, or quack.

Name: Anonymous 2012-01-21 2:03

scheme, but every identifier and number and string must be represented as a balanced nesting of parenthesis.

Name: Anonymous 2012-01-21 4:19

>>125
No, fuck you.

Name: Anonymous 2012-01-21 6:03

mfw helloworld
>>> implying hello isn't "Hello, World!"
>>> I'd like to interject hello
>>> ISHYGDDT
helloworld
Hello, World!

Name: Anonymous 2012-01-21 6:38

functions of < > <= => should be reversed

Name: Anonymous 2012-01-21 6:46

>>133
nice dubs bro

Name: Anonymous 2012-01-21 6:47

Suck my dibs

Name: Anonymous 2012-01-21 7:12

Every procedure call has to start with at least one parenthesis and end with at least 7 of them.

Name: Anonymous 2012-01-21 11:23

>>134
Lisp!

Name: Anonymous 2012-01-21 12:27

Take the C language and make assignment statements have undefined behaviour.

Name: Anonymous 2012-01-21 13:03

>>136
Take the C language and make assignment statements have undefined behaviour.

An assignment in C is also an expression.

Name: Anonymous 2012-01-21 13:40

>>136

I see you haven't read your sicp today.

Name: Anonymous 2012-01-21 15:51

Take the C language and make assignment statements create Prolog-style choicepoints of execution when the variable was assigned and when it wasn't assigned, perform backtracking on segfault.

Name: Anonymous 2012-01-21 19:41

It should have the :: and := operators, and $ to say that the thing is a variable. Now it's unusable.

Name: Anonymous 2012-01-21 19:45

>>139

it's...it's beautiful!

Name: Anonymous 2012-01-21 20:32

use erlang syntax

Name: Anonymous 2012-01-21 23:32

A language based around line numbers where the statement has to be CHECK EM if the last two digits are the same.

Name: Anonymous 2012-01-21 23:32

>>143
144 CHECK EM

Name: Anonymous 2012-01-22 0:52

>>143-144
excellent!

Name: Anonymous 2012-01-22 5:56

i was going to sarcastically say microsoft visual cobol but apparently that actually exists

Name: Geo 2012-04-20 15:54

All keywords would either be words that would get you arrested under suspicion of discussing child porn or on the NSA's terrorism word watchlist.

Name: Geo 2012-04-20 16:11

admin please delete the previous post with my email.

I didn't want to have my email posted! (I thought it was for non posting validation or something - you should warn it will be posted! thanks!)

Name: VIPPER 2012-04-20 16:25

admin
AHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAH

Name: Geo 2012-04-20 16:44

yeah vipper, I'm an idiot.

why is not 4chan's auto delete button showing up ?

Name: Anonymous 2012-04-20 16:46

>>150
Because this isn't 4chan. This is monde4ca.

Name: Anonymous 2012-04-20 17:02

I call it )LISP( )setf( )aref y x board( ) 3((

Name: Anonymous 2012-04-20 18:08

It's like LISP, but without parentheses.

Name: Anonymous 2012-04-20 18:43

All variables are global.

Name: Anonymous 2012-04-20 18:50

Kinda like COBOL except the keywords are the tokens of this phrase:
reminds me of my friend she's about to die cause she has cancer and her favorite character on touhou was letty white ^_^ let's hope she'll live

Name: Anonymous 2012-04-20 22:45

What is Lisp had backwards parentheses. Sort of like: )function x y z(

Name: Anonymous 2012-04-21 0:43

Java.

Name: Anonymous 2012-04-21 1:12

>>153
That would be the best, not the worst.

Name: Anonymous 2012-04-22 6:55

Subtract and branch if less than or equal to zero

Name: Anonymous 2012-04-22 7:08

Just write a random grammar+semantics generator. Bound to be painful to use. Limit actual functionality as much as possible, enough to be Turing-complete (comes very cheap, can do everything), and add a lot of functionality that do overcomplicated one-off things nobody needs or wants or will ever use, bonus points if you only make the parts that make the language Turing-complete into such functionality (such as jumps and conditional jumps). Make recursion as broken as possible to make the language nearly unusable, but not broken sufficiently. Optional high-level or functional constructs which nevertheless are hopelessly unususble due to artificial restrictions as to their use (not creative enough? Think FIOC!).

Obviously this is all an utter waste of time. A good Lisper or just any computer scientist knows that you can just take any language, no matter how bad and as long as it's Turing-complete(hard not to get this, unless you start adding some very arbitrary restrictions), you can just make a compiler from your favorite language to this "new" language and just use whatever you want to write your code in without being forced to suffer...

Name: Anonymous 2012-04-22 7:31

Lambdas are only one expression long. Indentation is enforced by the interpreter. Only one thread may run at a time. No TCO. Literals for everything in the core syntax. No way to add new syntax.

Name: Anonymous 2012-04-22 15:26

Unreadable shit. S-expressions. Parentheses everywhere. S-expressions. Indentation cannot be made significant. S-expressions. No way to improve surface syntax. Have to pick between three language flavours, one that features verbose-as-fuck macros, another that features different namespaces for functions and variables, and one designed by someone who thinks conj is a great catch-all name for adding things to collections. S-expressions. Parentheses all over the fucking place. Oatmeal with toenail clippings.

Name: Anonymous 2012-04-22 20:13

>>161-162
Clash of the titans faggots.

Name: Anonymous 2012-04-22 22:04

>>163
fuck you fagstorm

Name: Anonymous 2012-04-22 22:12

>>166
your dubs are shit

Name: Anonymous 2012-04-22 22:26

>>165
check em

Name: Anonymous 2012-04-22 23:19

>>165
shit dubs bro

Name: Anonymous 2012-04-23 0:43

code is nested by reducing the font size

when you have a series of nested while loops the text gets smaller and smaller

Name: Anonymous 2012-04-23 8:17

>>168
That's actually a good idea for an editor, particularly in the context of a programming class.

Name: Sgt.Kabu銐kiman륢 2012-05-28 19:22

Bringing /prog/ back to its people
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy

Name: Anonymous 2012-10-23 19:21

ANCIENT THREAD RESURRECTED

Don't change these.
Name: Email:
Entire Thread Thread List