This talk is about Elixir – a functional, meta-programming aware language built on top of the Erlang VM.
I introduce some of Elixir's more interesting language features. Then I will demonstrate some of the features that Erlang gives Elixir for free, such as the OTP framework, that let's you build fault tolerant and distributed systems.
So come along and join me to experience programming joy.
Ruby's great and robots are neat, so we'll start off with a survey of robotics in ruby and then dive into some specific, fun projects such as:
- Using JRuby on Android to control GPIO on the Raspberry Pi via drb
- Controlling a Sphereo, Roomba, Parrot AR Drone with ruby via artoo.io
- Reactor loops in ruby to control robots
One of the deepest mysteries in the functional programming world is the Y-Combinator. Many have heard of it, but few have mastered its mysteries. Although fairly useless in real world software, understanding how the Y-Combinator works and why it is important gives the student an important insight into the nature of functional programming.
Join with us on this journey of understanding. Be prepared to curry your functions and bind your lambdas as we delve into the whys and wherefores of this paragon of functional programming. Although you will probably never have a need for the combinator, the effort put forth to understand it will improve your functional programming chops. This talk is not for the faint of heart, but the successful student will be richly rewarded.
Also, you will understand why "Y-Combinator" is the perfect name for Paul Graham's start-up funding company.
Go has rapidly built a reputation as a great language for web development. But as Rails developers, we already have a really, really great language for web development -- why should we be interested in Go?
I’m convinced that every web developer would benefit from exposure to the Go approach to programming, which places a strong emphasis on up-front error handling and modular, namespaced libraries. Let's sit down and compare some code!
In this talk, we will:
* Compare idiomatic approaches to common problems such as error handling, dependency management and testing in Go and Ruby.
* Think carefully about tradeoffs between different programming styles and examine how programming languages encourage one style or another.
* Tease out common ideas and best practices that apply to all web applications, regardless of language or framework.
* Read a bunch of code.
We will not:
* Try to convince anyone to ditch Ruby/Rails and embrace Go.
* Make vague, unsubstantiated claims about the benefits of static or dynamic typing.
* Assume any prior knowledge of Go.
Go is a statically-compiled systems language geared to developing scalable and type-safe applications whilst leveraging type inference to approximate the light touch of a dynamic language. It could be characterised as the static-typing world's response to Ruby. In this session we're going to explore the Go language, its tool-chain and idioms such as CSP-based concurrency and dynamically inferred interfaces to see how they influence the design of Go applications. We'll compare these to equivalent Ruby idioms where they exist, model Go-style concurrency in pure MRI Ruby, and look at interoperability between the two languages. Along the way we'll meet gotest (Go's testing and benchmarking framework), CGO (for linking to C libraries), goinstall (the remote package installer) and Go's powerful reflection and type manipulation features. There'll be a good mix of Go and Ruby code so that by the end of the session you'll be comfortable reading Go source code, have a basic feel for developing with the language and the necessary background to start using Go components in your dev projects.
It has been said that Go is a language created by Google, at Google, for Google-sized problems. Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Presenters Ken Walters and Ted Price will share a quick overview with the audience.
Ken Walters has more than 18 years of experience designing, developing and managing web and interactive experiences. He is a technologist, a strategist, and a craftsman who is passionate about application architecture and user experience. Ken’s work has been featured in Communication Arts, Graphic Design:USA, Graphis and Forbes.com’s Best of the Web.
Go is a statically-compiled systems language geared to developing scalable and type-safe applications with the light touch of a dynamic language. In this session we'll explore Go from a Rubyists perspective, examining the CSP-based concurrency model which has gained it wide-spread press coverage, it's inference-based approach to dynamic typing and the inheritance-free object model this supports. Where possible I'll tie these concepts back to familiar Ruby idioms. Along the way we'll meet gotest (Go's testing and benchmarking framework), CGO (for linking to C libraries), goinstall (the remote package installer) and Go's powerful reflection and type manipulation features. By the end of the session you'll be comfortable reading Go source code, have a basic feel for developing with the language and the necessary background to get started writing your own concurrent Go programs.