IOCCC 2006 is now open
leob writes "The 19th International Obfuscated C Code Contest opened one minute before the New Year to qualify for the 2006 designation. Entries accepted until the end of February. Start writing and submitting your entries now!"
They could always create an International Obfuscated AJAX competition, then every entrant could be a winner.
Either I'm dumber than I had hoped, have worked with nimwitted programmers, or (much more likely) most AJAX implementations are just completely illogic to follow. When reviewing "Web 2.0" work, I often miss the logic and structure of C.
Crack - Free with every butt and set of boobs
I for one find it appalling that only C is allowed. What about Plus or Sharp? They have the same rights as the high and mighty C does. What this amounts to is pure and simple racism. This brings us right back to the coding rights movement of the 80's. I cannot believe we are still struggling.
I'm so mad, I'm calling Jess-C Jackson. He'll get Al #ton on the phone as well.
Free childcare classifieds: www.carebrite.com
Having the 2006 competition run in 2007...
It's like they are setting out to create a contest that is unclear and needlessly difficult to understand.
Don't get me wrong, I like LISP. But I think you just mentioned the one and only way in which AJAX code could become even less readable.
Make a C mutator: It takes C, parses, and applies a bunch of randomizing but semantically preserving transformations. Make it small, and compact.
Then run your code through it a few times and submit it.
Test your net with Netalyzr
Leob, I just thought of a New Years Resolution for you.
Why bother.
Common Lisp or Scheme code is often only unreadable to people who have had their brains scrambled by languages like C, C++, Java, C# and VB. I was involved with a college class that taught Scheme to first-year business students. These students, many of whom had never written a program in their lives, picked up Scheme very quickly. I had helped with a similar Scheme course for third-year Comp. Sci. students, and a greater percentage of them had trouble adjusting to Scheme.
After talking with some of the business students, they suggested that it was the syntax that made it so easy! The extreme consistency of s-expressions basically eliminates confusion. There's no question as to how to write a piece of code, as the steps to take are so very clear, and the code to write is basically self-evident.
Some students did have trouble. But after talking with them, we found that it was usually because they had had some previous experience using languages like Perl, C or some sort of Basic. Such languages are consistently inconsistent, especially Perl, when it comes to syntax. So when somebody finally learns such languages, they actually find it far more difficult to go to a very consistent language, as all they are used to is inconsistency.
Consistency is not a fixed property of a language. Consistency only exists in relation to the programming paradigm. For an object-oriented viewpoint, I think Java and C# are pretty consistent. If I need to specify an algorithm, I turn to something like LISP. the functional paradigm works very well there. But if I need to write a program for a client, I prefer the imperative/oo approach.
I can believe that for simple programs, many people find functional languages quite intuitive. I did when I had to write backtracking algorithms back on college. But most application programming would be hell to do in LISP.
You submit your OBSFUCATOR after you reobsfucate it a few times.
Test your net with Netalyzr
Lethyos, I just thought of a New years Resolution for you.
http://www0.us.ioccc.org/years.html - 17th was 2004. 19th is... Hmm... Yeah, 2006. And the contest started in 2006. So yeah, 2006.
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
A contestant would submit a piece of code together with the specification of what the code was supposed to do, but no other documentation.
The judges would propose a straightforward change in the specification.
The code and the revised specification would be given to an impartial panel of a hundred programmers, selected at random from the ranks of people working for a living writing code. Each of them would be asked to modify the code to meet the revised spec. They would also be instructed to fix any bugs they noticed in the code they were given. The revised code and spec would then submit each one to an impartial panel of 100 SQA testers, selected at random from the ranks of people who work for a living testing code.
The winner would be the contestant whose code, after being modified by other programmers, passed the largest number of SQA tests.
(And, yes, SQA failures due to unfixed bugs in the original code would count against the contestant).
"How to Do Nothing," kids activities, back in print!
Okay, the 2006 "Explanation of Why IOCCC Is Not Just Ugly Code" is now underway.
The winning entries are pieces of art, not pieces of dung. They look like they should do one thing, but they do another. They arrange the code in a visually pleasing but maintenance-proof way. They choose some concept and take it to the absurd limit, all within a tiny amount of code.
My favorite past entry is John Tromp's maze generator. In seven lines of code, he produces random mazes. The variables are named M, A, Z, E instead of useful functional mnemonics. The source code is formatted to LOOK like a maze. And even in this maze which is the source code, the passages in the maze spell out the word 'maze.' This is not just putting a pig on the lipstick, this is making the pig look *good*.
[
C or C++ code is often only unreadable to people who have had their brains scrambled by languages like Common Lisp and Scheme.
So? The fact that some management types think scheme proves exactly what?
My blog
It'll always return 42 because one is a variable, not a #define, hence its value isn't set in relation to compile-time activities (such as which value to place in result.)
Am I right?
Yeah, I mean computers are fast enough for everything these days. Lets use Java for everything.
I missed writing programs in C. Anyways, I think, the creator of Perl has also won that competition. C rules/rocks!!!
a ge)/
Ozgur Uksal
http://en.wikipedia.org/wiki/C_(programming_langu
AppleScript is one of the few languages that is trivial to read, but very difficult to write. If you find yourself using it again, then remember that it is semantically almost identical to Smalltalk. Mentally replace each 'tell FOO ... end tell' block with 'FOO: ...' and you will find it starting to make sense.
I am TheRaven on Soylent News
I wish I could moderate your reply as funny. :)
Why bother.
There are still things that need a genericized assembly language, so there is still a need for C!
-mkb
Aw, c'mon: there is a time and place for everything.
The number of large, successful projects coded in C thoroughly mocks your viewpoint.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
There are still things that need a genericized assembly language, so there is still a need for C!
C was a high-level assembly language for the PDP-11; it is not a high-level assembly language for modern architectures.
The number of large, successful projects coded in C thoroughly mocks [sic] your viewpoint.
Heck, yes, by your argument, let's go back to DOS, Fortran, and COBOL, then. I mean, who even needs this, new-fangled C and UNIX stuff?
You've swerved from one ditch to the other, sir.
How about something moderate? Good tool/job match? Decent balance among power, performance, and ease of use?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
yeah, cause modern ISAs aren't designed to be easy to compile C for or nothin'.
-mkb
They should run a Perl version with prizes for actually clear code. But I suppose it would be too difficult. Or maybe it would end up as a Loebner contest-style contest: lots of entries, no winners. Oh well.
yeah, cause modern ISAs aren't designed to be easy to compile C for or nothin'.
Modern architectures try to accomodate C as much as possible, but they have lots of important functionality that isn't available from C. Therefore, C can be compiled for them, but C isn't a "high level assembly language" for them.
Conversely, some of the areas where modern architectures have tried to accomodate the C language have arguably led to bad architectural decisions and have held back the industry both on runtime safety and performance. That's yet another reason to ditch C.
C is just a poorly designed high-level language, nothing more. It was obsolete the day it was conceived.
How about something moderate? Good tool/job match? Decent balance among power, performance, and ease of use?
Yes, and C is never the optimal choice on purely technical grounds; C is full of flaws and design errors that can be fixed without affecting its expressiveness or performance in any way.
The only reason to use C (and I do) is because lots of other people are using it.
See http://www.ioccc.org/2001/schweikh.c