HN user

dbdr

381 karma
Posts2
Comments204
View on HN

"ads will no longer look like ads" (in the future). Ads are clearly marked in the first step, but will likely be more and more blended over time (or worse, biasing the model and therefore the output itself). That's the logical future, because that's better for the advertiser, which is the paying customer.

That already happened on Google search: https://news.ycombinator.com/item?id=49003372

My point is that this was a minority of 46.7% making that decision (because of a technicality that has been pointed out already). In a dictatorship, a minority of 1 against a million or more makes all the decisions. Even though you can say 46.7% and 0.0001% are both below 50%, it's missing a lot of nuance to claim they are of the same nature.

I don’t like the Rust culture. There’s no better way to put it. Every time I’ve interacted with them or hear how they talk about Rust, I just don’t like it.

I wonder if it's not that different people have entirely different experiences:

If you are outside the rust community, you'll mostly interact in the context of language flame wars, "why don't you just rewrite it in rust", etc. That is, you interact with the (small) part of the rust community that is most likely to want to dismiss other languages and want to brag.

I consider myself in the rust community, on reddit, the rust forum, etc, and I find it extremely well-meaning, inclusive, supportive of beginners, thoughtful, and generally a very pleasant bunch.

Even in C++, with appropriate rules, restrictions and discipline you can write programs that are guaranteed to be at least as safe as any Rust program

If by discipline, you mean running something akin to the borrow checker in your head, that's essentially tautologically true. The issue with that is that it's mentally draining and/or you will still make mistakes sometimes.

You are assuming an infinite productivity boost, i.e. that no programmers at all are needed to make programs.

A more realistic scenario is that programmers are still needed in the foreseeable future (for some definition a what a programmer is, even if it's "understands software enough to be able to write good prompts and judge the results"). So the question is how the productivity boost compares to the increase in the amount of software being made.

That's revenue though. Fixed costs for hardware is probably much higher. If we looked at profits, the percentages would probably look quite different.

Agreed. The problem is that people are used to do search, which returns hits from clearly identified sources. Suddenly, Gemini is interpreting your query and generating its own response. It's an entirely different product. If I expect to find a source, this was just wasted inference. It's especially problematic that the LLM result is the top result, since we all know how much that matters.

It's fine to have Gemini as an option, it's also fine to have a combined result page, that should just be something people are able to chose if they want that (even persistently if they want). It should just not be the default.

the misguided idea among some that as long as a dependency isn't through FFI, it doesn't count as a dependency, is one of the things I dislike the most about Rust culture

I have not heard that idea a single time. There's definitely the idea that FFI dependencies "count more" / add more baggage (because there's a bigger risk that the build fails, it's harder to investigate memory safety, ...). Absolutely not that a non-FFI dependency "does not count".

That's absolutely correct. Wild to see it downvoted without explanation, while you preemptively mentioned the tradeoff that you do need to worry about correctness in that case (just as much as in C/C++), but that only applies to a small part of your codebase, so it's still a huge benefit.

The only downside is that unsafe rust is more verbose than C/C++.

If you are the 'systemizer' type and like to have an extremely precise mental model of the thing you write down to the last bit, nothing beats C++.

I would say the same thing of Rust.

[meta] I was surprised this fell off the front page. The post has "131 points, 3 hours ago, 39 comments" and sits at rank 55. Number 2 on front page has "41 points, 4 hours ago, 0 comments". I don't want to assume something nefarious without reason, but that seems counterintuitive. Are there other parameters that can explain this ranking?

One issue with this is that it's a non-peer-reviewed critique of a peer-reviewed scientific article. It's of course still possible that the critique is correct and the article is wrong. However, you'd need to deeply understand this critique, and be at least as qualified as the reviewers to be able to convince yourself of that (or have a good reason to believe the reviewers deliberately accepted a flawed paper). Am I missing something?

This paper is relevant:

Energy Efficiency across Programming Languages: How Does Energy, Time, and Memory Relate?

https://greenlab.di.uminho.pt/wp-content/uploads/2017/09/pap...

This is the main summary table:

    Energy                  Time                    Memory
    (c) C 1.00              (c) C 1.00              (c) Pascal 1.00
    (c) Rust 1.03           (c) Rust 1.04           (c) Go 1.05
    (c) C++ 1.34            (c) C++ 1.56            (c) C 1.17
    (c) Ada 1.70            (c) Ada 1.85            (c) Fortran 1.24
    (v) Java 1.98           (v) Java 1.89           (c) C++ 1.34
    (c) Pascal 2.14         (c) Chapel 2.14         (c) Ada 1.47
    (c) Chapel 2.18         (c) Go 2.83             (c) Rust 1.54
    (v) Lisp 2.27           (c) Pascal 3.02         (v) Lisp 1.92
    (c) Ocaml 2.40          (c) Ocaml 3.09          (c) Haskell 2.45
    (c) Fortran 2.52        (v) C# 3.14             (i) PHP 2.57
    (c) Swift 2.79          (v) Lisp 3.40           (c) Swift 2.71
    (c) Haskell 3.10        (c) Haskell 3.55        (i) Python 2.80
    (v) C# 3.14             (c) Swift 4.20          (c) Ocaml 2.82
    (c) Go 3.23             (c) Fortran 4.20        (v) C# 2.85
    (i) Dart 3.83           (v) F# 6.30             (i) Hack 3.34
    (v) F# 4.13             (i) JavaScript 6.52     (v) Racket 3.52
    (i) JavaScript 4.45     (i) Dart 6.67           (i) Ruby 3.97
    (v) Racket 7.91         (v) Racket 11.27        (c) Chapel 4.00
    (i) TypeScript 21.50    (i) Hack 26.99          (v) F# 4.25
    (i) Hack 24.02          (i) PHP 27.64           (i) JavaScript 4.59
    (i) PHP 29.30           (v) Erlang 36.71        (i) TypeScript 4.69
    (v) Erlang 42.23        (i) Jruby 43.44         (v) Java 6.01
    (i) Lua 45.98           (i) TypeScript 46.20    (i) Perl 6.62
    (i) Jruby 46.54         (i) Ruby 59.34          (i) Lua 6.72
    (i) Ruby 69.91          (i) Perl 65.79          (v) Erlang 7.20
    (i) Python 75.88        (i) Python 71.90        (i) Dart 8.64
    (i) Perl 79.58          (i) Lua 82.91           (i) Jruby 19.84

GC pauses are not the only reason. At the very least, raw compute performance and lower memory usage are also valid reasons in some contexts.

Learning Rust is more alike to learning a new programming paradigm (e.g. functional when you only know imperative) than a new language with different syntax only. If you ignore that and try to jump directly to writing code more or less the same way as you used to, it will be painful. So take it slow and follow along with The Book (https://doc.rust-lang.org/book/). It all makes sense eventually and is very much worth it!

The commit message just said it reverted a change from another commit because there was "no benefit". From the patch itself, it is not at all evident that this is a fix for a critical security bug.

If the commit message says it fixes a security bug, then bad actors immediately know there's a possible exploit there. So maybe it's intentional? (not familiar with the policy for this)

Stopping the action is not the only reason to quit a job you deeply disapprove of. There's a related anecdote in the book Man's Search for Meaning by Viktor Frankl. From my memory: a man working for the US embassy in Japan was unhappy and doing psychotherapy. The therapist was trying to see if his issues with his boss had something to do with his relationship to authority, digging into his relationship to his father, etc. Turns out, he was just in deep disagreement with the policies he had to enforce, and quitting solved the issue.

Quitting a job you think is harmful (or even maybe meaningless) can be good for yourself, in addition to the morality question.

If that's the right approach, then it would be useful to make that library public as a crate, because writing such hardened code is generally useful. Possibly as a step before inclusion in the rust stdlib itself.