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

> foreign teachers who are qualified AND are happy to teach up there

But are they? Or are they just willing and here for the money and foot in the immigration door? Sincere question, though I have negative views of the whole H1B thing in general (not a US national, though).


If you care, you certainly can find a lot of information about it nowadays. Of course, whether you want to believe it is another question.

https://youtu.be/FSmtbSYE8pg


You thought this video proved what?

At a general level, it is a simple fact that there are more qualified/happy candidates globally than there are just in the United States. For the second part, no, I assume that money/opportunity are WHY they’re happy to teach up there. If that’s the motivation that keeps qualified teachers from turning to alcoholism or suicide, that’s a good thing for the kids.

Maybe not a legally smart move, but morally... when was it signed? Perhaps way before some EU countries decided to stop enforcing their borders beyond the performative level? And since these agreements basically force countries (especially rich countries with socialist systems) to somewhat share the burden of that choice they didn't make, I don't blame them in the least.

These agreements do not force countries to share that burden.

Freedom of movement for EU citizens. Migrants and asylum seekers don’t have the right to live and work in Switzerland because of our EU agreements.

A migrant or asylum seeker living in Germany has 0 right to move to CH.

We do have some asylum obligations from the Dublin accords and from global human rights laws, but those we can regulate ourselves separately anyway. EU doesn’t care. Countries within EU do it already.


"Duuude free love lmao"; no need to put psychobabble words on it, you know.

Eh? Aren't shared libraries actually shared in memory?

Yeah, that's kind of the point.

shared libraries does not imply shared in ram only.

An embarrassingly large number of epubs have absolute no care put into formatting, in my experience. That and how do I get my "old book paper smell" fix and those beautifully illustrated hardback covers neatly lined on my shelves?

Otherwise, I agree.


Shoutout to https://standardebooks.org/, amazingly formatted classics

Exactly. Look at lobste.rs if you want to see what "anti-AI" truly means.

So now you'll get a lot of "fix: small", heh.

Most of the folks I caught pushing "changes" as a commit message are now letting AI write their commit messages for them. It has been a massive improvement.

> The seq abstraction, for example, means I usually don’t have to worry about what kind of sequence I’m dealing with

Eh? That's completely lifted from CL (https://www.lispworks.com/documentation/HyperSpec/Body/t_seq...). Same for AREF/NTH, there's ELT.

Other than that, I agree, CL is baroque yet needs some hole filling here and there.

> Lisp: everything is a list

But that's wrong. Not even a little. Unless you mean LISP 1.5...

> Too much syntax

Funnily, I'm mostly okay with the new vector/set/hash-table literals, my big problem and that of some other people is the use of vectors in macros/special operators instead of lists. `(let [a b] ...)` instead of `(let (a b) ...)` is _not_ okay.


> Eh? That's completely lifted from CL.

Clojure’s abstraction is a bit more far-reaching than Common Lisp’s SEQUENCE, implemented as interfaces rather than types.

A Clojure sequence is anything “seqable” (either implements the Seqable interface, or special case handling for host platform collections), not just lists and vectors. Hash maps, sets, Java Iterables, etc. are all seqable and work with the same standard collection functions.

e.g. you can `(map (fn [[k v]] …) {:a 1 :b 2})`, rather than needing a separate MAPHASH function.


> `(let [a b] ...)` instead of `(let (a b) ...)` is _not_ okay

it is however quite consistent, clojure uses vector form for most macros that require a "control" form before a "data" form: argument list in defn, names list in let, iteration descriptors in for, etc. you get used to consistency quite easily.


I haven’t used clojure in quite a while but what’s the issue with (let [a b] …)?

Is (let (a b) …) even valid clojure?


In CL and Scheme, it's (let ((var1 val) (var2 val)) body...). So parentheses are used for grouping and function/macro application. In Clojure, parens are just used for application, so you have e.g. (let [var1 val var2 val] body...), or (defn foo [x] ..) or (cond testa 1 testb 2 ...).

It takes some getting used to, and I do wish Clojure would do something more like (let [[var1 val] [var2 val]] ... .. though of course then you'd have to figure something else out for destructuring.


I believe it would be (let ‘(a b)), but I’m not sure if that’s valid or not. That’s how Racket does its version of defn

Huh! So like some Schemes and Racket? Yet I must read them in code that isn't mine, which is a large part of the problem.

Not quitek in Scheme, parens and brackets are completely interchangeable.

Just saying "macros" is a bit reductive: in CL, you have access to the full language at (read) parse time, compile time and runtime. Said macros also mean that logical OR/AND short-circuiting isn't a compiler black box, you can implement such behaviour easily yourself.

------

The syntax is actually a big pro for a lot of people. I love its streamlined look that basically reads like Python once you let your IDE indent properly and learn to see "through" the parentheses (CL, Scheme).

The original language where everything is an expression and it shows. Where Python still needs an ugly ternary and made match a statement, Lisp has had the perfect IF and COND since the dawn of time.

Symbols are still a cool and useful concept that almost no other language I know of got.

The numerical tower - despite some holes - is amazing. Built-in rationals and "correct math" as sane default (i.e. 1/2 not returning 0) never get old.

------

And if you let me rave about CL specifically (e.g. DECLARATIONs as "#pragma done well", restarts, CLOS/MOP, runtime READ/COMPILE, etc...), there are a lot of cool features barely copied anywhere that'd improve other languages, but these aren't part of "what make Lisp Lisp".


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

Search: