NCurses được bắt nguồn từ Curses (chữ N là viết tắt của New). Curses là một thư viện lập trình giao diện terminal cho các hệ thống tựa Unix (và tất nhiên nó được viết bằng C). Ra đời bản đầu tiên vào năm 1993, hiện nay được phát triển bởi GNU, phiên bản gần đây nhất là NCurses 6.0 (8/8/2015).
NCurses được sử dụng để viết giao diện cho các công cụ trong Linux Kernel, nên có thể nói rằng bất kỳ một hệ thống nào chạy nhân Linux, NCurses đã được sử dụng ở đây.
Ngoài ra NCurses cũng được sử dụng trong các hệ UNIX, OpenBSD, FreeBSD và OSX, hoặc trong một số môi trường của Cygwin và MinGW.
Dưới đây là một ảnh chụp màn hình (mình tìm từ Wikipedia) của ứng dụng menuconfig trong Linux Kernel, được viết bằng NCurses.
Đây hoàn toàn là ý kiến chủ quan của mình :v, bởi mình thấy có hứng thú giao diện console theo một cách nào đó. Mặt khác nếu bạn là một System Developer, có khả năng bạn sẽ viết chương trình cho một server linux (thường sẽ không có môi trường desktop), thì NCurses sẽ là thứ bạn cần.
NCurses cũng có các bản language binding dành cho các ngôn ngũ lập trình khác, cung cấp các chức năng điều khiển và giao tiếp với Terminal:
C#: http://sourceforge.net/projects/curses-sharp/
Free Pascal: http://www.freepascal.org/packages/ncurses.html
Go: http://logik.li/projects/gocurses
PHP/ Zend Framework: http://php.net/manual/en/ref.ncurses.php / http://devzone.zend.com/173/using-ncurses-in-php/
Node.js: https://github.com/mscdex/node-ncurses/
Java: http://sourceforge.net/projects/javacurses/
Perl: https://metacpan.org/module/Curses
Lua: http://www.t2-project.org/packages/lua-curses.html
Python: https://docs.python.org/2/library/curses.html
Ruby: http://rubygems.org/gems/ncursesw
Lisp (ANSI Common Lisp): http://common-lisp.net/project/cl-ncurses/
Các hệ thống linux đã có sẵn Ncurses, nhưng đó sẽ là các Run-time libraries dành cho các ứng dụng. Để cài thư viện lập trình bạn có thể tìm trong hệ thống package của distribution mà bạn đang dùng. Ví dụ Ubuntu (14.04) dùng NCurses 5, package bạn cần là libncurses5-dev
Cách thứ 2 là bạn có thể download và cài đặt Ncurses 6.0 (hoặc bất cứ bản nào khác) từ link: https://www.gnu.org/software/ncurses/
Tại thư mục bạn giải nén NCurses 6, bạn gõ các lệnh sau để biên dịch từ mã nguồn và cài đặt:
./configure
make
make install
Việc đầu tiên bạn cần làm là hãy dành thời gian các tài liệu của NCurses đi kèm trong thư mục doc. Các tài liệu này được viết rất kỹ lưỡng và bao gồm nhiều ví dụ lập trình NCurses với C.
Ở các bài sau mình sẽ giới thiệu về lập trình NCurses sử dụng C++ API, nó dễ dàng hơn để lập trình ứng dụng hướng đối tượng, cũng như tài liệu NCurses C++ còn hạn hẹp. Mong là các bạn sẽ có thêm được một lựa chọn khi viết các ứng dụng, giao diện console hẳn là cũng có cái hay của nó.
Xem tiếp:
Lập trình giao diện console: NCurses Menu
Manh
December 13, 2015
C++