Live data from Hacker News

A Tour of Go - Real examples of interfaces and concurrency

research.swtch.com

11–15 of 15 posts

Re: A Tour of Go - Real examples of interfaces and concurrency

#12
post #5

Regarding the Acme text editor - any users of it here, on HN? I'm really interested to hear some arguments from Acme or Sam userbase - what do you find useful in these editors? I vaguely remember the reply on Acme's mailing list, that it is a text editor, not a rainbow, when someone asked about syntax highlighting feature :)

I've been using acme for a long time (previously vi was my editor of choice). One property of acme that I think isn't so obvious is the way that text becomes higher-order, in the same kind of way that S-expressions in Lisp are higher-order.

Much of the power of Lisp comes from the fact that the result of executing an S-expression is also an executable S-expression itself, so programs that write programs become trivial.

This property is true of acme too - we execute text with a middle-button click or drag, and the command that's executed can produce more text, which is itself executable text.

Thus I can extend the functionality of acme by writing tiny shell scripts that print useful commands. I can run a command that produces a list of stuff, use structural regexps to transform that stuff into an acme command, then execute that to transform something else.

The power of structural regexps combined with proper Undo/Redo is also great - rather than pipe something through sed or awk, I'll often iteratively build up an expression or set of expressions that perform some particular one-off transformation, rewinding and retrying as necessary.

I could go on!

Acme certainly isn't perfect, but it is wonderful.

Re: A Tour of Go - Real examples of interfaces and concurrency

#13

I really hate to bring up the generics point, but I did really miss them when I used Go. Sure, you can ignore their absence, but every time I saw a API that took or returned `interface {}`, I felt like the type system was being wasted. Other than that though, Go is definitely on favorite languages to watch from afar.

This is what made me move away from Go to D.

Re: A Tour of Go - Real examples of interfaces and concurrency

#14
post #5

Regarding the Acme text editor - any users of it here, on HN? I'm really interested to hear some arguments from Acme or Sam userbase - what do you find useful in these editors? I vaguely remember the reply on Acme's mailing list, that it is a text editor, not a rainbow, when someone asked about syntax highlighting feature :)

I've been using acme for a long time (previously vi was my editor of choice). One property of acme that I think isn't so obvious is the way that text becomes higher-order, in the same kind of way that S-expressions in Lisp are higher-order. Much of the power of Lisp comes from the fact that the result of executing an S-expression is also an executable S-expression itself, so programs that write programs become trivia…

"The power of structural regexps combined with proper Undo/Redo is also great - rather than pipe something through sed or awk, I'll often iteratively build up an expression or set of expressions that perform some particular one-off transformation, rewinding and retrying as necessary."

It would be interesting to see examples of this.

Re: A Tour of Go - Real examples of interfaces and concurrency

#15
post #5

Regarding the Acme text editor - any users of it here, on HN? I'm really interested to hear some arguments from Acme or Sam userbase - what do you find useful in these editors? I vaguely remember the reply on Acme's mailing list, that it is a text editor, not a rainbow, when someone asked about syntax highlighting feature :)

Just beginning to - acme-sac, mostly on windows.

A potentially useful link: https://code.google.com/r/jasoncatena-acmesac/

Post reply on HN