Scala là viết tắt của Scalable Language, là một ngôn ngữ lập trình hàm hỗn hợp. Nó được tạo bởi Martin Odersky. Scala tích hợp với các tính năng của ngôn ngữ lập trình hướng đối tượng và lập trình hàm. Scala được biên dịch để chạy trên máy ảo Java. Có rất nhiều công ty đang sử dụng Java cho các ứng dụng quan trọng của doanh nghiệp, đang chuyển sang dùng Scala để thúc đẩy tăng năng suất phát triển của họ, các ứng dụng có khả năng mở rộng và đạt độ tin cậy cao
Sau đây, tôi sẽ trình bày những điểm mà giúp cho Scala là lựa chọn hàng đầu của lập trình viên
Scala là hướng đối tượng
Scala là ngôn ngữ hướng đối tượng thuần tuý theo nghĩa là tất cả các giá trị đều là object. Các kiểu và hành động của object được miểu tả bởi các class và các trait.
Các class được mở rộng bởi các subclass và một cơ chế mixing-based composistion linh động như một thay thế tốt cho nhiều kế thừa
Scala là functional
Scala cũng là ngôn ngữ functional theo nghĩa là tất cả các hàm là một giá trị, tất cả giá trị là một object nên cuối cùng tất cả các function là một object.
Scala cung cấp một cú pháp nhẹ để định nghĩa anonymous function, nó hỗ trợ higer-order function, nó cho phép các hàm được nested (lồng vào nhau), và hỗ trợ currying.
Scala là statically typed
Scala, không giống như những ngôn ngữ statically typed khác như C, Pascal…, không mong đợi bạn cung cấp thông tin của kiểu thừa thãi. Bạn không phải chỉ định kiểu trong hầu hết mọi trường hợp, bạn không phải lặp lặp lại việc đó.
Scala chạy trên JVM
Scala được biện dịch thành Java byte code mà được thực thi bởi máy ảo Java (JVM). Điều này nghĩa rằng Java và Scala có platform runtime chung. Bạn có thể dễ dàng di chuyển từ Java sang Scala
Scala compiler có thể biên dịch code scala của bạn thành Java byte code mà sau đó có thể được thực thi bởi câu lệnh ‘scala‘ . Câu lệnh Scala giống với câu lệnh Java, trong đó nó thực thi code scala đã được biên dịch của bạn.
Scala có thể thực thi Java code
Scala cho phép bạn sử dụng tất cả các class của Java SDK và cũng có thể tuỳ chỉnh các class Java của bạn hoặc các dự án mã nguồn mở Java bạn ưu thích.
Scala hỗ trợ Concurrent và xử lý song song
Scala cho phép bạn các pattern lập trình thông thường nhanh một cách hiệu quả. Nó giảm số lượng các dòng code và giúp lập trình viên code một cách type-safe. Nó cho phép bạn viết code theo cách immutabe mà giúp cho nó dễ dàng áp dụng concurrency và song song (Synchronize).
Scala vs Java
Scala có những tính năng mà khác hoàn toàn với Java. Một trong những số này là:
- Tất cả các kiểu là object
- Type inference
- Các hàm lồng được vào nhau (nested function)
- Các hàm là object
- Domain specific language (DSL) hỗ trợ
- Traits
- Closures
- Hỗ trợ concurrency lấy cảm hứng từ Erlang
Web framework của Scala
Scala được sử dụng khắp mọi nơi và quan trọng trong các ứng dụng Web doanh nghiệp. Bạn có thể kiểm tra trong một vài Web framework phổ biến nhất sau: