27 comments

[ 2.5 ms ] story [ 75.7 ms ] thread
He wants to compute some bignums, so he writes an APL interpreter in Go...

Now he is scratching his itch and making nice slides to boot.

However, it would have been simpler for him to have typed "python" at the commandline... Python ints are arb precision :)

> Python ints are arb precision

Python 2 longs or Python 3 ints ;)

Automatic promotion from a 32-bit or 64-bit storage to arbitrary precision.
Lisp would be even better, as he would get the speed of compiled language.
In the video he says that he already implemented an APL interpreter in Lisp.
Yes, but he wasn't trying to compute numbers. He was trying to build a calculator. There's a difference.
or GNU CLISP which not only has big ints, big ratios, big complex (like all Common Lisp implementations), but also big floats.

Big ratios:

    [2]> (/ 5723475972349572938475982734985723984759823749587 7239457928374598723984759237459723497598234)
    5723475972349572938475982734985723984759823749587/7239457928374598723984759237459723497598234
Big complex numbers:

    [4]> (* 572934759237495723482374957239475982374957239847523485 (sqrt -1))
    #C(0 572934759237495723482374957239475982374957239847523485)
Big float numbers:

    [8]> (SETF (EXT:LONG-FLOAT-DIGITS) 1000)
    1000
    [9]> (sqrt 2.0l0)
    1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727350138462309122970249248360558507372126441214970999358314132226659275055927557999505011527820605714701095599716059702745345968620147285174186408891986095523292304843087143214508397626036279952514079896872534L0
Ah yes, but a small userbase!
If you're talking about userbase, I presume, Go should have less of a userbase than lisp.
People use lisp for something other than a programming discussion talking point?
The message board that you posted this to. Written in Arc which is a dialect of lisp.
So you mean they use it to create an application that allows them to... talk about lisp.
So, the correct answer here would've been that Viaweb--Graham's company that later became Yahoo! Store--was done in Common Lisp. I'm not really aware of any other example of Common Lisp in a real commercial setting other than Mirai (which I think is dead nowadays anyway).

Graham later made Arc, the language in which HN is written. To the best of my knowledge Arc's only major project is in fact Hacker News.

So, essentially, yes, you're correct.

Once again, downvotes are leaned on in lieu of wit.
The premise of this comment being that it hadn't occurred to Rob Pike that there were already arbitrary-precision calculators.
You misattribute the motivation. He wants to play.

Implementing a BigNum calculator using APL concepts is one way to play. I do this all the time. I'll implement something that will never be in production somewhere or useful to anybody purely for the learning experience and challenge of it.

[EDIT: spelling]

This snippet from the implementation sheds some light on the origins of Go for me, the mindset from which it's born and why it isn't a language for me.

    interactive := false
    if name == "-" {
        interactive = true
        fd = os.Stdin
    } else {
        interactive = false
        fd, err = os.Open(name)
    }
Or do you think I am reading into it too much?
Could you explain why that snippet makes you decide that way?
Pseudocode (better). Notice the immutable everything and the brevity (i.e., vertical space saved).

    interactive := (name == "-")
    fd, err := interactive ? (os.Stdin, None) : os.Open(name)
[And yes I understand that Go probably doesn't have tuple literals or a concept of 'None'].
Does anybody have suggestions for sources of software / computing / codecasting related videos similar to this? Something to put on in the background while working?

TOPLAP (http://toplap.org/) is a decent example of this but they are focused on audio/visual entertainment only.

Basically I'm looking for Twitch for programmers.

(comment deleted)