* Marco Antoniotti <
56c7d4c5-c1c9-4398...@googlegroups.com> :
Wrote on Wed, 19 Jun 2013 00:49:09 -0700 (PDT):
| On Wednesday, June 19, 2013 5:52:57 AM UTC+2, Öö Tiib wrote:
|>
|> Lets say you can afford to hire people who win programming contests.
|> At moment such people mostly prefer C++. Why people, who win
|> programming contests, prefer C++? Are programming contests skewed?
|> Unlikely. Anything can be solved with lisp. It is probably problem of
|> education. Anyway it is unlikely you can convince stars to switch
|> now.
|>
|> So you get best modules written in C++. Rest of your code has to
|> interoperate with the core "star written" modules. The problem boils
|> down to ease of integrating, debugging and profiling such
|> symbiosis. PHP, C#, Python and Java integrate with modules written in
|> C++ well enough. How well lisp integrates?
|
| And I thought (like the SLDJ crowd touts) that C++ was a "low
| productivity language" 3:)
From the GCC INSTALL:
"GCC now uses C++ as its implementation language. This means
that to build GCC from sources, you will need a C++ compiler
that understands C++ 2003."
Any opensource project where the stanford investors have a stake is
likely to be converted to C++ because of the finer control it offers on
the toolchain and the finer control on C++ developer salaries. C++ is
additionally a wise choice from a HR point of view. "If some is
skillful enough to understand the C++ spec Du Jour, and persists in
programming in it, he is a good NWOSlave: i.e. he take this much sh**,
can eat anything his managers can dish out". Besides a new version of
the spec can help pre-empt a fresh workforce batch.
| In any case: C integration to and from Lisp is easy. Check out CFFI
| or the more low-level facilities provided on a per-implementation
| basis (there is more than one CL implementation).
CFFI/ASDF integration addresses some of the HR issues I mentioned in the
above paragraph, but has a long way to go before it gets to be a
profitable alternative for C++
| As per C++ integration, I'd wager (I amy be wrong) that the
| integration provided by the various SLDJs (and Java/JNI) always relies
| on an abundant sprinkling of 'extern "C" { ... }' in your C++ code.
I am no more an expert than Marco on C++ integration, but I imagine SWIG
could be the point of entry if you are looking at interfacing to it. I
cannot recommend CFFI because of its dependencies on ASDF and other
developer-ecology-based libraries, I prefer UFFI and using
lisp-implementation-specific callbacks. In this case SWIG/UFFI-bindings
support seems to be intentionally crippled, in favour of
allegro/cffi. But one gets a usable interface to SWIG by using the
SWIG/SEXP-bindings and translating that to UFFI. ---Madhu