SlideShare ist ein Scribd-Unternehmen logo
1 von 32
JavaScript
8 Reasons Every PHP Developer Should Love It




                             Boy Baukema
                          24 January 2008


                                               1
Welcome!




           2
               2
What I’ll cover

-   8 Reasons to love JavaScript
-   JavaScript to PHP
-   Availability
-   Lambda functions & closures
-   Libraries
-   Future
-   Resources
-   Q&A



                                   3
                                       3
Gmail?




         4
             4
jQuery? Prototype.js? Dojo?




                              5
                                  5
Quirksmode.org?




                  6
                      6
JavaScript Evangelist @




                          7
                              7
1. JavaScript is misunderstood




                                 8
                                     8
2. JavaScript IS the web




                           9
                               9
3. JavaScript is EVERYWHERE

     Do we really need graceful degradation?




                                               10
                                                    10
3. JavaScript is EVERYWHERE




                              11
                                   11
3. JavaScript is EVERYWHERE




                              12
                                   12
3. JavaScript is EVERYWHERE




                              13
                                   13
3. JavaScript is EVERYWHERE




                              14
                                   14
3. JavaScript is EVERYWHERE




                              15
                                   15
4. JavaScript has lambda functions




             VS




                                     16
                                          16
4. JavaScript has lambda functions




                     VS




                                     17
                                          17
4. JavaScript has lambda functions



PHP 4 >= 4.0.1, PHP 5




                                     18
                                          18
4. JavaScript has lambda functions



PHP 5.3




                                     19
                                          19
4. JavaScript has lambda functions




                                     20
                                          20
4. JavaScript has lambda functions




                                     21
                                          21
5. JavaScript has closures


Javascript closure example




                             22
                                  22
5. JavaScript has closures



PHP closure




                             23
                                  23
5. JavaScript has closures


PHP closure continued...




“I never thought I'd say this, but I miss closures.”
- Marco Tabini, php|architect

                                                       24
                                                            24
6. JavaScript is different




                             25
                                  25
7. Small and easy to extend




                              26
                                   26
7. Small and easy to extend
                                                                                                             strcmp
                        array_walk_recursive   echo                        intval          nl2br             stripos
     abs
                        asinh                  empty                       in_array        number_format     stripslashes
acos
                        asin                   end                         ip2long         octdec            strip_tags
addslashes
                        atanh                  exit                        isset           ord               stristr
array
                        atan                   explode                     is_array        parse_str         strlen
array_change_key_case
                        base64_decode          exp                         is_bool         pi                strnatcmp
array_chunk
                        base64_encode          filesize                    is_double       pow               strncasecmp
array_combine
                        basename               file                        is_finite       preg_quote        strpbrk
array_count_values
                        base_convert           file_exists                 is_float        printf            strpos
array_diff
                        bin2hex                file_get_contents           is_infinite     print_r           strrev
array_diff_assoc
                        bindec                 floatval                    is_integer      property_exists   strripos
array_diff_key
                        call_user_func         floor                       is_int          quotemeta         strrpos
array_fill
                        call_user_func_array   fmod                        is_long         rad2deg           strspn
array_fill_keys
                        ceil                   function_exists             is_nan          rand              strstr
array_filter
                        checkdate              func_get_args               is_null         range             strtolower
array_flip
                        chop                   func_get_arg                is_numeric      require           strtotime
array_keys
                        chr                    func_num_args               is_object       require_once      strtoupper
array_key_exists
                        chunk_split            getdate                     is_scalar       reset             str_ireplace
array_map
                        class_exists           getrandmax                  is_string       round             str_pad
array_merge
                        compact                gettype                     join            rsort             str_repeat
array_merge_recursive
                        constant               get_class                   krsort          rtrim             str_replace
array_pad
                        cosh                   get_defined_functions       ksort           serialize         str_rot13
array_pop
                        cos                    get_defined_vars            lcg_value       setcookie         str_split
array_product
                        count                  get_headers                 levenshtein     sha1              substr
array_push
                        count_chars            get_html_translation_tabl   log10           sha1_file         substr_count
array_rand
                        crc32                  e                           log             shuffle           tanh
array_reduce
                        create_function        get_included_files          long2ip         sinh              tan
array_reverse
                        date                   hexdec                      ltrim           sin               time
array_search
                        decbin                 htmlentities                max             sizeof            trim
array_shift
                        dechex                 htmlspecialchars            md5             sleep             ucfirst
array_slice
                        decoct                 htmlspecialchars_decode     md5_file        sort              ucwords
array_splice
                        defined                html_entity_decode          method_exists   soundex           unserialize
array_sum
                        define                 http_build_query            microtime       split             urldecode
array_unique
                        deg2rad                hypot                       min             sprintf           urlencode
array_unshift
                        die                    implode                     mktime          sqrt              utf8_decode
array_values
                        dirname                include                     mt_getrandmax   strcasecmp        utf8_encode
array_walk
                        each                   include_once                mt_rand         strchr            var_export
                                                                                                             wordwrap


                                                                                                                            27
                                                                                                                                 27
8. JavaScript is the future


       “JavaScript is probably the most important
       language in the world today.“
       - Steve Yegge (ex-Amazon, now Google)


       “Our JIT compiler generates code that is roughly
       equivalent to the performance
       of unoptimized C code (gcc -O0).”
       - Andreas Gal, Mozilla Tracemonkey dev




                                                      28
                                                           28
Learn JavaScript!




                    29
                         29
8 Reasons

1. JavaScript is misunderstood
2. JavaScript IS the web
3. JavaScript is EVERYWHERE
4. JavaScript has lambda functions
5. JavaScript has closures
6. JavaScript is different
7. Small and easy to extend
8. JavaScript is the future
                                 30
                                      30
Thank you!
http://tinyurl.com/ilovejs
                 Contact details:
                     Boy Baukema
                 boy@ibuildings.nl
      http://twitter.com/relaxnow




                                     31
Questions ?




              32
                   32

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (7)

Vn Macro Jpn
Vn Macro JpnVn Macro Jpn
Vn Macro Jpn
 
July 2012
July 2012July 2012
July 2012
 
Community labs vn 2009 jpn
Community labs vn 2009 jpnCommunity labs vn 2009 jpn
Community labs vn 2009 jpn
 
Sync The World
Sync The WorldSync The World
Sync The World
 
Hehehehtest
HehehehtestHehehehtest
Hehehehtest
 
Verifying Drupal modules with OWASP ASVS 2014
Verifying Drupal modules with OWASP ASVS 2014Verifying Drupal modules with OWASP ASVS 2014
Verifying Drupal modules with OWASP ASVS 2014
 
20100324fujisankei
20100324fujisankei20100324fujisankei
20100324fujisankei
 

Ähnlich wie 8 Reasons PHP Developers Should Learn JavaScript

Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesThoughtWorks
 
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov Nayden Gochev
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2rubyMarc Chung
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes BackBurke Libbey
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMRaimonds Simanovskis
 
Scientific computing on jruby
Scientific computing on jrubyScientific computing on jruby
Scientific computing on jrubyPrasun Anand
 
Aprendendo solid com exemplos
Aprendendo solid com exemplosAprendendo solid com exemplos
Aprendendo solid com exemplosvinibaggio
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVMKoichi Sakata
 
Angular Weekend
Angular WeekendAngular Weekend
Angular WeekendTroy Miles
 
A Post About Analyzing PHP
A Post About Analyzing PHPA Post About Analyzing PHP
A Post About Analyzing PHPAndrey Karpov
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteDr Nic Williams
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamposcon2007
 
Fosdem2017 Scientific computing on Jruby
Fosdem2017  Scientific computing on JrubyFosdem2017  Scientific computing on Jruby
Fosdem2017 Scientific computing on JrubyPrasun Anand
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task QueueRichard Leland
 
ChakraCore: analysis of JavaScript-engine for Microsoft Edge
ChakraCore: analysis of JavaScript-engine for Microsoft EdgeChakraCore: analysis of JavaScript-engine for Microsoft Edge
ChakraCore: analysis of JavaScript-engine for Microsoft EdgePVS-Studio
 

Ähnlich wie 8 Reasons PHP Developers Should Learn JavaScript (20)

Scilab vs matlab
Scilab vs matlabScilab vs matlab
Scilab vs matlab
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
 
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2ruby
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes Back
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVM
 
Scientific computing on jruby
Scientific computing on jrubyScientific computing on jruby
Scientific computing on jruby
 
Aprendendo solid com exemplos
Aprendendo solid com exemplosAprendendo solid com exemplos
Aprendendo solid com exemplos
 
Intro to J Ruby
Intro to J RubyIntro to J Ruby
Intro to J Ruby
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVM
 
Angular Weekend
Angular WeekendAngular Weekend
Angular Weekend
 
Jvm internals
Jvm internalsJvm internals
Jvm internals
 
Profiling Ruby
Profiling RubyProfiling Ruby
Profiling Ruby
 
A Post About Analyzing PHP
A Post About Analyzing PHPA Post About Analyzing PHP
A Post About Analyzing PHP
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamp
 
Fosdem2017 Scientific computing on Jruby
Fosdem2017  Scientific computing on JrubyFosdem2017  Scientific computing on Jruby
Fosdem2017 Scientific computing on Jruby
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task Queue
 
EROSについて
EROSについてEROSについて
EROSについて
 
ChakraCore: analysis of JavaScript-engine for Microsoft Edge
ChakraCore: analysis of JavaScript-engine for Microsoft EdgeChakraCore: analysis of JavaScript-engine for Microsoft Edge
ChakraCore: analysis of JavaScript-engine for Microsoft Edge
 

Mehr von Boy Baukema

Security horrors
Security horrorsSecurity horrors
Security horrorsBoy Baukema
 
Tampering with JavaScript
Tampering with JavaScriptTampering with JavaScript
Tampering with JavaScriptBoy Baukema
 
Code by the sea: Web Application Security
Code by the sea: Web Application SecurityCode by the sea: Web Application Security
Code by the sea: Web Application SecurityBoy Baukema
 
Ibuildings ISO 27001 lunchbox
Ibuildings ISO 27001 lunchboxIbuildings ISO 27001 lunchbox
Ibuildings ISO 27001 lunchboxBoy Baukema
 
OWASP ASVS 3 - What's new for level 1?
OWASP ASVS 3 - What's new for level 1?OWASP ASVS 3 - What's new for level 1?
OWASP ASVS 3 - What's new for level 1?Boy Baukema
 
Secure Drupal, from start to finish
Secure Drupal, from start to finishSecure Drupal, from start to finish
Secure Drupal, from start to finishBoy Baukema
 
Security as a part of quality assurance
Security as a part of quality assuranceSecurity as a part of quality assurance
Security as a part of quality assuranceBoy Baukema
 
Recursive descent parsing
Recursive descent parsingRecursive descent parsing
Recursive descent parsingBoy Baukema
 
Dpc14 security as part of Quality Assurance
Dpc14   security as part of Quality AssuranceDpc14   security as part of Quality Assurance
Dpc14 security as part of Quality AssuranceBoy Baukema
 
SURFconext and Mobile
SURFconext and MobileSURFconext and Mobile
SURFconext and MobileBoy Baukema
 
WebAppSec @ Ibuildings in 2014
WebAppSec @ Ibuildings in 2014WebAppSec @ Ibuildings in 2014
WebAppSec @ Ibuildings in 2014Boy Baukema
 
Let's build a parser!
Let's build a parser!Let's build a parser!
Let's build a parser!Boy Baukema
 

Mehr von Boy Baukema (12)

Security horrors
Security horrorsSecurity horrors
Security horrors
 
Tampering with JavaScript
Tampering with JavaScriptTampering with JavaScript
Tampering with JavaScript
 
Code by the sea: Web Application Security
Code by the sea: Web Application SecurityCode by the sea: Web Application Security
Code by the sea: Web Application Security
 
Ibuildings ISO 27001 lunchbox
Ibuildings ISO 27001 lunchboxIbuildings ISO 27001 lunchbox
Ibuildings ISO 27001 lunchbox
 
OWASP ASVS 3 - What's new for level 1?
OWASP ASVS 3 - What's new for level 1?OWASP ASVS 3 - What's new for level 1?
OWASP ASVS 3 - What's new for level 1?
 
Secure Drupal, from start to finish
Secure Drupal, from start to finishSecure Drupal, from start to finish
Secure Drupal, from start to finish
 
Security as a part of quality assurance
Security as a part of quality assuranceSecurity as a part of quality assurance
Security as a part of quality assurance
 
Recursive descent parsing
Recursive descent parsingRecursive descent parsing
Recursive descent parsing
 
Dpc14 security as part of Quality Assurance
Dpc14   security as part of Quality AssuranceDpc14   security as part of Quality Assurance
Dpc14 security as part of Quality Assurance
 
SURFconext and Mobile
SURFconext and MobileSURFconext and Mobile
SURFconext and Mobile
 
WebAppSec @ Ibuildings in 2014
WebAppSec @ Ibuildings in 2014WebAppSec @ Ibuildings in 2014
WebAppSec @ Ibuildings in 2014
 
Let's build a parser!
Let's build a parser!Let's build a parser!
Let's build a parser!
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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 ...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 

8 Reasons PHP Developers Should Learn JavaScript

  • 1. JavaScript 8 Reasons Every PHP Developer Should Love It Boy Baukema 24 January 2008 1
  • 2. Welcome! 2 2
  • 3. What I’ll cover - 8 Reasons to love JavaScript - JavaScript to PHP - Availability - Lambda functions & closures - Libraries - Future - Resources - Q&A 3 3
  • 4. Gmail? 4 4
  • 8. 1. JavaScript is misunderstood 8 8
  • 9. 2. JavaScript IS the web 9 9
  • 10. 3. JavaScript is EVERYWHERE Do we really need graceful degradation? 10 10
  • 11. 3. JavaScript is EVERYWHERE 11 11
  • 12. 3. JavaScript is EVERYWHERE 12 12
  • 13. 3. JavaScript is EVERYWHERE 13 13
  • 14. 3. JavaScript is EVERYWHERE 14 14
  • 15. 3. JavaScript is EVERYWHERE 15 15
  • 16. 4. JavaScript has lambda functions VS 16 16
  • 17. 4. JavaScript has lambda functions VS 17 17
  • 18. 4. JavaScript has lambda functions PHP 4 >= 4.0.1, PHP 5 18 18
  • 19. 4. JavaScript has lambda functions PHP 5.3 19 19
  • 20. 4. JavaScript has lambda functions 20 20
  • 21. 4. JavaScript has lambda functions 21 21
  • 22. 5. JavaScript has closures Javascript closure example 22 22
  • 23. 5. JavaScript has closures PHP closure 23 23
  • 24. 5. JavaScript has closures PHP closure continued... “I never thought I'd say this, but I miss closures.” - Marco Tabini, php|architect 24 24
  • 25. 6. JavaScript is different 25 25
  • 26. 7. Small and easy to extend 26 26
  • 27. 7. Small and easy to extend strcmp array_walk_recursive echo intval nl2br stripos abs asinh empty in_array number_format stripslashes acos asin end ip2long octdec strip_tags addslashes atanh exit isset ord stristr array atan explode is_array parse_str strlen array_change_key_case base64_decode exp is_bool pi strnatcmp array_chunk base64_encode filesize is_double pow strncasecmp array_combine basename file is_finite preg_quote strpbrk array_count_values base_convert file_exists is_float printf strpos array_diff bin2hex file_get_contents is_infinite print_r strrev array_diff_assoc bindec floatval is_integer property_exists strripos array_diff_key call_user_func floor is_int quotemeta strrpos array_fill call_user_func_array fmod is_long rad2deg strspn array_fill_keys ceil function_exists is_nan rand strstr array_filter checkdate func_get_args is_null range strtolower array_flip chop func_get_arg is_numeric require strtotime array_keys chr func_num_args is_object require_once strtoupper array_key_exists chunk_split getdate is_scalar reset str_ireplace array_map class_exists getrandmax is_string round str_pad array_merge compact gettype join rsort str_repeat array_merge_recursive constant get_class krsort rtrim str_replace array_pad cosh get_defined_functions ksort serialize str_rot13 array_pop cos get_defined_vars lcg_value setcookie str_split array_product count get_headers levenshtein sha1 substr array_push count_chars get_html_translation_tabl log10 sha1_file substr_count array_rand crc32 e log shuffle tanh array_reduce create_function get_included_files long2ip sinh tan array_reverse date hexdec ltrim sin time array_search decbin htmlentities max sizeof trim array_shift dechex htmlspecialchars md5 sleep ucfirst array_slice decoct htmlspecialchars_decode md5_file sort ucwords array_splice defined html_entity_decode method_exists soundex unserialize array_sum define http_build_query microtime split urldecode array_unique deg2rad hypot min sprintf urlencode array_unshift die implode mktime sqrt utf8_decode array_values dirname include mt_getrandmax strcasecmp utf8_encode array_walk each include_once mt_rand strchr var_export wordwrap 27 27
  • 28. 8. JavaScript is the future “JavaScript is probably the most important language in the world today.“ - Steve Yegge (ex-Amazon, now Google) “Our JIT compiler generates code that is roughly equivalent to the performance of unoptimized C code (gcc -O0).” - Andreas Gal, Mozilla Tracemonkey dev 28 28
  • 30. 8 Reasons 1. JavaScript is misunderstood 2. JavaScript IS the web 3. JavaScript is EVERYWHERE 4. JavaScript has lambda functions 5. JavaScript has closures 6. JavaScript is different 7. Small and easy to extend 8. JavaScript is the future 30 30
  • 31. Thank you! http://tinyurl.com/ilovejs Contact details: Boy Baukema boy@ibuildings.nl http://twitter.com/relaxnow 31
  • 32. Questions ? 32 32