libera/#commonlisp - IRC Chatlog
Search
0:22:44
josrr
shka: I don't know if it's what you need, but the make-cipher function receives the :padding parameter
0:34:05
MommyDearest
when I start slime, i get a warning about swank versions being mis-matched, but I can't figure out what to update/upgrade. any suggestions would be helpful!
9:25:42
dnhester`
mfiano: have you used it? How does it compare to the julia package manager you were so happy about?
9:27:43
dnhester`
MommyDearest: Usually that means you have two versions of slime being loaded. If you are useing roswell, check your roswell directory where a slime folder should be available, and then you can delete the one emacs's package install downloaded...
9:30:15
mfiano
I have not as it didn't interest me, using alternative delimited file formats and, per project dependencies can't work with the image-based development workflow I and many others use.
9:56:49
dnhester`
mfiano: thanks for replying. I am just curious that's why I asked. I don't know anything about OCI so I didn't follow the docs. I read your critique praising the julia package manager and was wondering if this was similar. you spoke about how you ported some of your code to julia, would the opposite be easy as well? Would it take a lot of effort to port the julia package manager to CL to serve as an alternative to quicklisp?
10:03:03
mfiano
That praise was a long time ago and only really applies because it is a batch-compiled language at the end of the day.
10:06:13
mfiano
Lisp is an image-based language, and the package system prevents the same package name existing in the same image. Attempts to 80% this are usually by those coming from languages that haven't fully leveraged this ability yet, in my opinion.
10:08:18
mfiano
THose types of package systems make sense when programs development involves compiling files up front. In Lisp, we don't have to use LOAD or COMPILE-FILE to invoke the compiler even.
10:15:12
mfiano
Julia is an image-based language, with many similarities to CL, but it has to precompile everything with LLVM up front, and is designed to work with packages having the same name. Infact, some years ago, I dismissed Julia because the package (in the CL sense of the word, module for Julia) system was so buggy because of this. Live recompiling a function would, infact, define a new package with
10:15:14
mfiano
the same name for that new function, and the REPL would be in a same-name/different-identity package with no intuitive way to know what is what.
10:16:55
mfiano
Languages that try to mimick CL's features often do it poorly when the gestault of everything is put together, and Julia is no exception, despite it being my second choice, if I ever had to not use CL (at the time I "switched" to Julia, I was not in a very good state of mind. I am happily using CL)
10:17:59
mfiano
The beauty of CL is not its features, but how they all fit together seamlessly (mostly) and written out in stone for many years and many more to come.
10:25:45
dnhester`
mfiano: thanks for taking the time to write that. I've had issues myself with the versions of packages, and I very much dislike that quicklisp is not secure by default (https). I am using qlot, which has worked fine so far, but I wish quicklisp would support versions of packages, and that we didn't depend on a person to decide what get's in the registry or not.
10:27:16
dnhester`
Does anyone use the CL Critic? https://courses.cs.northwestern.edu/325/exercises/critic.html#critic Sorry I had accumulated a bunch of questions for a while. I noticed that there is no default linting discussed in the sources I've read. That's why I am asking. I know there are style guides, but it would definitely be useful to get style warnings as I'm compiling my functions into the repl...
10:29:46
dnhester`
looks like the last commit was two years ago, but that's not necessarily a bad thing if it works better than quicklisp https://gitlab.common-lisp.net/clpm/clpm
10:39:30
mfiano
So, I guess the tldr is, Julia has in a very good source code loading system for being a batch-compiled language, or any language, dynamic or not, that operates on file units. I had the fortune of nearly simultaneously picking up CL and Python when I started to get serious about learning to program, and I dropped Python after about a year. Not because of its speed or because it is interpreted,
10:39:32
mfiano
but because it is such a slow process to have to load files instead of modifying the code you want now. I was getting more practical, working applications done with less time spent learning Lisp, than I was with the addition year of Python experience and more time allocated to trying to bend it to my liking.
10:50:07
mfiano
At the end of the day, application performance doesn't matter if a program never gets completed. CL makes it easy to prototype and you have an array of choices for performance for your particular hardware/platform, in-language and implementation choice.
11:01:46
mfiano
A word of wisdom if you will: I find that most of programming is thinking about programming, rather than typing out source code. Take breaks from programming and let the subconscious think, and have a design plan to start. It is more efficient.
11:15:14
mm007emko
Since the vast majority of SW projects spend the vast majority of their time in "production" or "maintenance" phase (however you call it), even for longer projects, the coding speed is not that important. Maintainability and flexibility
11:18:36
mm007emko
A project, which never hits its market at least as a functioning prototype, is never created.
11:21:32
mm007emko
If you can't make the project reasonably performant, the costs of running it can make you go out of business. If you can't make new features, competitors can take over. If you can't fix bugs or change its behaviour, customers might be upset.
11:24:02
mm007emko
If your project breaks when a dependency is updated, it's a lost time. I have been spending the last 3 months updating a larger Python code because of breaking changes on dependencies. I wouldn't like to do that if I wasn't paid (I am so I don't care, using shite like Python at least provides a job security :) )