News for hackers. Stuff that matters.
Re:Why does `True == False is False` evaluate to False in Py... by pmontra on Saturday May 02, 2020 @07:22AM (#23051078)
Python (and Ruby) are dynamically typed and strong typed. They are two different things. Strong typed doesn't mean that you can't do this

  a = "a"
  a = 1
That's dynamic typing. Strong typing means only that

  a = "a" + 1
fails.

More about that at https://en.hexlet.io/courses/intro_to_programming/lessons/ty...

JavaScript and PHP and Perl automatically cast to a reasonable value with all the advantages and pitfalls.

Re:Why does `True == False is False` evaluate to False in Py... by dorgo on Saturday May 02, 2020 @08:52AM (#23051459)
>Strong typing means only that

> a = "a" + 1

>fails.

String a = "a" + 1; works in Java. So Java is not strongly typed?

Re:Why does `True == False is False` evaluate to False in Py... by angus_gh on Saturday May 02, 2020 @10:56AM (#23052120)
In some ways yes, Java is not so strongly typed; a statically-typed language can be weakly typed.

See C where ints, pointers, floats, and bools can almost all coerce into each other, such that the compiler will allow you to use arithmetic/logic operators with most different types, whether you meant to or not.

Re:Why does `True == False is False` evaluate to False in Py... by sah2ed on Saturday May 02, 2020 @10:49AM (#23052086)
That’s because the language designers overloaded the arithmetic operator (+) to perform string concatenation when the operands can be cast as Strings.

Without overloading the + operator, string concatenation which is a common operation, would have been unnecessarily verbose. Your example without the + operator would look like below:

   String a = new String(“a”).concat(1); // String object concat
   String a = “a”.concat(1);             // String literal concat
Re:Why does `True == False is False` evaluate to False in Py... by jakear on Saturday May 02, 2020 @11:44AM (#23052378)
The same could be said of JS but for some reason it gets shit but Java gets off Scott-free.
Re:Why does `True == False is False` evaluate to False in Py... by zapzupnz on Thursday May 07, 2020 @01:52AM (#23100095)
Java doesn't get off scot-free for anything; nobody likes it, they just use it because they must.

Java just happens to be less prominent in tech media right now since JS on the server is the new(-ish) hotness. There's still plenty of dislike for it, but really, all that needed saying about it happened long before now.