This is an interesting topic. Unfortunately I'm quite busy getting ready for the conj, but my talk on Cursive at the conj is actually quite related to this. I think text is actually a pretty good representation for programs - at least, I haven't seen anything more convincing except for very specific domains. But the fact that the representation is text doesn't preclude tools which understand the language that they're editing.
Anyway, hopefully I can come back to this in a couple of weeks, comment more and read the links! Cheers, Colin On 15 November 2014 13:48, Daniel Orias <orias.dan...@gmail.com> wrote: > > > On Friday, November 14, 2014 4:42:57 AM UTC-8, Thomas Huber wrote: >> >> Hi, here is an idea that has been in my mind for a while. I wonder what >> you think about it. >> >> >> In Clojure code is data, right? But when we program we manipulate flat >> text files, not the data directly. >> >> Imagine your source code where a data structure (in memory). And >> programming is done by manipulating this data structure. No text editor and >> text files involved. >> >> Your editor directly manipulates the source data and later saves it on >> disk (maybe as a text file). >> > > I think saying code is data shoots past some subtlety in the concept of > Clojure, as a Lisp, being homoiconic. Code is data. Data is code. How a > sequence of bytes is labelled depends on the context, and in many respects, > the only purpose in applying the label is to map what's going on to how we > were taught what programs and data are. > > Flat files are a persistence implementation detail. They are read in, as > requested, in order to provide bindings and data to be transformed or > referenced. The flat text file format is simple and human-readable. That > said, one could choose a relational database to store one's data and > functions. I suppose, in that case, one could link the functions to be used > to the data that is in its domain. There's a variation on type safety. > > Some people do program with a bare text editor. For what one gives up, a > bare text editor does encourages keeping the program small enough to fit > into the programmer's imagination. I did many a utility in AutoLISP back in > the 90s using NotePad. > > Now, I put having a REPL in higher regard than color-syntax marking, but I > see your point with regards to changing the representation of the objects, > though your example of music has some issues in that there's standard > notation, there's tablature, and some jazz musicians of the Be-Bop era > created their own notation because the notes weren't as important (they > were excellent improvisers) as the structure. Representation, beyond the > standard norms of alphanumeric strings, is probably best left to the > programmer who would best understand why something non-standard is needed. > > Clojure is not a brand-new language any more, so I wonder why is there > nothing like DrRacket? (It creates and edits the source files. It's a REPL. > Representation of the objects can be altered by the programmer.) Is it > because of the jvm and licensing issues? Maybe there is something as nice > as DrRacket for Clojure and I didn't notice it. > > I fear, though, that I'm missing your point and perhaps I'm wrong in > thinking that "code is data" is in some way incomplete as a premise. > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.