1 / 54

Polyglot Programming

Polyglot Programming. Mark Bloodworth Microsoft. Polyglot Programming :. is. “ Programming in more than one language in the same context ” Nick Watts. Origins :. p olyglot : a person who knows or uses several languages Compact Oxford English Dictionary. Neal Ford 2006. Meme Agora.

liana
Download Presentation

Polyglot Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Polyglot Programming Mark BloodworthMicrosoft

  2. Polyglot Programming :

  3. is

  4. “Programming in more than one language in the same context” Nick Watts

  5. Origins :

  6. polyglot: a person who knows or uses several languages Compact Oxford English Dictionary

  7. Neal Ford2006 Meme Agora

  8. “The times of writing an application in a single general purpose language is over” Meme Agora

  9. Bertrand Meyer2002 Dr.Dobb's

  10. “This ability to mix languages offers great promise for the future of programming languages” Dr.Dobb's

  11. Babel2000 Lawrence Livermore National Laboratory

  12. “New languages for HPC will not replace the current patchwork” Lawrence Livermore National Laboratory

  13. Today :

  14. C# CSS HTML XML SQL Javascript

  15. Architecture&Language Choice

  16. Why :

  17. There is noSilver Bullet

  18. Specialisation

  19. ExistingLibraries

  20. Simplification

  21. e.g.

  22. class Program{ static void Main(string[] args) {Console.WriteLine("Hello World"); } }

  23. print “Hello World”

  24. delegate byte[] AsyncOpenMethod(string filename);static byte[] AsyncOpen(string filename){ byte[] pixels = null; using (BinaryReaderbr= new BinaryReader(new FileStream(filename, FileMode.Open))) { Pixels = br.ReadBytes(4096); }}static void AsyncOpenTheFile(string filename){ byte[] pixels = null;AsyncOpenMethodaom = new AsyncOpenMethod(Class1.AsyncOpen);IAsyncResultiar = aom.BeginInvoke(filename, null, null); while (!iar.IsCompleted) { //Do something? }} The Polyglot Programmer: Mixing and Matching Languages

  25. async{use inStream = File.OpenRead(filename)let! Pixels = inStream.AsyncRead(4096)} The Polyglot Programmer: Mixing and Matching Languages

  26. Languages :

  27. >8500 Languages HOPL

  28. Paradigms

  29. Imperative Object-Oriented Functional Declarative

  30. Problem Space

  31. General Domain Specific

  32. Type System

  33. Strong Weak Dynamic Static

  34. Trends :

  35. Declarative

  36. Concurrent

  37. Dynamic

  38. Impact :

  39. + Maintenance Productivity Perspective Polyglot Programming - A Business Perspective

  40. - Maintenance Knowledge Tools Polyglot Programming - A Business Perspective

  41. How :

  42. Platform

  43. Architecture

  44. Where :

  45. Extend

  46. Test

  47. Or :

  48. Multi ParadigmProgramming

  49. Summary :

  50. Languages can be combined

More Related