6 ms·
McCLIM – GUI toolkit for Common Lisp
- reikonomusha 6y agoDaniel Kochmański [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 http://turtleware.eu/turtleware.html [2] http://bauhh.dyndns.org:8000/clim-spec/index.html http://bauhh.dyndns.org:8000/clim-spec/index.html
- jackdaniel 6y agoHey, thank you for very kind words!
- jonathanstrange 6y agoThe 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 6y agoAll 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.
- chr 6y agoRecommendations for especially inspiring and/or informative videos on McCLIM? https://www.youtube.com/results?search_query=mcclim https://www.youtube.com/results?search_query=mcclim
- mepian 6y agoThe maintainer made this demo: https://www.youtube.com/watch?v=kfBmRsPRdGg https://www.youtube.com/watch?v=kfBmRsPRdGg
- jackdaniel 6y agoFun fact: google outed me from my account a year ago (I didn't bother to set up another one).
- phoe-krk 6y agoThere 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_sdCeE5SufaeAtbYPv80 https://www.youtube.com/playlist?list=PLgq_B39Y_kKD9_sdCeE5S...
- jwr 6y agoI 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).
- roenxi 6y agoIn 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 6y agoThe 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.
- lukego 6y agoI'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/1357304452668088320 https://twitter.com/lukego/status/1357679840334409730 https://twitter.com/lukego/status/1357679840334409730
- jackdaniel 6y agoHey, 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 https://twitter.com/i/status/1357289617385525248 I hope that you enjoy the project. We have multiple contributors and it gets better with each week.
- mark_l_watson 6y agoThanks 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 6y agoCLIM 2 for LispWorks Professional on Mac OS uses the old Motif backend.
- User23 6y agoThanks 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 6y agoHey, 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™ we are going to switch to xrender protocol (you may see wip in backend-manual branch).
- Athas 6y agoI'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?
- nerdponx 6y agoMaybe this is a silly question that reflects my lack of understanding of how it works, but: does it support Wayland?
- jackdaniel 6y agoThe 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 6y agoBut that would be a nice project for a hacker looking to learn CLIM internals, no?
- jackdaniel 6y agoSure, but I'd wait for the backend writing guide I'm working on - it is easy to get confused without a guide.
- fmakunbound 6y agoI’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 6y agoLack 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 6y agoYes, 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!