Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Comment degree? (Score 1) 392

Maybe. Background? Absolutely. Tim Bray often attributes this

There are only two hard things in Computer Science: cache invalidation and naming things.

to Phil Karlton. But he does it so often that it is usually attributed to Tim Bray. Naming things is where the code monkeys usually fail. Engineers who think they are programmers usually fail at it hard. It takes a certain fluidity and realization of how actual human beings interact with the world to give content meaningful context (by naming it right) and to understand problem domains well-enough to pick the right cache invalidation schemes. And, of course, understanding how human beings interact with the world is what one gets out of a liberal arts degree. As I said, it doesn't have to be a degree, but the background has to be there.

Comment Re:Most taxes are legalized theft (Score 5, Insightful) 324

Why are you being modded down? The wars are almost entirely off budget. Maybe they'll make up for it with asset forfeitures..

They can't handle the truth. They believe in fictions written by some old lady who collected social security and received other government subsidies she railed against.

That's my guess.

But, yes, the US has an unfortunate tendancy, since the War of Independence, and the Civil War, continued to the present, of always fighting wars off budget. Which is where the budget deficits come from. Social Security pays for itself and has always had a surplus, and still does.

Comment Re:Linux, cryptography, HTML and JavaScript. (Score 1) 144

it's not because of a limitation in C.

C most definitely has the limitation which C++ tried to address and failed. Return should have been a pointer to the address where the returned value ends up being copied when it's popped off the stack. Instead it's just a syntactic premature end of a function. Had it been a simple pointer to the place where the function's return value ends up being copied, C++ would not have been invented because it would have been unnecessary. I am talking about the semantic that is present in Matlab functions (where you can assign to the return value directly). C++ tried to address it by having "this" pointer, but it ended up mixing the data and the functions which operate on it. Which is why its syntax will never be simple.

For example

int a = f();

should allow f to assign directly to the memory location where 'a' is. Like I said, there are obvious work arounds. You can pass the address of a to f() instead of doing direct assignment. But it break the semantics. And it reduces readability. And human time is more important than computer time, so readability is more important than slight loss of efficiency in execution.

The problem is that once 'a' is not an int anymore, but is a complicated structure, you are stuck. And if you still don't think that's a problem, try implementing a fully-efficient (no redundant copying or inquiries) discriminated union in either C or C++. Good luck! Your easiest solution at that point is to just generate the code in some text generating language. But if each function had access to the point of return, it would be trivial. Oh, and discriminated unions are all of networking and all of data management.

Comment Re:Linux, cryptography, HTML and JavaScript. (Score 1) 144

If you don't understand how pointers and return values in C works, it's not because of a limitation in C.

Hhm... to ad hominem or not to ad hominem that is the question that preoccupies us. Whether it is nobler, in the mind, to suffer the slings of mud of outrageous statements or to take aim and by opposing them thus end them.

The full amount of what you don't know and the years of experience that you lack to make the judgement that you made would take a volume of a flame war to fight out.

C and C++ are about as relevant today as assembly. If you don't understand that C++ template mechanism and C pre-processor are nothing but compile-time text generation tools with arcane unwieldy syntax, then you have no place making judgement. There are better tools to generate the same code that both of these end up generating. The better tools capture what you want to express without being bound by the arcane syntax of C. And unless you think that direct bit banging and micro assembly are the "real" CS (hint: they are not -- they engineering rather than CS), your argument is moot.

Slashdot Top Deals

Real Programmers don't eat quiche. They eat Twinkies and Szechwan food.

Working...