[comp.sys.amiga.tech] Programming MS-Windows vs. Amiga

papa@pollux.usc.edu (Marco Papa) (03/01/90)

In article <5219@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>MS Windows is widely
>regarded as an incredibly hard environment to program in 

I'll get flamed for this, but here it goes. I've done both.  I found MS-Windows
at least 10 times easier to program than the Amiga. And there are a variety 
of reasons for this, but four of them really come to mind:

1. avaliability of working dialog/gadget/widget editors. This cuts down
   user interface design and implementation by at least a factor of 10.
   [please don't tell me that power windows is a good interface editor.
   it's not.]

2. Resources. This cuts down compilation times by a factor of 2 at least on
   a large project (no reason to recompile, just re-link).

3. 99% of the MS-Windows calls use "internal" data structures that you
  cannot poke at directly. This is compared to the Amiga system in which
  practically everything is "public", even things that shouldn't be (remember
  all those IntuitionBase fields that were supposed to be private?).  This
  results in less run-time crashes than on the Amiga.  I think this was a real
  win for MS-Windows and I wish the Amiga was designed similarly.  We would
  have less "hacks" and more stable and crash-free programs.

>(I just saw a joke
>on the net: "What's bigger than Hello World in X?" "Hello World in Microsoft
>Windows!"). 

Well, Hello World in X with the Toolkit is about 10 lines of code and data.
Try to do the same with the Amiga and take a look at the result.  Note that
the hello World program must accept any font on the command line, any color
for background/foreground, center the text vertically and horizontally,
and continue to do so at any window resize.  I doubt that you could do it
in 10 lines (or even 30 lines for that matter) on the Amiga.  

Note. I am not trying to put down the Amiga.  BUT, there are positive and
negative things in everything.

-- Marco
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Xerox sues somebody for copying?" -- David Letterman
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

peter@sugar.hackercorp.com (Peter da Silva) (03/01/90)

> Well, Hello World in X with the Toolkit is about 10 lines of code and data.

And links to at least a 300K executable, just for the equivalent of the Amiga
console device. I'd call that cheating. How about doing it with Xlib?

> Try to do the same with the Amiga and take a look at the result.

Probably a couple of lines with Supercard, and that's not that big.
-- 
 _--_|\  Peter da Silva <peter@sugar.hackercorp.com>.
/      \
\_.--._/ I haven't lost my mind, it's backed up on tape somewhere!
      v  "Have you hugged your wolf today?" `-_-'

GORRIEDE@UREGINA1.BITNET (Dennis Robert Gorrie) (03/03/90)

I found your Comments on winows of much interest.  But, I stil find much to
complain about MS-windows, the 386 version in particular.  Most of the problems
still exist because Windows is still a mutated descendant of DOS.  One of the
most anoying is the fact that they must use their own EMS driver, because there
is still not standard way of multiple drivers entering the 80386 protected
mode.  This causes a lot of incompatibilites with the current batch of EMS
emulators that do backfills, romcaching, hi-mem driver loading, ect.

But, I do like this terminal package I just saw for windows.  As you change
the size of the terminal window, the font size is dynamicaly changed to fit
it, so you have a constant number of rows/cols visible.  It looked great.
What do you think?  Any chance of seeing this in ATalk IV?

+-----------------------------------------------------------------------+
|Dennis Gorrie                 'Chain-Saw Tag...                        |
|GORRIEDE AT UREGINA1.BITNET                    Try It, You'll Like It!'|
+-----------------------------------------------------------------------+

papa@pollux.usc.edu (Marco Papa) (03/03/90)

In article <5223@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>> Well, Hello World in X with the Toolkit is about 10 lines of code and data.
>
>And links to at least a 300K executable, just for the equivalent of the Amiga
>console device. I'd call that cheating. How about doing it with Xlib?

That's not cheating. That's using the tools available. NOBODY would use Xlib
for something like that TODAY.  People used Xlib for Hello World about 2 
years ago.  The point is how does it take to do hello world on a given machine
with a given environment.  The large size of X programs is due to the fact that
on UNIX nobody really care about program size because of virtual memory.  And
there are ongoing projects of making "sharable" things like the Intrinsics 
and Xlib. But you knew all that :-)

>> Try to do the same with the Amiga and take a look at the result.
>
>Probably a couple of lines with Supercard, and that's not that big.

Supercard? I never heard of it.  How many DO know about it? I don't think it
comes with my Amiga :-)

-- Marco
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Xerox sues somebody for copying?" -- David Letterman
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

lphillips@lpami.wimsey.bc.ca (Larry Phillips) (03/03/90)

In <5236@sugar.hackercorp.com>, peter@sugar.hackercorp.com (Peter da Silva) writes:
>In article <23204@usc.edu> papa@pollux.usc.edu (Marco Papa) writes:
>> The large size of X programs is due to the fact that
>> on UNIX nobody really care about program size because of virtual memory.
>
>So why aren't NeWS programs that big?
>
>> Supercard? I never heard of it.  How many DO know about it? I don't think it
>> comes with my Amiga :-)
>
>And Winterp doesn't (yet) come with X. Right now it has the same status as
>REXX. How big is Hello World in REXX?

Hear hear!

With or without a window? Can I use the command line to generate the window?
:-)

-larry

--
Gallium Arsenide is the technology of the future;
  always has been, always will be.
+-----------------------------------------------------------------------+ 
|   //   Larry Phillips                                                 |
| \X/    lphillips@lpami.wimsey.bc.ca -or- uunet!van-bc!lpami!lphillips |
|        COMPUSERVE: 76703,4322  -or-  76703.4322@compuserve.com        |
+-----------------------------------------------------------------------+

peter@sugar.hackercorp.com (Peter da Silva) (03/04/90)

In article <23204@usc.edu> papa@pollux.usc.edu (Marco Papa) writes:
> The large size of X programs is due to the fact that
> on UNIX nobody really care about program size because of virtual memory.

So why aren't NeWS programs that big?

> Supercard? I never heard of it.  How many DO know about it? I don't think it
> comes with my Amiga :-)

And Winterp doesn't (yet) come with X. Right now it has the same status as
REXX. How big is Hello World in REXX?
-- 
 _--_|\  Peter da Silva <peter@sugar.hackercorp.com>.
/      \
\_.--._/ I haven't lost my mind, it's backed up on tape somewhere!
      v  "Have you hugged your wolf today?" `-_-'

papa@pollux.usc.edu (Marco Papa) (03/04/90)

In article <5236@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>And Winterp doesn't (yet) come with X. Right now it has the same status as
>REXX. How big is Hello World in REXX?

You must have old info. Winterp is on on the X11R4 tape and downloadable for
free from any X11R4 repository (expo.lcs.mit.edu for example). [my last one
on this. I doubt it has any interest to Amiga users].

-- Marco
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Xerox sues somebody for copying?" -- David Letterman
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

peter@sugar.hackercorp.com (Peter da Silva) (03/04/90)

In article <23216@usc.edu> papa@pollux.usc.edu (Marco Papa) writes:
> You must have old info. Winterp is on on the X11R4 tape and downloadable for
> free from any X11R4 repository (expo.lcs.mit.edu for example). [my last one
> on this. I doubt it has any interest to Amiga users].

Oh, I wasn't aware that 11R4 was out yet. I'm not directly on the internet,
and I quit reading comp.windows.x at about the same time I quit reading
comp.sys.amiga. Volume, you know. Are there any vendors shipping it?
-- 
 _--_|\  Peter da Silva <peter@sugar.hackercorp.com>.
/      \
\_.--._/ I haven't lost my mind, it's backed up on tape somewhere!
      v  "Have you hugged your wolf today?" `-_-'

ifarqhar@mqccsunc.mqcc.mq.OZ (Ian Farquhar) (03/05/90)

In article <23157@usc.edu> papa@pollux.usc.edu (Marco Papa) writes:
>In article <5219@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>>MS Windows is widely
>>regarded as an incredibly hard environment to program in 
>
>I'll get flamed for this, but here it goes. I've done both.  I found MS-Windows
>at least 10 times easier to program than the Amiga. And there are a variety 
>of reasons for this, but four of them really come to mind:
>
>1. avaliability of working dialog/gadget/widget editors. This cuts down
>   user interface design and implementation by at least a factor of 10.
>   [please don't tell me that power windows is a good interface editor.
>   it's not.]

I thoroughly agree!  However, one of the things against the dialog
editor (which is more a fault of windows in general), is that the choice
of gadgets is limited.  At least the Amiga gives you much greater
flexibility there: it is just unused.  What I would like to see is an
editor that allows full intuition support, with a decent image editor.

>3. 99% of the MS-Windows calls use "internal" data structures that you
>  cannot poke at directly. This is compared to the Amiga system in which
>  practically everything is "public", even things that shouldn't be (remember
>  all those IntuitionBase fields that were supposed to be private?).  This
>  results in less run-time crashes than on the Amiga.  I think this was a real
>  win for MS-Windows and I wish the Amiga was designed similarly.  We would
>  have less "hacks" and more stable and crash-free programs.

I hate this.  Look at the size of the Windows executable!  It is
enormous, mostly because of this fact.  It also results in a dramatic
loss of performance under some conditions.  I'd rather have the Amiga's
nice and clean system interface, thank you.

"AI is also an acronym for Artificial Ignorance"

Ian Farquhar                      Phone : (612) 805-7420
Office of Computing Services      Fax   : (612) 805-7433
Macquarie University  NSW  2109   Also  : (612) 805-7205
Australia                         Telex : AA122377

ACSNet ifarqhar@macuni.mqcc.mq.oz.au  ifarqhar@suna.mqcc.mq.oz.au
D

mitchell@cbmvax.commodore.com (Fred Mitchell - Product Assurance) (03/06/90)

In article <1191@lpami.wimsey.bc.ca> lphillips@lpami.wimsey.bc.ca (Larry Phillips) writes:
>In <5236@sugar.hackercorp.com>, peter@sugar.hackercorp.com (Peter da Silva) writes:
>>In article <23204@usc.edu> papa@pollux.usc.edu (Marco Papa) writes:
>>> The large size of X programs is due to the fact that
>>> on UNIX nobody really care about program size because of virtual memory.
>>
  ...
>>And Winterp doesn't (yet) come with X. Right now it has the same status as
>>REXX. How big is Hello World in REXX?

Simple:

	/* A Hello World Command in AREXX! */
	address command
	say "Hello World"

That's all, folks! 3 lines! (and who needs a window? :-)
-Mitchell

lee@sed170.HAC.COM (John Lee) (03/07/90)

In article <23157@usc.edu> papa@pollux.usc.edu (Marco Papa) writes:
>In article <5219@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>>(I just saw a joke
>>on the net: "What's bigger than Hello World in X?" "Hello World in Microsoft
>>Windows!"). 
>
>Well, Hello World in X with the Toolkit is about 10 lines of code and data.
>Try to do the same with the Amiga and take a look at the result.  Note that
>the hello World program must accept any font on the command line, any color
>for background/foreground, center the text vertically and horizontally,
>and continue to do so at any window resize.  I doubt that you could do it
>in 10 lines (or even 30 lines for that matter) on the Amiga.  
>
>Note. I am not trying to put down the Amiga.  BUT, there are positive and
>negative things in everything.
>
>-- Marco

You, of all people Marco, know that this comparison is not quite legitimate.
While the main program can indeed 10 lines or less, try for ICCCM compliance
and I'd love to see less than 50 lines.   The code for the Toolkit,
widgets and Xlib has been hidden in the object files/libraries you link with.
I can very easily create the same situation on the amiga or any other
system by abstracting everything in pre-compiled modules, leaving a main()
with about 3 lines.

I will concede the difference being that under using a Toolkit under X most
of the work has been done by someone else (usually but now always) beforehand
and that a similar library of gadgets/widgets does not really exist on the
Amiga.   However, in the real world, most of the widgets needed for the X11
project I work on do not exist (even in the DECwindow toolkit) and we have
had to implement about 75% of the widgets we use from scratch.

Basically it comes down to this:  How do you decide when a program under
one environment is larger/smaller than another program with similar
functionality under a different environment?  And how do you decide the
actual size of the program?

Well, you could look at the main() and count lines of code, but that's
not a good comparison as shown above.  If you examine the size of the
executable, what about shared libraries?  Why don't you count those as well?

What about programmer effort?  First of all, this is highly subjective at
best, but we could try.  Again, not very good.  When functions are written
by different people, whose effort do we include, and whose do we exclude?
One programmer may have a library of utility functions equivalent to an X
Toolkit.  Do we include the effort that went into the library as well?

In short, this is as useful "My machine is better than yours."  As a joke,
"What's bigger than Hello World in X?" is fine, but (and this applies to
everyone) let's keep the discussion limited to differences/comparison of
features/improvements.

--John Lee
-------------------------------------------------------------------------------
Raining CATS and DOGS?  Join the RATS: Remote Amiga Teleconferencing System
	+--------+			John Lee
	| HUGHES |
	+--------+			ARPAnet: jhlee@hac2arpa.hac.com	
	Hughes Aircraft Company
The above opinions are those of the user and not of those of this machine.

dksnsr@nmtsun.nmt.edu (Dino Khoe) (03/07/90)

>>In article <5219@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>>3. 99% of the MS-Windows calls use "internal" data structures that you
>>  cannot poke at directly. This is compared to the Amiga system in which
>>  practically everything is "public", even things that shouldn't be (remember
>>  all those IntuitionBase fields that were supposed to be private?).  This
>>  results in less run-time crashes than on the Amiga.  I think this was a real
>>  win for MS-Windows and I wish the Amiga was designed similarly.  We would
>>  have less "hacks" and more stable and crash-free programs.

If this is the case, I'm sure you would love a Mac...  You'll get your fill
of "internal".  Much less try to program the thing...   Are you actually
suggesting that the Amiga Intuition be written like MS-Windows???  If a
programmer can "hack" the Intuition privates, so can they hack an MS-Windows
system, even if it is indirect.  Stop crying, if you really love all the
MS-DOS stuff... go play with it.


-- 
=============================================================================
Dino Khoe 	 		 |	|   | /  \  /\ |/     Any system   
dksnsr@nmtsun.nmt.edu 		 |	|---||____||   |\     can be       
New Mexico Tech Computer Science |	|   ||    | \/ | \    cracked...   

peter@sugar.hackercorp.com (Peter da Silva) (03/07/90)

In article <3908@nmtsun.nmt.edu> dksnsr@nmtsun.nmt.edu (Dino Khoe) writes:
> 
> >>In article <5219@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:

...A bunch of stuff I didn't write...

How about watching the attributions, fella? Better to leave them off altogether
than get them wrong...
-- 
 _--_|\  Peter da Silva <peter@sugar.hackercorp.com>.
/      \
\_.--._/ I haven't lost my mind, it's backed up on tape somewhere!
      v  "Have you hugged your wolf today?" `-_-'

es1@cunixb.cc.columbia.edu (Ethan Solomita) (03/08/90)

In article <3908@nmtsun.nmt.edu> dksnsr@nmtsun.nmt.edu (Dino Khoe) writes:
>
>>>In article <5219@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>>>3. 99% of the MS-Windows calls use "internal" data structures that you
>>>  cannot poke at directly. This is compared to the Amiga system in which
>>>  practically everything is "public", even things that shouldn't be (remember
>>>  all those IntuitionBase fields that were supposed to be private?).  This
>>>  results in less run-time crashes than on the Amiga.  I think this was a real
>>>  win for MS-Windows and I wish the Amiga was designed similarly.  We would
>>>  have less "hacks" and more stable and crash-free programs.
>
>If this is the case, I'm sure you would love a Mac...  You'll get your fill
>of "internal".  Much less try to program the thing...   Are you actually
>suggesting that the Amiga Intuition be written like MS-Windows???  If a
>programmer can "hack" the Intuition privates, so can they hack an MS-Windows
>system, even if it is indirect.  Stop crying, if you really love all the
>MS-DOS stuff... go play with it.
>

	Apparently you (you being Peter DaSilva) are missing the
advantage to the lack of protection: speed. Everyone complains about
how slow MS-Windows and OS/2 are. You need a '386 to use them
effectively but you then lose the speed advantages of a 386. Also, I
don't see people flying towards either of those OSes. To take
MS-Windows 386 as an example, unless things were changed in the
leatest version, you cannot multitask if you want to use a 386
program. Normal operations are limited to being 8086 compatible
(Norton called it an 80186?) and you are limited to either 640K or 1MB
of RAM (can't remember which). This makes Windows completely useless
to most businesses. To make things worse some programs have trouble
with the serial port under it.
	AmigaDOS works. It is VERY fast considering that it's a
multitasking OS. Telling you to stop whining is dumb, especially as I
don't think that is what you are doing. The poor reliability of many
Amiga programs is a real issue. However, there are programmers who are
coming out with clean code. Just ask before you buy and you'll do
fine!
	-- Ethan

Ethan Solomita: es1@cunixb.cc.columbia.edu
Compu$erve    : 70137,3271
Anyone giving away Amigas or Sharp Scanners???

peter@sugar.hackercorp.com (Peter da Silva) (03/08/90)

> 	Apparently you (you being Peter DaSilva) are missing the

Sorry, but you're the victim of erroneous attributions. None of that was my
words. However, memory protection in and of itself doesn't make a system
slow. Protected memory systems are quite capable of real-time performance.
But it's quite a bit harder to design both protected memory and real-time.
DEC had the resources to do it, Commodore didn't. Leaving memory protection
out of the Amiga was certainly a reasonable choice from both a hardware and
a software viewpoint.

The only reason OS/2 and Windows are slow is they're hobbled by nominal
conformance to an incompetantly-designed (or some would say non-designed)
piece of system software: MS-DOS.
-- 
 _--_|\  Peter da Silva <peter@sugar.hackercorp.com>.
/      \
\_.--._/ I haven't lost my mind, it's backed up on tape somewhere!
      v  "Have you hugged your wolf today?" `-_-'

wayneck@tekig5.PEN.TEK.COM (Wayne C Knapp) (03/09/90)

In article <1990Mar7.172957.18884@cunixf.cc.columbia.edu>, es1@cunixb.cc.columbia.edu (Ethan Solomita) writes:
> 	AmigaDOS works. It is VERY fast considering that it's a
> multitasking OS. Telling you to stop whining is dumb, especially as I
> don't think that is what you are doing. The poor reliability of many
> Amiga programs is a real issue. However, there are programmers who are
> coming out with clean code. Just ask before you buy and you'll do
> fine!

However, the real issue is that even though your own code may be very
clean, another program can interfear with its memory and cause horrible
things to happen.  Someone gets a super neat whiz bang PD program that in
some case, for some reason frees some memory and then still uses it.  Next
your clean code get the memroy via a AllocMem() or some such code.  While
you are using the memory the other programs changes some of the data.      
Next thing you know you are seeing effects you never realise the Amiga 
could do and the system GURUs.   

The lack of memory protection is a real issue.  I've learned it the hard
way.  No matter how careful you are, programs just don't run 100% reliable
on the Amiga.  Maybe on the newer machines, I still using my A1000.  
Memory protection is worth a lot when it comes to reliablity.  If I were
starting out today I would never use a multi-tasking computer that didn't
have hardware memory protection.

                                             Wayne Knapp

Jim.Locker@afitamy.fidonet.org (Jim Locker) (03/13/90)

Memory protection (or lack thereof) is indeed a problem with the Amiga.  
However, I don't think the problem is as bad as you make out.  Those PD 
programs that do in fact behave strangely usually make themselves obvious 
(even given your scenario of a program that continues to use memory it 
de-allocated) and then land in the bit bucket.

However, as I read between the lines of your message and see that you are 
using an A-1000, I conclude (hopefully correctly) that you are plagued by 
random crashes, which you attribute to software.

If I am correct, your problem may be more related to your A-1000 than to the 
software.  Forgive me for delving briefly into hardware...I know there is a 
feed for that, but this discussion began as software.

The A-1000 as you may or may not know, is plagued with a noisy bus due to the 
presence of the Writeable Control Store daughterboard.  The A-1000 has a 
reputation for strange and unreproducable Gurus.  There are a variety of 
solutions available: replace the WCS with kickstart ROM, ground the WCS PALs 
with jumper wires, and/or terminate the bus.

I am typing this message on my A-1000 which has two expansion peripherals 
connected - a 4 Meg TechniSoft memory expansion, and a ToolBox (which is a 
piece of junk).  My system operates upwards of 16 hours per day, seven days 
per week, with very few problems (except the ToolBox).   I have grounded the 
PALS on my WCS and I have a bus terminator attached off the end of the 
ToolBox.  If you are having reliability problems with your A-1000, you might 
try this.

Jim Locker


--  
----------------------------------------------------------------------------
AFIT Amiga Users BBS/UFGateway |Jim Locker - via FidoNet node 1:110/300
    1:110/300 Dayton, Ohio     |UUCP: afitamy!Jim.Locker
        (513)-252-7681         |ARPA: Jim.Locker@afitamy.fidonet.org
----------------------------------------------------------------------------