Hi Phil, thanks for your reply.

The source data structure doesn't have to contain only "bare" source code. 
It could contain everything that is in a text file, but just saved in a 
structured way. 
The data needs to be "compiled" to bytecode anyway.

I'm not sure if diffing is a huge problem. You can still pretty print you 
source data and save it into a text file. 
Diffing these files should be enough to get an idea what was changed. 
And if not a special diffing tool would have other advantages to I think. 

Finally, source code is often wrong, or a work in progress. Okay, with 
> paredit, Clojure can be mostly kept correct (syntactically) most of the 
> time, but lisp is the oddity, and you need all the brackets to enable 
> this. Even with paredit, for me, editing in this way fails often enough 
> for me, that I wrote something to switch paredit off rapidly, and then 
> back on again when I've fixed it. 


You can still save your programm as a data structure even if its wrong. Or 
am I missing your point?


Thomas

Am Freitag, 14. November 2014 18:05:47 UTC+1 schrieb Phillip Lord:
>
>
>
> I can think of several reasons. 
>
> First and most important, code is data, but source files are not code. 
> They are source and include many things a lot of which do not obey the 
> syntactic rules of the language. Comments and indentation are the most 
> obvious ones. 
>
> Second, reason is that not only do you need a special tool for editing, 
> you need a special tool for diffing as well. And version control. Maybe 
> you will have to rewrite these for every language now, rather than using 
> the lowest common denominator line-orientated syntax. 
>
> Also, you will have to update your editing environment for every new 
> version of the language. 
>
> Finally, source code is often wrong, or a work in progress. Okay, with 
> paredit, Clojure can be mostly kept correct (syntactically) most of the 
> time, but lisp is the oddity, and you need all the brackets to enable 
> this. Even with paredit, for me, editing in this way fails often enough 
> for me, that I wrote something to switch paredit off rapidly, and then 
> back on again when I've fixed it. 
>
> It sounds like a nice idea, but I think it's not. In fact, one of the 
> motivations behind my clojure library (Tawny-OWL) was to move away from 
> manipulating a program (well, not a program, but a complex, formal data 
> structure, but it's the same thing) by changing an live data structure, 
> and move toward a flat file that has to be parsed. Sounds like a 
> backwards step, but isn't. 
>
> Phil 
>
>
> Thomas Huber <th0mas...@googlemail.com <javascript:>> writes: 
>
> > 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). 
> > 
> > 
> > These are the benefits I can think of: 
> > 
> >  - It enables you to use any Clojure function to manipulate your source 
> > „code“. Giving you hole new opportunities for refactoring.This functions 
> > can be provides as library. 
> > 
> > 
> > - Really nice auto complete. 
> > 
> > 
> > - Visual programming. Source code can be represented in many different 
> ways 
> > (not just text) . The easiest example I can think of is color. It can be 
> > represented as text of course (#23FF02) 
> > 
> > but that’s a quite bad interface for humans. Why not display the actual 
> > color and provide a color picker? Or what about music notes? Or Math 
> > formulars? Or what about a tree view to move and rename functions like 
> > files? 
> > 
> > This could all be implemented in a way that every library can ship there 
> > own „views“. I think this „views“ are basically macros that are not 
> limited 
> > to text. 
> > 
> > 
> > - You don’t have to worry that you text files are in the same state as 
> your 
> > JVM (when developing interactive). You only work on your sourcedata and 
> it 
> > gets loaded into the JVM automatically. 
> > 
> > 
> > - Answer questions about your source code. What is the most called 
> > function? Who depends on this namespace? Where is this function used? 
> What 
> > is the biggest function? Thinks like that become easy. Again you can 
> ship 
> > this queries as a library. 
> > 
> > 
> > 
> > 
> > The drawback is you can’t simply program using any text editor. You need 
> a 
> > special tool. But we have that anyway (syntax highlighting, paredit 
> etc.). 
> > Nobody programs using a bare text editor. 
> > 
> > 
> > Maybe this idea is not new? What do you think? 
>
> -- 
> Phillip Lord,                           Phone: +44 (0) 191 208 7827 
> Lecturer in Bioinformatics,             Email: philli...@newcastle.ac.uk 
> <javascript:> 
> School of Computing Science,            
> http://homepages.cs.ncl.ac.uk/phillip.lord 
> Room 914 Claremont Tower,               skype: russet_apples 
> Newcastle University,                   twitter: phillord 
> NE1 7RU                                 
>

-- 
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.

Reply via email to