Skip to content

Link to Nixcademy lazy evaluation article#1192

Merged
hsjobeki merged 1 commit intoNixOS:masterfrom
mightyiam:nixcademy-lazy-eval
Dec 25, 2025
Merged

Link to Nixcademy lazy evaluation article#1192
hsjobeki merged 1 commit intoNixOS:masterfrom
mightyiam:nixcademy-lazy-eval

Conversation

@mightyiam
Copy link
Contributor

No description provided.

@mightyiam mightyiam marked this pull request as ready for review December 21, 2025 13:28
@mightyiam mightyiam requested a review from a team as a code owner December 21, 2025 13:28
Copy link

@hsjobeki hsjobeki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After reviewing the full page, I have concerns about its suitability for nix.dev's recommended reading section.

The topic itself seems suited for the general nix language sections. Laziness is a language property, which can help to understand how other systems work. Not only module-system or overlays.

While technically correct and valuable, the article seems to have a marketing intention designed to drive course enrollment, not pure educational content, in contrast to all the other external links on nix.dev

The target page has multiple commercial interests:

  • Large "Get Online Nix(OS) Classes" section with course promotion
  • Newsletter signup forms ("Receive Monthly Nix(OS) Blog Digests")
  • Multiple links to shop.nixcademy.com
  • Certificate imagery and training package promotion

This is a new kind of external reference. Most of our current external references are purely educational.

While I appreciate the technical quality and Jacek's expertise, I recommend against merging this PR because the linked content is structured as a marketing funnel for commercial training services, which conflicts with nix.dev's mission to provide community-focused educational resources. I'd like to separate corporate concerns from community focused learning experiences.

This should be a political decision to stay neutral.

What do others think?

cc @djacu (@NixOS/marketing-team)

@mightyiam
Copy link
Contributor Author

It's not a link to malware. Let people decide for themselves what amount of marketing they're willing to put up with in the content that they consume. Don't make this decision on their behalf. That's being neutral. That's my two cents.

@fricklerhandwerk

This comment has been minimized.

@thilobillerbeck
Copy link

Second this. I think we have to make clear separations on corporate involvement and community content. While I certainly agree people should reflect on their consumed information, we should fill resources dedicated to clear communication inside the community with such content only.

Additionally, mixing in content from parties with a financial incentive without a upfront proposed rule-set (e.g. if someone gives the foundation x amount of money, they can do a blog post), then complaints will come up. Other companies will ask themselves: "hey, we can do that as well" and over time things will get more overloaded and harder to navigate.

It's great what Jacek is doing with his work and his involvement, but I just think documentation is not the right context to link to from.

@tfc
Copy link
Contributor

tfc commented Dec 22, 2025

This is a new kind of external reference. Most of our current external references are purely educational.

With all due respect:

My opinion is that these products and companies and the hard-working people behind them are great and provide value for the community with both their services and the free software & docs without forcing anyone to anything.

So does the free Nixcademy content.

If you reject this PR, please consider also removing those links. This is not fair.

@hsjobeki
Copy link

hsjobeki commented Dec 22, 2025

i might have viewed this to restrictive indeed. The problem is that the topic was never properly discussed afaik.

From my understanding most external links in nix.dev (apart from those to the nix and nixpkgs manuals) should not be here. If they contribute something substantial, a PR of the same content would add it to the version control and give the community maintainence control over it.

There is more effort involved to create a potentially bigger PR than adding a link. However accepting lots of those links, lead to documentation growing in blogs and other websites instead of in PRs to nix.dev.

I think this is actually okay to merge after normal review since we have so many commercial links in place already. I might create an issue to discuss pruning them later.

@mightyiam
Copy link
Contributor Author

Thank you for looking into it, @hsjobeki. Is there anything I can do?


- [What You Need to Know About Lazy Evaluation in Nix, Nixcademy](https://nixcademy.com/posts/what-you-need-to-know-about-laziness/) (Jacek Galowicz, 2024)

Understanding Nixpkgs overlays and the module system requires an understanding of lazy evaluation and fixed-point recursion. This guide explains all these, in order.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest removal of the second sentence. This doesn't really make sense here.

Add a dedicated chapter about laziness in the language section where it belongs, rather than front-loading this prerequisite claim in the reading list. Understanding Nixpkgs overlays and the module system requires understanding the language first, which is in https://nix.dev/tutorials/nix-language.html

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've struggled to understand what exactly I am asked to do. Here is my best guess, just pushed as an additional commit. Is this it, or was I supposed to keep some of that sentence? I read your suggestion about the addition of some chapter about laziness as what would be an ideal contribution with regards to this topic, but not as a practical request for this PR. Please correct me if I'm wrong.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. I was describing the ideal solution. In case someone wants to make another PR, I'll add the remaining problems as issues after the holidays

Copy link

@hsjobeki hsjobeki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved from my side.

Removal is planned as soon as we have a native chapter about lazyness

@hsjobeki
Copy link

@mightyiam could you squash your two commits?

@tfc
Copy link
Contributor

tfc commented Dec 25, 2025

Removal is planned as soon as we have a native chapter about lazyness

anakin

@hsjobeki
Copy link

hsjobeki commented Dec 25, 2025

Removal is planned as soon as we have a native chapter about lazyness

I didn't intend to treat any external link differently. This is about the content that should be upstreamed which makes the link redundant. I want to get rid of all of the externals eventually, as mentioned.

Meme appreciated - please continue this discussion in the issue I created:
#1194

@hsjobeki hsjobeki enabled auto-merge (rebase) December 25, 2025 22:42
@hsjobeki hsjobeki merged commit c6ae096 into NixOS:master Dec 25, 2025
4 checks passed
@fricklerhandwerk

This comment has been minimized.

@mightyiam mightyiam deleted the nixcademy-lazy-eval branch December 26, 2025 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants