top | item 2037560

The Scotch programming language

36 points| bendmorris | 15 years ago |bendmorris.com | reply

My Christmas break 2010 project

9 comments

order
[+] jbr|15 years ago|reply
This looks like a really cool project/language. How do I build it? Does it build on OS X?

--

I'd love to "watch" the project on github, but alas it's stranded on the island of google code. Check out this [1] basho blog entry on why they chose github over bitbucket — most of the reasoning applies to google code as well. I'm not affiliated with github, by the way, just a happy user.

For a project like this, the concept of "watchers" isn't a vanity metric. I've been working on a lisp->javascript language and have found github watchers to be surprisingly motivating and encouraging.

[1] http://blog.basho.com/2010/11/11/a-few-more-details-on-why-w...

[+] bendmorris|15 years ago|reply
Unfortunately, I don't have a Mac, so my ability to support Mac users is limited at the moment. Scotch should build from source just fine if you install GHC and use Haskell's Cabal tool to download a few extra packages - haskeline and executable-path are the two I can think of at the moment that are needed.

The command to build is ghc --make scotch. Just run the executable that's produced. Let me know if you run into any problems and I'll see if I can help.

As far as Github, never used it, as I've always been a SVN guy - I'll have to look into it after the holidays are over. Thanks for the suggestion.

[+] effigies|15 years ago|reply
This is kind of neat. It seems like it'd be useful as a more easily debugged Haskell.

I'd be more inclined to actually play with it, though, if it accepted a superset of Haskell, which allowed arbitrary IO tainting. So I might write:

    do
        pure code
        {- Scotch debug statements
        ...
        -}
        pure code
And then just dump it into the Scotch compiler/interpreter when I ran into issues.

Of course, this would only work if you could guarantee semantic equivalence to the Haskell except in those debug bits.

[+] Miky|15 years ago|reply
"A superset of Haskell, which allowed arbitrary IO tainting" doesn't really make any sense with Haskell's semantics, unless you're talking about unsafePerformIO, which already exists.
[+] bendmorris|15 years ago|reply
Thanks for the comment. One of my main goals was definitely to make an easier-to-debug and easier-to-throw-things-together-quickly-in functional language. To help accomplish this goal, there are some other significant differences from Haskell, such as dynamic/weak typing and cleaner syntax - I think that some aspects of Haskell's syntax are barriers to adoption and comprehension, so I'm going for a more Python-esque "readable pseudocode" syntax as much as possible. So, there will never quite be equivalence to Haskell. I think your idea would make an interesting project as well, and as a Haskell user I'd definitely use it.
[+] wccrawford|15 years ago|reply
Wow. That has some awesome concepts. Keep up the good work!