All Quiet at Angular Connect 2

Paul Lessing
Devs @ FOODit
Published in
6 min readNov 11, 2016

Last year, I went to Angular Connect, the first large-scale AngularJS conference in the UK. I had just recently started up with Angular and was incredibly excited that a “proper” conference was happening right on my doorstep. I’d been looking for this kind of conference for a while; ngEurope was “all the way over” in Europe, ng-conf is in the US, and ng-remote-conf isn’t the kind of conference where you get the opportunity to network in person (or collect freebies).

Having really enjoyed Angular Connect last year, I jumped at the chance to go to this year’s event. I was able to have the event paid for with a learning budget provided by FOODit, whom I work for, even when I decided to go the whole hog and attend the extra one-day course on the day before.

Workshops: Better when everyone starts at the same level

How did it go? I’m glad you asked. The course itself sounded very promising: Testing Angular2 for Hackers, by no other than Peter Bacon Darwin, the lead developer for Angular 1. I assumed (correctly, it turned out) that the “hackers” bit was fluff, and that the course would be focusing on how to test Angular 2 in depth. Having done some of Angular 2 at work, and quite a bit more at home, I was keen to find out how to do this testing malarkey properly for Angular2 — my usual method of spinning up the test suite du jour (today’s flavour: mocha with chai and a sprinkle of sinonjs) and running a stack of straight unit tests didn’t seem to work anymore, with strange TestBeds and funky fakeAsync wrappers appearing in the blog posts.

I wasn’t the only one. The course became so heavily over-subscribed that a few months before the event it was split into two, with the other one run by Joe Eames, well-known for his expertise in testing. I love the excellent Adventures In Angular podcast, where he is a regular. Regardless, I decided to stick with Pete.

On the day of the workshop, a quick show of hands indicated that about half the room had little to no experience with testing, with a quarter or so having never heard of Jasmine. This meant that rather than diving straight into how to test Angular 2, we ended up spending most of the day exploring basics of Jasmine, Karma and PhantomJS, and the basics of how to write unit tests.

Pete brought a lot of insight on topics such as writing DAMP tests (using Descriptive And Meaningful Phrases), or the Mockists versus Classicists debate on how much mocking to do in your tests (in case you’re curious, I’m firmly on the Mockist side). Unfortunately, we only got to Angular 2 in the late afternoon, by which point there wasn’t very much time left to go into depth. Nonetheless, Pete explained some interesting bits and at least I now understand what that darn TestBed is.

Not quite what it was last year

Day 2 rolled around and I was excited for the actual conference. Last year the conference had had three tracks: two main tracks, and one track for “AMAs,” which were Q&A sessions with the speakers organised by topic. I had neglected these in favour of the talks, until one of the organisers pointed something out to me: all the talks are available on YouTube afterwards. The Q&A sessions, however, are interactive and not recorded, so they offered pretty much the only thing you couldn’t do for free from home — chat with the experts. This year I had planned around that and was intending to attend as many of these sessions as were relevant to me.

I ended up going along (and asking questions) in ones on architecture, testing and tooling. There were some interesting discussions, including on how much of a component should be tested (spin it up with all its dependencies or just compile it with its HTML), which turned out to still be relevant to Angular 1. On the whole, there appeared to be a sentiment amongst both the speakers and the attendees of “Angular 2 is cool, but right now we still have to support Angular 1 projects.” Everyone was curious about best practices on Angular 2, but the spark of last year’s conference was gone. The speculation and wild promises of upcoming Angular 2 features had been replaced with the realisation that apart from the few lucky developers in private or greenfield projects, most of us will be stuck with Angular 1 for the foreseeable future.

Another new addition to the event was Office Hours. An organiser told me that this was invented as a solution to some of Q&A sessions and end-of-talk questions last year getting hijacked by people holding up their laptops and asking “I’ve got this very specific compile problem, can you have a look please?” The Office Hours were simply some of the speakers sitting in a room around a variety of desks, giving attendees a chance to chat about things that might not be relevant to a whole room of attendees. I ended up taking advantage of this, going in and asking about how to publish Observables from a service. This resulted in a very interesting chat about hot and cold observables with a specialist on RX from the Netherlands (whose name, sadly, I didn’t get).

Much ado about… not much at all.

Back to the talks. With Angular 2 having just been released, the keynote was predictably straightforward, a presentation from most of the involved parties on all the shiny new features of the framework. This would set the tone for most of the remaining conference: With a new framework just released that nobody had managed to build much real-world experience with at this time, almost all the talks were about superficial features of what could be done. The talk about the “new new new” router (the third and final version of what had been released for beta) sadly only discussed how to use it rather than how it worked. I wanted to find out more about how the CLI worked, to which Stephen Fluin in the Q&A recommended his talk about the CLI. Disappointingly, this too turned out to be effectively a press conference blurb. Although it went briefly into detail on how it uses templating to generate components, it was largely on the level of “this is what you can do, and here’s the command for it.” I really would have liked to see more low-level talks.

Igor Kamenetsky’s talk about the debugging tool Augury explained some very interesting backgrounds

Even Shai Reznik’s talk, which last year had been a hilarious spoof of the dramatic way ng-conf announced Angular 2, was surprisingly non-funny. The point Shai was trying to make was that the Angular community is great because it is so welcoming and non-toxic. It fitted in well with the rest of the conference’s spirit of “we’ve delivered Angular 2, now please don’t abandon us.”

I may be slightly misrepresenting the case; there were some fantastic talks. Kara Erickson’s talk on Angular 2 Forms was thoroughly impressive. Most people struggle live-coding a simple piece of demo code, let alone successfully (and speedily) coding two parallel implementations of a form from scratch. I’m told Ben Lesh’s RxJS talk was very interesting, and Tobias Bosch’s presentation on the Angular 2 compiler was in-depth and informative.

On the whole, I’m cautiously optimistic for next year’s Angular Connect. Maybe by then there will be, once again, some industry experience, and talks about real-life issues, rather than the feeling that everything that was done in the past year needs to be showcased in 20 minutes. Some of the talks certainly were real-life applicable, and the Q&A and Office Hours sessions were worth going for. With a little clearer direction and more focus on internals and real applications, Angular Connect 2017 should be back to the spirit that made 2015 so great.

--

--