RADIANCE and Unix shells

I am fairly new to unix usage, so i have not developed a preference for a particular flavor of shell. As I am now beginning to experiment with more shell programming, the question is, are there particular aspects of RADIANCE that make programming it in a particular shell more advantageous to others?

I was using tcsh (the Mac OSX former default) but am at the point where I want to explore other options.

Thanks for the input - I know this can be a highly personal and/or application-specific decision, but all thoughts welcome.

kirk

···

------------------------------

Kirk L. Thibault, Ph.D.
[email protected]

p. 215.271.7720
f. 215.271.7740
c. 267.918.6908

skype. kirkthibault

Hi Kirk,

Depending on what you are trying to do you may want to consider something more robust in terms of programming features such as Perl or Python. I am a huge fan of Perl which is extremely robust. On the other hand I know that Georg Mischler is quite a proponent of Python which is also quite robust.

Regards,

-Jack

Kirk Thibault wrote:

···

I am fairly new to unix usage, so i have not developed a preference for a particular flavor of shell. As I am now beginning to experiment with more shell programming, the question is, are there particular aspects of RADIANCE that make programming it in a particular shell more advantageous to others?

I was using tcsh (the Mac OSX former default) but am at the point where I want to explore other options.

Thanks for the input - I know this can be a highly personal and/or application-specific decision, but all thoughts welcome.

kirk

------------------------------

Kirk L. Thibault, Ph.D.
[email protected]

p. 215.271.7720
f. 215.271.7740
c. 267.918.6908

skype. kirkthibault

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

I have ventured into the realm of Python, so I hear you on that aspect - Blender's API is also Python, so that may be a way to go versus pure shell programming. Any examples of programming RADIANCE through Python would be great.

I'll search around.

Thanks!

kirk

···

On Sep 29, 2005, at 1:29 PM, Jack de Valpine wrote:

Hi Kirk,

Depending on what you are trying to do you may want to consider something more robust in terms of programming features such as Perl or Python. I am a huge fan of Perl which is extremely robust. On the other hand I know that Georg Mischler is quite a proponent of Python which is also quite robust.

Regards,

-Jack

Kirk Thibault wrote:

I am fairly new to unix usage, so i have not developed a preference for a particular flavor of shell. As I am now beginning to experiment with more shell programming, the question is, are there particular aspects of RADIANCE that make programming it in a particular shell more advantageous to others?

I was using tcsh (the Mac OSX former default) but am at the point where I want to explore other options.

Thanks for the input - I know this can be a highly personal and/or application-specific decision, but all thoughts welcome.

kirk

------------------------------

Kirk L. Thibault, Ph.D.
[email protected]

p. 215.271.7720
f. 215.271.7740
c. 267.918.6908

skype. kirkthibault

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Jack de Valpine wrote:

Hi Kirk,

Depending on what you are trying to do you may want to consider something more robust in terms of programming features such as Perl or Python. I am a huge fan of Perl which is extremely robust. On the other hand I know that Georg Mischler is quite a proponent of Python which is also quite robust.

Starbucks coffee is also known for their robustness, but then again that doesn't really help you with programming. =8-)

Ahem.

Kirk, Jack is steering you in the right direction, but I'd also like to cast a vote for good old fashioned shell scripting, using either bash or tsh. Some of the radiance commands are actually shell scripts, usually written in tsh, which may be a case for learning tsh. I learned shell scripting by dissecting some of the stuff Greg Ward and John Mardaljevic wrote, which served me well for many years. Bash has more features than tsh, but then again like Jack said languages like Python and Perl have many more than Bash. It comes down to what you're trying to do, and how much you expect to borrow from other sources too.

Also, regarding Perl: Jack's a Perl fan because he knows it well. But I'd caution that Perl can be a bear when working with Other People's Code, because it is so "loose". There is a saying among Perl People that goes "There's more than one way to do it", which can be an obstacle when trying to read someone else's programs (which is how I learned programming in the first place). I grow fonder of Python all the time.

Whatever way you go, have fun! Scripting is the key to unlocking the power of Radiance.

- Rob Guglielmetti

How do you like Blender?

Kirk Thibault wrote:

···

I have ventured into the realm of Python, so I hear you on that aspect - Blender's API is also Python, so that may be a way to go versus pure shell programming. Any examples of programming RADIANCE through Python would be great.

I'll search around.

Thanks!

kirk

On Sep 29, 2005, at 1:29 PM, Jack de Valpine wrote:

Hi Kirk,

Depending on what you are trying to do you may want to consider something more robust in terms of programming features such as Perl or Python. I am a huge fan of Perl which is extremely robust. On the other hand I know that Georg Mischler is quite a proponent of Python which is also quite robust.

Regards,

-Jack

Kirk Thibault wrote:

I am fairly new to unix usage, so i have not developed a preference for a particular flavor of shell. As I am now beginning to experiment with more shell programming, the question is, are there particular aspects of RADIANCE that make programming it in a particular shell more advantageous to others?

I was using tcsh (the Mac OSX former default) but am at the point where I want to explore other options.

Thanks for the input - I know this can be a highly personal and/ or application-specific decision, but all thoughts welcome.

kirk

------------------------------

Kirk L. Thibault, Ph.D.
[email protected]

p. 215.271.7720
f. 215.271.7740
c. 267.918.6908

skype. kirkthibault

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Hey Rob,

I follow-up on that. I probably could have used a more robust cup of jo this morning as I repeated the word in every darn sentence. Ack!

In general, I think that if you learn one of these things then entry into the next becomes easier. I started out with csh, sed and awk, ages ago, and while it worked it is ugly, I had to learn how to use three different tools (heck, I think that you can by an O'Reilly book for each of these). Nevertheless, shell scripting is definitely the most quick and dirty way to get things done.

Rob is correct. A hugely confusing element to Perl (for which you can buy a lot more than 3 O'Reilly books) is the fact that there are lots and lots of way to do things, this can be both a pro and a con. Though I think in general looking at other peoples code is always painful unless it is extremely well documented. I cannot really speak for Python, though I think it is probably a bit "cleaner" than Perl.

I think the crux of it all though is having an actual problem that you are trying to solve and access to some good books with examples. This is the best way to learn that I have found.

-Jack

Rob Guglielmetti wrote:

···

Jack de Valpine wrote:

Hi Kirk,

Depending on what you are trying to do you may want to consider something more robust in terms of programming features such as Perl or Python. I am a huge fan of Perl which is extremely robust. On the other hand I know that Georg Mischler is quite a proponent of Python which is also quite robust.

Starbucks coffee is also known for their robustness, but then again that doesn't really help you with programming. =8-)
Ahem.
Kirk, Jack is steering you in the right direction, but I'd also like to cast a vote for good old fashioned shell scripting, using either bash or tsh. Some of the radiance commands are actually shell scripts, usually written in tsh, which may be a case for learning tsh. I learned shell scripting by dissecting some of the stuff Greg Ward and John Mardaljevic wrote, which served me well for many years. Bash has more features than tsh, but then again like Jack said languages like Python and Perl have many more than Bash. It comes down to what you're trying to do, and how much you expect to borrow from other sources too.
Also, regarding Perl: Jack's a Perl fan because he knows it well. But I'd caution that Perl can be a bear when working with Other People's Code, because it is so "loose". There is a saying among Perl People that goes "There's more than one way to do it", which can be an obstacle when trying to read someone else's programs (which is how I learned programming in the first place). I grow fonder of Python all the time.

Whatever way you go, have fun! Scripting is the key to unlocking the power of Radiance.

- Rob Guglielmetti

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

I like Blender, because it is open and it is Python accessible. This was partially why I started to learn Python. Poser, a 3D figure animation package also has a Python API. It turns out that several other things I am interested in are accessible through Python, including ODE (the open dynamics engine for physical simulation, etc).

To answer your question, Blender has a nice set of modeling and rendering tools - I haven;t used it in a while, but am getting back into it because of the natural potential for tying it to RADIANCE object generation (not as slick as b/rad or some of the exporters, though).

So much to do.

I was considering bash as the next shell to learn, as i too have dissected some of Greg's shell programs and have begun to understand the significance of scripting and programming RADIANCE.

kirk

···

------------------------------

Kirk L. Thibault, Ph.D.
[email protected]

p. 215.271.7720
f. 215.271.7740
c. 267.918.6908

skype. kirkthibault

On Sep 29, 2005, at 1:52 PM, Jack de Valpine wrote:

How do you like Blender?

Another vote for Python here - you could certainly do what I've done
here in a shell script, but I chose to use (and learn) Python. If you
stick with Python you can eventually add a GUI relatively easily to your
scripts using Glade and pyGTK.

I used Python to automate the creation of illuminance calculation grids.
This is a budget example, but this snippet is what I've done in the past
to calculate illuminance by repeated calls to rtrace. I used the
os.popen() call in Python to call rtrace as I would on the command line.
My apologies if this example is too trivial, but here it is anyways, in
case you find it useful:

for i in range(len(Grid1.CalcPoints)):
      #call to rtrace returns 3 values, each representing the
irradiance for r,g,b.
      #first prepare the string representation of the point:
      point_str = "\'" + str(Grid1.CalcPoints[i].x) + " " +
str(Grid1.CalcPoints[i].y) + \
        " " + str(Grid1.CalcPoints[i].z) + " " +
str(Grid1.CalcPoints[i].xdir) + \
        " " + str(Grid1.CalcPoints[i].ydir) + " " +
str(Grid1.CalcPoints[i].zdir) + "\'"
      rtrace_str = "echo " + point_str + " | rtrace -I -ab " +
str(options.ab) + rad_opts + " -h -w " + options.octfile
      print rtrace_str
      fd = os.popen( rtrace_str, 'r', -1 )
           
      buffer = fd.readline()
      rgb_irrad = buffer.split()
      illuminance = 179*(float(rgb_irrad[0])*0.265 +
float(rgb_irrad[1])*0.670 + float(rgb_irrad[2])*0.065)
      Grid1.CalcPoints[i].illuminance = illuminance
      print "( " + str(Grid1.CalcPoints[i].x) + ", " +
str(Grid1.CalcPoints[i].y) + ", " + \
      str(Grid1.CalcPoints[i].z) + " ): " + str(illuminance)
+ " lux"

It's ugly but seems to work OK. This snippet is part of a larger script
that takes in some user options, grid size, and prints out illuminance
values.

Cheers,

Mark Shewfelt
Electrical Engineering Intern
Enermodal Engineering Ltd.
ph: 519 743 8777 x232
fx: 519 743-8778
[email protected]

···

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jack
de Valpine
Sent: September 29, 2005 2:05 PM
To: Radiance general discussion
Subject: Re: [Radiance-general] RADIANCE and Unix shells

Hey Rob,

I follow-up on that. I probably could have used a more robust cup of jo
this morning as I repeated the word in every darn sentence. Ack!

In general, I think that if you learn one of these things then entry
into the next becomes easier. I started out with csh, sed and awk, ages
ago, and while it worked it is ugly, I had to learn how to use three
different tools (heck, I think that you can by an O'Reilly book for each
of these). Nevertheless, shell scripting is definitely the most quick
and dirty way to get things done.

Rob is correct. A hugely confusing element to Perl (for which you can
buy a lot more than 3 O'Reilly books) is the fact that there are lots
and lots of way to do things, this can be both a pro and a con. Though I
think in general looking at other peoples code is always painful unless
it is extremely well documented. I cannot really speak for Python,
though I think it is probably a bit "cleaner" than Perl.

I think the crux of it all though is having an actual problem that you
are trying to solve and access to some good books with examples. This is
the best way to learn that I have found.

-Jack

Rob Guglielmetti wrote:

Jack de Valpine wrote:

Hi Kirk,

Depending on what you are trying to do you may want to consider
something more robust in terms of programming features such as Perl
or Python. I am a huge fan of Perl which is extremely robust. On the
other hand I know that Georg Mischler is quite a proponent of Python
which is also quite robust.

Starbucks coffee is also known for their robustness, but then again
that doesn't really help you with programming. =8-) Ahem.
Kirk, Jack is steering you in the right direction, but I'd also like
to cast a vote for good old fashioned shell scripting, using either
bash or tsh. Some of the radiance commands are actually shell
scripts, usually written in tsh, which may be a case for learning tsh.

I learned shell scripting by dissecting some of the stuff Greg Ward
and John Mardaljevic wrote, which served me well for many years.
Bash has more features than tsh, but then again like Jack said
languages like Python and Perl have many more than Bash. It comes
down to what you're trying to do, and how much you expect to borrow
from other sources too.
Also, regarding Perl: Jack's a Perl fan because he knows it well. But

I'd caution that Perl can be a bear when working with Other People's
Code, because it is so "loose". There is a saying among Perl People
that goes "There's more than one way to do it", which can be an
obstacle when trying to read someone else's programs (which is how I
learned programming in the first place). I grow fonder of Python all
the time.

Whatever way you go, have fun! Scripting is the key to unlocking the
power of Radiance.

- Rob Guglielmetti

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

While Python and other more powerful languages than shell scripting can
offer additional benefits such as GUIs and the like, much of the same sort
of thing can easily be accomplished in bash, csh, or a number of other
shells. For instance, I use a similar script to the one described below
except it is written as a bash (my shell of choice) script. You can
accomplish the same thing both ways, but if you're already familiar with
tcsh and don't want to have to learn a whole new language, shell scripting
is very easy to pick up and use in conjunction with Radiance. That being
said, there are many things that are either difficult or impossible to do
with shell scripts that higher level languages allow, so if you have the
time I would definitely recommend picking up a second or third language such
as Python or Perl.

···

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Mark
Shewfelt
Sent: Thursday, September 29, 2005 2:36 PM
To: Radiance general discussion
Subject: RE: [Radiance-general] RADIANCE and Unix shells

Another vote for Python here - you could certainly do what I've done
here in a shell script, but I chose to use (and learn) Python. If you
stick with Python you can eventually add a GUI relatively easily to your
scripts using Glade and pyGTK.

I used Python to automate the creation of illuminance calculation grids.
This is a budget example, but this snippet is what I've done in the past
to calculate illuminance by repeated calls to rtrace. I used the
os.popen() call in Python to call rtrace as I would on the command line.
My apologies if this example is too trivial, but here it is anyways, in
case you find it useful:

for i in range(len(Grid1.CalcPoints)):
      #call to rtrace returns 3 values, each representing the
irradiance for r,g,b.
      #first prepare the string representation of the point:
      point_str = "\'" + str(Grid1.CalcPoints[i].x) + " " +
str(Grid1.CalcPoints[i].y) + \
        " " + str(Grid1.CalcPoints[i].z) + " " +
str(Grid1.CalcPoints[i].xdir) + \
        " " + str(Grid1.CalcPoints[i].ydir) + " " +
str(Grid1.CalcPoints[i].zdir) + "\'"
      rtrace_str = "echo " + point_str + " | rtrace -I -ab " +
str(options.ab) + rad_opts + " -h -w " + options.octfile
      print rtrace_str
      fd = os.popen( rtrace_str, 'r', -1 )
           
      buffer = fd.readline()
      rgb_irrad = buffer.split()
      illuminance = 179*(float(rgb_irrad[0])*0.265 +
float(rgb_irrad[1])*0.670 + float(rgb_irrad[2])*0.065)
      Grid1.CalcPoints[i].illuminance = illuminance
      print "( " + str(Grid1.CalcPoints[i].x) + ", " +
str(Grid1.CalcPoints[i].y) + ", " + \
      str(Grid1.CalcPoints[i].z) + " ): " + str(illuminance)
+ " lux"

It's ugly but seems to work OK. This snippet is part of a larger script
that takes in some user options, grid size, and prints out illuminance
values.

Cheers,

Mark Shewfelt
Electrical Engineering Intern
Enermodal Engineering Ltd.
ph: 519 743 8777 x232
fx: 519 743-8778
[email protected]

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jack
de Valpine
Sent: September 29, 2005 2:05 PM
To: Radiance general discussion
Subject: Re: [Radiance-general] RADIANCE and Unix shells

Hey Rob,

I follow-up on that. I probably could have used a more robust cup of jo
this morning as I repeated the word in every darn sentence. Ack!

In general, I think that if you learn one of these things then entry
into the next becomes easier. I started out with csh, sed and awk, ages
ago, and while it worked it is ugly, I had to learn how to use three
different tools (heck, I think that you can by an O'Reilly book for each
of these). Nevertheless, shell scripting is definitely the most quick
and dirty way to get things done.

Rob is correct. A hugely confusing element to Perl (for which you can
buy a lot more than 3 O'Reilly books) is the fact that there are lots
and lots of way to do things, this can be both a pro and a con. Though I
think in general looking at other peoples code is always painful unless
it is extremely well documented. I cannot really speak for Python,
though I think it is probably a bit "cleaner" than Perl.

I think the crux of it all though is having an actual problem that you
are trying to solve and access to some good books with examples. This is
the best way to learn that I have found.

-Jack

Rob Guglielmetti wrote:

Jack de Valpine wrote:

Hi Kirk,

Depending on what you are trying to do you may want to consider
something more robust in terms of programming features such as Perl
or Python. I am a huge fan of Perl which is extremely robust. On the
other hand I know that Georg Mischler is quite a proponent of Python
which is also quite robust.

Starbucks coffee is also known for their robustness, but then again
that doesn't really help you with programming. =8-) Ahem.
Kirk, Jack is steering you in the right direction, but I'd also like
to cast a vote for good old fashioned shell scripting, using either
bash or tsh. Some of the radiance commands are actually shell
scripts, usually written in tsh, which may be a case for learning tsh.

I learned shell scripting by dissecting some of the stuff Greg Ward
and John Mardaljevic wrote, which served me well for many years.
Bash has more features than tsh, but then again like Jack said
languages like Python and Perl have many more than Bash. It comes
down to what you're trying to do, and how much you expect to borrow
from other sources too.
Also, regarding Perl: Jack's a Perl fan because he knows it well. But

I'd caution that Perl can be a bear when working with Other People's
Code, because it is so "loose". There is a saying among Perl People
that goes "There's more than one way to do it", which can be an
obstacle when trying to read someone else's programs (which is how I
learned programming in the first place). I grow fonder of Python all
the time.

Whatever way you go, have fun! Scripting is the key to unlocking the
power of Radiance.

- Rob Guglielmetti

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Rather than focusing on Radiance you should consider your primary
environment and day to day tasks to define your shell of choice:

sh - plain old shell
        most portable across platforms/shells but not much features

bash - very popular on (and because of) Linux
        most Linux sysadmin scripts around are for bash
        most scripts around are in bad style but nobody knows better
        environment often highly customized in current distributions
        (makes it harder to learn plain bash)

csh - traditional shell for most Unix flavours
        C-like syntax (if that's any help to learn it)
        in older incarnations harder to use because it's
        missing bash-like usability "enhancements"
        probably most compatible across platforms ("already installed")
        Radiance ships with some scripts in csh

tcsh - better to use but still compatible to csh

zsh - very powerfull shell
        not much in use, though (read: not much examples around)

ksh - default shell on AIX systems
        little used elsewhere

I started out with bash but never bothered to do real script
programming because I tend to use Python for anything that
requires more than 5 lines of code. I don't think any of these
shells is particularly good for Radiance because they all
provide the basic shell environment which makes Radiance
so flexible (pipes, redirection, filter etc.).

If you want to create scripts that should be used by more than
one person keep them well documented. Anyone knowing anything
about shell scripting should then be able to understand what
you are doing. If you want to share your scripts as well you
should try to aim for POSIX compliance and avoid shell typical
enhancements. This will help others to reuse your scripts on
other platforms/shells/implementations of your shell.

Knowing a bit about *sh is essential to get anything done but
even small tasks may be worth a "proper" programming language:

1) For more complicated things (name rewriting etc.) you will
    have to use sed/awk/perl (that's the unix way to do things)
    more sooner than later. So you'll have to know their syntax
    as well and your co-admins will have to know them, too.

2) Python/Ruby/TCL/Perl(!) are better to understand for non-gurus
    than esoteric shell constructions are. (Readability does not
    depend on the language but on your style, though).

3) Perl, TCL and Python are available on nearly all platforms
    now and typically installed by default.

4) You can extend simple scripts with GUIs and output processing
    (PDF, visualization) better (if there are libraries available).
    Shell scripts will meet their limit pretty soon.

5) If everyone would focus on Python we could collect some money
    and pay Schorsch to write a proper library for Radiance. That's
    only my biased opinion, of course :wink:

On the whole I'd recommend one of Python/Ruby/Perl for more ambitious
scripting. For simple throw-away-scripts any shell will do and it's
basically a matter of your personal preference.

Enjoy the freedom of choice,

Thomas

···

On 29.09.2005, at 19:19, Kirk Thibault wrote:

I am fairly new to unix usage, so i have not developed a preference for a particular flavor of shell. As I am now beginning to experiment with more shell programming, the question is, are there particular aspects of RADIANCE that make programming it in a particular shell more advantageous to others?

I was using tcsh (the Mac OSX former default) but am at the point where I want to explore other options.

"It is possible [to do almost anything in any language]. However, just
because one can get a pea up a mountain by pushing it with one's nose does
not mean that is the best way of getting it there!"--(I forget who)

One can do shell-like scripting in most languages these days. Language
preferences divide sharply, and often people simply prefer the language
they have learned first. On the commercial side, language choices are
often made for non-technical reasons, and there is something to be said
for using languages best fitted to a platform; if one is integrating
Radiance with AutoCAD, there is much to be said for AutoLISP or even (woe)
Visual Basic.

That said, I will offer these opinions:

1. Generally, Python is widely accepted as a simple, object-oriented
interpretive language that can be used for serious applications work.
Ruby, though less widely used, is also considered good for such jobs.
Perl can be used in this way, but one must be disciplined in its use, or
it will have the problems of a shell.

2. The heavy use of textual substitution as a programming technique in
traditional shells (sh, ksh, bash, csh, and so on) makes for large scripts
that are difficult to read and maintain--there is a particular problem
with file names that contain punctuation or spaces; if one makes extensive
use of variable substitution in Perl one has the same problems. And,
distressingly, no-one actually knows what languages the traditional shells
accept, not even the people who maintain them; one is often forced to rely
on testing to determine the results of a particular incantation and there
is no guarantee one will see consistent behavior across platforms.

3. There are a number of useful but less popular languages with devoted
followings: the "rc" shell and LISP itself, the grandad of all
programmerly interpretive languages, come to mind. However, if one wants
tools to be accessible to the widest developer community, it is probably
best to stick with more widely accepted tools. There are oddities, too:
one could, for instance, use the web server language PHP, but I cannot see
a good reason to do so.

4. While it is possible to do shell-like tasks in compiled languages like
C, the debugging and maintenance effort is such that it is probably not
usually worth the trouble. Microsoft's much-promoted C# has some of the
same problems.

5. Java. Well, it can do the job. But it seems to me to combine some of
the difficulties of programming in a compiled language (a persnicketty
typing system and a relatively long learning curve) with the difficulties
of interpretation (slowness). The sheer amount of study (not to mention
the cost of texts) required to learn the Java class libraries is daunting.
Still, it is pervasive, so maybe there is a role for it.

Lots of choices. Personally, I'd recommend Perl, Python, or Ruby as one
is most comfortable. If one doesn't already know a shell well, I'd say
that Python is the easiest to learn, and is most satisfying to a beginner
because of it, but one can get good results using any of those languages.
Greg uses csh, and it's worth knowing it just to read existing Radiance
scripts, but of the shells it is the most cranky, and I wouldn't advise
starting there. It helps to know a bit of Unix to get the best use out of
any shell, even if one is programming for Windows; I still recommend the
old CACM Unix article as a worthy reference.

Hope this helps!

Randolph

Thanks to all with the valuable advice. I think I'm going to strike out on the Python path, as I have already started with Python and it seems that Radiance and Python are quite adaptable for the mostly simple things i;d like to experiment with. As always, I appreciate the knowledge collected in this mail group.

Cheers,

kirk

···

------------------------------

Kirk L. Thibault, Ph.D.
[email protected]

p. 215.271.7720
f. 215.271.7740
c. 267.918.6908

skype. kirkthibault

On Sep 29, 2005, at 8:29 PM, Randolph Fritz wrote:

"It is possible [to do almost anything in any language]. However, just
because one can get a pea up a mountain by pushing it with one's nose does
not mean that is the best way of getting it there!"--(I forget who)