This blog post was originally posted on my blogpost blog at this URL, and was later migrated to this place. There may be some comments at the original URL.
I was busy last week with GeekNight and such, and was not able to write a post in this series. The conference went well. All talks were well received. (Including ours, I hope!)
Anyway, here are some interesting links from past weeks:
This novel approach to style sheets lets you specify layout and positioning in terms of “constraints” and is way more expressive than CSS. This will help you build sophisticated UIs, with lesser effort, and more joy.
I haven’t read this article yet, but it has spurred a great deal of discussion in many places, and may be worth a read.
A very powerful piece from Phil Wadler, that talks about the isomoprhims between propositions and types, and between proofs and programs. It talks about how deep the implications of this isomorphism are, and how thus some aspects of programming are absolute.
Good introduction. Though I’d have liked a small section on Haskell’s philosophy/worldview in the beginning.
ECMAScript 6 is around the corner, and is bringing in a serious lot of features, which turn it into a new language altogether. Terse syntaxes for lambdas and class-based OO, destructuring, for-comprehensions, generators, modules are some of the highlights.
I had been hearing about this Yaron Minsky lecture since long time. After all, it gave us type fanatics one of our favorite lines - “make illegal states unrepresentable”. For whatever reasons, I had not watched the talk yet. But last week, I did. And boy, was it amazing! A lot of practical advice in this lecture, with some very good examples. The lecture is a bit ML-specific, but is still largely applicable to Scala, F#, and other languages in the philosophical vicinity.
Yes, it’s been announced! A lot of amazing talks to look forward to. This year, topics around ScalaJS, Big data, streaming seem popular.
There’s again been some buzz about this ancient language, Dylan. Manuel Simoni called it the semi-functional OO language to rule them all.
These slides from Eugene Burmako and Lars Hupel are surprisingly good. Looking forward to the talk video being up on the internet.
Nice little comparison between C++ templates and Rust generics. TL;DR: If you are familiar with Haskell and OCaml type systems, that’s the model Rust follows. Something C++ too will be moving towards, once the concepts feature is in.
Short, little type systems advocacy. If you have a friend (which could be yourself) who judges type systems by his/her experience with Java or C# or similar, help them today by pointing them to this blog post!
Good slides. Has some very cool quotes. I liked this one the best - “Haskell has no preferred imperative semantics, and the monad just lets you swap out the semantics according to your needs.”
LWT is a co-operative concurrency library for OCaml. It also provides syntactic extensions similar to F#’s try!, for! etc for async, but specialized for the purpose.
This research from Amir Shaikh demonstrates a DSL technique called “shadow embedding”, which allows you to create deeply integrated DSLs, which provide very strong compile time guarantees, and with sane error reporting.
More on the new ECMAScript generators. Details about how they are to be used, and some implementation strategies for them.
This project is aimed at reducing the complexity and verbosity of Scala macros, and make them more useful, enjoyable, and easier to reason about. The first public demo is scheduled for ScalaDays 2014. Looking forward to it.
Haoyi Li demonstrating some ScalaJS goodness. Amazing demo.
Sumit Mahamuni has turned my “embedded document” stuff for Ruby into a gem. Now you can use it on your project! Feedback, pull requests very welcome.
Scala macro quasiquotes tutorial. It’s hard to imagine how people were managing code transformations before quasiquotes.
From the site: “Mirage is a ‘library operating system’ for constructing secure, high-performance network applications across a variety of cloud computing and mobile platforms. It works by treating the Xen hypervisor as a stable hardware platform, allowing us to focus on high-performance protocol implementations without worrying about having to support the thousands of device drivers found in a traditional OS. Code can be developed in a high-level functional programming language (OCaml) on a desktop OS such as Linux or Mac OSX, and is then compiled into a fully-standalone, specialised unikernel.”
A very enjoyable talk, if kernels and such are your thing.
Frege can be thought of as a Haskell implementation for JVM, but with some differences. One of those differences is how it does records: With each record definition, you get a set of accessor and mutator functions auto-generated, all in a record specific namespace. This is very handy. Here’s an introduction to that feature from Marimuthu Madasammy, the person who wrote Frege’s REPL.
I was a huge fan of Jayant Narlikar, an astrophysicist who has written quite a bit of sci-fi in Marathi. He always had a two fold goal with his stories: to teach about some scientific concept, to entertain with a solid plot. The description at the top of this page reminded me of him. Glad to have stumbled upon a list of sci-fi literature/stories which do justice to science.
Until next time!