понедельник, 19 марта 2012 г.

"embeddable" cl

I started to use ecl some time ago but can state already that this specific implementation gives really bad impression. It is really disappointing for such old and mature language as lisp.
  1. This implementation was named 'embeddable' by mistake. It is really hard to integrate it into other software. For example, if you try to initialize ecl from .dll it crashes in cl_boot() call. The complete stack trace:
           ecl.dll!_GC_init_thread_local()  + 0x20 bytes   C
           ecl.dll!_GC_new_thread()  + 0x17c bytes C
           ecl.dll!_GC_register_my_thread()  + 0x30 bytes  C
           ecl.dll!_GC_thr_init()  + 0x32 bytes    C
           ecl.dll!_GC_init_inner()  + 0x2f0 bytes C
           ecl.dll!init_alloc()  Line 757  C
           ecl.dll!cl_boot(int argc=0x00000001, char * * argv=0x003d6160)  Line 464        C
  2. Lispers are so proud of its famous REPL but in the fact it is really crippled. For example, ecl is missing even trivial autocomplete feature! Sure I know about ecl-readline module existence. It requires libreadline to work that failed to build on Windows even with fresh mingw with gcc 4.6.1
  3. Looks like ecl debugger brought its modern features straight from 50ieth. Before I tried it I was sure that the most horrible debugger is gdb and it is not possible to imagine something worse. But ecl proved that I was terribly wrong.
  4. C/C++ binding is not easy to do as well. Swig can generate more or less correct CFFI (which is missing from ECL distribution and it needs to be installed separately) for C code only. The author writes:
    This feature to SWIG (for CFFI) is very new and still far from complete
    Thus it doesn't work for C++ objects that contain virtual methods.
  5. I just can't believe that they came into XXI century without having central package repository (the one similar to CPAN/rubyforge). So new package installation became an infernal quest to find and download unknown quality package, try to install it and make a voodoo dance in vain attempt to force it working. It is so disgusting. 
  6. As I understood ecl implements non-сosher lisp. Multiple mail list topics like "xxx build failed", "Building yyy with ecl failed", "cannot build zzz using ecl" and their varieties prove that.
  7. ecl doesn't support many simple Windows-specific features like registry access and OLE automation.
  8. Integration into Visual Studio is completely missing. But it is expected after all previous drawbacks and I need to be completely stupid to expect it.

Комментариев нет:

Отправить комментарий