Prev: proble in common
Next: GNU f90 read() run time error
From: J. Clarke on 8 May 2010 14:30 On 5/8/2010 1:03 PM, Louis Krupp wrote: > On 5/8/2010 7:24 AM, J. Clarke wrote: >> On 5/8/2010 1:07 AM, glen herrmannsfeldt wrote: >>> Jim Xia<jimxia(a)hotmail.com> wrote: >>> >>>>> F77 is pretty easy to understand and learn if you have any kind of >>>>> math >>>>> aptitude. ?The advanced features and syntax of f90 and up obscure the >>>>> language, in my opinion. ? I think it would be wise to learn the >>>>> basics >>>>> before going on to the esoteric stuff, especially if you don't already >>>>> know some other programming languages. >>> >>>> I would have agreed with these opinions 15 years ago. As a physicist, >>>> all I cared were algorithms and computations expressed mathmetically. >>>> I even canceled an enrollment of a course on Scientific Computations >>>> using Fortran 90. But then after I've moved across multiple fields >>>> and different languages, I view these opinions as near-sighted and >>>> narrow minded. >>> >>> If you have already used other languages, and are used to thinking >>> in programming language terms, then yes. There are some features >>> in Fortran 2003 that will take some getting used to, but not so bad. >>> >>> But the OP was asking about it as a beginner. Are there any >>> beginner level Fortran 2003 books? Is there (I haven't looked) >>> a "Fortran 2003 for Dummies" yet? >> >> Not a "for dummies" but there is a university text ("Fortran 95/2003 for >> Scientists and Engineers" by Chapman) aimed at freshmen with no prior >> programming experience other than what one gets in high school or >> teaches oneself. I've not seen it and have no idea if it's any good. >> >>>> True, if you want to write a toy program in one >>>> afternoon, F77 can pretty much suffice what you need. But from a >>>> serious software engineering point of view, F77 or F90/95 are >>>> handicaped. Most Fortran programs I've seen are brittle and hard to >>>> modify or integrate with other components. This was partially caused >>>> by the lack of facility in these old languages. But more importantly >>>> these softwares were mostly written by scientists/engineers who >>>> normally lacked formal trainings in software engineering. As I see >>>> it, if we don't encourage newcomers to proper learn the principles in >>>> software engineers and embrace the new language features that encourge >>>> these practices, and keep teaching them how to write old F77/F90 code, >>>> I'd say we'll drive them away from Fortran in no time. >>> >>> Some people only need to write small, simple programs. It is, >>> at least, a good way to start. >>> >>>> I've written F77 longer than any other languages. However after real >>>> application experiences with C, C++ and Java in a number of fields, my >>>> view on Fortran changed dramatically. Coming back to Fortran 7 years >>>> ago, I picked up Fortran 2003 and never wrote a F77/F90 code again. >>>> I'm looking forward to seeing what F2008 offers me :-) >>> >>> I don't know how easy C89 is to learn as a first language, but it is, >>> in most ways, a fairly simple language. A small number of different >>> statements and intrinsic types. The Java language (separate from >>> the standard class libraries) is also fairly small, though somewhat >>> more complicated than C89. >> >> I think if you already know F77 or earlier, C becomes more difficult to >> learn well--as the saying goes "you can write Fortran in any language" >> and inertia leads one to treat such things as pointers as being >> complicated add-ons rather than essential tools. > > To be pedantic, this might be true if F77 (or FORTRAN IV) is all you > know, but experience with assembler makes C easier to learn. That's how > I did it; I compiled VAX C files with /MACHINE_CODE or whatever it was > turned on, and I eventually figured out what those pointers were all about. The assumption I was making was that one had only one language and it was F77 or earlier. Anybody who can program in assembler is working well beyond a beginner level. > It didn't hurt that I was using the original Kernigan & Richie C manual. > I wouldn't want to give up ANSI C and go back to that, but it was nice > starting with something short and concise. > > Fortran might be similar; do you learn something simple (e.g., FORTRAN > IV, my first language) so you can get something done right away (I > actually couldn't, since my FORTRAN LOAD card started in the wrong > column, and nobody caught it, and my first successful program was in > Burroughs ALGOL), or do you take the time to learn something more robust > (like Fortran 95/2003)? I think if you're going to learn Fortran at all you should learn the most recent that is available to you. There are too many other "get something done right away" options out there today that require minimal knowledge of programming.
From: Gary L. Scott on 8 May 2010 16:12 On 5/8/2010 1:30 PM, J. Clarke wrote: > On 5/8/2010 1:03 PM, Louis Krupp wrote: >> On 5/8/2010 7:24 AM, J. Clarke wrote: >>> On 5/8/2010 1:07 AM, glen herrmannsfeldt wrote: >>>> Jim Xia<jimxia(a)hotmail.com> wrote: >>>> >>>>>> F77 is pretty easy to understand and learn if you have any kind of >>>>>> math >>>>>> aptitude. ?The advanced features and syntax of f90 and up obscure the >>>>>> language, in my opinion. ? I think it would be wise to learn the >>>>>> basics >>>>>> before going on to the esoteric stuff, especially if you don't >>>>>> already >>>>>> know some other programming languages. >>>> >>>>> I would have agreed with these opinions 15 years ago. As a physicist, >>>>> all I cared were algorithms and computations expressed mathmetically. >>>>> I even canceled an enrollment of a course on Scientific Computations >>>>> using Fortran 90. But then after I've moved across multiple fields >>>>> and different languages, I view these opinions as near-sighted and >>>>> narrow minded. >>>> >>>> If you have already used other languages, and are used to thinking >>>> in programming language terms, then yes. There are some features >>>> in Fortran 2003 that will take some getting used to, but not so bad. >>>> >>>> But the OP was asking about it as a beginner. Are there any >>>> beginner level Fortran 2003 books? Is there (I haven't looked) >>>> a "Fortran 2003 for Dummies" yet? >>> >>> Not a "for dummies" but there is a university text ("Fortran 95/2003 for >>> Scientists and Engineers" by Chapman) aimed at freshmen with no prior >>> programming experience other than what one gets in high school or >>> teaches oneself. I've not seen it and have no idea if it's any good. >>> >>>>> True, if you want to write a toy program in one >>>>> afternoon, F77 can pretty much suffice what you need. But from a >>>>> serious software engineering point of view, F77 or F90/95 are >>>>> handicaped. Most Fortran programs I've seen are brittle and hard to >>>>> modify or integrate with other components. This was partially caused >>>>> by the lack of facility in these old languages. But more importantly >>>>> these softwares were mostly written by scientists/engineers who >>>>> normally lacked formal trainings in software engineering. As I see >>>>> it, if we don't encourage newcomers to proper learn the principles in >>>>> software engineers and embrace the new language features that encourge >>>>> these practices, and keep teaching them how to write old F77/F90 code, >>>>> I'd say we'll drive them away from Fortran in no time. >>>> >>>> Some people only need to write small, simple programs. It is, >>>> at least, a good way to start. >>>> >>>>> I've written F77 longer than any other languages. However after real >>>>> application experiences with C, C++ and Java in a number of fields, my >>>>> view on Fortran changed dramatically. Coming back to Fortran 7 years >>>>> ago, I picked up Fortran 2003 and never wrote a F77/F90 code again. >>>>> I'm looking forward to seeing what F2008 offers me :-) >>>> >>>> I don't know how easy C89 is to learn as a first language, but it is, >>>> in most ways, a fairly simple language. A small number of different >>>> statements and intrinsic types. The Java language (separate from >>>> the standard class libraries) is also fairly small, though somewhat >>>> more complicated than C89. >>> >>> I think if you already know F77 or earlier, C becomes more difficult to >>> learn well--as the saying goes "you can write Fortran in any language" >>> and inertia leads one to treat such things as pointers as being >>> complicated add-ons rather than essential tools. >> >> To be pedantic, this might be true if F77 (or FORTRAN IV) is all you >> know, but experience with assembler makes C easier to learn. That's how >> I did it; I compiled VAX C files with /MACHINE_CODE or whatever it was >> turned on, and I eventually figured out what those pointers were all >> about. > > The assumption I was making was that one had only one language and it > was F77 or earlier. Anybody who can program in assembler is working well > beyond a beginner level. > >> It didn't hurt that I was using the original Kernigan & Richie C manual. >> I wouldn't want to give up ANSI C and go back to that, but it was nice >> starting with something short and concise. >> >> Fortran might be similar; do you learn something simple (e.g., FORTRAN >> IV, my first language) so you can get something done right away (I >> actually couldn't, since my FORTRAN LOAD card started in the wrong >> column, and nobody caught it, and my first successful program was in >> Burroughs ALGOL), or do you take the time to learn something more robust >> (like Fortran 95/2003)? > > I think if you're going to learn Fortran at all you should learn the > most recent that is available to you. There are too many other "get > something done right away" options out there today that require minimal > knowledge of programming. > > > My degree was in electronics and computer hardware design...I learned "assembler" (opcodes) first.
From: J. Clarke on 8 May 2010 19:58 On 5/8/2010 4:12 PM, Gary L. Scott wrote: > On 5/8/2010 1:30 PM, J. Clarke wrote: >> On 5/8/2010 1:03 PM, Louis Krupp wrote: >>> On 5/8/2010 7:24 AM, J. Clarke wrote: >>>> On 5/8/2010 1:07 AM, glen herrmannsfeldt wrote: >>>>> Jim Xia<jimxia(a)hotmail.com> wrote: >>>>> >>>>>>> F77 is pretty easy to understand and learn if you have any kind of >>>>>>> math >>>>>>> aptitude. ?The advanced features and syntax of f90 and up obscure >>>>>>> the >>>>>>> language, in my opinion. ? I think it would be wise to learn the >>>>>>> basics >>>>>>> before going on to the esoteric stuff, especially if you don't >>>>>>> already >>>>>>> know some other programming languages. >>>>> >>>>>> I would have agreed with these opinions 15 years ago. As a physicist, >>>>>> all I cared were algorithms and computations expressed mathmetically. >>>>>> I even canceled an enrollment of a course on Scientific Computations >>>>>> using Fortran 90. But then after I've moved across multiple fields >>>>>> and different languages, I view these opinions as near-sighted and >>>>>> narrow minded. >>>>> >>>>> If you have already used other languages, and are used to thinking >>>>> in programming language terms, then yes. There are some features >>>>> in Fortran 2003 that will take some getting used to, but not so bad. >>>>> >>>>> But the OP was asking about it as a beginner. Are there any >>>>> beginner level Fortran 2003 books? Is there (I haven't looked) >>>>> a "Fortran 2003 for Dummies" yet? >>>> >>>> Not a "for dummies" but there is a university text ("Fortran 95/2003 >>>> for >>>> Scientists and Engineers" by Chapman) aimed at freshmen with no prior >>>> programming experience other than what one gets in high school or >>>> teaches oneself. I've not seen it and have no idea if it's any good. >>>> >>>>>> True, if you want to write a toy program in one >>>>>> afternoon, F77 can pretty much suffice what you need. But from a >>>>>> serious software engineering point of view, F77 or F90/95 are >>>>>> handicaped. Most Fortran programs I've seen are brittle and hard to >>>>>> modify or integrate with other components. This was partially caused >>>>>> by the lack of facility in these old languages. But more importantly >>>>>> these softwares were mostly written by scientists/engineers who >>>>>> normally lacked formal trainings in software engineering. As I see >>>>>> it, if we don't encourage newcomers to proper learn the principles in >>>>>> software engineers and embrace the new language features that >>>>>> encourge >>>>>> these practices, and keep teaching them how to write old F77/F90 >>>>>> code, >>>>>> I'd say we'll drive them away from Fortran in no time. >>>>> >>>>> Some people only need to write small, simple programs. It is, >>>>> at least, a good way to start. >>>>> >>>>>> I've written F77 longer than any other languages. However after real >>>>>> application experiences with C, C++ and Java in a number of >>>>>> fields, my >>>>>> view on Fortran changed dramatically. Coming back to Fortran 7 years >>>>>> ago, I picked up Fortran 2003 and never wrote a F77/F90 code again. >>>>>> I'm looking forward to seeing what F2008 offers me :-) >>>>> >>>>> I don't know how easy C89 is to learn as a first language, but it is, >>>>> in most ways, a fairly simple language. A small number of different >>>>> statements and intrinsic types. The Java language (separate from >>>>> the standard class libraries) is also fairly small, though somewhat >>>>> more complicated than C89. >>>> >>>> I think if you already know F77 or earlier, C becomes more difficult to >>>> learn well--as the saying goes "you can write Fortran in any language" >>>> and inertia leads one to treat such things as pointers as being >>>> complicated add-ons rather than essential tools. >>> >>> To be pedantic, this might be true if F77 (or FORTRAN IV) is all you >>> know, but experience with assembler makes C easier to learn. That's how >>> I did it; I compiled VAX C files with /MACHINE_CODE or whatever it was >>> turned on, and I eventually figured out what those pointers were all >>> about. >> >> The assumption I was making was that one had only one language and it >> was F77 or earlier. Anybody who can program in assembler is working well >> beyond a beginner level. >> >>> It didn't hurt that I was using the original Kernigan & Richie C manual. >>> I wouldn't want to give up ANSI C and go back to that, but it was nice >>> starting with something short and concise. >>> >>> Fortran might be similar; do you learn something simple (e.g., FORTRAN >>> IV, my first language) so you can get something done right away (I >>> actually couldn't, since my FORTRAN LOAD card started in the wrong >>> column, and nobody caught it, and my first successful program was in >>> Burroughs ALGOL), or do you take the time to learn something more robust >>> (like Fortran 95/2003)? >> >> I think if you're going to learn Fortran at all you should learn the >> most recent that is available to you. There are too many other "get >> something done right away" options out there today that require minimal >> knowledge of programming. >> >> >> > My degree was in electronics and computer hardware design...I learned > "assembler" (opcodes) first. That's nice but I don't see how it has bearing on the question of learning Fortran 77 vs a newer version.
From: Gordon Sande on 8 May 2010 20:56 On 2010-05-08 20:58:01 -0300, "J. Clarke" <jclarke.usenet(a)cox.net> said: >> F77 is pretty easy to understand and learn if you have any kind of >> math >> aptitude. ?The advanced features and syntax of f90 and up obscure >> the >> language, in my opinion. ? I think it would be wise to learn the >> basics >> before going on to the esoteric stuff, especially if you don't >> already >> know some other programming languages. This sounds like the motivation for the subset of fortran 95 called "F". There is a pdf manual for the F subset of F95 and even some flags on Gfortran to just use F. You avoid common, use modules, avoid some other stuff and are told to follow a committee's guide to software engineering style. In total not bad even if not everyone agrees with all the details. Would seem to be a better choice than F77 and allow immediate progression on to F95.
From: Jerry DeLisle on 8 May 2010 21:49
On 05/06/2010 01:46 PM, Allamarein wrote: > I'm a newbie in Fortran 77. It's possible to find a manual with built- > in statements and that show this language, without digressing too > much? Go here: Free compilers for download and other useful information. http://gcc.gnu.org/wiki/GFortran Regards, Jerry |