See the table of contents for my other blog posts from the conference
@venkat_s
We are problem solvers
Programming languages
- For communication
- Expressive and fluent code
- Uses about 15 languages. Not fluent in any of theM
- Quadrants – static vs dynamic. Strong and weak typing. Ruby gives a lot of warnings because strongly typed.
“All problems in computer science can be solved by another level of indirection” -David Wheeler
- procedural – pointers/references
- object oriented – polymorphism
- functional – lambdas
Imperative vs declarative
- more important than OO vs functional.
- Functional programming is declarative programming with higher order functions
- imperative is easy to write but harder to read
- functional is easy to read. Harder to write partly because we spent so many years writing in imperative style
- Imperative gets harder as problem gets more complex
- need to focus on both imperative and functional. Hybrid languages
- lazy execution does not survive mutability. Dont work around compiler errors!
Future – will care more about async than running in parallel. Want to be able to make async without changing structure of code. Kotlin and JavaScript do this now. Java will in a few years with fibers
Changing mind is important. Not whimsickly. But to make progress
Wisdom is realizing there are no absolutes
My take
Great start to the day. I like how so many languages were compared. With humor too. I like how Venkat does a mix of slides and live coding/notes. I really like that he acknowleges that it is ok for things to feel hard