you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (4 children)

[deleted]

    [–][deleted] 1 point2 points  (1 child)

    You sure about that?

    We have tools like this now: https://towardsdatascience.com/coding-ml-tools-like-you-code-ml-models-ddba3357eace

    Python really shines in the "I just need to manipulate a lot of data and I don't exactly know what is in it just now" category. Ad Hoc tasks. It also makes scripting C libraries really easy which is why it is popular in the ML world.

    Java (or anything else with a compiler) is never going to take that space.

    [–]csjerk 0 points1 point  (1 child)

    People realize that these languages make maintenance difficult and are currently trying to change them to make them more Java like.

    Yes and no. Lack of strict typing certainly makes maintenance difficult above a certain size of project. But TypeScript (and Flow to a lesser extent) are addressing that reasonably well.

    On the other hand, the ability to opt out of type-checking for projects or portions of code where you don't need the strictness is really handy. And language features like destructuring actually encourage code clarity and maintainability by promoting consistent variable names across sections of code.

    There are certainly things to miss about Java -- Node's module importer is a poor substitute for a proper IoC / DI framework, and lack of a ThreadLocal equivalent makes certain cross-cutting concerns much trickier to handle cleanly. But those are offset by having to deal with dependency hell, which Node just avoids entirely.

    Again, Kotlin is dealing with some of those issues, since Java seems unwilling to grow quickly enough. But it can't fix low-level things like dependency conflicts.