752 karma · joined January 15, 2008
In that way its benefits are similar to pen and paper.
Well, that's just sloppy and shame on you for exposing programming internals to a user in a service. What did you expect? Write your own format string parser and stop being lazy.
It's always funny to see someone write that a company "believes" anything. It's a party line. With a company as big as Google of 10,000 it's downright strange.
A sneaky one I saw recently is something like:
[ ] Subscribe to newsletter about our services by unchecking this box.
(It doesn't matter whether the box is initially checked or not, the user will be tricked into the desired behavior.)
I don't remember the exact phrasing, and it was much more shrewd than my own, but it relied on a boolean flipping of the value of the checkbox towards the end of the field label. Any user seeding the start of the sentence will leave it in its current state.
1. Evan (the Elm author) has pledged to support type-classes, it's on the issue tracker, and because he believes that they are useful.
2. "The academics" is a mischaracterization. I use Haskell and PureScript professionally and share the same problem of the "Elm is Wrong" author, which is that it's impossible to do any generic programming.
3. Generic programming is important for something as simple as inserting my own data types as keys into a dictionary. So is being able to write "show x" and just have the thing showed if it has the instance of a showable class. Or to parse a nested data structure of various types from JSON.
4. Being able to use my own types as keys in a dictionary is pretty pragmatic, I think. A typical pattern in ML-style languages is to wrap types like Int in a UserId type that just wraps it and protects it from being mistakenly used with other Ints. Now try to make a dictionary of users via the UserId type. Nope.
5. "They" in this case aren't concerned with elegance or concision for the sake of it, but because the features under discussion help them do their job better, avoid mistakes, reduce maintenance cost, and that's good for business.
6. Go has non-academic, purely pragmatic problems that are orthogonal to its popularity, as does PHP or nodejs.
None of the things under discussion are difficult to implement, novel or exotic. Given that other languages like PureScript exist under the same domain and from the same family of languages, we have the luxury of holding other languages up to the same standard. In this particular point, Elm is a -1.
Reading Orwell's own writing in this article "like tea leaves caught in the sink" it conjures up a fresh mental image.
One thing I discovered during 6 years of living in central Europe is that speaking mostly with non-native English speakers leads to a necessary elimination of metaphors; you have to use direct words. I can't say "he's trying to pull the wool over your eyes" or "don't let the cat out of the bag" or whatever, because nobody has any idea what I'm saying, and it's not worth explaining. I considered it a kind of mental training, it taught me to speak plainer English.
> Here is a well-known verse from Ecclesiastes:
> I returned and saw under the sun, that the race is not to the swift, nor the battle to the strong, neither yet bread to the wise, nor yet riches to men of understanding, nor yet favour to men of skill; but time and chance happeneth to them all.
> Here it is in modern English:
> Objective considerations of contemporary phenomena compel the conclusion that success or failure in competitive activities exhibits no tendency to be commensurate with innate capacity, but that a considerable element of the unpredictable must invariably be taken into account.
So you should be able to open any random file and it'll work out. E.g. if I open ~/X.hs and import Lucid, I can just run stack build lucid in my ~/ and now M-x intero-restart and it has access to that package.
In the case of Intero I made every decision for the user; there are no customization options in the mode, and it leads to long (first-time) start-ups like this. But in the end I'd rather wait a minute and have every project always work reliably (and this isn't unheard-of for IDEs). It does build a version of intero for each project environment, because the GHC version and package set may differ. This is in contrast to e.g. ghc-mod or hdevtools which is locked to a specific GHC version, so switching between projects is not smooth.
My biggest fear for my job is injuring my hands irreparably as they are really my bread and butter as a programmer. I invest heavily in quality keyboards and personal tracking software (mostly self-written) to keep tabs on not going overboard and triggering the onset of RSI or other health issues related to the hand and wrist.
The realization seems to be that there's really no reason for me to buy these kind of sugar/salt-packed opaque possibly-dangerous glorified ration packs that we call food in our supermarkets.
The irony is that the ambiguity/confusion of nutrition has been a good way for the industry to sell its garbage for generations, but now people are so cognizant of the complexity of diet that they want to narrow down the possibilities to the simplest thing possible, and that's not good for the complex food industry. This also makes sense:
> Confectioneries have held up in part because there was never any confusion over whether they’re an indulgence.
It's the rest of the food that people eat when they're "being good" that they care about.
I think part of the issue is that most of these services that base themselves on ads are inessential.
I don't care if reddit or gmail or last.fm goes down, I can always get another service that will step up and fill the niche. Grooveshark funded their service by ads, then it got taken down by a lawyer army, now I pay for a Spotify subscription.
When ads are present, they're part of the experience. And that means the experience, for some people, is shitty. People will prefer not to have shitty experiences. Some people decide to start out with the premise that they will make money off of ads, good luck to them. But it's not my moral obligation to accept it.