News for hackers. Stuff that matters.
Re:Python's “Disappointing” Superpowers by taeric on Wednesday February 01, 2023 @04:52PM (#34618408)
I mean, you aren't wrong. But most of what they learned was "step debugging is hard in the presence of macros." And step debugging has largely been tossed out of the window in many modern setups. Just look at Java's "stream" apis. I swear they did what they could to replicate the LOOP macro.
Re:Python's “Disappointing” Superpowers by vkou on Wednesday February 01, 2023 @05:01PM (#34618532)
I am very rarely concerned about debugging my usage of Java streams, and step debugging works fine in the context surrounding them.
Re:Python's “Disappointing” Superpowers by taeric on Wednesday February 01, 2023 @05:32PM (#34618960)
That is also the case for macros in lisp, at large.

Similarly, any heavy use of lambdas in java will make step debugging confusing. As will any annotations you may use. Which is largely why many people grow to hate annotations.

Which is all a fancy way of saying we learn the same lessons again and again. Used smartly, all of these are great tools. Defining what is "smartly" is a place of dragons.

Re:Python's “Disappointing” Superpowers by ajuc on Thursday February 02, 2023 @02:12AM (#34623222)
My main problem with metaprogramming in Java is that it breaks automatic IDE refactors and static code analysis. At least the metaprogramming we did with java back in the day (using reflections). If you use common java libraries made with metaprogramming - IDEs usually have plugins to work with that.