I have some experience with the scala. I want to introduce it into new project with 10 members. But despite all expressiveness of the scala, I am very unsure of how simple the code can be maintained and transferred to new team members. At the moment I have studied only one big project on a scala http://code.google.com/p/factorie/ and some scala DSL(apache camel). So my question is how much scala maintainable/supportable comparing to java, python and groovy for team of mid level developers?
In general: the maintainability of the codebase depends on (to name a few)
You can create a mess using any language available. Arguably you can create a clean and maintainable project of any size using any programming language that is intended for production use.
That said - scala shouldn't be any less maintainable than java, python or groovy. The result of the first project may be less maintainable though.
Short answer: Yes
Long answer: As compared to Java, very much so.
Traits, case classes, pattern matching, higher-kinded types, closures, etc. all conspire to remove boilerplate and make it easier for you to enforce the DRY principle. Your codebase will be around 1/3 the size, and it's much easier to isolate key abstractions instead of duplicating logic.
Nicer test frameworks also make it far easier to keep an effective set of tests in place.
Of course... All of this comes after Aleksi's points on the will/skill of the individual developers involved. If the team aren't actively aiming for maintainability, the the most maintainable language in the world isn't going to help you!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With