> The compiler and all the code contained in this repository is released under the Apache license (version 2) unless another license is explicited for a sub-directory.
Uhh where’s the Catala code for this?
Related, the name of the [computer] language can be confused with the name of the Catalan language (Català), as noted in this lobste.rs comment:
https://lobste.rs/s/b74svy/catalalang_catala#c_imweua
But then France has a long tradition of suppressing minority languages:
https://en.wikipedia.org/wiki/Language_policy_in_France#French_Revolution
It also sounds like katala, which means “wicked” or “devious” in Finnish.
They know and they don’t care: https://catala-lang.org/en/about
This programming language is named after Pierre Catala who is, together with Lucien Mehl, a pioneer of French legal informatics. Beware, the name Catala is typographically close to the name of the Catalan language written in Catalan : Català. However, the very narrow scope of our programming language should not be prone to set any confusion given the existing wide influence of the Catalan language and culture.
Ah finally progress on the creation of ‘The Computer That Says No’ from the famous story ‘Do Not build The Computer That Says No’
oh wow this looks like garbage and I really want to learn it
A French version is also available but might be out of sync with the latest language features.
multilingual programming languages always work out great, especially when programs have different interpretations depending on which variant of the programming language you’re using
-
Define your variable.
-
‘let mut number : i64;’
-
No no, define the word variable, its memory layout, and its legal justification of being there.
-
Wait, what?
‘OK, we’ve accepted “True” to refer to an arbitrary entity denoted as “#t” and “False” to refer to an arbitrary entity denoted as “()” which is the result when evaluating "’()" as defined by the earlier clauses. Let the record state in the form of a comment that the judge would like to appeal to the supreme compiler that the concept of precedent/dependency be reinstated in the judiciary process so that every law not be recompiled by hand during every single trial.’
Complimentary joke keyword for sneerful programmers: lex
-
Honestly this could be an improvement compared to what is currently in use by the current french tax collection agency.
The DGFiP uses an up until recently closed-source custom language called “M”, which does not have the friendliest/most readable syntax, and that the guys at INRIA (French National Institute for Research in Digital Science and Technology, the same lab that seems to have spat out CatalaLang) had to reverse engineer a modern compiler when open sourcing the tax calculation software was newly mandated.
Witness this horrid glory, sadly only in French: chap-1.m
Could also be intended for other horrid COBOL output cases:
For example, the compiler can generate Javascript for web applications, SAS for economic models and COBOL for legacy environments
Trying to approach and make visible the relationship with the laws as written, so that it can potentially be reviewed by non domain-experts doesn’t appear to me to be the worst possible goal out there. (They seem to be trying interleaved markdown format), the bigger/broader claims in the about/readme sections might just be required bells and whistles for proper grant funding/thesis presentation.
that makes a lot of sense, and INRIA (whose work I’ve used before, way back when I was a research assistant) has my sympathies for the situation they’re correcting for
though the engineering bones in my body are still aching from how bad the new language seems from the outside
The part of my brain that stores my memories of “trusting trust” is itching for some reason
in the beginning:
states are bad except my type of states are good, mmkay? code is law!
-- balajis, probably
not long thereafter:
“hmm, maybe this solidity thing on something as shitty as JS isn’t the best idea? sorta has some gaps, weird. how did this ever happen?”
-- anyone without an ounce of sense and awareness
soon: “I know, let’s just make a whole new annotation specification, and then mark up laws ourselves!”
like people haven’t already been fucking up API client implementations from reference specs in hand for decades
it’ll go well, I’m sure
Concretely, you have to first gather all the laws, executive orders, previous cases, etc. that contain information about the socio-fiscal mechanism that you want to implement.
watching this run into a number of countries is going to be amusing, at least
ya know, i researched and wrote a whole book chapter about why the whole idea of smart contracts is dumb as hell at every level
i published it in 2017
i foolishly had the notion this would knock the bad idea on the head
It’s interesting to note that the author delineates “lawyer-readable” as different from “human-readable”. Denotatively, of course, this makes perfect sense. Connotatively, it’s rather brutal.