Live data from Hacker News

Parallel Python or Ruby?

news.ycombinator.com

1–10 of 21 posts

Parallel Python or Ruby?

#1
If you were to add some parallel language constructs to Python or Ruby or , what would you add? Lets assume you are only allowed to add 1 or 2 constructs so you dont go changing the whole language upside-down. Also assume that you are not allowed to take something out of the language only add to it. Please describe in detail with actual examples if possible. Dont just say "I will add actors" at a very high level.

Re: Parallel Python or Ruby?

#2
Keep in mind that Python 2.6 already has the new multiprocessing package, which presents a simple interface for multiprocess computation.

I'd like to poke around with Python's compiler module and look at the AST--you could enforce that a certain class of functions have no side effects, and then spawn multiple processes to execute them semi magically.

Futures like the ones in IO (http://www.iolanguage.com/scm/git/checkout/Io/docs/IoGuide.h...) always struck me as a pretty cool way to abstract away synchronization problems. Using the multiprocess stuff as a background would be fun.

Re: Parallel Python or Ruby?

#3
One change to ruby that would be useful, would be to make Enumerable.collect run in parallel.

There's probably a whole bunch of other Enumerable methods that could be made to run in parallel as well.

Re: Parallel Python or Ruby?

#5
post #4

Haven't you heard about the egregious buffer overflow vulnerabilities found recently in Ruby? Not a good idea to use it for anything serious in light of those, IMO.

I'm not a Ruby fan, but wouldn't finding those buffer overflows make it more secure? Now that they've been found, they're fixed. (Sure, it could be indicative of overall careless design, but I don't think that's the case here. A few silly mistakes, now no longer a problem.)

Finally, Ruby has more than one implementation. Finding a hole in one implementation says nothing about the language overall.

Re: Parallel Python or Ruby?

#6
If you use Coro with Perl, you can say something like:

  async {
    do_something;
    cede;
    do_something;
  }

  do_something_else;
  cede;

See http://search.cpan.org/dist/Coro/Coro.pm for more information.

[Edit: If you want to see a continuation-based web framework built with Coro, look at Continuity: http://search.cpan.org/~awwaiid/Continuity-0.994/lib/Continu...

It's very cool.]

Re: Parallel Python or Ruby?

#7
post #5
post #4

Haven't you heard about the egregious buffer overflow vulnerabilities found recently in Ruby? Not a good idea to use it for anything serious in light of those, IMO.

I'm not a Ruby fan, but wouldn't finding those buffer overflows make it more secure ? Now that they've been found, they're fixed. (Sure, it could be indicative of overall careless design, but I don't think that's the case here. A few silly mistakes, now no longer a problem.) Finally, Ruby has more than one implementation. Finding a hole in one implementation says nothing about the language overall.

The mistakes are so amateurish that it should raise questions about the rest of the codebase (i.e. the defects which are yet to be found)...

Re: Parallel Python or Ruby?

#8
post #2

Keep in mind that Python 2.6 already has the new multiprocessing package, which presents a simple interface for multiprocess computation. I'd like to poke around with Python's compiler module and look at the AST--you could enforce that a certain class of functions have no side effects, and then spawn multiple processes to execute them semi magically. Futures like the ones in IO ( http://www.iolanguage.com/scm/git/che…

Hmm is poking around the AST necessary? What about looking at the bytecode instead?

Re: Parallel Python or Ruby?

#9
post #7
post #5

Earlier quoted context omitted.

I'm not a Ruby fan, but wouldn't finding those buffer overflows make it more secure ? Now that they've been found, they're fixed. (Sure, it could be indicative of overall careless design, but I don't think that's the case here. A few silly mistakes, now no longer a problem.) Finally, Ruby has more than one implementation. Finding a hole in one implementation says nothing about the language overall.

The mistakes are so amateurish that it should raise questions about the rest of the codebase (i.e. the defects which are yet to be found)...

What projects have you done?

Re: Parallel Python or Ruby?

#10
post #3

One change to ruby that would be useful, would be to make Enumerable.collect run in parallel. There's probably a whole bunch of other Enumerable methods that could be made to run in parallel as well.

gem install facets require "rubygems" require "facets/thread" %w[a b c].threaded_map{|str| puts str }

It's multicore if you're using jruby.

Post reply on HN