Python, SmallTalk, Objective-C

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • j_mckitrick

    Python, SmallTalk, Objective-C

    Hi all!

    I've heard good things about SmallTalk, and I read that the IDE is
    extremely productive. Why is this the case? What are the technical
    points where Python and SmallTalk differ? Is SmallTalk really faster
    than Python?

    I tried Objective-C, but eventually dropped it for lack of support and
    the need to use NS-type classes to do anything productive. Python's
    built in containers and types are so much more concise. But if
    Objective-C is like C with SmallTalk features, why isn't it more
    popular for platforms other than OSX?

    Currently, I think Python is where I'm going to stay, but I wouldn't
    be opposed to checking out other options.

    jonathon
  • Dominic

    #2
    Re: Python, SmallTalk, Objective-C

    j_mckitrick wrote:[color=blue]
    > Hi all!
    >
    > I've heard good things about SmallTalk, and I read that the IDE is
    > extremely productive. Why is this the case? What are the technical
    > points where Python and SmallTalk differ? Is SmallTalk really faster
    > than Python?[/color]

    I think some Smalltalk implementations have pretty good jit builtin.
    In Python you often use C/C++ extensions for performance critical stuff.
    (Or more likely because there are so many C/C++ libraries around ;-)
    However there is at least one jit package for Python (psyco), which at
    least doubles the speed of my current application - for numerical
    functions. Objective-C, Smalltalk and Python have dynamic features
    so they'll be "slower" than let's say assembler and C. Unless you try
    to mimic dynamic stuff in C like GTK ;-) Then you'll suffer...[color=blue]
    >
    > I tried Objective-C, but eventually dropped it for lack of support and
    > the need to use NS-type classes to do anything productive. Python's
    > built in containers and types are so much more concise. But if
    > Objective-C is like C with SmallTalk features, why isn't it more
    > popular for platforms other than OSX?[/color]
    Why has Smalltalk never been popular? (compared to C/C++/Java)
    I don't know either.[color=blue]
    >
    > Currently, I think Python is where I'm going to stay, but I wouldn't
    > be opposed to checking out other options.[/color]

    I've tried Smalltalk and Objective-C to a lesser extent.
    Currently I am doing a simulator application and it's
    working great with Python. For graphics I've wrapped
    Allegro a game/graphics library with Pyrex which allows
    you to use "Python syntax" to access C data structures and functions.
    In Python you can do pattern matching on key-word function arguments,
    trace functions calls, delegate method/property access,
    "microthrea ds", almost everything you can think of.
    Documentation is excellent!
    And there are plenty of easy to use libraries.
    So yes, I think Python is great and I can recommend it!

    Smalltalk has been ahead of it's time and it's a quite
    interesting environment. However Python syntax/semantics
    seems much more naturally to me.
    In Smalltalk you are "locked" into your system image with
    1000s of classes. That's great if you like inheritance ;-)
    When you search the web for Smalltalk/Objective-C stuff
    you'll often encounter stalled links etc. Those languages don't
    get much attention any more. Apple might have changed this
    for Objective-C. Time will tell.
    I assume Apple uses Objective-C (actually the NeXT-people
    should know it ;-), because it's better suited for dynamic GUI
    applications than plain C or C++, though Trolltech claims that their
    precompiler-signal-slot mechanism can do this for C++. Which seems to be
    true, too some degree. Otherwise KDE etc. wouldn't be reality.

    Ciao,
    Dominic

    P.S. Look around, toy around and then decide for yourself :-)
    If you're interested in computer languages you probably
    also want to see Scheme/Erlang/Prolog (...) which do have
    some interesting cababilities but I wouldn't use those
    languages except for stealing ideas ;-) However you'll
    have to think in Python to really master it well.
    Other language idioms often do not map 1:1 into Python.
    There's often a more elegant pythonic way of doing it.
    [color=blue]
    >
    > jonathon[/color]


    Comment

    • Edward Diener

      #3
      Re: Python, SmallTalk, Objective-C

      Dominic wrote:[color=blue]
      > j_mckitrick wrote:[color=green]
      >> Hi all!
      >>
      >> I've heard good things about SmallTalk, and I read that the IDE is
      >> extremely productive. Why is this the case? What are the technical
      >> points where Python and SmallTalk differ? Is SmallTalk really faster
      >> than Python?[/color]
      >
      > I think some Smalltalk implementations have pretty good jit builtin.
      > In Python you often use C/C++ extensions for performance critical
      > stuff. (Or more likely because there are so many C/C++ libraries
      > around ;-) However there is at least one jit package for Python
      > (psyco), which at least doubles the speed of my current application -
      > for numerical functions. Objective-C, Smalltalk and Python have
      > dynamic features
      > so they'll be "slower" than let's say assembler and C. Unless you try
      > to mimic dynamic stuff in C like GTK ;-) Then you'll suffer...[color=green]
      >>[/color][/color]
      ..[color=blue]
      > I assume Apple uses Objective-C (actually the NeXT-people
      > should know it ;-), because it's better suited for dynamic GUI
      > applications than plain C or C++, though Trolltech claims that their
      > precompiler-signal-slot mechanism can do this for C++. Which seems to
      > be true, too some degree. Otherwise KDE etc. wouldn't be reality.[/color]

      This is only mildly apropos the original query about the lack of popularity
      of SmallTalk and Objective-C to Python, but you can do a signal-slot
      mechanism in pure C++, without precompiler hacks, using the Boost Signals
      library by Douglas Gregor. So the advantage of Obective-C over C++ for
      run-time event handling is currently nil. Of course there is more to dynamic
      GUI applications than just event handling.


      Comment

      • Mike Thompson

        #4
        Re: Python, SmallTalk, Objective-C

        j_mckitrick wrote:
        [color=blue]
        > Hi all!
        >
        > I've heard good things about SmallTalk, and I read that the IDE is
        > extremely productive. Why is this the case? What are the technical
        > points where Python and SmallTalk differ? Is SmallTalk really faster
        > than Python?
        >
        > I tried Objective-C, but eventually dropped it for lack of support and
        > the need to use NS-type classes to do anything productive. Python's
        > built in containers and types are so much more concise. But if
        > Objective-C is like C with SmallTalk features, why isn't it more
        > popular for platforms other than OSX?
        >
        > Currently, I think Python is where I'm going to stay, but I wouldn't
        > be opposed to checking out other options.
        >[/color]

        Cincom has taken over VisualWorks Smalltalk and taken it ahead in leaps
        and bounds over the last four years. VisualWorks provides an excellent
        IDE/environment, the likes of which does not exist for Python.

        At a purely language level, I prefer Python, but IMO for,
        multi-developer projects, the productivity you get from the combination
        of Smalltalk & VisualWorks is 2nd to none.

        Cincom have free versions of their environment available for download,
        so its easy to evaluate, although like any powerful system it takes a
        while to utilise properly/fully. I didn't really understand the
        terrific power of VisualWorks until I was able to look over the shoulder
        of an experienced smalltalk programmer.

        Having said all that, I have legacy C++ code (Boost.Python used) and I
        enjoy Python ... I just wish the Python IDEs were excellent, insted of
        just barely ok.

        --
        Mike

        Comment

        • j_mckitrick

          #5
          Re: Python, SmallTalk, Objective-C

          > At a purely language level, I prefer Python, but IMO for,[color=blue]
          > multi-developer projects, the productivity you get from the combination
          > of Smalltalk & VisualWorks is 2nd to none.
          >
          > Cincom have free versions of their environment available for download,
          > so its easy to evaluate, although like any powerful system it takes a
          > while to utilise properly/fully. I didn't really understand the
          > terrific power of VisualWorks until I was able to look over the shoulder
          > of an experienced smalltalk programmer.[/color]

          I keep hearing how productive VisualWorks is. Just exactly how is
          this so? Is it full of drag and drop object connecting and event
          handling? Or is it a powerful editor? Or is it one of those
          'inspector' style gui builders?
          [color=blue]
          > Having said all that, I have legacy C++ code (Boost.Python used) and I[/color]

          What is Boost.Python?

          jonathon

          Comment

          • j_mckitrick

            #6
            Re: Python, SmallTalk, Objective-C

            At a purely language level, I prefer Python, but IMO for,[color=blue]
            > multi-developer projects, the productivity you get from the combination
            > of Smalltalk & VisualWorks is 2nd to none.
            >
            > Cincom have free versions of their environment available for download,
            > so its easy to evaluate, although like any powerful system it takes a
            > while to utilise properly/fully. I didn't really understand the
            > terrific power of VisualWorks until I was able to look over the shoulder
            > of an experienced smalltalk programmer.[/color]

            I keep hearing how productive VisualWorks is. Just exactly how is
            this so? Is it full of drag and drop object connecting and event
            handling? Or is it a powerful editor? Or is it one of those
            'inspector' style gui builders?
            [color=blue]
            > Having said all that, I have legacy C++ code (Boost.Python used) and I[/color]

            What is Boost.Python?

            jonathon

            Comment

            • j_mckitrick

              #7
              Re: Python, SmallTalk, Objective-C

              At a purely language level, I prefer Python, but IMO for,[color=blue]
              > multi-developer projects, the productivity you get from the combination
              > of Smalltalk & VisualWorks is 2nd to none.
              >
              > Cincom have free versions of their environment available for download,
              > so its easy to evaluate, although like any powerful system it takes a
              > while to utilise properly/fully. I didn't really understand the
              > terrific power of VisualWorks until I was able to look over the shoulder
              > of an experienced smalltalk programmer.[/color]

              I keep hearing how productive VisualWorks is. Just exactly how is
              this so? Is it full of drag and drop object connecting and event
              handling? Or is it a powerful editor? Or is it one of those
              'inspector' style gui builders?
              [color=blue]
              > Having said all that, I have legacy C++ code (Boost.Python used) and I[/color]

              What is Boost.Python?

              jonathon

              Comment

              • Harry George

                #8
                Re: Python, SmallTalk, Objective-C

                j_mckitrick@big foot.com (j_mckitrick) writes:

                [snip][color=blue][color=green]
                > > Having said all that, I have legacy C++ code (Boost.Python used) and I[/color]
                >
                > What is Boost.Python?
                >
                > jonathon[/color]

                It is a way to hook python to C++ libraries. Kind of like SWIG.

                --
                harry.g.george@ boeing.com
                6-6M21 BCA CompArch Design Engineering
                Phone: (425) 342-0007

                Comment

                Working...