Software Alternatives, Accelerators & Startups

Dhall Configuration Language VS pkgsrc

Compare Dhall Configuration Language VS pkgsrc and see what are their differences

Dhall Configuration Language logo Dhall Configuration Language

A non-repetitive alternative to YAML

pkgsrc logo pkgsrc

pkgsrc is a framework for building over 17,000 open source software packages.
  • Dhall Configuration Language Landing page
    Landing page //
    2022-04-27
  • pkgsrc Landing page
    Landing page //
    2023-06-30

Dhall Configuration Language features and specs

  • Deterministic
    Dhall is designed to be a deterministic configuration language, meaning that given the same input, it will always produce the same output. This ensures consistency and repeatability across environments.
  • Type-Safe
    Dhall includes a strong static type system, preventing many common errors associated with misconfigurations. Types are checked at compile time, ensuring configuration values meet specific criteria before deployment.
  • Total Programming Language
    Unlike many other configuration languages, Dhall is a total functional programming language, which means every program written in Dhall will terminate. This prevents infinite loops and other runtime issues.
  • Interoperability
    Dhall can generate JSON, YAML, and other data interchange formats, making it highly interoperable with existing systems that require these formats for configuration.
  • Modular
    Dhall allows for modular configuration files. You can define reusable components and import them across different configurations, promoting DRY (Don't Repeat Yourself) principles.

Possible disadvantages of Dhall Configuration Language

  • Learning Curve
    While Dhall is designed to be simple, the presence of a type system and functional programming concepts can present a learning curve to new users, especially those without a programming background.
  • Tooling Support
    Compared to more established languages, Dhall has less tooling support. Users might find fewer IDE extensions, plugins, or community libraries to assist in development.
  • Limited Ecosystem
    Being relatively new, Dhall has a smaller ecosystem that may lack the breadth of community contributions, such as templates and integration examples, found in more mature configuration languages.
  • Performance Overhead
    The type checking and interpretation of Dhall can introduce some performance overhead compared to more traditional configuration formats like JSON or YAML, which are simpler to parse.
  • Complexity for Simple Configurations
    For simple configurations, the added complexity of Dhall's type system and functional features may be unnecessary, leading to overhead without a clear benefit.

pkgsrc features and specs

  • Cross-Platform Support
    pkgsrc is designed to be a portable package management system and can be used on a variety of Unix-like operating systems, including NetBSD, Solaris, Linux, and macOS. This cross-platform capability makes it a versatile tool for developers working in diverse environments.
  • Consistency Across Systems
    Using pkgsrc allows for a consistent package management experience regardless of the underlying operating system, reducing the learning curve and maintenance overhead for administrators managing multiple systems.
  • Comprehensive Package Collection
    pkgsrc offers a wide range of software packages, providing a robust collection that can meet diverse user needs from scientific libraries to web applications.
  • Quarterly Releases
    With quarterly releases, pkgsrc provides a balanced approach between stability and keeping software up to date, offering users new features regularly while maintaining reliability.
  • Flexible Build Options
    pkgsrc supports a flexible build system, allowing users to customize package builds with specific options or dependencies, tailored to their specific needs or system requirements.

Possible disadvantages of pkgsrc

  • Smaller Community
    Compared to other popular package management systems like apt (Debian/Ubuntu) or yum (RedHat/CentOS), pkgsrc has a relatively smaller community, which might affect the availability of support and community-driven improvements.
  • Potentially Older Software
    While pkgsrc maintains stable quarterly releases, it may occasionally lag behind other systems in terms of offering the very latest versions of certain software, which might not be ideal for users needing the newest features.
  • Manual Configuration
    Setting up pkgsrc might require manual interventions and configurations, which could pose a hurdle for users unfamiliar with its setup process or those who prefer more automated solutions.
  • Dependency Management
    Although pkgsrc is quite capable in dependency handling, some users may find its dependency resolution to be less automatic or seamless compared to other systems which offer more integrated solutions.
  • Performance Overhead
    Because it is designed to be cross-platform, there can be some performance overhead associated with using pkgsrc compared to native package managers that are optimized for specific operating systems.

Dhall Configuration Language videos

No Dhall Configuration Language videos yet. You could help us improve this page by suggesting one.

Add video

pkgsrc videos

pkgsrc on ChromeOS

More videos:

  • Review - Using pkgsrc for multi-platform deployments in heterogeneous environments, G Clifford Williams

Category Popularity

0-100% (relative to Dhall Configuration Language and pkgsrc)
Configuration Management
100 100%
0% 0
Developer Tools
42 42%
58% 58
Software Development
100 100%
0% 0
Package Manager
0 0%
100% 100

User comments

Share your experience with using Dhall Configuration Language and pkgsrc. For example, how are they different and which one is better?
Log in or Post with

Social recommendations and mentions

Based on our record, Dhall Configuration Language should be more popular than pkgsrc. It has been mentiond 96 times since March 2021. We are tracking product recommendations and mentions on various public social media platforms and blogs. They can help you identify which product is more popular and what people think of it.

Dhall Configuration Language mentions (96)

  • Show HN: RealDiff – runtime behavior diffing for pull requests (six languages)
    I love the concept and see the value for refactoring. There is tremendous value in knowing that two implementations are run-time equivalent. I just wanted to share for others that there is a configuration language call Dhall (https://dhall-lang.org/) that has this kind of guarantee as one of its nicest features. See the "Refactor Fearlessly" section. In Dhall, most behavior preserving refactors produce the exact... - Source: Hacker News / 8 days ago
  • Why I stopped writing Serverspec specs by hand
    I built PanInfraSpec to keep my hands off that loop. It's agenerator that takes Dhall inputs and emits Serverspec *_spec.rb files. The Ruby still does the actual checking, but I no longer write it. There is no spec_helper.rb to grow custom matchers in, because spec_helper.rb is generated and I don't edit it. - Source: dev.to / 4 months ago
  • CSS now has an if() conditional function
    An interesting example is the Dhall language: https://dhall-lang.org/ It is a configuration language with general programming features, but it is decidedly _not_ Turing complete. It seems to sit at a sweet spot between "just JSON, no programming convenience at all" and "full-blown programming language with nontrivial toolchain". - Source: Hacker News / 9 months ago
  • Dear GitHub: no YAML anchors, please
    There are languages specifically for writing configs. Like dhall https://dhall-lang.org/. - Source: Hacker News / 12 months ago
  • Microsoft POML – Prompt Orchestration Markup Language
    > I'm thinking what is the missing piece here First, it's cool that you work on it. Creating a new language is not an easy task. I would suggest to try to stand on the shoulders of giants instead of trying to come up with a completely new thing. Have a look at dhall: https://dhall-lang.org/ - it is a language that was created for cases like yours. Or, if you want to make POML a fully fledged language (and turing... - Source: Hacker News / about 1 year ago
View more

pkgsrc mentions (11)

  • Debian isn't waiting for 2038 to blow up, switches to 64-bit time for everything
    > Most open source software packages are also compiled for BSD variants, they switched to 64 bit time_t a long time ago and reported back upstream any problems. * NetBSD in 2012: https://www.netbsd.org/releases/formal-6/NetBSD-6.0.html * OpenBSD in 2014: http://www.openbsd.org/55.html For packaging, NetBSD uses their (multi-platform) Pkgsrc, which has 29,000 packages, which probably covers a large swath of... - Source: Hacker News / about 1 year ago
  • Our Audit of Homebrew
    > https://pkgsrc.smartos.org/install-on-macos/ Note that Pkgsrc is a NetBSD-derived project. * https://pkgsrc.org The Joyent folks leveraged it to allow their customers, who were perhaps not as familiar with Solaris/SmartOS, a larger pool of packages. Pkgsrc was running on Solaris before Joyent, Joyent built on top of it. - Source: Hacker News / about 2 years ago
  • Show HN: Brioche – A new Nix-like package manager
    Https://pkgsrc.org/ from netbsd runs on many systems. - Source: Hacker News / over 2 years ago
  • Installing packages without an internet connection?
    It seems according to pkgsrc.org that pkgin might follow the PKG_PATH environment variable. You're supposed to set PKG_PATH="http://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f '1 2' -d.)/All/", and according to uname(1), -p gives the processor architecture and -r gives the operating system [kernel] release. Source: over 3 years ago
  • pkgsrc.se is no more :(
    It seems like pkgsrc.org hasn’t got the news yet. Source: over 3 years ago
View more

What are some alternatives?

When comparing Dhall Configuration Language and pkgsrc, you can also consider the following products

Jsonnet - A powerful DSL for elegant description of JSON data.

Conda - Binary package manager with support for environments.

YAML - YAML 1.2 --- YAML: YAML Ain't Markup Language

Homebrew - The missing package manager for macOS

Medium - Welcome to Medium, a place to read, write, and interact with the stories that matter most to you.

Yay - Yay is an AUR helper written in go, based on the design of yaourt, apacman and pacaur.