Forgot your password?
typodupeerror

Comment: degree? (Score 1) 356

by superwiz (#47920887) Attached to: Ask Slashdot: Any Place For Liberal Arts Degrees In Tech?
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:Linux, cryptography, HTML and JavaScript. (Score 1) 123

by superwiz (#47917835) Attached to: Harvard's CompSci Intro Course Boasts Record-Breaking Enrollment

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) 123

by superwiz (#47917423) Attached to: Harvard's CompSci Intro Course Boasts Record-Breaking Enrollment

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.

Comment: Re:Poor comparison... (Score 1) 59

by chihowa (#47912461) Attached to: New Data Center Protects Against Solar Storm and Nuclear EMPs

You are correct in that AM frequency is generally labeled in khz... in the US the range is 535-1605 kHz ... of course any one who isn't from the US could tell you that 1000 kHz is equal to 1 MHz....
which means the parents statement about AM being "around 1MHz" is a fairly accurate statement, more accurate would be 1MHz plus/minus ~600 kHz.

Ultimately weather something is measured in kilohertz, megahertz or gigahertz, is a matter of scale, is something oscillating at of thousands of time per second, or millions, or billions?

Anyone who isn't from the US probably needs to fix their intermittently failing shift key, though. SI actually assigns meaning to capitalization in units and there is a big difference between mHz and MHz.

"A great many people think they are thinking when they are merely rearranging their prejudices." -- William James

Working...