Pkl was built using the GraalVM Truffle framework. So it supports runtime compilation using Futamura Projections. We have been working with Apple on this for a while, and I am quite happy that we can finally read the sources! https://github.com/oracle/graal/tree/master/truffle Disclaimer: graalvm dev here. Edit: typo
Pkl, a Programming Language for Configuration
541–550 of 598 posts
Re: Pkl, a Programming Language for Configuration
#542Re: Pkl, a Programming Language for Configuration
#543Earlier quoted context omitted.
Don't leave is hanging, how was your experience? (Pkl, not Apple :p)
I absolutely loved it and I’ve been extremely impatient to see its release. I used it to generate k8s manifests, Terraform, all infra config files. Very flexible and fun to use
Are there any reasonable examples of such?
Re: Pkl, a Programming Language for Configuration
#544Earlier quoted context omitted.
> So what we are missing now is a 500GB framework that can write the config file for the programming language that is writing a config file for the actual program I wish to use. That exists since 1960. It's called LISP. The e.g. https://guix.gnu.org/ uses with great success, the Guile Scheme dialect of LISP, to be precise. And FYI the "framework" is: $ ls --human-readable --size $(readlink $(which guile)) 16K /gnu/st…
Guix/Nix can use dynamic linking without risk since they know the exact dependency closure. It's not fair to compare a statically linked executable to a dynamic one.
guile=$(readlink -f $(which guile))
sizes=$({ echo $guile; ldd $guile|grep /|sed 's+^[^/]*\(/[^ ]*\).*+\1+'; }|xargs -n 1 readlink -f|xargs du -ab|cut -f 1)
sumsize=0
for size in $sizes; do
sumsize=$((sumsize+size));
done
echo $sumsize
Gives 9041632 here.Re: Pkl, a Programming Language for Configuration
#545Earlier quoted context omitted.
Maybe not always, but surely in most cases of too complex a config, it is a case of ad-hoc grown config, representing what one wants to actually configure badly, and/or underlying abstractions of the thing one wants to configure matching badly what one wants to do. In most cases it would be good to take a step back, or multiple ones at that, and really ask oneself: "What is it, that I actually want to configure here?…
Sure. There are undoubtedly a lot of config formats that are overly complex. But sometimes the complexity is irreducible. Kubernetes is one such case. The model is very well thought out, and just about as simple as it could get without removing functionality. It has sensible defaults, built-in versioning, well-defined schema etc. But if you want to describe a complete installation of a distributed system with many he…
Re: Pkl, a Programming Language for Configuration
#546Re: Pkl, a Programming Language for Configuration
#547Re: Pkl, a Programming Language for Configuration
#548Earlier quoted context omitted.
[flagged]
Are you really this upset because people don't know a 60 year old movie reference, and downvoted a comment that didn't add to discussion? And you need to flex your age because of it? If you get this upset you don't have to post on this site. Or you can learn to be not as reactive to social media.
Maybe you should read more carefully before replying.
I already said above that I was not complaining.
As for my comment (the supercali... word) not adding to the discussion, you are wrong again. The comment was in the same spirit as my parent and grandparent comments, who used words like cromulent, embiggen and perfectumentous.
>And you need to flex your age because of it?
Wrong again. Nothing in my comment shows that I was "flexing my age", as you call it.
>If you get this upset you don't have to post on this site.
Oh, I don't mind posting. I am having fun. I don't let comments like the one that I replied to, spoil my fun.
>Or you can learn to be not as reactive to social media.
Er, the term is "social" media, not "lone wolf baying at the moon" media.
It indicates people reacting (by replying) to other people, which could include approvingly, neutrally or critically, just like in real life, you know.
But there is something in what you say. This "comments about comments about comments about ..." scenario is getting boring and tedious.
From now on, I'll let the blind downvoters be blind downvoters and keep doing their thing. As I said earlier, HN points are not at all important, to me, at least.
Re: Pkl, a Programming Language for Configuration
#549Earlier quoted context omitted.
> ...GraalVM Truffle framework... Futurama Projections... I know it's partly on me for not knowing the domain, but I honestly suspected somebody is trying to make fun of me with some concentrated technobabble. Especially since I wouldn't expect the topic (configuration languages) to require complex mathematical machinery to work with. Now I have something interesting to dig into.
It makes me think of this game, basically "pokemon or technobabble". Can't find it now though.
And the (original, I think), Pokémon or Tech Term: https://docs.google.com/forms/d/e/1FAIpQLSfsG7AEFLvlW68aIVIs...
Re: Pkl, a Programming Language for Configuration
#550Earlier quoted context omitted.
If your configurations are simple, you don’t need this. If they are not, you might. Because you have not run into the problems this has addressed in your career, does not mean that you know better than Apple how to solve them. In fact, it means like you are uniquely unqualified to solve them. Acting like you are in a severely condescending dismissal of the engineers who worked on this makes for boring conversation.
Well, Apple is the gold standard in creating new proprietary programming languages for often just evil reasons - typically for vendor lock-in. They invented the Objective C and Swift, and made it pretty much impossible to use any standard language to target their platforms in a cross-platform way. I can access the Windows API with any language I want. I can access the Linux Kernel API with any language I want. I can…
Also, since Objective-C is basically just C, you could actually target their platform with plain C if you know what you're doing. Some of the underlying frameworks (e.g. Core Foundation) are actually C APIs.