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