//
you're reading...
Fun4Fi, Others

Lựa chọn editor cho lập trình viên

Để đơn giản hóa ngôn từ, trong bài viết này tôi sẽ sử dụng thuật ngữ editor để ám chỉ cả trình soạn thảo đơn giản (như Notepad) lẫn môi trường phát triển tích hợp IDE (như Visual Studio).

Trong giới lập trình viên, có một số chủ đề nhất định mà mỗi lần xuất hiện trên các diễn đàn hay blogs, chúng sẽ có xu hướng kích hoạt một cuộc tranh luận sôi nổi: Ruby hay Python, Java hay PHP, GNOME hay KDE, vim hay emacs

Những chủ đề so sánh công nghệ kiểu này có chung một đặc điểm: chúng mang tính cá nhân. Việc lựa chọn Ruby hay Python, Gnome hay KDE đều phụ thuộc phần lớn vào sở thích của lập trình viên – khó có thể nói công nghệ nào tốt hơn một cách hoàn toàn khách quan. So sánh Vim với Emacs chẳng khác nào so sánh Metallica với Megadeth.

Nói là vậy chứ tôi không thể hiểu nổi tại sao người ta có thể so Megadeth với Metallica 😛

Nếu coi việc lựa chọn editor như một vấn đề mang tính cá nhân thì tiêu chí lựa chọn quan trọng nhất là nó phải mang lại cho bạn cảm giác thoải mái và sự hiệu quả. Có những siêu cao thủ chỉ dùng Notepad để lập trình. Lại có những siêu sao khác phải cần đến những IDE rất cồng kềnh như IntelliJ IDEA. Họ đều có lý, nhưng những sự lựa chọn của họ sẽ không giúp bạn xác định được đâu mới là môi trường thích hợp nhất cho riêng mình. Cách duy nhất là hiểu mình muốn gì và thử qua những lựa chọn phổ biến.

IDE hay text editor?

Với số lượng lựa chọn không nhỏ, điều đầu tiên cần xác định là liệu bạn muốn một IDE hay một editor đơn giản. Không cần phải nhắc lại IDE mạnh đến thế nào với những tính năng như auto-completion, refactoring, auto-error-detection, code generation, GUI building …

Tuy nhiên để thực thi những tính năng này, IDE thường parse toàn bộ code base và liên tục re-parse khi ta edit một file trong code base. Việc làm này đòi hỏi CPU, ngốn RAM, và cả HDD space khi IDE có thói quen save lại công việc của nó sau khi kết thúc. Đối với một project nhỏ, những thủ tục này thường không đem lại cảm giác khó chịu cho lập trình viên, nhất là với phần cứng mạnh. Nhưng khi project lớn dần và trở nên lệ thuộc vào nhiều thư viện cũng như projects khác nhau, hoạt động của IDE luôn tỏ ra ì ạch và gây ra stress cho người sử dụng.

Đối với project nhỏ, ta không cần dùng đến IDE vì việc quản lý và sửa đổi đều nằm trong tầm quyển soát. Đối với project quá lớn, IDE lại không thể xử lý với tốc độ chấp nhận được. Đây là luận điểm chính của tôi giải thích tại sao tôi không mấy khi sử dụng IDE, trừ ở công ty cũ khi tôi dùng Visual Studio + Visual Assist X + cool color schemes để code C++.

Hơn nữa, tôi đề xuất không nên dùng IDE nếu bạn chưa quen với toolset của một ngôn ngữ mới. Có nhiều lập trình viên bị lệ thuộc vào IDE đến nỗi không thể compile một project java bằng javac và không biết tự viết ant build script. Theo tôi, bạn chỉ nên dùng IDE sau khi đã hiểu cơ bản nó đã giúp bạn thực hiện những thao tác gì.

Tuy nhiên, việc bạn có thích dùng IDE hay không vẫn là một vấn đề mang tính cá nhân. Là một người sử dụng Arch Linux, tôi đã quen với những tool nhỏ gọn và không cảm thấy thoải mái đối với IDEs, nhưng tôi có thể hình dung một designer quen dùng các sản phẩm của Adobe khi chuyển qua lập trình sẽ không lấy gì làm khó chịu với giao diện tích hợp quen thuộc của các IDE như Eclipse, NetBeans, IntelliJ IDEA, cũng như sự ì ạch thường trực của chúng. Đó là sở thích và cá tính của mỗi người, nó không trực tiếp thể hiện khả năng. Quan trọng là bạn làm việc hiệu quả với môi trường mình lựa chọn.

Có khi nào editor hiệu quả hơn IDE?

Ngay cả khi đã hoàn toàn thỏa mãn với một IDE nào đó và không hề phàn nàn về tốc độ của nó, lập trình viên vẫn nên tìm kiếm và lựa chọn một editor chuyên dụng. Editor này sẽ được sử dụng để edit các file text config đơn giản, để code các ngôn ngữ chưa được IDE hỗ trợ, hoặc để thao tác sửa đổi nhanh mà không muốn tốn thời gian mở và đóng IDE.

Tôi quan sát rất nhiều lập trình viên tìm đến Notepad khi cần làm những công việc trên. Trên thực tế, có lẽ họ sẽ hiệu quả hơn với một editor mạnh hơn Notepad trong khi vẫn nhanh nhẹn và nhỏ gọn gần bằng công cụ soạn thảo không thể đơn giản hơn này.

Cá nhân tôi dùng Vim trong mọi trường hợp, từ những đoạn script nhỏ lẻ viết xong xóa đi cho đến những project lớn hơn. Đôi khi cần code trên Windows, trong quá khứ tôi vẫn thường dùng SciTE hoặc Visual Studio, nhưng tôi đang chuyển sang giải pháp Textadept hoặc Geany.

Các công cụ mà tôi lựa chọn có một số điểm chung: nhanh, nhỏ gọn, hỗ trợ auto-indent, hỗ trợ syntax highlight, hỗ trợ thay đổi color scheme (vì tôi không thể làm việc lâu với nền trắng), hỗ trợ code snippets, và nên có khả năng tùy biến thông qua một scripting language.

Tuy Vim rất mạnh nhưng có thể hiểu được tại sao số người ghét nó không ít hơn số fan hâm mộ của nó là mấy. Dù rất thích Vim, tôi vẫn phải thừa nhận việc nó sử dụng một scripting language tự chế – gọi là Vim script – đã gây khó khăn cho người sử dụng trong việc tùy biến. Họ buộc phải học thêm một ngôn ngữ mới. Đó là chưa kể phong cách edit bằng mode của Vim rất mất thời gian để làm quen.

Có lẽ thừa kế bài học của Vim, một số editor mới ra đời đã sử dụng một ngôn ngữ script phổ biến nào đó như giao diện lập trình tùy biến. JEdit sử dụng một ngôn ngữ tựa Java. Textadept dùng Lua.

Trước khi làm quen với Vim, tôi không tin rằng có chuyện editor hiệu quả hơn IDE. Nhưng thực tế đã chứng minh tôi không những hiệu quả hơn mà còn thoải mái tinh thần hơn khi làm việc trên Vim + Shell, so với Visual Studio + Visual Assist X, hay NetBeans, hay Eclipse. Và như tôi đã nói, dù sao bạn cũng nên đầu tư tìm hiểu editor vì có những thao tác nhất định mà IDE tỏ ra không phù hợp.

Nếu bạn là một fan của Notepad++ hay UltraEdit thì cũng được thôi, nhưng hãy dành thời gian tìm hiểu các editor khác trước khi đưa ra kết luận cuối cùng.

Thay lời kết

Có thể coi editor là công cụ gần gũi nhất với lập trình viên. Nếu bạn vẫn luôn dùng một tool nhất định mà chưa từng bỏ thời gian để thử qua các IDEs và power editors khác thì đây chính là lúc nên làm việc đó. Sự đầu tư vào editor ảnh hưởng trực tiếp đến hiệu quả công việc của bạn. Một editor không phù hợp có thể làm gia tăng khả năng stress, gây đau đầu, và làm giảm tinh thần làm việc. Thỉnh thoảng thay đổi editor cũng có thể sẽ đem lại cho bạn cảm giác mới lạ và hấp dẫn hơn khi lập trình.

~Sưu Tầm~

Advertisements

Discussion

2 thoughts on “Lựa chọn editor cho lập trình viên

  1. Tôi không phải là dân máy tính chính thống nhưng tôi lại có hứng thú với một số ngôn ngữ như TeX và Lua. Núp dưới cái bóng khổng lồ của Vim một thời gian khá dài nhưng chưa lúc nào tôi có được cơ hội ngồi lại để hoàn tất nốt quyển Vim manual, có lẽ vì nó quá dài mà tồi thì lại không có đủ thời gian để đọc hết.

    Vô tình tìm được textadapt, nghe giới thiệu cũng thấy khá hay, nên dùng thử, tôi thấy nó vừa đơn giản và uyển chuyển, khả năng tùy biến cao, xử lý text rất nhanh. Tính uyển chuyển của nó có bắt nguồn từ các Lua script. Tính năng mà tôi thích nhất là : snippets và rectangle selection. Tuy nhiên editor này hỗ trợ tiếng việt trên linux tốt hơn trên Windows. Tôi dùng archlinux nên việc gõ tiếng Việt không còn trở ngại nữa.

    Theo quan điểm riêng của mình, tôi nghĩ việc lựa chọn một editor phụ thuộc vào khả năng đáp ứng của nó vào công việc của bạn. Sử dụng đúng công cụ và một lựa chọn thông minh, tuy nhiên không nên dùng búa tạ để đóng một cái đinh mén. Nếu bạn đang dùng một editor nào đó thì hãy tìm mọi cách lái nó theo cách riêng của bạn, bạn quen dùng nó và có khả năng phát triển nó trở thành một công cụ sắc bén.

    Posted by vntexvn | 16.12.2010, 14:09

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: