Let's all worry about blaming someone for a problem instead of fixing it. It's so much more productive.
206 karma · joined November 23, 2015
Let's all worry about blaming someone for a problem instead of fixing it. It's so much more productive.
This pretty much applies to all disciplines, particularly when a subgroup of people are more likely to feel intimidated by the learning environment.
Someone might do something like ~~n to truncate a float. That works fine until you go above 32 bits. Math.trunc should be used instead. Someone might do something like n >>> 0 === n, and using any bitwise operators will always bake in the assumption that the number is 32 bits. Do you treat negative 0 as a negative integer? Detecting negative 0 is hairy. So, to avoid bad patterns, it makes sense.
For is-bigger-than-5(x), x > 5 is not hairy. For add-1-to-a-number(n), n + 1 is not hairy.
For word-starts-with-capital-letter(word)? That one is actually pretty hairy. There are programmers that would write a regular expression /^[A-Z]/, or check the charCode of the first character being within the A-Z range, amongst other solutions. An appropriate solution, however, would be (typeof word == "string" && word.length && word[0] == word[0].toUpperCase() && word[0].toUpperCase() != word[0].toLowerCase()), because the toUpperCase and toLowerCase methods are unicode-aware, and presently you can't access unicode properties using Javascript's flavor of regular expressions.
Don't even get me started on negative zero.
1. Expressiveness is important? Expressiveness is why I don't like Perl.
2. You can certainly implement patterns analogous to OO in functional programming with closures and first-class functions.
3. Reading in the order of execution via chaining is definitely a lot more intuitive than reading from the inside out or right to left.
+-----------+-----------+-----------+
| label a | label b | label c |
+-----------+-----------+-----------+
| r1f1 | r1f2 | r1f3 |
+-----------+-----------+-----------+
| r2f1 | r2f2 | r2f3 |
+-----------+-----------+-----------+I switched the include directive to inline for the table row, but I was using template directives that were not supported inline by the template compiler. In the end I had to add some code to the compiler in order to get a reasonable performance time (thank you open source).
Aside from Unicode, I don't like some of the other changes. The overkill on the "one obvious way" bugs me in particular, e.g. the removal of reduce as a core function.
The existence of "one obvious way" isn't set in stone. It depends on context, and it's like the language developers didn't realize that when making their decision.
I got screwed in 2008 when my mom was denied the PLUS loan. I tried talking to student financial services for advice. After talking to the dean of my college, I received a large grant in order to cover my senior year. I thought I wasn't screwed anymore, but I got screwed again because nobody told me that a whole other part of my financial aid, "need-based" aid would disappear because my parents are expected to pay so much, regardless of their ability to do so. After that I was still able to pick up a few more grants and scholarships. However, I ended up having to take out private loans to cover much of the rest. I very much do not recommend taking out a private loan to pay for college.