SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
Oron Ben Zvi
 

Was ist angesagt? (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
 

Ähnlich wie Java and the Web

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
 

Ähnlich wie 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
 

Mehr von Dmitry Buzdin

Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
Dmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
Dmitry Buzdin
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
Dmitry Buzdin
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
Dmitry Buzdin
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
Dmitry Buzdin
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
Dmitry Buzdin
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
Dmitry Buzdin
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
Dmitry Buzdin
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Dmitry Buzdin
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
Dmitry Buzdin
 

Mehr von 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