Hacker Newsnew | past | comments | ask | show | jobs | submit | massysett's commentslogin

Another possibility is that the designers carefully examined predecessors to learn from their mistakes, and went through a long refinement period before stabilizing the design. This is Common Lisp.

Nothing warty about functions named "car, cdr, caar, cadr, cdar, cddr, caaar, caadr, cadar, caddr, cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr, cadaar, cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar, cddddr"[1]

a domain specific language for walking into nested lists based on an implementation detail of how linked list pointers and values were packed into a single 36-bit memory location on an IBM 704 computer from the 1950s.

[1] https://franz.com/support/documentation/ansicl/dictentr/carc...

[2] https://en.wikipedia.org/wiki/CAR_and_CDR


Common Lisp is basically a constellation of warts that people put up with in exchange for its macro system and REPL-driven development.

Common Lisp does have plenty of warts.

You can not have the old warts, but your correction may itself be a wart. Sometimes you learn the hard way why the last version was that wey

Dude, Common Lisp has so many warts that it makes fairy tale witches envious.

More powerful PC from whom? Some no-name outfit? Good luck sorting through the flea market dreck.

Raspberry Pi has built the best brand in this space.


Some of the "no-name outfits", like Geekom and Beelink, have built good reputations.

It's possible to score a name-brand, refurbished "thin client" PC for around Raspberry Pi 3 dollars. I scored an HP one for $25, and it fits nicely in the "small fanless PC" niche, runs Linux, and is faster than the corresponding Pi would be.


You get an Intel CPU glued to some generic motherboard. If you don’t need GPIO a random N100 PC can do everything a Raspberry can (and you can get an adapter for that).

is this... just racism, actually? there are a million cool electronics on Amazon from random Shenzhen sellers and while I prefer that my electronics come from countries with better human rights records it's not flea market dreck, it's very much the best stuff you can buy, that you can't get anywhere else.

the attitude that stuff from brands you don't recognize from Shenzhen are "flea market dreck" is exactly why Chinese brands like DVI are winning


I don’t see what racism has to do with it. Most of my electronic components originate from China one way or another, but there’s a real difference in quality between established brands and the random stuff popping up on amazon in the last few years. To review a few experiences I’ve had:

- Wires I bought for breadboard prototyping turned out to not be made of copper after I noticed them sticking to a magnet on my workbench.

- A power supply module I purchased appeared to be using counterfeit chips. The switching frequency didn’t match the TI data sheet for the markings on the chip.

- I wasted several days trying to get an sdcard module to work. I gave up and ordered from adafruit instead and those worked on the first try.

Not to mention the well documented problems with counterfeit sdcards, etc.

With mini PCs, there are a million different ways bargain brands can cut corners that won’t show up immediately.


>is this... just racism, actually? Perhaps but mostly a result of decades of bad consumer experiences. From Malware preinstalled to terrible software support and downright dangerous electronics, chinese hardware from alibaba amazon and ebay is rightfully regarded as questionable, potentially even dangerous until proven otherwise. And without a track record in software updates, any company selling any internet or god forbid cloud connected device is plain irresposible to use until proven otherwise.

> just racism, actually? there are a million cool electronics on Amazon from random Shenzhen sellers

as far as I know you can't be a racist against SoC


> is this... just racism, actually?

Amazon doesn't show you the race of the product owner (and typing this I realise how fucking stupid that sounds)

However Amazon also doesn't care about what shit it sells you, so its perfectly possible to be scammed by some shady org out for a quick buck.

Even if you spend the time to research the right brand, Amazon doesn't actually guarantee that it'll sell you that brand, through a lot of weird bate and switch and "other sellers also offer", and just plain deceit, its not that hard to end up with expensive shite.

I have a bunch of n100s for both home and work. currently we have a 1/4 failure rate (combo and beelink and trigkey green, and others)

I still have all my Pis working, apart from the ones that got wet. (however, thats SD card dependent. Thats at least cheaper.)

> the attitude that stuff from brands you don't recognize from Shenzhen

Its not Shenzhen thats the problem, its Amazon/marketplace trying to make a fast one palming off shite as gold.


> The best part is, though, nothing ever changes.

Wasn’t true when they switched to systemd, or when KDE 4 came out, or when the new Gnome came out, or when the kernel renamed Ethernet interfaces to enps-whatever.


Or when they switched from applications requesting exclusive access to ALSA audio devices to using sound servers for mixing, or when Xorg autoconfiguration was introduced (obviating manual Xorg.conf creation), or when the modesetting DDX replaced vendor specific DDX packages, or when Wayland was introduced with full backward compatibility with Xorg via XWayland. I suppose that last one is more of a lack of change.


> when Wayland was introduced with full backward compatibility with Xorg

you shouldn't believe everything you read on the internet.


Those things are changes that are announced years before they happens and you would some distributions where they’re still using the old stuff. It’s not that unavoidable changes we you only have three years of holding on to the old stuff before being abandoned.


You can still use the old Sysv init on modern distros if you want. KDE3 is sorta still around (TrinityDE), ditto Gnome 2 (MATE).


Some of us use Slackware, with fvwm.


Cake flour, any full-line supermarket will have it.


Can the headline be changed on this so it’s not ridiculous clickbait? “American Airlines trains its pilots by having them fly airplanes” is more informative.


Since the title includes the word "quirks," the observation I'll make here is entirely appropriate: the post oversimplifies this.

It says: "So as we can see, at both run-time and compile-time, Common Lisp does typechecking to prevent silly errors."

This is not entirely accurate, as the Common Lisp standard does not require such typechecking.

The Common Lisp standard specifies the types of the arguments that a function expects. It generally does not specify what happens if the function receives arguments of unexpected types. It explicitly does not specify this: the standard says that if you give a function unexpected types, the consequences are undefined:

https://www.lispworks.com/documentation/HyperSpec/Body/01_dd...

where "undefined" means that any behavior, from an error message to a harmless failure to a catastrophic failure, can occur:

https://www.lispworks.com/documentation/HyperSpec/Body/01_db...

Let's take + (the addition function) as an example. It "might signal" a type error if some argument is not a number:

https://www.lispworks.com/documentation/HyperSpec/Body/f_pl....

where "might signal" means that the result is unpredictable but if the function does signal an error, it will be of the given type:

https://www.lispworks.com/documentation/HyperSpec/Body/01_db...

I can understand why the standard is written this way. Checking the types of arguments takes time. Sometimes you might not want to check the types for performance reasons.

It seems the author is using SBCL. As a practical matter, SBCL on the default settings will check the types of arguments. SBCL's manual (along with the manual of its predecessor, CMUCL) discusses how to manipulate these settings - the author discusses this, with the DECLARE form. But Common Lisp does not require this checking, so if you need your types checked, consult your implementation's manual. Indeed, SBCL allows you to change the settings for SPEED and SAFETY to specify how much type-checking you want.

All these caveats are also true for structures. The author says structure types are checked - again, as a practical matter, SBCL will check these unless you tell it not to. But that's not what the standard requires. Indeed, the standard explicitly states that "It is implementation-dependent whether the type is checked when initializing a slot or when assigning to it."

https://www.lispworks.com/documentation/HyperSpec/Body/m_def...

[edit] Relevant part of SBCL manual is here:

https://www.sbcl.org/manual/#Declarations-as-Assertions


Thank you for this. There is occasionally disagreement about what "Common Lisp" even means, and the spec is often cited, but as far as all of my posts, library work, and application work are concerned, Common Lisp means "the current reality of the major compilers as implemented in 2025". This is a descriptive / bottom-up definition, and as an active author of software it is the one I'm more concerned with. For instance, `:local-nicknames` have been essentially universally implemented among the compilers, despite not being part of the spec. To me, this makes that feature "part of Common Lisp", especially since basically all CL software written today assumes its availability.

You're right to point out too that the post is somewhat SBCL-centric - this too reflects a descriptive reality that most new CL software is written with SBCL in mind first. Despite that I'd always encourage library authors to write as compatible code as possible, since it's really not that hard, and other compilers absolutely have value (I use several).


Every programming language has a practical definition: it is the intersection of the sets of features that are accepted by the various relevant production compilers and interpreted identically enough to be portable to all of them.

Formal language definitions, standards, and books are great, but you can't compile with them. Abstract language specs that don't have reference implementations or conformance test suites are not particularly useful to either implementors or users.


The chat bot operator slurps all websites and gives answers to all questions free of charge.

No other website can compete with that.

The whole story with streaming media is not just that pay streaming became more convenient. It’s also that content creators used legal and business mechanisms to make piracy inconvenient. They shut down Napster. They send DMCA notices. They got the DMCA enacted. They got YouTube working for them by serving ads with their content and thus monetizing it.

Chat bots are just like Napster. They’re free-riding off the content others worked to create. Just like with Napster, making websites more convenient will be only part of the answer.


> content creators used legal and business mechanisms to make piracy inconvenient

Copyright holders, not content creators. Though typically content creators are also copyright holders, copyright holders are not always content creators, esp in this context. To a big degree these practices are not on the behalf of content creators nor are they helping them.

The solution may be elsewhere: starting from creating content that people may actually care about.


> The chat bot operator slurps all websites and gives answers to all questions free of charge.

> No other website can compete with that.

Copyright infringers uploaded music, television, and films free of charge, yet people still pay for all of that.

> The whole story with streaming media is not just that pay streaming became more convenient. It’s also that content creators used legal and business mechanisms to make piracy inconvenient.

Do you seriously think that copyright infringement ended when Napster went down? Have you never heard of the Pirate Bay or Bittorrent? They didn’t succeed at all in shutting down copyright infringement. People pay for things because it’s convenient, not because copyright infringement is no longer an option.


Even though you can now make the keyboard a small floating one and use swipe typing?


I think that's the idea with deregulated electricity. Where I live (Maryland USA) I can pick who generates my electricity. I have no choice in who delivers it and that is still regulated.

I found that in practice the non-default options do not wind up being any cheaper so after trying it for a few years I switched back to the default option, where the price is not regulated but is set through a prescribed auction process.

I suppose the deregulation might still put downward pressure on prices in theory.


I don’t know why people delete rules on fairness (laws) and then expect things to become more fair.

Electricity transmission at the minimum should be owned wholly by the public to remove profit incentive.

There’s your downward pressure—no incentive to jack up costs.

Until then, providing electricity to people will be a profit generating activity.


> Electricity transmission at the minimum should be owned wholly by the public to remove profit incentive.

My provider is a coop and my rates are lower than the publicly held providers in this region. So you seem to be correct.


Using a rear door (in addition to the front) for entry and exit is unusual but not unheard of.

https://thepointsguy.com/news/why-the-american-airlines-shut...


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: