Disclaimer: I'm the author of exrm and distillery, so I'm probably biased.
511 karma · joined May 10, 2013
Disclaimer: I'm the author of exrm and distillery, so I'm probably biased.
In any case, just wanted to chime in with my two-cents. I've been working in Elixir for the last couple of years and have never felt like I've been bitten by macros. Elixir is certainly a bigger language than Erlang, but many of the things Elixir adds on top of Erlang are what make it so pleasant to work with. For example, the reduction in boilerplate for gen_servers which is made possible with `use GenServer` in Elixir.
Offsets aren't always the right thing to use either. If you are in America/Chicago and use -0600 for your timezone, that's only accurate during standard time, and is off by an hour for daylight savings time. Knowing how/when to shift offsets is part of the timezone rules associated with a locale, because they are not constant historically.
The word programmer refers to the literal act of writing the code, while to me the word developer implies writing the code, but also all the other "software engineering" aspects of developing software. If you wanted to be technical, you could say a programmer just codes, while a developer codes but also determines requirements, develops a specification/scope, etc.
I refer to myself with both interchangeably, and I assume most others do as well. I really don't consider them to be different in any meaningful way.
I think a lead should care about how their team is implementing the features they are working on, because as the lead, it's crucial that you know the ins and outs of the system - where I think we agree though is that a lead shouldn't care about how the work is done, as long as it's done within the project guidelines (coding style, consistent structure, testing, etc.).
Feature: User can register an account
Tasks:
- Registration page markup/styles
- Registration page JavaScript (form validation/submission)
- Registration API endpoint (validate properties, ensure user doesn't already exist, persist user model, send email confirmation).
Prerequisites: - Data access layer implementation
- User model
- App layout markup/styles
- Email service implementation
I agree with the lead setting up the initial project skeleton, but I'd take it one step farther and say the lead should also document the conventions for adding new modules/etc, so that the structure doesn't start to fall apart once the lead stops being the one managing it day to day.Personally, I do C# development in a Windows VM, everything else in OSX. With the new vNext stuff, the only thing still binding me to Windows for anything is the lack of Visual Studio (and WPF). I wouldn't be surprised to see an effort made to bring it to a larger audience now that .NET is going cross-platform.
Also sounds like jQuery itself was not modified in any way, only the malware dropper itself being inserted in jQuery.com's markup. Not sure what the impact will be, or what browsers and the like are affected - hopefully the impact is relatively limited.
Erlang has one of the most battle-tested standard libraries around. OTP is rock solid. It may not be bug free (I don't know that any language can claim a bug free standard library), but it's damn close.
It's pretty obvious you haven't spent much time at all with Erlang based on your points here:
- Claiming "X is fast, Y isn't" is not even an argument, you should've just left that out.
- Arguments about syntax are rather pointless, but Erlang has very consistent syntax, and it's small. You can pick up Erlang in a couple of hours if you are familiar with FP concepts.
- I haven't encountered any real problems working with strings in Erlang. It may not have a bunch of standard library functions for manipulating them, but it's pretty trivial to do most things you would in any other language. It makes up for it with how much of a breeze it is to work with binary data.
- As mentioned previously, structs aren't datastructures, and Erlang has an equivalent (records) for those anyway. Erlang has trees, maps, tuples, lists - I would consider those a lot more obvious and necessary.
- Erlang and Go are both general purpose programming languages. They don't share the same design goals though. You could write a Go program to do a poor approximation of what Erlang is good at, and vice versa, the point though is to use the proper tool depending on the application. I don't know where you got the idea that fault tolerance isn't important for "90% of software", but the software I work on certainly requires it.
- Your argument about shared memory makes it clear you haven't actually used Erlang. The copying of values between processes is abstracted away from you entirely, there simply is no awkwardness. Perhaps there is in Go.
You are claiming the article is biased, but your post is riddled with it. There are certainly problems with Erlang, but none of the things you list are one of them (except perhaps strings).