198 karma · joined September 27, 2016
If a potential employer told me they relied on VoIP phones over Slack/Discord I would consider that a _major_ point against them.
Not to mention the huge accessibility benefits that can come from changing the way a site behaves (not just visually but in terms of things like tab and focus behaviour or separating components out) for disabled users. Doing that reliably and effectively for all content on all devices is much easier if you can identify the needs before downloading the content which means JS-loaded content and so it can come down to deciding whether to annoy NoScript users or disabled users.
https://en.wikipedia.org/wiki/List_of_automated_urban_metro_...
Those four functions are view (take a model and return some HTML, like a React top-level component's render method), update (take a model and a msg/action and return a new model, like a Redux reducer), init (an initial state) and subscriptions (a list of things to watch for changes and automatically create msgs/actions from, like mouse movement or websockets). When you run a program, it feeds the initial model into the view, and renders it. HTML elements can create messages (dispatch actions) based on DOM events, and subscribed things (like websockets) can also create messages. Every time a message is created, it gets fed into the update function with the existing state, and you branch on the message type to figure out what the new state should be. Then that new state is fed into the view function again and the result is diffed against the virtual DOM and the optimal update made.
The biggest differences between React and Elm are that you don't mess with lifecycle hooks and that you don't repeat this pattern for every sub-component. Instead, you just write lots of small functions that take a model and return some HTML, and you can call those from your top-level view function -- a bit like building everything out of React stateless components.
Writing any Elm code feels a lot like writing React, but with much less boilerplate, reduced complexity, excellent error-catching, and static typing.
For example, I used to live in a house where there were 5 of us. I really wanted to subscribe to Netflix, because it was 1/10th the cost of cable TV and suited my needs even better. But the connection just wasn't strong enough for two people to stream video at once so it meant we had to work out a timetable of who could watch movies/TV when, swap blocks if some live event one of us wanted to watch came on, etc, and it just wasn't worth the inconvenience.
Most people live with other people.
To my disappointment, personally. I wish it were a home console rather than a handheld for reasons that are entirely based on my own needs and tastes (I'll never take it outside so it adds cost for no benefit, the need for portability means games can never really make great use of the motion controls, a lot of multiplayer seems based on the joycons which look absurdly small for adult man hands).
On top of this, I think they've made a fatal flaw when it comes to handheld pricing. If you remember, the 3DS launched at $250, tanked hard, and received a whopping 33% price cut only 4 months after it launched, followed by the announcement of the new 2DS which would be even cheaper. One of the things Nintendo produced the 2DS is because they found, to their great surprise, that almost 80% of 3DS customers outside Japan never took their 3DS outside the home. They weren't buying it for portability, like Japanese customers usually did; they were buying it because it was the cheapest way to play videogames, only a third the price of a console and with games that were half the price of console games (in many countries even less). Right now I can buy a 2DS for 105 and brand-new games for 40 where an Xbox One is 400 and games are 80 - 100. That's a big reason many of my friends have one.
Then note that they've also priced the Switch above the iPad Mini. Most handhelds are bought by parents for kids. If parents see that they can get an iPad for less than the price of this new console, they're very likely to: iPads are seen as luxury products with a wider variety of uses and many cheap games, and the iPad Mini is even more portable. This is the first handheld Nintendo have announced since iPads hit the market and I worry they haven't taken this into account.
For those customers, who make up a majority of 3DS customers worldwide, the Switch is a non-starter; it's likely to be considerably more expensive than its rivals, and those rivals happen to have either larger libraries, greater popularity, free online, and better graphics (Xbox One/PS4) or a luxury image, greater portability, lower software costs, and a wider variety of uses including educational uses (iPad Mini). I'm really hoping Nintendo succeeds, because I'm a big fan of theirs, but I worry they have totally killed the big draws to handhelds.
I agree that it's cancerous, and that making the server side more accessible to front-end developers isn't worth all the problems Node introduces long-term. My dream is still a statically-typed version of Erlang.