As tecnicas de desenvolvimento hoje utilizam linguagens modernas que são projetadas para o desenvolvimento Ágil, frente aos desafios e concepções atuais, isso não se sustenta pelas linguagens antigas, essa sua afirmação é um verdadeiro absurdo.
[color=red]“Leia com atenção, pra não cair ao vento”[/color]
Fonte:

Introduction
There are so many languages that you could use to program the JVM.
In this book I hope to convince you to take the time to learn Scala.
The Scala language has been designed for concurrency, expressiveness, and scalability. The language and its libraries let you focus on your
problem domain without being bogged down by low-level infrastructure details like threads and synchronization.
We live in a world where hardware is getting cheaper and more powerful.
Users now have devices with multiple processors, each with multiple cores. Although Java has served us well so far, it was not designed
to take advantage of the power we have on hand today. Scala lets you put all that power to use to create highly responsive, scalable, performing
applications.
In this introduction, we?ll take a quick tour of the benefits of functional programming and Scala to show you what makes Scala attractive. In
the rest of this book, you?ll learn how to use Scala to realize those benefits.
Why Scala ?
Is Scala the right language for you ?
Scala is a hybrid functional and object-oriented language. When creating a multithreaded application in Scala, you?ll lean toward a functional
style of programming where you write lock-free code with immutable
WHY SCALA ?
Scala provides an actor-based message-passing model that removes
the pain associated with concurrency. Using this model, you can write concise multithreaded code without the worries of data contention
between threads and the resulting nightmare of dealing with locks and releases. You can retire the synchronized keyword from your vocabularies
and enjoy the productivity gains of Scala.
The benefits of Scala, however, are not limited to multithreaded applications. You can also use it to build powerful, concise, single-threaded
applications and single-threaded modules of multithreaded applications.
You can quickly put to use the powerful capabilities of Scala, including sensible static typing, closures, immutable collections, and
elegant pattern matching.
Scala’s support for functional programming helps you to write concise and expressive code. Thanks to the higher level of abstraction, you can
get more things done with fewer lines of code. The functional style will benefit both your single-threaded applications and your multithreaded
applications.
A number of functional programming languages exist. Erlang, for one, is a nice functional programming language. In fact, Scala’s concurrency
model is very similar to that of Erlang. However, Scala has two significant advantages over Erlang. First, Scala is strongly typed, while Erlang
is not. Second, unlike Erlang, Scala runs on the JVM and interoperates very well with Java.
These two features of Scala make it a prime candidate for use in different layers of enterprise applications. You can certainly use Scala to
build an entire enterprise application if you desire. Alternately, you can use it in different layers along with other languages. You can take
advantage of the strong typing, superb concurrency model, and powerful pattern matching capabilities in layers where they would matter
the most in your applications. The following figure, inspired by Ola Bini’s Language Pyramid (see ‘Fractal Programming’ in Appendix A, on
page 211), shows where Scala may fit in with other languages in an
enterprise application.
An object is said to be immutable if you can?t change its contents once you create it.This eliminates the concerns of managing contention when multiple threads access the object. Java?s String is a great example of an immutable object.
[size=18][color=red]What about other languages on the JVM…Groovy, JRuby, Clojure ?[/color]
[/size]
Scala is by far the only prominent strongly typed language that provides functional style and great concurrency support. JRuby and Groovy are
dynamic languages. They are not functional and do not provide any more solutions for concurrency than Java does. Clojure, on the other
hand, is a hybrid functional language. It is dynamic in nature and so is not statically typed. Furthermore, its syntax is similar to Lisp, which is
not the easiest syntax to work with unless you are familiar with it.
If you are an experienced Java programmer and are battling with Java to implement multithreaded applications, you will find Scala to be very
useful. You can quite easily wrap your Java code into Scala?s actors to provide thread isolation. To communicate between the threads, you can
use Scala?s lightweight API to easily pass messages. Instead of launching threads and immediately limiting concurrency by synchronization,
you can use lock-free message passing to enjoy true concurrency.
If you value static typing and like to benefit from the support offered by the compiler, you will find that the static typing provided in Scala works
for you without standing in your way. You will enjoy typing without having to type as much code.If you are looking for a higher level of abstraction and highly expressive code, you’ll be attracted to Scala?s conciseness. You can get a lot more done with less code in Scala. You will also find the flexibility of Scala when it comes to operators and notations useful for creating domain specific languages.