
11 Dec 2013 YOW Conference – Melbourne highlights
4 Shiners attended YOW Melbourne last week, which is a technology conference held yearly and brings high-profile and savvy presenters to talk on new and current trends in IT.
I’ll start with an overview of the venue, crowd and the sponsors that had stalls in the common area, then dive into a tech report.
If you want to skip the preliminaries, you can go straight to the tech report.
The Venue
First Impressions
Situated at the Pullman Hotel, Albert Park, YOW was just a 15 minute tram ride from the Melbourne CBD. It felt much more formal than the 2009 conference I attended at The Jasper; the presentation rooms and the 4G mobile coverage seemed questionable at times 🙁
The Catering
Food and catering was extremely good. There were many choices, include healthy ones, and a constantly-recycling queue to the coffee machines; there’s no doubt about it, Melbourne loves its coffee. The servers were very polite and attentive, helping to keep things running smoothly.
The Crowd
It’s always interesting to see what crowd turns up to these events, and it also demonstrates how the conference is perceived and what people’s expectations are for learning in the conference.
As you would expect at a development-focused event, there was mostly an array of simple -but-funky attire, with plenty of backpacks, stubble, some neckbeards, the occasional hat flair-piece and one beret!
The audience age group seemed to begin around 28+, with a average of around 35-40 years.
Company Stalls
Every event has its sponsors and corporate hooks and I found it well worth the tour around to find out more.
Embarcadero
I spent a good 20 minutes talking to Embarcadero, whose RAD Studio is an IDE which can transcompile Delphi code to both Desktop, iOS and Android via their C++ libraries. In theory this means you could gain performance in Android, by skipping the VM layer altogether. At an online price of $3,249 per license the benefits need to be proven, but this certainly deserves some respect as I can only imagine what challenges they had to get this to work.
Mashery.com
These guys do API management as a service, including OAuth2 authorisation and authentication, security, logging, throttling, monitoring and metrics and reporting as a wrapper API around your company’s API to outsource the many headaches which come into play.
This company was recently bought by Intel and is now being aimed squarely at medium to large sized enterprises. It certainly feels like the right time for this type of service to exist.
Neo4J
Jim was there promoting his new book on Graph Databases. Having used Neo4J I revelled in a chance to ask where efforts have been focused with Neo4J lately. He keenly informed me that they are about to release Neo4J 2.0 and that their Cypher query language is now well-refined and optimised such that you can use Cypher + Neography in production and be free of Java / JRuby bindings for your implementation. This is awesome news. Cypher also allows for reads and writes, making it an incredibly powerful and modular DSL.
Conference Themes
The Wrong Track?
There was an obvious issue with the titles of some presentations not matching their content, which detracted from what was otherwise a well-organised conference. There’s nothing worse than carefully selecting based on topic, then finding out it’s a bait-and-switch 🙁
Overall it felt like the presentations were targeted at 3 types of conference attendees: Business, Technical and Academia.
For the technically focused, like me, there was a strong focus this year on 4 key features:
Data Modelling and API Design – Separating concerns, version-control and creating loosely-coupled designs.
Functional programming – with a focus on Clojure and Scala, and a keynote with some Haskell to bring it back to its foundations.
Javascript – It has its warts, but it is paving the way of the future for the web, at least for now.
The Cloud – Not just Amazon, but the ‘Cloud’ as an enabler to outsource hardware, accelerate scalability and keep focused on solving the business problems – let others worry about disk space and power outages. Everyone wants to deliver features faster, but there still seems a big disconnect between the business, developers to testers and operations where the features are delivered into production.
Data Modelling and API Design
Dave Thomas always gives a good presentation. His smile, dry wit and strong presence helped in his delivery to rebut why NoSQL is not a silver bullet solution for SQL headaches and exacted that Big Data is not a 4GB database. He also discussed why atomic consistency is often not important, and that most NoSQL models focus on eventual consistency and this is where they get their scalability from.
His biggest grievance in NoSQL is that if you have to write map-reduce functions to extract useful data/reports from your database, then you are creating more work for yourself than before where a tool like Crystal Reports could aid in report generation on an SQL database.
This reiterates that a database needs to give you the following: store, retrieve, validate and query with consistency and scalability. He argues that functional SQL, an extension of the SQL query language, should be enough to help us through the next few years at least.
His point is valid, but the question to ask is “do I really get my business metrics from my SQL Query prompt?” Any reports you want repeatedly can be done with any NoSQL ORM simply and efficiently. Perhaps if you’re a data scientist this is a problem, but it may be easier just to dump and load the data into your DB of choice to bend, stretch and twist your data to your liking.
His other key point is that parsing is expensive, and you need to sanitise the data before allowing it into the DB. If you have a totally schema-less data model over time, how do you reason about it if it’s not in a consistent format? SQL does give you types as a default, which permits you to enforce types based on your business model, but I think this comes down more to team / developer discipline and the fact that NoSQL doesn’t mean you don’t need schema / data migrations. In any MongoDB I create, I still have have a design I model data to fit, and the database should never has more than 1 schema per model.
In terms of designing APIs, our own Melbourne-based cloudified business, REA Group, reinforced that No App is an Island and took us back in time to remind us that semantic web is an important aspect in order to decrease the coupling to ever-changing RESTful APIs. By offering a service discovery endpoint, we can declare what services are available in our APIs and keep our code loosely coupled to dependent APIs. It echoes the words of Jim Webber, who reminds us that REST is not just about data formats and verbs, but semantic intent.
Functional Programming
Philip Walker gave a tale through history on Functional Programming at 9AM, which was written to keep the audience engaged and show by refactoring, how FP can be used to create very modular, reusable code. I’m still not enamoured by Haskell though… maybe in a few years 🙂
The counter-presentation, given later by Daniel Spiewak, was very impressive and controversial. His title, Living in a post-functional world reeks of the hip views of a younger generation. And it certainly challenged more traditional views on the future of FP. This guy is probably half the age of Philip Walker, and he has a deep understanding of FP. Unfortunately Philip was in the audience and it was clear there were differences in views 😛
Daniels key point is that, while FP is awesome and necessary, more is needed to expressively model the problems we use software to solve. We need modules (or traits) and objects. I agree Daniel.
Javascript
Quiet but funny and very respectable, Douglas Crockford quickly relates JavaScript to Scheme and states that Javascript has achieved it’s goal, since it was designed to be an easy to learn language to be used en masse.
He reasons that syntax is the least important thing language design – it is akin to fashion. He discusses that ‘fashionable tolerance’ ie. multiple ways to describe equivalent semantic code in Javascript can be a strength, not a weakness. I agree, but like any language, there a ways you shouldn’t do things.
Stripping programming down to brackets and styles, he points out where code can seem ambiguous, adding syntax like explicit parenthesis makes it easier to read and cuts down on “mental fatigue”. Unfortunately, Javascript (as with Java) is very noisy in its syntax.
Covering the issue that Javascript has loose typing, he compliments it not having strict typing issues centred around picking the optimum numeric type at a given moment byte, char, int, long and goes on to show us a bug which occurs when we over-optimise for memory usage (and the value overflows!)
I will add there are some issues in Javascript, the first two he covers and the third I have discovered:
- The default implementation will automatically insert semi-colons subjectively to attempt to make the code valid. This is very bad!
NaN + 7 = 'NaN7'; // surely not useful
parseInt('5f') = 5; // number
He dislikes Typescript but likes Coffeescript, and points out that the latter is proof that a replacement language need not support all the syntax of the root language to become successful.
Web Performance with Jared Wyles was great, diving right into the browser and the Chrome Debugger window, a familiar screen for most, to talk about CSS animations, repaints and profiling performance.
Gilad Bracha from Google gave what for me was the worst YOW presentation I’ve ever seen. It should have been titled Dissecting the Newspeak language and it’s predecessor, Dart but was instead deceptively titled Next Generation Web Languages.
It was incredibly dry and monotonous – Google had sent their least captivating presenter to discuss why Dart is good but Newspeak (presented as Dart++) will be better. What?
Let me be clear, I don’t like Dart and I don’t see it succeeding. I might be wrong, but the fact they are peddling this language in a YOW Conference tells me they need more people to get interested in it. Reminds me of Microsoft getting uptake of IE by bundling it with the OS – “people will like it, they just don’t know it yet!”
He spent about 10 minutes selling the idea of “uniform instantiation”. Yes, Misko has rightly pointed out the dangers of new
being used, but it’s like they rank new
keywords with the likes of eval
or method_missing
and demand it leaves the building. Sure, you’ll get less errors and a bit more uniformity, or you could just use the factory pattern.
In order to recover from such a presentation, I was looking forward to Angle Brackets by Scott Hanselman, which started around dinnertime but was well-timed because it was a hilarous and effective piece which has almost made me think different of Microsoft. Open Source ASP.NET? Microsoft using Linux? Is this Microsoft.new
?
He gave Javascript a slap on the back and finished his hypothetical argument on what is possible in the browser with “talk is cheap, show me the code”. With that he opens his browser and demonstrates the memorable Unreal Tournament, running at 60 fps on an Lenovo X1 Carbon laptop and used asm.js
to achieve this. In Javascript. In a browser. Impressive!
The Cloud
Probably half the presentations involved the topic “Cloud”. It’s starting to feel like there’s a common template to them all: “Cloud is what you want to use when you need to Cloud a Cloud.” There was some real content in there though, and it has emerged that in order to fully utilise cloud services, we should separate our concerns into smaller APIs, such that we can monitor, scale and failover these microservices independently, and better understand where the fragility is and what the business focus should be on.
Netflix is one of the big boys on the Cloud. With a well polished and humbling presentation, Adrian Cockcroft ticked all the good practice boxes:
- immutable servers – regular AMIs built from CI builds
- stepped deploys to production (sleeping/least traffic regions first)
- multi-level build pipelines with many levels of testing (unit, integration, deployment, infrastructure)
- integrated DevOps (developers having responsibility outside CI)
Joel Pobar explained how Facebook wants to “Move fast and ship things”. He kept it simple and effective, highlighting that Facebook uses metric-driven results to deliver business value. Facebook has one code repository. With a PHP stack, fluid teams and open-management, the developer only starts at Facebook after a 6 week boot camp. Sounds good to me. I don’t invest much time on Facebook, but after listening to his talk, it sounds like an awesome place to work.
Conclusion
If YOW is the yardstick to measure current and new trends of debate in IT, then it suggests there will be:
- A heavier focus on FP – we are looking to express ourself with less code
- NoSQL solutions are becoming more commonplace and we need to pick the right DB for our business needs
- The data format debate (XML vs.JSON) is still afoot, but JSON is more popular
- The web is still alive an well, and Javascript is thriving in the world of web applications
- True (integrated) DevOps will deliver much more business value, but only if we have culture to support it – you should be automating your deployments, monitoring and scaling as much as possible
It is clear – we are still trying to find better ways to express the nature of the problems we are trying to solve. We haven’t got our data modelling perfect. We want more business functionality per L.O.C, but don’t want to lose our readability or increase the mental fatigue when reading it.
One of the most challenging but important aspects of all this is that we are humans. Style and personal preference will always be present – we tend to favour certain ways based on our past experiences, but we must continually learn and strive to improve our knowledge, otherwise we can’t benefits from the advances of new languages, technologies and processes.
No Comments