This year I attended Strange Loop, a conference on emerging tools, languages, and trends in software. I found the following sessions to be most interesting.
Session videos are available for attendees now, and for the general public closer to March 2014.
I will definitely be looking into this language family when it has been implemented.
Compile-time optimizations on the AST can be coded directly in Nimrod. This is similar to macros but acts like a global peephole optimization. Very powerful.
(~R∊R∘.×R)/R←1↓ιR
life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}
If you’ve never used an array-based numerical language before, this is a great beginner’s introduction.
Honorable Mention:
If you only watch one of these presentations, pick the Clojure one.
async
and await
keywords in C# and F# seems to have greatly inspired similar mechanisms in other languages.async
/await
avoids the callback hell problem often seen in JavaScript, where a series of nested callbacks just keeps increasing the indentation level of the code. And callbacks in the midst of complex control flow like loops are even more problematic.
Implemented in Scala as a macro, using the experimental support for Scala macros.
The presentation itself has some interesting general thoughts on concurrency in software.
yield from
expression in Python 3 can be used to implement C#/F#-style async/await. I need to look into this.Joseph’s program for creating music compositions makes, in his opinion, better music than he could compose himself. This brings up the interesting observation that a student, in this case a computer, can surpass the teacher. This is not unheard of when both teacher and student are human, but it’s a bit uncomfortable to conventional thinking when the student is a “soulless” or “non-understanding” computer and the teacher is a “sentient” human.
Martin himself, being the creator of Scala, is firmly in the static typing camp but still provides a good overview of when dynamic typing is useful as well.
There was another presentation on category theory at Strange Loop but I found this talk far easier to follow.
This capability is very exciting since it can connect programs written for the traditional desktop environment to the web deployment platform. For example my efforts at making old Mac software easy to emulate on modern hardware, which currently requires installation on a desktop computer, could be altered to be widely deployable to the web.
It’s been known for some time that women are strongly underrepresented in computing. I know they’re falling out of the training pipeline early as I receive almost no women applicants to the Splunk Seattle office.
So far the primary discouraging factors I’ve been able to identify include a lack of female role models in software and a hostile learning environment created by guys when girls try to enter the field.
Very informative. Full of data and ideas.
Key takeaway is that there are a lack of female role models in computing.
It is also difficult to get kids into computing. No longer are computers widely shipped with BASIC interpreters, HyperCard, or other well-designed introductory programming environments that kids can just jump into. Additionally the bar for what is considered an acceptable game or program has risen considerably, making it harder to get excited about simple programs.
The material in this presentation will eventually be incorporated into a book Exercises in Programming Style that will be released in Spring of 2014. I’m definitely getting a copy.
The HipHop project also includes a lot of useful tools such as a debugger, profiler, and IDE integration.