Women in Technology

Hear us Roar



Article:
  Technologies to Watch: A Look at Four That May Challenge Java’s Development Dominance
Subject:   What decade was that?
Date:   2005-10-20 19:28:23
From:   perrin
Response to: What decade was that?

I'll tell you what surprises me the most is that Java people are looking so eagerly at Ruby and Java-specific inventions like Groovy when Python (in the form of Jython) has been available to them for so long. I would have expected Python to be a very natural fit, and Jython would make it easy to jump back to Java if you needed to access some existing Java code. Any thoughts on why Python didn't capture the hearts of the Java community the way Ruby now is?
Full Threads Oldest First

Showing messages 1 through 7 of 7.

  • What decade was that?
    2005-10-24 06:50:50  ikayak [View]

    I'm actually a big fan of Python. It's expressive, clean, object oriented (but not as OO as Ruby), and has a richer set of libraries. But there's a catalyst for Ruby and not one for Python, so I'm going to choose to ride the bigger wave.
  • What decade was that?
    2005-10-21 05:47:19  Ged.Byrne [View]

    I think the problem with Jython was that Python's Objects are just too strange for the Java programmer.

    While Python does Objects, Ruby is OO to its very core.

    I think this makes it a better fit for most Java programmers.
    • What decade was that?
      2005-10-21 09:40:58  jaylogan [View]

      Python is OO to its very core as well.
      Everything in Python is an object.
      I don't get your point.


      class MyClass:
      def say_hello(self, some_name):
      print 'Hello', some_name

      m = MyClass()
      m.say_hello('bob')
      • What decade was that?
        2005-10-22 01:47:52  Danie [View]

        Python is not OO to its core.

        To qualify, it must at least adhere to the "everything is an object" principle. In Ruby (and Smalltalk) everything are objects. Even numbers. You can do this in Ruby:


        class Fixnum
        # Redefine +
        def +(other)
        "Addition is now obsolete"
        end
        end
        puts 5 + 2


        The result will that string.
        • Do your homework
          2005-10-22 06:32:19  jpersson [View]

          All the numeric types are also represented as objects in Python, so I recommend you to do you homework before you start critizing other languages.

          The two languages are actually quite similar when it comes to OO-features (the most notable exception is probably that Ruby lacks multiple inheritance), but part of the Ruby community seems to think that the only way to get any attention is to pick on other languages and by selling in Ruby as a better Python.

          Coming from Python I'm having a hard time seeing what invention Ruby has brought into the game, but then again I rather see Ruby growing into a viable alternative than to have to program in Java for the rest of my life.
          • Do your homework
            2005-10-24 23:12:33  Ged.Byrne [View]

            I should have worded myself better. It isn't that Python isn't OO, its that python doesn't feel OO.

            Python is multiparadigm, which means that it actually brings more to the table than Ruby. The average Java programmer could probably benefit from learning Python much more than Ruby because it will teach them more.

            And that is the problem. So few programmers want to learn new stuff.

            If they are building a class, they'll follow the path they've always followed:

            "I'll start with the private members. How do I declare a private member in Python. What, no encapsulation! I need an OO language!"

            Obviously they're wrong, but it doesn't take much to take a programmer out of their comfort zone.

            With Ruby they get to follow the familiar path, declaring Java like objects in Ruby the same way they that C programmers were once able to write C like code when they started using Java.
    • What decade was that?
      2005-10-21 09:39:31  jaylogan [View]

      Python is OO to its very core as well.
      Everything in Python is an object.
      I don't get your point.

      class MyClass:
      def say_hello(self, some_name):
      print 'Hello', some_name


      m = MyClass()
      m.say_hello('bob')