From: Phlip Date: 2006-11-19T17:40:10+09:00 Subject: Re: Ruby vs Java vs c++ n/a wrote: > hi, newbie so please be tolerant.... ;) Only if you promise to read every danged post you inspired. > i need to start to learn a programming language to be able to develop > custom aps to be applied to a variety of purposes but mainly 1) financial > data modeling--including graphics and data handling via database queries, > etc.; and 2) more general business-type aps. All non-trivial applications, these days, are multi-lingual. For example, many applications use a markup language (HTML, RC, etc...) to paint their GUIs. Then they use an OO language for their high-level command-and-control code (such as Ruby). Then they use a declarative language, such as SQL, to interface with their systems, such as OSs and database engines written in a C language. > my feeling is that i hate BLOATED sluggish programs (like some Java > program running on older JVM's and perhaps not written in an optimal > way....u get the idea.) That's because Java was invented to take market share from C++, allegedly without introducing new risks. The actual result was a language that's harder to compile, and harder to program. Java strongly resists high-level abstractions, forcing you to write line after line and page after page of cruft just to get anything done. (No wonder the book /Refactoring/ uses Java!!;) Java is hostile to both the CPU and the programmer. Hence, the user suffers too. > if i need to make a choice between fancy and efficient, > speed, etc., then it's an easy choice 4 me of efficient. > which is why i have just started w/ c++. No prob. Just remember that C++ is "portable OO assembler", and it is CPU-friendly and programmer-hostile. Ruby, by contrast, is the ultimate in programmer-friendliness. At considerable expense to the CPU! > however, speaking to one my programmer friends who is a top level Java > programmer (the stuff he writes is very efficient and fancy as > well--great balance), Oh, I love it when they start lecturing you on how awesome that peesashit language is! Ay-yi-yi! > he is telling me that 1) c++ is being phased out > (except 4 real low level stuff like drivers, etc.) in favor of languages > such as Java or Ruby. Incorrect. C++ is a systems language (per Bjarne Stroustrup, its author). Systems are large and long-lived. Nobody is phasing them out. C++ is strongly represented in the database, videogames, operating systems, scientific, and research spaces. Also, all those spaces typically "alternate hard and soft layers", by augmenting their C++ with a soft OO language. Videogames use LUA, OSs often use Perl, databases use at least SQL if not more, and so on. Ruby makes an _exquisite_ soft-layer, to provide the high-level features for a C++ application. > he recommends i switch from learning c++ to learning > Java or Ruby. i wd hope to be able to choose the best path and not have to > switch tack in the middle as my IT capablity is not a full time activity, > but more of a support 4 my main one--finance. Learn to learn languages. I could write a program in Java if you forced me to (and with steady access to Google). Then learn all of them. You don't have to worry about running out of room in your brain! > of course, learning curve is to be taken into consideration as well.... > > 'd love some comments that might help me consider my options and pick a > path (c++, java or ruby) w/ a higher level of confidence..... i know that > people here will be biased towards Ruby, but that is fine: i want to hear > about it.... You will never miss anything (except lots of entry-level jobs that nobody should want) if you avoid Java like the plague, and stick with languages that are technically superior. Put another way, the simple motivation of having a boss order you to use Java is not good enough. The motivation itself will not magically make Java more productive. It will slow you down. Some people work by the hour, so that's okay for them. If you want to be rewarded for productivity, go with the most technically advanced system you can. I work to the story-point. That means I estimate for my client each feature in "ideal hours", and then I charge to those point, _not_ the actual hours spent researching and coding. I don't actually give a darn what that time is (and it usually includes lots of bizarre interruptions from my females!). If I did that using any system besides Ruby (on Rails, and pure Test Driven Development), I would be absolutely screwed. Instead, I am able to fix the cost of each iteration, while keeping the quality as high as possible, without excessive delays. -- Phlip http://www.greencheese.us/ZeekLand <-- NOT a blog!!!