Programming Languages Decisions

E.D.G. edgrsprj at ix.netcom.com
Mon Aug 18 08:59:44 EDT 2008


PROGRAMMING  LANGUAGES  DECISIONS

Report Posted by E.D.G.   August 18, 2008

       This report is intended for any computer programming experts who
would like to propose that their favorite programming language is the one
that should be used for the potentially important application that is being
discussed here.

       The report is also for people who are interested in disaster
mitigation science.  They might want to skip to Section 3 of the report.

       If you have a response that would be of interest to people in just
one Newsgroup then I recommend that you post it to only that Newsgroup.

       If you have a technical comment that you want to make certain that I
see then you should send me an E-mail copy of your posting.

The information in this report represents expressions of personal opinion.

1.  The Purpose Of This Report
2.  Programming Language Recommendations
3.  The Importance Of This Effort
4.  Download Web Sites
5.  Computer Viruses

1.  THE  PURPOSE  OF  THIS  REPORT

       If all goes according to plan, within a few weeks I will begin
circulating .exe copies of a Perl language disaster mitigation related
computer program that I have been developing during the past decade or so.
People will be able to download the program and its associated support files
from some Web site for free and then use them for free.  The Perl program
presently sends data to the Gnuplot program for any graphics work that needs
to be done.

       When the program is released, things could get a little hectic.  So
now might be a good time to consider if Perl and Gnuplot are the best
choices for future work regarding this application.

       Some information regarding the types of data the program generates
and the importance of this effort can be found in Section 3 of this report.

ActivePerl version 5.8.8 from http://www.activestate.com is being used on a
PC computer running Windows XP.

ActivePerl version 5.10 from http://www.ActiveState.com is being used on a
newer PC computer running Windows Vista.

The Gnuplot graphics program version 4.2.1 for Windows systems from
http://www.gnuplot.info is being used on both computers.

       Newer versions of those programs will be installed on both computers
as time permits.

       When 5.10 was installed it required that some minor changes be made
to the format of the SendKeys and IsKeyPressed commands.  The commands still
worked with 5.8.8 after the changes were made.

       When the downloadable Perl program is released a notice will be
circulated regarding that.  Programmers will be able to see how it runs on
their own computers.  As an .exe type program it should run "as is" on PCs
running Windows XP or Vista.  No Perl compiler will be needed.  After people
have seen it run they can again express an opinion regarding what the best
program languages might be for future work with that application.

       Scientific researchers interested in using and developing the program
will fall into one of two groups.

A.  Independent Researchers

       They will have to continue working with Perl and Gnuplot until a
decision is made to change to other programming languages.  I am not a
programming expert.  But some of those independent researchers are.  And if
one of them decides to move in another direction that looks productive then
I will probably go along with that.

B.  Government and University Researchers

       Most of them have their own computer programmers.  And they might
decide to develop this application using a language they are already working
with.  Before making such a change they might contact me and ask if I
believe that such a change would be a good idea.  Or they might simply make 
the change without consulting with anyone.

       When the Perl program is released, programmers can contact
governments and universities etc. and recommend that if their own
programmers are going to be doing any development work on it then they
should change to some other programming language.  They can also contact me
and state that.  If and when I discuss this with government officials etc. I
can pass along that information.

       I myself will be trying to convince governments etc. to use the
program for important research work.  It is essentially a probability number
generator.  And among other things I will be trying to get them to develop
more accurate probability equations.  Now that several fundamental and
crucially important physics discoveries have been made there is almost
unlimited room for improvement.  That work should be fairly easy for
government and university researchers and perhaps even independent
researchers once they have the original program.  They will be able to add
their own equations and subroutines to it and use it to test their theories
and data.

2.  PROGRAMMING  LANGUAGE  RECOMMENDATIONS

       It is okay with me if the program is translated to some other
language or even multiple languages.  But if possible I would like to see
the following features remain with it.

The programming languages should do or have the following:

---  Be permanently available as free downloads.

       That should make it possible for researchers around the world to do
their own development work without having to periodically purchase new
software.  The version of Perl I am using is a free download from the
ActiveState Web site.  It is possible that that free download situation
could change.  However I expect that some versions of Perl and Gnuplot will
probably always be available as a free downloads from Web sites.

       Gnuplot is being used with Perl to take advantage of the fact that
the Gnuplot graphics capabilities will probably remain available in their
present form or with only minor changes.  Some older Perl graphics modules
might not work with newer versions of Perl.  Additionally, if my program is
translated to some other language the new program should still work with
Gnuplot.

---  Run with different operating systems such as Windows and Unix and on
different types of computers such as standard PCs and Macs.

       The present program is designed to work with Windows XP and Vista
operating systems on PC type computers.  Those are the systems that most of
the researchers originally interested in the program are probably using.
But Unix and Mac users etc. will probably also want versions of the program
that will run with their computers.

---  Be powerful and versatile.

It should be able to:

------  Detect and respond to keystrokes such as when you press an arrow or
alphanumeric key.

------  Send keyboard type information to the operating system.  For
example, the program might need to send information to some other program
that allows that to be done only through keyboard entry.

-----  Do things such as generate sounds.

-----  Chain to another program of the same type while having string and
array information remain active and available for use by the chained
program.

-----  Start an external program running and send information to it and
receive information from it using "pipe" commands,  for example,  while the
original program continues running in the background.

       When using Windows XP and Vista I have found that Perl has some
problems with that.  Depending upon the application, Gnuplot being one
example, after starting the external program running the Perl program might
stop executing commands and wait until the other program exits.  I have been
able to get around the problem by telling Perl to start a Windows shortcut
program that tells the external program to start running.

---  Be moderately easy to use for people who are not professional computer
programmers.

       Gnuplot probably qualifies for that for at least what my program
requires.  I have found that Perl works well once you learn exactly how a
particular command operates.  However, that learning process can be
problematic for people such as myself who are not expert programmers.  On
the other hand, Perl is sufficiently powerful and versatile that it has so
far been worth the trouble for me to work through any problems.

---  Be supported by a Newsgroup.

---  Be a compiler type of language.

       Programs that interpret one line of code at a time tend to be too 
slow to do repeated, complex calculations in a reasonable amount of time. 
With my application for Gnuplot this is not a problem as it does not take 
too long to generate charts.

       The main Perl program needs to be able to do rapid calculations 
largely when it is processing new data.  Most of the time researchers will 
be examining data screens and tables, trying to interpret their meaning. 
And the program will be sitting idle, waiting for the next graphics display 
command.

---  The graphics program should be either extremely fast or have the
ability to make small, reversible changes to the screen without the need to
replot the entire screen.  For example, people might want to display things
like multiple lines, arrows, or shapes and have them able to move around the
screen fairly quickly.

       If my understanding of this is correct, Gnuplot requires that you
replot the entire screen if you wish to restore data that you have drawn
over.  However for my own application that is presently not a major problem
as even the slowest replots can refresh the screen at least twice a second.

---  Have a feature that allows .exe versions of the program to be created.

       For various reasons that feature is probably not important for
Gnuplot.  But with the main Perl program it can be because most of the
people who will be using it will just want to run it and not make any
changes.  They will want something that they can get running with a mouse
click or two.  And they are not going to be willing to work with a compiler.
It took me more than a year to determine how to get Perl to generate .exe
programs.  I was finally able to do that on August 2, 2008.  And since them
I have been working on getting my programs into shape for circulation rather
than continue with efforts to add new features to them.

       The .exe programs can be rather large, three megabyes for my present
program.  And they run a little slower than ones that the Perl compiler
generates when you run it.  But they are easy to create after all of the
necessary modules have been merged with Perl etc. and do not require that
.exe program users install anything on their computers.

3.  THE  IMPORTANCE  OF  THIS  EFFORT

Eventually, many lives and large amounts of money might be affected.

       The important introductory physics and math work has already been
done.  And to a certain extent much of the development work can now be done
by computer programmers.

       The Perl language program has multiple applications.  The first one
is operational and "user friendly" features such as help files are presently
being added to it to make it easier for people to use.  With the other
applications a fair amount of additional programming work needs to be done
to translate Basic and Excel code to Perl.  That could take several months.

       The first application enables government, university, and independent
researchers to compare earthquakes with one another and in the process learn
how they are being triggered.  As far as I am aware, this is the first
program of that type ever created that will enable them make those
comparisons in an almost effortless manner.

       Earthquakes can claim tens of thousands of lives in a year.  And a
single earthquake can do hundreds of billions of dollars worth of property
damage in a matter of minutes.  As a consequence, any information that
governments and researchers can obtain regarding why they are occurring when
and where they occur and how they might be predicted could conceivably
result in the savings of tremendous numbers of lives and the avoidance of an
incredible amount of property damage.  If government officials in some city
know that one might be approaching they can make certain that major fuel and
electricity lines can be shut down quickly when the earthquake occurs so
that fires do not start and get out of control.

       It is generally accepted that earthquakes occur when fault zone rock
layers accumulate strain energy resulting from processes such as the
movement of tectonic plates relative to one another.  However researchers
are not in agreement regarding how they are being triggered - why they are
occurring at the exact time they occur, or if they are simply random events
that are not being triggered by anything that can be monitored.  My data
clearly indicate to me that they are often being triggered at specific times
by forces associated directly or indirectly with the gravitational pulls of
the sun and the moon.  Ocean tide height related earthquake triggering would
be one such indirect link.

       This is something that I have been explaining to the international
scientific community for quite a few years.  The response has generally been
that other data do not show that.  And my response has then been that the
wrong types of calculations are being done to make those comparisons.
People need to use the types of equations I have been discussing.  The
response has then generally been to do nothing.  Scientist who have
responded in a positive manner have usually gone off on their own to try to
publish papers etc.  And I never hear from them again.

       This first application contains all of the necessary equations and
data tables for doing this earthquake comparison type of work plus fairly
sophisticated graphics capabilities for displaying results.  I believe that
people using the programs will be able to immediately begin doing research
that in certain respects is a decade to a quarter of a century more advanced
than what can presently be done by top government agency researchers.

       After the programs become available there could be thousands of
independent researchers around the world doing this type of work without the
present need to be employed by a university or government agency.  All they
will need are moderately powerful personal computers and a basic knowledge
of physics and math.  They will not need to be able to do any computer
programming unless they want to change or add to the original code.

       Since earthquakes can quickly cause hundred of billions of dollars
worth of property damage, government and university scientists will likely
wish to get involved with this program development effort rather than be
left behind by independent researchers.  And if and when they do, should
they be unhappy with the Perl - Gnuplot combination of languages presently
being used they will chose some other language or combination of languages
to work with.  It won't take them long to make such a decision.  So, the
time window of opportunity for people to make the case that their own
favorite programming language is the logical one to use might be less than a
year, or just a few months,  or perhaps even just a few weeks long.

4.  DOWNLOAD  WEB  SITES

       The main Perl program and its associated support files and
directories will probably be available as a Windows XP or Vista zip file
that can be downloaded for free from some Web site.  Because of the
moderately large size of that file, at least five megabytes, I cannot store
it for downloads at my personal Web site.

http://www.freewebz.com/eq-forecasting/Data.html

       That site stops running if too much information is downloaded during
a month period of time.  So I am instead planning to have the file stored at
other Web sites.  And if anyone has a recommended download site then I would
be interested in that information.

       http://sourceforge.net would be a logical choice.  However, at
least initially I don't want to go through the trouble of registering at the
site.  There are several others where I can simply send files to the owners
and they will immediately store them at their sites.

5.  COMPUTER  VIRUSES

       When the program is released there will probably be some information
made available regarding computer viruses.  The main program will be an .exe
program.  And it will be stored in a zip file.  Certain precautions should
be taken when those types of files are downloaded and used.  I won't be able
to personally control the Web sites where they are stored.

       If they wish, people might try unzipping the files and running the
programs on an old computer.  If time permits I will try to see if they will
run on a Windows 98 system.  Numerous people around the world probably have
an old computer sitting somewhere that uses that operating system.

       Finally, I myself cannot recall any past instances where someone did
something as simple as release a new computer program and as a result, spark
a major and virtually overnight revolution in an important area of science
where innumerable lives and billions of dollars worth of property damage
could be at stake.  So there is no way to tell for certain from past events
exactly what is going to happen here.  I do expect that immediately after
the program is released work on this project will get underway by
independent researchers and probably government scientists in a number of
countries including India and the People's Republic of China.  The
technology has already been discussed in an internationally circulated news
report, in a television program shown around the world, and at a disaster
mitigation conference in Beijing, China in December of 2003.  We will have
to see how long it takes other countries such as the U.S. and Japan to
become interested.





More information about the Python-list mailing list