7 ms·
Why Arc is bad for exploratory programming
- zach 18y agoGood point. Using a good language with great libraries is like prototyping at TechShop. http://techshop.ws/ http://techshop.ws/ There's a place for great languages with less-comprehensive libraries, no doubt. But if you want to make something that works today...
- mqt 18y agoWhat's the status of Arc? Interest on arclanguage.org seems to be fading.
- pg 18y agoWhat do you mean by "status?"
- EliAndrewC 18y agoI don't know precisely what the grandparent was asking, but many of us are curious about two things. First, when the next release will happen, since the previous release was 80 days ago. Second, what new features/functions/libraries are being added to the language; presumably some of the things from your poll at http://arclanguage.org/item?id=4070 http://arclanguage.org/item?id=4070
- skenney26 18y agoIn "Being Popular" you mention that the Dream Language has a "thin" manual with "lots of good examples to learn from." Can we look forward to a book on Arc?
- sacado 18y agoYou mean, pg's interest ? Sure, he doesn't seem to be very involved anymore... :)
- garethm 18y agoAs far as I can tell, the problem here is to some degree one of conflicting generalisations. The article is trying to explore a different space to the space for which Arc was designed to be used for exploring. Just like flippers, scuba gear, and a diving mask might be suboptimal for exploring a jungle or the moon, but great for exploring underwater, choosing an appropriate environment for the space you want to explore is something worth thinking about.
- Tichy 18y agoI am not very deep into it yet, but my impression is that it is often surprisingly simple to provide lacking libraries for LISP. As an example, this is an interface to the Cairo graphics library for MzScheme: http://planet.plt-scheme.org/package-source/samth/cairo.plt/1/0/cairo.ss http://planet.plt-scheme.org/package-source/samth/cairo.plt/... I haven't tried it out yet, but I sure had expected a lot more code. Now that is just a connector to an existing C library, but in other cases I was also surprised by the brevity of the code. Actually I was surprised by the brevity of the code in "Programming Collective Intelligence", too. For the time being, I consider that kind of stuff part of my fun projects, so I decided to do them in Scheme. The upside is that if a library is missing, you get a chance to actually provide it yourself and make a name for yourself in the Open Source world. Also, I like implementing those algorithms. With another language, there might not be an excuse for implementing the algorithms from the book by yourself, because libraries already exists. With Scheme, I have a justification to implement them myself. Interfaces to web services might also not be so important, and easy to implement by yourself.
- rsheridan6 18y agoIt's not always about algorithms. If you need, say, something that can parse rfc 822 messages, you have to read the rfc, implement it, find out which applications you need to talk to have implemented it incorrectly, and then work around those bugs. Even if you could write the implementation in 2 minutes, you've still got a time consuming task on your hands. Worse, you will probably need to implement more than one library for a medium sized application if you're using an unpopular language, so multipy the time it takes to finish the task above by x.
- Tichy 18y agoSure, but somebody has to make a start, or we will be stuck with Java forever. Maybe you can often use libraries from other languages, too, as in the example of the Cairo lib.
- jimbokun 18y ago"or we will be stuck with Java forever" The Scala/Clojure approach makes this a blessing, rather than a curse. Interesting language, with all the benefits of the JVM and Java libraries. (Which is why these languages are next on my list of languages to learn.)
- rms 18y ago>Arc is unfinished. It's missing things you'd need to solve some types of problems. But it works well for basic web apps.
- tokipin 18y agofrom: http://www.arclanguage.org/ http://www.arclanguage.org/
- pg 18y agoObviously 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.
- Husafan 18y agoWhy is speed not important? Edit: How is speed not important?
- pg 18y agoWhy isn't the shirt I'm wearing blue?
- hhm 18y agoWell you can always connect a false statement to another simpler false statement to make your idea easier to understand. Or you can show how if something were true, it would contradict with some obvious truth, and so on. This is not a cause, but it helps for your argument. Otherwise, we could all go pointing random ideas as false, anyway we haven't to explain why they are false, couldn't we? Edit: also, maybe you don't like blue after all :)
- pg 18y agoThe point is, there's never an explanation for why something isn't true.
- hhm 18y agoI don't agree. You can explain why something is true, right? (at least in some cases, not for all cases, you know, Gödel and all that). In such cases you can actually explain, it follows that if X is true, !X isn't true, and you have an obvious explaination for that. Example: why is my shirt red? Because I only have red shirts on my house. Why isn't my shirt blue? Please refer to the previous explaination of why it's red, then it follows it can't be at the same time red and blue, etc etc. And it's great it's like this, because otherwise we could be saying a lot of random predicates are false and no one could argue with us. So I think asking someone "why x is false" isn't illogical, after all if there is a reason to say "x is false", surely there is a way to prove it's false indeed. Edit: part of the problem with this discussion, of course, is that there is not a fixed meaning for "why". "Why" is a very ambiguous question, it doesn't specify whether we want to know the intention, the proof, the cause, etc. And even, what is a cause? If you are talking about historic events indeed you can't explain why X didn't happen, but from the same pov you couldn't ever explain why Y did happen at all, if you see history as something deterministic & linear. So whether you're right or wrong actually depends on what you see on the word why...
- mnemonicsloth 18y agoArc is inexplicably lacking trig, exp, and log Okay, I haven't used Arc in a while -- existing Scheme codebase -- but Arc is built on PLT, which is compliant with R5RS, which does include basic math functions: http://www-sop.inria.fr/mimosa/fp/Bigloo/doc/r5rs-9.html http://www-sop.inria.fr/mimosa/fp/Bigloo/doc/r5rs-9.html (search for sin, cos, etc). Did Arc forget how to talk to the numerics library? Rebind "cos" "sin" and "exp"? Is this guy just being stupid? 'splain me please.
- utx00 18y agowhat's being explored? is c++ better than arc for this "exploring" ... it has more libraries ;) i wonder why people are not writing more apps in arc. there seems to be a lot of activity porting it to different environemnts, writing compilers, optimizers, creating a repository .... but no app. (other than hacker news)
- jcl 18y agoApps take time. IIRC, for a long time the big Python applications were Grim Fandango and some research software at LLNL.
- LogicHoleFlaw 18y agoActually, large chunks of Grim Fandango were written in Lua. http://www.grimfandango.net/?page=articles&pagenumber=2 http://www.grimfandango.net/?page=articles&pagenumber=2
- jcl 18y agoYou're absolutely correct... I'd somehow conflated the two in my mind. I guess the first big Python game was actually Eve Online. I can't recall any big, early Python applications outside of the LLNL work... which, I suppose, says even more about applications being a poor indicator of early language uptake.
- sacado 18y agoI've used Arc professionally twice. Once as a web interface to an rsync system (http://my-arc-stuff.blogspot.com/2008/02/i-needed-web-app-for-people-at-my-work.html http://my-arc-stuff.blogspot.com/2008/02/i-needed-web-app-fo...), the other one as a database for our local library (basic stuff : which book do we own, who borrowed it, ...) These are real apps. I must admit Arc is really great (even as it is now) for these small, basic but usually time-consuming webapps. It doesn't prevent me for writing a compiler for Arc :) (which is itself written in Arc and is actually the biggest piece of code I've written in this language).
- nostrademons 18y ago
- xirium 18y agoI'll paraphrase the argument as "Blub doesn't include an XML parser therefore Blub is rubbish." Open source used to have a similar issue regarding Microsoft Word documents: "Open source operating systems were rubbish because there wasn't any software to read and write Word documents." Now that such functionality is available, the argument moves to another feature such as boot time or support for native applications. Let's imagine that we have an open source operating system that runs all games, boots in 10 seconds, works with 6000 random devices and comes installed with a terse language which fetches web pages, parses XML, talks to 20 databases and Java applications. How much of this functionality will be of any consequence in 10 years?
- Husafan 18y agoI think your paraphrasing is incomplete. It would be truer to the op's point to say, "Blub does not include an XML parser, therefore Blub is rubbish for exploratory programming with XML documents."
- gruseom 18y agoI'm tired of this incessant chatter about libraries, libraries, libraries in discussions about language. Of course libraries matter; I don't want to write code to convert a bitmap to jpeg. But the "libraries are the new language" belief is a gross exaggeration that has become way too commonplace. If it were true, we'd all be programming in C. Programmers are not welders. Programming means writing new code. Language is the medium of that code, it is hugely important, and it gets more important as the complexity of one's problem increases. The only way that libraries would become more important than language is if programmers stopped working on complex problems or new problems. Ultimately, this overemphasis on libraries is a variation of the discredited "code reuse" meme, in which programs are imagined to be strung out of components, so all you need is enough components. Edit: Another common thing about these discussions is otherwise intelligent people ignoring the fact that it is possible for a program written in one language to call a library written in another.
- lacker 18y agoNew code is extremely important, but if you're missing a key library - say, html parsing - a 10-second task can expand to take a day. That makes "exploratory programming" hard. You can have both a well-designed language and a great selection of libraries, in Python or Ruby. Not that it's Arc's fault; Arc just isn't at the point in its lifecycle where the libraries are at Python level. It's more like Python 0.5. It's a good goal to have though.
- Hexstream 18y ago86400 / 10 = 8640. You're telling me it's 8640x faster to use an HTML parsing library than building one from scratch? That's way overexaggerated, even for a big exaggeration. You have to factor in the cost of finding the library, evaluating it (possibly rejecting it), reading its documentation (if it exists and is accurate and up-to-date), and living up with most of its warts because you can't be bothered to learn the innards of the library to make those few changes that would simplify your work. Or you could contact the maintainers and hope they will maybe honor your feature request/bugfix at some point. Libraries do have overhead. edit: In the specific case of HTML parsing libraries those caveats probably don't really apply because it's a well-known problem with a well-known solution. But in the general case those are valid considerations.
- deleted 18y ago[deleted]
- lacker 18y agoI think it might help to have an official statement, like, "We plan to add all these libraries, in time. You can help somehow." One issue in the Arc community is there's no clear way to contribute. A lot of this angst about lacking libraries could be turned into a polite suggestion to help build the language. Perhaps there should be AEP = Arc Enhancement Proposals a la Python's PEPs.
- skenney26 18y agoI guess the title "Arc could use more libraries" isn't as attention-getting as "Why Arc is bad for exploratory programming."
- jmatt 18y agoIf 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).
- tx 18y agoThrowing together a bunch of libraries and gluing them together with "surprisingly few" lines of Python code isn't exploratory programming. It's hardly programming at all.