open komodo an open source ide for open languages for
play

Open Komodo: An Open Source IDE For Open Languages For Open - PowerPoint PPT Presentation

Open Komodo: An Open Source IDE For Open Languages For Open Languages Own Your IDE Eric Promislow ActiveState Software Inc. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 1 History Perl for Windows Active Python,


  1. Open Komodo: An Open Source IDE For Open Languages For Open Languages Own Your IDE Eric Promislow ActiveState Software Inc. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 1

  2. History • Perl for Windows • Active Python, Komodo • Active Python, Komodo • ฀ Anti-Spam Digression • • Refocus on Developer Tools OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 2

  3. YAILWAD • Spent 1990s Competing with Java and Perl Perl • ฀ Original Komodo Team in 2000 ฀ • Visual Studio .Net Digression • • Back on Komodo in 2004 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 3

  4. ฀ Contradiction? OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 4

  5. Origins OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 5

  6. Agenda • Ruby and Rails Support • OpenKomodo • OpenKomodo • Zooming In OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 6

  7. ฀ Komodo Philosophy • ฀ Balance of Helpfulness • • • Projects Are Optional OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 7

  8. Ruby Support • ฀ Ruby-Aware Auto-Indentation • • • Soft Characters • • Code Completion – Their Stuff – Your Stuff • • Abbreviations (Snippets) OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 8

  9. ฀ Complete Known Names OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 9

  10. ฀ Walk Library Objects OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 10

  11. Call Tips OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 11

  12. Your Own Code OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 12

  13. ฀ Troubleshoot OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 13

  14. ฀ Rails Support: Goals • ฀ Avoid the Command-Line for Routine activities activities – Generate & Migrate – Test – Debug – Run – SCC OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 14

  15. Useful Tools • ฀ Firefox JavaScript Debugger • HTTP Inspector • HTTP Inspector • DOM Inspector • Unit Test Integration • Rx Toolkit OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 15

  16. Visualizing Redirects: Before OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 16

  17. Visualizing Redirects: After OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 17

  18. Rails Support: Deploying • Specify Servers • Edit Remote Files • Edit Remote Files • Remote Folders in Projects • One Size Doesn’t Fit All OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 18

  19. The Komodo Family OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 19

  20. The Komodo Family • Komodo IDE • Komodo Edit • Komodo Edit • OpenKomodo : MPL GPL LGPL OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 20

  21. Why Open It • Unique in its underlying technology • Built with the same languages we • Built with the same languages we support • Build a foundation, let many build on top • Mozilla: Open, Cross-Platform OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 21

  22. Now That We’ve Open- Sourced It… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 22

  23. Use It • http://www.openkomodo.com OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 23

  24. Extend It • Macros • Extensions • Extensions • Hack the Source OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 24

  25. Build Something • Komodo IDE • Snapdragon • Snapdragon • Mozpad • ? OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 25

  26. How did we get here? • 1994: Netscape 1.0 Beta • 1995: IE 2.0 Released • 1995: IE 2.0 Released • Jan 1998: Netscape Open-Sources Client • What does this have to do with developer tools? OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 26

  27. End Lock-In • It’s My Data • It’s My Code • It’s My Code • No Proprietary Formats • Choice of Environments OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 27

  28. Mozilla: Timing is Everything • Seamonkey and MAS too “90s” • Firefox and Thunderbird Follow Unix • Firefox and Thunderbird Follow Unix Philosophy OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 28

  29. Built on Standards • XUL isn’t too foreign • JavaScript is everyone’s second • JavaScript is everyone’s second language OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 29

  30. Other Apps • Flock • Sunbird • Sunbird • Camino • Songbird • Joost • Hackety-Hack OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 30

  31. Even Microsoft Buys In • Windows Application Framework – Based on XAML – Based on XAML – XAML based on XUL OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 31

  32. Is the Platform Irrelevant? • Where are the verticals? • Wait a generation… • Wait a generation… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 32

  33. How Developers Work • We’re Late Adopters • We Like Plain Text • We Like Plain Text • Whiteboards vs. Electronic Communication OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 33

  34. The Future of Programming • Was supposed to look like this… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 34

  35. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 35

  36. Programmers' Tools Matter • OpenKomodo is the right technology at the right time the right time OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 36

  37. Community Matters • Every platform needs one • Case Study: Visual Basic • Case Study: Visual Basic • "Support statement for Visual Basic 6.0 on … Vista" • Visual Studio .Net (7.0) Q & A OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 37

  38. Openness Matters • Hard to grow a community without empowering people empowering people • Extension contest showed people could use it without large amounts of documentation OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 38

  39. Documentation is a Challenge • Writing doesn't usually scratch an itch • Every non-private function is callable • Every non-private function is callable • The Sourceforge challenge OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 39

  40. And Now For Something More Technical… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 40

  41. What Exactly Is Mozilla • XUL • JS • JS • CSS OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 41

  42. Mozilla Components • NSPR • Gecko • Gecko • Necko • XPCOM • XPConnect • XBL OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 42

  43. Komodo Under the Hood • Chrome - front-end -- src/chrome • PyXPCOM back-end -- src/ • PyXPCOM back-end -- src/ • Over 20 FOSS components in contrib/ • IDL files - src/* and sdk/ • Over 260 files OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 43

  44. Interfaces & Implementations Search http://grok.openkomodo.com/source/xref/ http://grok.openkomodo.com/source/xref/ http://lxr.mozilla.org/mozilla1.8/ OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 44

  45. Write Macros Samples in Toolbox Subset of API in Help Subset of API in Help Experiment with JavaScript Shell • http://community.activestate.com/ komodo-extension/ komodo-developer-extension OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 45

  46. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 46

  47. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 47

  48. Python or JavaScript? • JS code handles model and view • Python better suited for special cases • Python better suited for special cases OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 48

  49. Python example: • t = ClipboardWrapper() • text = t.get() • text = t.get() • paras = re.split(r'\r?\n\r?\n(?=.)', text) • import textwrap • lines = [textwrap.wrap(p) for p in paras] • t.put(eol.join(lines)) OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 49

  50. Writing Extensions • Hello-world • Komodo "Komodo Extension Template" • Komodo "Komodo Extension Template" • Steeper Leaning Curve that Macros – Graphical UI Adds an Extra Dimension OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 50

  51. Undo Slider OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 51

  52. Getting Started OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 52

  53. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 53

  54. UI expressed in XML • overlay id=%extension_name%Overlay ... – commandset id=allcommands – commandset id=allcommands • command id=Tasks:HelloWorld oncommand="alert('Hello world')" – menupopup id=popup_tools • Menuitem id=menu_%extension_name% label=%extension_nice_name% observes="Tasks:HelloWorld" class="menu-iconic-wide" OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 54

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend