Hacker Newsnew | past | comments | ask | show | jobs | submit | twwl's commentslogin

The the people downvoting this thinking they're cute: totalitarianism is no joke, and your apathy infringes on my rights. You flat out do not get to be this lame.

Get rid of your toys before your toys get rid of you.


What right(s) of yours does my apathy infringe upon?


Yeah, exactly. This Location History thing could provide me with an alibi if someone was trying to sue me for something I didn't do. It enhances my rights instead of lessening them, in my opinion. And it doesn't touch anyone else's rights.


Reminds me of the quote from The Dark Forest - "make time for civilization, for civilization won't make time."


Is there anyone marketing cigaretts able to claim they're unaware? Aren't those also adults?


I smoke (trying to quit) and I don't think cigarette manufacturers are doing anything immoral. I enjoy smoking! Why else would I have ever tried it when I knew all the risks?

Nobody is getting tricked, here. People are selling a product that other people want.


Have you read "the easy way to stop smoking"? He makes a great point about the claim that smokers don't actually enjoy it. It's addiction, thinking you enjoy it is a mechanism of avoiding the guilt of the addiction. Or something like that, his argument was much more convincing.


That's akin to saying "you don't actually enjoy eating food, you're just hungry". Addiction and enjoyment are not mutually exclusive.


There's irony in this: Do you think not judging other people for X or Y makes you better than people who judge other people? :P


It's not simplifying it though, it's just hiding the complexity in syntactic sugar. I prefer the first way of doing things vastly over the second. Yeah, it's more code, but it's also more or less "what is actually happening", instead of an euphemism which has to be unpacked.


I disagree, I believe it is properly using abstractions to write simpler, more straight-forward code. I think of syntactic sugar as 1-to-1 replacements. For example, the -> in C and C++ is syntactic sugar for a dereference followed by a field access (ptr->field; (*ptr).field). If it's not a 1-to-1 replacement, then it's more likely to be an actual abstraction.


> I disagree, I believe it is properly using abstractions to write simpler, more straight-forward code.

Straightforward for some readers, or more straightforward for the CPU/GPU?


The first example is code duplication, and almost every line is suspecious.

    var listOfGoodFoos = new List<Foo>(); // is listOfGoodFoos a good name?
    for(var i = 0; i< listOfAllFoos.Count; i++) // is the loop condition correct?
    {
        if(listOfAllFoos[i].IsGood) -- the only interesting line is burried in here
             listOfGoodFoos.Add(listOfAllFoos[i]); -- is i the right index variable? (vs. j, k, n, especially in nested loops)
    }
    return listOfGoodFoos;
The second example is obviously correct, and highlights the condition.

A quote from Tony Hoare comes to mind:

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.


> it's just hiding the complexity in syntactic sugar.

And that complexity is only written once, instead of multiple times for a single project

You can have as many FOR and IF branches that you want, but only if they are all bugless!


Actually, it's written exactly as often as the original construct.

The idea that writing more than 5 letters, or a for loop here and there, is this giant cesspool source of errors is totally alien to me. Of all the ways in which my programming sucks, this was never among them. So thanks for you permission, I'll use it wisely :P


Yep. As long as the abstraction is tested and functions as advertised it can be very useful.

I'd much rather see a few lambdas in a chain of function calls than blocks of conditionals and loops. Every keyword or bit of code that has to be typed is a potential source of errors, and abstractions of this sort help minimize that.


All programming languages are "euphemisms" in that sense - even C has a lot of layers between it and how modern hardware behaves. It is simplifying if it expresses the important aspects of the result rather than the implementation details of how the machine calculates it.


Sure, but when programinng, what the machine does and how long it takes, sometimes does matter. I have to think of all those jQuery examples floating about out there that just do $('#foo') in several places -- sure, it looks simpler than putting it once into a variable, but from the viewpoint of what the computer ends up doing it's utterly ass-backwards.


There's no reason a `.where` should be slower than an explicit loop though. Indeed it should offer more opportunity for future performance improvements, because it doesn't constrain the implementation with irrelevant details - the compiler is free to e.g. make the loop run backwards, or split the collection into chunks and parallelize, if it figures that that would be faster.


At some point that breaks down though doesn't it. I mean from one perspective a conditional in high level code doesn't describe "what is actually happening, either." That's especially true if an optimizing compiler or interpreter mangled it up.

From another perspective your argument can be applied to any function call in library code.

In either case I don't think your position is that strong.


> I mean from one perspective a conditional in high level code doesn't describe "what is actually happening, either."

Sure, and from another perspective even the most efficient code does nothing to stop the heat death of the universe and is therefore functionally equivalent to doing anything else or nothing at all. However, that's just splitting hairs. It's not really an argument anyway, but rather a preference.


The question is more whether it's a reasonable preference to think syntax X is helpful but syntax Y is hiding things. Thinking deeper might show that the issue is actually familiarity, and the two should be rated the same in terms of abstraction.


> It comes from Greek words "demos" meaning "the people" and "kratia" meaning power or authority. A democracy doesn't specify which people

Of course it does -- the people. Demos, not anthropos.

> But none of these things mean that the US does not have a democracy.

And here too, the words "least democratic", rather than e.g. "not democratic at all, in any sense, ever", were likely chosen for a reason.

> I think its odd that the OP simply saying he applauds the Ecuadorians efforts to distance themselves from Wikileaks elicited such a total condemnation from you.

I consider it obedience signalling in the face of totalitarianism. I'm fine with "total condemnation" of that. I actually expect it from anyone I wouldn't pity and fight.


If you have to be forced in order to act moral, you're immoral. People can call corporations "amoral" all day long, but they're made of people, and their decision to not be moral also implies the decision to be immoral.


> facts and data are objective

Sure -- it's just a pity neither you or me or anyone will ever come in contact with them. Everything we think/write/read is based on assumptions/axioms. You don't even have to "dig" to realize that, you just have to scratch the surface.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: