Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is large scala codebase maintainable? [closed]

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?

like image 304
yura Avatar asked Aug 22 '11 07:08

yura


2 Answers

In general: the maintainability of the codebase depends on (to name a few)

  1. The will of the developers to design for maintainability
  2. The skill of the developers to implement their intent
  3. The level and accuracy of the documentation (accuracy in respect to how well the documentation portraits the actual system not in respect to how detailed the documentation is)
  4. The skill of the developers taking care of maintenance

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.

like image 92
Aleksi Yrttiaho Avatar answered Sep 23 '22 15:09

Aleksi Yrttiaho


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!

like image 32
Kevin Wright Avatar answered Sep 22 '22 15:09

Kevin Wright