SlideShare une entreprise Scribd logo
1  sur  73
Remix Your
Language Tooling




Lennart C. L. Kats (@lennartcl)
Cloud9 IDE
Venture capital


30 employees


2 offices
JavaScript
UNDER CONSTRUCTION
browser.js
db.js
server.js
*.js
~300,000
   lines
           of
      JavaScript
Tooling matters
Tooling matters
especially for JavaScript
C#, C++, Java?
Iterating using undeclared variable
Warning: you are in an anonymous inner function with its
                   own “this” pointer
Did you mean “length”?
Intelligent code completion
Complex refactoring
9
TypeScript


•   Type Annotations

•   Modules

•   Classes
function add(num1,
             num2) {
    return num1 + num2;
}

var result = add(1, 2);
function add(num1: number,
             num2: number) {
    return num1 + num2;
}

var result = add(1, 2);
function add(num1: number,
             num2: number) {
    return num1 + num2;
}

var result = add(1, true);
function add(num1: number,
             num2: number) {
    return num1 + num2;
}

var result = add(1, true);


          I’m afraid I can’t let you do that, Dave.
MAKE CODE
     Y
     l

 NOT WAR
DEMO
MAKE CODE
     Y
     l
MAKE CODE
     Y
     l
MAKE CODE
     Y
     l
What if we can REMIX
 Language Tooling?
If only things were this
         simple...
If only things were this
         simple...
If only things were this
         simple...
MAKE CODE
     Y
     l
A client-side plugin
with a server-side
     back-end
How can things be that
          simple...
    Command-line tool:

•   you tell it what to do

•   you give it an input

•   it returns a result
How can things be that
          simple...
    Command-line tool:

•   you tell it what to do

•   you give it an input

•   it returns a result


    => it’s a functional interface!
How can things be that
      simple...


   “Functional is the New Black” *




                          *Elise Huard, tomorrow
Functional language
        tooling interface
•   handlesLanguage()
•   parse()
•   analyze()
•   outline()
•   complete()
Each service is described
   by a single function
The interface is fully
         technology agnostic

Accelerating the creation of customized, Language-Specific IDEs in Eclipse,
Charles et al., OOPSLA 2009
So,
how do you implement one
      of these functions?
Compiler


 Parser



Analyzer
Code   Parser   AST
AST   Analyzer   feedback
Reuse existing tooling
   where you can

 Zeon                  Narcissus


            UglifyJS

                       Esprima
   JSLint
Don’t do it with your
       hands
Reusable language tooling
             Parsers


        Parser generators


       Analysis frameworks
treehugger.js
Describe each service
 by a single function
Remix Your
             Language Tooling



http://github.com/lennartcl
http://twitter.com/lennartcl
http://lennart.cl               http://c9.io

Contenu connexe

Tendances

Tendances (18)

Create Your Own Language
Create Your Own LanguageCreate Your Own Language
Create Your Own Language
 
Intro dotnet
Intro dotnetIntro dotnet
Intro dotnet
 
LIL Presentation
LIL PresentationLIL Presentation
LIL Presentation
 
Python for Swift
Python for SwiftPython for Swift
Python for Swift
 
Intro dotnet
Intro dotnetIntro dotnet
Intro dotnet
 
C-Sharp 6.0 ver2
C-Sharp 6.0 ver2C-Sharp 6.0 ver2
C-Sharp 6.0 ver2
 
C++vs java
C++vs javaC++vs java
C++vs java
 
C# language
C# languageC# language
C# language
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
Log cat kotlindsl
Log cat kotlindslLog cat kotlindsl
Log cat kotlindsl
 
Introduction to Go-Lang
Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
 
An Introduction to PyPy
An Introduction to PyPyAn Introduction to PyPy
An Introduction to PyPy
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
 
PyPy
PyPyPyPy
PyPy
 
a quick Introduction to PyPy
a quick Introduction to PyPya quick Introduction to PyPy
a quick Introduction to PyPy
 
Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language
 
2CPP02 - C++ Primer
2CPP02 - C++ Primer2CPP02 - C++ Primer
2CPP02 - C++ Primer
 
Programming Language Selection
Programming Language SelectionProgramming Language Selection
Programming Language Selection
 

Similaire à Remix Your Language Tooling (JSConf.eu 2012)

The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)jeffz
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Vitaly Baum
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applicationsaccount inactive
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageAzilen Technologies Pvt. Ltd.
 
Exciting JavaScript - Part II
Exciting JavaScript - Part IIExciting JavaScript - Part II
Exciting JavaScript - Part IIEugene Lazutkin
 
LINQ Inside
LINQ InsideLINQ Inside
LINQ Insidejeffz
 
Grant Rogerson SDEC2015
Grant Rogerson SDEC2015Grant Rogerson SDEC2015
Grant Rogerson SDEC2015Grant Rogerson
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REAkenbot
 
(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_netNico Ludwig
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...Sang Don Kim
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to ElixirDiacode
 
What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)Moaid Hathot
 
The Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhoneThe Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhoneJames Long
 
Fp for the oo programmer
Fp for the oo programmerFp for the oo programmer
Fp for the oo programmerShawn Button
 

Similaire à Remix Your Language Tooling (JSConf.eu 2012) (20)

The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)The Evolution of Async-Programming on .NET Platform (.Net China, C#)
The Evolution of Async-Programming on .NET Platform (.Net China, C#)
 
IN4308 1
IN4308 1IN4308 1
IN4308 1
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applications
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming language
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
 
Exciting JavaScript - Part II
Exciting JavaScript - Part IIExciting JavaScript - Part II
Exciting JavaScript - Part II
 
LINQ Inside
LINQ InsideLINQ Inside
LINQ Inside
 
Grant Rogerson SDEC2015
Grant Rogerson SDEC2015Grant Rogerson SDEC2015
Grant Rogerson SDEC2015
 
Golang
GolangGolang
Golang
 
Golang
GolangGolang
Golang
 
Clojure intro
Clojure introClojure intro
Clojure intro
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REA
 
(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to Elixir
 
What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)
 
The Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhoneThe Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhone
 
Fp for the oo programmer
Fp for the oo programmerFp for the oo programmer
Fp for the oo programmer
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Remix Your Language Tooling (JSConf.eu 2012)

Notes de l'éditeur

  1. How to Effectively Build Language Tooling\n\n... or, alternatively, how WE can remix OUR language tooling\n
  2. \n
  3. \n talk today will focus on TOOLING\n
  4. \n
  5. \n
  6. \n\none of the pioneers in programming language design\n\none of the first women in the US to receive a PhD in CS\n
  7. \n
  8. - several years since I first tried JavaScript. think it's been over 10 years.\n - copy/pasting for popup menus on web pages\nBack when everybody was still using “Under Construction”\n\n\n\n\nhttp://contemporary-home-computing.org/still-there/geocities.html\n
  9. Things have changed since.\n\n\n\n\n\n\n\nhttps://commons.wikimedia.org/wiki/File:Beta-badge.svg\n\n\n\n
  10. \n
  11. \n
  12. \n
  13. \n
  14. “Application Scale JavaScript”\n“Last audience: shocked, mix of surprise and anger”\n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. Is there anyone in the audience who knows JavaScript and can point out an error in this code?\n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. Any IDE that’s worth anything\n
  34. \n
  35. Two reasons for doing an IDE in the cloud:\n- one is all the reasons anyone would make any application online. We’re JavaScript developers, why would our IDE not be online?\n- the other is nice pictures of clouds\n\nNice place of fluffy clouds, but new things keep happening:\n- new libraries, new ways of using the language, new platforms\n
  36. \n
  37. \n
  38. \n
  39. \n
  40. Optional types, if you want you can declare the type of any function, property, or variable\n
  41. \n
  42. \n
  43. as a language tooling guy I must say I like these extensions\n “lots of controversy”; yet another compile-to-js, will make debugging harder, yadayada and so on. \n at Cloud9 we really only care about making you more productive\n so by the immortal words of my colleague Garen,\n
  44. how long did it take us to support it?\n one day.\n
  45. how long did it take us to support it?\n one day.\n
  46. \n
  47. how long did it take us to support it?\n one day.\n
  48. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  49. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  50. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  51. syntax highlighter\n terminal\n this took maybe 30 minutes to complete\n the other thing we use is NPM: users can install anything they want in their dev instance, including the typescript compiler\n
  52. syntax highlighter\n terminal\n this took maybe 30 minutes to complete\n the other thing we use is NPM: users can install anything they want in their dev instance, including the typescript compiler\n
  53. \n
  54. \n"c9 been around, now at the point where the community can make awesome tools\n\nAs of today, we’re opening up Cloud9. We’re making it possible to ...\n\n“i’ll show you how you can do that”\n
  55. We want to make it possible to build that villa for any language. For any library.\n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. <what if we can remix>\n \n \n \n \n \n http://egonego.blogspot.nl/\n
  63. \n
  64. Why in the age of social coding is it so hard to remix language tooling?\n
  65. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  66. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  67. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  68. <show terminal screenshot installing typescript and having it output errors; show size of compiler>\n not minified; but it’s application-scale\n\n
  69. \n
  70. \n
  71. \n
  72. Can apply it to other languages w/ linters\n\nTypeScript, PHP, CoffeeScript, ANTLR\n
  73. \n
  74. \n
  75. No UI or anything involved; it’s just a black box that we call\n
  76. Explored before in other projects and in the academic world\n
  77. base_handler\n
  78. \n
  79. Bob Fuhrer, Philippe Charles, and others\n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. http://wickedstageact2.typepad.com/life_on_the_wicked_stage_/cool_tools/page/2/\nhttp://dvice.com/pics/hand_wrench.jpg\n
  86. And please, people. Don’t do everything with your hands. There are tools for building language components.\n\nhttp://wickedstageact2.typepad.com/life_on_the_wicked_stage_/cool_tools/page/2/\nhttp://dvice.com/pics/hand_wrench.jpg\n
  87. Michael Ficarra’s CoffeeScript Redux project\n\n\nused PEG.js\n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n parting message:\n remix your tooling;\n use generic language-independent frameworks to build language tooling\n\n
  97. I’m Lennart Kats and I’ve remixed my name into such sites as github, twitter, and the interwebs\n\nIn the coming weeks we’ll be releasing docs and examples.\n\nYou heard it here first.\n