SlideShare a Scribd company logo
Kick ass code editing and
 end to end JavaScript
       debugging
                 Fabian Jakobs
                     @fjakobs
Code Editor
    +
 Debugger
    =
    ?
Code Editor
    +
 Debugger
    =
   IDE
Kick ass code editing and end to end JavaScript debugging
Overview

•Code Editor
• IDE Plugins
• Debugger
Demo
Editor
ACE
Ajax.org Code Editor


• nobody will use an IDE if the editor sucks
• should be able to replace TextMate
Requirements

• cross browser
• fully featured
• configurable
• scalable
• hackable
Sk y writer
   Why not Bespin?



•inefficient in full screen
• not cross browser      jQ uer y
• dependency on Sproutcore
Implementation
      Options

•Content Editable
• Canvas
• pure DOM
Content Editable

• not enough control
• cross browser issues
• not worth it (for code editing)
Canvas

• full rendering control
• no IE6, IE7, IE8
• implement key/mouse interaction manually

• O(number of pixels)
Pure DOM

• draw text, lines, rectangles
• implement key/mouse interaction manually

• naive O(number of lines)
• better O(number of visible lines)
DOM +
     virtual view port
                                 ..
                                 ..
                                 ....
                                 ..
                                 ...
                                 .... . . ...
                                 .


• rendering a full document in   ..
                                 .
                                 .
  the DOM doesn‘t scale          ..

                                 ..

• only render visible rows       .
                                 ..
                                 .. ..
                                 .
                                 .. . ..

                                 ..
                                 .... . . .
                                 .
Renderer

•DOM is used for drawing only
• no state in the DOM
• never read the DOM
Layers
Layers
Demo
IDE Plugins
Everything is a Plugin

                     search
     file system                   code editor
new file
                language modes          save

          debugger            console
What is a plugin

• JavaScript for client code
• JavaScript (node.js) for server code
• XML to describe the UI
Video
Kick ass code editing and end to end JavaScript debugging
Debugger
Debugging
                                V8 debugger protocol
                                   over socket.io
                        IDE                               IDE
                       Server                            Client



V8 debugger protocol
     over TCP
                                                           ?


                  Application                          Application
                    (node)                             in Chrome
Demo
cloud9 - Eclipse
Google Docs - Word
Open Source
          Building Blocks
connect               node.js
          socket.io               requireJS

                      ACE
           jsDAV         node-github
 APF          node-o3-xml          async.js
Cloud9 IDE
open sourced
  TODAY
Join us
  in building an IDE
by JS devs for JS devs.
Thanks for watching!
           Fork it on GitHub
   http://github.com/ajaxorg/cloud9
Ad

Recommended

PDF
Bndtools.key
jwausle
 
PDF
Render thead of hwui
Rouyun Pan
 
PDF
Livecode widget course
crazyaxe
 
PDF
Debugging Javascript - 0 to Heisenberg
Chris Morrow
 
PDF
MVS: An angular MVC
David Rodenas
 
PDF
Debugging javascript by dipil singh saud
Dipil Saud
 
PPTX
JavaScript Debugging Tips & Tricks
Sunny Sharma
 
PDF
2011 05-jszurich
Julian Viereck
 
PPTX
HTML5: An Overview
Nagendra Um
 
KEY
20120802 timisoara
Richard Rodger
 
PDF
Zepto and the rise of the JavaScript Micro-Frameworks
Thomas Fuchs
 
PDF
New Features Coming in Browsers (RIT '09)
jeresig
 
KEY
Internals - Exploring the webOS Browser and JavaScript
fpatton
 
KEY
HTML5 and the Future of Apps
Tom Croucher
 
PPTX
Html5
Ahmed Jadalla
 
KEY
20120306 dublin js
Richard Rodger
 
KEY
10 Years of JavaScript
Mike de Boer
 
KEY
Let's run JavaScript Everywhere
Tom Croucher
 
PPTX
HTML5 - Chances and Pitfalls (Bytro Labs GmbH)
Felix Faber
 
PDF
Node.JS briefly introduced
Alexandre Lachèze
 
PDF
Node.js #digpen presentation
GOSS Interactive
 
PDF
Performance Improvements In Browsers
GoogleTecTalks
 
PDF
Performance Improvements in Browsers
jeresig
 
PDF
Worklight Overview
Andrew Ferrier
 
PDF
Building businesspost.ie using Node.js
Richard Rodger
 
PDF
Kann JavaScript elegant sein?
jbandi
 
PDF
Debugging Web Apps on Real Mobile Devices
Dale Lane
 
PDF
Ajax Tutorial
oscon2007
 
PDF
Amsterdam.js talk: node webkit
Fabian Jakobs
 
PDF
Bespin, Skywriter, Ace The Past, Present and Future of online Code Editing
Fabian Jakobs
 

More Related Content

Similar to Kick ass code editing and end to end JavaScript debugging (20)

PPTX
HTML5: An Overview
Nagendra Um
 
KEY
20120802 timisoara
Richard Rodger
 
PDF
Zepto and the rise of the JavaScript Micro-Frameworks
Thomas Fuchs
 
PDF
New Features Coming in Browsers (RIT '09)
jeresig
 
KEY
Internals - Exploring the webOS Browser and JavaScript
fpatton
 
KEY
HTML5 and the Future of Apps
Tom Croucher
 
PPTX
Html5
Ahmed Jadalla
 
KEY
20120306 dublin js
Richard Rodger
 
KEY
10 Years of JavaScript
Mike de Boer
 
KEY
Let's run JavaScript Everywhere
Tom Croucher
 
PPTX
HTML5 - Chances and Pitfalls (Bytro Labs GmbH)
Felix Faber
 
PDF
Node.JS briefly introduced
Alexandre Lachèze
 
PDF
Node.js #digpen presentation
GOSS Interactive
 
PDF
Performance Improvements In Browsers
GoogleTecTalks
 
PDF
Performance Improvements in Browsers
jeresig
 
PDF
Worklight Overview
Andrew Ferrier
 
PDF
Building businesspost.ie using Node.js
Richard Rodger
 
PDF
Kann JavaScript elegant sein?
jbandi
 
PDF
Debugging Web Apps on Real Mobile Devices
Dale Lane
 
PDF
Ajax Tutorial
oscon2007
 
HTML5: An Overview
Nagendra Um
 
20120802 timisoara
Richard Rodger
 
Zepto and the rise of the JavaScript Micro-Frameworks
Thomas Fuchs
 
New Features Coming in Browsers (RIT '09)
jeresig
 
Internals - Exploring the webOS Browser and JavaScript
fpatton
 
HTML5 and the Future of Apps
Tom Croucher
 
20120306 dublin js
Richard Rodger
 
10 Years of JavaScript
Mike de Boer
 
Let's run JavaScript Everywhere
Tom Croucher
 
HTML5 - Chances and Pitfalls (Bytro Labs GmbH)
Felix Faber
 
Node.JS briefly introduced
Alexandre Lachèze
 
Node.js #digpen presentation
GOSS Interactive
 
Performance Improvements In Browsers
GoogleTecTalks
 
Performance Improvements in Browsers
jeresig
 
Worklight Overview
Andrew Ferrier
 
Building businesspost.ie using Node.js
Richard Rodger
 
Kann JavaScript elegant sein?
jbandi
 
Debugging Web Apps on Real Mobile Devices
Dale Lane
 
Ajax Tutorial
oscon2007
 

More from Fabian Jakobs (12)

PDF
Amsterdam.js talk: node webkit
Fabian Jakobs
 
PDF
Bespin, Skywriter, Ace The Past, Present and Future of online Code Editing
Fabian Jakobs
 
PDF
Autopsy Of A Widget
Fabian Jakobs
 
PDF
Masterin Large Scale Java Script Applications
Fabian Jakobs
 
PDF
Tdd For GuIs
Fabian Jakobs
 
PDF
Und es geht doch - TDD für GUIs
Fabian Jakobs
 
PDF
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Fabian Jakobs
 
PDF
Going Virtual
Fabian Jakobs
 
ZIP
Going Virtual
Fabian Jakobs
 
PDF
Qooxdoo 0.8 - Das Neue Gui Toolkit
Fabian Jakobs
 
PDF
Ajax In Action 2008 - Gui Development With qooxdoo
Fabian Jakobs
 
PDF
DLW Europe - JavaScript Tooling
Fabian Jakobs
 
Amsterdam.js talk: node webkit
Fabian Jakobs
 
Bespin, Skywriter, Ace The Past, Present and Future of online Code Editing
Fabian Jakobs
 
Autopsy Of A Widget
Fabian Jakobs
 
Masterin Large Scale Java Script Applications
Fabian Jakobs
 
Tdd For GuIs
Fabian Jakobs
 
Und es geht doch - TDD für GUIs
Fabian Jakobs
 
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Fabian Jakobs
 
Going Virtual
Fabian Jakobs
 
Going Virtual
Fabian Jakobs
 
Qooxdoo 0.8 - Das Neue Gui Toolkit
Fabian Jakobs
 
Ajax In Action 2008 - Gui Development With qooxdoo
Fabian Jakobs
 
DLW Europe - JavaScript Tooling
Fabian Jakobs
 
Ad

Recently uploaded (20)

PDF
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
PDF
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PPTX
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
PDF
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
PDF
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
PDF
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
PDF
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
PPTX
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PDF
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
PDF
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
PDF
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
PDF
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PPTX
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
PDF
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Ad

Kick ass code editing and end to end JavaScript debugging