------art_100108_14397825.1164243062803
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 11/22/06, Daniel Schausser <daniel.schausser / gmail.com> wrote:
>
> And that would be the best choice. If you want efficiency you should
> definitely use C++/Visual C++. If you ask me, it's the best programming
> language around, when you want efficiency, power with a resonable amount
> of work when writing code.


Where reasonable means what? If you are using C++ to do text processing, I
doubt it would be a 'reasonable' amount of work.

No one mentioned Objective C so far. It probably is what C++ should have
been, probably the ++ excited the masses into C'ing past this gem, which
works a little like Smalltalk grafted on to C, while remaining compatible,
you can always drop down into ANSI C and it still feels just like home.

However, Java would more suited when you want to make things fast and
> not care very much about efficiency. For example, if you like to split
> up a mail address like daniel.schausser / gmail.com and you want to do it
> fast, you have to allocate buffers, use strtok and so on and so forth.
> With java, that's piece of cake


I would prefer to build in a lightweight regex library instead and call its
API. It will be 1) fast, 2) bug free, 3) adaptable to the next similar job.

Seriously, half of C and C++ is knowing all the little libraries and code
snippets, preferably on call via some macro invocation or lying somewhere on
your disk, and before you know it, you are bolting components together
instead of doing the hard slogging, so you have lots of energy when you get
to the part that you, not the library, or the language, or whatever.

Java is fast, especially if your programs run for a long time, but you
surely don't want to incur the JVM startup overhead many times a second. I
think Java is more useful now for the VM and the libraries / interfaces, but
the alternate JVM languages still need another round of maturity or so, for
many of them. I don't know VM technology, so I can't say anything about the
VM quality, but I would love to see Ruby on both of them, or even better
with a VM that kicks their butts, tuned just for Ruby, somehow like how Perl
can get ridiculously fast when you are executing huge 'macro-ops', meaning
you are just using a concise Perl syntax on top of some well crafted C code.

C is still very useful. I recently had to write software for a device too
puny to run Ruby, Perl, Python, PHP etc. The manufacturer only has a (wildly
broken) C API. Think something so broken that you use one method to
calculation placing a character on a screen, and an entirely different
coordinate system for a 'line oriented' C API. Where WaitForKeyPress only
gets a few keys, so you have to CheckForKeyPressAndSpin instead. The hard
layer and soft layer described above works very well. I wrapped up the
horrible C API into tested, bulletproofed and debugged functions that I
could call from Lua and all of a sudden it felt a bit like Ruby :-)

For finance programming, am not so sure. You may want to make sure you are
good with R/Matlab and Mathematica. Or you may want to learn APL, if you
want to be an arcane master dazzling the operator-overloading gang (both pro
and con sides) with your sheer conciseness and power. Well, I don't know
APL, but that is how I imagine it to be. All kinds of crazy symbols, where
you need a *special* keyboard.

-- G.

------art_100108_14397825.1164243062803--