SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Web Development in
      Java
    Trends and Technologies




                              1
About Speaker

• Dmitry Buzdin
• C.T.Co Software Architect
• Java User Group Latvia
• Agile Latvia
• Coding in Java for Money

                              2
The Question

• Java + Web = ?
• Demo
• The best Java Web Framework announced


                                          3
Today

• Most of the public Web sites are in PHP
• Java is for “enterprises”
• Enterprises are inefficient
• Is Java inefficient?...

                                            4
Is Java Dead for Web?



                        5
What’s the Problem?
• Layered nightmare
• Jar hell
• Boiling complexity
• Enterprise insanity
• Xml madness
• No code without IDE
                        6
Java Layered Architecture XIV cent.




                                      7
So Many Options...




                     8
Question?


• Would you pick Java for your next cool
  web project?




                                           9
Java is Cool but...

• One-man team
• I have to deliver tomorrow
• Productivity is what matters...
• Leave Java for enterprises where it belongs

                                                10
Obvious Choice




                 11
What People Choose?

• Groovy
• Ruby
• Python
• Scala
• PHP

                      12
What People Want?
• Instant code refresh
• Convention over configuration
• Full-stack solution
• Components and extensions
• Ajax
• REST
• Productivity!
                                 13
Seen Anything Like That
       in Java?


                          14
Introducing


              15
DEMO

       16
What We Have Seen

• Dead simple
• Productivity delivered
• Old idioms thrown away
• Builds on experience of other frameworks
• Caution - Play is not a toy!

                                             17
Check List
• instant code refresh
• convention over configuration
• full-stack solution
• components and extensions
• ajax
• REST
• productivity!
                                 18
The Best?


• Play is great framework, but not the best
• The best Java Web Framework is...


                                              19
The Best Java Web
   Framework

        An
       Empty
        Jar




                    20
Conclusions

• Java is suitable for doing Web
• Java evolves (slowly)
• I have picked-up Play for my next home
  project...




                                           21
What Should You Do?

• Learn several Web frameworks
• Learn dynamic language
• Know Java bright and dark sides
• Know Java boundaries and how to push them

                                              22
Thank You!
  http://buzdin.blogspot.com/
http://www.playframework.org/


                                23

Mais conteúdo relacionado

Mais procurados

Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterRed Hat Developers
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyPhase2
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesJesse Gallagher
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?Christian Nagel
 
The State of Frontend
The State of FrontendThe State of Frontend
The State of FrontendJimit Shah
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybridsOron Ben Zvi
 
JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 TakeawaysMir Ali
 
Basics for front end developer
Basics for front end developerBasics for front end developer
Basics for front end developernamrataa0108
 
Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go largeTom Phethean
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptWojciech Dzikowski
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprisecyberzeddk
 
Productive Rails development with RubyMine
Productive Rails development with RubyMineProductive Rails development with RubyMine
Productive Rails development with RubyMineolegshpynov
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsDor Kalev
 

Mais procurados (20)

Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirter
 
Git. Transition.
Git. Transition.Git. Transition.
Git. Transition.
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case Study
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
 
Intro to nodejs
Intro to nodejsIntro to nodejs
Intro to nodejs
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?
 
The State of Frontend
The State of FrontendThe State of Frontend
The State of Frontend
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
 
JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 Takeaways
 
Mini-Training: Node.js
Mini-Training: Node.jsMini-Training: Node.js
Mini-Training: Node.js
 
Basics for front end developer
Basics for front end developerBasics for front end developer
Basics for front end developer
 
Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go large
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
 
SFJS 6-19-2012
SFJS 6-19-2012SFJS 6-19-2012
SFJS 6-19-2012
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
 
TSSJS 2011 - JRuby
TSSJS 2011 - JRubyTSSJS 2011 - JRuby
TSSJS 2011 - JRuby
 
Productive Rails development with RubyMine
Productive Rails development with RubyMineProductive Rails development with RubyMine
Productive Rails development with RubyMine
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page Applications
 
Ruby+rails
Ruby+railsRuby+rails
Ruby+rails
 
Iwmw
IwmwIwmw
Iwmw
 

Semelhante a Java and the Web

Session 01 - Introduction to Java
Session 01 - Introduction to JavaSession 01 - Introduction to Java
Session 01 - Introduction to JavaPawanMM
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java Hitesh-Java
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...jward5519
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform libraryKostis Dadamis
 
Node.js #digpen presentation
Node.js #digpen presentationNode.js #digpen presentation
Node.js #digpen presentationGOSS Interactive
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2RatnaJava
 
Understand Java for Android the Hard Way
Understand Java for Android the Hard WayUnderstand Java for Android the Hard Way
Understand Java for Android the Hard WayGlobalLogic Ukraine
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!Joachim Tuchel
 
Tpr1
Tpr1Tpr1
Tpr1dzdn
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java RatnaJava
 
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Atlassian
 
Chapter-1 Introduction.pptx
Chapter-1 Introduction.pptxChapter-1 Introduction.pptx
Chapter-1 Introduction.pptxSumanBhandari40
 
Coding for the cloud - development of modern web applications
Coding for the cloud - development of modern web applicationsCoding for the cloud - development of modern web applications
Coding for the cloud - development of modern web applicationsWekoslav Stefanovski
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSEugene Lazutkin
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development LetsConnect
 

Semelhante a Java and the Web (20)

Session 01 - Introduction to Java
Session 01 - Introduction to JavaSession 01 - Introduction to Java
Session 01 - Introduction to Java
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
 
9 cm604.1
9 cm604.19 cm604.1
9 cm604.1
 
Node.js #digpen presentation
Node.js #digpen presentationNode.js #digpen presentation
Node.js #digpen presentation
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
 
Java features
Java featuresJava features
Java features
 
Understand Java for Android the Hard Way
Understand Java for Android the Hard WayUnderstand Java for Android the Hard Way
Understand Java for Android the Hard Way
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!
 
Tpr1
Tpr1Tpr1
Tpr1
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
 
JAVA FPGA An Application for Space af Jens A. Hansen, CISS
JAVA FPGA An Application for Space af Jens A. Hansen, CISSJAVA FPGA An Application for Space af Jens A. Hansen, CISS
JAVA FPGA An Application for Space af Jens A. Hansen, CISS
 
Chapter-1 Introduction.pptx
Chapter-1 Introduction.pptxChapter-1 Introduction.pptx
Chapter-1 Introduction.pptx
 
Coding for the cloud - development of modern web applications
Coding for the cloud - development of modern web applicationsCoding for the cloud - development of modern web applications
Coding for the cloud - development of modern web applications
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJS
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
 

Mais de Dmitry Buzdin

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?Dmitry Buzdin
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?Dmitry Buzdin
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?Dmitry Buzdin
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDmitry Buzdin
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureDmitry Buzdin
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIsDmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахDmitry Buzdin
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fmDmitry Buzdin
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIDmitry Buzdin
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsDmitry Buzdin
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with ClojureDmitry Buzdin
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional ProgrammingDmitry Buzdin
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contestDmitry Buzdin
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery Dmitry Buzdin
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsDmitry Buzdin
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump AnalysisDmitry Buzdin
 

Mais de Dmitry Buzdin (20)

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
 

Java and the Web

  • 1. Web Development in Java Trends and Technologies 1
  • 2. About Speaker • Dmitry Buzdin • C.T.Co Software Architect • Java User Group Latvia • Agile Latvia • Coding in Java for Money 2
  • 3. The Question • Java + Web = ? • Demo • The best Java Web Framework announced 3
  • 4. Today • Most of the public Web sites are in PHP • Java is for “enterprises” • Enterprises are inefficient • Is Java inefficient?... 4
  • 5. Is Java Dead for Web? 5
  • 6. What’s the Problem? • Layered nightmare • Jar hell • Boiling complexity • Enterprise insanity • Xml madness • No code without IDE 6
  • 9. Question? • Would you pick Java for your next cool web project? 9
  • 10. Java is Cool but... • One-man team • I have to deliver tomorrow • Productivity is what matters... • Leave Java for enterprises where it belongs 10
  • 12. What People Choose? • Groovy • Ruby • Python • Scala • PHP 12
  • 13. What People Want? • Instant code refresh • Convention over configuration • Full-stack solution • Components and extensions • Ajax • REST • Productivity! 13
  • 14. Seen Anything Like That in Java? 14
  • 16. DEMO 16
  • 17. What We Have Seen • Dead simple • Productivity delivered • Old idioms thrown away • Builds on experience of other frameworks • Caution - Play is not a toy! 17
  • 18. Check List • instant code refresh • convention over configuration • full-stack solution • components and extensions • ajax • REST • productivity! 18
  • 19. The Best? • Play is great framework, but not the best • The best Java Web Framework is... 19
  • 20. The Best Java Web Framework An Empty Jar 20
  • 21. Conclusions • Java is suitable for doing Web • Java evolves (slowly) • I have picked-up Play for my next home project... 21
  • 22. What Should You Do? • Learn several Web frameworks • Learn dynamic language • Know Java bright and dark sides • Know Java boundaries and how to push them 22
  • 23. Thank You! http://buzdin.blogspot.com/ http://www.playframework.org/ 23