{"action":"created","issue":{"url":"https://api.github.com/repos/less/less-docs/issues/324","labels_url":"https://api.github.com/repos/less/less-docs/issues/324/labels{/name}","comments_url":"https://api.github.com/repos/less/less-docs/issues/324/comments","events_url":"https://api.github.com/repos/less/less-docs/issues/324/events","html_url":"https://github.com/less/less-docs/issues/324","id":68136698,"number":324,"title":"For discussion: the term \"lazy loading\"","user":{"login":"matthew-dean","id":414752,"avatar_url":"https://avatars.githubusercontent.com/u/414752?v=3","gravatar_id":"","url":"https://api.github.com/users/matthew-dean","html_url":"https://github.com/matthew-dean","followers_url":"https://api.github.com/users/matthew-dean/followers","following_url":"https://api.github.com/users/matthew-dean/following{/other_user}","gists_url":"https://api.github.com/users/matthew-dean/gists{/gist_id}","starred_url":"https://api.github.com/users/matthew-dean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthew-dean/subscriptions","organizations_url":"https://api.github.com/users/matthew-dean/orgs","repos_url":"https://api.github.com/users/matthew-dean/repos","events_url":"https://api.github.com/users/matthew-dean/events{/privacy}","received_events_url":"https://api.github.com/users/matthew-dean/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-04-13T16:21:04Z","updated_at":"2015-04-13T22:34:10Z","closed_at":null,"body":"The phrase \"lazy loading\" in Less's documentation has been bugging me. The Wikipedia entry for lazy loading says: \"Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed.\"\r\n\r\nIn Less's documentation, we say: \"Variables are lazy loaded and do not have to be declared before being used.\"\r\n\r\nVariables that do not have to be declared before being used is not the same as lazy loading. Lazy loading would be a scenario in which the value is declared *but not initialized* until it is called. Meaning, if the variable were never referenced, it would never have a value. \r\n\r\nI'm not trying to be nitpicky, but it sounds like we're using imperative language to explain a declarative behavior, just to have it make sense to people? However, since lazy loading is a common term in web development (often used for delaying retrieval of images until they're about to be displayed), it gets confusing that it doesn't quite match the same concept. My worry is that in an effort to simplify with a known term, we're actually being misleading and possibly confusing the behavior for people.\r\n\r\nTo me, it would seem what we want to say is that variables have one value per scope block, and that value can be referenced at any point in the same block. Which is sort of saying the same thing, but doesn't use a known term in a slightly incorrect way.\r\n\r\nI believe the language this replaced was Alexis's original description that variables were \"actually constants\", which, unfortunately, was also not exactly true either. I'm just wondering if there's a clearer way to say this."},"comment":{"url":"https://api.github.com/repos/less/less-docs/issues/comments/92518833","html_url":"https://github.com/less/less-docs/issues/324#issuecomment-92518833","issue_url":"https://api.github.com/repos/less/less-docs/issues/324","id":92518833,"user":{"login":"matthew-dean","id":414752,"avatar_url":"https://avatars.githubusercontent.com/u/414752?v=3","gravatar_id":"","url":"https://api.github.com/users/matthew-dean","html_url":"https://github.com/matthew-dean","followers_url":"https://api.github.com/users/matthew-dean/followers","following_url":"https://api.github.com/users/matthew-dean/following{/other_user}","gists_url":"https://api.github.com/users/matthew-dean/gists{/gist_id}","starred_url":"https://api.github.com/users/matthew-dean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthew-dean/subscriptions","organizations_url":"https://api.github.com/users/matthew-dean/orgs","repos_url":"https://api.github.com/users/matthew-dean/repos","events_url":"https://api.github.com/users/matthew-dean/events{/privacy}","received_events_url":"https://api.github.com/users/matthew-dean/received_events","type":"User","site_admin":false},"created_at":"2015-04-13T22:34:10Z","updated_at":"2015-04-13T22:34:10Z","body":"But you do make a point that we could separate the two points and say:\r\n\r\n1. Variables can be referenced before they are \"declared\" (and describing it as something other than \"lazy loading\"). \r\n2. The last declaration of a variable in the current block is the final value.\r\n\r\nI think those are currently separated in the docs anyway, with examples of each."}}