John Hennessy (of Stanford University) and David Patterson (of the University of Berkeley), authors of the extremely well known Computer Architecture: A Quantitative Approach book talk about the challenges of Parallel Processing in an excellent interview in this month’s ACM Queue magazine.
Quoting David Patterson,
“I think today this shift toward parallelism is being forced not by somebody with a great idea, but because we don’t know how to build hardware the conventional way anymore.
This parallelism challenge involves a much broader community, and we have to get into applications and language design, and maybe even numerical analysis, not just compilers and operating systems. God knows who should be sitting around the table — but it’s a big table.
[Computer] Architects can’t do it by themselves, but I also think you can’t do it without the [computer] architects.”
Answering a question about the possibility of having one de-facto solution for developing parallel software, John Hennessy says:
“The fundamental problem is that we don’t have a really great solution.
[…] [H]ow we’re going to change our programming languages; what we can do in the architecture to mitigate the cost of various things, communication in particular, but synchronization as well.
Those are all open questions in my mind. We’re really in the early stages of how we think about this. If it’s the case that the amount of parallelism that programmers will have to deal with in the future will not be just two or four processors but tens or hundreds and thousands for some applications, then that’s a very different world than where we are today.”
to which David Patterson adds:
“On the other hand, there’s exciting stuff happening in software right now. In the open source movement, there are highly productive programming environments that are getting invented at pretty high levels. Everybody’s example is Ruby on Rails, a pretty different way to learn how to program. This is a brave new world where you can rapidly create an Internet service that is dealing with lots of users.
There is evidence of tremendous advancement in part of the programming community — not particularly the academic part. I don’t know if academics are paying attention to this kind of work or not in the language community, but there’s hope of very different ways of doing things than we’ve done in the past.”
and he concludes:
“I guess that’s the right question: What can we do to engage the open source community to get innovative people, such as the authors of Ruby on Rails and other innovative programming environments? The parallel solutions may not come from academia or from research labs as they did in the past.”
This is a fantastic appreciation of Ruby‘s and Ruby on Rails’ potential, isn’t it?
(Article quotes and image courtesy of ACM)
aadil says
Is it me or does the guy on the left look like Patrick Stewart?
;D
Yashvin says
lets leave Ruby for some precious seconds :P
you have been tagged!
dont worry, its a straight-forward one!
have a nice time :)
Sundeep says
exactly wht i was thinking..
he looks like patrick steward
Ketwaroo D. Yaasir says
there are legions of patrick stewarts out there. It’s a pan-galactic conspiracy. Next thing you know, you’ll be beamed up onto a starship of the line, a funny many with tight lips and pointy ears will entertain you with derivations of higher order propositional logic, then you’ll be jettisoned out in hyperspace.
well, I’ll admit i didn’t read through the post completely nor did i read the full interview. But the title “Ruby on Rails is a Big Thing…â€Â.
Indeed Rails is a big thing, and it’ll probably become bigger than Ruby. The way i see it is that Rails is a technology that would interest the people who own/run/maintain websites with large volumes. So gradually(if not already), more emphasis will be put on developing Rails than Ruby. So effectively, Rails could be the tail that wags the dog.
More people on rails, less on ruby. the development of each may start to go along different tracks(pun).
In the end, there may be diverging(pun again) syntax popping up between Rails and Ruby. A bit like the many versions of Lisp.
Dunno if that is a good thing, or just an unenlightened pessimist’s review
avinash says
Hi Yaasir,
You’re just trying to be pessimist :-)
Ketwaroo D. Yaasir says
aye sir.
but the more negative the approach, the more room there is for positive improvement.
curiousEngine says
Greetings sir.
Here is a question concerning the possibility of using Ruby for the
Practical programming project for A Level Computing (Paper 2).
Quote from the official syllabus
“The Practical Programming Project is an individual piece of well-documented work involving a
problem that can be solved using a computing system. The emphasis is on the solution of
problems in a structured way using logic and reason to split a problem into sections that can be
programmed using a procedural or object-oriented programming language.
Candidates are free to choose problems/tasks identified by themselves or their teacher. The
choice of problem/task must allow the candidate to demonstrate the following programming skills
in one program:
arrays and/or records
different data types
selection
iteration
procedures
functions
searching techniques
files”
I did my project in Turbo pascal for Windows and having brilliantly showed the above skills
i got 50/50 in this paper . Pascal is pretty easy enough to learn but i dont find it powerful
enough to recommend my colleagues to do their project in it.
After reading the following article http://www.ariel.com.au/a/teaching-programming.html and
reading the comments concerning it, this question struck in my mind:
why not use Ruby – the better python, as programming language for this paper.
given that:
1. it is possible to demonstrate the above skills with it (THATS WHAT I WANT TO CONFIRM WITH YOU)
2. it is easy to learn. (If so, i’ll convince my teachers to teach this language at school)
3. Extremely object oriented language, better than java, but fairly easy to explain. (mari bon!)
euhh, if you have time sir, could you please take this into consideration, so that i’ll learn
Ruby thouroughly and produce sample codes showing the above 8 skills.
Hoping for a reply from your side.
avinash says
Hi curiousEngine (what is your real name by the way?),
Ruby is a very good choice for the A-level project. I’ve already written about Ruby. It is a modern language with extremely powerful features. And it’s a joy to teach and to learn.
As for your existentialist questions,
(1) Yes! Ruby supports (i) arrays (ii) data types using classes (iii) if/unless statements (iii) while and extremely powerful iterators (iv) procedures (v) functions (vi) searching techniques – most Ruby collections support the find operation and you can easily write your own Quicksort or whatever (vii) files and all sorts of other streams.
(2) In my opinion, Ruby is one of the easiest languages to learn for two reasons (i) it has a consistent and simple syntax and (ii) great tutorials and books are available freely online.
(3) Yes! Ruby is extremely object oriented (everything is an object – like in Smalltalk). For me, it’s better than Java. And if you want to use the Java libraries, you can even use JRuby which is Ruby on the Java Virtual Machine.
Good luck!