SlideShare a Scribd company logo
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

Recommended for you

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

This document discusses paths forward for developers using Java and XPages with Domino after HCL's acquisition. It outlines that XPages introduced Java development to Domino but faced limitations. Going forward, options include returning to LotusScript, using Node.js, continuing with XPages, focusing on REST APIs, integrating additional Java technologies into Domino, or moving to a standalone Java server. The document provides pros and cons of REST APIs and integrating additional Java technologies into Domino. It also discusses tools that can help with running applications on a standalone Java server while still accessing Domino data.

Intro to nodejs
Intro to nodejsIntro to nodejs
Intro to nodejs

This document provides an overview of a lunch and learn session about Node.js. It will discuss why Node.js may not be suitable for some tasks, describe key Node.js concepts like the event loop and asynchronous programming, and show examples of how Node.js has already been used within MDL frameworks like Seneca and groki-server. The session aims to explain Node.js keywords and what they mean, as well as what to expect, including an overview of the event loop and how to take advantage of multiple cores.

node.jsjavascriptevent loop
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?

WebAssembly is a new Web Standard for portable code that runs in the browser. Blazor is a Microsoft Project where you can write C# and ASP.NET Core Razor code – making use of WebAssembly. In this session you are invited to start the journey to a new world, a world that can change programming for the Web in the years to come.

webassemblyblazorrazor
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

Recommended for you

The State of Frontend
The State of FrontendThe State of Frontend
The State of Frontend

The State of Frontend was presented at Vadodara Frontend Developer's meetup on 4th Apr, 2016. It covers the past, present and the future trends in the frontend development.

web designcsshtml5
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids

Hybrid applications combine web development skills with native containers to create cross-platform mobile apps. While frameworks like Ionic and Famo.us allow developing hybrids quickly, performance issues remain on Android. React Native offers better performance by using native UI components instead of a webview, allowing developers to write once with React and deploy natively to iOS and Android. It has potential to replace other "native wrapper" frameworks by bringing React's declarative paradigm directly to mobile.

JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 Takeaways

The Hotstar web team attended JSFoo 2017 conference. Here are some of the key takeaways. Some of the technologies excited us and some we believe have a business impact.

javascriptreactweb
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

Recommended for you

Mini-Training: Node.js
Mini-Training: Node.jsMini-Training: Node.js
Mini-Training: Node.js

A quick overview on Node.js to see how Javascript is changing server programming : brief history & motivations, what makes NodeJS so special/popular/difficult, typical use cases, and a few popular tools around the NodeJs world : npm, Grunt, IISNode, Tools for Visual Studio, …

nodejsjavascriptnpm
Basics for front end developer
Basics for front end developerBasics for front end developer
Basics for front end developer

This document discusses the misunderstanding of the complexity of front-end development. It notes that while visual design and CSS/HTML may look easy, front-end development requires skills like communication, analyzing layouts, identifying components, abstracting behaviors, shaping appearance, and integrating different aspects. The development process takes around 9 months and involves tasks at different stages from design to deployment. It also discusses the reasons one may or may not want to pursue front-end development as a career.

Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go large

My talk from Drupalcamp London Business Day on 1st March 2013 When building big websites, you're going to face a lot of problems regardless of your technology choice. This talk unveils some of the common problems, and shows how the Drupal community will help you solve these problems.

drupalweb developmentperformance
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

Recommended for you

ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript

Presentation I gave at a local MeetIT meetup in Toruń, Poland on 19th February 2016. Polish slides available on my channel as well

esjavascriptes6
SFJS 6-19-2012
SFJS 6-19-2012SFJS 6-19-2012
SFJS 6-19-2012

This document discusses WD.js, a Node.js library for functional testing web applications using the WebDriver protocol. It provides a small, easy to install library for running JavaScript tests across browsers and mobile devices. The document outlines the ecosystem of related libraries, demonstrates WD.js, and discusses lessons learned around test organization, parallelization, and speeding up the testing process.

npmjellyfishnode
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise

This document discusses open source software (OSS) and provides advice for overcoming cultural resistance to using OSS in organizations. It notes common objections from management like concerns over cost, security, and support. It recommends starting small with non-critical projects, emphasizing quality open source options, and educating management on OSS licensing models and the business benefits of OSS like faster innovation and attracting technical talent.

warmcrocconf
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

Recommended for you

TSSJS 2011 - JRuby
TSSJS 2011 - JRubyTSSJS 2011 - JRuby
TSSJS 2011 - JRuby

JRuby allows developers to use the Ruby programming language on the Java Virtual Machine. It provides a solid, reliable implementation of Ruby that integrates well with existing Java libraries and tools. JRuby brings the features of Ruby like its elegant syntax to Java developers, while also bringing the large Java ecosystem to Ruby developers. It allows both communities to work together on the same platform.

railsjrubyandroid
Productive Rails development with RubyMine
Productive Rails development with RubyMineProductive Rails development with RubyMine
Productive Rails development with RubyMine

RubyMine is an IDE created by JetBrains that provides tools to aid in productive Ruby and Rails development. The presentation provides an overview of RubyMine's features including code completion, navigation, refactoring support, debugging tools, and integration with version control systems and other JetBrains products. The demo sections illustrate how RubyMine assists with common Rails development tasks and allows customizing the IDE through settings, snippets, and keyboard shortcuts. Other JetBrains products like IntelliJ IDEA, TeamCity and YouTrack are also highlighted as being useful for Ruby developers.

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

The story of all the pitfalls we had while transferring FTBpro.com from the good old web to a Backbone single page application... and all the great solutions we've came up with

ruby on railsjavascript
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

More Related Content

What's hot

Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirter
Red Hat Developers
 
Git. Transition.
Git. Transition.Git. Transition.
Git. Transition.
Pavel Grushetzky
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case Study
Phase2
 
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
Jesse Gallagher
 
Intro to nodejs
Intro to nodejsIntro to nodejs
Intro to nodejs
Abhinav Dhasmana
 
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 Frontend
Jimit Shah
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
Oron Ben Zvi
 
JSFoo-2017 Takeaways
JSFoo-2017 TakeawaysJSFoo-2017 Takeaways
JSFoo-2017 Takeaways
Mir Ali
 
Mini-Training: Node.js
Mini-Training: Node.jsMini-Training: Node.js
Mini-Training: Node.js
Betclic Everest Group Tech Team
 
Basics for front end developer
Basics for front end developerBasics for front end developer
Basics for front end developer
namrataa0108
 
Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go large
Tom Phethean
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
Wojciech Dzikowski
 
SFJS 6-19-2012
SFJS 6-19-2012SFJS 6-19-2012
SFJS 6-19-2012
Adam Christian
 
Embracing OSS in the enterprise
Embracing OSS in the enterpriseEmbracing OSS in the enterprise
Embracing OSS in the enterprise
cyberzeddk
 
TSSJS 2011 - JRuby
TSSJS 2011 - JRubyTSSJS 2011 - JRuby
TSSJS 2011 - JRuby
Charles Nutter
 
Productive Rails development with RubyMine
Productive Rails development with RubyMineProductive Rails development with RubyMine
Productive Rails development with RubyMine
olegshpynov
 
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
Dor Kalev
 
Ruby+rails
Ruby+railsRuby+rails
Ruby+rails
Josh Dvir
 
Iwmw
IwmwIwmw

What's hot (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
 

Similar to Java and the Web

Session 01 - Introduction to Java
Session 01 - Introduction to JavaSession 01 - Introduction to Java
Session 01 - Introduction to Java
PawanMM
 
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 library
Kostis Dadamis
 
9 cm604.1
9 cm604.19 cm604.1
9 cm604.1
myrajendra
 
Node.js #digpen presentation
Node.js #digpen presentationNode.js #digpen presentation
Node.js #digpen presentation
GOSS Interactive
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
RatnaJava
 
Java features
Java featuresJava features
Java features
myrajendra
 
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
GlobalLogic 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 developed
Alexander 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
Tpr1
dzdn
 
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 2010
Atlassian
 
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
InfinIT - Innovationsnetværket for it
 
Chapter-1 Introduction.pptx
Chapter-1 Introduction.pptxChapter-1 Introduction.pptx
Chapter-1 Introduction.pptx
SumanBhandari40
 
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
Wekoslav Stefanovski
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
Paul Withers
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJS
Eugene 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
 

Similar to 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
 

More from 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 Machines
Dmitry Buzdin
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
Dmitry Buzdin
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
Dmitry Buzdin
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
Dmitry Buzdin
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
Dmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
Dmitry Buzdin
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
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
 

More from 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