[HN Gopher] McCLIM - GUI toolkit for Common Lisp
___________________________________________________________________
McCLIM - GUI toolkit for Common Lisp
Author : lelf
Score : 135 points
Date : 2021-02-04 12:27 UTC (1 days ago)
(HTM) web link (common-lisp.net)
(TXT) w3m dump (common-lisp.net)
| jwr wrote:
| I really enjoyed the concepts in CLIM back when I programmed in
| CL. These days I can't even imagine using CLOS and relying on
| mutable state in objects. I'd much rather have my UI be a
| function of data, which is why I enjoy using React (with
| ClojureScript and the Rum library). But there are many ideas in
| CLIM that are worth at least learning and thinking about (for
| example, Presentation Types and presentations in general).
| reikonomusha wrote:
| Daniel Kochmanski [1] has been continually improving the features
| and performance of this very advanced library. Kudos to him,
| because it's a lot of thankless dirty work dealing with the
| intricacies of X and the CLIM standard [2], and his work is
| hitherto relatively unappreciated.
|
| CLIM is such an interesting and different GUI paradigm, and when
| the implementation works it's both a joy and a mind-bending
| experience. (CLIM has been implemented and re-implemented
| commercially and in open-source many times over in the past 30
| years, but the OS's keep changing!)
|
| In one of my first jobs I wrote a little SQL database editor with
| LispWorks CLIM, and it was really nice to have "object
| presentations". The non-technical staff of the company could
| easily edit complex data/objects in this database without knowing
| anything about what it was behind the scenes, and it didn't take
| all that much programming to make it possible.
|
| [1] http://turtleware.eu/turtleware.html
|
| [2] http://bauhh.dyndns.org:8000/clim-spec/index.html
| jackdaniel wrote:
| Hey, thank you for very kind words!
| jonathanstrange wrote:
| The reason why I never tried CLIM was that it hides deep in the
| specs what kind of host functionality is exposed and what isn't.
| I don't even know whether I can display a context menu with a
| right-mouse click, or whether the mouse-wheel is supported, let
| alone things like drag&drop, etc.
|
| It would be nice to see a list of what it can do and what it
| can't do, so people can choose it for the right purpose.
| jackdaniel wrote:
| All things that you have mentioned are supported. That said,
| I'm working on a guide for writing backends, while it won't
| directly address this kind of questions, it should give at
| least some picture of features used by project.
|
| Many features are illustrated in a the system clim-examples.
| fmakunbound wrote:
| I'm hesitant to ask, because perhaps it's my own Linux box or
| display driver or something... Why does McCLIM seem to flicker a
| lot while moving the mouse over things?
| jackdaniel wrote:
| Lack of double buffering, actually that one will be merged next
| week. I gather that you move your pointer over an image or
| another complex record that gets highlighted (by drawing a
| rectangle around it).
| fmakunbound wrote:
| Yes, it was when I moved the mouse over the menu bar (of the
| climacs window iirc). I'll be sure to go look for a double
| buffer branch and try it out!
| chr wrote:
| Recommendations for especially inspiring and/or informative
| videos on McCLIM?
|
| https://www.youtube.com/results?search_query=mcclim
| mepian wrote:
| The maintainer made this demo:
| https://www.youtube.com/watch?v=kfBmRsPRdGg
| jackdaniel wrote:
| Fun fact: google outed me from my account a year ago (I
| didn't bother to set up another one).
| phoe-krk wrote:
| There is a pair of videos by Jan Moringen on the Online Lisp
| Meeting playlist - one is about an inspector written in CLIM,
| and the other uses CLIM for helping with presenting an
| extensible Lisp reader.
|
| https://www.youtube.com/playlist?list=PLgq_B39Y_kKD9_sdCeE5S...
| lukego wrote:
| I'm doing some McCLIM hacking this week. It's fun. So far it Just
| Works.
|
| I'm writing code to draw PCB designs for fabrication. Just
| getting started and highly speculative. I've been bouncing
| between various programming languages and graphics toolkits now
| at the beginning of the project and so far Lisp/CLIM feels the
| most productive.
|
| https://twitter.com/lukego/status/1357304452668088320
|
| https://twitter.com/lukego/status/1357679840334409730
| nerdponx wrote:
| Maybe this is a silly question that reflects my lack of
| understanding of how it works, but: does it support Wayland?
| jackdaniel wrote:
| The question makes sense and the answer is no, McCLIM may work
| on wayland display server only via XWayland (there is currently
| no explicit Wayland backend).
| slyrus wrote:
| But that would be a nice project for a hacker looking to
| learn CLIM internals, no?
| jackdaniel wrote:
| Sure, but I'd wait for the backend writing guide I'm
| working on - it is easy to get confused without a guide.
| jackdaniel wrote:
| Hey, I'm currently maintaining McCLIM. Cool to see in on the
| front page of Hacker News :-). I'm occasionally dropping
| screenshots of current things I'm working on, i.e this ad-hoc
| animation:
|
| https://twitter.com/i/status/1357289617385525248
|
| I hope that you enjoy the project. We have multiple contributors
| and it gets better with each week.
| levosmetalo wrote:
| Hey, looks great.
|
| What is the state of Windows support?
|
| I tried quickloading mccclim under sbcl on windows and it
| started complaining about fontconfig.
| jackdaniel wrote:
| Currently it requires X11 server running, please see
| https://github.com/McCLIM/McCLIM/wiki/Backends; as of
| fontconfig, since the next release we are going to use cl-
| dejavu to not depend on hardcoded paths. Before that you
| should put dejavu ttf files in C:/Windows/Fonts.
| mark_l_watson wrote:
| Thanks for your work! I will spin up whatever X Windows support
| for M1 silicon on my new MacBook and give it a try, again.
|
| I have a license for LispWorks Professional, but that does not
| include CLIM on macOS.
| lispm wrote:
| CLIM 2 for LispWorks Professional on Mac OS uses the old
| Motif backend.
| User23 wrote:
| Thanks for supporting this!
|
| How would you recommend getting started with this on a modern
| Ubuntu or similar Linux system? I'm not a stranger to Common
| Lisp, but it's been about 8 years since I last did anything
| with it. Back then I used GNU Emacs and SLIME.
| jackdaniel wrote:
| Hey,
|
| 1. install your favorite implementation (sbcl, ccl, ecl)
|
| 2. install quicklisp (see quicklisp.org for instructions)
|
| 3. > (ql:quickload 'clim-examples)
|
| 4. > (clim-demo:demodemo)
|
| You are all set :-) Soon(tm) we are going to switch to
| xrender protocol (you may see wip in backend-manual branch).
| Athas wrote:
| I'm happy to see that McCLIM is still alive! I hacked on it
| during my teenage years (I wrote Drei and a few other things),
| although I eventually lost motivation due to the sheer vastness
| of how much work there was to do.
|
| Out of curiosity, how does McCLIM adapt to new trends such as
| Wayland and HiDPI displays?
| jackdaniel wrote:
| Regarding HiDPI there are some ideas, but right now they are
| not implemented (see i.e
| https://github.com/McCLIM/McCLIM/issues/827). I'm writing a
| vt100 terminal backend to reveal some underlying assumptions
| about the pixel size.
|
| Thank you for working on McCLIM back then! If you feel
| motivated to join development efforts please don't hesitate
| joining #clim @ freenode :)
| roenxi wrote:
| In a typically niche fashion, the "Guided Tour" has an abstract
| and no pictures. What screenshots exist are divorced from code
| samples.
|
| So there is a conundrum here for the passing coder - this toolkit
| comes from the lisp tradition so it is probably completely
| serious when it says it is _a powerful toolkit for writing GUIs_.
| But it appears to require a serious investment of time to figure
| out why that is or how it might compare to a webpage of
| Javascript.
|
| Does this toolkit have killer features that are being poorly
| articulated, or are the advantages from lots of smaller good
| ideas?
| jackdaniel wrote:
| The toolkit is based on presentations which provide a direct
| representation of underlying objects. That (I think) is the
| most distinctive feature of CLIM-like systems (compared to
| other toolkits). That said, maybe we should remove the link to
| Guided Tour from the about page, because the manual is much
| more comprehensive. The specification is very well written, but
| it is rather hard to grok as a learning material.
___________________________________________________________________
(page generated 2021-02-05 23:02 UTC)