which one do you prefer? python with C# or java?

Devin Jeanpierre jeanpierreda at gmail.com
Sat Jun 9 19:55:57 EDT 2012


On Sat, Jun 9, 2012 at 7:04 PM, becky_lewis <bex.lewis at gmail.com> wrote:
> Lisp and Clojure are functional languages.

Sorry, pet peeve. Lisps are a class of languages that are only united
by their common syntax and their use of syntax transformations
(macros). Most lisps are not really functional at all, not any moreso
than Python. I mean, sure, they have first class functions, and map,
and reduce -- but so does Python. (On the other hand, they sometimes
support creation of immutable types, Python makes this difficult).

There are functional lisps, of course, just like there are imperative
ones -- see, for example, Qi and Liskell.

> However, if you're really adamant about going with Java or C# I'd
> probably go with Java. Not only can you play around on multiple
> platforms but should you decide to give Clojure a go in the future
> it'll come in handy :) (Clojure runs on the JVM so you can make use of
> Java libraries directly from it).

On the contrary, of the two, I would learn C#, because it's more fun
to work with than Java (subjective as that judgement may be.)  They've
got your type inference here, nullable types there, dynamic typing
over here, generators all the way back there...

But if any language is available, I would learn C. All these
high-level languages are really more similar than they are different
(although Java-style static typing is kinda interesting). C has,
fundamentally, some properties very few programming languages do, with
regards to memory access and safety, as well as compilation model and
status (as the lingua franca of ABIs).

It also can work together with CPython and PyPy, via wrappers written
in C itself, or Cython or ctypes.

Other weird/great languages that expand your mind: Prolog, Haskell,
Agda (learn it after Haskell). Of those three, Prolog would be easiest
to use with Python, due to its predictable execution and the existence
of bindings (search PyPI).

-- Devin



More information about the Python-list mailing list