TaskRatchet Programming Language Wars

In Python’s defence it got 2 things that are really cool but completely non relevant for what you want to do:

  • numpy and
  • pandas
2 Likes

I agree with these points in theory, but I really haven’t experienced them in practice. You can decide if that’s because I’m inexperienced, unprofessional, or lucky…

Yes, I’ve experienced this. Though I’ve been working under the assumption that once I understand the system better this will be less of a pain point.

Also, if backwards compatibility is a thing, this becomes harder. :frowning:

1 Like

Yup. These issues can definitely be mitigated. My point was less the issues themselves, and more to point out that there are things that need to be solved and/or mitigated in any of these directions. (It’s a legitimately hard problem!)

Oh, certainly. In all the options we’ve discussed so far this is true. The problems are just practical issues: there’s no theoretical problem here, just it’s a mess in practice.

This may well happen. As I mentioned before, I may well end up writing my own for myself, and maybe also releasing it as open source (if there is interest.) Don’t take that as a commitment though, just as a rough estimation of something that may well happen. So sure.

But yes, it doesn’t really solve the distribution issues.

It stacks up very much like Python. It’s a little bit better (but still in the same ballpark) at 1, has some good options for 2, a bit worse at 3 (because it isn’t typically installed anywhere by default and installing it is trickier than installing Python), also very good at 4, and in my opinion just fine at 5. (Modern day Javascript is surprisingly similar to Python.)

2 Likes

Good news! The alpha is reopening! :tada:

If you aren’t already on board, go ahead and join!

If you were already in the alpha, I’ll be sending you an email letting you know the alpha is back in operation, just in case you miss this post. You should receive your first summary email soon. After that, morning emails should arrive between midnight and 6am your time daily.

See you in the alpha!

2 Likes

I’d still really like to hear an answer to this.

How does one “automatically refactor”?

Also - what in TR currently prevents someone from deleting a task right before the deadline? How is that enforced? What are the current rules on that?

You can pull off refactorings in mere seconds in a language with static typing vs. doing them by hand (which is a tedious, boring and error prone process). Simply because the tooling knows it is the right symbol to touch allows you to rename identifiers, move them into different scopes, extract methods from selected code, change method signatures, organise imports, inline local variables, simplify boolean expressions, …

none of which you can do in e.g. Python. Not reliably at least. And yes what $tool guesses is the correct symbol often is not. I’ve been bitten by this many times. And things like organising imports is just downright impossible in Python without running the actual program.

For details on automated refactoring see Martin Fowler’s book Refactoring: Improving the Design of Existing Code, Addison Wesley 1999.

Or the eclipse help page about its refactoring support.

2 Likes

Update a few years on.

I was reminded of this discussion when a friend recommended this course on Haskell (I’m trying to learn), and I was surprised to see it’s by @byorgey!

As for TaskRatchet, I ended up building V1 of the API in Python. I think at the time it was a reasonable decision, as I was able to build out a stable backend with relative ease and speed.

However now I’m slowly working towards converting the backend to TypeScript. So came around on using a typed language! Though I’m fairly certain some of the folks who weighed in here would probably prefer I use something with even stronger types than TypeScript.

Who knows? Maybe once I’m comfortable with Haskell I won’t be able to resist the urge to port the backend yet again :laughing:

3 Likes

Hey, I’m a professional Haskell dev, feel free to DM me if you need any help or just want to chat.

Unless you have [specialized requirements that I think TaskRatchet doesn’t have], I think you’d be better off building the backend in TS than in Haskell. I use TS for all my personal projects and I enjoy it.

One feature of Haskell that I rather dislike is that I find it very easy to get sucked into the fun of Haskell itself — which is a rich and deep language, with tons of thing to learn, and lots of ways to implement the same thing with different tradeoffs. When writing TypeScript, I almost never experience the urge to write my own libraries. With Haskell, it happens all the time and I end up inventing better ways to [accomplish some subtask] instead of shipping features.

(If you can resist this urge, then I’d say Haskell is mature enough that you won’t necessarily regret choosing it. Business-wise it might still be a bad choice, but if you’re a solo dev, I don’t think it matters.)

If you do want to try Haskell out, it might be a good idea to start with smth like IHP instead of jumping into the ocean-of-choices wider Haskell ecosystem.

3 Likes

That course looks interesting. Are you planning on going through it systematically? Maybe a study group on the forum could be cool? I never was that kind of student, but maybe I’d like to give that a try…

2 Likes

That’s a great idea! Unfortunately learning Haskell is very far on the back burner for me right now (just using Beeminder to ensure it doesn’t completely fall off the radar), so I don’t think I’m currently at a place where I’d be able to commit keeping up with y’all on the course.

1 Like

All my CLI are in bash and/or perl, but I guess I learned to code in the olden days. :joy_cat:

2 Likes