Welcome to Polyglot Programming
Call for Proposals: IEEE Software Issue on "Multiparadigm Programming"
November 6, 2009: Call for proposals for a special issue of IEEE Software on Multiparadigm Programming, with guest editors Dean Wampler, Tony Clark and Michael Feathers. Here is the opening paragraph of the CfP:
For most of today’s applications, using one language and one paradigm—for instance, object-oriented programming—is inadequate. Today’s applications are often polyglot, involving multiple languages, and multiparadigm, involving a mixture of deployment directives as well as functional, relational, object-oriented, aspect-oriented, and other paradigms. IEEE Software is soliciting articles for a special issue on multiparadigm programming, or MPP. It will explore MPP technologies, advantages, disadvantages, and applications ranging from embedded and IT systems to the Internet.
You can find out more information about the kinds of articles desired, guidelines for submitters, etc. on the CfP home page. Note that people who would be willing to review submissions are also needed. Contact Dean Wampler directly if you have questions.
About Polyglot Programming
Polyglot Programming1 is a website dedicated to exploring the benefits (and drawbacks) of combining multiple programming languages and multiple "modularity paradigms" in application development. The "paradigms" include Object-Oriented Programming, Aspect-Oriented Programming, Functional Programming, etc.
I call this combination polyglot and poly-paradigm programming (PPP), to give it a somewhat catchy name.
PPP is not a new idea. One of the most successful applications of all time is Emacs, which is still widely used even though it is over twenty years old. Emacs succeeded because it combines a fast kernel written in C, which gives Emacs speed and access to operating system services, combined with a scripting engine that uses a Lisp dialect called Emacs Lisp (or ELisp, for short). Most of the functionality of Emacs is implemented in ELisp. It is this scripting capability that has made Emacs so easy to adapt, even by end users, to meet changing needs over the past 20 years.
This site is an outgrowth of my work with clients on this topic, as well as industry trends. You can read more about my ideas on polyglot programming in this presentation
.
I also blog about these topics here. You can find older posts on the Object Mentor blog.
News:
October 22, 2009: Updated versions of (Son of) Better Ruby through Functional Programming
and Polyglot and Poly-Paradigm Programming for Better Agility
that I gave today at Strange Loop in St. Louis.
September 30, 2009: The videos of the Windy City Rails talks have been posted, including mine: (Son of) Better Ruby Through Functional Programming (
of slides here).
September 12, 2009: Today's Windy City Rails talk, (Son of) Better Ruby Through Functional Programming
. This version spends less time introducing the principles of Functional Programming and the mechanics of supporting them in Ruby. (See the earlier version
for more of those details.) Instead, I dive into ways that functional thinking improves the quality of our object-oriented (OO) code and when OO is not the best design choice. In particular, I argue how functional idioms are better for creating a successful software component model.
August 27, 2009: The notes for the Acceptance Testing Java Applications with Cucumber, RSpec, and JRuby
tutorial that Aslak Hellesøy and I did today at Agile 2009.
August 25, 2009: Refinements to The Seductions of Scala
for tomorrow's talk at Agile 2009.
June 11, 2009: Improved The Seductions of Scala
after presenting it today to a developer team. Added a little more content, clarified some slides, and made sure the "presenter notes" (which are included) actually match the content!
June 2, 2009: Here's the final version of my JavaOne talk Don't Do This! How Not to Write Java Software
. I discuss 10 mistakes I see Java teams make, why they are bad, and what to do instead.
May 30, 2009: Posted my talks at today's Chicago Code Camp. They are updates to previous talks.
March 12, 2009: Another update to my Better Ruby Through Functional Programming
presentation, given at SDWest 2009. I introduce the principles of Functional Programming and why applying these principles can improve the quality of Ruby applications, especially when concurrency is required. I also posted the code examples. Confreaks recorded the RubyConf version of the talk.
February 19, 2009: Tonight was the first meeting of the Chicago Area Scala Enthusiasts (CASE - a bit ironic, isn't it ;). I presented an abbreviated version of my introduction to Scala, The Seductions of Scala
.
January 12, 2009: An update to my Better Ruby Through Functional Programming
talk that I gave tonight at CHIRB. This is an expanded version of the talk I gave at RubyConf 2008 where I introduce the principles of Functional Programming and why applying these principles can improve the quality of Ruby applications, especially when concurrency is required. I also posted the code examples
December 16, 2008: I posted an update to my introduction to Scala, The Seductions of Scala (Zip), which I'm presenting tonight at the Chicago Java User's Group. To view the presentation, open html/all.html in a browser. The code used in the slides is in the code directory.
November 24, 2008: I posted my Better Ruby Through Functional Programming
notes. This is the talk I gave at RubyConf 2008 where I introduce the principles of Functional Programming and why applying these principles can improve the quality of Ruby applications, especially when concurrency is required.
November 20, 2008: I posted an extended version of the slides from my QCon San Francisco talk, Radical Simplification Through Polyglot and Poly-Paradigm Programming
. InfoQ.com may offer a video of this talk. Stay tuned.
November 13, 2008: I posted my introduction to Scala, The Seductions of Scala (Zip). I hacked-up a presentation tool that Dave Thomas created, which is based on S5. To view the presentation, open html/all.html in a browser. The code used in the slides is in the code directory.
1 Neal Ford may have been the first to coin this term.






