[HN Gopher] Frink is a programming language designed to make phy...
       ___________________________________________________________________
        
       Frink is a programming language designed to make physical
       calculations simple
        
       Author : thunderbong
       Score  : 91 points
       Date   : 2023-11-03 06:36 UTC (16 hours ago)
        
 (HTM) web link (frinklang.org)
 (TXT) w3m dump (frinklang.org)
        
       | xeonmc wrote:
       | > _" I predict that within 100 years, computers will be twice as
       | powerful, ten thousand times larger, and so expensive that only
       | the five richest kings of Europe will own them."_
       | 
       | Not wrong with how the AI arms race is looking.
        
         | wantoncl wrote:
         | https://youtu.be/8QWne13R_j0
         | 
         | There's an additional prediction in there that's eerily
         | accurate/Simpsons did it.
        
       | makeworld wrote:
       | How does this compare to GNU units?
        
         | eggy wrote:
         | Much better and and easier to juggle units. I program in Frink,
         | use the one-liner as a desktop calculator, and along with SMath
         | Studio, Excel and I have no need for much else to do my
         | technical manual calculations for engineering. Of course this
         | aside from heavy hitting multiphysics programming and FEAs.
         | Alan has helped me a few times. I've donated given how long and
         | how helpful Frink has been to me on a daily basis.
        
       | juunpp wrote:
       | It's fun, I'm a sucker for programming language posts.
       | 
       | Also, why are functions labelled 'class'?
       | https://frinklang.org/fsp/colorize.fsp?f=ConvexHull.frink
        
         | nielsbot wrote:
         | A reverse JavaScript-ism?
         | 
         | You see, because in JS classes are... never mind
        
         | meepmorp wrote:
         | The interpreter seems to be written in Java, maybe that's just
         | some abstractions leaking out.
        
         | schiffern wrote:
         | > why are functions labelled 'class'?
         | 
         | In Frink it defines a static method.
         | 
         | https://futureboy.us/fsp/colorize.fsp?f=classtest.frink
        
       | dang wrote:
       | Related:
       | 
       |  _Frink_ - https://news.ycombinator.com/item?id=26645172 - March
       | 2021 (7 comments)
       | 
       |  _The Frink Is Good, the Unit Is Evil_ -
       | https://news.ycombinator.com/item?id=23799831 - July 2020 (41
       | comments)
       | 
       |  _Frink Programming Language_ -
       | https://news.ycombinator.com/item?id=22523362 - March 2020 (7
       | comments)
       | 
       |  _Frink_ - https://news.ycombinator.com/item?id=21669195 - Nov
       | 2019 (16 comments)
       | 
       |  _Frink data file for non-changing units (2016)_ -
       | https://news.ycombinator.com/item?id=20322262 - July 2019 (2
       | comments)
       | 
       |  _Frink_ - https://news.ycombinator.com/item?id=17745726 - Aug
       | 2018 (62 comments)
       | 
       |  _Frink - A practical calculating tool and programming language_
       | - https://news.ycombinator.com/item?id=12825366 - Oct 2016 (24
       | comments)
       | 
       |  _The Frink programming language_ -
       | https://news.ycombinator.com/item?id=8893319 - Jan 2015 (11
       | comments)
       | 
       |  _Fart joke myth busted using Frink_ -
       | https://news.ycombinator.com/item?id=1543428 - July 2010 (22
       | comments)
       | 
       |  _The Frink programming language_ -
       | https://news.ycombinator.com/item?id=1541452 - July 2010 (10
       | comments)
       | 
       |  _Frink: a JVM language for doing unusual but precise
       | conversions_ - https://news.ycombinator.com/item?id=292985 - Sept
       | 2008 (1 comment)
        
       | chc4 wrote:
       | There is also https://rinkcalc.app/
       | https://github.com/tiffany352/rink-rs/ which is an alternative to
       | Frink written in Rust
        
       | pavon wrote:
       | Does anyone know of a calculator/language that supports units
       | like this but uses prefix (RPN) syntax?
        
         | abecedarius wrote:
         | GNU Calc, for Emacs, has both RPN and infix modes, iirc. (I
         | need to go actually try it.)
         | 
         | https://www.gnu.org/software/emacs/manual/html_node/calc/Uni...
        
         | fsh wrote:
         | Qalculate! has an RPN mode. As a research scientist, this is my
         | default calculator (not in RPN mode though).
        
         | leni536 wrote:
         | orpie
        
       | ginko wrote:
       | Frink looks pretty interesting, but it's not open source as far
       | as I know.
        
       | smasher164 wrote:
       | Frink is great. If you're looking for a more general purpose
       | language with a units system, consider F#:
       | https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
        
       | xxr wrote:
       | "Ah, neat, a new programming language."
       | 
       | >Frink Applet
       | 
       | "Ah, neat, a programming language that has eluded my attention
       | for quite some time."
        
       | krmbzds wrote:
       | There is also an open-source Rust implementation called rink-rs.
       | 
       | [0] https://github.com/tiffany352/rink-rs/ [1]
       | https://github.com/tiffany352/rink-rs/blob/master/core/defin...
       | [2] https://rinkcalc.app/
        
       | steego wrote:
       | I came across this repo where someone actually took the time to
       | convert Frink's unit data to F# (which also supports units of
       | measure) and I got to wondering if Frink's inspired it.
       | 
       | https://github.com/avestura/FsFrink
       | 
       | BTW, I'd love to see more mainstream languages consider features
       | like units of measure. I understand the tech-debt it would
       | likely-incur, but I think it would be a fun mental exercise to
       | really go through the different languages and ask how one might
       | add units of measure.
       | 
       | For example, in F#, the units are erased when they're compiled,
       | so there is no runtime support for units. But I could imagine a
       | dynamic/weaker typed language implementing it with runtime
       | support where units are implemented like atomic symbols that are
       | paired with numbers. Maybe each compound unit could be
       | represented with a unique symbol that's created at runtime.
       | 
       | Personally, I don't think languages explore enough with
       | interesting literals. Combining units with non-numeric types like
       | strings might make interpolation a little more interesting.
        
       | tobias2014 wrote:
       | It seems to me that Haskell would be a great language for such a
       | thing, ensuring correctness at compile time through the type
       | system, e.g. using the units package
       | https://hackage.haskell.org/package/units
       | https://github.com/goldfirere/units/tree/master/units
       | 
       | It even has nice features like: "The laws of nature have
       | dimensions, and they hold true regardless of the units used. For
       | example, the gravitational force between two bodies is
       | (gravitational constant) * (mass 1) * (mass 2) / (distance
       | between body 1 and 2)^2, regardless of whether the distance is
       | given in meters or feet or centimeters. In other words, every law
       | of nature is unit-polymorphic."
       | 
       | "The units package supports unit-polymorphic programs ..."
       | 
       | If on the other hand you just want a small calculator with units
       | (which actually does also come with a library), there's qalculate
       | ( https://news.ycombinator.com/item?id=37037900 )
        
       | hardlianotion wrote:
       | That's very interesting, but why is it a language and not a
       | library?
        
         | layer8 wrote:
         | Syntax.
        
       ___________________________________________________________________
       (page generated 2023-11-03 23:01 UTC)