Text Editors

Để học tập và làm việc có hiệu quả, tất nhiên chúng ta cần những cụ tốt hỗ trợ. Hôm nay chúng ta sẽ bàn về các phầm mềm soạn thảo văn bản – Text Editors.

Text editors là gì?

Dịch một cách sát nghĩa về Tiếng Việt chúng ta có tên gọi ‘trình biên tập văn bản’.  Các hệ điều hành luôn đi kèm với ít nhất một trình biên tập văn bản. Với mục đích chỉnh sửa các file cấu hình, các tài liệu kèm theo …vv

Như vậy, có thể thấy rõ ràng, nhiệm vụ chính của các text editors là biên tập các văn bản. Các bạn khi tiếp xúc với máy tính, chắc không hề xa lạ với các text editors cơ bản của hệ điều hành như notepad (Windows), textEdit (MacOS)…vv. Chúng ta sẽ không bàn luận quá xa xôi về các text editors trên giao diện dòng lệnh (Vi, Vim, Nano …vv) vậy các text editors cơ bản chúng ta thường sử dụng như đã nêu ở trên (notepad, textEdit…) luôn đi kèm với các chức năng cơ bản như search, replace, copy, paste, cut, undo, redo…vv và các chức năng này “vừa đủ” với nhiệm vụ ban đầu của chúng là chỉnh sửa các file cấu hình, tài liệu…vv

IDE là gì?

Netbeans, Eclipse, Xcode, Android Studio, MS Visual Studio các bạn có cảm thấy quen thuộc với những cái tên này không? Có lẽ ai đã từng là sinh viên CNTT cũng sẽ một hoặc một vài lần làm việc với những phần mềm này.

Những phần mềm được liệt kê phía trên được gọi chung là IDE (Integrated Development Environment), chúng ta sẽ không cố gắng dịch cụm từ này qua tiếng Việt, vì nghe khá chuối. Thay vào đó, chúng ta sẽ liệt kê 1 vài điểm chung của các phần mềm này, để hiểu rõ hơn IDE là gì.

  • Điểm đầu tiên chúng ta có thể dễ dàng nhận ra được là các phần mềm này dùng để hỗ trợ lập trình viên phát triển các phần mềm của họ. Khi sử dụng các phần mềm này, công việc của chúng ta khá đơn giản, viết code và bấm nút (Run, Build, …), toàn bộ phần còn lại hệ thống sẽ lo hết.
  • Kế đến, các phần mềm này thường sẽ có một số tính năng sau:
    • Trình biên tập văn văn (tất nhiên rồi, vì chúng ta cần viết và chỉnh sửa code)
    • Trình biên dịch hoặc thông dịch (Tùy vào ngôn ngữ bạn sử dụng/IDE hỗ trợ)
    • Công cụ hỗ trợ (giúp thao tác biên dịch/thông dịch, liên kết, đóng gói … một cách tự động)
    • Công cụ gỡ rối (debugger)
    • Và các công cụ hỗ trợ quản lý version cũng như phiên làm việc …vv

Ưu điểm khi sử dụng IDEs

Đơn giản

Quá đơn giản đúng không nào. Ví dụ bạn muốn xây dựng 1 ứng dụng di động trên hệ điều hành Android, việc duy nhất bạn cần làm là tải ngay Android Studio, viết code. Các thao tác gỡ rối, biên dịch, đóng gói đều có giao diện đồ họa hỗ trợ và được hướng dẫn chi tiết trong tài liệu của Android Studio.

Tiện lợi

Có quá nhiều tiện ích được tích hợp sẵn trong các IDE, nhiều đến mức một ngày nào đó chúng ta sẽ phải học các chứng chỉ để sử dụng chúng giống như các phần mềm trong bộ MS Office hiện nay. Một vài ví dụ nhỏ để bạn thấy rõ hơn.

    • Khi bạn muốn đổi tên 1 class, 1 hàm hay một biến. Thử tưởng tượng sẽ ra như thế nào nếu dự án của công ty bạn đã phát triển được 2/3 chặng đường. Hàng trăm, hàng nghìn files mã nguồn sẽ bị ảnh hưởng. Nếu không có sự hỗ trợ của IDE, có lẽ chuyện đặt tên lại (rename) sẽ được xóa khỏi suy nghĩ của tất cả lập trình viên.
    • Khi bạn đọc mã nguồn của đồng đội, vì nhiều lý do tên class, tên hàm hay tên biến lại quá tối nghĩa bạn sẽ làm gì? Cách đơn giản nhất có lẽ là tìm đến đoạn mã khai báo, đọc sơ qua logic của nó để hiểu hơn. Nhưng bây giờ, bài toán kế tiếp mở ra, đống code đó được khai báo ở đâu? Tất nhiên một số ngôn ngữ, framework nhất định bạn sẽ dễ dàng truy xuất được nguồn gốc của nó, nhưng một số khác lại không hề đơn giản. May mắn cho chúng ta, chỉ với vài cái click chuột, chúng ta dễ dàng tìm đến tận nơi đoạn code được khai báo hoặc định nghĩa (go to Declaration, go to definition)
    • Và rất rất nhiều sự tiện lợi khác phải không nào.

Nhược điểm của các IDEs

Tất nhiên, mọi thứ đều có 2 mặt của nó, có ưu điểm thì không tránh khỏi nhược điểm. Vậy IDE có những nhược điểm nào?

Nặng nề

Tất nhiên rồi, một phần mềm được tích hợp với quá trời tiện ích chắc chắn không thể nhẹ được đúng không nào, chúng ta sẽ phải chấp nhận nhược điểm này khi sử dụng các IDE thôi.

Không đa dạng

Đây cũng không hẳn là nhược điểm của các IDE. Nhưng các bạn có thấy, các IDE thường chỉ hỗ trợ 1 hoặc 2 ngôn ngữ, chúng tập trung vào sự đa dạng Frameworks của các ngôn ngữ đó. Nghĩa là nếu công việc của bạn cần sự da dạng, bạn sẽ phải cài rất rất nhiều IDE. Nếu nhìn ở một góc khách quan, đây chị là một bất tiện hơi nhỏ thôi, vì nếu nhà phát triển cố nhồi nhét quá nhiều, hãy tưởng tượng IDE của chúng ta sẽ nặng cỡ nào?

Không tốt cho người mới bắt đầu

Nghe khá vô lý đúng không? Khi ở trường học, chúng ta sẽ được cài những IDE này trước cả khi môn học bắt đầu. Vậy nó không tốt ở đâu? Câu trả lời lại càng vô lý hơn, nó không tốt do nó quá tốt. Khi sử dụng nó, người dùng gần như thao tác trên giao diện, bạn tải bản cài về, mở lên, click chuột vài cái và bắt đầu viết code. Quá đơn giản và tiện lợi. Do đó, các bạn sẽ không hề biết (hoặc không thể cài đặt) được phiên bản ngôn ngữ các bạn sử dụng, các bước quá trình mà một ứng dụng được xây dựng…vv

Với những phân tích trên, đôi lúc chúng ta cần một thứ gì khác để thay thế cho IDE đúng không nào?

Các Text editors hiện đại.

Ngày nay, công nghệ phần mềm ngày càng phát triển, một dự án có thể sử dụng rất nhiều ngôn ngữ kết hợp. Các IDE nặng nề không còn là lựa chọn tối ưu giành cho các lập trình viên nữa. Nắm được tâm lý đó, nhiều nhà phát triển đã nâng cấp các text editors bình thường, thêm cho chúng nhiều chức năng cần thiết cho các lập trình viên mà vẫn giữ được các ưu điểm gọn nhẹ ban đầu của chúng. Một số tính năng mở rộng như:

  • Quản lý cây thư mục
  • Search/Replace trên toàn folder
  • Hỗ trợ tab
  • Highlight cú pháp, keywords của các ngôn ngữ lập trình

Đặc biệt, các chức năng nổi bật ở các IDE như trình thông dịch, biên dịch, tháo lỗi…vv cũng được phát hành kèm theo, nhưng dưới dạng các gói mở rộng. Nghĩa là chỉ với 1 phần mềm text editor bạn có thể sử dụng cho nhiều ngôn ngữ, frameworks…vv chỉ cần cài đặt hoặc gỡ bỏ các gói mở rộng một cách phù hợp, linh hoạt. Text editor của bạn cũng sẽ mạnh mẽ như IDE nhưng sẽ nhẹ nhàng hơn, vừa đủ dùng.

Ưu điểm

  • Gọn nhẹ: Ưu điểm lớn nhất của các text editors so với IDE là tính gọn nhẹ. Bạn chỉ cần chưa đầy 1 giây để khởi động các phần mềm này.
  • Linh hoạt: Hầu hết các phần mềm text editors hiện nay đều rất linh hoạt. Các chức năng không được đóng gói kèm với phần mềm. Chúng được phát hành dưới dạng các gói mở rộng …vv Do đó, lập trình viên có thể cài đặt vừa đủ với nhu cầu của mình. Tùy vào ngôn ngữ và ứng dụng chúng ta đang phát triển.

Nhược điểm

Khó khăn khi sử dụng các text editors dạng này là phải biết cấu hình, cài đặt môi trường. Đặc biệt chúng ta phải tìm kiếm các plugin/addons cần thiết. Nhưng là một người làm trong lĩnh vực kỹ thuật. Mình nghĩ các bạn cũng không ngại ngùng lắm công việc research đúng không?

Một số text editors phổ biến

Dưới đây mình sẽ giới thiệu với các bạn một vài text editors phổ biến hiện nay. Rất khó để cân đo phần mềm nào tốt hơn hay tệ hơn. Đối với mình chỉ dựa trên tiêu chí thẩm mỹ (font chữ, màu sắc…vv) để chọn lựa. Các bạn hãy lướt qua một vòng để xem thử phần mềm nào phù hợp với mình.

Hi vọng các bạn có thể chọn được một phần mềm phù hợp với nhu cầu của bản thân.