Ask Hackers: Are you planning to do your startup in Arc?
Please share your thoughts.
Please share your thoughts.
Languages don't matter!
When I first started programming, I was so impressed by superhackers who knew like 10 languages or were experts in obscure ones like Forth and whatnot. Then as I learned more languages, I realized that languages are just interfaces into the computer system. Thats it.
Arc won't be able to do anything that binary code can't do.
This is nothing against pg. If you want to create a language because that interests you. Great! I'm just tired of all the elitist fanboys mentally masturbating over how great their language is. maybe i just read programming.reddit too much tho ;)
I would like to hear examples of that.
My feeling is that the success of viaweb development had much less to do with lisp than it had to with PG and friends being really good hackers.
Suppose: 1, cperciva is a really good programmer, 2, writing a Viaweb is within his ability.
Given: cperciva intends to write a Viaweb.
Result: Viaweb in C.
http://news.ycombinator.com/item?id=96431 (I know, the logic is flawed. I'm being half-facetious)
So, no, they could not have written it in C.
At first I thought you were leaving out their smarts and technology, but speed and agility were because of the smarts and tech. Then I thought I remembered pg saying they were going to close another round of funding when they got bought instead.
But I totally agree with your main point.
That's just an elaborate way of saying that you can write an interpreter (of size c) for one language in another.
Nevertheless, I have a hard time believing that viaweb could not be written in C short of writing a Lisp interpreter. For that to be true, the runtime compilation of s-expressions would have to be essential to the application; there would have to be no other way to write it.
We had a page description language called RTML that was Lisp underneath. Users created templates in it, which we then executed to generate their pages. It is these page templates that are still stored on disk as s-expressions in the C++ version.
Why not, if the language makes it simple? I am not claiming that Lisp does not have more powerful abstractions than C, just that they are not usually essential to any given feature in the application.
If Lisp is actually part of the user interface, then clearly there is no way to avoid having a Lisp interpreter. This is begging the question though.
That's a wonderful stack overflow idea.
It works, haha!PostgreSQL was once a collection of C modules called from Common Lisp. Debugging the cross-language implementation proved too difficult so it was ported entirely to C using tools which mostly moved the parens around. Some lisp structures live on inside it to this day.
The original Lisp version was actually running till last fall. When they introduced the C++ version you had to explicitly choose to "upgrade." There were some users, including me, who hadn't. Finally last fall they called me and told me they were going to move us to the C++ version. It's barely different.
It would be nice to have some "cookbooks" for typical applications in LISP or Scheme. Searching for "scheme web development" turns up just one or two hits, all very basic (like this one http://www.scheme.dk/blog/2007/08/introduction-to-web-develo...)
They lack a lot of features one has come to expect from modern web frameworks. Could be that some turn out to be unnecessary, but still. I think I have found good online references for learning the basics of Scheme, but for now, I still don't know if writing full blown web applications is really feasible.
I like that better than creating the whole HTML in S-Expressions, but at the moment I wonder if the best approach would not be the one I know from XMLC: just operate on the dom-tree of the web page, and then serialize the dom?
Where are good places on the web to discuss such things?
Other features of BRL could be implemented in a non-sexpr language. It just seems nobody cares to make languages truly suitable for database-driven web apps. PHP could have done something like define-input to solve their register_globals problem while retaining a lot of the convenience it had become famous for. A ResultSet object in any language could be extended to have a very useful subset of the functionality in BRL's sql-repeat.
Anyway, I'm not sure the best place for discussion. Most lispers and schemers don't seem interested in web development. Maybe you could discuss it here on news.yc.
I suppose the good news is that Lisp hackers today don't have to feel the fear you felt during Viaweb, that the competition would figure out you were using Lisp, start using Lisp themselves, and beat you. Now we know that kind of thing just doesn't happen. Now you can shout it from the rooftops and know they'll only fear you, since you must be some amazing braniac to be productive in so difficult a language.
This is going to be messy.
Maybe I can defuse the situation with the Premature Godwin Maneuver. Look! Over there! It's Hitler!
That's why I write raw machine code exclusively!
DO COME FROM (20)
USE Intercal
PLEASE GIVE UP
P.S. Could somebody write a real piece of Intercal-code for language selection?What do you mean... that's it? From where I stand, that's quite a lot...
Languages ARE interfaces to the computer system, but that doesn't mean that some aren't more powerful than others. I could write a paper with a typewriter or a word processor, which are both viable ways to produce a document, but I can do things with a word processor that just aren't feasible on a typewriter. If you've never used a word processor, you won't miss things like "copy and paste" or being able to tweak your margins at any time, but if you HAVE used one before you will feel stifled without those abilities. Now, if you use a word processor, but you don't figure out how to use any of those handy features, than it's just an electronic typewriter to you and you'll say things like "tools don't matter! Typewriters and Word Processors are just two different ways to write a paper. That's it!"
of course, you'll probably get a few odd looks for saying that.
A month ago I heard a couple of hackers talk about how they were able to complete a personnel scheduler in Scheme in 20'000 LOC and a few weeks time, when the previous C++ codebase was 200'000 LOC and was never going to be finished.
Not always, but for certain endeavours, certain languages are just much better tools for the job than others, and by better, understand order of magnitude better. That's a very real fact, even if it doesn't make the languages zealots any less obnoxious.
OK, here goes...
Anything you can build, I can build in BASIC. Sure, I may have drop down a level and roll out some tools every once in a while, but my BASIC app will so whatever your <language du jour> app does.
There. I feel better already.
MZ Scheme links trivially to C libraries. I would think that anyone who uses Arc would use this facility heavily. Now whether there exists a C library to do exactly what you want is a different question. And I know this might be heretical here, but ROR is hardly the great time saver the fanboys make it out to be when you count in issues like deployment and doing non standard things with it. (Don't get me wrong, it is a good framework, but it is hardly a magic wand and neither is it very unique - Wicket + scala comes very close to ROR in productivity for example)
PS: How long do you think it would take before people hack up a virtual machine or C code emitter? I, for one would do exactly this if I planned to use it in my startup. It isn't that hard (Ruby's recursive descent sloooww interpreter still powers all those RoR sites, minus the vanishingly few ones in JRuby.)
So no, 'trivial' C linking not actually a silver bullet making everything hunky-dorey with respect to lack of libraries. Python has a significant advantage in that it's popular enough for many people to have already gone through the Pythonification process for most important libraries, and have also open-sourced their Pythonification layers.
I plan to build the arc, set sail and bring 2 of every animal with me.
;)
Why not just wait to see what Arc ends up doing really well out of the box and then considering it for that and leave the things it doesn't handle to something else?
Assuming each one interprets the next.
Arc and Clojure together may make for a great Lisp year.
Writing code is between 1% and 99% of a startup.