Hi all. The last few weeks have revealed that I need to learn a programming language that fits a nomad lifestyle. By "nomad" I mean - The code needs to be portable to most/all relevant OS/HW platforms (Windows, Mac, Linux) - Compiling the programs ought to be possible without major amounts of $$$ spent on compilers - The programming language needs to be able to handle complex data structures and objects - The programming language should be clearly defined as a *language*, not a shell script, that could be confused for an OS add-on by owners of computer systems - The programming language ought to be able to handle COM objects to manipulate excel files and word documents - The programming language needs to be easy to learn for me, who is familiar with C++ The one language that springs to mind is Java. Are there others? Does anybody have suggestions for first-read books or other literature for C++ programmers to learn Java? Rune
OT: Nomad programmer needs tools
Started by ●July 6, 2006
Reply by ●July 6, 20062006-07-06
Rune Allnor wrote:> The one language that springs to mind is Java. Are there others? > Does anybody have suggestions for first-read books or other > literature for C++ programmers to learn Java?Eckel's Thinking in Java is nice and free: http://mindview.net/Books However, it seems Java needs a third-party COM bridge. I wonder why C++ doesn't already fit the requirements in your eyes? Martin -- Quidquid latine scriptum sit, altum viditur.
Reply by ●July 6, 20062006-07-06
Martin Eisenberg wrote:> Rune Allnor wrote: > > > The one language that springs to mind is Java. Are there others? > > Does anybody have suggestions for first-read books or other > > literature for C++ programmers to learn Java? > > Eckel's Thinking in Java is nice and free: http://mindview.net/Books > However, it seems Java needs a third-party COM bridge. I wonder why > C++ doesn't already fit the requirements in your eyes?First, because C++ needs a commercial compiler to generate executables. I don't want to install my own compiler on somebody else's system, and I can't always bring my own laptop. Second, because it would need something like Qt (www.trolltech.no) to become portable. Which means lots of $$ spent. Having said that, Java would be the quick'n dirty get-things-up-and- running-fast method. There might be a more elaborate C++ version of the programs I have in mind, down the road. Java is already available on most computers. If I could make it play my tunes... life would all of a sudden become a lot easier. Rune
Reply by ●July 6, 20062006-07-06
Rune Allnor wrote:> Martin Eisenberg wrote:>> I wonder why C++ doesn't already fit >> the requirements in your eyes? > > First, because C++ needs a commercial compiler to generate > executables. I don't want to install my own compiler on somebody > else's system, and I can't always bring my own laptop.What do you mean by "commercial"? GCC is not a bad compiler, and in case you think otherwise, the fact that it's under the GPL puts no restrictions on your own executables (but remember, IANAL). Also, you won't get around installing stuff sometimes either way. I do think Mac OS comes with C and C++ compilers like any Unix, but Windows doesn't. You state that "Java is already available on most computers", but that is only the virtual machine, not the development kit! You'd need to install that first on some machines too.> Second, because it would need something like Qt (www.trolltech.no) > to become portable. Which means lots of $$ spent.Not necessarily. Look into FLTK and wxWidgets. Martin -- Quidquid latine scriptum sit, altum viditur.
Reply by ●July 6, 20062006-07-06
Martin Eisenberg wrote:> Rune Allnor wrote: > > Martin Eisenberg wrote: > > >> I wonder why C++ doesn't already fit > >> the requirements in your eyes? > > > > First, because C++ needs a commercial compiler to generate > > executables. I don't want to install my own compiler on somebody > > else's system, and I can't always bring my own laptop. > > What do you mean by "commercial"? GCC is not a bad compiler, and in > case you think otherwise, the fact that it's under the GPL puts no > restrictions on your own executables (but remember, IANAL).GCC have made my life so miserable over the years you wouldn't believe it. Every day I can stay away from GCC is a good day. GCC may be free, but it is anarchy-in-a-can. With GCC, you get exactly what you pay for.> Also, you won't get around installing stuff sometimes either way. I > do think Mac OS comes with C and C++ compilers like any Unix, but > Windows doesn't. You state that "Java is already available on most > computers", but that is only the virtual machine, not the development > kit! You'd need to install that first on some machines too.But that's a free lisence. There goes a legal limit between installing *my* commercially bought compiler on *somebody*else's* computer system, and downloading a *free* program. The legal issues are at least as important as the practical issues.> > Second, because it would need something like Qt (www.trolltech.no) > > to become portable. Which means lots of $$ spent. > > Not necessarily. Look into FLTK and wxWidgets.I've set my eyes on Qt. I like what Trolltech do. The Qt toolkit is portable between Windows, Linux, mac and a number of PDAs. "C++" + "portable" = "Qt" Rune
Reply by ●July 6, 20062006-07-06
"Rune Allnor" schrieb> > [requirements for "nomad" programming tools] >Python might fill almost all your needs. There are also numerous extensions geared towards numeric / scientific calculations. Don't know, though, about manipulating excel files (I personally dislike Excel very much) and word documents. It has object-orientedness built-in, has similarly powerful tools to parse input files like Perl, but is much easier to read. Have a look at python at www.python.org. If you have access to a library, you might want to have a look at: "Learning Python" by Mark Lutz and David Asher from O'Reilly ISBN 0-596-00281-5 for Beginners "Python Scripting for Computational Science" by Hans Petter Langtangen from Springer ISBN 3-540-43508-5 for Scientists that do Number Crunching, Visualization and the like. HTH Martin
Reply by ●July 6, 20062006-07-06
On 6 Jul 2006 06:54:35 -0700, Rune Allnor wrote:> > I've set my eyes on Qt. I like what Trolltech do. The Qt toolkit is > portable > between Windows, Linux, mac and a number of PDAs. > > "C++" + "portable" = "Qt" > > RuneHave you checked out wxWidgets? <http://www.wxwidgets.org/>
Reply by ●July 6, 20062006-07-06
Martin Blume wrote:> (I personally dislike Excel very much) and > word documents.So do I. But dealing with excel and MSWord is part of the job. If I can do what I want in C++/java/something else, and then export the end product to excel -- as opposed to work solely with excel as I do now -- I'll be a lot happier. Rune
Reply by ●July 6, 20062006-07-06
"Rune Allnor" schrieb> > > (I personally dislike Excel very much) > > So do I. But dealing with excel and MSWord is part of the job. > If I can do what I want in C++/java/something else, and then > export the end product to excel -- as opposed to work > solely with excel as I do now -- I'll be a lot happier. >What I did so far was to save the Excel thing as CSV, then mangle it with Perl / Python / awk / whatever and save it again as CSV. But I usually try to stay away from Excel. Regards Martin PS: Googling "python excel" turned 5'470'000 hits, so there seems to be a market for it :-)
Reply by ●July 6, 20062006-07-06
On Thu, 06 Jul 2006 05:21:24 -0700, Rune Allnor wrote:> > Martin Eisenberg wrote: >> Rune Allnor wrote: >> >> > The one language that springs to mind is Java. Are there others? >> > Does anybody have suggestions for first-read books or other >> > literature for C++ programmers to learn Java? >> >> Eckel's Thinking in Java is nice and free: http://mindview.net/Books >> However, it seems Java needs a third-party COM bridge. I wonder why >> C++ doesn't already fit the requirements in your eyes? > > First, because C++ needs a commercial compiler to generate executables. > I don't want to install my own compiler on somebody else's system, and > I can't always bring my own laptop. Second, because it would need > something like Qt (www.trolltech.no) to become portable. Which means > lots of $$ spent.I apologise for having missed the guts of Rune's original request, but from what I saw in the other half-thread, I have a question: why do you need Qt, if you're doing numerical work on CSV files for import/export to Excel? Ordinary ANSI stdio is perfectly adequate for that, and portable too. Obviously there was more to the query than I saw... Not that there's anything wrong with Qt, from what I've read, but you do have to pay them if you want to ship a closed-source binary.> Having said that, Java would be the quick'n dirty get-things-up-and- > running-fast method. There might be a more elaborate C++ version > of the programs I have in mind, down the road. > > Java is already available on most computers. If I could make it play > my tunes... life would all of a sudden become a lot easier.I've only recently started using Java. I like it a whole lot better than I ever did C++, and it comes with a pretty reasonable GUI toolkit that you seem to be after. And it's free. I'd stick with that. I also disagree with your comments about GCC. It's a very fine compiler (suite), these days, and increasingly standards compliant. I only use it's C, though. Not much of a fan of C++ any more, and GCJ doesn't seem to be quite ready for prime-time, but it's getting close. You might also want to investigate Eiffel, both Meyer's (ISE's) original, which is now somehow open-source, I think, and also INRIA's SmartEiffel, which compiles via ANSI C. Vastly nicer object model and syntax than C++, beter large-system software engineering support and (I think) a couple of cross-platform GUI toolkits these days. I like it on aesthetic grounds, but I have too many reasons to stick to C to use it in anger, just yet. Cheers, -- Andrew






