Hacker Newsnew | past | comments | ask | show | jobs | submit | neongreen's commentslogin

> Even though I acknowledge that "written in Rust" probably means the tool is relatively new, not buggy, and easy to use.

I genuinely chose the language for one of my projects based on this reasoning. I want to be in the nice UX gang.


I have the same feeling. I got used to infrastructure being run as a democracy, not merely “source available under GPL/BSD/MIT”. (It’s a big thing to want, sure, but I don’t mind wanting big things.)


> database of functions

This is exactly what Unison (https://www.unison-lang.org/) does. It’s kinda neat. Renaming identifiers is free. Uh… probably something else is neat (I haven’t used Unison irl)


A lot of things are neat because of this. Refactoring becomes trivial and safe. If you do not change the type of the refactored function, you can safely do a batch replace and everywhere the old function was used, the new one will be used after that. If you do change the type, the compiler interface will guide you through an interactive flow where you have to handle the change everywhere the function was being used. You can stop in the middle and continue later... and once you're done you just commit and push... all the while the code continues to work. Even cooler, perhaps: no unit test is re-run if not affected. And given the compiler knows the full AST of everything , it knows exactly when a test must run again.


I tried it out. Fascinating language and a completely different paradigm. The language itself is familiar, but the structure of the program is different - no files – all functions are in a database and their history. I found the language a bit difficult to navigate, but that is probably because of my experience of work with files, and having tools based on files.


A promise of money in the future is worth less than getting this money now. Present value (PV) here would be - how much you would pay now to get $X after T time.

Turns out that sum of PV($X in 1 year) + PV($X in 2 years) + … converges even though the series is infinite. Look up “perpetual bonds”.

The value of $10 paid annually forever is probably $200-500 depending on [things].

Source: I work in a bank but I’m also shit at finance so take this with a large grain of salt.


But this would only converge if you assume the fees will stay fixed or at least grow more slowly than the discount rate.


I agree, although if a business decides to close a service could it get tricky? What if all other providers charge much more and the provider can't sell your domain on to them to manage? Or they sell it on to an unscrupulous provider? A yearly fee means they can't get all the cash up front and then run.


We’re talking about the cost to save a <1KiB database record. The only reason this doesn’t exist is that the entire TLD ecosystem is a rent seeking enterprise.


I learned about the `scoping` package today. Idk if it works exactly as I expect from other langs, though.


I’ll go a few steps further:

- it’s only kinda open source if it’s not on GitHub,

- it’s definitely not open source if it’s not in Git,

- but it can regain its open sourceness if it has an open Discord and the devs are hanging out there.

Here, all my heuristics exposed. (I’m not claiming they’re true or sensible, just saying what my brain thinks.)


The insanity of requiring an open source project to be hosted on a proprietary for profit Microsoft social platform with git hosting makes my head hurt.


I started a `#shitty-server-suggestions` channel in one of the Discords I'm in and it's my favorite type of channel. Now we have the same thing online! I'm genuinely happy


At work I’ve been using jj for the internal Standard Chartered monorepo (6.5 MLOC). I didn’t ask anyone, just installed and started using it. Git compatibility is a killer feature.

(if anyone from SC is reading this -- search our wiki for "Jujutsu" and come say hi!)

Pretty much a strictly better experience than git so far — I’m not going back. `jj undo` is something that I expect in every program now and get vaguely annoyed it's not there.

Not having index/staging is great. Checking out another branch, switching to work on another thing, fixing a typo in an unrelated module, etc are all frictionless. "I'll insert a new commit five-commits-ago, do the refactoring there, and resolve conflicts" turns out to be much nicer than "I'll do the refactoring here and carefully stage it hunk-by-hunk". (I get distracted a lot -- maybe if you aren't tempted by shiny refactorings, this isn't a big deal for you.)

The merge story is also great. I have a commit with multiple parents. I can add more parents to it, change parents, rebase it somewhere, move it around. I have no idea how "rebasing a merge" works in git, but I'm afraid to try. In jj I don't care.

There are a few issues with jj that happen to not be a big deal for me, but I can imagine they could be a dealbreaker for someone else:

- No submodules support (yet)

- No LFS support (yet?)

- Doesn't track renames (yet?)

- When you do `git pull` with rebase, git skips duplicate commits -- this is great if something got rebased/amended on the remote. I was always suspicious that `git pull` just works even if I rebased the branch remotely, and now I know why it works. jj doesn't handle this yet. Not a big deal unless two people collaborate on a branch and want to do it the jj-way with rebases of everything.


have you experienced particularly slow pushes with large repositories at all, and if so were you able to resolve them?

I did some profiling & it looks like the issue lies with `libgit2`, but I haven’t been able to replicate the issue outside of that work codebase[0].

[0]: https://github.com/martinvonz/jj/issues/1841#issuecomment-23...


No slow pushes but I’ll be on the lookout for them.


This actually sounds like a very neat idea. Do you know any services / software companies that operate like that?


Btw — how hard are these problems nowadays? Back then, 8 top Soviet students solved only half of them in a month — has anyone tried giving them to students now?


They seem a lot easier than USAMO problems, or even Putnam problems. I suspect that top students nowadays could easily solve them all in a day.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: