language stuff

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

language stuff

Giles Bowkett
couple links that may be of interest...

http://www.paulgraham.com/pypar.html
"The Python Paradox" -- The best way to hire a Java coder is to find a
Python coder and bribe him to code Java instead.

http://www.paulgraham.com/icad.html
"Revenge of the Nerds" -- essay on languages, and why they matter -- excellent

http://www.paulgraham.com/lisp.html
essays on Lisp

http://hop.perl.plover.com/
"Higher Order Perl" -- book on using Perl to do Lisp-style functional
programming

http://randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp
"Why Ruby Is An Acceptable Lisp"

http://en.wikipedia.org/wiki/Category:Computer_languages
General background

I missed almost the entire discussion on this Friday, but, for what
it's worth, I wanted to add a few things because it's a very
interesting subject. In general the family trees of computer languages
bifurcate by purpose and philosophy. Technically markup languages such
as HTML and data-definition and -manipulation languages such as SQL
are also computer languages, but they aren't programming languages.
UML is a computer language but neither a programming, markup, or
data-definition/-manipulation language. XML and Lisp are both
languages which define subsets of themselves to be used as additional
languages. XML can also be considered both a markup language and a
data language; this means you can make the case for considering XML a
markup language, a data language, and a language-definition language.
By far the dominant linguistic paradigm in computer languages today is
object-oriented programming. Additional programming paradigms include
aspect-oriented, language-oriented, procedural, and functional.
Articulations of the object-oriented paradigm differ wildly, from
JavaScript's prototyping, Smalltalk's message-passing, Perl's reckless
informality, Java's straitjacket strictness, and the utterly deranged
Lisp CLOS.

(I left out C/C++ because I don't really know them. This is a big hole
in my computer literacy, I'll plug it at some point.)

A comprehensive taxonomy of programming languages doesn't to my
knowledge exist, but it is of obsessive interest to geeks worldwide.
Among coders writing an elegant language is considered a huge
accomplishment. I could have sworn I overheard somebody saying this
topic would make a good book -- they're right. It would be especially
cool if a book like that contained some tracing, not just of the
family trees of these various languages, but also of the connections
between them. For instance, there are ideas from Smalltalk which show
up in Ruby, a Python hacker who's never seen Lisp in their life will
still use the word "lambda" to return an anonymous function, etc. It'd
be too much to say there was a Smalltalk-Ruby family tree there, or
that Python was born directly from Lisp, but an exchange of genetic
material certainly takes place.

--
Giles Bowkett = Giles Goat Boy
http://www.gilesgoatboy.org/


Reply | Threaded
Open this post in threaded view
|

language stuff

Mikhail Gorelkin
I would like to add that in their book "Concepts, Technologies, and Models
of Computer Programming" Van Roy and Seif Haridi

provided an excellent comparison of computer languages based on programming
paradigms.



-- Mikhail

----- Original Message -----
From: "Giles Bowkett" <[hidden email]>
To: "The Friday Morning Applied Complexity Coffee Group" <Friam at redfish.com>
Sent: Sunday, December 04, 2005 8:10 PM
Subject: [FRIAM] language stuff


> couple links that may be of interest...
>
> http://www.paulgraham.com/pypar.html
> "The Python Paradox" -- The best way to hire a Java coder is to find a
> Python coder and bribe him to code Java instead.
>
> http://www.paulgraham.com/icad.html
> "Revenge of the Nerds" -- essay on languages, and why they matter --  
> excellent
>
> http://www.paulgraham.com/lisp.html
> essays on Lisp
>
> http://hop.perl.plover.com/
> "Higher Order Perl" -- book on using Perl to do Lisp-style functional
> programming
>
> http://randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp
> "Why Ruby Is An Acceptable Lisp"
>
> http://en.wikipedia.org/wiki/Category:Computer_languages
> General background
>
> I missed almost the entire discussion on this Friday, but, for what
> it's worth, I wanted to add a few things because it's a very
> interesting subject. In general the family trees of computer languages
> bifurcate by purpose and philosophy. Technically markup languages such
> as HTML and data-definition and -manipulation languages such as SQL
> are also computer languages, but they aren't programming languages.
> UML is a computer language but neither a programming, markup, or
> data-definition/-manipulation language. XML and Lisp are both
> languages which define subsets of themselves to be used as additional
> languages. XML can also be considered both a markup language and a
> data language; this means you can make the case for considering XML a
> markup language, a data language, and a language-definition language.
> By far the dominant linguistic paradigm in computer languages today is
> object-oriented programming. Additional programming paradigms include
> aspect-oriented, language-oriented, procedural, and functional.
> Articulations of the object-oriented paradigm differ wildly, from
> JavaScript's prototyping, Smalltalk's message-passing, Perl's reckless
> informality, Java's straitjacket strictness, and the utterly deranged
> Lisp CLOS.
>
> (I left out C/C++ because I don't really know them. This is a big hole
> in my computer literacy, I'll plug it at some point.)
>
> A comprehensive taxonomy of programming languages doesn't to my
> knowledge exist, but it is of obsessive interest to geeks worldwide.
> Among coders writing an elegant language is considered a huge
> accomplishment. I could have sworn I overheard somebody saying this
> topic would make a good book -- they're right. It would be especially
> cool if a book like that contained some tracing, not just of the
> family trees of these various languages, but also of the connections
> between them. For instance, there are ideas from Smalltalk which show
> up in Ruby, a Python hacker who's never seen Lisp in their life will
> still use the word "lambda" to return an anonymous function, etc. It'd
> be too much to say there was a Smalltalk-Ruby family tree there, or
> that Python was born directly from Lisp, but an exchange of genetic
> material certainly takes place.
>
> --
> Giles Bowkett = Giles Goat Boy
> http://www.gilesgoatboy.org/
>
> ============================================================
> FRIAM Applied Complexity Group listserv
> Meets Fridays 9a-11:30 at Mission Cafe
> lectures, archives, unsubscribe, maps at http://www.friam.org
>


Reply | Threaded
Open this post in threaded view
|

language stuff

Michael Agar
Interesting stuff. It was Tom Johnson and me, the journalist and the  
anthropologist, who echoed that it would be a good book, and maybe  
some other folks said that as well. We'd (I think Tom would agree)  
want to get into the history and the biographies and the social and  
intellectual circumstances to show how the languages were produced in  
a context as well as talking about their characteristics. The kind of  
mix Waldrop writes for complexity in his book. Be a lot of fun, and  
lot of work, to do. All we need now is a publisher with a fat advance (:

Mike



On Dec 4, 2005, at 7:23 PM, Mikhail Gorelkin wrote:

> I would like to add that in their book "Concepts, Technologies, and  
> Models
> of Computer Programming" Van Roy and Seif Haridi
>
> provided an excellent comparison of computer languages based on  
> programming
> paradigms.
>
>
>
> -- Mikhail
>
> ----- Original Message -----
> From: "Giles Bowkett" <gilesb at gmail.com>
> To: "The Friday Morning Applied Complexity Coffee Group"  
> <Friam at redfish.com>
> Sent: Sunday, December 04, 2005 8:10 PM
> Subject: [FRIAM] language stuff
>
>
>> couple links that may be of interest...
>>
>> http://www.paulgraham.com/pypar.html
>> "The Python Paradox" -- The best way to hire a Java coder is to  
>> find a
>> Python coder and bribe him to code Java instead.
>>
>> http://www.paulgraham.com/icad.html
>> "Revenge of the Nerds" -- essay on languages, and why they matter --
>> excellent
>>
>> http://www.paulgraham.com/lisp.html
>> essays on Lisp
>>
>> http://hop.perl.plover.com/
>> "Higher Order Perl" -- book on using Perl to do Lisp-style functional
>> programming
>>
>> http://randomhacks.net/articles/2005/12/03/why-ruby-is-an- 
>> acceptable-lisp
>> "Why Ruby Is An Acceptable Lisp"
>>
>> http://en.wikipedia.org/wiki/Category:Computer_languages
>> General background
>>
>> I missed almost the entire discussion on this Friday, but, for what
>> it's worth, I wanted to add a few things because it's a very
>> interesting subject. In general the family trees of computer  
>> languages
>> bifurcate by purpose and philosophy. Technically markup languages  
>> such
>> as HTML and data-definition and -manipulation languages such as SQL
>> are also computer languages, but they aren't programming languages.
>> UML is a computer language but neither a programming, markup, or
>> data-definition/-manipulation language. XML and Lisp are both
>> languages which define subsets of themselves to be used as additional
>> languages. XML can also be considered both a markup language and a
>> data language; this means you can make the case for considering XML a
>> markup language, a data language, and a language-definition language.
>> By far the dominant linguistic paradigm in computer languages  
>> today is
>> object-oriented programming. Additional programming paradigms include
>> aspect-oriented, language-oriented, procedural, and functional.
>> Articulations of the object-oriented paradigm differ wildly, from
>> JavaScript's prototyping, Smalltalk's message-passing, Perl's  
>> reckless
>> informality, Java's straitjacket strictness, and the utterly deranged
>> Lisp CLOS.
>>
>> (I left out C/C++ because I don't really know them. This is a big  
>> hole
>> in my computer literacy, I'll plug it at some point.)
>>
>> A comprehensive taxonomy of programming languages doesn't to my
>> knowledge exist, but it is of obsessive interest to geeks worldwide.
>> Among coders writing an elegant language is considered a huge
>> accomplishment. I could have sworn I overheard somebody saying this
>> topic would make a good book -- they're right. It would be especially
>> cool if a book like that contained some tracing, not just of the
>> family trees of these various languages, but also of the connections
>> between them. For instance, there are ideas from Smalltalk which show
>> up in Ruby, a Python hacker who's never seen Lisp in their life will
>> still use the word "lambda" to return an anonymous function, etc.  
>> It'd
>> be too much to say there was a Smalltalk-Ruby family tree there, or
>> that Python was born directly from Lisp, but an exchange of genetic
>> material certainly takes place.
>>
>> --
>> Giles Bowkett = Giles Goat Boy
>> http://www.gilesgoatboy.org/
>>
>> ============================================================
>> FRIAM Applied Complexity Group listserv
>> Meets Fridays 9a-11:30 at Mission Cafe
>> lectures, archives, unsubscribe, maps at http://www.friam.org
>>
>
> ============================================================
> FRIAM Applied Complexity Group listserv
> Meets Fridays 9a-11:30 at Mission Cafe
> lectures, archives, unsubscribe, maps at http://www.friam.org



Reply | Threaded
Open this post in threaded view
|

language stuff

Joshua Thorp
Here is a fun chart apropos the conversation:
http://www.levenez.com/lang/history.html


--joshua


On Dec 5, 2005, at 6:30 PM, Michael Agar wrote:

> Interesting stuff. It was Tom Johnson and me, the journalist and the
> anthropologist, who echoed that it would be a good book, and maybe
> some other folks said that as well. We'd (I think Tom would agree)
> want to get into the history and the biographies and the social and
> intellectual circumstances to show how the languages were produced in
> a context as well as talking about their characteristics. The kind of
> mix Waldrop writes for complexity in his book. Be a lot of fun, and
> lot of work, to do. All we need now is a publisher with a fat  
> advance (:
>
> Mike
>
>
>
> On Dec 4, 2005, at 7:23 PM, Mikhail Gorelkin wrote:
>
>> I would like to add that in their book "Concepts, Technologies, and
>> Models
>> of Computer Programming" Van Roy and Seif Haridi
>>
>> provided an excellent comparison of computer languages based on
>> programming
>> paradigms.
>>
>>
>>
>> -- Mikhail
>>
>> ----- Original Message -----
>> From: "Giles Bowkett" <gilesb at gmail.com>
>> To: "The Friday Morning Applied Complexity Coffee Group"
>> <Friam at redfish.com>
>> Sent: Sunday, December 04, 2005 8:10 PM
>> Subject: [FRIAM] language stuff
>>
>>
>>> couple links that may be of interest...
>>>
>>> http://www.paulgraham.com/pypar.html
>>> "The Python Paradox" -- The best way to hire a Java coder is to
>>> find a
>>> Python coder and bribe him to code Java instead.
>>>
>>> http://www.paulgraham.com/icad.html
>>> "Revenge of the Nerds" -- essay on languages, and why they matter --
>>> excellent
>>>
>>> http://www.paulgraham.com/lisp.html
>>> essays on Lisp
>>>
>>> http://hop.perl.plover.com/
>>> "Higher Order Perl" -- book on using Perl to do Lisp-style  
>>> functional
>>> programming
>>>
>>> http://randomhacks.net/articles/2005/12/03/why-ruby-is-an-
>>> acceptable-lisp
>>> "Why Ruby Is An Acceptable Lisp"
>>>
>>> http://en.wikipedia.org/wiki/Category:Computer_languages
>>> General background
>>>
>>> I missed almost the entire discussion on this Friday, but, for what
>>> it's worth, I wanted to add a few things because it's a very
>>> interesting subject. In general the family trees of computer
>>> languages
>>> bifurcate by purpose and philosophy. Technically markup languages
>>> such
>>> as HTML and data-definition and -manipulation languages such as SQL
>>> are also computer languages, but they aren't programming languages.
>>> UML is a computer language but neither a programming, markup, or
>>> data-definition/-manipulation language. XML and Lisp are both
>>> languages which define subsets of themselves to be used as  
>>> additional
>>> languages. XML can also be considered both a markup language and a
>>> data language; this means you can make the case for considering  
>>> XML a
>>> markup language, a data language, and a language-definition  
>>> language.
>>> By far the dominant linguistic paradigm in computer languages
>>> today is
>>> object-oriented programming. Additional programming paradigms  
>>> include
>>> aspect-oriented, language-oriented, procedural, and functional.
>>> Articulations of the object-oriented paradigm differ wildly, from
>>> JavaScript's prototyping, Smalltalk's message-passing, Perl's
>>> reckless
>>> informality, Java's straitjacket strictness, and the utterly  
>>> deranged
>>> Lisp CLOS.
>>>
>>> (I left out C/C++ because I don't really know them. This is a big
>>> hole
>>> in my computer literacy, I'll plug it at some point.)
>>>
>>> A comprehensive taxonomy of programming languages doesn't to my
>>> knowledge exist, but it is of obsessive interest to geeks worldwide.
>>> Among coders writing an elegant language is considered a huge
>>> accomplishment. I could have sworn I overheard somebody saying this
>>> topic would make a good book -- they're right. It would be  
>>> especially
>>> cool if a book like that contained some tracing, not just of the
>>> family trees of these various languages, but also of the connections
>>> between them. For instance, there are ideas from Smalltalk which  
>>> show
>>> up in Ruby, a Python hacker who's never seen Lisp in their life will
>>> still use the word "lambda" to return an anonymous function, etc.
>>> It'd
>>> be too much to say there was a Smalltalk-Ruby family tree there, or
>>> that Python was born directly from Lisp, but an exchange of genetic
>>> material certainly takes place.
>>>
>>> --
>>> Giles Bowkett = Giles Goat Boy
>>> http://www.gilesgoatboy.org/
>>>
>>> ============================================================
>>> FRIAM Applied Complexity Group listserv
>>> Meets Fridays 9a-11:30 at Mission Cafe
>>> lectures, archives, unsubscribe, maps at http://www.friam.org
>>>
>>
>> ============================================================
>> FRIAM Applied Complexity Group listserv
>> Meets Fridays 9a-11:30 at Mission Cafe
>> lectures, archives, unsubscribe, maps at http://www.friam.org
>
>
> ============================================================
> FRIAM Applied Complexity Group listserv
> Meets Fridays 9a-11:30 at Mission Cafe
> lectures, archives, unsubscribe, maps at http://www.friam.org



Reply | Threaded
Open this post in threaded view
|

language stuff

Parks, Raymond
In reply to this post by Michael Agar
Michael Agar wrote:
> Interesting stuff. It was Tom Johnson and me, the journalist and the  
> anthropologist, who echoed that it would be a good book, and maybe  
> some other folks said that as well. We'd (I think Tom would agree)  
> want to get into the history and the biographies and the social and  
> intellectual circumstances to show how the languages were produced in  
> a context as well as talking about their characteristics. The kind of  
> mix Waldrop writes for complexity in his book. Be a lot of fun, and  
> lot of work, to do. All we need now is a publisher with a fat advance (:

   A possibly related area that has been a hobby of mine is the
inheritance of actual code.  One example: for many years, every network
exploit for which I found the source used bzero to prepare the attack
payload.  This was clearly inherited from BSD.  Another example: I
examined the source code for a covert channel program, loki, and noted
many programming similiarities to the packet creation library, libnet.
I can't say for certain, but I suspect that the same person wrote parts
of both, despite the various aliases used.

   Another interesting anthropological aspect of software development is
the backgrounds of programmers.  These have changed over the years that
I have worked.  Most programmers I meet now have a related college
degree.  Back when I managed the software for a satellite ground system,
my best programmers were a former radar tech, a Ph.D. linguist, and a
Ph.D. oceanographer.

   Yet another anthropological study would be to examine how programmers
learn and how that affects their programs.  I once inherited a set of
code programmed by one person.  As I examined the code, I realized that
the author, like a painter, had different periods of coding.  The
earliest code showed that he had learned one trick and tried to use it
for everything.  As one progressed forward in the timeline of his
coding, one could see when he learned new algorithms - they entered his
code and displaced the previous favourite.

   I've tried for years to convince software forensics researchers to
take up this area, but with little success.

--
Ray Parks                   rcparks at sandia.gov
IDART Project Lead          Voice:505-844-4024
IORTA Department            Fax:505-844-9641
http://www.sandia.gov/idart Pager:800-690-5288



Reply | Threaded
Open this post in threaded view
|

language stuff

Tom Johnson
Ray, et al.:

Can/could you tell from studying code anything about the author's culture?

For example, if I gave three teams a project and objectives to code in the
same language, could I later apply forensic techniques in order to say,
"This project result was coded by the Russian team, this one by the Indians
and that one by the Americans, or at least someone trained in those
counties"?

Just as a linguist can often narrow a person's place of origin to some
fairly small region, would a coder over time reflect similar cultural
"accents" as opposed to individual idiosyncrasies?  Or is coding simply too
exacting to allow for much deviance?

These analytic techniques might draw on content analysis, photo
interpretation, remote sensing and other forensic disciplines, even the
analysis of art (See The Rembrandt
Code<http://www.wired.com/wired/archive/13.12/>in WIRED .)
But each of those usually has a base or standard version to work from in
searching for deviations.  How much code would an forensic analyst need to
make some predictions of authorship?

I'm thinking that understanding all this might have some interesting
applications in tracking the memes of innovation and technological change
over time and place.

-Tom

On 12/5/05, Raymond Parks <rcparks at sandia.gov> wrote:

>
> Michael Agar wrote:
> > Interesting stuff. It was Tom Johnson and me, the journalist and the
> > anthropologist, who echoed that it would be a good book, and maybe
> > some other folks said that as well. We'd (I think Tom would agree)
> > want to get into the history and the biographies and the social and
> > intellectual circumstances to show how the languages were produced in
> > a context as well as talking about their characteristics. The kind of
> > mix Waldrop writes for complexity in his book. Be a lot of fun, and
> > lot of work, to do. All we need now is a publisher with a fat advance (:
>
>    A possibly related area that has been a hobby of mine is the
> inheritance of actual code.  One example: for many years, every network
> exploit for which I found the source used bzero to prepare the attack
> payload.  This was clearly inherited from BSD.  Another example: I
> examined the source code for a covert channel program, loki, and noted
> many programming similiarities to the packet creation library, libnet.
> I can't say for certain, but I suspect that the same person wrote parts
> of both, despite the various aliases used.
>
>    Another interesting anthropological aspect of software development is
> the backgrounds of programmers.  These have changed over the years that
> I have worked.  Most programmers I meet now have a related college
> degree.  Back when I managed the software for a satellite ground system,
> my best programmers were a former radar tech, a Ph.D. linguist, and a
> Ph.D. oceanographer.
>
>    Yet another anthropological study would be to examine how programmers
> learn and how that affects their programs.  I once inherited a set of
> code programmed by one person.  As I examined the code, I realized that
> the author, like a painter, had different periods of coding.  The
> earliest code showed that he had learned one trick and tried to use it
> for everything.  As one progressed forward in the timeline of his
> coding, one could see when he learned new algorithms - they entered his
> code and displaced the previous favourite.
>
>    I've tried for years to convince software forensics researchers to
> take up this area, but with little success.
>
> --
> Ray Parks                   rcparks at sandia.gov
> IDART Project Lead          Voice:505-844-4024
> IORTA Department            Fax:505-844-9641
> http://www.sandia.gov/idart Pager:800-690-5288
>
>
> ============================================================
> FRIAM Applied Complexity Group listserv
> Meets Fridays 9a-11:30 at Mission Cafe
> lectures, archives, unsubscribe, maps at http://www.friam.org
>



--
==============================================
J. T. Johnson
Institute for Analytic Journalism
www.analyticjournalism.com
505.577.6482(c)                                 505.473.9646(h)
http://www.jtjohnson.com               tom at jtjohnson.com

"You never change things by fighting the existing reality.
To change something, build a new model that makes the
existing model obsolete."
                                                   -- Buckminster Fuller
==============================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://redfish.com/pipermail/friam_redfish.com/attachments/20051205/97198234/attachment.htm

Reply | Threaded
Open this post in threaded view
|

language stuff

Parks, Raymond
J T Johnson wrote:

> Ray, et al.:
>
> Can/could you tell from studying code anything about the author's culture?

   Possibly, but I think cultural differences are less apparent than
pedagogic ones.

> For example, if I gave three teams a project and objectives to code in the
> same language, could I later apply forensic techniques in order to say,
> "This project result was coded by the Russian team, this one by the Indians
> and that one by the Americans, or at least someone trained in those
> counties"?

   Well, if any comments are in the native language, there's no problem.
  I've spent a fair amount of time trying to puzzle out comments in
Portuguese and Italian.

   Aside from that obvious indicator, I would expect it would be easier
to determine who learned from whom.  Either indirectly or directly,
every coder I've known exhibits the same techniques as the person from
whom they learned.  In some cases, that relationship is formal and in
person - school.  In most cases, the relationship is informal and
indirect - code re-use.  The example I gave of using bzero instead of
memset is a case of the latter.  The first hacker in the sequence
re-used some BSD network code and all the subsequent ones copied him or her.

   If one can get the source code, one might be able to look for
similiarity in the optional features as well as in the algorithms.
1.  Which style of braces in C and C++ does the coder use?  K&R or modern?
2.  Does the coder always put at least eight blank spaces in front of
each line?  An old Fortran programmer.
3.  How does the coder write comments?  /* or // (C or C++).  Every line
of the comment distinguished or only the beginning and end?

/*
**  This is a comment.
*/

or

/*
This is a comment */

4.  Does the coder write java with pointers (I know, Java doesn't have
pointers, but one can fake it)?  Originally a C programmer.

5.  One project I red-teamed had Java source code that reminded me of
lisp.  As it turned out, one of the coders had originally been a lisp
programmer.

   That brings out a further complication - almost no source code is the
product of a single individual, anymore.  Usually, a logical segment of
source code can be attributed to a single individual, but even functions
are sometimes collaborative.  How could one perform this analysis of the
Linux kernel?

> Just as a linguist can often narrow a person's place of origin to some
> fairly small region, would a coder over time reflect similar cultural
> "accents" as opposed to individual idiosyncrasies?  Or is coding simply too
> exacting to allow for much deviance?

   I'm pretty sure you'd have more luck detecting the "school" of the
coder.  As I've said - programmers tend to use the same methods as their
teachers.

   The biggest problem for this activity is getting source code.
Usually, one can't find source code and one is left with the object
code.  Compilers tend to converge the source code differences in object
code.  Nevertheless, there are some things one can derive from object
code unless the developer used full optimization. Someone who's been a
real-time, embedded systems programmer is more likely to use an
algorithmic structure such as a software bus than is a modern web
developer.  Subtle differences, such as while-loop versus for-loop
disappear in compilation, especially when optimization rolls out the
iterations into one long, flat sequence.  Looking for common errors
might be more profitable.  I'm sure Owen, Stephen, Giles, and every
other software developer on the list has their own wrong-way iteration
story - when a novice programmer writes code that steps through a
two-dimensional array in the wrong order.  This type of mistake is
common and may be useful for distinguishing the lesser programmers.

> These analytic techniques might draw on content analysis, photo
> interpretation, remote sensing and other forensic disciplines, even the
> analysis of art (See The Rembrandt
> Code<http://www.wired.com/wired/archive/13.12/>in WIRED .)
> But each of those usually has a base or standard version to work from in
> searching for deviations.  How much code would an forensic analyst need to
> make some predictions of authorship?

   Feature recognition from image processing or even the new mathematics
of surprise might be another possibility.  Without trying these
techniques, I couldn't say.  First, one would have to undo the changes
from the compiler - sort of like disassembly but more complex.  I use
reverse engineering tools and this would go a step beyond idapro.

> I'm thinking that understanding all this might have some interesting
> applications in tracking the memes of innovation and technological change
> over time and place.

   That is definitely a possibility.  I know that much of what I've said
paints software programming as like the art world (all puns intended).
I'm not sure if we can use technology as the software equivalent of art
detectives, but it would be fun to try.

--
Ray Parks                   rcparks at sandia.gov
IDART Project Lead          Voice:505-844-4024
IORTA Department            Fax:505-844-9641
http://www.sandia.gov/idart Pager:800-690-5288



Reply | Threaded
Open this post in threaded view
|

language stuff

Michael Agar
In reply to this post by Tom Johnson
In a parallel research universe, the field of "world English" shows  
how  shared syntax and lexicon doesn't mean that people of different  
historical backgrounds are necessarily saying the same things at all.  
In another, text linguistics, second language English speakers  
complain that their articles, in English, have problems making it  
past native English speaking editors, not because of syntax and  
lexicon, but because the sense of presenting and analyzing a problem  
is so different. The Austrian joke I learned during my days at the  
Linguistics Institute in Vienna was, a German comes in with his  
eleven volume "Introduction to Elephant Science" and the American  
comes in with a twenty page essay entitled "How To Use an Elephant."

Thing that would fascinate me would be to look at all the old tried  
and true much studied issues treated in the natural language  
literature--language policy, language change, multilingualism,  
pidgins and creoles, etc--and use them to follow the evolution of  
computer languages, which are much more formally constrained and self-
consciously constructed. Well, sometimes anyway (:.

Mike


On Dec 5, 2005, at 6:22 PM, J T Johnson wrote:

> Ray, et al.:
>
> Can/could you tell from studying code anything about the author's  
> culture?
>
> For example, if I gave three teams a project and objectives to code  
> in the same language, could I later apply forensic techniques in  
> order to say, "This project result was coded by the Russian team,  
> this one by the Indians and that one by the Americans, or at least  
> someone trained in those counties"?
>
> Just as a linguist can often narrow a person's place of origin to  
> some fairly small region, would a coder over time reflect similar  
> cultural "accents" as opposed to individual idiosyncrasies?  Or is  
> coding simply too exacting to allow for much deviance?
>
> These analytic techniques might draw on content analysis, photo  
> interpretation, remote sensing and other forensic disciplines, even  
> the analysis of art (See The Rembrandt Code in WIRED .)  But each  
> of those usually has a base or standard version to work from in  
> searching for deviations.  How much code would an forensic analyst  
> need to make some predictions of authorship?
>
> I'm thinking that understanding all this might have some  
> interesting applications in tracking the memes of innovation and  
> technological change over time and place.
>
> -Tom
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://redfish.com/pipermail/friam_redfish.com/attachments/20051205/45e30d5a/attachment.htm

Reply | Threaded
Open this post in threaded view
|

language stuff

Owen Densmore
Administrator
An interesting modifier for describing languages nowadays is  
"agile".  It is both a desire to go back to a simpler world, yet a  
desire to have a modern language.  And yes, it has social impact ..  
developers are starting to be very tired of how hard it is to build  
simple things and are revolting .. running in the school halls so to  
speak .. and having none of the Big Corporate Bullshit anymore.

Part of "agile" is expressive power and brevity: doing a lot with a  
small number of constructs.

The language also has to provide for modern requirements like garbage  
collection and threads .. things that make it very easy to team  
program and to write "services".  And "object orientation" natch.

Java was the first to provide several important ideas, but fell down  
badly with agility: it takes way, way, way too much code to do simple  
things.  Earning the Java Merit Badge is really a form of desperation.

There is a feeling in the hacker community that The Next Big Thing is  
about to happen, however, and it will be a sweet language.  Ruby is  
really close.  Python certainly has lead us on a fine chase, but its  
object system is soooo bad that few folks can stand it for long.  PHP  
is a polished web environment but definitely showing its age.

But there is another thing going on .. and I'm not so sure how it  
relates to narrative and social constructs: Frameworks.

Frameworks are suites of classes which make it trivial to do  
something that from scratch is very hard.  It is a realization that  
"libraries" and "packages" are not enough.  The best example in the  
past that I recall is MacApp .. an early Application Framework.  You  
had to subclass three classes, basically Model, View, and Controller,  
and you had a trivial application.  You inherited cut & paste, redo/
undo, printing, file browsing, keyboard shortcuts, standard menus,  
etc etc.  Thus you started with a "null app" and made modifications  
for your particular app.

Ruby on Rails is the hottest Framework nowadays .. same idea: you get  
a Web App for nearly free, plus a really "agile" language to boot.  
It has absolutely skyrocketed.

     -- Owen

Owen Densmore
http://backspaces.net - http://redfish.com - http://friam.org




Reply | Threaded
Open this post in threaded view
|

language stuff

Jochen Fromm-3

The keyword "Agile Programming" reminds me of this Dilbert cartoon
http://www.dilbert.com/comics/dilbert/archive/dilbert-20051116.html 

-J.

-----Urspr?ngliche Nachricht-----
Von: Friam-bounces at redfish.com [mailto:Friam-bounces at redfish.com] Im Auftrag
von Owen Densmore
Gesendet: Dienstag, 6. Dezember 2005 06:09
An: The Friday Morning Applied Complexity Coffee Group
Betreff: Re: [FRIAM] language stuff

An interesting modifier for describing languages nowadays is  
"agile".  It is both a desire to go back to a simpler world, yet a  
desire to have a modern language.  And yes, it has social impact ..  
developers are starting to be very tired of how hard it is to build  
simple things and are revolting .. running in the school halls so to  
speak .. and having none of the Big Corporate Bullshit anymore.

Part of "agile" is expressive power and brevity: doing a lot with a  
small number of constructs.

The language also has to provide for modern requirements like garbage  
collection and threads .. things that make it very easy to team  
program and to write "services".  And "object orientation" natch.

Java was the first to provide several important ideas, but fell down  
badly with agility: it takes way, way, way too much code to do simple  
things.  Earning the Java Merit Badge is really a form of desperation.

There is a feeling in the hacker community that The Next Big Thing is  
about to happen, however, and it will be a sweet language.  Ruby is  
really close.  Python certainly has lead us on a fine chase, but its  
object system is soooo bad that few folks can stand it for long.  PHP  
is a polished web environment but definitely showing its age.

But there is another thing going on .. and I'm not so sure how it  
relates to narrative and social constructs: Frameworks.

Frameworks are suites of classes which make it trivial to do  
something that from scratch is very hard.  It is a realization that  
"libraries" and "packages" are not enough.  The best example in the  
past that I recall is MacApp .. an early Application Framework.  You  
had to subclass three classes, basically Model, View, and Controller,  
and you had a trivial application.  You inherited cut & paste, redo/
undo, printing, file browsing, keyboard shortcuts, standard menus,  
etc etc.  Thus you started with a "null app" and made modifications  
for your particular app.

Ruby on Rails is the hottest Framework nowadays .. same idea: you get  
a Web App for nearly free, plus a really "agile" language to boot.  
It has absolutely skyrocketed.

     -- Owen

Owen Densmore
http://backspaces.net - http://redfish.com - http://friam.org



============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at Mission Cafe
lectures, archives, unsubscribe, maps at http://www.friam.org