MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Newbie Question - Integrated C++

  • To: mathgroup at smc.vnet.net
  • Subject: [mg24538] Re: Newbie Question - Integrated C++
  • From: "John D. Hendrickson" <jdh at hend.net>
  • Date: Mon, 24 Jul 2000 03:04:16 -0400 (EDT)
  • References: <8l69um$skn@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

If you have any questions reguarding you message, please reply!

Hmm.... Let me answer the second question first.  I got a student version of
Mathematica for around $100.  I got a full version of Mathematica for $375
on special: I had graduated within the last year.  You need a password from
Mathematica every time you install.  The student version can't be used for
money making purposes.  That also means software you write can be seen with
MathReader but not run by others without Mathematica.  But hold on: that's
not as bad as it first sounds (and OEM sol'n are avail. down the road).

I'll give you my conclusion in this paragraph, then explain it below.
Mathematica is so good at graphing you won't want to use C++ for graphing,
sound, and especially not for programming.  However - Mathematica ISN'T a
library of proprietary (corporate owned) data.  Mathematica does export its
graphics & 3D in more than one format.  But DirectX 3D and Sony Playstation
aren't among them.  Mathematica can't allow its users to access a 3D card
directly, or a sound card.  It can't tunnel IPX packets and transmitt them.
It can't make an Oracle database file.  The proprietary information it would
need just isn't there.  But there are "books" written for mathematica that
can do exactly those proprietary tasks.  They cost $ though.  If its many
forms of math, programming, graphics & sound you want.  Mathematica has all
that to an amazing degree: you get a fine library and kernel for the price
(the kernel executes code interactively - but fast).

PLOTS:
Mathematica can show surface plots (x-y-z, parametric, contour) using
equations or data and convert between them.  Also, there are many variations
on the surface plot theme: (like Geodesates, Splines).  Version 4.0 can plot
OpenGL 3d and rotate the whole plot using mouse.  Surface graphics plots are
only one kind of plotting in mathematica: There are data plots.  There are
statistics plots.   There are network flow diagrams.  There plots that I
don't know yet and can't understand.  There - I have shook a proverbial
stick at the subject.  Ohh - and it will combine the plots in one plot,
and...

DIRECTX 3D:
If you wish make 3D surfaces, light and texture them, and then export to
type 3D or playstation, you'd be far better off with a renderer, such as "3D
Studio Max".  These editors have things like built in people, scenes, fades,
and motion scripts.  These are the things movies and games are made from.
If you like 3D graphics and plan to make a game, 3D is good.  Some video
cards (like mine) come with free scene editors which export to Sony
Playstation and 3D.  If your going to develope a game: do it for the
Playstation.  They're trying to make it easy for you - that's their strategy
to beat Nintendo.

-C++ ; (* thats legal code in Mathematica *)
Now, I'll assume that you doing the opposite: Making primitives (or scenes)
in Mathematica and displaying them in DirectX 3D.  Not a good idea unless
Wolfram or someone is already paying you money for it.  No - I know - it is
fun.  But its a dead end.  Better to have fun in a non-dead end direction.
Math is a safe direction by all accounts.

Cover your eyes - I'm just about to break something to you about C++ :)

C++ isn't much good without proprietary data and proprietary tools.  !!! C++
is necessary for companies to get those proprietary things working under
some OS!!!.  That is C++ under MicroSoft.  C++ makes a poor development
environment if you are one person with no proprietary data starting from
scratch.  Their is a reason why the Microsoft Monopoly uses 3D and
Playstation is going to the 3Dfx chipset.  Its so they don't have buy
Silicon Graphics proprietary data (which is better, and used in almost every
movie you see now adays and really really darned advanced and fast).
Proprietary tools have price tags like: $50,000, and yes, allot higher.  If
your the 'little guy' - its very hard to find software meant to help you
develop (like a low cost scene editor).  Low availability is what they call
that.  Oh baby - I could go on and on.

Ok?  If C++ wasn't a proprietary monster you wouldn't need mathematica for
the smaller things: you'd have at least a MINIMAL math class for surfaces
(I'm not talkin Log).  You'd have a 3D class library supporting AT LEAST
import, export, display.  These things are simple to provide a paying
developer: but they aren't trying.

Under Microsoft C++ if you want to do 3D graphics, you buy their OS, Office
(for the database), Development tools, etc.  Then all you have allot of
empty structures that could do something if you had proprietary data and
tools.  Like: harware capability and driver databases (that you can use).
Math libraries.  Graphics conversion libraries.  Middleware (software
designed to collate and make use of purposely sparse and disfunctional MS VC
C++ structures) (judge's ruling on microsoft).  Middleware?  Haven't heard
of it?  Put your head between your legs.  Note that in the newest version of
MS C++ the new ANSI C++ (with neat objects) has soo many "technical notes"
that it is practically useless.  I made a tech call on a "templates" (a HUGE
problem - the pre-compiler wasn't compiling edited template source code -
which is at the CORE of its purpose).  I had to analyse the ASM dump for
them.  They didn't $charge me since I had to point out the purpose of the
pre-compiler as stated by the author of C itself and many others.  But they
were going to try.  In retrospect - I don't think it was meant to work for
me.  I don't think they plan to fix it.  All they wan't is for me to buy
books and software so I'll be a MS certified proffesional that is trained
solely to make companies buy more of their products.  That's C++.

MATHEMATICA
If you like the many forms of math.  If you like programming.  If you want a
excellent math libraries and graphing Mathematica is excellent (oh - and
sound too) Mathematica is choice.  You can combine 5 styles of other
progamming languages on one line of code in mathematica.  But in mathematica
it becomes seemless and natural.  You can even trace your code.  Hey - you
can have algorithms WRITE code and then execute it!  No debuggers locking up
your machine either.  And you can do a plot less than a minute - instead of
coding another day.  Mathematica has C++ things like "++j", "for, while,
do".  But thats just a start in Mathematica.  It has rule based programming
(I give a rule and its followed), pattern matching (code thats running or
date: like for arguement matching), object based programming, symbolic
programming.  List based programming (that means: practically no coded
loops!  A gift from the LISP programming language.), and more. You never
have to "compile".  But you can if you like.

The Mathematica Kernel is awesome.  It remebers everything (all input, all
results, all rules and definitions) unless you tell it not to or your
machine locks up.  But that's OK: you can easily write and load the stuff to
files!  A permanent session IS possible.  You can, of course, use contexts
to keep it all contextual and not jumbled.  You can, of couse, have two
kernels running on one machine.  Multiple kernels can work together over the
internet or on one machine.

I use Mathematica for everything: editor, database, spreadsheet, etc...
 Ok - not a seemless interface at first.  But: no SQL table redesigns,
Queries, "can't do this or that", only runs under MS and locks up,
proprietary save format bull.  I'm almost allways off the beaten path and
getting lock ups in Office.  Maybe I should be vanilla or something.  Hey -
mathematica saves you preferences in your notebook.  If your system crashes
you won't loose your preferences (like fonts, colors, whether which cell is
automatically executed upon opening notebook, ...).

Mathematica has a better interface with Java than C++.  Java, as you know,
is quickly becoming more and more like C++.  It jives better with the
Internet.  Its 'windows' don't depend on the OS your running.  Its library
of classes is quickly growing.  Mathematica allows you to run Java script
(just like Mathematica script) from right within Mathematica notebook: just
that easy.  Mathematica also allows Java to access it (if you like muddling
with low level interfaces - or should I say iface methods).

I have written a complete OpenGL 3D graphics application for the Win95/98/NT
platform, have made a DirectX port of DOOM II, and other 'windows' things.
More of my C++ was algorithmic and system programming, though.

If you have any questions reguarding you message, please reply!


Phil wrote in message <8l69um$skn at smc.vnet.net>...
>Hi,
>I'm thinking of using mathematica in combination with C++ to diplay 3D
>surface plots....I get the impression from a quick look at some texts that
>this should be well within it's capabilities?
>P.S. Is it expensive to buy....and do they do cheap student discounts???
>
>Many Thanks.
>Philip.
>
>
>




  • Prev by Date: interruptedWhile (useful for monitoring a computation non-interactively)
  • Next by Date: Cylindrical projection
  • Previous by thread: Re: Newbie Question - Integrated C++
  • Next by thread: Can Mathematica 4 do this?