Hacker News new | comments | show | ask | jobs | submit login
PG: Arc Likely To Be Open-Sourced This Winter (ycombinator.com)
118 points by kirubakaran on Jan 14, 2008 | hide | past | web | favorite | 88 comments

I hope someone makes a framework for Arc called de Triomphe.

Arc Based Webapps etc ;)

  ArcAde       - Retro Games
  ArcAne       - Obfsktd Programs
  ArcHer       - Dating Website
  ArcHetype    - PDF Generation Tool
  ArcHegonium  - Porn website for hardcore mosses & ferns freaks
  ArcHipallium - Image recognition framework
  ArcHosaur    - 'Enterprise' apps
  ArcHlute     - Anywhere.fm competitor
Thanks: http://InstantWordSearch.com/

Arc compiler: NOAH

And the tutorial: Arc in 40 days and 40 nights.

Archaic - The foreign-function interface.

But should we call Arc's future CPAN-like collection of applications "hive" or "hipelago"?

Most certainly "hive".

Would the news section of such a site be called "The Flood"?


Your comment is too much of an Arc tangent.

Lightning would be the best.

The sooner the better. I bet a few people here would want to help out. With the documentation and the like.

People would want to do their startups in Arc too. So, yeah, sooner the better.

So you're waiting for Arc to start your startup?

Now that you put it this way, I may have to invent a new reason.

use 'inspiration'

First comment? Welcome to YC Hacker News!

Note that Paul did not say that Arc will be open-sourced this Winter, just that he hopes it will. That's a big difference. So much of a difference that this headline seems Reddit-ready.

I meant I was planning to, unless there's some disaster. I'm working on it now. Anyone have any preference for licenses? BSD? Or should I not have asked that...

> Anyone have any preference for licenses?

From what I've seen, projects that go GPL tend to be more community-focused, and seem to more readily gather a contributor community around them. I think contributors tend to like the idea of their contribution being free in perpetuity.

MIT-licensed projects, OTOH, tend to be mostly worked-on by their creator (again, FWICT). That is, there are fewer individuals willing to contribute code to a project which could simply be scooped up and put into some company's closed-source product. I get the impression that MIT-licensed projects are always looking to be popular, and feel entitled to be so, since users can basically do whatever they want with the code.

A lot of careful thought by lawyers, the community, and the FSF has gone into the most current GPL. I'd suggest that it's worth considering.

I think there's a rule that when you create a new language you also have to create a new open source compatible license. I look forward to releasing code under The Arc License.

Double points if the license is written in Arc itself.

Well, it is a hard question. And the best person to answer it are you. I like simple licenses (BSD[1], MIT[2]...), but only if you don't mind people making closed version of it.

Being Arc a language, I think you would like to remain the head of its development, so maybe the Artistic License [3][4]would be right. Like Perl does.

It's far more complicated than the simple ones, but it would make easier to differentiate between the Vanilla Arc and the Straciatella Arc.

For the GPL[5], I think it is better suited for programs than for languages.

[0] http://www.opensource.org/licenses/category

[1] http://www.opensource.org/licenses/bsd-license.php

[2] http://www.opensource.org/licenses/mit-license.php

[3] http://www.opensource.org/licenses/artistic-license.php

[4] http://www.opensource.org/licenses/artistic-license-2.0.php

[5] http://www.opensource.org/licenses/gpl-license.php

I like the MIT license (aka X11 license). It's simple, understandable, and permissive.

Seconded. If you really want a 100-year language, then your chief concern is getting it widely-adopted, and a permissive license like MIT is just the ticket.

I'm not so sure that liberal licensing leads to popularity. One obvious counter-example of your supposition is GNU/Linux vs. BSD.

Incidentally, the last thing the FSF is worried about is popularity, yet look at how popular GCC, Emacs, bash, and other GPL'd software is.

Licensing your software with a very liberal license may help make your software more popular with some large companies who are in a position to take advantage of it (and I suspect timing is important here as well), but I'm not so sure it makes your software popular with the developer community.

It's certainly complicated, and depends on several factors.

One thing that's important for languages like Tcl is that they can be embedded within other projects, and for that reason a liberal license was very important. Of course, it's certainly not the only thing you need. The GPL is probably ok for "finished product" sorts of things that you don't need to link against to utilize it.

I prefer zlib or boost licenses which make a distinction for binaries. You don't have to attach the license for binary-only applications which makes it more suited in some cases (like embedded development).

I second zlib. It's slightly more restrictive than MIT, but in a very sensible way. I don't think preventing modified sources from masquerading as the original Arc, or maintaining author attribution will impede adoption overly much.

Pardon my naivete, but are masquerading languages a common problem?

Choosing a license to fight imagined evils seems like the short route to a DRM'd license.

Since you asked, my preference is GPL.

I prefer GPL over BSD strictly for the reason that if someone makes a modified version of Arc publicly available, then we all get to see (and maybe use) the modifications.

Don't do it. GPL means unnecessary issues with some of the enterprise companies trying to adopt your product.

What about having an open source friendly license as well as one for enterprises IT and software vendors ala MySql?

Mysql's license is all about trying to make money from Mysql. My guess is that pg would prefer wider adoption to trying to make money. At least, initially.

symlink: Like they would anyway. Ha ha bloody ha.

The license should be Affero GPL.

My favorite license is MIT. BSD ain't bad but MIT makes so much more sense for a programming language.

i'll take the bait :-) why not just public domain it?

If someone publishes a bug fix, or finds a cleaner way of doing something, I'd like to be able to incorporate it without being accused of having stolen their IP. That's the main thing.

BSD license allows you to re-use fixes of others (assuming they also release their fix under BSD), but it does not compel them them to reveal their fix if they distribute only a binary.

GPLv2 requires modified public distributions to also be under GPLv2, so you could both see the fix/change and use it (in the sense that you won't be infringing on copyright).

GPLv3 adds patent protection, so someone adding a fix/change that they have also patented explicitly grants a license for that patent.

I think GPLv3 is the most comprehensive way to keep fixes/changes of others available for reuse.

If you use the GPL you will want to add a lisp-specific preamble such as is found in the LLGPL (http://opensource.franz.com/preamble.html).

Don't forget that if you use the GPLv3 you won't be able to distribute your software with the OLPC, since it has anti-theft measures which put signed code at an advantage to unsigned.

If I recall correctly, the Apache license has some kind of clause to the effect that all contributors automatically grant you all the same rights available under the license, meaning that by contributing, they acknowledge the license and give you permission to make use of their contribution. There is also some anti-patent stuff.


OTOH, it's a big, long license, and perhaps the BSD license would be simpler, which is always an advantage.

I'm for a BSD type of license.

Public domain is not enforcable in some countries. You can't give up your copyright as author for example in germany. So a license defining the rights of the users will work better.

Someone IANALed in Reddit that 'Do Whatever Fuck You Want With It' license is not legally enforcable or something. So I'll take 'Public Domain'.

curious: is there any difference between public domain and MIT?

they seem like ostensibly the same thing.

There is no such thing as public domain for software. If you simply give your software away, it's still your copyrighted work...just without a license for other people to use it.


What about the WTFPL license?

"Do What The Fuck You Want To Public License"

It's actually not a joke: http://sam.zoy.org/wtfpl/

I'd like to be able to embed it in apps. Any license that allows that is OK by me.

Some ideas I've got floating around are to use it for scripting (instead of, say, LUA or XSLT) and for config files (instead of XML) in existing apps. Also, lisp seems fantastically placed for HTML generation, so if I embed it in an IIS or Apache site, then great!

The license should cover patents. If a company adds to the code using patented algorithms, they could perhaps block further development since nobody could use the code? I'm not a lawyer, so perhaps it's not a problem anyway.

pg: It should be Affero GPL. You won't overthrow Java et al anyway, but if Arc is as good as we all anticipate, choosing AGPL may really help the free software.

The ISC license seems to fit your style.


Come on... I phrased it: "Likely", didn't I? :-)

Er... yes you did. A Reddit worthy headline would have been "Paul Graham Exposed! Fundamentalist Christian plans to finish an arc before 'Judgement Day'"

I think you mean "Ron Paul Graham."

"Arc Doesn't Scale, You Should Use PHP"

Does 'this winter' mean eg February, or eg December?

When a software company says "shipping this Summer", for example, that usually means the very last before the autumnal equinox.

So, if Arc is available for download at UTC 5:48am on March 20, pg will have met his goal. :)


It depends on being optimist/pessimist.

I'm realist, so I predict: this spring (to be clear: there's only one in 2008).

There are two! One in the northern hemisphere and one in the southern.

Is this an example of setting a timeline for your users to force yourself to stick to that timeline?

PG, any thoughts on when the documents for startups will be open-sourced (http://news.ycombinator.com/item?id=62998)?

Feature Request: Why not have the "new" comments in a thread visually distinct from the "old" ones?

When there's a big thread like that I'd like to check the new comments but I can't be bothered to read again the 64 comments I read earlier to find the 8 new ones.

You could dual-license Arc, like Gambit Scheme does. I believe Gambit uses Apache 2.0 and LGPL 2.1. I hope that the open-sourcing of the language won't cause it to become too stable and end its evolution, like what happened with Java. I think languages should have a breaking-reverse-compatibility release scheduled every five years.

I guess this announcement puts an end to my plan to read everything PG has written about Arc and then write my own implementation.

I have a Lisp success story. I wrote a decompiler in C++, building cruft on top of cruft, until it became too unwieldy (c.70,000 lines), so I rewrote it from the ground up in Lisp. Now it's 20,000 lines, far more elegant, and works a heck of a lot better.

However, I did experience a certain amount of burnout on this - I haven't written anything nearly as extensive since (eg, no more than 1000 lines of Lisp).

Well, that just complicates my "language to learn this year" decision.

Last year was Common Lisp. I was planning on doing Python this year. Then recently Scala has been looking very interesting, with the functional/static thing with not bad performance and access to the whole Java stack (I program Java at my job).

Now Arc might be a possibility. At this rate, it will be December and I'll still be trying to decide.

Choosing Python would leave you 49 weeks left to learn something else this year. That's discounting the two weeks you've been taking to decide.

Touche. :)

I think you're right. I already found a task for Python to do, spent a couple weeks (off and on) refining it, and at the end I seemed to have used all of the prominent features of Python somewhere in that script. At the end of that, I had this vague feeling that I now "knew" Python and wasn't sure what was left to learn.

So, you are confirming my vague feeling and I can now move on to Scala and decide whether or not to switch to Arc once it emerges. :)

Since you're feeling cocky, have a look at the Zope/Plone source. You'll almost certainly realize you don't know Python (and possibly that you don't actually want to).

There is a difference between a language and its common idioms. "Generator expressions" is a good phrase to test how much people know. For example: http://norvig.com/sudoku.html

Python can definitely fit in your head, as far as the language. Reading lots of code is a good way to learn the idioms.

I wasn't actually referring to the usual Python idioms, but if you're unfamiliar with Zope/Plone, you can be forgiven for not knowing that. The Zope developers (and to a lesser degree Plone) don't actually seem to like Python, and so they've reinvented many common language features and libraries. Partly this is historical...the Python that Zope was originally written in didn't have most of those features or the standard library that exists today. It's one of the problems of developing a large codebase in a language that is still in rapid flux and doesn't mind throwing out backward compatibility (my Perl code written before Zope existed still runs on modern Perl, while practically none of my Python code from 1.5 through 2.2 runs today unmodified).

But, regardless of the very sound reasons for it to be the way it is, it's a very intimidating codebase, and a really good case study in the "reinvent everything" mindset. (It's quite powerful, and I've worked with several of the guys who built it, as I did contract work for Zope Corp for a few years, and I have the utmost respect for their talent and intellect. They're some of the smartest developers I've ever met. But it's not quite like anything else I've ever seen when it comes to having a learning cliff, even with some pre-existing Python knowledge.)

Yah, I assumed they were doing something fancy, not knowing what they actually are doing.

I'm told a great place to read good code, both Python and C, is to read the code that makes Python.

Yes, C is another good example. The language is fairly small, and it's not terribly difficult to learn the language itself and write your own programs. But to be able to look at an arbitrary piece of C code and understand all of the implications is another matter entirely.

This is true of any language to some degree, although some are worse than others, and if the code was purposefully written in some non-traditional way it can be even harder.

It is most certainly not true about C++.

Touche'; I should have grouped my sentences differently. C++ is not a small, easy-to-learn language.

I'm reminded of Duff's Device http://en.wikipedia.org/wiki/Duff%27s_device

  send(to, from, count)
  register short *to, *from;
  register count;
    register n = (count + 7) / 8;
    switch (count % 8) {
    case 0: do { *to = *from++;
    case 7:      *to = *from++;
    case 6:      *to = *from++;
    case 5:      *to = *from++;
    case 4:      *to = *from++;
    case 3:      *to = *from++;
    case 2:      *to = *from++;
    case 1:      *to = *from++;
               } while (--n > 0);

I knew about list comprehensions, but generator expressions add some new tricks. And I also now have a clearer idea of what constraint propagation means.

Thanks for the link!

this year a particular language surprised me: Lua. i'm not a polymath of programming languages, but in my experience Lua is the most powerful non-lisp language (in terms of abstractive power). it's scripted, functional, dynamically typed, supports closures, asymmetric coroutines, has a heterogeneous data structure, and gives you access to the 'compiler'. it's something like a heavily improved and simplified javascript

just clarifying, does this mean that it will be released by March 2008, or is it going to be november?

pg has said in an earlier post that he likes designing his own custom languages to fit a particular need. I'm interested to hear what the tagline for Arc will be.

The language's language?

Just curious, what language is it written in?

IIRC, Scheme.

Totally overhyped language! Why isn't anyone paying attention to Lintel, my new dialect of COBOL?

But it's already open-sourced for all those who are coding in it now?;)

Finally. ;)

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact