8 ms·
Yes. I have deployed mobile applications using native UI (SwiftUI, etc.) with all the shared logic in Lisp. To me, this was a better alternative than the usual
by diskzero 5y ago
Yes. I have deployed mobile applications using native UI (SwiftUI, etc.) with all the shared logic in Lisp. To me, this was a better alternative than the usual C/C++ shared logic approach.
My current application is a music hardware device that is mostly Lisp. As to why, this could be a lengthy post, and I am sure I have made one elsewhere on HN. It is a very good language, has many of the features that are being re-discovered and implemented in other languages, has an interactive model of development (REPL driven) that I find very productive and I can deploy an application across multiple platforms with little to no modifications.
I do pay for LispWorks and it is more than worth it. I make a living developing applications and devices that use Lisp and the cost is covered by a fraction of a percentage of sales.
Some people may try to use SBCL, CCL or other free implementations. I just don't have the time or risk tolerance to be dependent upon the lack of predictability for bug fixes or modifications needed to run on new architectures. The M1 architecture has been a big problem for some of these Lisps. CCL has no timeline for adoption and some commercial products are suffering as a result. GNU Scheme will probably never be able to run on the M1. LispWorks stays current and will fix reported bugs rapidly.
- moonchild 5y ago> M1 architecture has been a big problem for some of these Lisps. CCL has no timeline for adoption and some commercial products are suffering as a result. GNU Scheme will probably never be able to run on the M1. LispWorks stays current and will fix reported bugs rapidly SBCL supports the M1; lispworks and allegro still do not.
- diskzero 5y ago> SBCL supports the M1; lispworks and allegro still do not. I have been using LW on the M1 for months. Why do you think Apple Silicon is not supported?
- moonchild 5y agoIt runs the x86 version under rosetta. I expect most lisps will run the same way.
- diskzero 5y agoYou did mention above that 8.0 is now native M1, but you may still be quite right about the 7.1 version that is available for free download works using Rosetta 2 on the M1.
- diskzero 5y agoIt looks native Apple Silicon to me, but maybe you have information I don't. >>> file lispworks-8-0-0-macos64-universal lispworks-8-0-0-macos64-universal: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64] lispworks-8-0-0-macos64-universal (for architecture x86_64): Mach-O 64-bit executable x86_64 lispworks-8-0-0-macos64-universal (for architecture arm64): Mach-O 64-bit executable arm64
- moonchild 5y agoAh, right you are; looks like my information was out of date. http://www.lispworks.com/news/news39.html http://www.lispworks.com/news/news39.html says: > Native support for Apple silicon Macs
- lispm 5y agoLispWorks 8.0 does support the M1. You can get a version for macOS and one for Linux. I can run the Linux version under the Parallels on my M1 Mac, too. It even supports universal binaries for macOS on the M1: LispWorks can produce one macOS application with both native Intel 64 and native ARM64 code. SBCL is native on the M1, too.
- jpe90 5y agoDo you use emacs the lispworks editor, or something else for coding?
- math-dev 5y agoI am working on some tools to make LispWorks easier for Emacs users, watch this space in the next few months as I finalise it. I tend to find LW users are very comfortable with their IDE, however coming from an Emacs World, I struggled a bit. However once I get all my best parts of Emacs into LW, I will be very happy as it is written completely in CL and together with CAPI and the readily available source code for its Editor, it can do a lot more than Emacs for Lisp Development
- jpe90 5y agoI'm excited to see it!
- diskzero 5y agoI have modified the LW editor to be more "Mac-like" which I guess makes me less hardcore. I am not sure a hardcore emacs user would be totally happy with the LW editor either. I have also used VS Code with the Alive plugin to interface with LW.
- jpe90 5y ago> I have modified the LW editor to be more "Mac-like" which I guess makes me less hardcore. You're shipping commercial software with CL so I think you're about as hardcore as it gets :) > I have modified the LW editor to be more "Mac-like" which I guess makes me less hardcore. If you mean in terms of keybindings, I did the same when I did a trial recently even though I usually use Emacs for working with lisps. I think it's nice to keybindings that match most text editing programs, and I think the benefits of Emacs-y structural editing are a little overstated (in my opinion). Was just curious to hear how folks using LW do their work.
- math-dev 5y ago
- solarmist 5y agoAny tips for getting started doing mobile with Lisp? Or general moving from standard development environments to lisp? I've been interested for a long time, but never really came across examples of established developers branching our so I don't really know where to look to get started. I'm already an emacs user too, so it bothered me that way too.
- diskzero 5y agoThe first thing I would suggest is see if using Lisp would satisfy some need that your current solutions are not. Sometimes it is hard to even know if that will be the case, because later generations of programmers may not even know what makes Lisp different from Python/C/C++/Java/etc. I would suggest reading "On Lisp" [1] by Paul Graham to get an idea of what Lisp can do. There are many other good books, but I find "On Lisp" to get to the point of what makes the language special, as opposed to other books that focus more on computer science fundamentals or topics like symbolic AI. You will often encounter people making bullet points of why Lisp is or is not better than <insert language> here. This was me! I was a self taught programmer who grew up in the 80s using assembly language and Basic and then C and C++. The type of hardware that could run Lisp was not available to me and my career trajectory took me towards C++/Pascal/Objective-C. My first serious encounter with Lisp was using a Symbolics workstation that was sitting in a conference room at Apple. It blew my mind! I wanted to have an environment similar to that combined with what I was working on with OS X. It never happened. Current hardware is amazingly powerful and many of the gripes people raised about Lisp are no longer pressing issues. I don't experience memory pressure or GC lags or any of the issues that used to be show stoppers thirty years ago. You may find that Lisp is for you and it is scratching some particular itch you may not realize you even had! [1] http://www.paulgraham.com/onlisp.html http://www.paulgraham.com/onlisp.html
- solarmist 5y agoI have a pretty good idea that lisp would fit into how I like to develop software. The biggest thing that I'm looking towards lisp for is interactive programming. Python is currently my primary language, and I heavily test/prototype things in the REPL as I'm programming or dropping into one for debugging. Additionally, I like the things you get with a complied language but have zero interest in going deep (I know them and have used them, but not professionally) with the standard C derivatives of C, C++, obj-C, and Java. I'm also pretty tired of many of the gotchas in python with its bolted-on-type system and is essentially a wrapper around C. I love the libraries and functionality, but the amount of boilerplate and testing needed to produce reliable code has burnt me out on it. I'd probably go with Swift and SwiftUI if it weren't Apple only and still limited in what it can be practically used for, such as building deployable web services with it. The other thing that has always lingered in my mind is the promise of DSLs/functional programming/etc. or other abstractions that never lived up to their potential ergonomically in other languages. I'd start using them but almost immediately run into edge cases that required workarounds to get working. After a while, I would abandon them entirely because the workaround added up to not being cleaner overall or leading to lower readability and maintainability. Like function composition, I'd love to have functions that are generic work loops/data pipelines that I pass in different data and business logic/conditionals to. Still, in python, it's challenging to do that cleanly/maintainable. Or even some of the basic stuff Ruby does with metaprogramming that ends up being a nightmare to attempt in python. Even javascript does better with functional programming than python or any C derivatives. So I have a fair sense of why I'm leaning towards lisp. I'm more interested in jumping in and using it for practical things. For example, I want to write a web API that uses SQLite. How do I prototype and test that using lisp? Kind of a “working programmer’s guide to getting going with common lisp.” Oh, I'm also currently an independent software developer, so I don't need to worry about external constraints. I will read On Lisp first, though! I just read the preface, and it directly addresses several of my desired outcomes.
- ssfrr 5y agoIs your inner audio processing loop implemented in CL? What kind of real-time guarantees does it provide?
- diskzero 5y agoYes. I am not powering a nuclear reactor using the engine, so I can't give you any sort of hard-RTOS numbers. The kernel of the device itself uses Linux, which has been modified with "real time" patches. At some point, I'll have to publish data and benchmarks about performance to satisfy potential customers. I can say I would personally much rather use this device in a live setting than any desktop or laptop, unless I have aggressively modified the software environment of the computer. There are just too many things that can go wrong in a live setting.
- solarmist 5y ago> My current application is a music hardware device that is mostly Lisp. As to why, this could be a lengthy post, and I am sure I have made one elsewhere on HN. I was curious and stalked your profile, but I didn't come up with anything that summarized your reasoning on why you use Lisp beyond this brief statement. Perhaps you were remembering the discussion around "Some thoughts about raising the profile of Lisp" (https://news.ycombinator.com/item?id=28366292 https://news.ycombinator.com/item?id=28366292). If you get a chance I'd love to read your take on in it. There are so few people doing active development in lisp its hard to let go of a chance like this.
- wglb 5y ago> cost is covered by a fraction of a percentage of sales Does their licensing cost relate to your sales? I remember inquiring some time back, and to buy the commercial version, you had to, among other things, agree to their right to audit your books, which to me seemed draconian.