bio

  • 8 Posts
  • 15 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle

  • object oriented

    Python does have OOP but you are not at all forced to use it. You can write code in a functional or even procedural style.

    typing

    I do hate that python doesent have proper support for typing but I think weakly typed variables will actually help beginners as it is less to think about to start off with.

    indentation

    I think there are pros and cons here. In other languages it is considered good style to use indentation anyway.

    I’m sure it is difficult to teach a large class like that though. It was hard enough for me to learn with a much more favourable teacher to student ratio than you probably have. Sorry but honestly I do sympathise with admin as well.



  • NixOS:

    • Largest and most up to date package repository (no need for flatpack/appimage/snap ect)
    • Reproducible
    • Declarative
    • Rollbacks you can select at boot time
    • No dependency conflicts

    I think it will easily be the number 1 distro if/when they can :

    • the steep learning curve (e.g. have a gui installer EDIT: As in a GUI software centre)
    • documentation
    • have more tools use nixos and have nixos in mind (e.g. there are a couple of tools that didn’t work for me because of specific C libraries not beeing present/configured on nixos that are present on other distros. some libraries implicitly expect these to be present).



















  • You might be interested in this article that compares nix and docker. It explains why docker builds are not considered reproducible:

    For example, a Dockerfile will run something like apt-get-update as one of the first steps. Resources are accessible over the network at build time, and these resources can change between docker build commands. There is no notion of immutability when it comes to source.

    and why nix builds are reproducible a lot of the time:

    Builds can be fully reproducible. Resources are only available over the network if a checksum is provided to identify what the resource is. All of a package’s build time dependencies can be captured through a Nix expression, so the same steps and inputs (down to libc, gcc, etc.) can be repeated.

    Containerization has other advantages though (security) and you can actually use nix’s reproducible builds in combination with (docker) containers.