| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Learner |
On Friday, 1994-10-07 Ian Spencer wrote to All about "Learner" as follows: IS> I'm just beginning to think about doing a little coding. However, IS> I've done no programming before, and so I'm not well versed in all IS> the different languages, and what they're for. Initially I will be IS> doing really simple stuff, but eventually I would like to develope IS> some apps etc. So, can anyone point me towards some good languages, IS> and perhaps recommend some good reading material as well? Hi Ian, In this echo you will receive many replies extolling the virtues (and usually omitting the vices) of C/C++. I will leave that chore to others here. [Both Peter Fitzsimmons and Jonathan de Boyne Pollard can post excellent comparisons of various C/C++ compilers.] As a beginner, you might find other, less terse and less arcane languages more suited to your purpose. I would suggest REXX as the first place to start. It arrives free with the operating system (you didn't mention OS/2, but since this is an OS/2-related echo we will all assume you are going to program under OS/2) and its syntax is quite straightforward. If you want to try your hand at Presentation Manager programming, there is a free bolt-on library (I will tell you later the best way to obtain a copy) that provides rudimentary facilities for PM Windows. It isn't great, but it is a _free_ introduction. There are also at least 3 visual generators for REXX that will produce [almost] professional-quality PM applications. These do cost money, but not excessive amounts: e.g. Watcom VX-REXX currently is going for US$99.00, so I would expect you could get it for about StgL75 or so (plus VAT, of course). There is also VisPro REXX and GpfREXX; these are slightly more comprehensive and considerably more expensive. I own, use and like VX-REXX; it is an excellent introduction to programming under OS/2. Then there is BASIC, that old war-horse (or pony-and-trap) of the PC. A copy of QBASIC for DOS is bundled with OS/2's DOS support. There are also 2 native-to-OS/2 BASIC implememntations around: Liberty BASIC (shareware) and Softbridge BASIC (commercial). I have not used the former, but the latter is a "visual" type of BASIC that produces PM applications; it is OK, but runs out of steam for a professional programmer. There are a few implementations of FORTRAN 77 available. I own a copy of Microsoft's 16-bit compiler; it is not very intuitive, since it depends upon the segmented memory models and the FORTRAN grammar was developed using a flat memory model (on mainframes). There are very expensive 32-bit (flat memory model) compilers from Watcom and NDP. The FORTRAN language is geared towards number crunching (engineers educated in the 1960's and 1970's nearly all learned FORTRAN, usually with very limited success). However, its grammar is not suitable for a broader array of applications and so I could not recommend it unless you are designing rockets or something similar. There is an implementation of COBOL from MicroFocus. As one who has coded COBOL for almost 20 years, I consider it the most disgusting computer language, ever. I would not recommend any implementation of COBOL to anybody for anything. (Except, perhaps, to have it on your c.v.) MicroFocus COBOL is also extremely expensive. I recommend you avoid this compiler and language. I have seen reports of a Pascal compiler, called Speed Pascal, from Germany that is soon to be released. Pascal is a small and simple language that was popular with academia in the late 1970's and early 1980's. The language lacks a little functionality because of its small grammar, but it is easy to learn. If your plans aren't too ambitious, this might be worth your consideration. However, Pascal is more or less a dead language, since Microsoft has dropped it completely and Borland's compilers are stagnating. Only Clarion/TopSpeed and the German company are still actively developing compilers. There are two (actually, one-and-a-half) implementations of PL/I, from IBM and MicroFocus. These share a lot of code in their implementation - MicroFocus takes the IBM compiler and adds some extra mainframe-compatible features - which is why I call them one-and-a-half. Since the MicroFocus compiler costs a mint (same price as their COBOL) I will consider only the IBM implementation. This is available in Professional Edition and Personal Edition. The difference in price is significant but the Profressional Edition only adds support for CICS/2 and DB2/2. So, for most programmers the Personal Edition is adequate. IBM also sells a visual generator for PL/I [as does Gpf - but the Gpf generator costs 6 times as much]. The object code generator of this compiler is the same as IBM uses for its C/C++ compiler (C Set ++, of which you will probably read much from other posters). It produces extremely good object code - genuine professional quality, even in the Personal Edition. This is my favourite language above the assembler level. It is easy to learn, in spite of its huge grammar. It has every feature you are likely to want (unless you are heavily into OOP and insist upon RTTI). You might care to look at this option too. Now, I said earlier I would tell you the best place to obtain Visual REXX. This same source will also provide you with demo copies of: VisPro REXX; Softbridge BASIC; and IBM PL/I for OS/2 Professional Edition and its Visual PL/I generator. That place is the IBM Developer Connection CD. Before you buy any development tools, get a copy of Dev Conn and see what is available and how it works. The Dev Conn CD also gives you the OS/2 Developer's Toolkit, which includes a number of spiffy tools, of which the most important to me is KWIKINF; this allows me to search/browse the online documentation supplied by IBM, Watcom and Borland. Both of the IBM compilers (PL/I and C/C++) come with very comprehensive online documentation. I have deliberately left out the languages from the Free Software Foundation; they usually have the word GNU in front of their names. Since these compilers are almost totally undocumented, they are not for the neophyte. Anybody who suggests that you learn to program using one of these would teach you to swim by pushing you overboard in mid-Atlantic and sailing off. This software is free and you will get what you paid for. I have also omitted IBM's APL interpreter because APL is too arcane a language for a beginning programmer other than a mathematician. Now, perhaps, a summary of the languages themselves, with my experiences of their strengths and weaknesses. REXX - a simple, regular language with excellent features for handling character data and reasonably good file handling; suffers from slow execution speed, especially when doing arithmetic, and the inability to structure data elements into aggregates. BASIC - a simple, somewhat irregular language with good features for handling both character and numeric data; suffers from slow execution speed and the inability to structure data elements into any aggregates other than arrays, and its arrays do not support lower bounds other than 1. COBOL - a complex, irregular language with good file handling; lousy at everything else. FORTRAN - a moderately complex, irregular language with very good arithmetic; lousy at everything else. Pascal - a small, simple, regular language with good arithmetic, excellent data structuring and fair character handling features; file handling is dreadful. PL/I - a large, regular language with excellent arithmetic, excellent data structuring, excellent data aggegation (arrays can start and end with any subscript), excellent character manipulation and excellent file handling; no real deficiencies grammatically, but the compilers tend to be big. C - a small, simple, regular language with good arithmetic, excellent data structuring and reasonably good file handling (you can always "roll-your-own" in C); both arrays and character strings are derived from pointers and this limits their generality - they are treated identically and always begin at zero; also, character strings cannot contain low-values bytes (almost useless for serious database work); language keywords tend to be terse, abbreviated forms liked by the cognoscenti but often difficult for beginners. C++ - a large, complex, object-oriented language that uses C as its procedural basis; good arithmetic, excellent data structuring and reasonably good file handling (again, you can "roll-your-own"); many of the deficiencies of C's array and character string limitations can be gotten around by defining object classes with the limits removed; it still suffers from much of C's terseness. A powerful language, but also a large compiler. In the foregoing, I assume that you know what "regular" and "irregular" grammars are. (Put simply, a language with a regular grammar will be easier to code.) Also, virtually all of the linguistic shortcomings can be programmed around, especially in C/C++. But there are those of us who feel we shouldn't need to, since at the machine level the high-level language is all artificial. (It might as well be "easy" artifice as "difficult" artifice.) Well Ian, by now, you have probably read several messages like this one and are sorely confused. I think my earlier advice of getting a copy of the Dev Conn CD from IBM and trying out several products will serve you best. But first, think up one or two small programs with which you can test the products; if you don't know what you want to achieve programming, you will be in no place to evaluate the products' meeting of your needs. There are a number of very experienced programmers who read this echo; between us we can solve syntactic and semantic problems in almost any programming language you care to throw at us, but we cannot provide you with the creative spark to initiate the programming process. Regards Dave * KWQ/2 1.2g * If ignorance is bliss, I'm in hog heaven!! --- Maximus/2 2.01wb* Origin: OS/2 Shareware BBS, Fairfax, VA: 703-385-4325 (1:109/347) SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413 SEEN-BY: 711/430 807 808 809 934 942 712/353 623 713/888 800/1 @PATH: 109/347 2 7 3615/50 229/2 12/2442 711/409 54/54 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.