What Language to Use?
Author Message
What Language to Use?

I hope someone will be able to help me figure out how to execute this
project.  I need to build a program for one of my teachers to automate
something called the Market Simulation that he does with his microeconomics
classes.  In the simulation, each student is the CEO of a fake company.  The
term is divided into 12 months, each of which is actually three days.  Each
month has different market conditions.  I'll explain what these mean in a
moment.  On the first day of each month, students buy raw material units
(RMUs).  Each company has factories in which to convert these raw material
units into Finished Product Units (FPUs).  The market conditions vary
significantly each month.  One month there may be only 28 RMUs for sale with
a minimum bid of \$800 for each of them and the next month there may be 84 of
them for sale with a minimum bid of \$300.  The same goes for the Finished
Product Units.  The teacher posts the conditions at the beginning of each
month, and students then buy and sell with the goal of making a profit.
Students can also purchase new factories in order to increase capacity (one
factory can only convert one RMU per month) and must pay high costs on any
inventory left over at the end of the month, which is incentive not to just
stock up when the RMUs are cheap.  Up until now, every night, students would
email their bids for the RMUs or FPUs depending on the night, to the
teacher, and then he would sort them by hand, and whoever bid the most would
get their bids and then he would work his way down the list.  This process
usually takes him about two hours each night, and as a project, I am going
to build a program that will automate this process for him.  Basically,
students need to be able to log on to a server and submit a bid either to
buy RMUs or to sell FPUs.  The server would sort the bids and then leave a
message for the student that he or she received or did not receive what they
bid for.  It would also place all of this information into a Microsoft Excel
worksheet, and would be able to display a student's worksheet with the
current numbers upon demand.
Basically, my question is, what tools and language(s) should I use to
build this system.  My school has virtually all software suites available
and I am fairly well versed in many programming languages.  I want to build
a program that people can log onto from over the net and then submit bids.
The system would be able to sort all this information and place it into
Excel worksheets and display these worksheets on demand.  It would also be
able to display other reports on demand.  Is there are database tool that
would be good for this?  If so what?  Thanks in advance and I would

Lee Bressler

--

Thu, 11 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:
>    Basically, my question is, what tools and language(s) should I use to
>build this system.  My school has virtually all software suites available
>and I am fairly well versed in many programming languages.

Welcome to the real world.  It really does not matter how many languages
you 'know' programming is knowing how to express the solutions to
problems in a programming language.  You see the problem is not about
which tools to use but in learning to formalise a problem and its
solution.  Settle down to doing that, and when you have some part clear
in your mind select whatever language you feel is appropriate and use
it.  Now move on to the next part.

BTW your school must be extraordinarily wealthy if it has even a small
fraction of the software suites available:)

Francis Glassborow      Journal Editor, Association of C & C++ Users
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation
--

Fri, 12 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:
> I hope someone will be able to help me figure out how to execute
> this project.  I need to build a program for one of my teachers
> to automate something called the Market Simulation that he does
> with his microeconomics classes.  In the simulation, each student
> is the CEO of a fake company.  The term is divided into 12 months,
> each of which is actually three days.  Each month has different
> market conditions.  I'll explain what these mean in a moment.  On
> the first day of each month, students buy raw material units
> (RMUs).  Each company has factories in which to convert these
> raw material units into Finished Product Units (FPUs).  The market
> conditions vary significantly each month.  One month there may be
> only 28 RMUs for sale with a minimum bid of \$800 for each of them
> and the next month there may be 84 of them for sale with a minimum
> bid of \$300.  The same goes for the Finished Product Units.  The
> teacher posts the conditions at the beginning of each month, and
> students then buy and sell with the goal of making a profit.
> Students can also purchase new factories in order to increase
> capacity (one factory can only convert one RMU per month) and must
> pay high costs on any inventory left over at the end of the month,
> which is incentive not to just stock up when the RMUs are cheap.
> Up until now, every night, students would email their bids for the
> RMUs or FPUs depending on the night, to the teacher, and then he
> would sort them by hand, and whoever bid the most would get their
> bids and then he would work his way down the list.  This process
> usually takes him about two hours each night, and as a project, I
> am going to build a program that will automate this process for him.
> Basically, students need to be able to log on to a server and
> submit a bid either to buy RMUs or to sell FPUs.  The server would
> she received or did not receive what they bid for.  It would also
> place all of this information into a Microsoft Excel worksheet, and
> would be able to display a student's worksheet with the current
> numbers upon demand.
>     Basically, my question is, what tools and language(s) should I
> use to build this system.  My school has virtually all software
> suites available and I am fairly well versed in many programming
> languages.  I want to build a program that people can log onto from
> over the net and then submit bids. The system would be able to sort
> all this information and place it into Excel worksheets and display
> these worksheets on demand.  It would also be able to display other
> reports on demand.  Is there are database tool that would be good
> for this?  If so what?  Thanks in advance and I would appreciate

I have left your whole posting quoted, so you can see for yourself what
you are doing.  MAKE YOUR POSTINGS (and other writings)
EASILY UNDERSTANDABLE.  This means use paragraphs, and separate them
with visible blank lines.  Organize the paragraphs into ideas, etc.  I
should expect your English classes at Choate to teach this.

As far as I can see you have several objects to simulate, and something
to tie operations on them together.  In a C newsgroup, you should
expect to hear people answer "C", because that is what most know best.

At any rate, you should usually aim to make the code a reflection of
the actual object, for clarity.  Thus some unit would reflect FPUs,
another RMUs, etc., together with operations allowed on them, and
information supplied by them.  You can do this in C, C++, Pascal, Lisp,
etc.  The critical thing is what makes the clearest reflection, TO YOU.

You can implement the inter-unit isolation in various ways, usually
requiring self-discipline.  Some languages will enforce your
selections, (e.g. C++, Java), others not (e.g. C, assembly).

In short, there is no generic answer.  Only pros and cons.

--
Chuck Falconer

--

Fri, 12 Jul 2002 03:00:00 GMT
What Language to Use?

[ ... ]

Quote:
> Welcome to the real world.  It really does not matter how many languages
> you 'know' programming is knowing how to express the solutions to
> problems in a programming language.

I have to disagree to some extent.  Simply learning a LOT of
programming languages, by itself, doesn't mean much about knowing how
to program well.  At the same time, I personally think that learning a
variety of _different_ programming languages is extremely useful in
developing as a programmer.  When I say different, I mean languages
that are _fundamentally_ different.  IOW, learning both Pascal and C
doesn't count for a lot, simply because the two are similar enough
that you aren't learning a lot of new or different concepts from one
over the other.

OTOH, there are enough fundamental differences between, for example, C
and ML or LISP that you learn NEW and different things by learning
each.  I don't think just studying C will make you a great programmer
nearly as quickly or easily as studying a number of other languages as
well.

IMO, a really top-notch programmer nearly HAS to have studied at least
one each of procedural, functional, declarative and OO languages.
Without that breadth of knowledge, you tend to get into a rut of
approaching all problems from a similar direction, even if the problem
may be MUCH more amenable to a completely different approach.

--
Later,
Jerry.

The universe is a figment of its own imagination.
--

Sat, 13 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:
>IMO, a really top-notch programmer nearly HAS to have studied at least
>one each of procedural, functional, declarative and OO languages.
>Without that breadth of knowledge, you tend to get into a rut of
>approaching all problems from a similar direction, even if the problem
>may be MUCH more amenable to a completely different approach.

I entirely agree with you and have even spoken at conferences to that
end.  However just knowing lots of languages does not make you a
competent programmer (particularly as people who do this often only know
the syntax without having the vaguest notion as to the underlying
semantics.

Francis Glassborow      Journal Editor, Association of C & C++ Users
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation
--

Sun, 14 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:

> >one each of procedural, functional, declarative and OO languages.

procedural=C, Pascal
declarative=???
OO=C++,Objective C, Java

* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!
--

Mon, 15 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:
>procedural=C, Pascal
>declarative=???
>OO=C++,Objective C, Java

What about Smalltalk and Eiffel- both strong candidates for OO

and if only we had people who could teach one of them effectively
(understanding how they are designed for use) Lisp or Prolog.

And what about TILs such as FORTH.

Francis Glassborow      Journal Editor, Association of C & C++ Users
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation
--

Mon, 15 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:

> > >one each of procedural, functional, declarative and OO languages.

> procedural=C, Pascal
> declarative=???

This is rather a nebulous class -- in theory, it includes languages
where you simply declare what you want, rather than telling the
compiler what procedure to follow to achieve it.  The most common
examples are devoted largely to searching for things -- quite a few
4GL's, PROLOG, depending on your veiwpoint SNOBOL, Icon, AWK and a few
others along that line might qualify as well (they don't fit most of
the other classes very well in any case, and they're the sorts of
things I was thinking of, whether they really fit the category very
well or not).

Quote:
> OO=C++,Objective C, Java

Java and C++ are really more hybrids of OO and procedural.  Smalltalk
is perhaps the most common example of a "pure" OO language: the
language itself mostly defines ONE operation: sending a message to an
object (equivalent to invoking a member function in C++).

Other than that, it's all just classes, objects and member functions.
Even such a primitive operation as adding 2 and 2 is using the first 2
to create an object, and then sending it a message to add another
object of the same type to itself.  Even the still-more-primitive
operations of taking the '2's and creating temporary objects is (yes)
done by sending a message to another object.

--
Later,
Jerry.

The universe is a figment of its own imagination.
--

Wed, 17 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:

> >procedural=C, Pascal
> >declarative=???
> >OO=C++,Objective C, Java

> What about Smalltalk and Eiffel- both strong candidates for OO

> and if only we had people who could teach one of them effectively
> (understanding how they are designed for use) Lisp or Prolog.

> And what about TILs such as FORTH.

> Francis Glassborow      Journal Editor, Association of C & C++ Users
> 64 Southfield Rd
> Oxford OX4 1PA          +44(0)1865 246490
> All opinions are mine and do not represent those of any organisation
> --

Sorry, but what's aTIL?
--

Wed, 17 Jul 2002 03:00:00 GMT
What Language to Use?

[ ... ]

Quote:
> Sorry, but what's a TIL?

Threaded Interpretive Language.  As mentioned, Forth is the most
obvious example.  Threaded interpretation really has more to do with
the implementation than the language design -- e.g. at least some
versions of VB also use threaded interpretation most of the time.

Despite this, Forth includes things that are known as defining words,
that allow you to (basically) define not only code that executes at
normal execution time, but also code that executes as part of the
environment.

It should also be noted that although Forth's conceptual model is one
of threaded interpretation, it can be (and has been) implemented as a
compiler as well.

--
Later,
Jerry.

The universe is a figment of its own imagination.
--

Fri, 19 Jul 2002 03:00:00 GMT
What Language to Use?

writes
Quote:
>Sorry, but what's aTIL?

Francis Glassborow      Journal Editor, Association of C & C++ Users
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation
--

Fri, 19 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:

> > >procedural=C, Pascal
> > >declarative=???
> > >OO=C++,Objective C, Java

> > What about Smalltalk and Eiffel- both strong candidates for OO

> > and if only we had people who could teach one of them effectively
> > (understanding how they are designed for use) Lisp or Prolog.

> > And what about TILs such as FORTH.

> > Francis Glassborow      Journal Editor, Association of C & C++ Users
> > 64 Southfield Rd
> > Oxford OX4 1PA          +44(0)1865 246490
> > All opinions are mine and do not represent those of any organisation
> > --

> Sorry, but what's aTIL?
> --

of languages is "Theaded interpretive languages" by R.G. Loeliger
(Byte Books, 1981-- perhaps later editions exist).  There are also a few
nice textbooks on Forth specifically.

I think we could say that a program in such a language consists almost
entirely of posting arguments and calling subroutines, except that an
"inner interpreter" runs through lists of call addresses in such a way
as to dispense with actual "call" instructions.

Advantages are very small code size, relatively good execution
efficiency (at least for an interpreter) and reputedly quick development
time (at least, for those who know the language well-- I certainly can't
speak for myself).  Program development is interactive and tends to be
bottom-up.  There is a history of Forth being to a large extent its own
operating system, complete with a rudimentary form or virtual memory.
There is very little difference between "words" (instructions) which the
implementation has provided and those which you add yourself.  In a
sense, you build the language as you work in it. These characteristics
have led to a confusing welter of attempts to establish Forth standards.

TILS are typically heavily dependent on stack operations and they
use reverse Polish notation-- that is, all operands precede their
operators, even operators which implement looping and branching.  Most
people, I trust, find the complete lack of type checking to be a serious
drawback, or at least part of a steep learning curve.

A Unix hacker of my acquaintance has called Forth "the poor man's Lisp."

FORTH happened to be developed for applications which control radio
telescopes, but it is not really confined to such a special purpose.
I understand that, because of the small code size, threaded interpretive
languages enjoy favor also in embedded programming applications ("smart
appliances" and such environments which don't constitute entire
computers).  For that reason, too, Forth was more widely used on early
microcomputers than it is now.

I have never had the patience to attempt anything non-trivial in this
type of language, but I think that they are fun, instructive, and
fascinating to play around with and to try to understand what is going
on.  What the cognoscenti accomplish is impressive. Several free
implementations are available; please get in touch with me if you are
interested in some sources.

--

Sat, 20 Jul 2002 03:00:00 GMT
What Language to Use?
On Sat, 29 Jan 2000 20:56:36 GMT, in comp.lang.c.moderated spun

[...]

Quote:

>Sorry, but what's aTIL?

Regards,

-=Dave
--
Just my (10-010) cents
I can barely speak for myself, so I certainly can't speak for B-Tree.
Change is inevitable.  Progress is not.
--

Sat, 20 Jul 2002 03:00:00 GMT
What Language to Use?

Quote:
>I have never had the patience to attempt anything non-trivial in this
>type of language, but I think that they are fun, instructive, and
>fascinating to play around with and to try to understand what is going
>on.  What the cognoscenti accomplish is impressive. Several free
>implementations are available; please get in touch with me if you are
>interested in some sources.

Actually the statement about the need to use reverse polish notation is
not strictly correct.  I implemented a full version of Logo in Forth.
Indeed given a good version of Forth and a sound understanding of the
way a TIL works (though most books on Forth were written by enthusiasts
that lacked that insight) you can get it to metamorphose into almost
anything you like.  Writing new 'words' to create 'words' is highly
instructive.

Francis Glassborow      Journal Editor, Association of C & C++ Users
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation
--

Sat, 20 Jul 2002 03:00:00 GMT

 Page 1 of 1 [ 14 post ]

Relevant Pages