Welcome to Polyglot Programming
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 Functional Programming, Object-Oriented Programming, and Aspect-Oriented Programming.
I call this combination polyglot and poly-paradigm programming (PPP), to give it a somewhat tongue-tied 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 and the Think Big Analytics blog.
Presentations
Most of these talks are maintained on my GitHub Presentations repo, where you'll also find the original Keynote files.
|
What's Ahead for Big Data?
|
|---|---|
|
Big Data is at a crossroads, where Hadoop is showing its age and new compute models are emerging. NoSQL databases are adding query engines, sometimes based on SQL and NewSQL databases are bringing some measure of NoSQL performance to relational models. This talk examines these trends, focusing mostly on Hadoop today and tomorrow. I gave it at GOTO Chicago 2013. (Last updated: April 22, 2013) |
|
|
Scalding for Hadoop
|
|
The benefits of using Scalding, presented February 12 at the Chicago Hadoop User's Group (CHUG) after Paco Nathan presented on Cascading. So, my talk assumes some prior exposure to Cascading concepts. Even if you understand Cascading concepts, I recommend reading Paco's presentation first. Note that the video of the talks will posted on the CHUG site soon. (updated for Big Data Techcon 2013: April 11, 2013) |
|
|
MapReduce and Its Discontents , a.k.a. Beyond MapReduce
|
|
(Same talk; two different titles) I describe the MapReduce programming model and the technical limitations of the Hadoop implementation, in particular, in part because Java is the wrong tool for developing Big Data applications and middleware. Instead, we should be using Functional Programming, since we are really doing mathematics! I claim that Hadoop is the Enterprise JavaBeans of our time. (updated for Big Data Techcon 2013: April 11, 2013) |
|
|
Why Big Data Needs to Be Functional
|
|
I've been doing Hadoop-related consulting for the last few years. Data analysis and processing is a perfect application of Functional Programming, yet a Java-centric, object-oriented mindset pervades that community. So, I did a 30-minute talk at the NE Scala Symposium on Why Big Data Needs to Be Functional. You can also find the video here. (last update: April 15th, 2012) |
|
|
Heresies And Dogmas In Software Development
|
|
An updated version of my Strange Loop 2011 talk that looks at 5 ideas in the history of software development that were once (or still are) popular, but now are (usually) seen as obsolete (plus a "bonus" topic). This talk will also be available on the Strange Loop 2011 site and InfoQ will eventually publish the talk video. The video from CME Group Technology Conference talk will also be published soon. (last update: November 9th, 2011) | |
|
Better Programming through Functional Programming
|
|
A half-day tutorial that introduces Functional Programming, why it has become important for our time, and how you can apply its ideas in almost any language. Examples are given in Java and Ruby. (last update: July 31st, 2011) | |
|
How Functional Programming Changes Developer Practices
|
|
My Agile 2011 talk on why Functional Programming improves our code and makes us more agile. This talk is adapted from my tutorial discussed above. |
|
|
The Seductions of Scala
|
|
An introduction to Scala that I often give at conferences and user groups. The PDF includes a lot of extra material that won't fit in a 50-60 minute time slot. (last update: April 15th, 2012) The GitHub page for this talk also has the sources used for the examples. In particular, for the Akka-based Actor example at the end of the talk, see README.md. |
|
|
The Akka Framework |
|
An overview of the Akka Framework for building robust, highly concurrent servers in Java or Scala. Note: This is a web-based presentation written using S5 (with hacks). See the instructions on the GitHub page. (last update: March 19, 2010) |
|
|
Polyglot and Poly-Paradigm Programming
|
|
An argument that modern development problems benefit from a multi-paradigm and/or multi-language solution strategy. Different strategies are discussed in the contexts of example problems (last update: April 2, 2011) |
|
|
Hive - SQL for Hadoop
|
|
This talk for January, 2012 meeting of the Chicago Hadoop User's Group introduces Hive and explains why it's a key technology in the Hadoop ecosystem, primarily because it makes it easier to transition SQL-based data warehouses to Hadoop. |
|
|
(Son of) Better Ruby Through Functional Programming
|
|
How to improve your Ruby code with functional programming techniques. I gave the original version of this talk at RubyConf 2008 (video) and the "Son of" talk at Windy City Rails 2009 (video). Note: the code samples are availabe here. |
|
| For all available presentations, see the Talks page. | |
1 Neal Ford may have been the first to coin this term.

















