Search

Suggested keywords:

Scala Language

post-title
Table of content

    Nguồn gốc & lịch sử 

    • Scala (viết tắt của Scalable Language) được tạo ra bởi Martin Odersky tại École Polytechnique Fédérale de Lausanne (EPFL, Thụy Sĩ).

    • Phiên bản đầu tiên ra mắt năm 2003.

    • Odersky cũng là người từng viết compiler đầu tiên của Java (javac), nên Scala được thiết kế để chạy trên JVMtương thích hoàn toàn với Java.

    • Scala phát triển nhanh chóng nhờ cộng đồng học thuật và doanh nghiệp, vì nó mang tư tưởng kết hợp giữa OOP (Java-like)FP (Haskell-like).

    Các phiên bản chính

    Phiên bảnNămĐiểm nổi bật
    Scala 2.x2006–2020Giai đoạn phổ biến nhất, nhiều framework như Play, Akka ra đời
    Scala 3 (Dotty)2021–nayViết lại toàn bộ compiler, cú pháp tinh gọn, typing mạnh hơn, meta-programming, extension methods, union types, opaque types, v.v.

    Tư tưởng thiết kế

    Scala được thiết kế để:

    1. Mở rộng quy mô tư duy (Scalable) — phù hợp từ script nhỏ → hệ thống lớn.

    2. Functional + Object-oriented: mỗi giá trị là object, mỗi function là object.

    3. Statically typed nhưng có cú pháp gần gũi như dynamic language (nhờ type inference).

    4. Tận dụng toàn bộ hệ sinh thái Java (JVM, libraries, tools, etc).

    Triết lý cốt lõi

    “Scala is designed to grow with you.”
    Ban đầu bạn có thể viết Scala như Java, nhưng dần dần sẽ học functional patterns: Option, Either, Future, map, flatMap, for comprehension

    Tại sao dùng Scala mà không phải Java?

    1. Tận dụng JVM — chạy nhanh, đa nền tảng, và dùng được thư viện Java.

    2. Functional + OOP — có thể viết code ngắn gọn, ít lỗi, dễ test, dễ scale.

    3. Concurrency và Reactive — hỗ trợ mạnh qua các thư viện như Akka, ZIO, Cats Effect.

    4. Type safety mạnh mẽ — ít lỗi runtime.

    5. Phù hợp cho Big Data, Distributed Systems — nền tảng của Spark, Kafka, v.v.

    Công ty nào dùng Scala?

    Công tyỨng dụng Scala trong
    TwitterBackend services, chuyển từ Ruby sang Scala để tăng performance
    LinkedInStream processing với Kafka + Samza
    AirbnbData pipeline và machine learning
    NetflixRecommendation system (Scala + Akka)
    DatabricksĐược sáng lập bởi tác giả Apache Spark (viết bằng Scala)
    Snowflake, Uber, Coursera, The Guardian...Backend & data processing

    Khi nào nên dùng Scala?

    • Bạn cần hệ thống lớn, concurrent, scalable (backend service, actor system, event stream).

    • Bạn làm Big Data / Data Pipeline / ETL → Spark là lựa chọn số 1.

    • Bạn cần hiệu năng JVM, nhưng code ngắn và an toàn hơn Java.

    • Bạn thích functional programming nhưng vẫn muốn OOP.

    • Bạn muốn viết domain-specific language (DSL) hoặc meta-programming.

    Không nên dùng khi nào?

    • Dự án nhỏ, không yêu cầu JVM (có thể chọn Go, Node.js, Rust).

    • Team chưa quen FP — Scala có đường cong học tập cao.

    • Bạn cần tool ecosystem đơn giản hơn (Scala có thể nặng khi compile).