Functional Programming and the Battle for Survival
Startups are hot. They're fun. They're exciting, challenging, and romantic. They're also brutal. Only 1 in 20 startups succeed.
This talk is about how functional programming gives startups an advantage. Because every advantage is critical, in the fight to survive. And then to scale up, and thrive.
Outline/Structure of the Keynote
- Introduction
- Defining a startup
- Product-market fit
- Constraints
- Learning
- Iterations
- Leverage
- People
- Technology
- Processes
- Thinking
- OO to FP
- Modeling business processes
- Verbs vs Nouns
- Domain-driven design
- State
- Micro-services
- Secret weapons
- Bottom-up design
- DSLs
- What dynamic means
- Onward!
- Innovation
- Experimentation
- Scaling codebases
- Scaling teams
Learning Outcome
Leverage is important. And in the resource-constrained world of startups, every bit of leverage matters. This talk drives home the point of simplicity, better tools, and building better teams., starting from the foundation of functional programming.
Applying a fresh, simpler approach to solving problems, managing code-bases, growing teams and sub-teams, thinking functionally makes for a smarter approach to managing risk, and tackling explorative, iterative learning.
This talk describes why FP makes for a powerful "open secret weapon" in the startup world.
Target Audience
CEO, CTO, Engineers, Business, Product Managers
Links
schedule Submitted 5 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Viral B. Shah - Why Julia?
60 Mins
Keynote
Beginner
In this talk, I will talk about our motivation for creating Julia. Julia is a high-level, high-performance dynamic programming language. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. Julia’s Base library, largely written in Julia itself, also integrates mature, best-of-breed open source C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packages through Julia’s built-in package manager at a rapid pace. This is why Julia is seeing rapid adoption in universities for teaching and research, as well as in businesses.
I will discuss what makes Julia fast. Julia's ability to combine these levels of performance and productivity in a single language stems from the choice of a number of features that work well with each other:
- An expressive parametric type system, allowing optional type annotations;
- Multiple dispatch using those types to select implementations;
- A dynamic dataflow type inference algorithm allowing types of most expressions to be inferred;
- Aggressive code specialization against run-time types;
- Metaprogramming;
- Just-In-Time compilation using the LLVM compiler framework; and
- Careful design of the language and standard library to be amenable to type analysis;
I will also touch upon how the language design has made it possible to explore many parallel programming models in Julia, completely within the language.
-
keyboard_arrow_down
Naresh Jain / Dhaval Dalal - Live Code Jugalbandi
Naresh JainFounderXnsioDhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.schedule 5 years ago
90 Mins
Event
Beginner
In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.
In a similar way, we will perform Code Jugalbandi to see how the solution looks using different programming languages and paradigms.
During the session, conference attendees will take turns at coding the same problem using different languages and paradigms. There would be multiple such attempts by different participants during the Jugalbandi. -
keyboard_arrow_down
KC Sivaramakrishnan - Introduction to OCaml
240 Mins
Tutorial
Beginner
OCaml is a statically typed functional language with a fast native code compiler and incremental garbage collector. In this tutorial, we will first introduce the basics of OCaml using an interactive environment running in a web browser, as well as a local install of OCaml using the OPAM package manager. We will also explore how to compile OCaml to JavaScript using the js_of_ocaml tool.
This tutorial is aimed at people with programming experience. Previous experience with a functional language will be useful but is not required. No prior knowledge of OCaml is assumed. -
keyboard_arrow_down
Daniel Steinberg - Introduction to Swift Workshop
480 Mins
Tutorial
Beginner
If you are an experienced developer who hasn't had a chance to look at the Swift Programming Language, this workshop is for you.
We'll look at language fundamentals: functions, variables and constants, collections, control-flow, optionals, generics, and closures. We'll look at Swift classes, objects, protocols, structs, modules, and enumerations.
We'll use Swift Playgrounds to explore some of these aspects of the language including the latest additions to Swift 2.0.
Swift is scheduled to be open sourced this fall. You will be able to use it for development on Linux and OS X.
There will be several hands-on portions of this workshop. To fully participate in those, you must have the Xcode 7 beta installed on your Mac.