Archives


- Beowulf
- Beowulf Announce
- Scyld-users
- Beowulf on Debian

[Beowulf] g77 limits...

Many of your questions may have already been answered in earlier discussions or in the FAQ. The search results page will indicate current discussions as well as past list serves, articles, and papers.

Search

Gerry Creager N5JXS gerry.creager at tamu.edu
Tue Feb 28 06:19:29 PST 2006


I can't believe that, after this learned discourse, you've managed to 
avoid the classics like perl and php!

;-)
gerry

Robert G. Brown wrote:
> On Tue, 28 Feb 2006, Jeremy Baker wrote:
> 
>> I've read the preceding posts and wonder what should be the first three
>> languages that I might study from a general perspective? Perhaps I should
>> approach three contrasting languages, and I surmise Fortran and C 
>> represent
>> contrast? What type of Fortran would be a good start? Reference was 
>> made to
>> many types of languages, I tried to glean what I could, but being a
>> greenhorn to CS I was not able to recognize which codes were derivatives.
>> Any advice or suggestions?
> 
> 
> Oh, I'm full of advice here...
> 
> First a disclaimer.  You question has so many answers there is no
> answer.  All that any replies can do is help you make choices.
> 
> Now that I've gotten that out of the way... let me tell you what to
> do and ignore all those others who will reply.  Hah!  What do THEY
> know...:-)
> 
> Seriously -- I don't know what "a general perspective" means, so let me
> make a short list of languages to study depending on what you want to
> get out of them.
> 
> If you are interested in operating systems or general purpose
> application development on linux boxes, learn C, C, C and C.  C was
> co-invented by the same people that invented Unix (sorta) and the two
> have co-developed ever since.  The kernel is in C (for any unix you
> could name, pretty much).  The basic unix toolset is in C.  Device
> drivers are in C.  At a guess, 90% of the application code base in e.g.
> Fedora Core or Centos is in C, with some honorable mention apps in LIST
> and C++ or scripting languages.  If you are feeling adventurous or long
> for structure and protection from the harshnesses of C, you can always
> tack C++ on top of C, but start with C or you'll never learn about
> pointers and raw structs as you get lost in classes and the "C++ way".
> 
> If you are interested in doing numerical stuff, you will probably want
> to learn Fortran first (however revolting the idea as it SUCKS for doing
> "real application" development, I'm sorry, no real apologies to fortran
> enthusiasts out there).  However, as Greg has pointed out Fortran
> compilers are marginally more efficient than C compilers for numerical
> code, there is a HUGE numerical code base in fortran, lots of numerical
> libraries with a fortran interface, and honestly for certain classes of
> numerical application it is well suited.  C and/or C++ are also
> increasingly used for numerics though (the Gnu Scientific Library has a
> C interface), and unless you are serious about doing lots of scientific
> coding you're probably better off doing C or possibly C++ first instead.
> 
> If you are less concerned about existing application code or operating
> systems, and just want a language that is well-structured and friendly
> to developing NEW applications, C++ is a good choice.  If you learn it
> first, you will be mystified by a lot of C code, but people who learn it
> first tend to be perfectly happy with it and often never bother to learn
> C.  It is well-suited for application development where the tool works
> with data structures that can be thought of as "objects" that can be
> created, destroyed, and manipulated according to certain rules.  It is
> somewhat less well-suited (in my opinion, mind you, others would argue)
> to writing "procedural" code where the data objects are simple and
> straightforward (e.g. numerics where Fortran rules with C/C++ coming in
> second).  Its rules also form something of a straightjacket -- your
> protection and structure come at a small price in creativity,
> unless/until you learn BOTH C and C++ and can use the embedded power of
> C in your C++ code, breaking the rules as it were.  I think it is
> much easier to learn C++ first, but probably better overall to really
> mastet C and then move on to C++.  But some people who reply (who
> generally followed this latter path) are better qualified to remark on
> this.
> 
> These three are the only compilers I'd advise learning.  There are other
> interesting choices, sure, but very small code bases and much more
> specialized application spaces for any of them, and I'd honestly suggest
> that you start with just one based on what your needs are and the
> descriptions above.
> 
> However, I'd strongly suggest that you learn at least one scripting
> language from the choice of perl and python.  The question of which one
> is best is an open invitation to Jihad, so I will avoid it.  perl is the
> more C-like of the two -- good for procedural programming, a LOT of the
> language syntax and library calls are thin wrappers on top of the C
> calls, but it has significant enhancements, e.g. inline regular
> expression parsing.  python is the more object-oriented of the two (and
> more structured) with somewhat fascist rules for writing the actual
> code (but much protection gained from following them).  There are tons
> or very useful applications written in both.  You can do web-apps (CGI)
> in both.
> 
> java would be (in my opinion) a distant third choice because of the
> encumbrances and general PITA associated with putting the language
> interpreter on a machine -- java is only "pseudo"free code as Sun keeps
> it pretty strictly controlled and Microsoft is in a constant war with
> Sun to try to co-opt it or replace it.  There is plenty of code written
> in it, nonetheless, including a smattering of numerical code.  If you
> are interested in web-development it, or a perl-like OPEN SOURCE OPEN
> STANDARD language called PHP are not terrible choices, php WAY before
> java.
> 
> bash programming is always useful if you're interested in doing sysadmin
> work or systems programming as opposed to numerical or application
> programming.
> 
> So I'd recommend some pattern like:
> 
> [Fortran,perl,bash]  (numerical focus, unstructured, some systems)
> [C,perl,bash] (general purpose, unstructured, lots of systems work)
> [C++,python,] (general purpose, structured, no systems work)
> 
> or the like...  Don't try to tackle too compilers at once -- you'll go
> mad.  Learn one well, THEN tackle number two..., and you can leverage
> what you learn from the one in the other(s).
> 
>    rgb
> 
>>
>> -- 
>> Jeremy Baker
>> SBN 634
>> 337 College Hill
>> Johnson, VT
>> 05656
>>
> 

-- 
Gerry Creager -- gerry.creager at tamu.edu
Texas Mesonet -- AATLT, Texas A&M University	
Cell: 979.229.5301 Office: 979.458.4020 FAX: 979.862.3983
Office: 1700 Research Parkway Ste 160, TAMU, College Station, TX 77843



More information about the Beowulf mailing list