Arc Forumnew | comments | leaders | submitlogin
Why Arc is bad for exploratory programming (arcfn.com)
11 points by sacado 6013 days ago | 13 comments


4 points by bOR_ 6013 days ago | link

pg briefly comments / discusses this topic on ycombinator: http://news.ycombinator.com/item?id=190295

  7 points by pg 3 hours ago | link | parent | on: Why Arc 
  is bad for exploratory programming

  Obviously what I meant is that the core language is tuned 
  for exploratory programming.

  Also, I disagree with his criteria. Speed isn't really 
  important for it. And dynamic typing, which he omits, is 
  very important.

-----

3 points by sacado 6013 days ago | link

Kens is rather dishonnest there. There have been improvements in Arc's performances (including a few experimental ones with the 'compile keyword I added a few times ago) and accessing libraries is rather easy through mzscheme or the experimental FFI (it has to be improved, sure, but it's not that hard if someone wants to). The curently-developed arc2c should solve a good part of these problems, too.

Besides, Arc is too young to have lots of libraries programed in itself, but they're coming. What if, in 1991 (the year Python was released) someone said "Python is bad for exploratory programing : it does not have libraries" ?

-----

5 points by stefano 6013 days ago | link

You're right: Arc is just too young to have a huge (or even a medium sized) collection of libraries, because it takes a lot of time to write libraries to fetch web pages (BTW, look at http-get on Anarki), manipulate images and so on. We should talk about Arc in terms of what it will be able to become, not in terms of what it is today. In this view, the only real problem is the lack of a module system to support the construction of libraries.

-----

4 points by bOR_ 6013 days ago | link

He makes an important distinction in two kinds of exploratory programming, and just sort of is unlucky that he needs the second kind (whereas I'm happy, as I need the first kind)

  I think there are two different kinds of exploratory
  programming. The first I'll call the "Lisp model", where 
  you are building a system from scratch, without external 
  dependencies. The second, which I believe is much more 
  common, is the "Perl/Python model", where you are 
  interacting with existing systems and building on previous 
  work.

-----

1 point by almkglor 6013 days ago | link

> accessing libraries is rather easy through mzscheme or the experimental FFI (it has to be improved, sure, but it's not that hard if someone wants to)

1. it has to be improved

2. if someone wants to

^^

-----

3 points by kennytilton 6012 days ago | link

Arc is now offically a Lisp! When detractors try to say "the number of libraries available sucks!", somehow the name of the language comes out instead of "the number of libraries available"!

-----

1 point by jmatt 6013 days ago | link

I posted this over on hacker news - but it should be here too:

http://news.ycombinator.com/item?id=191501

If arc could seamlessly access PLT scheme's libraries that would be a good start. I know from first hand experience that there are a number of ways to access PLT scheme from arkani and arc. But, there are two big issues. First there are type differences between fundamental types (lists gah). This means there can be a lot of work to convert between PLT scheme and arc, not impossible but time consuming. Secondly, there is no nice way to pull in a PLT library and just use it in arc. Of course this could be implemented - it's just not there yet.

There are two choices I see going forward immediately. Arc and the arc community starts implementing their own libraries or we find a way to use PLT scheme's libraries (ok maybe sbcl if you are using arkani).

-----

1 point by jmatt 6013 days ago | link

there is some discussion on accessing PLT scheme's libs over here: http://www.arclanguage.com/item?id=6757

I know there is additional information somewhere in the forum on type differences when coercing data between scheme and arc - specifically '() nil (list) aren't equivalent. Worse come to worse - see the source.

-----

4 points by almkglor 6013 days ago | link

There are a bunch of functions on scheme-side ac which help in conversions.

For functions returning booleans, there's 'tnil:

  (xdef 'exact (lambda (x) 
                 (tnil (and (integer? x) (exact? x)))))
For functions whose return value isn't used, you can use 'wrapnil:

  (xdef 'system (wrapnil system))
'ac-denil converts plain nil to 'nil, and nil at cdr positions into '().

  (define (expand-ssyntax sym)
    (ac-denil ((eval '__ssexpand) sym)))

-----

2 points by absz 6012 days ago | link

Nitpick: Anarki is the git repo, Arkani is the wiki written in Arc.

-----

2 points by jmatt 6012 days ago | link

Yeah thanks for pointing that out. My bad. Those damn names are so similar and I have my gits all scripted.

-----

4 points by eds 6012 days ago | link

http://arclanguage.org/item?id=5259

-----

1 point by sacado 6013 days ago | link

See the reddit discussion too : http://reddit.com/r/programming/info/6jgnp/comments/

-----