Concise code is its own reward. Yes, it's syntactic sugar, but there's a reason syntactic sugar is valuable.
Even if performance is the same, you wouldn't prefer this Javaesque code:
Int.from(8).multiply(5)
You'd use `8 x 5` were it available.
Several discrete function heads are easier to mentally parse than a long case statement because you know without a shadow of a doubt that there's no code in the function above or below the case statement, and you always have all relevant bindings directly adjacent to their usage.
Consider this Erlang code:
f(X, Y) ->
case X of
{1, 2} ->
low;
{2, 4} ->
high;
{3, 6} ->
Y
end
end.
When you get to the 3rd case statement and `Y` appears, it's jarring because it was declared several lines removed.
Instead, this code makes it explicit for each function clause that we don't care about the 2nd argument, and when we do care, it's immediately obvious where it came from.
Having recently run into some non-obvious crappy performance characteristics with I/O in Erlang, I'm curious if you have any pointers to docs or code that shows how to use Erlang I/O correctly so it's fast?
I'm curious, why would you write that game in Node now, if you already know Erlang?
From my perspective, Erlang is a better fit than Node for all the problem domains that Node is good at. I understand using Node if you don't know Erlang, but do know JS, but if you're already skilled with Erlang...
Erlang string/unicode handling amazes me! AFAIK no native support for strings.
I have zero experience with Erlang so want to ask: does this cause problems in practice? Especially, does all library code needing strings use the same Unicode representation?
Forced vacation isn't freedom. If August isn't a convenient time to take a vacation, and the employee would rather work, let them work and take that chunk of time off at some other point. If taking that time off another time during the year is unacceptable, then your policy simply isn't fair to all your employees.
Where I work even the national holidays are floating holidays, so if I want to work on Christmas that isn't a day off for me, and I can trade that for a day off for any other day of the year.
Especially for travel, it's way cheaper to do so for off-peak seasons, so forcing August or the last week of December etc. when just makes for more expensive vacations. This is one reason why I think the "French model" kind of sucks.
This works for some businesses and not for others. Most successful YC companies, for instance, cannot simply shut down for the entire month of August. In others, teams are so tightly coupled that the business wants vacations as synchronized as possible. It all depends.
The important thing to remember is that there is almost always some degree of freedom withheld by vacation policies. It's not especially productive to reason about vacations as if absolute freedom of scheduling is a sacred principle. Some businesses can come closer to others in providing freedom, and if that freedom is especially valuable to you, you should adjust your compensation expectations accordingly.
But remember the iron law of supply and demand. If a company provides a benefit (say, "months of paid vacation any time of the year on no notice"), and the market values that benefit, candidates will factor that into their compensation negotiation and the salary the company needs to pay for a given level of quality will decrease. In other words: you're paying for the vacation policy one way or the other.
(This is a subtext to the constant jealous comparisons between European and American vacation policies that tends to bug me.)
Most successful YC companies, for instance, cannot simply shut down for the entire month of August. In others, teams are so tightly coupled that the business wants vacations as synchronized as possible. It all depends.
We're certainly in the latter category, so this is an important distinction. I do think groups in product organizations have this freedom where operational groups don't, though something similar may be possible there.
But remember the iron law of supply and demand. If a company provides a benefit (say, "months of paid vacation any time of the year on no notice"), and the market values that benefit, candidates will factor that into their compensation negotiation and the salary the company needs to pay for a given level of quality will decrease. In other words: you're paying for the vacation policy one way or the other.
I don't really think that talent is best thought of as an efficient market. People are empirically quite limited in their ability to perceive ahead of time the situations in which they will be the happiest or most productive, and salaries seem to be primarily determined by societal norms.
For us, the decision mostly hinges upon whether or not our employees will actually be happier, more creative, and ultimately more productive under the new model. The policy might sway a few candidates that would otherwise look elsewhere, and it might retain several candidates confronted with lucrative alternative offers, but ultimately it's how it will effect the team's spirit that really matters.
I'm not sure it takes an efficient market for candidates to be able to do a simple math problem. The company that offers 4 weeks vacation a year pays a $90k salaried employee the equivalent of $51.10/hr; the company that offers 6 weeks vacation pays $53.50/hr, or 5% more.
Comp clearly isn't the only reason people pick jobs, but it's a big reason.
There's a "quality of vacation" point you're making, but generally I think the real issue there is that employees are pushovers, and ask permission to use all their vacation time all at once, instead of just informing their employer that they're going to take July off.
Myself I pretty much don't do jack shit in any given hour of the year, so I guess companies that would hire me at those rates are getting ripped off since they aren't getting anything for their money.
On the other hand, over the period of a year, I am amazingly productive and product thousands of times more value than the typical engineer.
Interestingly, the less down time during that year, the fewer incredibly valuable things I make.
It's a bit frustrating to see very insightful contributions like my comment here downvoted. Downvotes isn't meant to be for good points. Let me make it more explicit though for people who have difficulty understanding things.
ENGINEERS THAT CREATE THE THINGS YOU SELL DO NOT CONTRIBUTE BY THE HOUR. THEY CONTRIBUTE BY THE QUARTER, THE YEAR AND THE DECADE. HOURLY WAGE CALCULATIONS ARE THE WRONG WAY TO CALCULATE HOW MUCH THEY ARE PAID BECAUSE THEIR FUNDAMENTAL UNIT OF TIME ISN'T THE HOUR. WERNER VON BRAUN DIDN'T DO ANYTHING NOTICEABLE IN ANY GIVEN HOUR OF DESIGN WORK.
What does this mean in practice to the MBA set? It means that measuring engineering work as cost per hour means there is something seriously wrong with your company because you don't understand the fundamental nature of the work.
Question: have you experienced both models, or are you just guessing? This isn't meant to condescend -- I'm just truly curious.
The trouble is twofold -- two or three weeks of paid time off, while standard, isn't enough for people to have significantly different experiences in their lives. Furthermore, if the business is still running, then many people will have to continue to work through their vacation. (as is currently happening for me, as we speak).
Question: If forced vacation isn't freedom, are weekends freedom?
Weekends are forced vacation too. It'd be great if companies adopted a "floating weekends" policy too, for the same reasons I outlined, but no company I've come across seems to do so, officially (you do see unofficially here and there bosses who recognize an employee working the weekend and allow them to take a couple days off later, and simply not reporting the vacation).
As to your first question, yes I've experienced both. Not month long shutdowns, but week long ones, but it's the same thing: if it's not convenient for you to take a vacation during that time, it's pretty much a waste and it sucks. If your spouse doesn't get 4 weeks off on August, are you going to go on a 4 week vacation then? Probably not. But then you'll resent the people who do actually take that 4 weeks off to go somewhere. It's bad for morale.
I agree that a solid 4 week vacation is enriching, but just declaring an arbitrary 4 week shutdown is a cop out. Fix the structural problems that require every one to be in the office at once, and then give everyone that much vacation time to be used when they like it. I'm not saying that this is easy to fix, but if you really believe in giving people time to have significantly different experiences in their lives, this is what you'd have to work at.
I am afraid, though, that I can't imagine how our company can work effectively without at least some people in the physical lab at the same time. I will meditate on this.
In the meantime, I will think about how to give people an alternative plan of time off while still being effective.
There's actually 5 charging stations that Tesla installed on the 101 between SF and LA. If we got serious about electric cars, higher charging station density would help with long trips.
FWIW, the longest stretch of interstate without services is I-70 in Utah, at 106 miles. I don't think I-80 has any >100 mile stretches without gas, but possibly 80 mile stretches.
Off interstates though, the west can get pretty empty. This is near the Nevada/Oregon border:
Reasonably good presentation, but this stuck out at me:
> One team that started with Erlang and moved to Java so they could find programmers. Think about those scenarios.
If the people you are hiring can't pick up Erlang in a couple of weeks of being on the job when they are doing that full time, with colleagues around who already know Erlang to help them, you are hiring the wrong sorts of people. Same goes for any other language/technology stack.