Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)FI
Posts
1
Comments
473
Joined
2 yr. ago

  • It's cloud based though... Not ideal. I get why they had to do that (they didn't want to expose people to the Python infra shit show) but it's still kind of a shame.

    Would be better if they added Typescript support IMO.

  • You're still missing the point. We all understand that definition. We're just saying that it is incorrect use of the word "concurrent". Does that make sense? The word "concurrent" means things happening at the same time. It's stupid for programmers to redefine it to mean things not happening at the same time.

  • You missed the point. He understands all these things you tried to explain. The point is that your definition of the word "concurrency" is objectively wrong.

    You:

    you seem to be doing multiple things at the same time. In reality they are run little by little one after another

    The actual meaning of the word "concurrency":

    The property or an instance of being concurrent; something that happens at the same time as something else.

    Wiktionary actually even disagrees with your pedantic definition even in computing!

    (computer science, by extension) A property of systems where several processes execute at the same time.

    I suspect that concurrency and parallelism were actually used interchangeably until multicore became common, and then someone noticed the distinction (which is usually irrelevant) and said "aha! I'm going to decide that the words have this precise meaning" and nerds love pedantic "ackshewally"s so it became popular.

  • Its definitely best to try and avoid raw pointers, but even if you try really hard I found it's not really possible to get a Rust-like experience with no UB.

    Even something as simple as std::optional - you can easily forget to check it has a value and then boom, UB.

    The C++ committee still have the attitude that programmers are capable of avoiding UB if they simply document it, and therefore they can omit all sanity checks. std::optional could easily have thrown an exception rather than UB but they think programmers are perfect and will never make that mistake. There are similar wild decisions with more recent features like coroutines.

    They somehow haven't even learnt the very old lesson "safe by default".

    If I wanted memory unsafety I think I would consider Zig instead of C++ at this point.

  • Yeah IntelliJ does amazingly without type annotations but even it can't do everything. E.g. if you're using libraries without type annotations, or if you don't call functions with every possible type (is your testing that good? No.)

    Static types have other benefits anyway so you should use them even if everyone in your team uses IntelliJ.

  • In common usage a linter detects code that is legal but likely a mistake, or code that doesn't follow best practice.

    Although static type checkers do fit in that definition, that definition is overly broad and they would not be called a "linter".

    Here is how static type checkers describe themselves:

    Pyright is a full-featured, standards-based static type checker for Python.

    Mypy is a static type checker for Python.

    TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

    Sorbet is a fast, powerful type checker designed for Ruby.

    Here is how linters describe themselves:

    Pylint is a static code analyser for Python 2 or 3. ... Pylint analyses your code without actually running it. It checks for errors, enforces a coding standard, looks for code smells, and can make suggestions about how the code could be refactored.

    (Ok I guess it's a bit redundant for Pylint to say it is a linter.)

    Eslint: The pluggable linting utility for JavaScript and JSX

    Clippy: A collection of lints to catch common mistakes and improve your Rust code.

    Ruff: An extremely fast Python linter and code formatter, written in Rust.

    You get the idea... Linters are heuristic and advisory. Quite different to static type checking.

  • Permanently Deleted

    Jump
  • Honestly I would take a look through a good standard library that provides a lot of algorithms (e.g. C++ or Rust). That has the basics, especially for data structures.

    Also have a go at some hacker rank tests. Especially if you want to learn dynamic programming (abysmal name), they absolutely love that.