{"adoption": {"forks": 431, "observed_at": "2026-08-28T04:04:51.102743+00:00", "stars": 1482}, "canonical_url": "https://ross.abutalabs.com/products/pharo", "card": {"archived": false, "artifact_type": "application", "description": "Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.", "domain": ["programming-languages", "developer-tools", "cross-platform"], "enriched": true, "function": ["programming-language", "interpreter", "developer-tools"], "health_score": 93, "homepage": "http://pharo.org", "language": "Smalltalk", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["pharo-project/pharo"], "name": "pharo-project/pharo", "platform": ["cross-platform", "windows"], "pushed_at": "2026-08-26T12:33:22+00:00", "repo": "pharo-project/pharo", "stars": 1482, "tags": ["smalltalk", "live-programming", "reflective", "ide", "object-oriented", "image-based", "dynamic-language", "linux", "macos"], "topics": ["pharo", "reflective", "language", "tools", "bootstrap", "object-oriented-programming", "live-programming", "mit"], "urls": [], "use_cases": ["learn object-oriented programming with a live Smalltalk environment", "prototype applications with immediate feedback and live programming", "build server-side applications with a minimal headless Pharo image", "explore reflective metaprogramming and dynamic language internals", "teach programming courses using the free Pharo MOOC", "debug running systems by editing code on the fly"], "what_it_is": "Pharo is a pure, reflective, dynamically typed object-oriented programming language in the Smalltalk tradition, shipped with an immersive live IDE and a large standard library. This repository contains the sources of the Pharo image, which is bootstrapped and run on a separate virtual machine.", "when_to_avoid": ["you need a mainstream language with large hiring pools and ecosystem", "you require static typing or compile-time guarantees", "you want a conventional file-based workflow rather than image-based development", "your deployment target depends on libraries outside the Pharo ecosystem"], "when_to_choose": ["you want a pure object-oriented language with everything being an object", "you value live, image-based development with an exceptional debugger", "you need an open-source (MIT) full-stack language and environment", "you are teaching or learning OOP with rich free books and MOOCs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pharo", "repo": "pharo-project/pharo", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.102743+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:08.597382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "329a65ebf20b0a6b0c1484d4ea141811f746cbc8bde7eb5f04b987210ab9ab42", "fetched_at": "2026-08-28T04:04:51.102743+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pharo-project/pharo"}, {"content_hash": "7cd60ea7beaa1d26f4a7eebba3fd3c6687663c05e0624c3d93a497d91067f68d", "fetched_at": "2026-08-29T11:40:50.178892+00:00", "kind": "homepage", "missing": false, "url": "http://pharo.org"}, {"content_hash": "61bab2e339d75bb79678f0e9b0f36428b056f86e06c2e3617c7d6693a07274e4", "fetched_at": "2026-08-29T11:40:50.183504+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/documentation"}, {"content_hash": "59fe6fcbb96db3872eaaa6dd78b7ef8cec263714877bc1decdff35f19446bd04", "fetched_at": "2026-08-29T11:40:50.185439+00:00", "kind": "site_page", "missing": false, "url": "https://pharo.org/about"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 28}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3691, "days_push": 7, "days_rel": 433, "gap_med": 33, "n_releases_24m": 2}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}