1 điểm bởi GN⁺ 2024-11-02 | 1 bình luận | Chia sẻ qua WhatsApp
  • Một chút hoài niệm: điểm khởi đầu

    • Năm 2003, một lập trình viên tên Don Ho cảm thấy các trình soạn thảo văn bản hiện có còn thiếu sót nên đã bắt đầu phát triển Notepad++
    • Được viết bằng C++ dựa trên thành phần soạn thảo mã nguồn miễn phí Scintilla nên có hiệu năng rất cao
  • Lý do chúng ta yêu thích: những tính năng đặc biệt

    • Notepad++ mang đến các tính năng vừa đơn giản vừa mạnh mẽ, đáp ứng nhiều nhóm người dùng khác nhau
    • Cung cấp các tính năng mạnh như tự động lưu, so sánh tệp và hỗ trợ nhiều ngôn ngữ lập trình
    • Có thể thực hiện nhiều tác vụ như đọc JSON, kết nối FTP thông qua vô số plugin
  • Những thăng trầm: kịch tính và chiến thắng

    • Năm 2019, dự án phát hành phiên bản "Free Uyghur" để bày tỏ lập trường về các vấn đề xã hội và chính trị
    • Dù cạnh tranh với các IDE hiện đại như Visual Studio Code, phần mềm vẫn tiếp tục được yêu mến
  • Bí quyết: tình yêu của cộng đồng và tinh thần mã nguồn mở

    • Với tư cách là phần mềm mã nguồn mở, nhiều lập trình viên đã tham gia cải tiến và phát triển Notepad++
    • Phần mềm được công nhận trong thế giới phần mềm khi giành nhiều giải thưởng như SourceForge Community Choice Awards
  • Hướng tới tương lai: bước tiếp theo của Notepad++

    • Có nhiều khả năng phát triển như bổ sung tính năng AI hoặc tích hợp với các công nghệ tương lai
    • Phần mềm sẽ tiếp tục được yêu mến trong tương lai khi vẫn giữ được bản chất là một trình soạn thảo nhanh và hiệu quả

Tổng hợp của GN⁺

  • Notepad++ trong suốt 21 năm qua đã trở thành công cụ thiết yếu đối với lập trình viên và người viết
  • Nhờ đóng góp của cộng đồng mã nguồn mở, phần mềm liên tục phát triển và cải thiện trải nghiệm người dùng bằng nhiều tính năng và plugin
  • Việc bày tỏ lập trường về các vấn đề xã hội giúp nó trở thành một nền tảng vượt lên trên một phần mềm đơn thuần
  • Ngay cả khi cạnh tranh với các IDE hiện đại như Visual Studio Code, phần mềm vẫn được yêu thích nhờ sự đơn giản và hiệu quả
  • Các sản phẩm có tính năng tương tự được khuyến nghị gồm Sublime Text, Atom, v.v.

1 bình luận

 
GN⁺ 2024-11-02
Ý kiến trên Hacker News
  • Tôi đã thử đủ các trình soạn thảo và IDE khác, nhưng vẫn dùng Notepad++. Mọi người đều ngạc nhiên khi tôi nói “IDE” của mình là bản cài mặc định của Notepad++, dòng lệnh cho Git/Grep (Console2 hoặc Git Bash), File Explorer và Everything [0] để duyệt tệp, Beyond Compare [1] để so sánh/hợp nhất trực quan, WinSCP/PuTTY cho SFTP/SSH, và Synergy [2] để chia sẻ bàn phím/chuột giữa Windows và MacOS
    Cá nhân tôi thích dùng đồng thời cả 3 hệ điều hành lớn, và khi tách từng mối quan tâm ra theo ứng dụng và giao diện tương ứng, tôi thấy có lợi vì nó tạo ra một bản đồ địa hình trong đầu về “cái gì nằm ở đâu” và “dùng công cụ nào cho mục đích nào”. Tôi không cần bị ràng buộc vào luồng làm việc do IDE định sẵn hay các công cụ ẩn sau một mẫu UI cụ thể
    Nói vậy không có nghĩa UI lúc nào cũng tệ; với nhiều tác vụ, tôi sẵn sàng dùng Handbrake hơn là ffmpeg trên dòng lệnh. Dù sao đi nữa, tôi rất kính trọng Notepad++
    [0] https://www.voidtools.com
    [1] https://www.scootersoftware.com
    [2] https://symless.com/synergy

    • Có lẽ tôi là một trong những người cuối cùng vẫn còn dùng WSL1. Có vẻ mọi người chuyển sang WSL2 vì 2 lớn hơn 1, nhưng thực ra hai thứ này hoàn toàn khác nhau
      WSL1 cho phép để tệp ở phía Windows, giữ IDE (PHPStorm) chạy nhanh mà không chịu overhead hệ thống tệp Linux↔Windows, đồng thời vẫn dùng được các công cụ dòng lệnh Linux. Có một chút overhead, nhưng vẫn tốt hơn là phải trả chi phí đó cho từng lần gõ phím trong IDE
      Điều tôi thật sự muốn là một terminal/emulator thật tốt có thể chạy cùng các công cụ trên cả Windows lẫn Linux mà không có overhead. Tôi vẫn không hiểu vì sao mọi thứ vẫn chậm và lộc cộc như vậy
    • Nếu chưa thử dùng Total Commander để duyệt tệp thì tôi khuyên nên thử. Giống Notepad++, đây là công cụ có thể liệt kê dài dòng các lý do vì sao nó làm tốt công việc của mình, và cũng là một ví dụ hay cho thấy phần mềm desktop Windows được làm tốt có thể trông như thế nào
    • Nỗi sợ dòng lệnh của tôi là pdftkImageMagick. Cả hai đều là những thành tựu tuyệt vời, nhưng vì không dùng thường xuyên nên chúng bị “page out” khỏi đầu tôi
      Vì vậy cuối cùng tôi dùng các dịch vụ web mà bên trong có lẽ chỉ đặt một GUI lên trên pdftk và ImageMagick. Tôi cũng là người dùng Notepad++, chúc mừng sinh nhật 21 năm, đã đến lúc mua thêm cho họ một cốc bia
    • Tôi hoàn toàn tôn trọng cách tiếp cận đó. Trường hợp của tôi gần như là Emacs ở trạng thái mặc định, và dùng Magit cho các thao tác Git
      Để duyệt mã và tìm định nghĩa, tôi dùng find/xargs/grep; còn quản lý tệp thì xử lý trong shell bằng các tiện ích chuẩn như ls, cp, mv
    • Cấu hình của tôi cũng rất giống, nhưng tôi luân phiên dùng Notepad++ và Visual Studio Code. Tôi vẫn dùng git-gui vì dễ chọn commit theo chunk/dòng
      Dùng Synergy cùng PBP (Picture-by-Picture) trên màn hình ultrawide thì tuyệt vời. Nửa màn hình là Mac, nửa còn lại là Windows, và chuột cùng bàn phím vượt qua “khe” ở giữa màn hình một cách tự nhiên. Sau khi chuyển từ cấu hình đặt hai màn hình cạnh nhau sang ultrawide, tôi hài lòng hơn nhiều
  • Thành thật mà nói, tôi không thật sự viết thứ gì bằng Notepad++. Tôi dùng nó để xem tệp lớn, tìm kiếm/thay thế phức tạp, regex, định dạng lại tệp, thao tác dữ liệu, v.v.
    Tôi dùng vài lần mỗi tuần, nhưng không dùng để viết, và cũng không xem nó là đối thủ của các công cụ như VS Code

    • Tôi cũng vậy, thường mở nó đầu tiên để thao tác các tệp văn bản lớn. Nó cũng rất tiện làm scratchpad thường trực để dán tạm thứ gì đó, vì dễ mở tab mới và giữ các tệp tạm chưa lưu cho đến khi mình đóng chúng
      Khi mở lại, những ghi chép linh tinh đang dùng trước khi dọn dẹp vẫn còn khá nhiều
    • Nhìn tên sản phẩm thì có vẻ mục tiêu ban đầu là thay thế notepad.exe đi kèm Windows. Khoảng năm 2005, notepad.exe có một vấn đề vô lý nào đó khiến tôi phải tìm phần mềm thay thế; có lẽ là giới hạn kích thước tệp rất thấp
      Một phần mềm khác từ thời đó mà tôi vẫn dùng đến giờ là SumatraPDF
    • Công dụng chính là mở tệp thật nhanh và dùng làm scratchpad để đổ dữ liệu tạm. Tôi thích việc khi đóng cửa sổ, nó không phiền phức hỏi “Bạn có muốn lưu tệp này không?”
      Không, tôi sẽ không lưu, cứ để Windows hoặc khởi động lại là được. Khi quay lại, tôi muốn scratch buffer của mình vẫn còn nguyên trong Notepad++
    • Khó có thể thay thế VS Code trong lập trình thực tế. Dù vậy, nếu hỗ trợ LSP, hệ thống tệp từ xa, terminal, v.v. tốt hơn, có lẽ tôi đã dùng nó nhiều hơn rất nhiều, chứ không chỉ để xem tệp lớn hay chỉnh sửa nhanh
      Hiện tại thì tôi dùng thường xuyên, nhưng không phải để viết code
    • Tôi cũng vậy. Đặc biệt vào thời còn Atom, Notepad++ luôn là “trình soạn thảo phụ” cho các tác vụ nặng
      Giờ nhìn lại, chính tôi cũng tự hỏi vì sao hồi đó không làm tất cả bằng Notepad++
  • Điều tôi thực sự thích ở phần mềm là về lý thuyết nó có thể tồn tại mãi mãi. Dù bit rot là có thật, chỉ cần một mức bảo trì nào đó và một cộng đồng nhỏ thì về cơ bản nó có thể liên tục được hồi sinh[1]
    Lĩnh vực này vẫn còn trẻ, nên tôi mong được thấy các phần mềm bền bỉ ngày càng già đi mà vẫn hoạt động tốt. Khi đó việc học để dùng thành thạo chúng trở nên đáng giá. C đã bước sang tuổi 50, nhưng có vẻ sẽ chẳng biến mất đi đâu cả
    Đó cũng là lý do phần mềm hiện đại luôn phải online và bị buộc vào một dịch vụ đám mây cụ thể khiến người ta khổ sở. Những thứ như vậy có xu hướng chết đi, và nếu một công ty thất thường nào đó rút phích cắm trong tương lai thì những gì đã học sẽ thành lãng phí
    Tôi muốn tạo ra những thứ bền lâu, dù là nhà thờ lớn hay khu chợ, và cũng muốn dùng những thứ được tạo ra như vậy
    [1] Tất nhiên vĩnh viễn là một khoảng thời gian dài. Một ngày nào đó nếu bàn phím biến mất, phần mềm lấy bàn phím làm trung tâm có thể trở nên lỗi thời. Màn hình, hay cấu trúc phần cứng điện toán như chúng ta biết hiện nay, cũng có thể như vậy. Nhưng những thay đổi như thế nhìn chung diễn ra chậm, và ta có thời gian để thích nghi

    • Có thể xem phần mềm là tồn tại mãi mãi khi tác giả muốn như vậy. Trước thời đại dịch vụ đám mây cũng có rất nhiều phần mềm độc quyền đã chết; chúng chết vì không ai muốn hoặc không ai dám bảo tồn mã nguồn, giống như các công ty SaaS ngày nay rút phích cắm vậy
      Nếu muốn phần mềm thật sự sống lâu, như lịch sử đã cho thấy, cách tốt nhất là công khai mã dưới dạng phần mềm tự do nguồn mở
    • Một trong những lý do Emacs tốt là vì ta có thể khá chắc rằng nó sẽ không biến mất trong tương lai gần. GNU Emacs ra mắt lần đầu gần 40 năm trước và đến nay vẫn được dùng, được bảo trì tích cực
      Đầu tư thời gian học một công cụ tốt có thể vượt qua thử thách của thời gian là điều nên làm
    • Tôi thích việc mình là lập trình viên C. Có lẽ tôi sẽ còn tiếp tục dùng nó cho đến khi nghỉ hưu, chỉ mong là khi đó sẽ dùng lẫn với Rust thay vì C++
    • Đây là góc nhìn hơi thiển cận, nhưng nhờ “sự lười biếng” của doanh nghiệp mà chúng ta đã được hưởng khả năng tương thích ngược trong thời gian dài. x86 đóng góp rất lớn vào chuyện này, và tôi tò mò không biết mã trong tương lai sẽ còn hưởng lợi từ điều đó đến mức nào
      Ngược lại, phần lớn mã mới được bán ra không được thiết kế để trường thọ. Mọi thứ đều có vòng đời hỗ trợ, rồi cùng một thứ lại được bán lại dưới bảng hiệu mới. Động lực để tạo ra đồ bền lâu không khớp. Nếu mỗi mùa lại có một đoàn diễn mới dựng lều, sẽ không thể có một nhà hát opera cổ tồn tại lâu đời
      Dù vậy, C quá lớn nên việc hỗ trợ phần cứng tương lai chắc sẽ không bị cắt đứt hoàn toàn
  • Gần đây tôi có xem vài file log, và khá ngạc nhiên khi Visual Studio Code bản mới nhất cho cảm giác mượt hơn Notepad++ với những file văn bản cũng không quá lớn, khoảng 20–50MB
    Dù vậy, nó vẫn là một hộp công cụ tốt cho các thao tác văn bản phổ biến như sắp xếp dòng, loại bỏ trùng lặp, đổi chữ hoa/thường, xử lý ký tự khoảng trắng. Tôi vẫn dùng hằng ngày cho những việc tương tự, file TODO và chỉnh sửa cấu hình
    Khi tìm một lựa chọn thay thế đa nền tảng hơn, tôi để ý đến CudaText(https://cudatext.github.io/), nhưng nó chưa đủ thuyết phục để tôi dùng thứ khác trên máy Windows, hay rời Visual Studio Code hoặc Fleet trên Linux/Mac

    • Nếu muốn một lựa chọn thay thế đa nền tảng hơn thì có vim. Đúng là đường cong học tập khá dốc, nhưng theo cá nhân tôi phần thưởng cuối cùng là rất xứng đáng
      Dù vậy Notepad++ sẽ luôn còn một chỗ trong tim tôi. Tôi đã dùng nó rất lâu thời còn dùng Windows, nó là một trình soạn thảo vững chắc và tốt hơn NOTEPAD.EXE rất nhiều. Đặc biệt 21 năm trước môi trường rất khác, và trình soạn thảo cạnh tranh khi đó có lẽ là Dev-C++
    • Một phiếu cho CudaText. Khi chuyển sang Linux tôi nhớ Np++, và sau khi thử nhiều phương án thay thế để tránh Wine nếu có thể, khoảng một năm sau tôi mới ổn định với CudaText
      Hiệu năng với file lớn rất tuyệt; ai biết Universal Viewer cho mục đích này thì đó là sản phẩm của cùng một lập trình viên. Nó đơn giản và hiệu quả như Np++, nhưng có thêm một chút tính năng nâng cao, đồng thời cũng tùy biến tốt bằng tùy chọn và plugin
    • Tôi thì cảm thấy ngược lại. VS giật lag đến mức không dùng nổi. Không biết nó có đang cố phân tích gì đó trong file không
      NPP mở file không vấn đề gì và thực sự có thể làm việc được
    • Tôi cứ nghe nói Notepad++ tốt với file lớn, nhưng file lớn theo tiêu chuẩn của tôi là 1–2GB, và cỡ đó thì np++ chết hẳn. Với những file như vậy tôi dùng EditPad Lite
  • Notepad++ là công cụ hằng ngày của tôi để ghi chú, TODO, dán nội dung, dùng tab mới như một buffer. Trên PC làm việc, đó là nơi đáng tin cậy nhất, và lúc nào tôi cũng thấy nó ở đúng trạng thái lần cuối để lại
    Notepad++ và WinMerge là hai công cụ tôi thích nhất. Tích hợp WinMerge với Visual Studio 2022 khiến cửa sổ so sánh hiện ra dưới dạng cửa sổ WinMerge bên ngoài VS, và có thể mở nhiều phiên bản, cảm giác dễ thở hơn hẳn. Tôi còn chưa muốn bắt đầu nói về những điểm khó chịu của VS; rất nhiều tính năng UI/UX đơn giản là tệ. Đáng tiếc là trước mắt vẫn phải dùng nó

    • Việc nó tự động lưu các tab mới chứa suy nghĩ, TODO, mẩu log thật sự tiện. Khởi động lại xong chúng lại hiện ra nguyên vẹn dưới dạng tab mới chưa lưu, cảm giác như chưa từng đóng Notepad++
      Chi phí duy trì bằng 0, và nếu muốn vứt đi thì chỉ cần đóng tab rồi bấm Không
    • Tôi dùng Sublime Text cho mục đích đó. Khi dán và chỉnh thứ gì đó để chạy, ví dụ các file như docker-compose.yml, tôi dùng nó thường xuyên, đồng thời lưu ghi chú công việc và suy nghĩ trong phiên vào buffer
      Khi xong việc hoặc rời chỗ lâu, tôi chuyển sang Obsidian. Tôi cũng thích việc có thể dùng lệnh terminal tích hợp subl để chỉnh sửa nhanh, chẳng hạn khi thêm gì đó vào ~/.bashrc. Dùng được trên Windows, Mac, Linux, và là chương trình mở nhanh nhất trên mọi máy tôi từng dùng. Tôi chưa có giấy phép nhưng có lẽ nên mua một cái. Họ đang khá rộng lượng, còn tôi thì tự an ủi rằng mình là một nhà nghiên cứu học thuật nghèo
  • Thật sự rất thích Notepad++. Hồi ở chỗ làm được cấp PC mới, thường là Windows và bộ phận IT khóa chặt đến mức không cài được thứ gì hữu ích, nhưng vẫn cho phép vài thứ như trình duyệt hay Notepad++; trong những ngày tháng kinh khủng đó, nó đã giúp ích rất nhiều
    Nó đã cứu mình nhiều lần ở một hai công ty tư vấn lớn luôn tự nhận là đi đầu về công nghệ

    • IT bên mình cho phép chạy vài thứ với quyền quản trị, và một trong số đó là n++. Mà n++ lại có menu Run, nên có thể mở bất kỳ tiến trình con nào. Hoàn hảo
    • Chúng ta cũng cần một nơi kiểu clubhouse. Bên mình thậm chí không chạy được cả các file .exe nằm trong whitelist, nhưng có vẻ một đồng nghiệp dũng cảm sẽ không được lịch sử ghi tên đã đấu tranh để chúng mình được dùng n++, và mình biết ơn người đó
      Giá mà có một nơi để chia sẻ các cách lách
    • Mình cũng làm trong một môi trường bị khóa tương tự, gần đây họ còn chặn cả việc tải hoặc cập nhật N++, nên mình đang dùng một cách lách riêng
  • Điều này có nghĩa là Scintilla, component trình soạn thảo dùng trong Notepad++, Geany, v.v., đã khoảng 25 tuổi. Nó từng là nền tảng giúp thoát khỏi các editor độc quyền như Visual SlickEdit, và mình đã tận dụng rất tốt trong nhiều năm. Vui vì nó vẫn còn sống

    • Trước đây mình cũng dùng SciTE và Notepad++, chắc khoảng 20 năm trước. Đó là lần đầu mình được nếm trải một trình soạn thảo văn bản tương đối nhẹ và dùng được, có nhiều tính năng hơn Notepad thường
      Sau đó mình không còn dùng Windows làm hệ điều hành chính và đã gắn bó với Vim, nhưng vẫn luôn cảm thấy mang ơn SciTE và Notepad++ vì đã mở mắt cho mình
    • Dạo này mình chủ yếu dùng JetBrains, nhưng khi dựng vài máy chủ Windows, mình vẫn cài NPP lên đó. Rồi nhớ tới Scintilla; khoảng 22 năm trước mình từng tự xây một IDE siêu nhanh trên nền nó
      Nhờ bí kíp đó mà mình nhận được rất nhiều việc
  • Đứa con 17 tuổi đang học lớp cuối cấp ba nói rằng điều tệ nhất trên laptop do trường cấp là không có Notepad++. Mình suýt rơi nước mắt, và bảng kỹ năng hacker của ông bố được cộng thêm một thành tựu
    Mình đã nói là có bản portable, và cuối tuần này sẽ đưa vào máy qua upload lên Gdrive. Không gì có thể ngăn một editor tốt hơn xuất hiện trên máy của trường

    • Những công cụ miễn phí đơn giản như Notepad++, 7-Zip, VLC nên được cài sẵn trên các thiết bị kiểu trường học hoặc công sở này. Nhất là nếu đó là thiết bị có thể chạy file thực thi tùy ý
      Nếu người dùng không chuyên không phải tự giải quyết các vấn đề như vậy, việc chạy/cài đặt mã độc ngẫu nhiên sẽ giảm mạnh
  • Đã dùng rất lâu nhưng chưa trả một xu nào. Vừa quyên góp 21 euro, coi như mỗi năm 1 euro
    Nếu ai khác cũng có lòng, mình giúp tiết kiệm thời gian tìm kiếm đây: https://notepad-plus-plus.org/donate/
    Mình không liên quan đến tác giả, và rất kính trọng những người kiểu cũ không biến đồ miễn phí thành trả phí

  • Chúc mừng Notepad++ thì đúng, nhưng bài này đọc với mình giống spam AI

    • Đồng ý. Tác giả là “Michael” không có họ, không có tiểu sử, cũng không có mô tả kỹ thuật về Notepad++ hay bình luận nào từ Don Ho
    • Rất đồng ý. Có những cách diễn đạt nhất định mà con người gần như không dùng, nhưng AI thì vồ lấy ngay
      Tuy vậy AI khiến mình nhớ tới câu nói rằng hiện tại là thời điểm nó ngu ngốc nhất trong đời chúng ta. Rồi sẽ có lúc con người khó phân biệt được, hoặc “bản năng” không còn báo động nữa