Hacker News new | past | comments | ask | show | jobs | submit | tkz1312's comments login

I have very similar feelings but in the exact opposite direction :)

The y combinator is a beautiful and satisfying thing that brings much joy when studied, the org is a bunch of cringe silicon valley vc types intent on owning the world…


And yet you're here?

I mean basically everything is a more convenient rust...

Most rust nerds just like ADTs and don’t really want manual memory management.


Looks very cool. Seems to have a very similar feature set to nixos, curious how they compare?


Nix is declarative, this one is imperative.


To précis my earlier comment:

What does that mean, and why should anyone care?


roc is the language most rust nerds really want but don’t realise yet. functional, modern tooling, fast enough for almost everything (~ go / swift), and without the insane complexity and cognitive overhead of the borrow checker.

So excited to see it continue to thrive and grow.


Automatic memory management seems like an antifeature if you look from a systems language perspective (rust).

And I'd argue the borrow checker reduces the cognitive overhead.


My point is more that many rust programmers like rust because it’s an ML not because of the borrow checker. Most cli apps / web services are probably better off with a high performance managed runtime (go & swift are good examples of imperative languages that have successfully made similar tradeoffs).

There do of course exist many important use cases where a better c++ is actually what you want, and the complexity tax of that is worth paying.


Not when one looks it from the perspective from Xerox PARC, ETHZ, DEC/Olivetti, Microsoft Research, Apple on systems programming.


Sure, you can cherry-pick your perspective to fit your needs.


I'm a rust nerd and love roc, the problem is my employer won't let me use either.


Does Roc have escape hatches for mutability? That's something I value in Rust, good escape hatches from the borrow checker, so if something gets too difficult, you can just `Arc<Mutex<RefCell<T>>>` it.


I don't think so (could be wrong), but it does perform optimistic mutation on your functional code.

There is a talk somewhere where Richard "demos" this.


yeah that seems cool! I'm a little skeptical of pure functional programming with no escape hatch. I rarely need the escapes in Rust but when I do, I really do.


It isn't "no escape hatch". It is platform dependent escape hatches. A platform can give you full access to mutation and libffi if it wants.


It should be possible to have a platform that has a mutable reference with an API like this:

    main = 
        x = pf.NewRef!
        pf.Write! x 5
        y = pf.Read! x


Haskell:

    import Data.IORef
    
    main :: IO ()
    main = do
      x <- newIORef (0 :: Int)
      writeIORef x 5
      y <- readIORef x
      print y


That's right, although the Rust equivalent of that would be more like `Future<Arc<Mutex<RefCell<T>>>>` than `Arc<Mutex<RefCell<T>>>` - so the ergonomics would be a bit different!


having the raw power of nix/nixos hidden behind a normie friendly UI layer has insane potential. It basically eliminates any potential for horrible dependency conflicts and gives users an undo button for all but the deepest (i.e. bootloader / firmware) level changes to their system. nixpkgs is also the most comprehensive and up to date linux package set by a huge distance.


nixos is unmatched as a server OS, and a lifestyle choice as a desktop distro


These amounts are hilariously low. $150k for a full gmail account takeover is peanuts compared to the potential impact, and the $4k for PII leak on nest.com is frankly just insulting.


There is a thriving “grey” market for vulnerabilities, where brokers buy vulns and sell them on to e.g. intelligence agencies. This is well established and unlikely to cause much legal difficulty for the bug finder.


Haskell really shines when you want to write high level, declarative code. Performance when using this style is generally fine for CLI / web backend style stuff. It has the tools to write pretty fast low level code, but they’re fairly clunky and if that’s all you want to write it’s probably not going to be the best tool for the job. They’re pretty nice if you have a few focused hotspots you need to optimize.

It has pretty nice CPU profiling tools, so finding and optimizing CPU hotspots is fairly pleasant. Tracking down rouge memory leaks (which lazy evaluation makes more likely) on the other hand can be extremely frustrating.

If you look at the benchmarks game results [1], the fastest haskell implementations are generally between 2 and 5 times slower than the fastest c versions, and will be written in a highly imperative style.

[1]: https://benchmarksgame-team.pages.debian.net/benchmarksgame/...


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

Search: