Forgot your password?
typodupeerror

Comment: degree? (Score 1) 343

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:Linux, cryptography, HTML and JavaScript. (Score 1) 123

by superwiz (#47905601) Attached to: Harvard's CompSci Intro Course Boasts Record-Breaking Enrollment
JavaScript (or any language in which string values and language symbols are interchangeable) is more important to know now than C. C can generated. And it's quickly getting to the point where that's all it's good for -- being auto generated. It is just text after all.

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

by superwiz (#47905585) Attached to: Harvard's CompSci Intro Course Boasts Record-Breaking Enrollment
C and C++ no longer have any place in basic CS education. Sorry, we are at the point where it's more efficient to generate C than to write it. And since C++ is just generated C with really, really arcane syntax for this compile-time generation, C++ lost its purpose, too. There are more expressive (ie, easier to read) and less error-prone methods for generating C code now. It's finally becoming yesterday's news. The whole reason you see "resurgence" of C is that people are not writing it. They are generating it as an intermediate product. C is just text. And there are better ways to generate that text than the preprocessor or the C++'s template mechanism. C, however, has a major, major, major design flaw -- you can't assign to return values directly. So as a mechanism for expressing algorithms it has a natural inefficiency built into the language. It's not that there is no simple work around for it in C, it's that it needs a work around. It's over.

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

by superwiz (#47905547) Attached to: Harvard's CompSci Intro Course Boasts Record-Breaking Enrollment
Really? I just thought that was something one picked at birth. No, really, is that even a form of knowledge? I just find these to be self evident. Often find it surprising that trivialities have names behind them when people start talking about them as fields of knowledge.

Comment: Re:Which Invasion? (Score 1) 205

by superwiz (#47812873) Attached to: Kernel Developer Dmitry Monakhov Arrested For Protesting Ukraine Invasion
Of course, the evidence of WMD's was very circumstantial. In this case, there is footage. And there are 2500 dead people. And it's all because of Putin's direct orders (this part is my opinion... but it's obvious to anyone whose ego is not invested in chest-beating for Mother Russia). Russia never fails to supply the world with a good tragedy. It stood at the doorstep of becoming civilized and it decided to turn around and slam that door shot. I wish what's about to ensue could be a hilarity. But the campaign of deception that is running out of Russia is almost as depressing as the Russian campaign of terror.

APL hackers do it in the quad.

Working...