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

Doesn't Clojure already support all of those features ?

Eg.

> transducer-first design, laziness either eliminated or opt-in

You can write your code using transducers or opt-in for laziness in Clojure now. So it's a matter of choice of tools, rather than a feature of the language.

> protocols everywhere as much as practically possible (performance)

Again, it's a choice made by the programmer, the language already allows you to have protocols everywhere. It's also how Clojure is implemented under the hood.

-> first-class data structures/types are also CRDT data types, where practical (correctness and performance)

Most of the programs I worked on, did not require CRDT. I'm inclined to choose a library for this.

> first-class maps, vectors, arrays, sets, counters, and more

Isn't this the case already ? If Clojure's native data structures are not enough, there's the ocean of Java options..

Which leads to a very interesting question:

How should the 'real' AGI respond to your request ?


> first-class maps, vectors, arrays, sets, counters, and more

That's my mistake; this line was intended to be a sub-bullet point of the previous line regarding CRDTs.

> the language already allows you to have protocols everywhere

The core data structures, for example, are not based on protocols; they are implemented in pure Java. One reason is that the 1.0 version of the language lacked protocols. All that being said, it remains an open question what the full implications of the protocol-first idea are.

> You can write your code using transducers or opt in for laziness in Clojure now. So it's a matter of choice of tools, rather than a feature of the language.

You 100% can. Unfortunately, many people don't. The first thing people learn is (map inc [1 2 3]), which produces a lazy sequence. Clojure would never change this behavior, as the authors value backward compatibility almost above everything else, and rightly so. A transducer-first approach would be a world where (map inc [1 2 3]) produces the vector [2 3 4] by default, for example.

This was mentioned by Rich Hickey himself in his "A History of Clojure" paper:

https://clojure.org/about/history https://dl.acm.org/doi/pdf/10.1145/3386321

(from paper) > "Clojure is an exercise in tool building and nothing more. I do wish I had thought of some things in a different order, especially transducers. I also wish I had thought of protocols sooner, so that more of Clojure’s abstractions could have been built atop them rather than Java interfaces."


"But that server is faulty!! If it has to handle multiple requests at once, it starts to break down."

Ok. I know this is all hypothetical. But I don't buy this premise.

Why is the server faulty ? In what way does it fail ? How do you know it's because it's processing more than one request at a time ? What if there are multiple clients each doing one request only ? Do you have control over the server code ? If so, fix it there!

---

The point is, this solution is fixing the wrong problem and introducing a new one down the line.

If the bug on the server gets fixed, you've now implemented an artificial performance bottleneck on the client.

Devs who know about it are going to leave the org, others are going to try to 'optimize' the code around it with other hacks, since by allowing these kinds of fixes you're building to the wrong kind of culture. Always fix the root issue.

Or change the premise of the problem.


It's interesting how people always try to find some kind of number to race against.

Here's a simple theoretical situation. A brilliant mathematician with very high IQ crashes in the jungle, but is unhurt.

Not far from the crash site, there's a tribesman who lived in the jungle all his life. He doesn't know how to read or write.

The jungle is filled with predators, spiders and snakes. The sun is setting, the night starts soon.

Who has bigger chances of surviving ? I guess most people would bet on the tribesman. Why does nature select the person who would most likely score lower on the IQ score ?

The point is - intelligence is contextual and circumstantial. It's not one number, like width or length. Not sure why people still try to squeeze some sort of conclusion from it..


I believe you're confusing knowledge and intelligence. This is effectively like saying intelligence is circumstantial because Mike Tyson could punch through the mathematician's head in the boxing ring. You're comparing an ability (intelligence) to a skill (jungle stuff).

To accurately test the jungle guy's intelligence you'd need to devise a test that doesn't require reading nor writing (skills he hasn't yet developed). The point is to test how well his brain works, not what he's learned. With physical testing there are similar situations, where two people can have the same strength and endurance but one of them can achieve more with it due to certain skills like dance or being Mike Tyson.


I think a more valid comparison would be that you have two tribesmen who have lived in the jungle all their lives, but one has a very low IQ, while one has a very high IQ. Both crash land in the jungle. Who has the bigger chance of surviving?


You're confusing 'adaptation', 'knowledge', and 'intelligence'. The scientific comparison would be to put the mathematician and (lower IQ for the example) tribesman in the same situation from birth and see which performs better.

Now it's still not a given in that situation that the high IQ individual would be better adapted to the environment as physical traits may matter more, but it is probable that the high IQ individual has a better model of the predators, spiders, snakes and environment in general.

The speed with which an individual develops accuracy in their model of something (ceteris paribus) does seem to be captured by an IQ-like score, according to the research.

The thing people that actually causes problems is that people mentally equate 'higher intelligence' with 'better' or 'more valuable' which goes against our desire for humans to all be equal(ly valuable). That is what generally leads people to come up with other forms of 'intelligence' (emotional intelligence, street smarts, etc.), even though that just redefines intelligence to the point where the original meaning is lost and a new word needs to be introduced. Much better imho is to keep the original word intact and use terms like 'emotional competence', which also capture the experience part rather than just the genetic part.


> but it is probable that the high IQ individual has a better model of the predators, spiders, snakes and environment in general.

In a hostile environment a lack of prior experience or a lack of guidance with prior experience can mean death in a few days. The mathematician has no time to update priors. A nutritional deficit or a lack of adequate shelter will result in a rapid cognitive decline.

IQ as a predictor of health seems like the most relevant point in the research to this hypothetical situation.


Even so called "emotional intelligence" has been shown to been closely linked to general intelligence. Turns out being smarter makes you better at reading people's emotions from stimuli details. This kind of bullshit has been "invented" because there is a belief that intelligent people are "bad" socially when in fact they just don't care or are bored/annoyed when hanging around "regular" people. This study shows one of the reasons: it is difficult to communicate and reason with other people when their prediction/description of stuff is systematically very wrong.

Plenty of people are working very hard to redefine "intelligence" because reality hurts their egos. There is still nonsensical debate about being able to measure it and whatnot even though the research has constantly shown the truth for quite a while now.

I guess that at the start of formalized measures like the meter there were plenty of people to contest how "stupid" it was because it made them shorter than they liked to pretend.


The applicable experiment for IQ would be to take two ”equal” populations (say,1000 ppl with middle-class background each), sort by IQ, cut the sample set at the middle to lower than median, and higher than median group.

The statistics so far show that the upper median group will do better on average. One might end up in jungle but it does not really matter for our experiment.

For individuals, IQ is sort of statistical proxy for lots of things if your daily life is lived in a first world country.

But it’s insane to hold it as some sort of key indicator of fundamental human potential.

In population statistical situations, like when hiring, however, imho it does make sense to prefer high iq individuals. Not because of what it tells of a single candidate’s potential, but it acts as a sort of maxwells demon for the workforce as total. So you end up with a employee pool closer to above-median group in our experiment which may or may not provide better business outcomes.


This is basically false; you might make it true if you cut somewhere other than the middle, but famously IQ has non-uniform reliability (it's heteroskedastic? is that the way to say it?). Pop science and nerd culture have fixated on it as a global ranking of people by cognitive capability, but it's not that at all; past a threshold, the actual numbers (and test-test reliability) get really noisy.

This should make intuitive sense, because IQ was designed as a diagnostic, one in a battery of diagnostics, for people with cognitive dysfunction. It's a useful tool to deploy when you have a patient who, for instance, can't seem to progress in reading class or whatever. It's broadly misapplied in studies like this (but then, this study has deeper faults than that).


In this case you're talking about some information that the professor doesn't know. We don't know if he would or wouldn't have naturally excelled at that if he had been born in that environment.

I think there is learning ability like what kind of CPU your brain gets. Some people get a super computer that seems to break down at times. Some get an i7, some a Pentium III, and even some a TI-89 chip.

Then there is knowledge, which is what you take the time to learn and is kind of like an external storage drive to continue with the computing analogy. Even if you're not able to learn as fast as someone who is equipped with a better chip, you can outperform them at work if you know a lot more about the subject (you studied hard outside of work) and have taken the time to learn new skills like programming (you added new software programs to continue the analogy).

Then there is wisdom. You have a sort of common sense and ability to see the consequences of certain actions in a way that isn't so common.

Overall Intelligence in my eyes is then the sum total of someone's 1.) learning/processing ability, 2.) knowledge across multiple domains, and 3.) wisdom. Someone with a lot of #1 may be considered by many to be unintelligient if they have little of #2 and #3.

This is just my own stupid view on the subject though. I sometimes think we just haven't invented the vocabulary necessary to discuss this - that or I'm just not educated on the subject.


I could care less. If it isn't intelligence, it's net worth, or body count. People like to gloat what they have, and then complain about those who have what they don't.


I find the opposite to be true. I am a lot more productive, so I work on more things in parallel, which makes me extremely tired by the end of the day, as if my brain worked at 100% capacity..


Yeah I do feel the pressure to run multiple instances of Claude Code now. Haven't really managed to find a good workflow, I find I just get too distracted swapping between tasks and then probably end up working slower than if I had just stayed in one IDE instance


Codex is the perfect workflow for me: instead of swapping, just accept / reject cls / refine tasks


Yeah and after a few days of this, I find I can't do anything and stop all the side projects for a few days until im recharged again and can get back to it.


I bet we will all need a new type of therapy for that at some point in the future.


You learn by doing.. eg typing the code. It's not just knowledge, it's the intuition you develop when you write code yourself. Just like physical exercise. Or playing an instrument. It's not enough to know the theory, practice is key.

AI makes it very easy to avoid typing and hence make learning this skill less attractive.

But I don't necessarily see it as doom and gloom, what I think will happen - juniors will develop advanced intuition about using AI and getting the functionality they need, not the quality of the code, while at the same time the AI models will get increasingly better and write higher quality code.


Soon more people will realize that they might not need software written by others at all.

You chat with an AI and have a working app in minutes.

I've been building about 1 app per week lately and they're not trivial apps. They have UI, backend, database, audio, etc.

One fact checks audio in real time, another does semantic search for song lyrics.

A real-time translator, which translates the text to Spanish as I'm typing. I needed it to better communicate with a Tinder date. It has a nice javafx UI. It didn't occur to me to look for a translator app, since those come with restrictions/registration/ads/etc.

This is possible today. Give it a bit more time and it will be able to clone any existing app.

The question 'what are we going to do then?' visits me more often lately.


> The question 'what are we going to do then?' visits me more often lately.

We will develop a new layer of profitable apps. Social apps will not stop to be a thing but it will be easy to create engaging ones.


This makes a lot of sense and it was an expected side effect of any decentralized currency from the very beginning. Bad actors/fraudsters/tax evasionists etc are going to eventually become the biggest users and end up owning a big chunk of it.

Without a shred or actual evidence, I'd be ready to bet that many terrorist groups are buying their equipment/weapons in crypto. Arms, drugs, laundering, etc, it's just so convenient.. And in time it will become worse.

That being said, I also understand that crypto is unavoidable - eg the concept of the blockchain would have been discovered sooner or later and now it can't be stopped.


Crypto (specifically USDT) is already in use by some commodities traders for international settlement (I used to work in this space). So I wouldn’t be surprised at all if terrorists do the same.


Are we reading the same articles ?

I see articles (like the one above) where people are sharing their excellent experience using the language as has been my experience over the years of using it.

A justification would be 'we hate this ugly thing, but we use it because it's cool', but that's not what I've been reading..


If you like the language, don't let that stop you. Install leiningen and run: `lein new app my-stuff`. Then type `lein repl` and you should have a repl running.

Alternatively, open the project in IntelliJ with Cursive installed or VSCode with Clava or other supported editors and start evaluating code at the repl.

Go through a few tutorials, then go through one of the free books available online. Don't give up when you're stuck.

The language has a steep learning curve because it requires thinking about the program in a different way than many mainstream languages. But it compensates by giving you many 'aha!' moments which make the day :).


Well, also, sadly, the first thing I would want to be right now happens to be... a GUI, which seems to be the archnmesis of Java in general, and clojure in particular ;)


If your target is the web browser, then Clojurescript is your friend. There's Clojure Dart for mobile, cljsrn for React Native, Clojure CLR for .Net


Ain't nothing wrong with Swing or JavaFX :).


Ehhhh they work, but at what cost? If you know them already go ahead, but the other popular desktop ui's are probably easier and more maintainable. I really do wish desktop and mobile in Java was more popular. I'd really like to have one language and ecosystem.


Start with the 'Wedding' epic in Jira. Add a few spikes to figure out the details and bring those into the current sprint.


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

Search: