1,151 karma · joined January 10, 2017
"Let go of the idea that you can live as an independent human" have a word with yourself.
So political distribution is 1. Not that cause of the problem, 2. Probably not even a symptom, it's more to do with the fact that most science is state-funded and right wing ideology broadly seeks to diminish the state. The right are also anti-science in broader ways (religious, climate change etc etc). It's a trend across science, not just in bs subjects: http://www.people-press.org/2009/07/09/section-4-scientists-...
I just think whenever you're having this discussion, which is important, throwing political distributions in muddies the water and polarizes it for no upside.
I hadn't seen it before, basically if I understand it right treating all vectors as lisp s-exps which are themselves 0-indexed (0th element is 'list' , because you're doing a lot of symbolic manipulation. It's the best argument I've seen for 1-indexing, I'd say two criticisms - 1: I don't know how homoiconic Julia is, if it's not very then the actual use of this seems very low relative to slicing. 2: It seems to be mixing up indexing a vector itself, and indexing the expression that the vector is (like macro-quoted vs unquoted). I can see how it would smooth things in some way but it feels like a fudge that might cause more pain somehow later.
Now if you choose 0 indexing + (closed, open) for your slicing, then a (python) programmer would say to another programmer, take the slice [0:3] to get the 3 trucks. So the slice numbers correspond perfectly to the vector description of the space that the items occupy. That's why in this slicing system taking L[a, b] then b-a = the number of items you get. Because it's matched perfectly with a real-number vector description of the space the items occupy on a real number line. All the other advantages like (I can describe an empty interval: [0:0]), I can describe taking the last element and it feels right [-1: 0] follow from this physical-space homomorphism. That last one: in a circular (modular?) space, walk left 1 and then come back right 1 and pick up the element you pass over. In 1-based: [0: 1] = the last element? I don't know if any languages do this but either you can't and that's sad or you can and it is incredibly counterintuitive.
That's the second time you've ridiculously misrepresented my statements: "anyone disagreeing with you is an idiot" "deep faith will lead you to the conclusion" (and not deep faith + thinking about the actual problem, several convincing arguments and some ability)
And I don't think they're idiots, I just think that they're wrong. Not many people have read Djikstra and (?) and have deep faith in mathematical beauty, or have even thought about this much, doesn't make them idiots.
I thought about my post after I read it and came to this- given Djikstra's (only system which can describe an empty interval and interval with first element without "unnaturals" ) and (?)'s argument that it creates a nice homomorphism between real-number intervals and integer slices then it's inarguable to me that 0-based is more mathematically elegant.
Where I guess there's space to disagree is this, I believe (to almost a point of faith I guess) that mathematical/logical elegance is important, and moving away from it is normally a mistake which leads to more pain in the long run.
There's another argument, I can't remember if I originated it or read it but it's the one I find most convincing.
Consider that you have finite units of equal length 1 stretching away from you in a line. How would you specify to someone (using real-number measurements) to retrieve the first N=6, or describe the vector they occupy? You would say, take everything between [0.0, 6.0). If you use zero-based indexing, the numbering scheme specifying the interval is identical across both systems: [0.0, 6.0) => (python)[0: 6]== 0<=x<6. In real numbers the interval could be open or closed for this argument to work, because for there to be any elegant translation the integer upper bound has to be open. That's the only way you can keep the elegant transformation with 0 and 6. Caveat that thie works because you're numbering the real-number origin as 0 but try telling physicists that they're not to do that! O=(1,1,1) is an even more indefensible position.
So there's another mathematical argument that I either came up with or read elsewhere that feels deeply convincing to me. If there's 2 there's probably more, and here's the list of languages on wikipedia, you tell me which you'd rather work in. https://en.wikipedia.org/wiki/Comparison_of_programming_lang...
Sorry for the irate tone but I really think that on reflection and fair consideration this is an obvious one.
I might have to learn Julia at some point but 1-based indexing was a fairly heavy indicator to me to hold off.
For instance linters not understanding type specificatins beyond a certain complexity but still using them in your code and some custom decorator to check them at run/dev time
https://airbladesoftware.com/notes/relational-databases-are-...
I think one of the symptoms is not picking up enough detailed understanding of anything because you keep moving around and don't believe in most external knowledge anyway (eg. don't want to learn [beyond a certain depth] SQL, it's so ugly on some inner level I'd much rather start with datalog and build my own up, don't want to learn economics I don't trust those science cargo-culters). But the other reason you don't want to specialize is that it would be to accept a limit on yourself (OK I'm going to get specialize on getting very good at c++, my upper salary cap is 500k and likely cap 200k, career is mapped out).
One of the things that's slowly curing me I think is running into examples of systems that are genuinely very heavy to understand/improve, and examples of people who are just unarguably higher ceiling in different ways than you.
eg. go watch a SGM play 30 second hyperbullet chess, I don't think I have either the memory or raw processing speed to do what they do, ever. If those guys exist a lot of other people have way higher ceilings. Also realize that chess (and by extension must be a lot of other activities) rely on both a crazy cpu, an amazing memory and an insanely built-out internal database of positions and ideas, and since my cpu is good but not unbelievable, my memory is nothing special and my time is limited there must be a lot of activities I'll never really be good at. Also just getting older and staying unsuccessful relative to your ego, you just start to compromise I think.
I'm telling you with love in my heart, that taking a simplified libertarian view of everything is an intellectual trap and the world is way, way more complicated economically and philosophically than can be managed through libertarianism.
In the same way that gender politics gets disproportionate airtime because 1. it's very feel-good for groups of girls to feel united over and get a thrill of moral superiority from, it works socially 2. it's something for the elites/rich people to focus on that isn't redistribution or reform
Libertarianism gets press because: 1. People love having a single rule for things, because it makes them feel clever and right often without having to do any actual thinking. And it's clever on light inspection and dumb on deeper thinking 2. see gender politics 2.
Read the article, they go straight to how do we destroy this person's sponsors, purchasers, kill their following.
I have massive issues with UK politics but knowing a few civil servants, they're not (widely) corrupt, and they're not incompetent.
In any department, they will normally be the force for good policy based on evidence, it's politicians who push random expedient ideas. Take grammar schools, the entire department of education knows they don't work and are being forced to push it. Or Brexit, the whole civil service pretty much opposes it, and especially the treasury/trade people in detailed knowledge that it's going to be an economic tire fire.
Finally, regulation != censorship, there's such a thing as a middle ground.
"What about their input and output is" => "what type their input/output is"
The next question is what does the type of the input/output actually tell you about the input/output? In the most popular languages (using interfaces), it basically tells you that the input/output might have a, b and c set (or they might be null), and it could also have anything else set.
So the actual information you have is that you might or might not have (a,b,c) and also might or might not have (anything). Not as foolproof as you think. The natural objection is that aha! I defined this class to require (a,b,c) in the constructor and do a nullity check, so I know much more than this! But this is back to having "types in your head", that constructor signature and nullity check isn't compiler enforced (as in if you change it, nothing will fail in the typesystem at the point of the function that we're checking, as long as those fields remain on the class). So the useful part of the static typing is actually living in your head either way.