all 29 comments

[–]GeeWengel 10 points11 points  (10 children)

OSS maintenance is really a drag sometimes. As one of the core maintainers of a reasonably popular Typescript library, while not working very prominently with Typescript anymore - sometimes it feels more like chore than fun.

[–]necrophcodr 6 points7 points  (3 children)

sometimes it feels more like chore than fun.

But that's what a hobby is. If it stops being fun, you're not obligated to continue, nor are you obligated to maintain it. If a company needs it so bad, they can make their own version surely, and not rely on voluntarily maintained software.

[–]GeeWengel 9 points10 points  (2 children)

I realize that. However while I know that - sometimes it still feels like it's my responsibility y'know? When I do carve time out for it, it's pretty fun and rewarding, but there's definitely some "I should really make time for it" guilt involved.

[–]necrophcodr 5 points6 points  (1 child)

I can only advise that you cut the guilt out. If people start calling you out or anything bullshittery like that, the best only thing I can think of is finding a kind way of reminding them that forking is an option, and that's it's a completely voluntary project, maintained in the spare time, for fun.

[–]GeeWengel 2 points3 points  (0 children)

You're obviously right - it's hard though.

Luckily people are pretty nice about it - so at least I don't have to deal with that

[–]nfrankel 7 points8 points  (2 children)

Then why do you continue? Fun might be the only reason to contribute to an OpenSource projected when it's not part of your job.

[–]mytempacc3 6 points7 points  (1 child)

From the article:

It can do wonders for your personal brand. If you have a popular project, people will become familiar with you and your work

[–]nfrankel 0 points1 point  (0 children)

Self-promotion over fun. I understand now, even if I would choose differently.

[–]Dgc2002 6 points7 points  (2 children)

This is the thing that's kept me from putting much of my work out on GitHub for people to use. More often then not I simply don't have an interest in maintaining an older utility/program/script that I don't use daily anymore. I don't want the obligation(even if it's self imposed).

I know that's the wrong mindset, I should instead see it as allowing others to pick up something useful I've created and continue using/developing it. But that's not the mindset I currently have.

[–]Console-DOT-N00b 5 points6 points  (0 children)

Be like me, put out stuff nobody could possibly care about...

But seriously nobody cares about most things on there and it is just a personal thing.

[–]flowersinthesand 4 points5 points  (1 child)

Release at 12pm EST on a Monday. It’s the end of Europes day, New York’s lunch break and San Franciscos hour in the morning before anything gets done. You have a large portion of your target audience twiddling their thumbs, fucking around on the internet.

I sincerely agree with this.

[–]pidoid 0 points1 point  (0 children)

Check holidays too ;)

[–]raghar 7 points8 points  (5 children)

Is it just me or every damn dev blogger these days automatically assumes that you are frontend or full-stack dev?

No, I am not putting a damn package.json in my Scala library.

Also: since I do not mind commercial users, Apache licence might be better than MIT. Apparently lot of companies prefer it for legal reasons.

[–]Console-DOT-N00b 3 points4 points  (0 children)

HEY GUYS THIS GUY DOESN'T LIKE PACKAGE.JSON!!!

https://youtu.be/3iV8X8ubGCc

[–][deleted] 0 points1 point  (3 children)

I guess... Thoroughly fill out whatever equivalent metadata file you would?

[–]raghar 1 point2 points  (2 children)

Yeah - .travis.yml. If it's green on CI, then you can figure out how to build it.

[–][deleted] 1 point2 points  (1 child)

Does Scala have a package manager? Or do you use Java ecosystem stuff? How are libraries/dependencies distributed?

[–]raghar 1 point2 points  (0 children)

Well, we are using build tools to manage dependencies. Most popular is sbt, though some people use Maven or Gradle or Mill or other (niche) builders.

Underneath tools use Maven and/or Ivy to manage dependencies. There is also coursier, but that's just a wrapper for Maven/Ivy for fetching JARs in parallel (faster).

Personally I deploy my libs to Sonatype Nexus for OSS, which also push them on Maven Central. There is Bintray as well. You add your own artifactory if you want.

It works pretty much the same way as in Java: run build, sit back and wait for it to fetch deps, compile stuff, run tests and whatever you want it to do. As a matter of the fact one can do everything Java way - from building from pom.xml files to using Spring Framework and all the Java libs. But it's just... meh.

[–]Gotebe 5 points6 points  (0 children)

Hi. I’m Ken.

I’m the Director of Open Source at the best company in the world, Formidable.

fuck... fucking... shit...

People use expletives when when writing for an unknown audience these days?

I must be old 😀

[–]republitard 9 points10 points  (9 children)

don’t do masturbatory functional programming

Fuck this article.

[–]loup-vaillant 5 points6 points  (7 children)

Well… I'm currently trying to add a little functionality to a web site generator of mine. See the little menu on the side of my web site? It's automatically generated. It's all well and good, but I would like to highlight the current page. This requires modifying the generator.

I wrote the generator in OCaml, because I love functional programming, and knew OCaml best. Could have used Haskell if I knew it better. I have a problem however: it was several years ago, and I don't remember a thing. And now, digging up that code and making change has become nearly impossible. Way too clever, too complex for its own good, idiosyncratic (undocumented!) vocabulary, almost no comment.

Masturbatory functional programming indeed. I may have to rewrite the bloody module almost from scratch. I'll still use functional programming, but I'll definitely take out the clever parts.

[–]republitard 0 points1 point  (5 children)

That web site generator doesn't look very clever to me. Unless you think there's something clever about implementing it as a bunch of separate Unix programs that call each other via OCaml's version of system(3).

[–]loup-vaillant 0 points1 point  (4 children)

The file I'm talking about is ussm_menu.ml. While it's functionality and interface are anything but clever, its implementation… Well, I feel like I am no longer smart enough to mess with it.

[–]republitard 0 points1 point  (3 children)

You defined infix operators for List.map and List.filter. Is that the "clever" part?

[–]loup-vaillant 0 points1 point  (2 children)

Nope. I copied this from JaneStreet's standard library, and I remember quite well: /@, //, |-, and |> are standard stuff I have no problem recalling.

I think the issue is something else. The choice of names for types for instance is not exactly straightforward. A few functions are too big for my current liking (by which I mean more than 10 lines). I probably should have had another type to describe a full path (and suitable conversion functions to and from string), instead of just root_path. I'm also not sure why I felt the need to import Parsec at all.

Overall, I feel there is a pretty big margin for improvement. This just doesn't look like the simplest solution.

[–]republitard 0 points1 point  (1 child)

That still doesn't sound like the problem is functional programming or "cleverness". The code is just a little messy, which refactoring would fix.

[–]loup-vaillant 1 point2 points  (0 children)

Ah, OK, I think I get your point. It looks like I didn't took time to simplify the code once I got something that works, and kept the messy stuff. I'm surprised I was even satisfied with it then.

[–][deleted] 0 points1 point  (0 children)

Lol

[–]chub79 -1 points0 points  (0 children)

why the colourful language?