u/iprog4u
- 5points
- 32points
iprog4u
iprog4u
Thank you for more excellent work. Much love for Picolisp!
iprog4u
Lisp is indeed the programmable programming language. Here's a good example of how I've used it to solve a problem some 20 robotics specialists said was "impossible". I used Lisp to create a Domain Specific language or DSL. See Wikipedia and others
I used my custom language to coordinate motion of our prototype robot with software which was not intended to be interfaced with at all. Essentially I tricked other software programs into thinking that our robot is simply a hyper-accurate human. Without my custom language to control motion as well as the other programs with some fairly complex logic behind the scenes, I would not be able to achieve my goal. There is no more sensible language to reach for than Lisp in that scenario as it's the fastest way to iterate towards your goal. Basically you can build DSLs and actually change the way Lisp works (lookup reader macros to start) such that you fit Lisp to your specific problem rather than try craft your problem to be solved in your other language of choice. Lisp will turn your problem solving inside out and then into a mobius strip. Happy to answer any other questions.
iprog4u
Absolutely. I work in an R&D department and was able to convince management that by using lisp we can gain competitive advantage for a long list of reasons which I'll spare you from for brevity. If you like I'm happy to go into detail.
The short answer is that I've used lisp with one other programmer to outdo the efforts of a team of 15 who were dramatically better funded than we are by millions of dollars and in less than half the time. They were using C/C#. We use lisp with some bits of C and C++ where unavoidable/makes more sense such as GPU programming and other stuff.
Another way I've used lisp at work were for data munging/formatting various types and sources of data into one cohesive report.
We use lisp to coordinate and automate many operations now.
We'll have a need for distributed processing soon and so I'll be incorporating lisp flavored erlang into the mix. Any other way I can use lisp is now encouraged at work and the use of other languages requires a good reason to use it and approval. This is a lucky and rare scenario but not impossible to achieve.
I hope this helps to convince your to try lisp out as it's a rewarding adventure. Happy hacking!
iprog4u
Learning lisp will alter the way you solve problems. At first it may seem counter-intuitive or difficult but if you work at it enough learning lisp allows you to make your programming language fit your specific problem rather than trying to craft your problem to fit your chosen language, especially if you remain in lisp.
"Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot."
-Eric Raymond, "How to Become a Hacker"
This is true and I encourage you to explore why. A gripping story that got me to explore lisp was of how NASA debugged a live, running system on deep space one after it encountered an error...100 million miles away in space never to be recovered by humanity, and let it go it on its way after fixing it as if no problem ever occurred (look it up, it's worth reading). This and many other stories impressed me to a point of looking into this language. I hope you look into it too as well as learn how to hack better than ever because of it.
iprog4u
...but even if you become spoiled and not desire to use other languages, learning lisp can make you a better programmer in any language. It. Will. Change. Your. Life!
iprog4u
Terse code at ~70-ish lines, very cool, and inspires me to learn more about monads.
iprog4u
Very cool. Thanks for sharing!
iprog4u
It is much better now. For over the last 2 years I've had the great pleasure of using 64-bit CCL in Emacs/SLIME alongside a 32-bit LispWorks environment for GUI (64-bit was unavailable at the time of purchase). CCL in Emacs/SLIME is no different to debug than SBCL (which was the first implementation choice), restarts, jumps and all.
iprog4u
Indeed it is! I'm grateful to have sold Lisp's numerous advantages to management where I work at a 3rd party inspection company with deep ties to aerospace so windows is abundant. LispWorks and CCL (Emacs/SLIME) are where another programmer and I spend most of our time. We use Lisp to automate as much of our workflow as possible. One project has been successful at turning what used to be 2 weeks of painful, error-prone, human driven work across multiple programs into a program which automates most of this into more reliable results in less than one day. Lambda FTW.
iprog4u
Nice work. I like your repo as well.
iprog4u
TL;DR: Happily using common lisp at work most of the time for automation, R&D, whatever else possible.
I'm fortunate enough to have convinced smart people who own the company for which I work that common lisp will be our secret weapon citing the numerous reasons which make common lisp superior to popular language choices.
For nearly three years I've used common lisp to be the conductor to the orchestrata of multiple software suites into one cohesive automated solution. This involves custom robotics, a very expensive custom computer, and a very very expensive camera and projector setup to take 2D pictures of objects and reproduce them in 3D to the accuracy of microns, which is then compared to a CAD model, finally producing highly customized reports.
I've used common lisp to produce software and a machine which we were told we could not build, wouldn't work with anyone's software, etc. Yet, over many thousands of parts these machines have successfully helped companies reduce scrap material, make better jet parts, improve energy efficiency, make better hip and knee implants, make better gun parts, and much more.
Without lisp and it's community I wouldn't be able to make new custom features in days or hours sometimes. Lisp helps me back around other software suites shortcomings and affords me more capability than entire teams of competition.
I stand tall on the shoulders of giants. Much respect to all lispers, especially those who contribute back to the community.
-DB
iprog4u
Carp looks like a really cool project, I look forward to seeing more. PicoLisp has many more batteries included than CL, the database, a web app server, a Prolog implementation, FFI (yes CL has this too), Java interop, and more. That said, porting libs from CL to picolisp shouldn't be too hard with a general understanding of picolisp. Some people have already created/ported useful libraries like interfacing with openGL, Redis, picostache is a template lib after moustache, and lots more.
There are many built in functions to accomplish your goals with that you'd suspect needing to write your own function for. Picolisp reference:
Also the two free books, many articles, essays, and blog posts by the community are exceedingly helpful as is the mailing list and #picolisp on freenode IRC.
I won't pretend that PicoLisp doesn't have a steep learning curve but once you "get it", it's like having the lisp epiphany all over again...and you get a wizard hat too...not really but you can go make one if you want a wizard hat that badly. Enjoy.
iprog4u
Very cool project.
iprog4u
I can only comment on LispWorks but actively use it at work to build nice GUI apps that look like any other app your OS runs (winyuck in my case). CAPI is really nice to work with and can get rather in-depth as far as options go.
Not being able to change the theme of the IDE is annoying but that's what a swank server and Emacs are for. The IDE is very helpful though. The debugger, tracer, and many other utilities are very nice to work with. It's expensive but if you can get it, if recommend it.
iprog4u
Thank you. After compiling PicoLisp in the container I simply copied the build into a fresh container and linked the binaries following the typical instructions found in INSTALL.
iprog4u
Oops, corrected thank you. Named changed due to the way automated builds just take the name of the repo directly from Github.
iprog4u
Just trimmed from 170MB down to 14MB!
iprog4u
Please do not be mistaken. I stand tall on the shoulders of Alexander Burger who created the language and still maintains PicoLisp today. He's also very active on the mailing list and quick to reply with what you need. I'm just a big fan of the language and it's capabilities so making it available as a container seemed like a good idea. Recently made some plans to utilize the language with Triton container infrastructure and build data science applications as well.
You can definitely try PicoLisp on your RPi with an 'apt-get picolisp' without the container overhead as well. The new website does look nice and the vibrant community is exceedingly helpful. I hope you enjoy the language as I do.
iprog4u
PicoLisp has a Prolog engine built into the language among other great bits like a web app server and a database. Admittedly there's a bit of a steep learning curve but once you get it, PicoLisp is especially well-suited to build an expert system with.
Another fine example.