Observations from a Node newbie

It’s been a few months since I started playing around with Node.js, and in the last few weeks I started writing my first full application in Node. I’ve found myself really enjoying it, even if I have not figured out all the nooks and crannies yet.

In this time I’ve come to realize that Node is very different than other languages/frameworks I’ve coded in. Most of these differences impressed me, but some of them led to quite a few frustrating moments. This list below is a subset of my observations of a few months of working with Node—all just my personal opinions, of course.

  • Everything in Node just feels, well, fast. Most of my web development work lately has been with Rails, and I know this probably feeds into the old stereotypes of Ruby, but Node feels faster. Not that Ruby is slower actually, but Node feels lightning quick
  • Everything about Node is flexible. Because of the nature of Node and its implementation, it is incredibly flexible. Even within most of the established frameworks it is incredibly easy to write your application exactly as you want it. In many ways Node feels like the dream of those who love higher level languages. Throw the right npm modules into your package.json, and off you go
  • Everything about Node is almost too flexible. For good or for bad, it feels like I can do anything I want. From reading blogs and other community discussions, it seems like there is not yet a “Node way” in all but the most fundamental aspects of the language
  • It’s still JavaScript. I don’t mean that solely as a knock. Much of the power and flexibility of Node comes from the language underneath it. But, all the things about JavaScript that bug me are still there, and they still bug me. But there is enough value in the whole package to make it worth it. To like it even
  • Asynchronous, event-driven programming is a great fit for the server side. Especially for APIs. Today, I would’t pick a different tool
  • YMMV, but for me the community is still coalescing, and there is not yet a consensus on the “Node way” for many things yet. One of the things I earnestly love about Rails is the fact that the community has a cohesive point of view on how to use the framework. You don’t have to follow it, but it makes discovering and adopting best practices easy, which is good for the coder and their users
  • I have not found the right way for me to do TDD in Node yet. Maybe it’s a lack of tools, or maybe I just haven’t found what works for me, but testing is very important for me and I’m not yet comfortable

→ Realism on Swift

David Owens:

Swift has it’s warts. It’s a baby that’s trying to grow up quickly in a world that is harsh. The question I’ve been asking myself, both through these posts and throughout the weeks is really this: are Swift’s warts and ugly places worse than those of Objective C’s? Will they be tomorrow?

For the last week I’ve worked bit by bit on rewriting my first iOS app in Swift. Several years ago I wrote this app for my wife because she could not find a grade scale app on the App Store that was easy to use or not ugly. A few weeks later I installed this app on her phone, and she’s been using it ever since.

When I first created the app it was for iOS 5. As the years have gone on I did a few things to keep it up to date, particularly for iOS 7, but I never moved to Auto Layout. With the launch of the iPhones 6 and 6 Plus, I decided it was time, and I figured I’d use Swift. Why not, right?

It’s been a good exercise for me, and I’m learning to really like the language. I am more comfortable in Swift with my little bit of knowledge than I ever was in Objective-C, which I know far better. I enjoy it, but it’s not perfect. That’s why I appreciated this post from David Owens so much. It’s not perfect, but it’s what we’ve got.


→ Fixing impenetrable Terms of Service

A timely solution to a real problem:

“I have read and agree to the Terms” is the biggest lie on the web. We aim to fix that.

We need better answers to the legalese and archaic approaches to license agreements and terms of service. This is a big deal.

More:

Terms of service are often too long to read, but it’s important to understand what’s in them. Your rights online depend on them. We hope that our ratings can help you get informed about your rights. Do not hesitate to click on a service below, to have more details! You can also get the ratings directly in your browser by installing our web browser add-on

Convinced. Browser extension installed.

H/T: John Gruber


→ Ello will fail too, unfortunately

Ben Thompson on Ello:

Ello will fail, deservedly so. It has a consumer hostile business model.

I would love to see something like Ello take off, but that desire will remain unrequited for the foreseeable future. The bottom line is that in the social network market, ‘free’ will continue to reign. No one will pay for a social network (see App.net), and advertising appears to be the only other viable business model. Thompson, again:

When it comes to social networks, on the other hand, advertising is clearly the best option: after all, a social network is only as good as the number of friends that are on it, and the best way to get my friends on board is to offer a kick-ass product for free. In other words, the exact opposite of the feature-limited product that Ello is proposing.

The more I read Ben on social network market dynamics, the more he convinces me. The economics of the adverting-based model are too compelling for all parties involved, this model will not go away soon.


I can't escape the analog world

I work in a company that has been paperless for two decades. At home we have a ton of devices, more than one for every use case. I had a Palm Pilot in college. I haven’t sent a letter in the mail in over a decade. All of my to-dos and calendars are digital. And yet, I can’t escape the analog world of pen and paper.

Of course, the truth is that I don’t want to escape it. I love pens and paper. I love the feel of writing with a good pen. I love the physicality of a notebook. I carry a Field Notes book with me everywhere, every day.

I’m completely stuck in between analog and digital. If I take notes digitally they are easy to find, and easy to copy and send to others. If I take them with pen and paper I remember them more easily, and I am prompted to act every time I open my current notebook.

I don’t have a good solution to this problem. I don’t know how to get the best of both worlds. And yes, I’ve googled this many, many times. I’ve spent hours of blogs of the similarly afflicted. I’ve found solutions that come close, particularly archiving notebooks via photo in Evernote, but none of them have been practical for me.

So today I will go to work with my good pens and my notebook. I will sit down in my first meeting with my laptop open, and paper and pen beside it. I will continue living in between these worlds, because I don’t have another option.