Bài viết được dịch từ trang web SitePoint

Một thế hệ mới của các trình soạn thảo code đã đến. Chúng lấp đầy khoảng trống giữa các ứng dụng soạn thảo cơ bản (Notepad, TextEdit, gedit, v.v...) và các môi trường phát triển tích hợp đầy đủ IDE (VisualStudio, Eclipse, NetBeans, v.v...). Các ứng dụng loại đơn giản hơn thường thiếu hụt những yêu cầu phát triển cơ bản như mở nhiều tài liệu, đánh số dòng và hiển thị màu sắc. Trong khi các IDE lại có khuynh hướng trở thành những ứng dụng nguyên khối nhằm phục vụ cho một ngôn ngữ, framework hoặc nền tảng xác định.

Bài đánh giá này xem xét độ phức tạp của các trình soạn thảo code theo các tiêu chí sau đây. Tất cả phải:

  1. Phù hợp để phát triển web
  2. Đa nền tảng và làm việc trên Windows, Mac và Linux. Các sở thích và thiết lập của bạn nên có sẵn cho dù bạn đang sử dụng hệ điều hành gì.
  3. Các trình soạn thảo văn bản đa mục đích, hỗ trợ các ngôn ngữ web điển hình. Bạn sẽ có thể sử dụng cùng một ứng dụng cho HTML, CSS, JavaScript, PHP, Ruby, SQL, markdown và nhiều ngôn ngữ khác.
  4. Tính tùy biến cao cùng với các plugin và theme đa nền tảng.
  5. Nhanh và ổn định. Việc khởi chạy nó đừng bao giờ trở thành một nỗi sợ hãi mà bạn chỉ dám thực hiện một lần mỗi ngày.
  6. Có thể sử dụng được ngay lập tức mà không cần phải học nhiều hoặc phải nhớ nhiều phím tắt.

Thành thật xin lỗi đến các fan của Vim và Emacs - vì các ứng dụng console-based đã bị loại ra khỏi danh sách này - nhưng dù sao bạn cũng chẳng bao giờ quan tâm đến một trình soạn thảo thay thế! Tôi cũng đã từ chối thêm vào các trình soạn thảo dạng browser-based như là Cloud9CodeEnvy bởi vì chúng có khuynh hướng nghiêng về hướng web và không thể sử dụng offline. Cuối cùng, bài viết không thể chứa mọi trình soạn thảo phù hợp với những tiêu chí này, nhưng hãy cho chúng tôi biết liệu có bất kỳ trình soạn thảo nào khác mà bạn muốn có trong bản đánh giá lần tới (ví dụ như dự án mới Lime Text chẳng hạn).

Các lập trình viên dành ra nhiều, rất nhiều giờ để sử dụng trình soạn thảo code mà họ đã lựa chọn. Đó là một quyết định mang tính chủ quan và một khi bạn đã có một cấu hình hoàn hảo, thì rất khó để chuyển sang một ứng dụng khác. Điều đó nói lên rằng, bài so sánh này không phải là dạng "hãy sử dụng bất cứ cái nào mà bạn thấy phù hợp, anh bạn ạ"; mà người viết (trong trường hợp này là tôi) sẽ đưa ra các đề xuất dựa trên các kinh nghiệm, yêu cầu và thành kiến. Bạn sẽ đồng ý với một số điểm và không đồng ý với những điểm khác; điều đó tốt thôi - hãy để lại bình luận của bạn để chúng ta có thể giúp đỡ những người khác có được những lựa chọn đúng đắn. Chúng tôi cũng sẽ nỗ lực để giữ cho những bài viết này luôn được cập nhật, với các thông tin mới được bổ sung khi cần thiết.

Hãy xem xét các ứng cử viên nhé!

Sublime Text

Đầu tiên, chúng ta có Sublime Text. Đây là ứng dụng được viết bằng C++ và Python bởi tác giả Jon Skinner và đã thu hút được hơn 2,5 triệu người sử dụng kể từ khi ra mắt vào năm 2008. Những nhận xét về nó chủ yếu là tích cực và trong khi đây không phải là trình soạn thảo code phức tạp nhất, nhưng chúng ta dựa vào nó để thiết lập ra những tiêu chuẩn cho các trình soạn thảo kế tiếp.

Trình soạn thảo code Sublime Text

Các tính năng chính bao gồm:  

  • Hỗ trợ ngôn ngữ toàn diện với cú pháp tương thích TextMate
  • Đa lựa chọn và chỉnh sửa cột
  • Điều hướng nhanh chóng tới các vị trí file và code
  • Một command palette để truy cập tất cả các tính năng
  • Một mini-map và các code snippet
  • Tùy biến mở rộng, nhiều theme tuyệt vời và rất nhiều plugin
  • Đẹp, nhanh và ổn định

Không giống như các đối thủ khác, Sublime Text là một sản phẩm thương mại có giá $70 đô-la cho mỗi user (bạn có thể cài đặt nhiều hơn nếu muốn). Bạn có thể sử dụng thử cho đến khi nào thấy muốn mua; nó thỉnh thoảng sẽ nhắc nhở bạn mua giấy phép bản quyền. $70 đô-la cũng là đắt hơn so với miễn phí nhưng nếu chia cho số giờ sử dụng thì chi phí đó cũng không đáng là bao.

Sublime Text là ứng dụng hoàn thiện nhất và sản phẩm duy nhất không ở trong một giai đoạn trước khi phát hành chính thức (mặc dù tôi đang sử dụng phiên bản 3 beta cho mục đích bài review này). Vì vậy nó cũng có một chút lợi thế, nhưng tất cả các ứng viên hiện nay đều có thể sử dụng rất tốt.

Tham khảo các khóa học lập trình online, onlab, và thực tập lập trình tại TechMaster

Atom

Atom là một trình soạn thảo code mới từ GitHub. Ứng dụng mã nguồn mở đang ở phiên bản beta này được phát triển bằng Node.js, CoffeeScript, LESS và C++ trong webkit wrapper. Việc nói rằng Atom bị ảnh hưởng bởi Sublime Text là không có cơ sở:

Trình soạn thảo code Atom

Các tính năng chính bao gồm:

  • Miễn phí và mã nguồn mở trên tất cả các nền tảng
  • Tích hợp với Git và GitHub
  • Một API mở có tài liệu đầy đủ dành cho các nhà phát triển plugin
  • Có thể sử dụng ngay lập tức mà ít bị phụ thuộc vào các tập tin cấu hình
  • Một lựa chọn tốt các theme và plugin cùng một trình quản lý gói built-in 
  • Các phím tắt tương thích với Sublime Text và Vim
  • Giao diện hấp dẫn

Tại thời điểm viết bài này, Atom là hợp lý dễ dàng cài đặt trên Mac và có một trình cập nhật built-in. 

Brackets

Brackets là một trình soạn thảo mã nguồn mở từ hãng Adobe. Nó được tạo ra đặc biệt dành cho các nhà phát triển web và được viết bằng HTML, CSS và JavaScript sử dụng CodeMirror trong một Node.js container.

Trình soạn thảo code Brackets

Các tính năng chính bao gồm:

  • Miễn phí và mã nguồn mở trên tất cả các nền tảng
  • Ngôn ngữ tốt và đặc biệt là hỗ trợ cho phát triển web
  • Xem thử trình duyệt (live browser preview) và cập nhật mà không cần một máy chủ (yêu cầu Chrome)
  • Chỉnh sửa CSS inline
  • Một API mở có tài liệu đầy đủ dành cho các nhà phát triển plugin
  • Có thể sử dụng ngay lập tức mà ít bị phụ thuộc vào các tập tin cấu hình
  • Một lựa chọn tốt các theme và plugin cùng một trình quản lý gói built-in 
  • Multiple selection editing, auto-complete và color picker
  • Giao diện hấp dẫn

Dự án này được phát triển trong các sprint (phong cách Agile) và cứ mỗi 2-3 tuần lại có một phiên bản mới. Vẫn chưa có tính năng tự động cập nhật, nhưng trình soạn thảo này sẽ báo cho bạn biết khi có một phiên bản mới của ứng dụng hoặc plugin.

Light Table

Light Table là một đối thủ đến sau. Một chiến dịch kêu gọi vốn từ cộng đồng thông qua Kickstarter đã thu được trên $300,000 đô-la (khoảng 6 tỷ VNĐ) cho Chris Granger & Robert Attorri phát triển trình soạn thảo mã nguồn mở này bằng ClojureScript cùng một Node-webkit wrapper.

Trình soạn thảo code Light Table

Các tính năng chính bao gồm:

  • Miễn phí và mã nguồn mở trên tất cả các nền tảng
  • Cài đặt gọn nhẹ
  • Giao diện đẹp và tối giản 
  • Auto-complete khắp nơi
  • Inline evaluation và watches
  • Split views và instant feedback
  • Một command palette và fuzzy finder
  • Một lựa chọn tốt với các theme được cung cấp
  • Một trình quản lý plugin với các extension hợp lý và một open API hứa hẹn
  • Ứng dụng tự động cập nhật (Tôi vẫn chưa được trải nghiệm qua điều này!)

Light Table tự mô tả bản thân nó là "trình soạn thảo code thế hệ tiếp theo". Nó nhắm đến cung cấp một giao diện linh hoạt, đánh giá thời gian thực, trực quan và tài liệu đầy đủ khi bạn cần nó. Trình soạn thảo này vẫn còn đang trong giai đoạn đầu của sự phát triển và ngôn ngữ hỗ trợ bị giới hạn hơn so với những ứng cử viên khác.

Phương pháp đánh giá

Tôi đã sử dụng tất cả những trình soạn thảo này để phát triển HTML, CSS/Sass, JavaScript, PHP, Node.js, Ruby và SQL trên 3 máy khác nhau:

  • Windows 8.1 - một máy laptop đã sử dụng 18 tháng có cấu hình khá mạnh
  • Mac OS X 10.8 - một máy Mac Pro khoảng 2 năm tuổi
  • Lubuntu 14.04 - một máy laptop đã cũ khoảng 5 năm tuổi

Chắc chắn là một số trình soạn thảo code đã được sử dụng nhiều hơn những cái khác do lịch trình phát hành của chúng:

  • Sublime Text 3 bản beta đã được cài đặt trên tất cả các nền tảng và sử dụng trong 6 tháng.
  • Atom 0.123 (và các phiên bản thấp hơn) chỉ được cài đặt trên máy Mac và được sử dụng trong 4 tháng.
  • Brackets 0.42 (và phiên bản thấp hơn) đã được cài đặt trên tất cả các nền tảng và đã được sử dụng trong 12 tháng (mặc dù lần đầu tiên tôi thử dùng nó là vào năm 2012).
  • Light Table 0.6.7 được cài đặt trên tất cả các nền tảng và đã được sử dụng trong 6 tuần. Nó là một ứng cử viên sau cùng nên không nhận được nhiều thử nghiệm như những cái kia.

Hãy để cho trận đấu bắt đầu!

Vòng 1: Giao diện

Thực ra các trình soạn thảo code không cần phải đẹp làm gì, nhưng do bạn phải ngồi nhìn chằm chằm vào nó suốt cả ngày, vì vậy nếu giao diện của nó gọn và dễ sử dụng sẽ mang lại nhiều hữu ích, và không bị cảm giác nhàm chán khi phải code những dự án dài hơi. Tạo màu sắc trong coding và tùy biến các theme là rất cần thiết, và trong khi Sublime Text đưa ra rất nhiều tùy chọn thì các trình soạn thảo khác cũng có một phạm vi tốt mà bạn có thể điều chỉnh theo ý thích của mình.

Thật khó để lựa chọn một giao diện ưa thích, bởi vì tất cả chúng đều trông giống nhau. Ngoài ra, tôi thích theme mặc định Monokai của Sublime Text, nhưng những ứng viên khác cũng đưa ra những theme tương tự.

Người chiến thắng là: Brackets - nhưng chỉ là do nó cung cấp trải nghiệm đa nền tảng nhất quán nhất và trông thật tuyệt vời. Nó bị mất điểm trong việc hiển thị font chữ dường như không được mượt như những trình soạn thảo khác, nhưng một số tinh chỉnh có thể giải quyết được vấn đề đó.

Atom đứng vị trí thứ hai. Sublime Text có một chút cạnh trông hơi lồi ra trên Windows. Cuối cùng là Light Table có ít giao diện để có thể đánh giá - nhưng đó có thể là một tài sản hứa hẹn.

Vòng 2: Hỗ trợ cú pháp

Tất cả các ứng cử viên có thể chỉnh sửa các file nguồn bất kể cú pháp của nó là gì. Tuy nhiên, Sublime Text giành chiến thắng trong hạng mục này bởi vì nó đưa ra màu sắc trong code và hỗ trợ hàng tá các ngôn ngữ lập trình phổ biến và phức tạp.

Atom và Brackets cách không xa ở phía sau và có plugin hỗ trợ cho những cú pháp ít được sử dụng. Light Table chủ yếu tập trung vào Clojure, ClojureScript, Javascript, Python, HTML và CSS nhưng tình hình sẽ được cải thiện khi mà trình soạn thảo này phát triển lên trong tương lai.

Vòng 3: Dễ học và dễ sử dụng

Các trình soạn thảo lý tưởng sẽ cho phép bạn làm việc năng suất ngay ngày đầu tiên sử dụng và cho phép bạn khám phá các tính năng theo thời gian. Brackets có một chiến thắng dễ dàng; hầu hết các tùy chọn đều có sẵn từ menu và giao diện mà không cần phải chỉnh sửa các file cấu hình (mặc dù chúng vẫn có ở đó).

Sublime Text được đóng gói đầy đủ các tính năng nhưng việc tìm, cấu hình và sử dụng chúng được hay không là một vấn đề khác. Atom tốt hơn một chút trong hạng mục này nhưng vẫn có một số khăn để học khi so sánh với Brackets.

Mặt khác, Light Table ẩn giấu sức mạnh của nó, và bạn sẽ cần phải đọc tài liệu và xem các video để tìm hiểu các hoạt động cơ bản như là cho phép word-wrap hoặc thay đổi thiết lập về thụt đầu dòng chẳng hạn.

Vòng 4: Tốc độ và tính ổn định

Không có đối thủ ở hạng mục này: Sublime Text nhanh hơn rất nhiều so với các trình soạn thảo khác và tôi không thể nhớ rằng liệu mình đã bị treo máy và đánh mất dữ liệu khi đang sử dụng nó lần nào hay chưa.

Light Table có tốc độ cũng nhanh. Nó cho phép mở tập tin có dung lượng lớn hơn 25Mb nhanh hơn Sublime Text, mặc dù quá trình chỉnh sửa thì chậm chạp hơn. Atom chậm hơn thấy rõ. Nó có thể sử dụng được mặc dù việc mở các tập tin lớn là không thể - hiện tại trình soạn thảo này có một giới hạn về dung lượng tập tin là 2Mb.

Cuối cùng, Brackets có các yêu cầu phần cứng cao hơn, bắt đầu chậm hơn và tôi đã vài lần bị treo máy khi mở nhiều file có dung lượng lớn. Tôi thấy hài lòng khi sử dụng nó trong việc chỉnh sửa HTML, CSS và JavaScript nhưng có thể phải suy nghĩ 2 lần trước khi mở một file SQL dump có nội dung dài.

Vòng 5: Các đặc trưng gốc

Trình soạn thảo như thế nào là tốt trước khi bạn bắt đầu bổ sung thêm các plugin? Người chiến thắng trong hạng mục này là Sublime Text: nó cung cấp một loạt các tính năng có sẵn mặc định. Có lẽ điều này là không thể tránh khỏi đối với một sản phẩm thương mại.

Những ứng viên khác có cách tiếp cận theo lối tối thiểu trước, với một trình soạn thảo cơ bản được bổ sung bởi các plugin để mang lại các tùy chọn nâng cao khi bạn yêu cầu chúng. Thậm chí tính năng auto-complete là một plugin trong Atom, và Brackets vẫn chưa có tính năng split view. Sau khi xem xét thì tôi thấy thích triết lý này, nhưng khả năng quản lý của Sublime Text vẫn nhanh nhẹn và nhẹ nhàng mặc dù đã bổ sung thêm các chức năng đó.

Vòng 6: Các đặc trưng hướng web

Một chiến thắng dễ dàng dành cho Brackets. Trình soạn thảo này được phát triển bằng các công nghệ web để giúp build các công nghệ web. Các lập trình viên front-end có thể tận hưởng một danh sách dài các tính năng bao gồm:

  • Live Preview: khởi chạy một trang trong trình duyệt và xem những thay đổi trong thời gian thực khi bạn chỉnh sửa.
  • CSS Quick Edit: nhấn Ctrl/Cmd+E khi đang chỉnh sửa HTML để lộ ra và chỉnh sửa các style CSS kết hợp với thành phần đó.
  • Code completion, một bộ chọn màu color picker, bộ xem trước hình và ảnh động.
  • Một số extension tuyệt vời như là trình gỡ rối Theseus JavaScript và CSS shapes editor.

Brackets ít nhấn mạnh vào các ngôn ngữ lập trình server-side nhưng nó cũng hỗ trợ cú pháp cơ bản.

Light Table đứng ngay sau với các tính năng workspaces, browser preview panes, live editing, code evaluation, auto-complete và documentation. Khá ngạc nhiên là nó không có khả năng xem các file hình mặc dù trình soạn thảo này có một browser base.

Atom và Sublime Text là những trình soạn thảo đa mục đích. Chúng có thể ít hướng web hơn nhưng lại có nhiều tùy chọn khác.

Vòng 7: Plugins và Extensions

Sublime Text dường như là người chiến thắng rõ ràng - trình soạn thảo này có gần 2.500 extension. Điều đó nói rằng, chất lượng các extension là khác nhau và việc kiểm soát gói khó hơn nhiều so với các đối thủ khác. Tài liệu API của Sublime Text rất ít, nó không cho phép các plugin tương tác với toàn bộ interface và cần phải có kiến thức về Python.

Bởi vậy tôi cũng đánh giá khá cao AtomBrackets. Trong khi không có cái nào trong số chúng có nhiều extension, việc quản lý plugin cao cấp hơn và cả hai đều có các tài liệu API mở và được viết rất rõ ràng. Việc phát triển các extension bằng JavaScript là một bonus dành cho các lập trình viên web.

Light Table có một số lượng nhỏ plugin và API thì chưa hoàn thiện tại thời điểm viết bài này.

Vòng 8: Tính tùy biến và Hackability

Thể loại này hơi khó để đánh giá, vì tất cả các trình soạn thảo đều được thiết kế cho phép tùy biến cao. Sau nhiều lần cân nhắc, tôi quyết định người chiến thắng là Atom. Nó có các file cấu hình tương tự với Sublime Text, nhưng nhiều tùy chọn có thể được khám phá thêm trong interface. Tài liệu tốt hơn và mã nguồn có sẵn nên bạn có thể có những thay đổi mức sâu hơn hoặc phát triển các plugin.

Brackets có rất nhiều tùy chọn và nó cũng là mã nguồn mở, nhưng nó không thể cấu hình được như Atom và Sublime Text. Cấp độ tùy biến của Light Table khá tốt nhưng phức tạp hơn, thậm chí ngay cả khi có sự hỗ trự của auto-completion.

Vòng 9: Tương lai

Tốc độ phát triển của Sublime Text đã chậm lại mặc dù điều đó cũng khá dễ hiểu vì nó đã trưởng thành. Vì là một sản phẩm thương mại nên tương lai của nó không chắc chắn bằng Atom - người chiến thắng trong hạng mục này - nó được hỗ trợ bởi GitHub ở dạng miễn phí. Trình soạn thảo này sẽ trở nên khó đánh bại một khi phiên bản cuối cùng được phát hành trên tất cả các nền tảng.

Brackets cũng có một tương lai triển vọng: nó được hỗ trợ bởi Adobe và có hàng tá thành viên đóng góp. Số lượng các tính năng và plugin tăng lên đáng kể trong vài tháng gần đây.

Còn quá sớm để dự đoán tương lai của Light Table. Trình soạn thảo này có triển vọng và làm việc tốt trên các phần cứng không mạnh, nhưng nó đang đi một con đường khá chông gai và tôi không tin là nó có thể hấp dẫn được đa số người dùng.

Vòng 10: Kẻ chiến thắng chung cuộc

Các vòng đấu đã bất ngờ đóng lại. Nếu chúng ta giả sử rằng ở vòng 7 là ở thế chân vạc với 3 kẻ chiến thắng, thì Atom chiến thắng 3 lần, còn Brackets và Sublime Text mỗi cái chiến thắng 4 lần. Tất cả các trình soạn thảo này đều tốt, nhưng nếu tôi phải lựa chọn một nhà vô địch cho ngày hôm nay, thì đó là một quyết định khá dễ dàng. Sublime Text vẫn là trình soạn thảo số 1 mặc dù nó có mất phí. Trình soạn thảo này nhanh, ổn định, có một số lượng lớn các tính năng và plugin bổ sung. Nhược điểm của nó là: các tính năng có thể hơi khó khám phá và bạn sẽ có một nghi ngờ dai dẳng rằng mình đang không sử dụng một trình soạn thảo với đầy đủ các lợi thế của nó.

Lựa chọn khi bạn không muốn mất tiền

Nếu bạn không muốn bỏ tiền ra mua Sublime Text (tất nhiên bạn cũng có thể sử dụng thử vô thời hạn, nhưng thường xuất hiện những thông báo yêu cầu mua bản quyền), thì bạn sẽ có một số lựa chọn khác. Nếu bạn sử dụng một máy Mac, thì Atom là khá hứa hẹn. Trong khi nó chiến thắng ít vòng đấu hơn so với Brackets nhưng nó đứng vị trí số 2 ở hầu hết các hạng mục. Nếu nó nhanh hơn một chút và dễ cài đặt hơn trên Windows và Linux thì Sublime Text phải vất vả lắm mới có thể cạnh tranh lại với nó. Cộng đồng các nhà phát triển web gần như chắc chắn sẽ thích kiến trúc plugin mở JavaScript API.

Brackets cũng là một lựa chọn tốt. Nó đang phát triển nhanh chóng, có các đặc trưng phát triển web mà bạn sẽ không thể tìm thấy ở nơi khác và cảm thấy như nó đã được đánh bóng trên tất cả các nền tảng. Tốc độ và tính ổn định có thể phá hỏng trải nghiệm đó, nhưng nó là một lựa chọn khả thi cho các lập trình viên front-end với một máy tính có tốc độ chấp nhận được.

Mặc dù Light Table không giành được chiến thắng ở bất kỳ vòng nào, nhưng nó là một dự án thú vị với một hướng tiếp cận cấp tiến. Nó nhẹ và nhanh trên cả phần cứng thuộc loại khiêm tốn, nhưng bạn sẽ cần đầu tư thời gian để học cách làm thế nào sử dụng và cấu hình trình soạn thảo này. Rất ít người trong chúng ta có sự kiên nhẫn đó, nhưng tôi ngờ rằng nó khó có thể lôi kéo được một cộng đồng người dùng cuồng nhiệt giống như Vim đã làm.

Các trình biên dịch này là miễn phí, vì vậy bạn có thể cài đặt và sử dụng chúng thay thế cho nhau. Tôi thường sử dụng Atom khi làm các dự án trên Mac. Brackets là lựa chọn ưa thích của tôi trên PC cho các dự án client-side hoặc các file markdown (có một plugin preview rất tuyệt). Cuối cùng, tôi sử dụng Light Table trong việc xem và chỉnh sửa nhanh trên tất cả các hệ điều hành.

Cuối cùng, xin chúc mừng tới Sublime Text, nó vẫn là trình soạn thảo code được lựa chọn cho vị trí quán quân!

Bạn có đồng ý với lựa chọn của tác giả Craig không? Hãy để lại bình luận của bạn, và cho chúng tôi biết sản phẩm nào bạn muốn so sánh trong tương lai (không chỉ là các trình soạn thảo code đâu nhé!).

Về tác giả bài viết:

Lập trình viên CraigCraig Buckler là giám đốc của OptimalWorks, một công ty tư vấn về công nghệ có trụ sở tại Anh. Công ty chuyên tư vấn xây dựng những website có chất lượng cao, đúng chuẩn, dễ sử dụng, SEO hiệu quả và được phát triển trên những công nghệ tốt nhất. Craig đã phát triển web từ năm 1995 và là tác giả của hơn 1000 bài viết cho SitePoint, bạn có thể liên hệ với anh qua Twitter