SlideShare a Scribd company logo
            {"
                }   }   {"
               {   { } }"
                }   }{ {"
               { }{ } }                       _____        __ __"
              ( }{ }{ { )                    / ____|      / _|/ _|"
            .- { { } { }} -.                | |      ___ | |_| |_ ___ ___"
           ( ( } { } { } } )                | |     / _ | _| _/ _ / _ "
           |`-..________ ..-'|              | |___| (_) | | | || __/ __/"
           |                  |              ________/|_| |_| ___|___|"
           |                  ;--."
           |                (__              _____            _       _"
           |                  | ) )          / ____|          (_)     | |"
           |                  |/ /          | (___    ___ _ __ _ _ __ | |_"
           |                  ( /            ___  / __| '__| | '_ | __|"
           |                  |/             ____) | (__| | | | |_) | |_"
           |                  |             |_____/ ___|_| |_| .__/ __|"
            `-.._________..-'                                    | |"
                                                               |_|"
                                        "




                                                         .oooooo.      ooooo   ooooo      ooooooooooooo     !
                                                        d8P' `Y8b      `888'   `888'      8'   888   `8     !

Mark Wunsch        @markwunsch!
                                                       888
                                                       888
                                                       888     ooooo
                                                                        888
                                                                        888
                                                                        888
                                                                                888
                                                                                888
                                                                                888
                                                                                               888
                                                                                               888
                                                                                               888
                                                                                                            !
                                                                                                            !
                                                                                                            !
Exotic Programming Languages and the Web!              `88.    .88'
                                                        `Y8bood8P'
                                                                        888
                                                                       o888o
                                                                                888     o
                                                                               o888ooood8
                                                                                               888
                                                                                              o888o     !
                                                                                                            !
var pg = require('pg'); !
//or native libpq bindings!
//var pg = require('pg').native!
!
var conString = "tcp://postgres:1234@localhost/postgres";!
!
// error handling omitted!
pg.connect(conString, function(err, client) {!
  client.query("SELECT NOW() as when", function(err, result) {!
     console.log("Row count: %d",result.rows.length); // 1!
     console.log("Current year: %d", result.rows[0].when.getYear());!
  });!
});!
CoffeeScript Lightning Talk
•    compiles into JavaScript!
•    JavaScript s object model!
•    the good parts !
•    It s just JavaScript. !
fling = (img) ->!
  $('body').append img!
  img.show()!
  img.css!
    '-webkit-transform': "rotate(#{rando()}deg)"!
    'top': root.parseInt(img.css('top'), 10) - rando 45!
    'left': root.parseInt(img.css('left'), 10) - rando 45!
    'opacity': 0!
  root.setTimeout (-> img.hide().remove()), 5000!



rando = (multiplier = 10) ->!
  num = Math.ceil Math.random() * multiplier!
  if num % 2 then -num else num!




skus = (sku for id, sku of order.skus)!
if pin.properties.count isnt 1!
  for order, index in pin.properties.orders when (Date.now() - !
  » Date.parse order?.submission_date) > (config.expiration ? 180000)!




class Mob!
  constructor: (@name) ->!
        !
  move: (meters) ->!
    alert @name + " moved #{meters}m."!
!




name        = person.name!
{name}      = person!
{name, age} = person!
!
tag = "<impossible>"!
[open, contents..., close] = tag.split("")!
But what about my debugger?


  Common concerns
        Compiled?
Thanks.
                          Here are some links!

•  http://coffeescript.org!
•  https://github.com/jash
 kenas/coffee-script/wiki/List-of-languages-that-compile-to-JS!
•  Line Number Mapping: https://github.com/jashkenas/coffee-script/
 issues/558!
•  Hello World in Dart: https://gist.github.com/1277224!
•  Smooth CoffeeScript: http://autotelicum.github.com/Smooth-
 CoffeeScript/!
•  The Little Book on CoffeeScript: http://arcturo.github.c
 om/library/coffeescript/!


                        Mark Wunsch   @markwunsch!

More Related Content

Recently uploaded (20)

PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 

Featured (20)

PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
 
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
SocialHRCamp
 
PDF
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
PDF
Everything You Need To Know About ChatGPT
Expeed Software
 
PDF
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
PDF
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
PDF
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
PDF
Skeleton Culture Code
Skeleton Technologies
 
PDF
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
PDF
Content Methodology: A Best Practices Report (Webinar)
contently
 
PPTX
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
PDF
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
PDF
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
PDF
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
PDF
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
PDF
Getting into the tech field. what next
Tessa Mero
 
PDF
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
PDF
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
SocialHRCamp
 
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Ad

CoffeeScript Lightning Talk

  • 1.             {"          } } {"         { { } }"          } }{ {"         { }{ } } _____ __ __"        ( }{ }{ { ) / ____| / _|/ _|"      .- { { } { }} -. | | ___ | |_| |_ ___ ___"     ( ( } { } { } } ) | | / _ | _| _/ _ / _ "     |`-..________ ..-'| | |___| (_) | | | || __/ __/"     | | ________/|_| |_| ___|___|"     | ;--."     | (__ _____ _ _"     | | ) ) / ____| (_) | |"     | |/ / | (___ ___ _ __ _ _ __ | |_"     | ( / ___ / __| '__| | '_ | __|"     | |/ ____) | (__| | | | |_) | |_"     | | |_____/ ___|_| |_| .__/ __|"      `-.._________..-' | |"                                                         |_|" " .oooooo. ooooo ooooo ooooooooooooo ! d8P' `Y8b `888' `888' 8' 888 `8 ! Mark Wunsch @markwunsch! 888 888 888 ooooo 888 888 888 888 888 888 888 888 888 ! ! ! Exotic Programming Languages and the Web! `88. .88' `Y8bood8P' 888 o888o 888 o o888ooood8 888 o888o ! !
  • 2. var pg = require('pg'); ! //or native libpq bindings! //var pg = require('pg').native! ! var conString = "tcp://postgres:1234@localhost/postgres";! ! // error handling omitted! pg.connect(conString, function(err, client) {! client.query("SELECT NOW() as when", function(err, result) {! console.log("Row count: %d",result.rows.length); // 1! console.log("Current year: %d", result.rows[0].when.getYear());! });! });!
  • 4. •  compiles into JavaScript! •  JavaScript s object model! •  the good parts ! •  It s just JavaScript. !
  • 5. fling = (img) ->! $('body').append img! img.show()! img.css! '-webkit-transform': "rotate(#{rando()}deg)"! 'top': root.parseInt(img.css('top'), 10) - rando 45! 'left': root.parseInt(img.css('left'), 10) - rando 45! 'opacity': 0! root.setTimeout (-> img.hide().remove()), 5000! rando = (multiplier = 10) ->! num = Math.ceil Math.random() * multiplier! if num % 2 then -num else num! skus = (sku for id, sku of order.skus)!
  • 6. if pin.properties.count isnt 1! for order, index in pin.properties.orders when (Date.now() - ! » Date.parse order?.submission_date) > (config.expiration ? 180000)! class Mob! constructor: (@name) ->! ! move: (meters) ->! alert @name + " moved #{meters}m."! ! name = person.name! {name} = person! {name, age} = person! ! tag = "<impossible>"! [open, contents..., close] = tag.split("")!
  • 7. But what about my debugger? Common concerns Compiled?
  • 8. Thanks. Here are some links! •  http://coffeescript.org! •  https://github.com/jash kenas/coffee-script/wiki/List-of-languages-that-compile-to-JS! •  Line Number Mapping: https://github.com/jashkenas/coffee-script/ issues/558! •  Hello World in Dart: https://gist.github.com/1277224! •  Smooth CoffeeScript: http://autotelicum.github.com/Smooth- CoffeeScript/! •  The Little Book on CoffeeScript: http://arcturo.github.c om/library/coffeescript/! Mark Wunsch @markwunsch!