Thanx for the comments...
-
I Found very interesting the comments with respect to this discussion subject. Im a programmer working alone in a mining consulting company in Chile, unfortunately with little input or feedback with repsect to what im doing, so these discussions are very useful for me. About 1 year ago I made a change in my development platform from UNIX/C to Windows. I chose Visual C++/MFC for the following reasons. 1) There is a significant learning curve in becoming proficient in a programming environment so I want (if possible) to choose one environment to do almost all my work... as I program scientific alforithms with their asociated user interfaces and interfaces to other established products I chose what appeared to be the "standard"... C++/MFC 2) I thought that if I wanted to program Microsoft Windows, logically the best programming interface might come from the manufacturer (MFC)... In this I feel I was WRONG 3) If I want to learn a product, I chose a product from a major manufacturer as it was more likely to have longevity (MFC programming environment). In this it appears that Im also WRONG. 4) I thought that coming from UNIX/C that C++/MFC might be the most "natural" upgrade path, and that the learning curve might be shorter for that reason... in that I also feel I was WRONG! 5) Is there a human element in this decision... a little pride which says "If Im a real programmer I should be able to program in the (arguably) most difficult language"... i.e. am i a real man!!!! I hope not, but maybe there is unconciously something of that. Cheers, Dave
-
I Found very interesting the comments with respect to this discussion subject. Im a programmer working alone in a mining consulting company in Chile, unfortunately with little input or feedback with repsect to what im doing, so these discussions are very useful for me. About 1 year ago I made a change in my development platform from UNIX/C to Windows. I chose Visual C++/MFC for the following reasons. 1) There is a significant learning curve in becoming proficient in a programming environment so I want (if possible) to choose one environment to do almost all my work... as I program scientific alforithms with their asociated user interfaces and interfaces to other established products I chose what appeared to be the "standard"... C++/MFC 2) I thought that if I wanted to program Microsoft Windows, logically the best programming interface might come from the manufacturer (MFC)... In this I feel I was WRONG 3) If I want to learn a product, I chose a product from a major manufacturer as it was more likely to have longevity (MFC programming environment). In this it appears that Im also WRONG. 4) I thought that coming from UNIX/C that C++/MFC might be the most "natural" upgrade path, and that the learning curve might be shorter for that reason... in that I also feel I was WRONG! 5) Is there a human element in this decision... a little pride which says "If Im a real programmer I should be able to program in the (arguably) most difficult language"... i.e. am i a real man!!!! I hope not, but maybe there is unconciously something of that. Cheers, Dave
In regard to your reasons... 2) "the best programming interface" That pretty much depend on the criteria you use to determine "the best". MFC is probably the most complete programming interface for Windows, but VB probably wins for the simpliest to use. Delphi is probably somewhere in the middle. 3) I keep hearing warnings about the disappearence of MFC, but it seems to me that it's still around (and I 'll it still will be long after Delphi is gone....) 4) C is a procedural language. C++ is an OO language which uses C syntax. Pascal is a procedural language which uses a non-C syntax. So, it depends on what part of your current programming knowledge you want to replace: Methodology or syntax. 5) If you want a "difficult" language, why in heaven name would you choose C++, one of the simpliest langauges around? If you really want a difficult language, stick to C, or assembler, or Ada, or one where the syntax is just plain annoying, like Lisp. Basic: 10 A = "Hello" 20 B = "World" 30 C = A + ", " + B + "!" 40 PRINT C C++: string A = "Hello"; string B = "World"; string C = A + ", " + B + "!"; cout << c; C: char A[] = "Hello"; char B[] = "World"; char* C = malloc(strlen(A) + strlen(B) + 4); /* + 2 for comma-space, +1 for exclaimation, +1 of end of string */ if (C != NULL) { strcpy(C,A); strcat(C,", "); strcat(C,B); strcat(C,"!"); printf("%s", C); free(C); } Now which is easier?
-
In regard to your reasons... 2) "the best programming interface" That pretty much depend on the criteria you use to determine "the best". MFC is probably the most complete programming interface for Windows, but VB probably wins for the simpliest to use. Delphi is probably somewhere in the middle. 3) I keep hearing warnings about the disappearence of MFC, but it seems to me that it's still around (and I 'll it still will be long after Delphi is gone....) 4) C is a procedural language. C++ is an OO language which uses C syntax. Pascal is a procedural language which uses a non-C syntax. So, it depends on what part of your current programming knowledge you want to replace: Methodology or syntax. 5) If you want a "difficult" language, why in heaven name would you choose C++, one of the simpliest langauges around? If you really want a difficult language, stick to C, or assembler, or Ada, or one where the syntax is just plain annoying, like Lisp. Basic: 10 A = "Hello" 20 B = "World" 30 C = A + ", " + B + "!" 40 PRINT C C++: string A = "Hello"; string B = "World"; string C = A + ", " + B + "!"; cout << c; C: char A[] = "Hello"; char B[] = "World"; char* C = malloc(strlen(A) + strlen(B) + 4); /* + 2 for comma-space, +1 for exclaimation, +1 of end of string */ if (C != NULL) { strcpy(C,A); strcat(C,", "); strcat(C,B); strcat(C,"!"); printf("%s", C); free(C); } Now which is easier?
if we want to start comparing languaged why dont we dont it like this... and now to somthing complety different TASK: Shoot yourself in the foot. C: You shoot yourself in the foot. C++: You accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there." FORTRAN: You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue with the attempts to shoot yourself anyways because you have no exception-handling capability. Pascal: The compiler won't let you shoot yourself in the foot. Ada: After correctly packing your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover you can't because your foot is of the wrong type. COBOL: Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be re-tied. LISP: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds ... FORTH: Foot in yourself shoot. Prolog: You tell your program that you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't permit it to explain it to you. BASIC: Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged. Visual Basic: You'll really only _appear_ to have shot yourself in the foot, but you'll have had so much fun doing it that you won't care. HyperTalk: Put the first bullet of gun into foot left of leg of you. Answer the result. Motif: You spend days writing a UIL description of your foot, the bullet, its trajectory, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams. APL: You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters. SNOBOL: If you succeed, shoot yourself in the left foot. If you fail, shoot yours
-
if we want to start comparing languaged why dont we dont it like this... and now to somthing complety different TASK: Shoot yourself in the foot. C: You shoot yourself in the foot. C++: You accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there." FORTRAN: You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue with the attempts to shoot yourself anyways because you have no exception-handling capability. Pascal: The compiler won't let you shoot yourself in the foot. Ada: After correctly packing your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover you can't because your foot is of the wrong type. COBOL: Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be re-tied. LISP: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds ... FORTH: Foot in yourself shoot. Prolog: You tell your program that you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't permit it to explain it to you. BASIC: Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged. Visual Basic: You'll really only _appear_ to have shot yourself in the foot, but you'll have had so much fun doing it that you won't care. HyperTalk: Put the first bullet of gun into foot left of leg of you. Answer the result. Motif: You spend days writing a UIL description of your foot, the bullet, its trajectory, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams. APL: You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters. SNOBOL: If you succeed, shoot yourself in the left foot. If you fail, shoot yours