I hang out in an IRC channel which has/had a bot for Frink, and after significant flakiness on its part someone decided to build an open-source alternative (which AFAIK frink is not) in Rust:
I apologize if you used an old version of my IRC bot. It actually tried to screen-scrape the Frink website and did it badly. There are some sites still using it. (And, I think, got throttled for abuse, which might explain your "flakiness".)
There's a newer version of the bot that runs a Frink interpreter on your own system and it's rock-steady. (I saw another IRC bot that forgot to synchronize on the Frink interpreter. Don't use that either.)
Great to see that the author's quite opinionated on date formats. It doesn't support any of the ridiculous local cultural conventions like MM/dd/yy or dd/MM/yy but he recommends the unambiguous ISO standard yyyy-MM-dd.
Also:
"Last-Modified: Wed, 01 Sep 2004 13:24:52 GMT
...
// Alan's editorializing: Needless to say, this is a stupid format."
Date formats cause me constant struggle because I live in one country, work for a company based in another, and use services from a third, all with different local conventions! Somehow every program and website thinks it knows what date format I want, but that just means I can't reliably transfer a date from Paypal into a LibreOffice spreadsheet or compare a date in Paypal with a date on my bank statement and web host.
Worth mentioning that F# supports units of measure as well. It doesn't give you that out of the box experience, but you can use the type system to make sure that your units are sound/to convert between types.
Once we attempted to do a very similar thing (calculation with quantities, matrices, complex numbers, etc) but by extending javascript: http://engineerjs.com
Funny it's not more common in high-level languages. You have types for non-negative whole numbers, whole numbers, larger whole numbers, not-whole numbers but imprecise, precise non-whole numbers but you usually can't tell compiler that one is in meters and one is in kilos and it shouldn't allow you to add one to the other.
Frink is one of the coolest things I've seen in languages development.
This is what I never got about the Java and C++ type systems. If you claim to value static typing, why are you not typedefing your generic floats / doubles to meters and seconds and stuff? It looks like there is a thorough implementation of standard units in Boost ( http://www.boost.org/doc/libs/1_55_0/doc/html/boost_units/Un...).
Reading through the spec blurb - it looks more like a piece of software that comes with its own scriptable language rather than a language per se. Similar to how Mathematica is. Yes, there's syntax and semantics to it, but it's mainly about the built-in functionality.
Related story: Stephen Wolfram (the "inventor" of Mathematica talked at my university many years ago about an early version of Mathematica. It was probably version 2 or 3 at that point.)
He noted that Mathematica was a programming language (but different than imperative languages in a lot of ways) and said "but if I said that I created a new programming language, people would string me up because there are too many already" (or something like that.) He concluded, "that's why we call Mathematica 'A System for Doing Mathematics by Computer'".
When I saw the author talk at LL4 at MIT, he did note that GNU units was an inspiration (and was an inspiration for a precursor special-purpose language.) https://frinklang.org/LL4.html#slide2
I'm a huge fan of the "units" program too. It rules, and I've used it for decades.
The best part is that Frink is "units" plus a Turing-complete language, (which is a provable rung or two up the Chomsky hierarchy,) so you can save values in variables and use them later, write loops, define functions, etc.
> Quick Start: On many platforms, if you already have Java installed, you can start Frink in the GUI mode by simply downloading and double-clicking the frink.jar file.
https://github.com/tiffany352/rink-rs
Seems to work pretty darn well, and it's proven to be super useful.