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

Discussion in 'Python' started by Yesterday Paid, Jun 9, 2012.

  1. I'm planning to learn one more language with my python.
    Someone recommended to do Lisp or Clojure, but I don't think it's a
    good idea(do you?)
    So, I consider C# with ironpython or Java with Jython.
    It's a hard choice...I like Visual studio(because my first lang is VB6
    so I'm familiar with that)
    but maybe java would be more useful out of windows.

    what do you think?
     
    Yesterday Paid, Jun 9, 2012
    #1
    1. Advertising

  2. Yesterday Paid

    becky_lewis Guest

    Lisp and Clojure are functional languages. Learning one of those (or a
    similar language) will help by providing you with a fairly different
    perspective on how to approach programming problems. Personally I
    think learning Lisp or Clojure is good advice.

    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 Jun 9, 11:44 pm, Yesterday Paid <> wrote:
    > I'm planning to learn one more language with my python.
    > Someone recommended to do Lisp or Clojure, but I don't think it's a
    > good idea(do you?)
    > So, I consider C# with ironpython or Java with Jython.
    > It's a hard choice...I like Visual studio(because my first lang is VB6
    > so I'm familiar with that)
    > but maybe java would be more useful out of windows.
    >
    > what do you think?
     
    becky_lewis, Jun 10, 2012
    #2
    1. Advertising

  3. Yesterday Paid

    Paul Rubin Guest

    Yesterday Paid <> writes:
    > I'm planning to learn one more language with my python.
    > Someone recommended to do Lisp or Clojure, but I don't think it's a
    > good idea(do you?)


    Why do you want to do that?

    First of all, why not stick with learning one language at a time? Get
    familiar with one before moving on to the next.

    Second, what is your goal in wanting to learn multiple languages? The
    right advice to give you depends on what your goals are.

    In my opinion (this is not a universally accepted notion), Python and
    Clojure are at least spiritually similar to Lisp. So if you know one of
    them, the other two should be easy. That might be good or bad depending
    on your goals. Good because it means you get extra tools without a lot
    of extra effort. Bad because you're learning something close to
    something you already know, rather than something new and different.

    I'd suggest C# after Python, out of languages in your list. Not because
    C# is great or anything like that, but because it's different, so you
    get exposed to more concepts. After C# you might try Haskell, which
    will expand your horizons even further.
     
    Paul Rubin, Jun 10, 2012
    #3
  4. [becky_lewis <>]

    > Lisp and Clojure are functional languages.


    No, they're not.

    But you can (and often will) do quite a bit of functional programming in
    Lisp, as it lends itself quite naturally to that way of thinking.

    But in (Common) Lisp you also have CLOS, which is a rather different way
    to do object oriented programming. It will widen your horizon in more
    than one way.

    The advice to learn just one programming language at a time seems sound,
    though. I would take it, if I were you.

    --
    * Harald Hanche-Olsen <URL:http://www.math.ntnu.no/~hanche/>
    - It is undesirable to believe a proposition
    when there is no ground whatsoever for supposing it is true.
    -- Bertrand Russell
     
    Harald Hanche-Olsen, Jun 10, 2012
    #4
  5. Yesterday Paid

    becky_lewis Guest

    My mistake about Lisp being purely functional (I have very little
    experience with common Lisp itself), though Clojure is. That doesn't
    change my point, to which you appear to agree, Lisp and Clojure teach
    folks a different way of approaching problems, which is always
    useful :)

    On Jun 10, 12:25 pm, Harald Hanche-Olsen <> wrote:
    > [becky_lewis <>]
    >
    > > Lisp and Clojure are functional languages.

    >
    > No, they're not.
    >
    > But you can (and often will) do quite a bit of functional programming in
    > Lisp, as it lends itself quite naturally to that way of thinking.
    >
    > But in (Common) Lisp you also have CLOS, which is a rather different way
    > to do object oriented programming. It will widen your horizon in more
    > than one way.
    >
    > The advice to learn just one programming language at a time seems sound,
    > though. I would take it, if I were you.
    >
    > --
    > * Harald Hanche-Olsen     <URL:http://www.math.ntnu.no/~hanche/>
    > - It is undesirable to believe a proposition
    >   when there is no ground whatsoever for supposing it is true.
    >   -- Bertrand Russell
     
    becky_lewis, Jun 10, 2012
    #5
  6. Yesterday Paid

    Matej Cepl Guest

    On 10/06/12 00:44, Yesterday Paid wrote:
    > I'm planning to learn one more language with my python.


    Just my personal experience, but after passively learning many many
    languages, I came to the conclusion that I (and I suppose many others)
    am able to learn only one platform well. The point is that you are never
    interested in learning *a language*, everybody who has at least some
    touch with programming can learn most languages in one session in the
    afternoon. But nobody is interested in you knowing a language, you need
    to know the platform with all libraries, standards, style, and culture.
    And *that* demands you focus on one language completely.

    Yes, of course, you will know couple of other languages and be able to
    write a thing in it (everybody needs to know a bit of JavaScript these
    days, and if you are on Unix/Linux,Mac OS X, you need to know a bit of
    shell scripting), but that's different from "Zen & Writing" (that's my
    personal homage to recently deceased Ray Bradbury and his essay
    http://www.worldcat.org/search?qt=wikipedia&q=isbn:1877741094). The
    language in which you write those 100 lines of code per day (that's my
    rough estimate of an equivalent for Bradbury's daily portion of prose to
    be written) should be IMHO only the one.

    I think the similarity with story writing makes a lot of sense. Yes,
    many people speak and write more than one language (me included, English
    is not my first language), but that's not the same as writing stories
    professionally. At the moment, I can think only about one successful
    famous writer how changed his main language (Kundera), but I don't
    recall ATM any writer who would be writing in multiple languages at one
    time. (yes, switches between main programming languages is more
    possible, because programming languages are endlessly less complicated
    than natural ones)

    Just my 0.02CZK

    Matěj
     
    Matej Cepl, Jun 10, 2012
    #6
  7. On Sun, Jun 10, 2012 at 11:40 PM, Matej Cepl <> wrote:
    > Just my personal experience, but after passively learning many many
    > languages, I came to the conclusion that I (and I suppose many others) am
    > able to learn only one platform well. The point is that you are never
    > interested in learning *a language*, everybody who has at least some touch
    > with programming can learn most languages in one session in the afternoon.
    > But nobody is interested in you knowing a language, you need to know the
    > platform with all libraries, standards, style, and culture. And *that*
    > demands you focus on one language completely.


    Currently, I'm working professionally in Pike, C++, bash, PHP, and
    Javascript, but only one platform: Unix. Everything's done to our own
    internal philosophy, which mostly aligns with the Unix notion of
    building small tools that link together (rather than monoliths for
    entire tasks). Learning and managing multiple languages isn't itself a
    problem, though I do recommend learning just one at a time until you
    stop considering yourself a novice (master a half-dozen languages or
    so, that's a start).

    ChrisA
     
    Chris Angelico, Jun 10, 2012
    #7
  8. Yesterday Paid

    Paul Rubin Guest

    Matej Cepl <> writes:
    > The point is that you are never interested in learning *a language*,
    > everybody who has at least some touch with programming can learn most
    > languages in one session in the afternoon.


    Really, that's only if the new language is pretty much the same as the
    old ones, in which case you haven't really learned much of anything.
    Languages that use interesting new concepts are challenges in their own
    right.

    Here is an interesting exercise for statically typed languages,
    unsuitable for Python but not too hard in Haskell:

    http://blog.tmorris.net/understanding-practical-api-design-static-typing-and-functional-programming/

    It doesn't require the use of any libraries, standards, style, or
    culture. I can tell you as a fairly strong Python programemr who got
    interested in Haskell a few years ago, it took me much longer than an
    afternoon to get to the point of being able to solve a problem like the
    above. It required absorbing new concepts that Python simply does not
    contain. But it gave me the ability to do things I couldn't do before.
    That's a main reason studying new languages is challenging and
    worthwhile.
     
    Paul Rubin, Jun 10, 2012
    #8
  9. Yesterday Paid

    Matej Cepl Guest

    On 10/06/12 18:32, Paul Rubin wrote:
    > Really, that's only if the new language is pretty much the same as the
    > old ones, in which case you haven't really learned much of anything.
    > Languages that use interesting new concepts are challenges in their own
    > right.


    Well, I could at least passively read many languages (starting with
    Pascal, C, and unsuccessful attempt to learn Prolog, so even statically
    typed languages are not that mysterious to me), so learning new ones is
    not that problem. And yes, to be completely honest, functional languages
    are my weakest part (although I have used Emacs for some time, I still
    haven't learned writing in any Lisp properly).

    Matěj
     
    Matej Cepl, Jun 10, 2012
    #9
  10. Yesterday Paid

    Paul Rubin Guest

    Matej Cepl <> writes:
    > Well, I could at least passively read many languages (starting with
    > Pascal, C, and unsuccessful attempt to learn Prolog, so even
    > statically typed languages are not that mysterious to me),


    I wouldn't count Pascal or C as statically typed in any interesting
    way. C++ (template generics), ML, or Haskell would be more meaningful.
    Prolog is worth spending more time on, and it's on my own list.

    > so learning new ones is not that problem. And yes, to be completely
    > honest, functional languages are my weakest part (although I have used
    > Emacs for some time, I still haven't learned writing in any Lisp
    > properly).


    You might start with Abelson and Sussman's classic book:
    http://mitpress.mit.edu/sicp
     
    Paul Rubin, Jun 10, 2012
    #10
  11. Yesterday Paid

    Matej Cepl Guest

    On 10/06/12 22:40, Paul Rubin wrote:
    > You might start with Abelson and Sussman's classic book:
    > http://mitpress.mit.edu/sicp


    I know that, and it lies on my badtable for some time already, but I
    just never got enough excited about the idea yet. Python is just much
    more fun.

    Matěj
     
    Matej Cepl, Jun 10, 2012
    #11
  12. Yesterday Paid

    Paul Rubin Guest

    Paul Rubin, Jun 10, 2012
    #12
  13. Yesterday Paid

    rusi Guest

    On Jun 10, 6:40 pm, Matej Cepl <> wrote:
    > On 10/06/12 00:44, Yesterday Paid wrote:
    >
    > > I'm planning to learn one more language with my python.

    >
    > Just my personal experience, but after passively learning many many
    > languages, I came to the conclusion that I (and I suppose many others)
    > am able to learn only one platform well. The point is that you are never
    > interested in learning *a language*, everybody who has at least some
    > touch with programming can learn most languages in one session in the
    > afternoon. But nobody is interested in you knowing a language, you need
    > to know the platform with all libraries, standards, style, and culture.
    > And *that* demands you focus on one language completely.


    Hi Matěj! If this question is politically incorrect please forgive me.
    Do you speak only one (natural) language -- English?
    And if this set is plural is your power of expression identical in
    each language?

    Speaking for myself I can think of examples in Hindi, Marathi,
    Sanskrit and Tamil that when translated into English are so tame as to
    almost completely miss the point...
     
    rusi, Jun 11, 2012
    #13
  14. Yesterday Paid

    Broad Liyn Guest

    在 2012å¹´6月10日星期日UTC+8上åˆ6æ—¶44分44秒,Yesterday Paid写é“:
    > I'm planning to learn one more language with my python.
    > Someone recommended to do Lisp or Clojure, but I don't think it's a
    > good idea(do you?)
    > So, I consider C# with ironpython or Java with Jython.
    > It's a hard choice...I like Visual studio(because my first lang is VB6
    > so I'm familiar with that)
    > but maybe java would be more useful out of windows.
    >
    > what do you think?


    of course java is the best option in my opinion.There is no need to providemany evidences that java is better than c# because its advantages are really obvious.But java IDEs are not as convenient as visual studio.

    Anyway,it's on your choice.No matter what you option is,keeping going on itwill make your skill more and more mature.Programming languages are just tools,programmer themselves are the key.
     
    Broad Liyn, Jun 11, 2012
    #14
  15. On Sun, 10 Jun 2012 21:46:50 -0700 (PDT)
    Broad Liyn <> <> wrote:

    > of course java is the best option in my opinion.There is no need to
    > provide many evidences that java is better than c# because its
    > advantages are really obvious.
    >


    Not as obvious as you'd imagine... I can't think of many.

    --
    Corey Richardson
     
    Corey Richardson, Jun 11, 2012
    #15
  16. Yesterday Paidæ–¼ 2012å¹´6月10日星期日UTC+8上åˆ6時44分44秒寫é“:
    > I'm planning to learn one more language with my python.
    > Someone recommended to do Lisp or Clojure, but I don't think it's a
    > good idea(do you?)
    > So, I consider C# with ironpython or Java with Jython.
    > It's a hard choice...I like Visual studio(because my first lang is VB6
    > so I'm familiar with that)
    > but maybe java would be more useful out of windows.
    >
    > what do you think?


    If the goal is to write programs to be cross-platform,
    then I suggest some utilities like p2c (pascal to c), and f2c (fortran to c),
    and etc. to be available.

    Also source programs which are structured well with unit tests do help a lot
    in translations to other computer languages.
     
    88888 Dihedral, Jun 11, 2012
    #16
  17. On 10.06.2012 23:27, Paul Rubin wrote:
    > Here is an exercise from the book that you might like to try in Python:
    >
    > http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_idx_3894
    >
    > It's not easy ;-)


    I liked this exercize. At first I wrote my own merger.

    > def merge(*iterables):
    > iterables = list(iterables)
    > current = [i.next() for i in iterables]
    > last = None
    > while True:
    > m = min(current)
    > while last == m:
    > p = current.index(m)
    > try:
    > current[p] = iterables[p].next()
    > except StopIteration:
    > del current[p]
    > del iterables[p]
    > if len(current) == 0:
    > raise StopIteration
    > m = min(current)
    > yield m
    > last = m


    But then I realised the vast library of python already contained (a
    faster) one (propably based upon
    <http://code.activestate.com/recipes/491285-iterator-merge/>), which
    just needed to be enhanced a little bit to allow duplicate items to be
    removed:

    > import heapq
    >
    > def skipdups(m):
    > l = k = m.next()
    > yield k
    > while True:
    > while l == k:
    > k = m.next()
    > yield k
    > l = k
    >
    > def gen_s():
    > s = [1]
    > m = skipdups(heapq.merge(*[(lambda j: (k*j for k in s))(n) for n in [2,3,5]]))
    > yield s[0]
    > while True:
    > k = m.next()
    > s.append(k)
    > yield k


    Now gen_s() generates the wanted sequence.

    Greetings
     
    Alexander Blinne, Jun 11, 2012
    #17
  18. Yesterday Paid

    Tomasz Rola Guest

    On Sat, 9 Jun 2012, Yesterday Paid wrote:

    > I'm planning to learn one more language with my python.
    > Someone recommended to do Lisp or Clojure, but I don't think it's a
    > good idea(do you?)
    > So, I consider C# with ironpython or Java with Jython.
    > It's a hard choice...I like Visual studio(because my first lang is VB6
    > so I'm familiar with that)
    > but maybe java would be more useful out of windows.
    >
    > what do you think?


    If you don't know C yet, I second recommendation to learn it. It is a very
    70-tish and 80-tish language, but it is still very relevant if you want to
    call yourself a programmer (rather than a hobbyist, with all credits due
    to clever genius hobbyists out there). There are things I would rather do
    in C than in any other language (like, writing a Python interpreter or
    Linux kernel - wait, what you say they have been written already?). Also,
    it gives one a way to handtune the code quite a lot (at expense of time,
    but this is sometimes acceptable), to the point where next choice is
    assembly (and results not necessarily better)...

    Later on, since C and C++ share quite a bit, you can gradually include C++
    elements into your code, thus writing in a kinda "bettered C" (compiled
    with C++ compiler), using constructs like "const" to make your programs
    more correct. And you will learn to not use "new" for variables, which is
    good thing. However, some C++ constructs include performance penalty, so
    it is good to not better it too much.

    Later on, you could choose from the list:

    - Common Lisp - "nice industrial standard" (depends on one's preferred
    definition of "nice", of course, as well as "industrial" and "standard")

    - Racket - Scheme on steroids, with IDE, JIT and crossplatform-ity (I can
    think of somebody writing Python/Racket to be used in this environment but
    it is hard to imagine someone doing the other direction, so go figure ;-)

    http://www.reddit.com/r/programming/comments/i1slm/amazing_tutorial_demonstrating_the_power_of/

    http://hashcollision.org/brainfudge/

    )

    - Haskell or Ocaml - but I have a feeling Ocaml is developing at slower
    pace now, with many people choosing Haskell (I guess they sometimes
    curse themselves for this, because behaviour of code in Haskell is a bit
    hard to predict, sometimes).

    If you want to delve into Java world, well, I consider Java an unbearably
    ugly hog. When I was younger and fearless I programmed a bit in Java, but
    nowadays, the only way I myself could swallow this would be to use some
    other language on top of it (Scala, Clojure or Kaffe).

    C# as a - kind of - Java clone from MS, is not really so attractive to me.

    (Yes, both Java and C# have some merits in some situations, so do COBOL,
    VB and Fortran but I tend to avoid such situations and thus life gets much
    simpler).

    If you would like to bend your mind a little, Racket or Forth or Smalltalk
    (in a form of SqueakVM) could do the job. Every time I read about
    Smalltalk and think how Java took over, I mentally weep.

    Regards,
    Tomasz Rola

    --
    ** A C programmer asked whether computer had Buddha's nature. **
    ** As the answer, master did "rm -rif" on the programmer's home **
    ** directory. And then the C programmer became enlightened... **
    ** **
    ** Tomasz Rola mailto: **
     
    Tomasz Rola, Jun 11, 2012
    #18
  19. Yesterday Paid

    Tomasz Rola Guest

    On Mon, 11 Jun 2012, Tomasz Rola wrote:

    > If you want to delve into Java world, well, I consider Java an unbearably
    > ugly hog. When I was younger and fearless I programmed a bit in Java, but
    > nowadays, the only way I myself could swallow this would be to use some
    > other language on top of it (Scala, Clojure or Kaffe).


    Uhuh, I meant Kawa, not Kaffe:

    http://en.wikipedia.org/wiki/Kawa_(Scheme_implementation)

    Regards,
    Tomasz Rola

    --
    ** A C programmer asked whether computer had Buddha's nature. **
    ** As the answer, master did "rm -rif" on the programmer's home **
    ** directory. And then the C programmer became enlightened... **
    ** **
    ** Tomasz Rola mailto: **
     
    Tomasz Rola, Jun 11, 2012
    #19
  20. Yesterday Paid

    Matej Cepl Guest

    On 11/06/12 06:20, rusi wrote:
    > Hi Matěj! If this question is politically incorrect please forgive me.
    > Do you speak only one (natural) language -- English?
    > And if this set is plural is your power of expression identical in
    > each language?


    I have written about that later ... no, I am a native Czech, but I have
    passive Russian, and active English. But there is a difference ... I can
    read and enjoy beautiful texts in Russian or English (couple of months
    read Eugen Onegin in Russian and that's just a beauty! or C.S.Lewis ...
    oh my!) but I will never be able to write professionally in these
    languages. I can write (as evidenced by this message) somehow in
    English, but I cannot imagine that I would be ever professional art
    writer or (even worse) poet. I could imagine (if spent couple of
    thousands of days working on it) that I would be a Czech professional
    writer though.

    Matěj
     
    Matej Cepl, Jun 11, 2012
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. clintonG
    Replies:
    17
    Views:
    919
    clintonG
    Oct 13, 2005
  2. Replies:
    6
    Views:
    355
  3. Luigi Donatello Asero

    Which one do you prefer?

    Luigi Donatello Asero, Sep 1, 2003, in forum: HTML
    Replies:
    13
    Views:
    732
    Luigi Donatello Asero
    Sep 5, 2003
  4. maincc
    Replies:
    5
    Views:
    669
    Richard Herring
    Jul 22, 2004
  5. Unforgiven
    Replies:
    3
    Views:
    389
    Unforgiven
    Oct 1, 2004
Loading...

Share This Page