The IOCCC Competition Is Back
Rui Lopes writes "After a 5 year hiatus, the IOCCC (International Obfuscated C Code Contest) is back! This marks the 20th edition of the contest. Submissions are open between 12-Nov-2011 11:00 UTC and 12-Jan-2012 12:12 UTC. Don't forget to check this year's rules and guidelines."
They created a competition for the most well structured, well documented, clean and correct code.
Most C coders seem to achieve obfuscation without any additional incentive.
The IOCCC is cool, but the Underhanded C Contest was a lot more valuable.
The entries for the IOCCC can show a lot of cleverness, but nobody in their right mind would accept such code. The beauty of the Underhanded C ones is that the code looks reasonable, but does extremely undesirable things.
I hope there are many submissions... It's things like this that teach you the FULL amount of abuse a language can take while still making something that works. :-D
The C language is not my thing per se, but I'd like to see simple C program code the illustrates the subtleties of C. Anyone?
#include "stdio.h"
int main()
{
char buffer[80];
printf( "hello, world.\n" );
repeat:
gets( buffer );
printf( "you know, I miss all you guys.\n" );
gets( buffer );
printf( "I was a pretty good guy, don't you think? But he doesn't seem to think so.\n" );
goto repeat;
return 0;
}
Use Duff's Device! (Responsibly)
Use Duff's Device! (Responsibly)
It's about time I got some more reference code.
What happened to the International Unobfuscated Perl Code Contest (IUPCC)? ... Oh wait it's impossible to write unobfuscated perl :)
If C did not get the job done for this kind of computing then it would have been replaced. The fact that C thrives in the systems programming domain is a tribute to it's utility.
A proficient C coder can write clear, maintainable, efficient code that runs on many platforms. This requires both skill and practice. Not everyone is capable of doing this. It requires the ability to keep multiple competing abstractions in mind when coding. I think a lot of people try this and find it difficult and then blame the language. Those who persevere and learn this style of working can usually move on to other kinds of programming and also do excellent work.
Some problem domains require different languages and different skill sets. Personally, I like writing code where I know that if I were to look at the assembly code generated by the compiler I can see how it relates to the C code I wrote. I rarely do this, but it's good to know that I can if I want to. I'm doing any C coding now, because I always use the appropriate language to the task. But I also know that my C coding skills give me a distinct advantage in solving difficult problems, no matter what they are,
Why is Snark Required?
Contractor.
have you seen a designer's php code??
The kind of crap that would be easier to rewrite than refactor?
How about stuff that needs to be rewritten from scratch because a target platform can't run C? This is true of the web (or at least it was until Emscripten), and it's still true of Xbox Live Indie Games and Windows Phone 7.
Direction Obfuscation Test.
Am I the only one, but are our bosses not understanding Dilbert? I've got one who thinks it's about managers talking to dumb employees.
This ties nicely into the previous story, Is American Innovation Losing It.
That way we can submit hello world programs that make the C IOCCC ones look like a picnic
http://saveie6.com/
but I am happy it is back
Never antropomorphize computers, they do not like that
A number of quick points... Some people just don't know, so here are some practical speaking points...
-C has been around longer than most of the non-C programmers alive. That includes you people on this site, which has the smartest people, from one of the most divisive areas in the civil space: the "tech wars".
-D was such a better language... also, C++ because we never hear about C anymore.
-Java is on it's way out, being deprecated by the largest company in the world, which also deprecated Flash (on mobile) which Adobe just acquiesced to, replaced by Google's new iteration. Maybe not in the next 5 years, but it can no longer grow... it will have to get smaller with less support.
-Objective-C, used by Apple Inc., the largest company in the world, is a wholly-compatible superset of (ANSI) C. There are no signs of change here. Big surprise, it's all the same hardware components, just in larger capacities, at faster rates, and smaller form-factor. C can't help us with the flux capacitor... but that has not been added to the standard CPU, memory, memory storage, etc. model.
-Google announced that Android will run a C-like-language in the native space that uses the CPU and GPU. Even with Dart coming our way...
-CUDA... C is relevant in other (all) GPU spaces which is the go-to-guy, for the moment, to eak out more performance from a machine.
-And here is where the feelings get hurt: In college, I strattled the EE/CS line while being firmly EE. EEs learn C because it teaches them valuable things about the hardware, being a very light obfuscation. CS departments tend to concentrate on, well, anything else. Flavors of the year, interesting projects, etc. That is their place. My older brother went the CS route, 8 years before I got my turn and went EE. I admire him and his success greatly but I know, push came to shove, I can talk about certain topics without talking about garbage collectors and universal typing.
So, please, if you've never used C in any significant way, just don't comment. Listen. People, young and old, have something to tell you about the most significant programming language ever invented.
And to bring this all together: When you are trying to eke out CPU cycles so your 3D rendering is above 60 fps on that mobile device, you will know why closeness to hardware and C, in particular, may be your best friend. Or a C-like language...
Another way to look at it: People who know C and have worked with it, can't just unknown it. They know what you non-C people know, but also have other experience. If MOST of them say C is indispensable, then how about you do the one thing some Tech Asshole never do: Take someone else's advice. And STFU.
Can we just talk about something else that is awesome and not caught up in this stupid argument?
We've all coded a quine, but this goes at least three steps further. Documentation here.
I am so looking forward to reading the 2012 winning entries!
To understand what this is about go look up the pig latin translater.
This compiles and actually works:
http://www.cise.ufl.edu/~manuel/obfuscate/piglatin
I can't believe no one has mentioned this yet!
But, before perl, what was Larry Wall famous for?
Winning the IOCCC, not once, but twice.
Makes you think...
someone writes broken Java code and that's somehow an indictment of the language?
Oh, and there are very good reasons for StringBuilder. Strings are immutable in Java and StringBuilder is a simple way to avoid quadratic complexity when building strings (as naive copying + "appending" would). Not sure why they didn't go with ropes, though...