You are forced to choose at gunpoint. You will then proceed to work on a random project for a random company that uses the language you just chose. Or you can just take the gunshot. Provide reason for such a decision.
Name:
Anonymous2014-03-11 13:36
C++
It's shitty language sure. But Java is designed for moron code monkeys and is much more limited. With C++11 I can get at least some nice features and surely a lot of control over things.
Gunpoint is not a good option from these, since it most probably involves dying.
Name:
Anonymous2014-03-11 14:31
(I assume, although it's not explicitly stated, that I'll have to write primarily in the language I choose, and that there's no dickery such as getting shunted to writing epic web apps in Javashit because the company also does C++.)
I'm choosing Sepples as well. Most of my issues with C++ come from a bloated specification and the incessant feature creep, which I can ignore in my own work. My issues with Java are more fundamental, and cannot be ignored as easily. The project itself would factor into my decision more, but as stated, the situation seems to be so wide open that I can't even say ``I'll choose Sepples because that way I have less chance of writing ESBs for a living''.
I'd still rather take the gunshot, but mostly because of the ``random project for a random company'' bit. Life sucks enough as it is, and not being able to have any choice where I work would push it over the line.
I'd pick Sepples in a heartbeat. I'd silently replace #include <iostream> with #include <stdio.h>. The C++ -> C translation project is left as an exercise to my fellow curryniggers.
C++. It has gotoes and TCO, so you can easily compile Lisp into it.
Name:
Anonymous2014-03-30 11:07
In the very very very old version of C language (think of the time dinosaurs roamed the Earth), known as "Reference Manual" version of C (which refers to a document written by Dennis Ritchie), labels formally had type "array of int", meaning that you could declare an int * variable
int *target;
and assign the address of label to that variable
target = label; /* where `label` is some label */
Later you could use that variable as the operand of goto statement
goto target; /* jumps to label `label` */
However, in ANSI C this feature was thrown out. In the standard modern C you cannot take address of a label and you cannot do "parametrized" goto. This behavior is supposed to be simulated with switch statements, pointers-to-functions and other methods etc. Actually
Vast majority of CPUs support register jumps, otherwise buffer overflow attack wouldn't have worked. If hackers can do that, then what stopped the ANSI standard committee?
Name:
Anonymous2014-04-03 17:18
the whole point of C is that it doesn't specify how it should be implemented, c.f. the C abstract machine. guess what, it's DESIGNED to be ran on more than the "vast majority." you wont see any references to stacks or heaps in the standard either