Hacker News new | ask | show | jobs
by Grue3 2885 days ago
I'm using Common Lisp for all my personal projects (https://ichi.moe is the biggest one). I find it the easiest language to develop in, because of the tooling (SLIME), language features (CLOS, macros), and it fits my mental model the best. Granted I've been using it for a very long time, so maybe I'm just more familiar with it.
2 comments

I have no real opinion on the tech stack (beyond being glad that it works for you), but this is very cool, and is something I've looked for in the past, unsuccessfully.
For something a bit more mature, you might also like https://jisho.org , which uses the venerable MeCab [1] for morphological analysis, instead of the apparently homegrown system of ichi.moe, and also incorporates a lot of other resources.

[1] http://taku910.github.io/mecab/ , also available as a Debian package

Except Jisho obviously produces worse results on pretty much any non-trivial sentence. Sure, I wrote my own segmenter because everyone else's wasn't good enough, that's a feature not a downside.
Can you give an example?
Just a few deficiencies that I found:

1. Jisho can't really do conjugations. It only says "X could possibly be an inflection of Y with these forms" based on the ending of the verb. For example 邪推してしまう becomes

邪推してしまう could be an inflection of 邪推する, with these forms: Te-form. It is a connective form of the verb, usually called the gerund.

As you can see it only saw "邪推して" and ignored all the rest. ichi.moe always fully parses each conjugation.

2. Jisho can't handle when words are spelled in kana, unless the word is specifically marked as "usually kana". For example when parsing a sentence "ヤバそうなはなしを聞いた", the word "ヤバそう" is not recognized at all, and "なはなし" is parsed as "なは"+"なし". ichi.moe can often handle such spellings.

3. It splits expressions like "いざとなったら" in "いざとなったら勇気が無くなった" (despite the word obviously being present in their dictionary) and the meaning of the expression can be hard to guess from the components.

Considering their segmenter apparently last updated in 2013 there's little hope this will ever improve.

When I do echo '邪推してしまう' | mecab I get

  邪推	名詞,サ変名詞,*,*,邪推,じゃすい,代表表記:邪推/じゃすい カテゴリ:抽象物
  して	動詞,*,サ変動詞,タ系連用テ形,する,して,代表表記:する/する 付属動詞候補(基本) 自他動詞:自:成る/なる
  しまう	接尾辞,動詞性接尾辞,子音動詞ワ行,基本形,しまう,しまう,連語
  EOS
and I have no idea why jisho.org completely ignores the しまう.

The other problems do seem to be related to the segmentation approach MeCab takes. I've usually found it to be satisfactory, but maybe I just haven't been looking hard enough for errors. I might try and see how well your Ichiran works as a replacement. Thanks!

Which implementation do you use?
SBCL aka the best one. I develop on both Windows and Linux machines, depending on circumstances and it works pretty well on both.
Better than Allegro or LispWorks?
For me the biggest pain is that there are plenty of libraries that simply don't "quickload" in LispWorks. I've never had that issue with SBCL, which about 70% of the community seems to use, followed by CCL.

No surprise considering how gimped the personal edition is (which is even one major version behind). I wish they had a sort of revenue restricted Community Edition just like embarcadero is doing now. I'm old and I don't mind paying for tooling, but how many are dropping $750 on the Hobbyist edition?

I see, yes you are right about the price.

I tend to call the attention for these Lisps, just because it seems a large amount of developers aren't aware what they are actually loosing in productivity by sticking with their free (gratis) tools.

Embarcadero is another good example, given what Delphi and C++ Builder were already capable of. Although here they have themselves to blame how Borland lost their hobby market ethos.

What productivity do you gain by using Lispworks? The only benefit is the cross-platofrm graphics api last i checked.