MONTREAL—Programming for parallel systems is becoming a key issue for developers, according to a panel of luminaries in the programming world.
At the OOPSLA (Object-Oriented Programming, Systems and Languages) conference here Oct. 23, the group used the 40th anniversary of Simula 67, the first object-oriented programming language, to take a look at programmings past and future.
Included in the panel were: Steven Fraser, director of engineering at Cisco Research, who chaired the group; James Gosling, a Sun Microsystems vice president, Fellow and creator of Java; Anders Hejlsberg, a Microsoft distinguished engineer and creator of C#; and Bertrand Meyer, founder of Eiffel Software and creator of the Eiffel programming language.
"Going forward, the big challenge we have today is we have to really think deeply about programming for concurrency," Hejlsberg said. "The models we have today for concurrency dont work."
He said that only the top 10 percent of programmers can adequately program for concurrent environments and it is not something for the masses.
"Were going to have to program differently, very differently," he said.
Gosling agreed with Hejlsberg.
"Going forward, with programming languages you have to think about what are the forces pushing on them," Gosling said. He noted that with Java, the forces were the ubiquity of the network and issues of security raised by that network.
"But going forward [with the programming paradigm] the big challenge will be to think about multi-threading," he said. "What will you do with a 4,000-core machine?"
Click here to read more about parallel processing as the next big thing.
Hejlsberg said developers need to move an abstraction level up. He said he has been speculating on the area of querying with his LINQ (Language Integrated Query) project.
"The LINQ work weve done is especially useful in parallel computing," he said. "We have an implementation called PLINQ," or Parallel LINQ, which automatically optimizes and parallelizes query operations based on dynamic runtime information.
Meanwhile, Hejlsberg sees a resurgence of functional programming and its influences. A comment of interest, in that Microsoft, of Redmond, Wash., recently announced plans to productize its research project F#, a functional language.
Functional programming treats computation as the evaluation of mathematical functions and avoids state and mutable data. Functional languages include APL, Erlang, Haskell, Lisp, ML, Oz, F# and Scheme.
Meyer said that "functional languages have invented concepts that found their way into procedural languages and made them better, but functional languages will never become the dominant way of programming."
Guy Steele, a Sun fellow in the companys Programming Language Research Group and a co-creator of the Scheme programming language, said, "Its likely in the future that programming will become increasingly functional but not entirely functional."
Gosling said the issue he has with functional programming is that only a small segment of the community seems to be able to or has an interest in learning it.
Hejlsberg also said he is fascinated with the resurgence of dynamic languages such as Ruby, Python and Perl, which have dynamic typing and give the developer more flexibility, as opposed to statically typed languages like C, C++ and Java.
"The attraction to Ruby has nothing to do with typing, but with this element of meta-programming. Dynamic languages or languages without types are precursors of whats going to happen in languages with types, because types are just better," Hejlsberg said to a loud "boo" from a member of the audience.
Hejlsberg also commented on the emergence of DSLs (domain-specific languages), saying DSLs very quickly end up needing parts of general-purpose languages.
Speaking on the move to solid state memory, Gosling said that "the real notion of what will change is databases. I say data structure, not database. Why do you want to use a database? Just use RAM. With the machines we make, you can put half a terabyte of RAM on them. And you dont use databases, you use RAM and things run like the wind."
Meanwhile Ole Lehrmann Madsen, a professor at Aarhus University in Denmark, who worked with one of the core developers of Simula, said it is important that programmers know about the history of programming languages to "prevent people from re-inventing old ideas."
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.