Copy
Elixir is a modern language worth checking out!
View this email in your browser

Getting started with Elixir »

If I'm relying on dependencies like Immutable.js and ESLint to help me write Javascript in a more functional style, maybe it makes sense to check out a different language where it's the default? Elixir is that language. Built on top of the legendary Erlang VM, it's designed to provide very natural mechanisms for concurrent programming (like Node.js) and great fault-tolerance (not like Node.js). This post includes the notes I took as I went through the excellent elixir-lang.org tutorial - I'm really excited to continue using it! Read More »


Links of interest...

http://www.smashcompany.com/technology/object-oriented-programming-is-an-expensive-disaster-which-must-end/ - I link to this article in this week's blog post, but it's worth calling out again. If given a chance, this long read will break you out of the Object-Oriented Programming (OOP) brainwashing endemic to the software industry. Each and every positive trait attributed to OOP is shown to be a trait not unique to objected-oriented languages.

https://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/ - A great set of questions you might consider asking a company as you're interviewing with them. It starts basic (source control, testing, code review) and quickly gets into far larger issues like team culture and the retention rate for women (known to be bad in tech). You could even use it to help improve the company you're at now!

https://hackerone.com/reports/176461 - Don't use floating point for currency. Really, don't. This is the report of a security vulnerability in electronic currency software which allowed for 0.00000001 XBT to be generated out of thin air, an unlimited amount of times per day. Use a Decimal type, an integer multiplied by 100, or something like this.


Thoughts...

So there it is - the details of my recent Elixir explorations. I've also started to dig into the Rust programming language. I figure it's a good trifecta: JavaScript (for the browser and Node.js), Elixir (for scalable, fault-tolerant servers), and Rust (for anything needing maximum speed). Rust is a nice blend of a low-level language (familiar from my C/C++ use in the past) with modern features like pattern matching and explicit, compiler-checked data ownership.

I will say, however, it's made me realize just how much effort it takes to create a reasonable development experience in JavaScript. Both Rust and Elixir, being modern languages, come with test runners, documentation generation from inline docs, as well as validation of the code samples in your documentation. In JavaScript there are a lot of test runners, but no real high-quality documentation generators (ugh, JSDoc). I was surprised to find that there are a few attempts at doctest support.

Now, you might be thinking "you can still write quality code, with tests and good documentation, right?" Well, yes. But it takes extra work to go and figure out how to do it. And people have limited time. Maybe tests are written, but the the documentation doesn't really happen. If it does, the code samples get stale over time because you didn't even know doctest tools were available.

Compare that to all the high-quality docs on Hex itself or generated in the standard way by Cargo. The consistency sets a standard for the community that pulls people toward it.


Until next time!


Scott Nonnenberg
blog.scottnonnenberg.com
scottnonnenberg.com
Unsubscribe or update your preferences.

Copyright © 2017 Gamma Corvi, Inc., All rights reserved.

Email Marketing Powered by Mailchimp