Building Polyglot
Projects
Kurt Schrader
@kurt
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese an...
Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the sprea...
Who am I?
Polyglot
Programming
What can I talk
about?
Who’s a polyglot?
We’re all
Polyglots
SQL
SQL
SQL
pol•y•glot, adj.
containing, composed of, or written in
several languages.
pol•y•glot, n.
a mixture or confusion of languages
Polyglot projects?
Project
Why?
“In business, there is nothing more
valuable than a technical advantage
your competitors don't understand.”
-Paul Graham
Where to start?
Use the JVM
“I've never met anyone who has mastered
Ruby or Clojure and had the opinion that
they are more productive in Java.”
- Jay ...
Other advantages
of the JVM?
Libraries
Weirdness
Tools
Monitoring
Testing and CI
Deployment
Profiling
Project
Architecture
- Use Common
Data Types
struct User {
1: string name,
2: string password
}
• C++
• C#
• Cocoa
• D
• Delphi
• Erlang
• Haskell
• Java
• OCaml
• Perl
• PHP
• Python
• Ruby
- Build small
components
Try things out
Be ready to throw
things away
- Dependency
Injection
<lang:jruby id="rubyHello"
script-interfaces="com.intentmedia.HelloListener"
script-source="classpath:com/intentmedia/hell...
package com.intentmedia;
public interface HelloListener {
public void receiveSubject(String subject);
}
class Hello
def setPrefix(p)
@prefix = p
end
def receiveSubject(s)
puts "#{@prefix} Hello #{s}"
end
end
Hello.new
Anti-patterns
Multiple languages
in one file
Spaghetti
Language
Questions?
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
 Building Polyglot Projects
Upcoming SlideShare
Loading in …5
×

Building Polyglot Projects

292 views

Published on

Video and slides synchronized, mp3 and slide download available at http://bit.ly/1bhByBw.

Kurt Schrader explores patterns and practices used to build polyglot projects, when to add a new language and what to do when things seem to get out of hand.Filmed at qconnewyork.com.

Kurt Schrader is CTO at Intent Media.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
292
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Building Polyglot Projects

  1. 1. Building Polyglot Projects Kurt Schrader @kurt
  2. 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /polyglot-patterns
  3. 3. Presented at QCon New York www.qconnewyork.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  4. 4. Who am I?
  5. 5. Polyglot Programming
  6. 6. What can I talk about?
  7. 7. Who’s a polyglot?
  8. 8. We’re all Polyglots
  9. 9. SQL
  10. 10. SQL
  11. 11. SQL
  12. 12. pol•y•glot, adj. containing, composed of, or written in several languages.
  13. 13. pol•y•glot, n. a mixture or confusion of languages
  14. 14. Polyglot projects?
  15. 15. Project
  16. 16. Why?
  17. 17. “In business, there is nothing more valuable than a technical advantage your competitors don't understand.” -Paul Graham
  18. 18. Where to start?
  19. 19. Use the JVM
  20. 20. “I've never met anyone who has mastered Ruby or Clojure and had the opinion that they are more productive in Java.” - Jay Fields
  21. 21. Other advantages of the JVM?
  22. 22. Libraries
  23. 23. Weirdness
  24. 24. Tools
  25. 25. Monitoring
  26. 26. Testing and CI
  27. 27. Deployment
  28. 28. Profiling
  29. 29. Project Architecture
  30. 30. - Use Common Data Types
  31. 31. struct User { 1: string name, 2: string password }
  32. 32. • C++ • C# • Cocoa • D • Delphi • Erlang • Haskell • Java • OCaml • Perl • PHP • Python • Ruby
  33. 33. - Build small components
  34. 34. Try things out
  35. 35. Be ready to throw things away
  36. 36. - Dependency Injection
  37. 37. <lang:jruby id="rubyHello" script-interfaces="com.intentmedia.HelloListener" script-source="classpath:com/intentmedia/hello.rb"> <lang:property name="prefix" value="Ruby says: " /> </lang:jruby>
  38. 38. package com.intentmedia; public interface HelloListener { public void receiveSubject(String subject); }
  39. 39. class Hello def setPrefix(p) @prefix = p end def receiveSubject(s) puts "#{@prefix} Hello #{s}" end end Hello.new
  40. 40. Anti-patterns
  41. 41. Multiple languages in one file
  42. 42. Spaghetti Language
  43. 43. Questions?

×