The PolyConf conference took place in the end of June. It unites polyglot programmers focusing on new as well as functional programming languages.
This is my overview of its most interesting ideas.
Rib: Requests in Batches
Clients need to fetch complex data structures in order to display the application content. They usually make several API requests to achieve that. GraphQL and Falcor are the most popular ways to solve it by providing a way to request only the data that the client needs in a specific form. This sounds awesome, but comes with a cost - one has to define how to retrieve the data.
If you just want to batch your requests - Rib helps. The client sends a single request specifying what requests should be made. Rib returns all the responses. If any request fails - it returns a failure response.
Dependent requests are supported as well - read more here.
The service allows you to achieve the result fast, but it puts a load on your clients. This may become difficult when you have applications for several platforms.
Why System Programming is for Everyone
Julia Evans shared her magical tricks on how to debug any kind of systems. Once you face a performance and looking at the code fails to give you a clue of what’s wrong - think outside the box. Check what system is telling you about memory and CPU consumption, disk writes, as well as networking stats. Linux tools she recommended are strace, dstat, tcpdump + wireshark, perf.
She encouraged us to experiment following these rules:
- It doesn’t have to work
- You don’t have to finish it
- You have to learn something
Read more in Julia’s blog post.
Yan Cui took us through process of creating a snake game with Elm in his talk “My adventure with Elm”. It was fast and entertaining. The nice part ways that it was easy to follow. I like the way Elm structures web applications’ development. We saw how the code organization principles help the compiler to spot runtime exceptions during development. It looked great.
If you are excited about Elm - give it a try. Play around and learn. It will change the way you think about web development.
I would not recommend running it in production yet. The language is very young, lacks an ecosystem and might have a backwards incompatible evolution.
The Seif Project
Douglas Crockford gave us an update about the Seif project’s progress. It focuses on creating a secure-by-design web. There’s a lot we’ve learned from the Internet’s evolution and there are a lot of legacy features which complicate security issues. Douglas created a new protocol to change the way we communicate. The project is open-source.
It is a bold idea which will face a lot of challenges - technical, political and social ones, but it may succeed.
Serdar Dogruyol talked about Kemal - a fast micro web framework written in Crystal. I would not use it for big projects yet, but it might be a very good fit for small performant micro-services written in ruby-like language. Speed and expression combined - that’s a rare thing.
Overtone and shadertone
Krzysztof Gogolewski made a short demo on some rarely used cool git commands:
git diff --compaction-heuristic # better diff git diff --color-words # highlights single line changes git push --force-with-lease # don't override if not most recent
There’s a lot more fun and useful stuff - check out all the videos on YouTube.