SlideShare a Scribd company logo
1 of 8
Download to read offline
            {"
                }   }   {"
               {   { } }"
                }   }{ {"
               { }{ } }                       _____        __ __"
              ( }{ }{ { )                    / ____|      / _|/ _|"
            .- { { } { }} -.                | |      ___ | |_| |_ ___ ___"
           ( ( } { } { } } )                | |     / _ | _| _/ _ / _ "
           |`-..________ ..-'|              | |___| (_) | | | || __/ __/"
           |                  |              ________/|_| |_| ___|___|"
           |                  ;--."
           |                (__              _____            _       _"
           |                  | ) )          / ____|          (_)     | |"
           |                  |/ /          | (___    ___ _ __ _ _ __ | |_"
           |                  ( /            ___  / __| '__| | '_ | __|"
           |                  |/             ____) | (__| | | | |_) | |_"
           |                  |             |_____/ ___|_| |_| .__/ __|"
            `-.._________..-'                                    | |"
                                                               |_|"
                                        "




                                                         .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());!
  });!
});!
•    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

Similar to CoffeeScript Lightning Talk

Similar to CoffeeScript Lightning Talk (11)

HCI in IoT
HCI in IoTHCI in IoT
HCI in IoT
 
Attività didattiche
Attività didatticheAttività didattiche
Attività didattiche
 
Listado por club xi valida
Listado por club xi validaListado por club xi valida
Listado por club xi valida
 
Leng 04
Leng 04Leng 04
Leng 04
 
Leng 04
Leng 04Leng 04
Leng 04
 
Leng 15
Leng 15Leng 15
Leng 15
 
RSpecによるRailsアプリケーションBDD事例
RSpecによるRailsアプリケーションBDD事例RSpecによるRailsアプリケーションBDD事例
RSpecによるRailsアプリケーションBDD事例
 
Tech Fielders セミナー | アプリケーション開発環境の進化 Part1
Tech Fielders セミナー | アプリケーション開発環境の進化 Part1Tech Fielders セミナー | アプリケーション開発環境の進化 Part1
Tech Fielders セミナー | アプリケーション開発環境の進化 Part1
 
Goiken2008 slide01
Goiken2008 slide01Goiken2008 slide01
Goiken2008 slide01
 
Closing Keynote i7summit 2010
Closing Keynote i7summit 2010Closing Keynote i7summit 2010
Closing Keynote i7summit 2010
 
Keio slide
Keio slideKeio slide
Keio slide
 

Recently uploaded

Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreelreely ones
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 

Recently uploaded (20)

Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 

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());! });! });!
  • 3.
  • 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!