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. > > >