News for hackers. Stuff that matters.
Re:Let over Lambda – Common Lisp Book (2008) by maze-le on Wednesday March 06, 2019 @04:24AM (#19317498)
>> it describes the most advanced features of the most advanced language: COMMON LISP

... really? the most advanced language (?), are we back in the 50ies again?

Re:Let over Lambda – Common Lisp Book (2008) by Grue3 on Wednesday March 06, 2019 @04:29AM (#19317513)
Common Lisp was finalized in the 90s. And it's not its fault that the other languages haven't caught up yet.
Re:Let over Lambda – Common Lisp Book (2008) by maze-le on Wednesday March 06, 2019 @04:47AM (#19317622)
Still, its a trip to hell to maintain any lisp codebase -- especially if it contains macros. I think it is actively hostile to collaborative programming, and that is a structural problem where there is no remedy but obscure programming patterns (which are amplifying these problems in some instances). With that in mind -- boasting about 'the most advanced language' is a bit of a stretch -- to say the least...
Re:Let over Lambda – Common Lisp Book (2008) by cracauer on Wednesday March 06, 2019 @10:10AM (#19319429)
Well, keep in mind that "macros" in Lisp are really compile-time computing.

In Lisp you have the same language at your disposal at runtime and at compile time. In C/C++ you have the preprocessor, which is a really lousy language. And in C++ templates. Remember the "template metaprogramming" hype about 10 years ago? How far did they go? Compute some prime numbers? I mean C++ templates are a compile-time language, but they are a language that has only one type - types and no real iterations over collection types. Wait, they have no collection types. The one and only type is types.

So, "macros" in Lisp are really a new capability, and they can make code very dense. But think about the alternative - rolling out all this code with generating it at compile time from a single point of origin. That is the real maintenance nightmare. Every time you make an assumption during programming you want to contain that assumption in a single place. So that when the assumption changes later (otherwise known as "always" when other people are involved in telling you what the program is supposed to do in the end) you change a single place, and the rest of the dependent code is generated at compile time - using the full programming language you chose.

I started a web series on compile-time computing. Didn't get as far as I wished for now, but here is some: https://medium.com/@MartinCracauer/a-gentle-introduction-to-...

I actually plan to use some of the chemical code I write (for the above mentioned Cando/Clasp chemical package) to make more parts of that series.

Re:Let over Lambda – Common Lisp Book (2008) by pjmlp on Wednesday March 06, 2019 @10:28AM (#19319560)
> I mean C++ templates are a compile-time language, but they are a language that has only one type - types and no real iterations over collection types. Wait, they have no collection types. The one and only type is types.

There is Boost.Hana and the older Boost MPL and brigand.

C++20 will have more constexpr improvements.

Although I do conceed they require a C++ Wizard hat, and aren't not even close of Lisp's macros friendliness.

Re:Let over Lambda – Common Lisp Book (2008) by 4thaccount on Wednesday March 06, 2019 @05:50AM (#19317936)
They're looking at it from the point of one to a few coders and you're looking at it from an industrial view with larger teams. I think it probably shines more in the former. If macros aren't overused, it's probably not all that different from other dynamic languages like Python that work fine with larger teams.
Re:Let over Lambda – Common Lisp Book (2008) by sametmax on Wednesday March 06, 2019 @08:02AM (#19318549)
It is very different than Python.

In Lisp, they say "here is a tool that can do anything. Have fun". In Python they say: "here are many tools that are specific and limited to that purpose. Also you gona take bad decisions, so we limited it some more".

The first approach is appealing to very good programmers. The second one, to anybody who had to work with the vast majority of normal programmers.

I prefer the second one. People abuse macros, make way to long lambdas, don't document their magic and indent poorly if they are not forced to.

Since tooling is something people always learn too late, I'm going with the language with sane defaults.

Re:Let over Lambda – Common Lisp Book (2008) by lispm on Wednesday March 06, 2019 @10:19AM (#19319496)
Yet Common Lisp nicely scales to very large programs, some which have been maintained for decades. MLOC range.
Re:Let over Lambda – Common Lisp Book (2008) by sametmax on Wednesday March 06, 2019 @10:50AM (#19319769)
And I bet you $10k that mostly 10x programmers work on the code base. In fact, I've never seen an average Joe taking interest in Lisp, let alone learning it to the point of making a living with it.

And there is a limited pool of that.

We, humans, also have work to do.

Re:Let over Lambda – Common Lisp Book (2008) by lispm on Wednesday March 06, 2019 @11:26AM (#19320091)
> I've never seen an average Joe taking interest in Lisp, let alone learning it to the point of making a living with it.

Average Joe and Susi have been for 3+ decades nicely programming lots of extensions to AutoCAD and its various clones in Lisp.

Generally I agree that Lisp programming is a bit more challenging due to the slight mathematical nature (lambda, ...), code as data and meta-programming.

I don't think that one needs to be a 10x programmer to use Lisp - many of those 10x programmers are not programming in Lisp, since the 10x programmer gets hired because he/she might be able to cope with enterprise Java architectures.

Since Lisp is a programmer amplifier, you might think that these Lisp users are 10x programmers, when in fact they are not.

But there are domains where people are using Lisp, who are not focused on programming. For example there are various Lisp-based music apps + literature which are used by composers. Example: https://opusmodus.com

Re:Let over Lambda – Common Lisp Book (2008) by vram22 on Wednesday March 06, 2019 @03:28PM (#19322434)
>Average Joe and Susi have been for 3+ decades nicely programming lots of extensions to AutoCAD and its various clones in Lisp.

Ha ha, I read somewhere that years ago, in some org or the other, Emacs Lisp was programmed by secretaries to help them achieve their routine tasks. Apparently they were not told that it was "too difficult for them" :)

Re:Let over Lambda – Common Lisp Book (2008) by ACE_Recliner on Monday March 11, 2019 @06:28PM (#19363500)
Bit late, but it was Multics Emacs and the language they were writing in was Maclisp.
Re:Let over Lambda – Common Lisp Book (2008) by emmanueloga_ on Wednesday March 06, 2019 @06:20PM (#19324010)
Wow this opus modus tool looks super polished. I'd not mind paying for it, if it ran on windows!

I've heard about other tools like this before ([1] for composition, [2] for synthesis, [3] for mind-blowing :-p) but somehow never heard about opus modus before.

* Where did you learn about it?

* Are there other similar prog-lang music production tools with similar level of polish?

* Any cross-platform / Windows supported tools? -- unfortunately opus modus only runs on macs :-(

1: https://github.com/ctford/leipzig

2: https://github.com/overtone/overtone

3: https://extemporelang.github.io/

Re:Let over Lambda – Common Lisp Book (2008) by lispm on Thursday March 07, 2019 @02:28AM (#19326199)
There are a bunch of other tools written in Lisp or Scheme: OpenMusic, PWGL, Symbolic Composer (no longer available it seems), ScoreCloud, Common Music, Common Lisp Music, ...

Opusmodus was supposed to have a Windows version in 'the future', but I don't know what plans are currently.

Re:Let over Lambda – Common Lisp Book (2008) by 4thaccount on Thursday March 07, 2019 @09:14AM (#19328108)
Opus modus is listed as a lisp success story on a common lisp website somewhere.
Re:Let over Lambda – Common Lisp Book (2008) by kyancey on Wednesday March 06, 2019 @08:27AM (#19318693)
The first approach is also appealing to very bad programmers who think they're good programmers.
Re:Let over Lambda – Common Lisp Book (2008) by PuercoPop on Wednesday March 06, 2019 @05:57AM (#19317965)
Do you say that out of experience? That is certainly not my _experience_. Lisp codebases tend to be easily "appropiable"
Re:Let over Lambda – Common Lisp Book (2008) by varjag on Wednesday March 06, 2019 @06:49AM (#19318186)
It sounds more like someone's musing of why Lisp should be bad idea rather than anything practical. Doubly so when they don't seem to know what Common Lisp is.
Re:Let over Lambda – Common Lisp Book (2008) by PuercoPop on Wednesday March 06, 2019 @12:35PM (#19320806)
I agree it _sounds_ like an armchair critic, but I prefer to give the benefit of the doubt. Maybe they had a bad experience involving Lisp?

The actively hostile to collaborative programming seems particularly misguided. Even an extreme case like the code from hu.dwim, which is written in practically a new language they built on top of CL and has barely any documentation is still fairly easy to understand.

Re:Let over Lambda – Common Lisp Book (2008) by fiddlerwoaroof on Wednesday March 06, 2019 @05:58PM (#19323859)
Yeah, and the other thing is that the macrostep expander in slime makes it fairly straightforward to understand how an unfamiliar macro works: you just expand it a couple steps and see how its mapping the surface syntax to utilities you know. In fact, I often find function calls harder to grok now than custom macros :)
Re:Let over Lambda – Common Lisp Book (2008) by fiddlerwoaroof on Wednesday March 06, 2019 @12:24PM (#19320706)
Yeah, Common Lisp is one of the few languages where I feel comfortable diving into a foreign code base and submitting patches.
Re:Let over Lambda – Common Lisp Book (2008) by lispm on Wednesday March 06, 2019 @06:27AM (#19318080)
http://www.greghendershott.com/fear-of-macros/fear-of-macros...

Which would easily make decades old and still maintained Lisp implementations unmaintainable, since they contain zillions of macros themselves.

Re:Let over Lambda – Common Lisp Book (2008) by arethuza on Wednesday March 06, 2019 @06:32AM (#19318101)
Macros are fine - 'creative' use of reader macros can result in something similar to C pre-processor abuse - opening a file and going "what language is this?".