Nice article and I agree with most of it - it's very hard to find a framework that strikes a good balance between lean and full-featured. But I don't think the answer is writing everything yourself, either. Rolling your own framework is a lot of work and you're not even guaranteed to wind up with something better than what's out there. Some people believe jQuery is bloated and create their own framework with a mix-and-match from microjs.com. Great! But it's super painful to work with, because at some point you realize "oh, i need to deep-copy this object" or "this should slide down - oh wait" and suddenly you're re-inventing wheels all over the place. With your own subtle browser bugs, Unicode issues, and keyboard problems. Ugh. Especially when you're going to replace things like socket.io, mentioned in the article.
But I'm on board with the general concept here and I'm not sold on Ember or Angular - they don't seem to speed up development or prevent bugs as much as they should, per kb downloaded to the client. Sometimes all you need is plain-old jQuery code, with a well thought out and structured API.
Thanks. One thing to note that I didn't write my own framework. I just found my own way of structuring things. Apart from a custom event library there is virtually no framework code.
Okay. I admit that we needed to bang our heads with the custom communication library which we use in place of socket.io. But our solution is more than 10 times smaller!! There is a crazy amount of clutter in socket.io, believe me. And it didn't scale for us. And most importantly we didn't want to use the proprietary syntax that goes inside a websocket channel since something as clean as JSON-RPC exists.
Did you look at SockJS? It is far more mature than Socket.IO imo. Follows the websocket spec, does not resort to flash for fallback, supports more fallback methods, and later when websockets are fully supported native you just replace "SockJS" with "Websocket" in your code and drop the library.
It seemed like most of his slides came down to the old typed/untyped flame war. Yes, in Scala you can look at your objects in an IDE and be told what type they are, in Ruby you can't. Some organizations and people need that, some don't. And yes, it's easier to optimize typed languages. Some applications need that extra speed, most don't.
I'm happy he found a language he enjoys working with, but I doubt this will change anyone's mind...
Somewhat true but I find Scala's inferred typing a surprisingly great compromise between the two.
For example:
val i = 1;
i = "some string" // throws a compiler error, because it knows i is an integer
It's great when you haven't declared the types, you change for example an int to a double or a class to some other class (eg swapping a data structure) and it just flows through the code base without problems like a dynamically typed language.
It can also be pretty useful to look up types when they get complex in the middle of some function, like a Map[List[(String,SomeObject)]] (a map of lists of (String,SomeObject) tuples). Allowing the types to get complex lets me focus on the problem while giving a crutch to quickly remember where it's at half way through (and while finding other methods/source of data) and keep moving towards the solution.
Good advice! I tend to unfollow people who tweet publicly more than ten times a day - they're hogging my mental bandwidth. Good thing about today's social networks is you can set your filters accordingly. Excessive bragging will get you hidden in my facebook feed, too.
I just use different browsers. Chrome for the personal one, Firefox for the work one. Very easy, just Cmd+Tab between them, can always stay signed in, and no confusion!
The different browser approach has the added benefit of letting you bind that app to a different desktop. The Chrome multi users can't be bound to different desktops automatically.
Also, I've found Chrome's multi user windows have a nasty tendency to fail to reopen all windows and all tabs upon reboot. One or two will open, but at least one won't, and when you do launch a new window for that user, it won't remember its prior tabs.
Your approach resolves both those cases. That said, Chrome's built in support with the prominent user icon in the window title bar is fantastic for multiple email accounts and the like, especially coupled with tab pinning so it can't help but open Gmail for example.
I was doing the same thing but got frustrated with things that would/wouldn't work in one browser but would in the other due to rendering engine differences and also not having certain extensions in one browser I had in the other. With multiple profiles in a single browser things stay consistent.
The best way to spend any extra money saved on retiring MSN: open up the Skype API for devs to use. Adium is still the undisputed king of IM clients and with a proper Skype plugin for it I'd be happy again. Because let's face it, the Skype client is really, really bad.
Your point 4 is exceedingly optimistic. The environment won't "recover". It will certainly reach a stable equilibrium, but that equilibrium may well be something we, as a species, won't particularly like or thrive in.
While we're talking arable land, we need to consider that the majority of the land that could be deployed as farmland is home to a whole host of ecosystem services and bio-resources that, if destroyed, won't be coming back. Temperatures can stabilize, pollution can go down, but if we can't stave off habitat loss and destruction, we'll be a lot worse off than today. More people means they all need somewhere to live, somewhere to grow their food, and somewhere to put their waste. That space is all at the expense of organisms we need. We can't just shrug our shoulders and assume everything will bounce back eventually.
As for the fertility implosion itself - it needs to happen, sooner or later. Those 20-year olds in the Middle East and the babies being born today? Yeah, they'll get old, too. Brooks' view on demographics is a pyramid scheme, we need to figure it out, and I'd sooner have it happen now while we still have a relative diversity of species and environments left.
But I'm on board with the general concept here and I'm not sold on Ember or Angular - they don't seem to speed up development or prevent bugs as much as they should, per kb downloaded to the client. Sometimes all you need is plain-old jQuery code, with a well thought out and structured API.