[no subject]

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Moving code from one place to another is unlikely to change
any of the numbers X, Y, or Z (or if it does, that is just
because more people become aware of the code, in which case
the same effect could be obtained by advertising it better).

The only way that it could be better maintained after a move
is if some of the type-Z people started maintaining it, as
they would then see this as a part of their job of keeping
Allegro up to scratch. But this is hardly fair to these
developers, as it is adding more code to their pile of things
that have to be maintained and documented and ported and 
supported. If they wanted to spend time on network stuff,
they could already do that without needing to move the code
into Allegro, so really, I think this solution is just taking
advantage of their dedication to making Allegro good, by
piling on more work to an already huge pile of stuff that
they are taking care of.

IMHO a fairer solution, if there aren't enough people in Y,
would be for a few of the X's to move themselves into
group Y. But moving the code into Allegro has nothing to
do with X or Y, and just shifts the problem onto the Z's, 
who I think have more important things to keep themselves
occupied with...

> Yes I know lots of people will disagree with me, but the fact 
> is, if DOS isn't dead now, it will be by the time Allegro 
> 5/6/7 comes out, when Windows YQ comes out.

Good timing! As it happens, a guy called Martin Slater, who 
works with me here at Climax and is currently the lead
programmer on a team porting one of our PS2 titles across
to Gamecube, just came up to talk to me about Allegro about
5 mins before this email arrived. Someone just gave him
a crappy old laptop (386, 4 meg, 40 meg HD), which he is
planning on using as a debug monitor (dump data to it over
the serial link, graph this on a 640x480x256 display).
The reason he came to talk to me about this is that he's
using DOS Allegro for it...

Yes, this is a minority use, and he could do it fine with
an older version of Allegro. But there still are lots of
people who are doing serious work with crap hardware,
especially in the scientific research community, who
(perhaps surprisingly) are often years behind hobbyist
game coders in terms of computing power. I've personally
spoken to dozens of people who are doing medical imaging,
data collection, experiments into reaction times, etc,
using Allegro on what struck me as ridiculously obsolete
machines.

If the DOS port was causing problems, I could see an
argument for dropping it. But, what problems are these?
The port already exists, is very stable, and in fact
is at least as cleaner and elegant code than any of
the other platforms! Why remove something that is useful 
to some people, and costs so little maintenance effort?

You mention things like multithreading, dynamic loading,
etc, as benefits of losing the DOS port. I think it is
a really terrible idea to depend on that sort of feature,
because:

- These things can already be used by platform-specific
  drivers, just not as part of the API. I see no need 
  for them to be used anywhere else (remember Allegro
  is supposed to be a low-level lib - don't bloat it
  by adding complexity where the simple approach is
  perfectly good enough).

- These features are all major portability hassles. Using
  them in drivers is no problem, but depending on them
  will make the lib far harder to port to new platforms.

- They are all features which are lacking from embedded
  systems, consoles, stripped-down Linux kernels as
  used in many settop boxes, etc. These environments are
  all very similar to DOS in terms of features provided
  by the OS (ie. basically the OS does nothing :-)
  If you make Allegro use any features that make the
  DOS port hard to continue, you also pretty much rule
  out it ever being run on any of these small platforms.

Embedded systems are, to me, a very interesting thing for
Allegro to support (actually far more interesting than 
desktop computers, as these days if I was doing a game for 
a PC, I'd just use GL or D3D). It would be very feasible
(actually I think quite easy) to get Allegro running on 
PalmOS, and only a matter of time before you could put
it on a mobile phone too! (one of my colleagues already
has a phone that can run a Java Worms game in a JVM:
I reckon 2 years until all of Allegro can fit on there).
Please don't ruin that possibility just because you want
to add a few non-essential features to the Windows and
Linux versions!

Incidentally, embedded systems are also the main place
where Allegro has been used commercially, eg. for the
overlay graphics in pinball machines, for half a dozen
different products by Caldera (who funded the initial 
work on the Linux port as a direct result of this), and
by several other fairly large companies that I forget
right now).



-- 
Shawn

------_=_NextPart_001_01C178C5.04BE5F00
Content-Type: text/html;
	charset="iso-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>RE: [AD] Proposed changes for Allegro 5 (6?)</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Bob writes:</FONT>
<BR><FONT SIZE=2>&gt;&gt;&nbsp; - network: why not use something like libnet?</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Because libnet is not being updated :)</FONT>
</P>

<P><FONT SIZE=2>I think there is a flaw in your logic here :-)</FONT>
</P>

<P><FONT SIZE=2>- X amount of people want to have networking code</FONT>
<BR><FONT SIZE=2>- Y amouht of people want to spend time writing networking code</FONT>
<BR><FONT SIZE=2>- Z amount of people want to spend time working on Allegro</FONT>
<BR><FONT SIZE=2>- Networking code exists, but is not being updated</FONT>
</P>

<P><FONT SIZE=2>From that, I would conclude that the Y-type people are not </FONT>
<BR><FONT SIZE=2>currently sufficient to meet the needs of group X.</FONT>
</P>

<P><FONT SIZE=2>Moving code from one place to another is unlikely to change</FONT>
<BR><FONT SIZE=2>any of the numbers X, Y, or Z (or if it does, that is just</FONT>
<BR><FONT SIZE=2>because more people become aware of the code, in which case</FONT>
<BR><FONT SIZE=2>the same effect could be obtained by advertising it better).</FONT>
</P>

<P><FONT SIZE=2>The only way that it could be better maintained after a move</FONT>
<BR><FONT SIZE=2>is if some of the type-Z people started maintaining it, as</FONT>
<BR><FONT SIZE=2>they would then see this as a part of their job of keeping</FONT>
<BR><FONT SIZE=2>Allegro up to scratch. But this is hardly fair to these</FONT>
<BR><FONT SIZE=2>developers, as it is adding more code to their pile of things</FONT>
<BR><FONT SIZE=2>that have to be maintained and documented and ported and </FONT>
<BR><FONT SIZE=2>supported. If they wanted to spend time on network stuff,</FONT>
<BR><FONT SIZE=2>they could already do that without needing to move the code</FONT>
<BR><FONT SIZE=2>into Allegro, so really, I think this solution is just taking</FONT>
<BR><FONT SIZE=2>advantage of their dedication to making Allegro good, by</FONT>
<BR><FONT SIZE=2>piling on more work to an already huge pile of stuff that</FONT>
<BR><FONT SIZE=2>they are taking care of.</FONT>
</P>

<P><FONT SIZE=2>IMHO a fairer solution, if there aren't enough people in Y,</FONT>
<BR><FONT SIZE=2>would be for a few of the X's to move themselves into</FONT>
<BR><FONT SIZE=2>group Y. But moving the code into Allegro has nothing to</FONT>
<BR><FONT SIZE=2>do with X or Y, and just shifts the problem onto the Z's, </FONT>
<BR><FONT SIZE=2>who I think have more important things to keep themselves</FONT>
<BR><FONT SIZE=2>occupied with...</FONT>
</P>

<P><FONT SIZE=2>&gt; Yes I know lots of people will disagree with me, but the fact </FONT>
<BR><FONT SIZE=2>&gt; is, if DOS isn't dead now, it will be by the time Allegro </FONT>
<BR><FONT SIZE=2>&gt; 5/6/7 comes out, when Windows YQ comes out.</FONT>
</P>

<P><FONT SIZE=2>Good timing! As it happens, a guy called Martin Slater, who </FONT>
<BR><FONT SIZE=2>works with me here at Climax and is currently the lead</FONT>
<BR><FONT SIZE=2>programmer on a team porting one of our PS2 titles across</FONT>
<BR><FONT SIZE=2>to Gamecube, just came up to talk to me about Allegro about</FONT>
<BR><FONT SIZE=2>5 mins before this email arrived. Someone just gave him</FONT>
<BR><FONT SIZE=2>a crappy old laptop (386, 4 meg, 40 meg HD), which he is</FONT>
<BR><FONT SIZE=2>planning on using as a debug monitor (dump data to it over</FONT>
<BR><FONT SIZE=2>the serial link, graph this on a 640x480x256 display).</FONT>
<BR><FONT SIZE=2>The reason he came to talk to me about this is that he's</FONT>
<BR><FONT SIZE=2>using DOS Allegro for it...</FONT>
</P>

<P><FONT SIZE=2>Yes, this is a minority use, and he could do it fine with</FONT>
<BR><FONT SIZE=2>an older version of Allegro. But there still are lots of</FONT>
<BR><FONT SIZE=2>people who are doing serious work with crap hardware,</FONT>
<BR><FONT SIZE=2>especially in the scientific research community, who</FONT>
<BR><FONT SIZE=2>(perhaps surprisingly) are often years behind hobbyist</FONT>
<BR><FONT SIZE=2>game coders in terms of computing power. I've personally</FONT>
<BR><FONT SIZE=2>spoken to dozens of people who are doing medical imaging,</FONT>
<BR><FONT SIZE=2>data collection, experiments into reaction times, etc,</FONT>
<BR><FONT SIZE=2>using Allegro on what struck me as ridiculously obsolete</FONT>
<BR><FONT SIZE=2>machines.</FONT>
</P>

<P><FONT SIZE=2>If the DOS port was causing problems, I could see an</FONT>
<BR><FONT SIZE=2>argument for dropping it. But, what problems are these?</FONT>
<BR><FONT SIZE=2>The port already exists, is very stable, and in fact</FONT>
<BR><FONT SIZE=2>is at least as cleaner and elegant code than any of</FONT>
<BR><FONT SIZE=2>the other platforms! Why remove something that is useful </FONT>
<BR><FONT SIZE=2>to some people, and costs so little maintenance effort?</FONT>
</P>

<P><FONT SIZE=2>You mention things like multithreading, dynamic loading,</FONT>
<BR><FONT SIZE=2>etc, as benefits of losing the DOS port. I think it is</FONT>
<BR><FONT SIZE=2>a really terrible idea to depend on that sort of feature,</FONT>
<BR><FONT SIZE=2>because:</FONT>
</P>

<P><FONT SIZE=2>- These things can already be used by platform-specific</FONT>
<BR><FONT SIZE=2>&nbsp; drivers, just not as part of the API. I see no need </FONT>
<BR><FONT SIZE=2>&nbsp; for them to be used anywhere else (remember Allegro</FONT>
<BR><FONT SIZE=2>&nbsp; is supposed to be a low-level lib - don't bloat it</FONT>
<BR><FONT SIZE=2>&nbsp; by adding complexity where the simple approach is</FONT>
<BR><FONT SIZE=2>&nbsp; perfectly good enough).</FONT>
</P>

<P><FONT SIZE=2>- These features are all major portability hassles. Using</FONT>
<BR><FONT SIZE=2>&nbsp; them in drivers is no problem, but depending on them</FONT>
<BR><FONT SIZE=2>&nbsp; will make the lib far harder to port to new platforms.</FONT>
</P>

<P><FONT SIZE=2>- They are all features which are lacking from embedded</FONT>
<BR><FONT SIZE=2>&nbsp; systems, consoles, stripped-down Linux kernels as</FONT>
<BR><FONT SIZE=2>&nbsp; used in many settop boxes, etc. These environments are</FONT>
<BR><FONT SIZE=2>&nbsp; all very similar to DOS in terms of features provided</FONT>
<BR><FONT SIZE=2>&nbsp; by the OS (ie. basically the OS does nothing :-)</FONT>
<BR><FONT SIZE=2>&nbsp; If you make Allegro use any features that make the</FONT>
<BR><FONT SIZE=2>&nbsp; DOS port hard to continue, you also pretty much rule</FONT>
<BR><FONT SIZE=2>&nbsp; out it ever being run on any of these small platforms.</FONT>
</P>

<P><FONT SIZE=2>Embedded systems are, to me, a very interesting thing for</FONT>
<BR><FONT SIZE=2>Allegro to support (actually far more interesting than </FONT>
<BR><FONT SIZE=2>desktop computers, as these days if I was doing a game for </FONT>
<BR><FONT SIZE=2>a PC, I'd just use GL or D3D). It would be very feasible</FONT>
<BR><FONT SIZE=2>(actually I think quite easy) to get Allegro running on </FONT>
<BR><FONT SIZE=2>PalmOS, and only a matter of time before you could put</FONT>
<BR><FONT SIZE=2>it on a mobile phone too! (one of my colleagues already</FONT>
<BR><FONT SIZE=2>has a phone that can run a Java Worms game in a JVM:</FONT>
<BR><FONT SIZE=2>I reckon 2 years until all of Allegro can fit on there).</FONT>
<BR><FONT SIZE=2>Please don't ruin that possibility just because you want</FONT>
<BR><FONT SIZE=2>to add a few non-essential features to the Windows and</FONT>
<BR><FONT SIZE=2>Linux versions!</FONT>
</P>

<P><FONT SIZE=2>Incidentally, embedded systems are also the main place</FONT>
<BR><FONT SIZE=2>where Allegro has been used commercially, eg. for the</FONT>
<BR><FONT SIZE=2>overlay graphics in pinball machines, for half a dozen</FONT>
<BR><FONT SIZE=2>different products by Caldera (who funded the initial </FONT>
<BR><FONT SIZE=2>work on the Linux port as a direct result of this), and</FONT>
<BR><FONT SIZE=2>by several other fairly large companies that I forget</FONT>
<BR><FONT SIZE=2>right now).</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2>-- </FONT>
<BR><FONT SIZE=2>Shawn</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01C178C5.04BE5F00--



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/