[. This is perhaps only peripherally connected to the perl5-porters
charter, but I feel it can be instructive to others. If you feel
otherwise, feel free not to CC: back to the list. ]
I am in the beginning stages of a possible problem with the Curses
module I maintain. Likely, in a few weeks, the ncurses development
team will finally release ncurses v2.0. This version of the curses
API will have just about everything: major compliance to the XPG4
Curses standard (XSI curses), support for all the 257 System V Curses
calls, better scrolling and hardware support, SysV panels and menus
library emulation, mouse support (!), and a host of other neato
features.
In addition, ncurses v2 will have GNU configure support, making it
(potentially) compilable on most platforms. Keith Bostic has
officially declared BSD curses dead, and ncurses the successor.
Basically, once ncurses v2 comes out, there will be very little reason
to use *any* other curses out there.
Right now, we're stuck with a dozen different incompatible dialects of
the curses API. There are perhaps only a dozen functions that exist
across all the versions, making Curses scripts a *major* pain to write
for portability, and even among those functions, there are sometimes
quirks.
So the problem becomes, what do I support? If I were to declare
support solely for ncurses v2, I'd probably be alienating those with
weird systems (sorry Andy :-), at least until the ncurses development
team provides support. There would also be a fairly extensive
"prep time", requiring the install of ncurses v2 and possibly the
accompanying terminfo database.
On the other hand, my life would be immensely simplified (always a
good selling point :-) and people would be able to write non-trivial
Curses scripts that would run on any machine supported by Curses.
I'm mostly convinced that "forcing" people not to use their system's
curses is a Good Thing. But I don't particularly want to support
two versions of the Curses module, for all the obvious reasons.
So, finally I get to the reason for this long, boring missive: What do
you think would be the Right Thing to do? Try to continue support the
old, painful curses, or force people to use ncurses for their own
good? The Curses module is still in alpha, so I have an excuse to
change everything if I want (ah, the benefits of never going into beta
:-), but I would like my module to be useful to as many as possible.
I feel I'm too close to this issue to form an objective opinion, so
I'd really like to hear others.
William
charter, but I feel it can be instructive to others. If you feel
otherwise, feel free not to CC: back to the list. ]
I am in the beginning stages of a possible problem with the Curses
module I maintain. Likely, in a few weeks, the ncurses development
team will finally release ncurses v2.0. This version of the curses
API will have just about everything: major compliance to the XPG4
Curses standard (XSI curses), support for all the 257 System V Curses
calls, better scrolling and hardware support, SysV panels and menus
library emulation, mouse support (!), and a host of other neato
features.
In addition, ncurses v2 will have GNU configure support, making it
(potentially) compilable on most platforms. Keith Bostic has
officially declared BSD curses dead, and ncurses the successor.
Basically, once ncurses v2 comes out, there will be very little reason
to use *any* other curses out there.
Right now, we're stuck with a dozen different incompatible dialects of
the curses API. There are perhaps only a dozen functions that exist
across all the versions, making Curses scripts a *major* pain to write
for portability, and even among those functions, there are sometimes
quirks.
So the problem becomes, what do I support? If I were to declare
support solely for ncurses v2, I'd probably be alienating those with
weird systems (sorry Andy :-), at least until the ncurses development
team provides support. There would also be a fairly extensive
"prep time", requiring the install of ncurses v2 and possibly the
accompanying terminfo database.
On the other hand, my life would be immensely simplified (always a
good selling point :-) and people would be able to write non-trivial
Curses scripts that would run on any machine supported by Curses.
I'm mostly convinced that "forcing" people not to use their system's
curses is a Good Thing. But I don't particularly want to support
two versions of the Curses module, for all the obvious reasons.
So, finally I get to the reason for this long, boring missive: What do
you think would be the Right Thing to do? Try to continue support the
old, painful curses, or force people to use ncurses for their own
good? The Curses module is still in alpha, so I have an excuse to
change everything if I want (ah, the benefits of never going into beta
:-), but I would like my module to be useful to as many as possible.
I feel I'm too close to this issue to form an objective opinion, so
I'd really like to hear others.
William