News for hackers. Stuff that matters.
Re:Moment().endOf(‘term’) by RcouF1uZ4gsC on Wednesday July 27, 2016 @03:54PM (#12175996)
This is the dark side of open source. Moment.js probably has generated millions of dollars of value, but in exchange the primary developer is left with depression and burnout.

I am actually old enough to remember getting Programmer's Paradise magazine that would have listings for all sorts of VBX/OCX controls from a whole host of large and small vendors that developers could buy to help them accomplish a programming goal.

Now, a single developer or small team can create a small app or website in which free/open source libraries are doing all the heavy lifting in terms of complexity and capture millions(or billions) of dollars in value with the original creators getting nothing.

The main reason for an individual creating open source libraries is due to either idealism/altruism or else to increase their reputation so a company will hire them. My guess is that the altruistic individuals are the ones getting burned out because the users of their code, instead of appreciating their altruism, make them feel guilty and inadequate. Open source will have to solve this issue in order to be sustainable.

Re:Moment().endOf(‘term’) by geoelectric on Wednesday July 27, 2016 @04:19PM (#12176184)
To be fair, the developer was completely in control of their own exposure and workload. They just might have limited the project's popularity. And I think this was the solution: hand off (or freeze for adoption, if you're not this big) when you're feeling done with it. It's a shame he had to get to a point where he obviously needed help before coming to that realization.

I do think there's work to do around both mentally prepping someone for being a maintainer and setting expectations around what one can count on for free, but I don't see this as being peculiar to open source. Ongoing support for independent apps and components can also outweigh the profit, without the ethical freedom to just walk away from a customer if you don't feel like helping them. And don't get me started about working in a typical day job. Everyone wants as much as you're willing to give them, and metering that is a key skill.

Re:Moment().endOf(‘term’) by burntsushi on Wednesday July 27, 2016 @04:45PM (#12176389)
> The main reason for an individual creating open source libraries is due to either idealism/altruism or else to increase their reputation so a company will hire them.

Or neither. I create open source libraries because I love to code and because I love to share what I built with as many folks as I can. Idealism, altruism or concern of my reputation is not required. (I can't help but think that the subtext of those terms is "people who do open source in their free time are naive," but that would not be a charitable interpretation. Still, that's the impression I'm getting from your comment.)

Re:Moment().endOf(‘term’) by tbirdz on Wednesday July 27, 2016 @05:08PM (#12176530)
>I create open source libraries because I love to code and because I love to share what I built with as many folks as I can.

Sounds like altruism to me.

Re:Moment().endOf(‘term’) by burntsushi on Wednesday July 27, 2016 @05:18PM (#12176575)
No, it's pure selfish passion.
Re:Moment().endOf(‘term’) by geoelectric on Wednesday July 27, 2016 @05:32PM (#12176668)
A dirty secret is that most people that are altruistic are doing it because they like something about being altruistic (whether that's warm fuzzies, bragging rights, or something else). At the end of the day we're all self-interested, just hopefully constructively so.

I do suspect "what the hell, may as well push it to github" probably starts more open-source projects than any other thought.

Re:Moment().endOf(‘term’) by burntsushi on Wednesday July 27, 2016 @07:20PM (#12177249)
There is a difference between "what you're doing is so altruistic" and "what you're doing is because of altruism". I don't object to the former---I can totally appreciate how that makes sense as an observation about the world and the people around you. I do object to the latter, especially when it's used as a way to bin every programmer's motivation for writing code and then derive a political point from that binning ("open source is unsustainable").

I don't think to myself, "I can't wait to get home from work and selflessly help others!" I think to myself, "I can't wait to get home from work and crack open that really interesting problem that I've only been able to give a third of my brain to today." If the fruits of the latter result in someone else saying it's altruistic---that's cool. But don't try to tell me I'm doing it because it's altruistic. I'm not. (Being called altruistic is kind of funny. It's either a wonderful compliment or a condescending snub of youth/naivete. In my experience, anyway.)

FWIW, I suspect we're on the same page. I'm just trying to clarify the point I was trying to make to the original parent, because I think that's getting lost.

Re:Moment().endOf(‘term’) by Retra on Wednesday July 27, 2016 @07:33PM (#12177304)
Your conception of 'self' is not inherently limited to your individual being.
Re:Moment().endOf(‘term’) by facetube on Wednesday July 27, 2016 @06:09PM (#12176871)
Why not both?
Re:Moment().endOf(‘term’) by burntsushi on Wednesday July 27, 2016 @07:12PM (#12177192)
I'm describing my own experience with writing code. I don't feel altruistic ("disinterested concern for others"), I feel invigorated, fulfilled, and so on.

Please consider the parent I responded to. It was citing motivation. My motivation is passion for the craft; not impersonal sacrifice for the greater good (even if you observe it that way, that's not what motivates me to participate in open source).

Re:Moment().endOf(‘term’) by stevenwiles on Wednesday July 27, 2016 @06:56PM (#12177095)
Whatever you want to call it
Re:Moment().endOf(‘term’) by Intermernet on Wednesday July 27, 2016 @04:23PM (#12176215)
Part of altruism is the understanding that you are sacrificing energy for a cause that you may not see realised. All altruism is, unfortunately, a gamble. This will hopefully not put anyone off future altruistic acts, as all movements must start somewhere.

If you have used moment.js in a project then please consider contacting the author with a note of appreciation. This won't solve everything, and won't change the world, but will hopefully alleviate the depression and anxiety of someone who has made your lives easier.

Re:Moment().endOf(‘term’) by kiba on Wednesday July 27, 2016 @04:28PM (#12176252)
I hope we will find a way to pay a developer for contributing to open source projects, and maybe even make open source software the primary distribution available.

Unfortunately, one can make far more money selling SaaS then to adhere to the definition and spirit of libre and open source software.

I want to have my cake and eat it too, but I can't.

Re:Moment().endOf(‘term’) by nicholasjarnold on Wednesday July 27, 2016 @03:41PM (#12175904)
Thank you for your contribution to the growing JS ecosystem of useful, stable and well-documented libraries. I've had personal success using Moment() to solve otherwise boring and error-prone problems with date/time manipulation on a number of projects at various companies (and on side-projects and client-oriented work as well!).

While Mr. Wood might have other things preventing him from being happy and carrying the torch forward, I sincerely hope he reads this and realizes that he has made a net-positive impact. Thanks again.

Re:Moment().endOf(‘term’) by bballer on Wednesday July 27, 2016 @07:55PM (#12177414)
I second this, moment.js is amazing, if the creator is reading this a HUGE thank you!
Re:Moment().endOf(‘term’) by namuol on Wednesday July 27, 2016 @07:51PM (#12177406)
https://www.youtube.com/watch?v=-5wpm-gesOY&feature=youtu.be...

    What you learn after dealing with timezones is that you put away your code.

    You don't try and write anything to deal with this.

    You look at the people who have been there before you.

    You go to them, and you thank them *very much*, for making this open source.

    And you give them credit. And you take their code, and put it in your program.

    And you never look at it again, because there lies *madness*.
Thank you so much for giving us Moment. Your suffering has not been in vain. <3
Re:Moment().endOf(‘term’) by akavi on Wednesday July 27, 2016 @03:23PM (#12175779)
In a previous job, I spent many, many hours over the course of many, many months working on a shift scheduling UI.

Moment.js played an enormous role in getting through that period of my life with my sanity (mostly) intact.

Thank you, Mr. Wood.

Re:Moment().endOf(‘term’) by spriggan3 on Wednesday July 27, 2016 @06:31PM (#12176971)
Package maintainers, you DO NOT OWE anybody anything. If a package you maintain is "mission critical" for a company then that company can contract you to maintain the package, companies need to stop expecting developers to work for free. How many companies that made a profit with moment.js contributed back to the project ? financially ? Personally I believe that dual licenses, one GPL, one commercial make more and more sense in the OS world.
Re:Moment().endOf(‘term’) by niftich on Wednesday July 27, 2016 @04:29PM (#12176255)
Great job on Moment.js, and I'm sorry it caused as much pain as it did to Tim.

I think he fell victim to being too nice and accommodating. I remember 'follow'-ing the Moment issue tracker on github at a time when I followed a few other high-profile libraries, like pdf.js, requests, redis, Joda-Time... and Moment.js's issue tracker was flooded with an extreme volume of issues that made it difficult for me, a much-removed, half-interested third-party, to continue using Github.

Many of these were bug reports, but even more of them were feature requests and usage questions, and I am frankly surprised that Tim served as maintainer for as long as he did, given the cognitive load.

It's easy to be wise in hindsight, but I truly believe that more aggressive moderation by a dedicated team, and more efforts to intentionally limit scope would have benefited Moment.js and its community.

Re:Moment().endOf(‘term’) by koops on Wednesday July 27, 2016 @03:16PM (#12175734)
Moment.js is fantastic. The number of new year, daylight savings, and leap day bugs this library has wiped out must be in the thousands.
Re:Moment().endOf(‘term’) by maggiepint on Saturday July 30, 2016 @12:40AM (#12191673)
I'm Maggie - one of the maintainers that is stepping up for Tim. I just want to mention that in the time I've been working on the project I've learned that when Tim talks, you should listen. He's done an excellent job, and given our issue load I am surprised he didn't get burnt out earlier. For anybody questioning why Tim didn't better self-regulate his work load, know that we as maintainers feel a really strong love toward the project. We don't want to see it fail, and we will push ourselves to make sure that it does not fail. Tim has always done this, and he should be commended for it. Thanks Tim for all your time. Hopefully we can take good care of this.
Re:Moment().endOf(‘term’) by sdegutis on Wednesday July 27, 2016 @03:24PM (#12175785)
> Seeing bugs and issues continue to roll in and being mentally unable to address them has led to feelings of failure and depression.

Holy crap, yes. That's absolutely the reason I turned Mjolnir into a DIY WM and constantly encourage people to move to the popular fork Hammerspoon.

I'm so glad nobody uses any software I write, for this exact reason. Honestly, I can't handle being an open source maintainer.

That's why I make sure that when I do write open source software (like 'choose'), it's so tiny that I can prove that it's feature complete and bug-free just by skimming the source in an afternoon. Well, that and dogfooding.

> As another part of taking care of my mental health, I will be officially stepping down from all moment[.js] responsibilities.

Great plan.

> With the help of my wife, Sheli, I have started taking medication, which has helped tremendously.

Wait, what? It got that bad? Man, sorry to hear. Hope things get better.

Re:Moment().endOf(‘term’) by carapace on Wednesday July 27, 2016 @03:28PM (#12175808)
> The correlation between Open Source and burnout is no secret

This will sound unsympathetic, and I apologize for that, but I am genuinely puzzled.

Why would you "burn out" doing something that is presumably wholly voluntary?

In other words, why not quit or scale back involvement much sooner, before the downside(s) become so severe?

I'm not trying to criticize Tim Wood, I feel for him. And I LOVE moment.js! I'm very grateful for it and all the efforts that went, and goes, into it.

Re:Moment().endOf(‘term’) by buro9 on Wednesday July 27, 2016 @03:36PM (#12175866)
> Why would you "burn out" doing something that is presumably wholly voluntary?

Because as the creator the project itself is wrapped up in your identity, something you made. One feels entwined with it's fate, no less than a founder of a startup does, and the more popular the more issues, noise, pull requests, etc.

It's easy to feel stand back a lot later and recognise that you are overwhelmed by it all, drowning. But even a successful project builds slow enough that one adapts to it all and don't notice.

It's a classic boiling frog problem and the project creator and core maintainer is the frog.

Re:Moment().endOf(‘term’) by dsp1234 on Wednesday July 27, 2016 @03:49PM (#12175962)
Another mirrored aspect to this is that identifying the need, and obtaining the required mental health help (talk, drugs, etc) is not a skill that is taught/passed down/whatever very often (and it actively taught against in some cases).

So it's easy for people to not even know that they need help, or to deny to themselves that something is wrong that needs help (or worse to be actively stigmatized away from finding help).

There are a lot more "It's ok, you'll come out of that funk in no time" and "Just push through the pain, it's no big deal" conversations, than there are "You know it's ok to talk to a professional about this stuff, everyone does it" and "Having depression is like having a broken leg. Not seeking help is the crazy choice." conversations.

Re:Moment().endOf(‘term’) by geoelectric on Wednesday July 27, 2016 @06:06PM (#12176858)
Having depression is like having a broken leg--and then being expected to walk to the doctor's office.

Personally, I think mental illness awareness should be taught more like emergency response first aid or stroke recognition: don't teach it to the mentally ill person, teach proper intervention to the people who are more likely to notice it and do something.

The one mental disorder we actually do this with pretty well is ADHD, where family, friends and especially teachers and employers will generally notice before the person suffering it does. But then we use the fact that laypeople see it first as anecdotal "evidence" that it's not real, ignoring that you're a layperson too when you bring yourself to the doctor.

It's a tough situation all around. I look forward to the day when mental illness is better understood and proper identification and care is better communicated.

Re:Moment().endOf(‘term’) by aftbit on Wednesday July 27, 2016 @04:34PM (#12176294)
>"Having depression is like having a broken leg. Not seeking help is the crazy choice."

That's an interesting way to put it. I've always seen depression as more like a respiratory disease. It might just be a cold, so you should wait a week or two before going to the doctor, but if you get worse instead of better, you need to go get some help.

Re:Moment().endOf(‘term’) by carapace on Wednesday July 27, 2016 @07:07PM (#12177167)
Well, you should differentiate between "normal-people" depressions and "clinical" depressions.

I suffered from serious depression until my mid-twenties. It made it difficult to function, yet the people around me couldn't understand or relate. I can't tell you how many times I was accused of "just being lazy". My mother once said to me, "I know you're not faking because no one would deliberately be this miserable." You absolutely have to treat this "like a broken leg" because it is a real illness that won't just go away on its own. I did that and eventually found help that worked for me. Except for one nightmare-ish three day recurrence (I was so scared) I've never suffered from it again.

Since then, I have had normal depression once or twice. This is what people meant when I tried to tell them about my sickness before and they would say, "Everyone feels depressed from time to time." (Oh how that sucked.)

Now I get it. Everyone does feels depressed from time to time, due to reasons. Something bad happens, or some condition is deeply unsatisfying in your life and you feel bad. That's totally normal and part of navigating life. (To me, having dealt with the monster for so many years, normal depression is almost cute. Even though it still sucks. It's the difference between a scratch and a tooth-ache.)

----

edit: I just realized that this is why I couldn't understand Wood's actions. Given my history I wouldn't let anything send me back to the pit. Not even my most cherished project.

Thanks folks who responded. Warm regards.

Re:Moment().endOf(‘term’) by sulam on Wednesday July 27, 2016 @03:48PM (#12175956)
There are many examples in daily life of things that we do which are hurting us but for which the momentary pleasure outweighs the long term pain. Just to be clear, I'm not saying OSS maintaining is addictive, but it comes with costs and those costs don't go away just because you want to back away from the project. At some point you have to declare a sort of public bankruptcy, as has been done here -- otherwise the costs continue out forever.

To be more explicit using a personal example -- as a very small time OSS maintainer, I've had many people email asking me how to do something with my project. I put it out there, I would like to help them, but every bit of time I give them is time I'm not putting elsewhere. If I decline to help them it's natural to feel bad about it, especially when some people are less than polite about things. For larger projects you add in the responsibility you feel to contributors -- someone has written a PR and would like you to merge it. Often that involves quite a lot of time. Users file issues against you, or try to make your software work in environments it's not designed for, or just don't understand how it works. Very rarely does this lead to income -- in my case I wrote software as part of my job that I was able to open source. Great! But without prioritization from the company, it falls on me to manage these things, even if that's no longer my job or if I move on from the company. And my case is a good one -- many OSS maintainers will never see a dime for their work.

Re:Moment().endOf(‘term’) by partisan on Wednesday July 27, 2016 @04:07PM (#12176101)
> In other words, why not quit or scale back involvement much sooner, before the downside(s) become so severe?

In my experience, burnout (and depression) is not something you realize you have until you are already deep in it. You may see symptoms of it, but it is easy to dismiss them as something else and completely miss the fact that you are burned out.

Hope that helps you to understand and be more sympathetic.

Re:Moment().endOf(‘term’) by also_on_sunday on Wednesday July 27, 2016 @03:43PM (#12175915)
When a project is brand new it's definitely play time, but as it grows, matures, and more and more issues are opened up it can start to become work. It can get pretty difficult to maintain a healthy "work/life" balance as well when you have a full time job and now a new part-time, unpaid night "job" as the demand for features and bug fixes is 24/7. It can also be hard to say "no" frequently to well intentioned but off-target pull requests. I've received a few really nasty bug reports, one of which emailed me while I was out to dinner at my wife: definitely wrecked the evening. It is rewarding, but it can definitely get hard. This is a picture of my own inbox from earlier in the year.

https://cloudup.com/cg2K9ikg_Av

I literally get emails every day for issues and my projects are much smaller than the amazing moment.js. If you're not equipped mentally and emotionally to deal with the literally endless barrage of issues it gets pretty easy to feel overwhelmed.

edit: updated to use proper characters for italics

Re:Moment().endOf(‘term’) by lightbendover on Wednesday July 27, 2016 @08:24PM (#12177556)
Having witnessed the growth of countless engineers, including myself, it comes down a personality trait as far as I can tell. Some people make their code and their products a huge component of their identity and it becomes very difficult for them to separate from it and maintain a health work-life balance. Inevitably leads to burn-out, ill tempers, delusions, and/or depression. I call it the Curse of Passion.

If a project is the majority of your identity, then it's hard to just "scale back" when you know their are issues that "nobody else would fix right" or "will make me look bad because it's my ultimate responsibility." Of course, the right thing to do is step away, recover, reflect, and come back, but it's easier said than done for some.

Re:Moment().endOf(‘term’) by AstroJetson on Wednesday July 27, 2016 @03:40PM (#12175896)
Sorry to see you go, I'm also thankful for moment. It really reduced the date issues from team members trying to roll their own. You allowed thousands of projects to leverage your work and let them focus on their project. Thanks!
Re:Moment().endOf(‘term’) by jph on Wednesday July 27, 2016 @03:23PM (#12175781)
Thank you Tim for Moment and also for your kind farewell letter.

Point me to a charity of your choice and I'll make a donation.

Re:Moment().endOf(‘term’) by mythz on Wednesday July 27, 2016 @08:07PM (#12177474)
This highlights a major problem for Indie OSS software development as OSS is mostly built on the backs of Indie developers but its profits gravitate to mega tech corps who have the barriers of entry and economies of scale to profit handsomely from it.

Devs are accustomed to using Software libraries for free whilst still being expected to pay for hosting OSS software which are the areas where AWS, Microsoft and Google invest heavily, but smaller companies without the brand, infrastructure or scale have a chance to break-in. They're effectively selling shovels and pickaxes during the OSS/Cloud Gold Rush and ultimately are the ones who stand to benefit most from OSS.

This trend is going to get worse over time as they can use their profits to develop their own OSS software projects with well-funded teams that money can buy which they can offer for OSS/free in order to maximize adoption and exposure as they have the business model and economies of scale to eventually profit from it when companies go to host it.

Eventually commercially-funded OSS will cannibalize popular Indie OSS projects who wont be able to compete with a team of dedicated full-time engineers who are not at risk of suffering the same burnout as they have more resources and are developing it as part of their day-to-day giving them the spare capacity to produce docs, polish and marketing materials and can offer maintenance/support that's often lacking in OSS projects.

TL;DR future is grim as an Indie OSS Software developer.

Re:Moment().endOf(‘term’) by selecsosi on Wednesday July 27, 2016 @07:21PM (#12177252)
People like to give people like Linus a hard time, but things like this serve as a reminder of how hard it is to head an open source project.

I have gotten tremendous utility out of Moment and glad to hear that the creator and the project have a amicable path forward. Burnout is no joke, and it is hard to fight in the face of such a successful project when we judge our own worth on the quality of our work.

Re:Moment().endOf(‘term’) by drinchev on Wednesday July 27, 2016 @03:31PM (#12175825)
I've always wondered about how does a project of this magnitude can be financial benefit to the author / maintainers.

Let's say that sometimes money could solve problems ( even with mental health and chronic condition of a family member ). Does this mean that if "moment.js" was a some sort of a huge money income we would've seen the author maintain his role?

Re:Moment().endOf(‘term’) by jrpt on Thursday July 28, 2016 @03:15AM (#12178822)
Yes. As someone who's written popular open source before, I can say that if it made me money, I would've happily invested more time into it. Instead, it just brought me lots of thankless work, which caused me to abandon it.

Funding would go a long way towards making open source better. It doesn't solve everything, but it actually would make a huge difference.

Re:Moment().endOf(‘term’) by cyberferret on Wednesday July 27, 2016 @07:21PM (#12177254)
I want to join in the chorus of "Thank You"s to Tim... moment.js is one of the third party libraries that gets pretty much immediately added to all my web and mobile hybrid apps. So nice to be able to abstract away all those tricky date calculations. I wish him all the best, and am grateful he made my development life easier.
Re:Moment().endOf(‘term’) by vaintee on Wednesday July 27, 2016 @04:39PM (#12176337)
Moment.js is absolutely one of the core utility js libs out there. It has saved me so much time and I believe that the whole industry has been spared of motherlode of bugs in self-made time libs, not to mention time spent implementing/debugging the same. One to rule them all :)
Re:Moment().endOf(‘term’) by stevepotter on Wednesday July 27, 2016 @04:28PM (#12176249)
Mr Wood, thanks for the great library that I use almost daily. I believe that leaving was the right thing to do. Take care of yourself, live your best life, and everything will be fine (including Moment.js).
Re:Moment().endOf(‘term’) by dahdum on Wednesday July 27, 2016 @04:09PM (#12176117)
Moment.js is a fantastic library and he should be exceedingly proud of the work he's done. I would hope he's able to distance himself and contribute again in the future in a more limited role.
Re:Moment().endOf(‘term’) by wrigby on Wednesday July 27, 2016 @03:34PM (#12175853)
Moment is a fantastic library; I used it to build a world clock to go across the top of a display wall UI, and it made dealing with timezones in JS painless. Huge thanks to Tim for writing it!
Re:Moment().endOf(‘term’) by nilliams on Wednesday July 27, 2016 @03:47PM (#12175944)
Thank you truly for moment. It has saved my bacon so many times.

As other commenters have stated, let us know where we can donate, to yourself or to charity. Best of luck.

Re:Moment().endOf(‘term’) by vbezhenar on Wednesday July 27, 2016 @05:00PM (#12176484)
I wonder what goodies might realistically receive author of a popular open source library in return? Resume line leading to a dream work? Donations? Payments for some work (customize, education, etc) from interested company?

I really enjoy programming and I always hoped one day to become experienced enough to start some important project that many people will find useful. But sometimes posts like that terrify me.

Re:Moment().endOf(‘term’) by thoughtpalette on Wednesday July 27, 2016 @04:04PM (#12176080)
Also just wanted to say thank you for the library. It was, and has been a huge boon to many of my projects.

Thanks so much and good luck in your future!

Re:Moment().endOf(‘term’) by kixpanganiban on Thursday July 28, 2016 @04:22AM (#12179023)
This is depressing. As an avid user of MomentJS for the past few years, my thanks and best wishes go out to Tim for starting such an awesome project. Let this be a wake up call for the open source community to realize just how undervalued open source devs are, and how much we take them for granted.
Re:Moment().endOf(‘term’) by ErikAugust on Wednesday July 27, 2016 @04:57PM (#12176464)
Hello Tim,

Thank you for creating Moment.js.

There are two libraries that I always start any project with - one being lodash. The other is Moment.

Re:Moment().endOf(‘term’) by andrewingram on Wednesday July 27, 2016 @06:54PM (#12177084)
Moment is one of those libraries that was for a very long time one of the core utilities for every project I worked on.

The shifting nature of JavaScript has meant i've recently dropped it in favour of something more modular, but that shouldn't diminish the value I gained from it.

Re:Moment().endOf(‘term’) by lcarlson on Thursday July 28, 2016 @09:05AM (#12179904)
What alternatives do you reach for these days?
Re:Moment().endOf(‘term’) by maggiepint on Sunday July 31, 2016 @01:23AM (#12195849)
If people are going to go to one of our competitors, it's usually Date-fns. It's a quality library, but it doesn't have a date parser. I personally think that this is an essential part of a javascript date library given how unreliable the JS date parser is, but then I do maintain Moment. JS Joda is another option that recently came on the scene. That one is worth checking out, as it ports JodaTime, which is a sweet library, to JavaScript.
Re:Moment().endOf(‘term’) by kin on Wednesday July 27, 2016 @04:36PM (#12176319)
Thank you so much Tim for such a fantastic library. I can honestly say that I use it more than the libraries that inspired it (underscore/lodash).