CompuServe Thread

#Lattice vs. Manx

29 messages in this thread
#99897From: Black Belt SystemsApr 25, 1990 5:13 PM
Eet – there have _never_ been more Manz examples. The RKM examples have _always_ been in Lattice, all the original stuff was in Lattice, and even during Manxes heyday, there was more lattice. manx just wishes there was more – and with the current state of affairs, they have a huge amount of catchup to do to get even, much less exceed the amount of Lattice source.
#99953From: John DraperApr 25, 1990 8:27 PM
Ben, For a long time, most developers were using Manx, due to its better code generation, sped of compilation, resulting code size, and so on. That isn't the case now, but there have alays been numerous examples in Manx to draw from. I wouldn't go so far as to say there were more examples in Manx, but among' example programs, most of what was useful to me for illustrative purposes was indeed manx. -larry
#100017From: Black Belt SystemsApr 25, 1990 10:43 PM
Larry, I'd have to say that there was never a time when "most developers were using manx". There was a time when manx was highly touted here on CIS, despite it's backwards inclusion of garbage capabilities like ILAC, it's inability to link in the std Amiga format, the all-in-one (small) data capability, it's far-from compliance with ANSI, and it's default to 16 bit operation when that was NOT the std… I heard a lot of people here singing it's praises – but I rarely ran into code that was actually made with it. I know some of the PD guys use it – Keith, for instance – and I know that some of the developers use it, too. There were some perfectly horrible code examples in Transactor, for instance. But Lattice was never the minority compiler – it only seemed that way to those who had Manx, because they wanted it to be that way. they generated smaller code only with the default options set to non-std – 16 bit. Lattice pointed out (repeatedly) that if you asked for 16 bit stuff and so on with the then-current compiler, you got executable of comparable size. Part of that issue was start-up code, too – the Lattice startup code is much more robust, feature wise, than the Manx, which made it bigger. Faster code? Same issues. Use the same options, you got comparable code. There never was any huge performance gap, except to hopeful Manx owners. I've been generating Amiga applications with Lattice for almost five years now, and I've been completely satisified – my one fling with Manx was truncated by the peculiar proprietary linking, the lousy defaults, the small data capacity, and the fact that it supported ILAC, which I view as the worst C sin going. Ben Amateur Radio Callsign is A A 7 A S
#100124From: Mike Spille/ManxApr 26, 1990 1:08 PM
Ben, Lattice had a head start w/ the Amiga market in that they were the 1st compiler up and running. However, once Manx was available _almost everyone_ used our product over Lattice's. It was only when Lattice came out w/ the 5.0x product that people went back to them. The fact is that for a long time Manx produced better code for the majority of applications than Lattice did. The fact is that Manx had a source debugger available before Lattice did. The Lattice and Manx products are now, at this point, pretty much evenly matched (comparing Lattice 5.05 and Manx 5.0a). And please don't talk about ANSI compatability (of which Lattice doesn't have at the moment, and they've only been close to since 5.0x. And I'm sick of hearing about ILAC – if you don't like it, don't use it. If you won't use Manx becasue we offer features Lattice doesn't have, which you are in no way forced to use by us, then its your loss. -Mike
#100323From: Mike Roth/LatticeApr 27, 1990 12:38 PM
Well I'd point out that much of the ANSI features were in Lattice 4.0, such as ANSI prototyping (which I considered to be more valuable than a debugger). Lattice is also not as far from ANSI compatibility as you seem to be implying. Let's try to avoid a big religious war here, please.
#100326From: Mike Spille/ManxApr 27, 1990 12:58 PM
Didn't mean to start any rwars – sorry if I gave that impression. However, lots of people seem to believe that 'prototyping=ANSI', which is ridiculously far from the truth. There are little matters like auto-aggregate initialization, string concatenation, library functions, et al which are also required to be even close to ANSI. Without a doubt 5.0x of the Lattice compiler comes pretty close to ANSI (not as close as Manx, but most people won't notice the difference), but Lattice 4.0 doesn't cut it as ANSI just because of prototyping. As for the debugger vs. ANSI compatibility, I'd take a debugger any day.
#100396From: Mike Roth/LatticeApr 27, 1990 10:50 PM
Yes, but Lattice 4.0 was out somewhere around 2.5-3 years ago, when ANSI wasn't even close to being approved yet. And I really disagree with you about the debugger. It is amazing how many bugs can be found in supposedly good code by adding prototype checking. Debuggers don't help to avoid bugs before they start.
#101182From: Mike Spille/ManxApr 30, 1990 2:06 PM
Yes, it is amazing how many bugs prototyping can help find. In fact, prototyping has done alot to improve my own code quite a bit. However, for every bug found by function prototyping, 10 more will still be in your code. Function prototyping does nothing for finding uninitialized pointers, array overwrites, or a host of other problems. And what about problems in the actual algorithm being used? In all these cases, a debugger is by far the best way to pinpoint the problem (in combination with other methods of course). Seriously think about how much prototyping speeds up your development time, and how much a debugger speeds up your development time. I think you'll find that the debugger ends up doing alot more work, and helps the programmer more, than the prototypes do. I'm in no way downgrading the importance of function prototypes, I'm only saying that they only catch one limited class of bugs.
#100485From: Gabe J. FederApr 28, 1990 7:54 AM
Mike, IMHO YOU are the one getting a bit non-productive in your comments. Please tone it down… t h a n k s.
#100367From: Steve PietrowiczApr 27, 1990 8:21 PM
I use Lattice now, but I used MANX before that. What do mean by "peculiar proprietary linking"? The linking options both MANX and Lattice are bizarre. (And IMHO Lattice is winning that race) 🙂
#100820From: Vic WagnerApr 29, 1990 1:55 PM
Steve, apparently you forget that there was a 'standard' object text when the Amiga was released. It is described in that ancient (dare I say revered) tome "AmigaDOS Technical Reference Manual" (nah, prolly better not use the word revered). Anywho, Lattice supported it, Manx did not.
#101174From: SyndesisApr 30, 1990 1:32 PM
On the other hand, Lattice one-sidedly expanded the "standard object format" at one stage in the game of catch-up, by adding new hunk types and extra debugging information. These additions weren't backwards compatible to other utilities that manipulated object files, so I don't see why you're nominating Lattice for sainthood. "All those developers who had to provide modules in two formats"? How many people does that really affect? After all, both C compiler companies have done many, many things to make their system more proprietary and less portable, in order to lock their users into a particular compiler. And couldn't Manx 3.6 load and link regular Amiga object modules, but it couldn't create them?
#101503From: Vic WagnerMay 1, 1990 1:57 PM
John, all of what you say is true. Lattice _did_ extend (an obviously extensible language….Amiga Object). BTW, the debugging information couldn't have been TOO much of a push..since the programs still loaded and Lattice did NOT (nor did C=) change the LoadSeg() to compensate. Manx _eventually_ could read 'standard object'.
#101628From: SyndesisMay 1, 1990 9:41 PM
No, I'm talking about hunks that only made sense in object files, not the end result files that are loaded by LoadSeg(). And yes, I know the difference between the two. 🙂
#99958From: Michael FiggApr 25, 1990 8:41 PM
I disagree. It seems to me that after Manx came out that there was quickly alot more examples becoming available. I stuck with Lattice anyway and haven't regretted it since. It does seem that these days Lattice is back to being the more respected package. Mike
#100019From: Black Belt SystemsApr 25, 1990 10:44 PM
You're free to disagree – but you're wrong. :^) Ben Amateur Radio Callsign is A A 7 A S
#100275From: Brian BartlettApr 27, 1990 2:36 AM
Ben, your wrong. When I got my Manx compiler (since Lattice never sent me update notices, which was NOT there fault, but C='s), I joined CIS. I never lacked for examples here. If anything, it seemed to me that there were more Manx examples than there were Lattice examples, of the new software uploads. True, this has changed, and it seems roughly balanced, but your way offbase here, Ben. I know you don't like Manx, for some of it's features, but some of us do (and let's not start that arguement all over again). Brian J. Bartlett
#99968From: JAMES D. WILLIAMSApr 25, 1990 9:17 PM
dog oogies… there were more Manx _graphic_ examples on CIS, I know, I went looking at the time I was shopping for my compiler, so nyaaa. –Eet–
#99992From: Michael SheaApr 25, 1990 10:09 PM
Didn't Manx have the better compiler a few years ago. I glad the Amiga market had some competion. Not anything like the PC market, but at least a little competion has lead to better C compilers over the years. <<<< Michael Shea >>>> <<<< 76665,3360 >>>>
#100021From: Black Belt SystemsApr 25, 1990 10:52 PM
No, manx never had the better compiler. Manx defaulted to 16 bit generation (non-std at the time) which resulted in considerably smaller executeble. Naturally. They also had a smaller, less capable startup module that was linked in – again, we end up with smaller code. They had a proprietary link format. You couldn't link in an AMiga .obj file. They were WAY behind on the current "in-vouge" C stds, that is, the stds that were in the proces of becoming ANSII, which Lattice kept up with very well. There was a lot of BS here about how Manx made this wonderful small, fast code. John Tobbes, who wrote the Lattice compiler (more or less) took the time to show the Manx users that using the compiler switches to select 16 bit, no stack checking, and so on, that the Lattice compiler benched out the same size or SMALLER!!! Further, he provided a number of examples where the startup code was stripped to the functionality of the Manx code, which even reduced the cmd size more. The alleged superiority of Manx is mainly propaganda. Things like defaulting to base register addressing… sure, saves code size all over the place, AND limits you to 64k (or sometimes 32k) of data. Lattice defaulted to 32 bit addressing – more reasonable, IMHO, but you could always tell the compiler you wanted base-relative addressing and get it, along with the penalty of small data space. Lattice got tired of hearing all this trash, and made the base relative, 16 bit options the default. Too bad – it was not a compiler change, just a default change, and that only because of all the Manx propaganda from all directions. The manx compiler follows a philosophy similar to the IBM one… we'll do it our way, never mind the standards. I have little use for it. Lastly, Manx supports in-line asm code; there is nothing worse in the world of C programming that in-line asm. It's a poor technique used by lazy or incompetant programmers (or both). Ben Amateur Radio Callsign is A A 7 A S
#100125From: Mike Spille/ManxApr 26, 1990 1:12 PM
Ben, the only 'standards' we didn't support for a long time was the Amiga object standard and ANSI. We didn't do ANSI for awhile because we perceived our source-debugger would be more valuable to Amiga developers, to which most Amiga developers apparently agreed. As for not supporting the amiga object format, this is practically a non-issue as almost all\ 3rd-party libraries are supplied in Manx and lattice versions anyway. Also, w/ 5.0a we are by far the more ANSI compliant compiler than Lattice is. And for ILAC, well you're just hard headed. Considering the fact that no one has ever forced anybody else to use it, I don't know why you're so vocal about it. -Mike
#100821From: Vic WagnerApr 29, 1990 1:55 PM
Of course it didn't occur to you that you were (by your irresponsibly ignoring the standard object format) just simply pushing work YOU should have done off onto all those developers who needed to provide linking libraries in 2 formats.
#101186From: Mike Spille/ManxApr 30, 1990 2:11 PM
You'd be forced to do that anyway. In the PC world there's the .obj standard, and yet you still have to provide seperate libraries for Borland, Lattice, Aztec, MS, etc. This is because each compiler uses 'helper' functions in its own library to do things like long arithmetic, etc. Also, library routines like malloc() are implimented differently and require different background machinery (and often header files) to operate. So even if Manx did use the BLink format, you'd still be forced to provide 2 libraries.
#100353From: Michael FiggApr 27, 1990 6:49 PM
I don't think anybody can complain about the competion between Manx and Lattice! I think we're all winners (and whiners).
#100123From: Mike Spille/ManxApr 26, 1990 1:03 PM
Not true, Ben. Most inhouse development for the Amiga isn't done on either Manx or Lattice, or even on the Amiga at all! Perhaps you view us as being in a severe catch-up situation, but that is blatantly false. If you look at the _numbers_ of units sold, Lattice and Manx are pretty evenly matched. Its true on CIS there appears to be more Lattice users, but on Bix and in general theres a 1:1 ratio. And when companies like CinemaWare use Manx, and products like VideoScape-3D are developed w/ Manx, I think your statement is shown to be even more-false. -Mike
#100195From: Marcus MullinsApr 26, 1990 10:20 PM
Mike, I started out using ,the Amiga-C (Lattice) compiler. I finally gave up on doing anything serious with it and went to Aztec-C. I love it. I had already sunk the money into the Amiga-C compiler, and I wanted to stay with it (you know, the baby duckling syndrome), but Lattice didn't make it very easy on me. I called for support a couple of times, because it appeared the compiler was generating incorrect array and structure offsets, but was told I would have to get support from Commodore because I had purchased the Amiga-C compiler, not the Lattice compiler. This was a big mistake on Lattice's part, because it alienated programmer's who had purchased the compiler, knowing it was developed by Lattice, and expecting Lattice support. I decided to buy the Lattice product for the support, but I read an ad that announced the introduction of the Aztec-C source level debugger. That was a real coup, fella's. When I called Lattice and asked about a possible SDB offering from them (I was STILL trying to buy Lattice!), they told me that NO enhancements were planned for the compiler. Period. What was I to do? I bought the Aztec compiler and SDB, and I have been happy ever since. I have worked with Unix and I am fond of vi, grep, etc. This was icing on the cake. To be honest, the 5.0x release of Lattice is a far different/better animal than the old Lattice compiler I was working with, but the Aztec C DEFINITELY was superior in a number of ways before Lattice got back into the fray. BTW, I have used a number of different Aztec C cross compilers, on the job (8080, Z80, etc.), and they have been around a LONG time (stability, etc.). Lattice has been around a long time too for that matter. So either compiler will do an EXCELLENT job, its just that the Lattice marketing guys burned me. BTW, when I was at AmiExpo 2 years ago, a couple of their programmers were showing me their soon-to-be-released SDB, and had me really interested. Then along came the sales force, who got bent out of shape, and made them stop talking to me! I'm sorry Lattice, but I'm [ MORE ]
#100196From: Marcus MullinsApr 26, 1990 10:20 PM
[ continuation ] not going to BEG you to let me buy/investigate you products. 'nuf said 😉 BTW, I just got my Aztec-C 5.0 upgrade. WOW! Marcus
#100324From: Mike Roth/LatticeApr 27, 1990 12:44 PM
Please don't blame Lattice for the lack of CBM support you received for the Amiga C compiler. Lattice still supports that compiler in a sense, in that you can still upgrade for only $100. I can't explain what happened to you at the AmiExpo since I wasn't there, but keep in mind that many people have questions and stop by and we can't spend all our time on a few people. I do feel that one of the ways Lattice really excels over Manx is in our technical support, but I'd really like to stay out of this religious war. It really doesn't do anybody any good.
#100256From: Robert AlbrechtApr 27, 1990 1:05 AM
There have been more Lattice examples, but very early the REAL programmers quickly found out that those crusty first versions of Lattice were TOTAL JUNK and that Aztec simply blew the doors of Lattice. Things have changed and Lattice is a good compiler now, but I believe that still the GOOD examples are written in Aztec. It does seem to be moving the other way though now that Lattice is better (for now). Quantity != Quality.