A little needling on Gelman's blog is not too harsh, all things considered.
1,257 karma · joined August 29, 2011
A little needling on Gelman's blog is not too harsh, all things considered.
But apparently it is inevitable that you will make a ton of money. Unless, apparently, you don't want to.
> Nobody fails CS101 because they can't remember the syntax of function definition
I knew a couple people who cited essentially this reason as why they dropped their CS major: they found it really difficult to write anything that even compiled and couldn't deal with syntax errors like missing semicolons and whatnot.
It's not. They're both really good games.
[1]: https://github.com/gluon-lang/gluon
[2]: http://gluonhq.com/
FWIW, this is a very common topic for mathematical cranks. It's somewhat understandable that in the 19th century this was kind of a controversial result, but it's really impressive that we still see crackpots swinging at the same target.
It's also justified if you're doing a side project mostly for fun and you like writing assembly.
If you were a manager or executive and you found out your employee had implemented a new project in assembly language, it really might be reasonable for you to be dismayed at that choice. But that's not the situation here. At all.
This is exactly why Richard Stallman objects to the term "open source" and prefers "free software": because the point of the thing is that you are legally free to modify and distribute it. Access to source code is just a prerequisite to be able to practically exercise those freedoms. (I'm making no commentary on whether he's right about this. Personally I tend to say "open source" more often, because that term has basically won out and I'm more likely to be understood.)
By the way, years ago when Microsoft was apparently going to war against open source/free software, there was a bit from some Microsoft executive who said something like, "Open source is pointless. If our customers want to see our source code, they can just ask. But nobody does. Nobody cares about source code." He was exploiting people's misconceptions about what "open source" means. Indeed, nobody cares much about source code if they're not allowed to do anything with it.
(Plus, disassembling a binary is a massive pain compared to just using the commented and labelled assembly file.)
It's very difficult to synthesize all the resume advice one receives though. I've actually been told more than once not to spend any time on the cover letter because no one will read it, and that in fact if I include a detailed cover letter I may look clueless.
And, honestly, it is a little hard to understand the point. Aren't I supposed to customize my resume itself to each role, and use it to show how I'm a good fit? What exactly is the purpose of duplicating all that in a second document?
I think what it comes down to is that most people of any political persuasion are basically politically illiterate and vote their feelings. Sanders and Trump are both:
* not Hillary Clinton;
* male;
* very different from the other options.
For some people, that's apparently enough.
Because the target audience of research publications is other researchers in the same field; while outreach to nonscientists is fine, it's simply not the goal of a research paper.
Besides, for many papers this is impossible and/or pointless. My research results are incremental results in a specialized subfield of mathematics. I don't know how to explain them in anything but the vaguest terms to anyone without a reasonable background in that subfield, and I also don't know why such a person would care about them.
I think people are pretty straightforward about Rust's challenges. The borrow checker can be a hurdle and probably needs more work (although it is getting a big boost soon with non-lexical lifetimes). Compile times are not great. The macro system is powerful but can be confusing. People from some mainstream languages may have trouble wrapping their heads around the type system.
Regarding its features, these attributes:
* it can do low level, fast code;
* it's not garbage collected, but is memory safe;
* it has zero cost abstractions (and, conversely, it doesn't have ridiculous, unnecessary, slow abstractions);
* it doesn't ignore the last thirty years of innovation in programming languages (by which I mean it has a modern type system, closures, variant types, and a few other things);
* it doesn't have 30-40 years of cruft;
* it has a standard and very high quality build/packaging system;
* its developers are thoughtful and have good taste;
* it has a reasonably big community and has a good chance of catching on even more widely;
are huge. You say you think its features are exaggerated, but to my mind, what's to exaggerate? That list looks pretty great to me.
Yes, it is a huge outlier. Probably the most extreme outlier there is.
> Plenty of people go into a PhD to go into industry
In CS? Yes. In most other fields? Absolutely not.
Why?
And while I never had anyone outright lie to me or tell me job prospects were great, there were also few people who gave me a really clear picture of just how bad they were.
Not so much anymore though. I feel like static type systems have progressed enough that dynamic typing really has little appeal to me at this point, especially the idea of dynamic stuff "all the way down."
Nowadays my fantasy is more along the lines of:
* a machine with a simple instruction set for CPU and GPU and without slow transfers between the two
* a modern statically typed language that can be used to program both CPU and GPU, that's basically "Rust, but better, and with simpler syntax without braces and semicolons and commas and with easier macros and..."
* some simple garbage collected extension language for runtime/dynamic stuff. Still statically typed though.
I don't even know what a "Flask endpoint" is. Actually I barely know what Webpack and React are either.
I write a decent amount of native code. I write Rust, C, and x64 assembly. I think I'm pretty good at this stuff. But the web is too much for me. Any time I think I'd like to do something with the web and sit down to learn, it's completely overwhelming. I've never been able to put together a coherent mental model of the architecture of a web application or figure out what the best practices are for web development. The amount of complexity you have to wade through to get anything done is just silly.
There's the idea floating around that web developers are less competent than programmers on other platforms. I'm only half serious when I say this, but I sometimes wonder if, to the extent that this is true, it's because web developers have so much incidental complexity to deal with that there's just not much brainspace left over for classical CS or software development concepts.
More fundamentally, why does it matter whose fault it is? This is 2017 and the US is an extremely prosperous nation. Everyone should have access to health care without being financially ruined, regardless of their "lifestyle choices."
http://www.huffingtonpost.com/entry/i-dont-know-how-to-expla...