Print

Print


Received: from ironport.its.trinity.edu (131.194.151.199) by
 exchange.trinity.edu (131.194.151.15) with Microsoft SMTP Server id
 8.1.436.0; Thu, 28 Jul 2011 18:01:40 -0500
Received: from mail-msa1-prod-v.cc.nd.edu ([129.74.13.10])  by
 ironport.its.trinity.edu with ESMTP; 28 Jul 2011 18:01:41 -0500
Received: from lists1-prod-v.cc.nd.edu (lists1-prod-v.cc.nd.edu
 [129.74.250.38])	by mail-msa1-prod-v.cc.nd.edu (Switch-3.4.3/Switch-3.4.3)
 with ESMTP id p6SMpMxr030467;	Thu, 28 Jul 2011 19:00:42 -0400
Received: by LISTSERV.ND.EDU (LISTSERV-TCP/IP release 15.5) with spool id
          6556417 for [log in to unmask]; Thu, 28 Jul 2011 19:00:30
 -0400
Received: from mail-mx2-prod-v.cc.nd.edu (mail-mx2-prod-v.cc.nd.edu
          [129.74.250.244]) by lists1-prod-v.cc.nd.edu (8.13.1/8.13.1) with
          ESMTP id p6SN0Thl003525 for <[log in to unmask]>; Thu, 28 Jul
          2011 19:00:29 -0400
Received: from mail-gw0-f49.google.com (mail-gw0-f49.google.com
 [74.125.83.49])          by mail-mx2-prod-v.cc.nd.edu
 (Switch-3.4.3/Switch-3.4.3) with ESMTP          id p6SN0Svi021776
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128          verify=FAIL) for
 <[log in to unmask]>; Thu, 28 Jul 2011          19:00:29 -0400
Received: by gwb1 with SMTP id 1so2664534gwb.36 for
 <[log in to unmask]>;          Thu, 28 Jul 2011 16:00:28 -0700 (PDT)
Received: by 10.151.117.17 with SMTP id u17mr80717ybm.143.1311894028606; Thu,
          28 Jul 2011 16:00:28 -0700 (PDT)
Received: from [192.168.4.2] (cpe-098-122-189-140.nc.res.rr.com
          [98.122.189.140]) by mx.google.com with ESMTPS id
          c6sm2467609yba.28.2011.07.28.16.00.25 (version=TLSv1/SSLv3
          cipher=OTHER); Thu, 28 Jul 2011 16:00:27 -0700 (PDT)
Content-Type: text/plain; charset="US-ASCII"; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 (Apple Message framework v936)
References: <[log in to unmask]>
            <[log in to unmask]>
            <[log in to unmask]>
X-Mailer: Apple Mail (2.936)
X-Source-IP: 74.125.83.49
X-ND-MTA-Date: Thu, 28 Jul 2011 19:00:48 EDT
Message-ID: <[log in to unmask]>
Date: Thu, 28 Jul 2011 19:00:24 -0400
Reply-To: Code for Libraries <[log in to unmask]>
Sender: Code for Libraries <[log in to unmask]>
From: Simon Spero <[log in to unmask]>
Subject: Re: [CODE4LIB] Advice on a class
To: <[log in to unmask]>
In-Reply-To: <[log in to unmask]>
Precedence: list
List-Help: <http://listserv.nd.edu/cgi-bin/wa?LIST=CODE4LIB>,
           <mailto:[log in to unmask]>
List-Unsubscribe: <mailto:[log in to unmask]>
List-Subscribe: <mailto:[log in to unmask]>
List-Owner: <mailto:[log in to unmask]>
List-Archive: <http://listserv.nd.edu/cgi-bin/wa?LIST=CODE4LIB>
X-Source-IP: 129.74.250.38
Return-Path: [log in to unmask]
X-MS-Exchange-Organization-OriginalArrivalTime: 28 Jul 2011 23:01:40.9900
 (UTC)
X-MS-Exchange-Organization-AuthSource: ITS-AUSTIN.trinity.local
X-MS-Exchange-Organization-AuthAs: Anonymous
X-GFI-SMTP-Submission: 1
X-MS-Exchange-Organization-OriginalSize: 4988
X-MS-Exchange-Organization-Recipient-Limit-Verified: True

On Jul 27, 2011, at 10:32 PM, Bill Janssen wrote:

> If I'm hiring a programmer, I want them to know C and Python.  [...]  
> Various flavors of C are acceptable:  Objective-C is OK with me, and  
> C++ is a plus -- it's an order of magnitude more difficult than C to  
> use properly, and people who can sling it properly are rare.

I wouldn't say that C++ is an OOM harder than raw C to use properly;  
it just adds so many more ways to use it improperly, and templates are  
the work of the devil.   The problem with learning C++ is that it can  
be hard to predict what sort of code will be generated for very  
similar constructs, which is not a good thing for a low level  
language.  It's still always possible to fall back on C and inline  
assembler when you need it.

That's really the advantage of learning straight C as as low level  
language- it lets you see what sort of machine code corresponds to  
what sort of source code.  When combined with a good performance  
measuring suite you can get a much better feel for how different types  
of data access have completely different performance, what sort of  
things get optimized/vectorized cleanly, etc.  It also gives you an  
appreciation for how nice it is to be able to ignore these things most  
of the time  when using higher level languages.

Objective-C (counting the NS Foundation classes as part of the  
language) is a cleaner language, with a more dynamic object model;  
however, in current implementations the overhead of method calling is  
much too high, making the OO features only usable for relatively  
coarse grained methods. One thing that the Foundation classes show is  
how valuable it  can be to have long method names.

> Additional languages which carry weight with me on a resume are  
> OCaml, Processing, and any of Common Lisp, Scheme, or Clojure.

Did you mean Clozure?  The other two are kinds of lisp. :-P

Also, java should no more be considered in isolation from IntelliJ  
Idea that a lisp should be used without an emacs.

Simon