Live data from Hacker News

Interactive Common Lisp Development

n16f.net

31–40 of 48 posts

Re: Interactive Common Lisp Development

#31
post #23
post #22

Earlier quoted context omitted.

It's unlikely the ANSI standard will ever get updated - it's a very expensive process. Python doesn't have a standard, but it has a canonical implementation, so maybe a "defacto standard". Not having an official standard didn't matter, though. Common Lisp has defacto "standard libraries" for things like threading. Other things, such as async, are less clear (to me), but libraries do exist. Just because something isn'…

Python evolves through PEP's https://peps.python.org . Can you kindly correct my deplorable ignorance and point me to the Common LISP enhancement proposals ? Maybe I am missing something elementary.

i think it is more correct to say that machine learning saved python

https://lwn.net/Articles/843660/

Re: Interactive Common Lisp Development

#32

Earlier quoted context omitted.

But is there is something inherent to Lisp that makes it "clunky" to work with matrices? Lisp can be at least as high level and expressive as any other language.

> But is there is something inherent to Lisp that makes it "clunky" to work with matrices? s-exps are basically coding at the level of the AST, which for many programming tasks is a powerful level of both abstraction and control. But this interface tends to work much better on tree-like structures (the most simple of which is the list, which in it's simplest case is a cons cell, Lisp's most fundamental particle). Mos…

[deleted]

Re: Interactive Common Lisp Development

#33

Earlier quoted context omitted.

As a huge Lisp/Scheme fan, I don't find it surprising that Python became the language of choice for neural networks over Lisp. NN in general just boil down to doing lots of linear algebra, which is a lot about mutating very large matrices. For this you really just want a wrapper around BLAS/LAPACK, so you can leverage existing optimized libraries. Working with matrices in Lisp always feels a bit clunky, and doubly so…

But is there is something inherent to Lisp that makes it "clunky" to work with matrices? Lisp can be at least as high level and expressive as any other language.

I don't think so, I think it just happens to be that common lisp is more oriented around lists and not vectors.

Since we're in lisp, you can imagine some macros that make working with matrices easier!

Re: Interactive Common Lisp Development

#34

Earlier quoted context omitted.

> But is there is something inherent to Lisp that makes it "clunky" to work with matrices? s-exps are basically coding at the level of the AST, which for many programming tasks is a powerful level of both abstraction and control. But this interface tends to work much better on tree-like structures (the most simple of which is the list, which in it's simplest case is a cons cell, Lisp's most fundamental particle). Mos…

I think matlab has the most succint language for writing matricies [1 2 3; 4 5 6; 7 8 9] then lisp #2A((1 2 3) (3 4 5) (7 8 9)) then python comma freak show [[1,2,3],[4,5,6],[7,8,9]] python's greatest achievement was bringing open source to matrix calculations and dethroning matlab. python is what it is today because it offered 99% of what matlab offered in open source and for $0 to uni students

I was curious about how Julia does 2D matrices and arrays, given they target mathemeticians. They seem to have no shortage of methods of creating them.

  julia> [1,2,3] # An array of `Int`s
  3-element Vector{Int64}:
   1
   2
   3

  julia> [1:2, 4:5] # Has a comma, so no concatenation occurs.
  2-element Vector{UnitRange{Int64}}:
   1:2
   4:5

  julia> [1:2  4:5  7:8]
  2×3 Matrix{Int64}:
   1  4  7
   2  5  8

  julia> [[1,2]  [4,5]  [7,8]]
  2×3 Matrix{Int64}:
   1  4  7
   2  5  8

  julia> [1 2
          3 4]
  2×2 Matrix{Int64}:
   1  2
   3  4

  julia> a=[1 2 5 8 9; 3 4 2 1 33]
  2×5 Array{Int64,2}:
   1  2  5  8   9
   3  4  2  1  33
https://docs.julialang.org/en/v1/manual/arrays/

Re: Interactive Common Lisp Development

#35
post #8

Lisp is amazing. Interesting why Python won the race to become the language of choice for the neural networks wave of AI.

My understanding is that enough time had passed between the AI winter of the late 1980s and the rise of big data and deep neural networks in the 2010s to where a relatively tiny minority of modern machine learning practitioners came from the old-school AI community, which tended to prefer Lisp or Prolog. When machine learning became hot in the past 15 years or so, many new entrants to ML who had no previous AI knowledge used the tools they’re familiar with, which are generally C, C++, Java, JavaScript, and Python. In addition, many in the natural sciences use Fortran and Matlab. Perhaps had the AI winter of the late 1980s not happened (which took out the Lisp machine market) and had Common Lisp not been relegated to certain niches, perhaps there would’ve been more usage of the language, which may have led to Python being less dominant today.

I love Lisp and Smalltalk, but I work as a machine learning researcher as my day job, and I code in Python at work. Admittedly I miss Common Lisp whenever I code in Python, and I think Jupyter notebooks are a poor man’s Smalltalk environment, but when comparing Python to C and C++ (and I used to work primarily in systems programming, so I know my way around C), Python is a major productivity boost.

Re: Interactive Common Lisp Development

#36
post #4

To really discover what interactive, image-based CL development is about, my pointers: - https://www.youtube.com/watch?v=jBBS4FeY7XM (5min) my demo to show how to resume execution of a long running program, from the stack frame right before the bug, after having fixed and recompiled the function, without quitting the debugger hence without stopping the program, thus without restarting everything from zero. - https://…

> But we can do everything in between too (inspect the running app, change it a bit, change it a whole lot (while staying in sync with local source code), use images to speed-up development etc).

Is anyone aware of SBCL or LispWorks-based tooling that integrates with ServiceNow CHG records to record and perform these kinds of changes to automatically create an audit trail of such changes in a CHG record as the Lisp image is manipulated for emergency changes?

Re: Interactive Common Lisp Development

#37
post #24
post #23

Earlier quoted context omitted.

Python evolves through PEP's https://peps.python.org . Can you kindly correct my deplorable ignorance and point me to the Common LISP enhancement proposals ? Maybe I am missing something elementary.

They are here: https://cdr.common-lisp.dev/

Last proposal in mid 2013 - which is a proposal to improve the proposal repo! Doesn't really inspire confidence in the language.

Re: Interactive Common Lisp Development

#38
post #23

Earlier quoted context omitted.

Python evolves through PEP's https://peps.python.org . Can you kindly correct my deplorable ignorance and point me to the Common LISP enhancement proposals ? Maybe I am missing something elementary.

i think it is more correct to say that machine learning saved python https://lwn.net/Articles/843660/

Really ? We are simply going to ignore the entire Python web-app landscape ? Django, Flask, Pyramid, etc. The deployments of those outnumber CL deployments by so many several orders of magnitude. No, ML didn't "save" Python. It only accelerated its usage further above all competitors.

Re: Interactive Common Lisp Development

#39
post #8

Lisp is amazing. Interesting why Python won the race to become the language of choice for the neural networks wave of AI.

I like that you're framing this as if it was between python and lisp and not python being the language of choice by a huge margin followed by a dozen other languages, then lisp.

Re: Interactive Common Lisp Development

#40
post #26
post #10

Earlier quoted context omitted.

If you look at the top post you can understand the disappointment when I click this link and got that. Yes there are a lot of content. Just the topic is …

For someone who knows Common Lisp but rarely plays with the redefinitions mentioned in the post, it's quite enlightening to learn those things. If you're not into Common Lisp you're definitely not the target audience for a post looking at the weird details of it like this one.

I am into it. And he has some more info. Just not here or there.

For batch mode you can run script. Using format print :-). But in real life when you encounter problem the great thing of lisp is you can curl-c and inspect what is going on. I just doing my study of cl-6502 and found that this interactive nature and the readable of lisp is invaluable.

For interactive mode you can do rely upon emacs (or ccl which I cannot use for look like a decade now due to sudden issue; finally resolve this using xaddr) or vim (google vim lisp lead you there) where you can load an image and then interactive with it.

Why it stop here in my script? Just inspect around.

Now this is somewhere possibly this article in the interactive mode to see how symbols, … etc might be useful. The problem I have (I just read it the third times trying my best to appreciate) is that it does not lead you to anywhere. If you do not know these the article does not help. If you do, it does not help much as it is not going deep enough.

Perhaps an interactive session or information how interaction and use of this concept in a future article might be useful. By this article alone more is expected when one read that.

Just in case I am definitely no better than him on lisp. I just expect to stand on another “giant” shoulder to learn more about this lisp approach. Sorry if I think it shortfalls a lot.

Best regards and let us move on. Good days.

Post reply on HN