µTest
PyCall.jl
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
µTest
-
From First Principles: Why Scala?
I am a Scala programmer & think it's a great language. Here are some arguments for why not Scala:
* Li's libs (os-lib, upickle, utest) have clean public interfaces, but most Scala ecosystem libs are hard to use
* The Mill build tool looks a lot better than SBT, but seems like everyone is still using SBT
* Scala minor version are binary incompatible, so maintaining Scala projects is a big pain. Upgrading Spark from Scala 2.11 to Scala 2.12 was a massive undertaking for example.
* Scala has tons of language features and lets people do crazy things in the code. Hard to win technical arguments with Scala geniuses that like using complicated language features.
* Scalatest is stil used by most projects and is annoying to use, as described here: https://github.com/lihaoyi/utest#why-utest
I'm optimistic about Scala. There are some folks that love the language and are continuously improving the ecosystem. Scala 3 will have to sell a better story about ditching legacy tooling and giving users a better default stack if it wants to compete with modern Go/Rust/Python.
Let's clarify some points for folks not so familiar with Scala.
> * Scala minor version are binary incompatible, so maintaining Scala projects is a big pain. Upgrading Spark from Scala 2.11 to Scala 2.12 was a massive undertaking for example.
Scala just chose a strange naming scheme. Other languages would have just increased their major version instead. The scala minor version is increased every few years and not every month or so.
> * Scala has tons of language features and lets people do crazy things in the code.
Actually, that's not true. Or rather: compared to what language?
Scala has surprisingly few language features, but the ones it has are very flexible and powerful. Take Kotlin for example. It has method extensions as a dedicated feature. Scala just has implicits which can be used for method extension.
> * Scalatest is stil used by most projects and is annoying to use, as described here: https://github.com/lihaoyi/utest#why-utest. The overuse of DSLs in Scala is really annoying.
I agree with the overuse of DSLs. Luckily that got much better, but older libraries like scalatest still suffer from that.
> * Li's libs (os-lib, upickle, utest) have clean public interfaces, but most Scala ecosystem libs are hard to use, see the JSON alternatives for examples
I think that just comes from using the library in a non-idiomatic way. In most applications, you will need to use the whole json anyways, and then you use (or can use) circe like that:
{
PyCall.jl
-
I just started into Julia for ML
For point 3 you can use https://github.com/cjdoris/PythonCall.jl or https://github.com/JuliaPy/PyCall.jl (and their respective Python sister packages).
-
Am I dumb in thinking I can use Rust as a Fast Python and leave it at that?
Julia and Python interop should not be a problem at all. Actually Julia has one of the best interops I’ve ever seen, so much that swift copied it. https://github.com/JuliaPy/PyCall.jl
- Which tools do you use for python + Data Science?
-
I don't want to abandon Rust for Julia
One small note, julia also has great python interop via PyCall.jl
- Faster Python calculations with Numba: 2 lines of code, 13× speed-up
-
Interoperability in Julia
It is possible to call Python from Julia using PyCall. Then to install PyCall, run the command in the Julia REPL.
-
Why is Python so used in the machine learning?
That said, you can run python modules in Julia. So you can just export your code as a module and then use it in Julia via the PyCall package. short description here github here <— you’d just add the pacakge via the really nice package manager built into julia, but for link for more detailed documentation
- Use rust code in Python with pyo3
-
Writing entire programs in Cython
You can integrate Python and Julia code with https://github.com/JuliaPy/PyCall.jl and https://github.com/JuliaPy/pyjulia .
-
Why Co–Star Uses Haskell
> I'd love to use Julia and Rust instead, but the ecosystems and users aren't there yet.
What are some alternatives?
py2many - Transpiler of Python to many other languages
ScalaMock - Native Scala mocking framework
Diffy
scalaprops - property based testing library for Scala
Scala Test-State - Scala Test-State.
Gatling - Modern Load Testing as Code
Revise.jl - Automatically update function definitions in a running Julia session
julia - The Julia Programming Language
Scalive - Connect a Scala REPL to running JVM processes without any prior setup
ScalaCheck - Property-based testing for Scala
Genie.jl - 🧞The highly productive Julia web framework
Minitest - The super light testing library for Scala and Scala.js