Your SlideShare is downloading. ×
Language Engineering in the Cloud
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Language Engineering in the Cloud

329
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
329
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • What I brought to the table\nIDE compulsory\n
  • intimate connection between the two\nboth from user and developer perspective\n
  • Language workbenches combine interactive definition and use of DSLs\n
  • Scenario: scoping rules!\n
  • Scenario: scoping rules!\n
  • \n
  • After four years, I completed my PhD and went on to do a 2 year postdoc\n
  • \n
  • \n
  • \n
  • Accel/Atlassian\n
  • \n
  • 30 ppl; half developers\n\nproducts: strategies, website, UX, support\n
  • \n
  • \n
  • 2 areas: features based on the connectiveness of the cloud, and features familiar from desktop IDEs\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • IaaS: scaling, pay-by-use\n
  • IaaS: scaling, pay-by-use\n
  • IaaS: scaling, pay-by-use\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • departure from DSL approach\nefficient: caching\n
  • \n
  • \n
  • \n
  • \n
  • NodeJS: single-threaded; openshift: computational power per user!\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Language Engineering in the Cloud Lennart Kats @lennartcl
    • 2. 9
    • 3. <utrecht>
    • 4. Language Engineering ResearchCompilersDomain-specific languagesLanguage extensionsParsers
    • 5. Spoofax
    • 6. Spoofax“DOES THE TYPE CHECKER CATCH THIS?”
    • 7. Spoofax“DOES THIS HYPERLINK POINT TO THE RIGHT PLACE?”
    • 8. Fast-growing startup: Cloud9 IDE
    • 9. Venture capital30 employees2 offices
    • 10. Core Product
    • 11. OrganizationFront-end ProductsBack-end SupportLanguage Marketing & business Node.js development
    • 12. Open Source
    • 13. GoalCreate the best (JavaScript) IDE out there!
    • 14. Key Features
    • 15. Collab
    • 16. Collab
    • 17. Integration with Cloud Services
    • 18. VIM Mode
    • 19. Offline Mode
    • 20. Terminal Access
    • 21. Language Support
    • 22. Cloud9 Architecture
    • 23. 300.000 linesof JavaScript
    • 24. Everything is a plugin file treesearch JS completion terminal file system save
    • 25. Plugin components Client-side JS Server-side JS XML for UI
    • 26. Evented I/O for JavaScriptV8 JavaScript engineEverything asynchronousNo threads
    • 27. Scaling
    • 28. ELBProxy1 Proxy2 Proxy3IDE1 IDE2 IDE3
    • 29. XaaS in Cloud9 BrowserDeveloper IDE SaaS Red Hat PaaS Amazon IaaS
    • 30. ELB Proxy1 Proxy2 Proxy3 IDE1 IDE2 IDE3Gear1 Gear2 Gear3 ... Gear n
    • 31. LanguageInfrastructure
    • 32. Cloud9Language Services DEMO
    • 33. Editor, plugin Cloud9 architecture
    • 34. UI, Events, Language FoundationWebWorkersEditor, plugin Cloud9 architecture
    • 35. Interface base_handler UI, Events, Language FoundationWebWorkersEditor, plugin Cloud9 architecture
    • 36. Implementation Language services Interface base_handler UI, Events, Language Foundation WebWorkers Editor, plugin Cloud9 architecture
    • 37. base_handler• handlesLanguage()• parse()• analyze()• outline()• complete()• ...
    • 38. Language Foundation All language services are functional and described by a single functionThe Spoofax Language Workbench, OOPSLA 2009
    • 39. Language Foundation All language services are technology-agnosticfindNode(), getPos()Accelerating the creation of customized, language-Specific IDEsin Eclipse, Charles et al., OOPSLA 2009
    • 40. Language Foundation All language services asynchronous WebWorkers or Client/Server I/O
    • 41. Language Foundation Concise specification using generic traversalsStratego/XT 0.17. A language and toolset for programtransformation, Bravenboer et al., SCP 2008
    • 42. Treehugger.js• Based on Stratego/XT• 100% JavaScript• Use any parser• Efficient
    • 43. Implementation Language services Interface base_handler UI, Events, Language Foundation WebWorkers Editor, plugin Cloud9 architecture
    • 44. Parser JS ServicesImplementation treehugger.js Interface base_handler UI, Events, Language Foundation WebWorkers Editor, plugin Cloud9 architecture
    • 45. Treehugger.JS DEMO
    • 46. Computational ModelServer-side:- CPU resources expensiveClient-side:- CPU resources “free”!
    • 47. VMs for everyone!
    • 48. What’s NextWhole-project analyses• Incremental• Distributed• Multi-user
    • 49. What’s NextParser generators• Incremental• Recovery• General
    • 50. What’s NextJava IDE• High expectations of Java IDEs• Can’t we reuse existing IDEs?• OpenShift to the rescue
    • 51. What’s NextCloud9 Extension Store• Extend Cloud9 for tools, languages• GitHub
    • 52. Community Reachout• Open source, GitHub• R&D• Graduate students• Education• Third-party extensions
    • 53. Conclusion Open-source OpenShiftAdvanced language analysis expanding to server and other languages Lennart C. L. Kats @lennartcl http://lennart.cl