1,074 karma · joined October 31, 2009
I think this is a valid point.
But I am less convinced about the second part. I feel that better type systems do help one model the world better (while retaining the consistency checking that you mentioned). In my mind at least having more/better "type tools" is like having differently shaped pieces in your lego tool box. You can create better models for yourself, because the pieces allow you to. And the more experience you have with them, your modeling abilities also improve.
Not the OP. "Evil" is a value judgement that many may not agree with.
But imho Monsanto is a little bit more than "just a regular technological company" as you put it. This section on Wiki makes an interesting read for example: https://en.wikipedia.org/wiki/Monsanto#Legal_actions_and_con...
Sure. And your application should bear that cost and not necessarily every application written in C. Maybe there is a case for using a safer malloc implementation for your program?
> I don't know what sort of "real time applications" would require gambling on the initial state of memory.
This isn't really gambling. If you know you are going to initialize the memory with sane values immediately (and this is a common practice), it is a waste to do that initial zeroing.
It seems possible that some people don't care that much about HN traffic spikes.
It doesn't always work like that. Usually, since examining, the whole move tree is very expensive, heuristics tend to kick in at various points providing assessments for positions (thus helping to prune the tree). It is quite possible to land in a position where your set of heuristics is not quite right.
> To me, the best defense against a troll is being completely nonchalant and not giving a shit what they do. Hacked my accounts? Oh well, it's just an account, i'll make another. Sent me death threats? Hey, life is short and we all die some time.
I am clearly a little less nonchalant than you. But I don't feel all that inclined to publicly post my home address or my kid's school address or scout camp location.
What exactly is "algebraic rectification"?
While it is generally true that having a formal semantics aids greatly in analysis, it is worth noting that a very large amount of program analysis work is targetted towards C. (And mind you, flexible, high level languages bring with it their own troubles. Analysis in the presence of higher order functions is not a panacea at all)
And then you took the bait!
It is also worth noting that if you dont want (global) type inference, you can get far in a language with permissive casting, type annotations and local inference. The results aren't a panacea though.
> Suppose you could catch 99% of type-based errors instead of 100%, and in addition, use a compiler switch to see all the case statements where a class of a type is missing.
I am not quite sure what you mean by this. Care to elaborate? (In general, with inference systems, missing type information is hard(ish) to localize. So pointing out where exactly a type error occurred is non-trivial)
The usual trouble with this sort of idea is who gets to decide the "elite" that makes the decisions. How do you prevent this group from becoming an insular clique and debar other people from similar opportunities etc.
Power, imho, has a tendency to be self-propogating; people who achieve it hold on to it far after it is useful and tend to bestow it on their proteges, irrespective of their suitability to the task etc. (Anyway it is an opinion; you may disagree)
There is something to be said for clean language design and minimal, a non-distracting editing environment, of course. But the essay doesn't argue the case in any reasoned fashion. It mostly just makes emotional arguments (the talk about training wheels, the example with highlighting fiction, which is over the top).
I have worked with large codebases in plain vi and PFE [1] in my wayward youth. It wasn't exactly what I would call a pleasant experience.
[1] https://en.wikipedia.org/wiki/Programmer%27s_File_Editor
But to me it looks like a lot of personal experience is just personal; it is subjective and it is hard to establish a particular experience as "fact" without widespread consensus. So faith might be necessary in the meantime.
Once you are a C++ programmer for a while, you start to discern "standard" patterns for this sort of thing and tend to automatically use them. (The patterns might depend on the C++ version and to an extent the code base in question; but it is common to have such helper function take a const ref as input, return non-primitive return values via a out-parameter etc).
So while C++ might "encourage long functions", I think that may be the case only for newbies to the language. Once you have a some experience working with it, you no longer need to put that much thought in to every little decision.
> That right there should tell you something.
I wouldn't use that as the main criteria to judge a language. C has a poor standard library (for a definition of "poor" relative to, say, python) and so does C++. But they are certainly useful tools in their domains.
In any case, OCaml has a couple of standard library replacements/augmentations that reduce the gap a bit. (Batteries Included [1] and Jane Street's Core [2])
[1] https://github.com/ocaml-batteries-team/batteries-included/
[2] https://github.com/janestreet/core and https://github.com/janestreet/core_kernel
Wodi [1] is a reasonable choice until OPAM starts supporting Windows. It includes many of the interesting/useful libraries (including, importantly, batteries [2] and core [3])
[1] http://wodi.forge.ocamlcore.org/ [2] http://batteries.forge.ocamlcore.org/ [3] https://github.com/janestreet/core_kernel
Famous last words :P
Of course we come across more articles about women in tech because we frequent tech forums. But the topic (of men in nursing, teaching etc) do come up on the relevant forums.
HN rumor has it that these creatures are mythical ;)