Fundamentals of XPFundamentals of XP
Himanshu Gupta
Sr. Software Consultant
Knoldus Software LLP
Himanshu Gupta
Sr. Software Consultant
Knoldus Software LLP
XP – eXtreme ProgrammingXP – eXtreme Programming
● Lightweight
● Efficient
● Low-risk
● Flexible
● Predictable
● Scientific
● Fun way of programming
● Lightweight
● Efficient
● Low-risk
● Flexible
● Predictable
● Scientific
● Fun way of programming
DifferenceDifference
● Short Cycles
● Incremental planning approach
● Able to create flexible development schedules
● Rely on
● Automated tests
● Oral Communication
● Evolutionary design process
● Close collaboration of programmers
● Short Cycles
● Incremental planning approach
● Able to create flexible development schedules
● Rely on
● Automated tests
● Oral Communication
● Evolutionary design process
● Close collaboration of programmers
Problems & SolutionsProblems & Solutions
Problems
● Schedule Slips
● Project Canceled
● System goes sour
● Defect rate
● Business misunderstood
● Business changes
● False feature rich
● Staff turnover
Problems
● Schedule Slips
● Project Canceled
● System goes sour
● Defect rate
● Business misunderstood
● Business changes
● False feature rich
● Staff turnover
Solutions
● Short cycles
● MBS (Most Business Sense)
● Automated Tests
● Acceptance Tests
● Oral communication
● Short cycles
● Prioritizing tasks
● Individual ownership
Solutions
● Short cycles
● MBS (Most Business Sense)
● Automated Tests
● Acceptance Tests
● Oral communication
● Short cycles
● Prioritizing tasks
● Individual ownership
Day-to-day programming proceeds from a task clearly
connected to a feature the customer wants, to tests, to
implementation, to design, and through to integration. A
little of each of the activities of software development are
packed into each episode.
Day-to-day programming proceeds from a task clearly
connected to a feature the customer wants, to tests, to
implementation, to design, and through to integration. A
little of each of the activities of software development are
packed into each episode.
An EpisodeAn Episode
Four VariablesFour Variables
● Cost
● Time
● Quality
● Scope
● Cost
● Time
● Quality
● Scope
Cost of ChangeCost of Change
The cost of change may not rise dramatically over time
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Learning to DriveLearning to Drive
"Driving is not about getting the car going in the right
direction. Driving is about constantly paying attention,
making a little correction this way, a
little correction that way."
"Driving is not about getting the car going in the right
direction. Driving is about constantly paying attention,
making a little correction this way, a
little correction that way."
Four ValuesFour Values
● Communication
● Simplicity
● Feedback
● Courage
● Communication
● Simplicity
● Feedback
● Courage
* A value, that lies below the surface of the other these four is Respect.* A value, that lies below the surface of the other these four is Respect.
Basic PrinciplesBasic Principles
● Rapid feedback
● Assume simplicity
● Incremental change
● Embracing change
● Quality work
● Rapid feedback
● Assume simplicity
● Incremental change
● Embracing change
● Quality work
Fundamental PrinciplesFundamental Principles
Basic PrinciplesBasic Principles
● Teach learning
● Small initial investment
● Play to win
● Concrete experiments
● Open, honest communication
● Work with people's instincts, not against them
● Accepted responsibility
● Local adaptation
● Travel light
● Honest measurement
● Teach learning
● Small initial investment
● Play to win
● Concrete experiments
● Open, honest communication
● Work with people's instincts, not against them
● Accepted responsibility
● Local adaptation
● Travel light
● Honest measurement
Central PrinciplesCentral Principles
Back to BasicsBack to Basics
● Coding
● Testing
● Listening
● Designing
● Coding
● Testing
● Listening
● Designing
We code because if we don't code, we haven't done anything. We test
because if we don't test, we don't know when we are done coding. We
listen because if we don't listen we don't know what to code or what to
test. And we design so we can keep coding and testing and listening
indefinitely.
A Quick OverviewA Quick Overview
● The Planning Game
● Small Releases
● Metaphor
● Simple Design
● Testing
● Refactoring
● Pair Programming
● Collective Ownership
● Continuous Integration
● 40 Hour Week
● On-site Customer
● Coding Standards
● The Planning Game
● Small Releases
● Metaphor
● Simple Design
● Testing
● Refactoring
● Pair Programming
● Collective Ownership
● Continuous Integration
● 40 Hour Week
● On-site Customer
● Coding Standards
Practices Support each otherPractices Support each other
How could this Work ?How could this Work ?
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Management StrategyManagement Strategy
● Metrics
● Coaching
● Tracking
● Intervention
● Metrics
● Coaching
● Tracking
● Intervention
Facilities StrategyFacilities Strategy
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Splitting Business and
Technical Responsibility
Splitting Business and
Technical Responsibility
The choice between selecting a Ferrari and a Minivan is made
on the basis of:
● Cost – Ferrari($200,000) & Minivan($40,000)
● Requirement -
● Should be able to carry five people.
● Should be able to run at 200km/h.
The choice between selecting a Ferrari and a Minivan is made
on the basis of:
● Cost – Ferrari($200,000) & Minivan($40,000)
● Requirement -
● Should be able to carry five people.
● Should be able to run at 200km/h.
Planning StrategyPlanning Strategy
● The Goal
● The Strategy
● The Pieces
● The Players
● The Moves
● Iteration Planning
● Exploration Phase
● Commitment Phase
● Steering Phase
● Planning in a Week
● The Goal
● The Strategy
● The Pieces
● The Players
● The Moves
● Iteration Planning
● Exploration Phase
● Commitment Phase
● Steering Phase
● Planning in a Week
Development StrategyDevelopment Strategy
● Continuous Integration
Learn/Test/Code/Release
● Collective Ownership
Removes Complex Code from Project
● Pair Programming
● Continuous Integration
Learn/Test/Code/Release
● Collective Ownership
Removes Complex Code from Project
● Pair Programming
src: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQsrc: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQ
Design StrategyDesign Strategy
We should design for today's problems today, and tomorrow's
problems tomorrow
We should design for today's problems today, and tomorrow's
problems tomorrow
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Testing StrategyTesting Strategy
An outline that describes the testing approach of the Software
Development Cycle
- Wikipedia
An outline that describes the testing approach of the Software
Development Cycle
- Wikipedia
Adopting XPAdopting XP
How to adopt XP ?
1. Pick your worst problem.
2. Solve it the XP way.
3. When it's no longer your worst problem, repeat.
How to adopt XP ?
1. Pick your worst problem.
2. Solve it the XP way.
3. When it's no longer your worst problem, repeat.
Retrofitting XPRetrofitting XP
● Start with Testing
● Change Design
● Do Planning on regular basis
● Include everyone in Management
● Don't leave Development
● Start with Testing
● Change Design
● Do Planning on regular basis
● Include everyone in Management
● Don't leave Development
Lifecycle of an Ideal XP
Project
Lifecycle of an Ideal XP
Project
● Exploration
● Planning
● Iterations to First Release
● Productionizing
● Maintenance
● Death
● Exploration
● Planning
● Iterations to First Release
● Productionizing
● Maintenance
● Death
Roles for PeopleRoles for People
● Programmer
● Customer
● Tester
● Tracker
● Coach
● Consultant
● Big Boss
● Programmer
● Customer
● Tester
● Tracker
● Coach
● Consultant
● Big Boss
20-80 Rule20-80 Rule
80% of the benefit comes from 20% of the work.
XP makes use of this rule itself, by putting the most
valuable 20% of functionality into production, do
the most valuable 20% of the design
80% of the benefit comes from 20% of the work.
XP makes use of this rule itself, by putting the most
valuable 20% of functionality into production, do
the most valuable 20% of the design
What Makes XP Hard ?What Makes XP Hard ?
By adopting XP as our development process, we are accepting
responsibility for being aware and modifying it when there is
a problem.
By adopting XP as our development process, we are accepting
responsibility for being aware and modifying it when there is
a problem.
When You Shouldn't Try XP ?When You Shouldn't Try XP ?
● Complete Analysis of Design
● Too much Documentation
● Long Working Hours
● Large Team
● Expensive Technology
● Long gaps in Feedback
● Complete Analysis of Design
● Too much Documentation
● Long Working Hours
● Large Team
● Expensive Technology
● Long gaps in Feedback
Questions & Option[A]Questions & Option[A]
Thank youThank you
ReferencesReferences
● Extreme Programming Explained, Kent Beck
● http://www.extremeprogramming.org/
● Extreme Programming Explained, Kent Beck
● http://www.extremeprogramming.org/

Extreme Programming

  • 1.
    Fundamentals of XPFundamentalsof XP Himanshu Gupta Sr. Software Consultant Knoldus Software LLP Himanshu Gupta Sr. Software Consultant Knoldus Software LLP
  • 2.
    XP – eXtremeProgrammingXP – eXtreme Programming ● Lightweight ● Efficient ● Low-risk ● Flexible ● Predictable ● Scientific ● Fun way of programming ● Lightweight ● Efficient ● Low-risk ● Flexible ● Predictable ● Scientific ● Fun way of programming
  • 3.
    DifferenceDifference ● Short Cycles ●Incremental planning approach ● Able to create flexible development schedules ● Rely on ● Automated tests ● Oral Communication ● Evolutionary design process ● Close collaboration of programmers ● Short Cycles ● Incremental planning approach ● Able to create flexible development schedules ● Rely on ● Automated tests ● Oral Communication ● Evolutionary design process ● Close collaboration of programmers
  • 4.
    Problems & SolutionsProblems& Solutions Problems ● Schedule Slips ● Project Canceled ● System goes sour ● Defect rate ● Business misunderstood ● Business changes ● False feature rich ● Staff turnover Problems ● Schedule Slips ● Project Canceled ● System goes sour ● Defect rate ● Business misunderstood ● Business changes ● False feature rich ● Staff turnover Solutions ● Short cycles ● MBS (Most Business Sense) ● Automated Tests ● Acceptance Tests ● Oral communication ● Short cycles ● Prioritizing tasks ● Individual ownership Solutions ● Short cycles ● MBS (Most Business Sense) ● Automated Tests ● Acceptance Tests ● Oral communication ● Short cycles ● Prioritizing tasks ● Individual ownership
  • 5.
    Day-to-day programming proceedsfrom a task clearly connected to a feature the customer wants, to tests, to implementation, to design, and through to integration. A little of each of the activities of software development are packed into each episode. Day-to-day programming proceeds from a task clearly connected to a feature the customer wants, to tests, to implementation, to design, and through to integration. A little of each of the activities of software development are packed into each episode. An EpisodeAn Episode
  • 6.
    Four VariablesFour Variables ●Cost ● Time ● Quality ● Scope ● Cost ● Time ● Quality ● Scope
  • 7.
    Cost of ChangeCostof Change The cost of change may not rise dramatically over time src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 8.
    Learning to DriveLearningto Drive "Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way." "Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way."
  • 9.
    Four ValuesFour Values ●Communication ● Simplicity ● Feedback ● Courage ● Communication ● Simplicity ● Feedback ● Courage * A value, that lies below the surface of the other these four is Respect.* A value, that lies below the surface of the other these four is Respect.
  • 10.
    Basic PrinciplesBasic Principles ●Rapid feedback ● Assume simplicity ● Incremental change ● Embracing change ● Quality work ● Rapid feedback ● Assume simplicity ● Incremental change ● Embracing change ● Quality work Fundamental PrinciplesFundamental Principles
  • 11.
    Basic PrinciplesBasic Principles ●Teach learning ● Small initial investment ● Play to win ● Concrete experiments ● Open, honest communication ● Work with people's instincts, not against them ● Accepted responsibility ● Local adaptation ● Travel light ● Honest measurement ● Teach learning ● Small initial investment ● Play to win ● Concrete experiments ● Open, honest communication ● Work with people's instincts, not against them ● Accepted responsibility ● Local adaptation ● Travel light ● Honest measurement Central PrinciplesCentral Principles
  • 12.
    Back to BasicsBackto Basics ● Coding ● Testing ● Listening ● Designing ● Coding ● Testing ● Listening ● Designing We code because if we don't code, we haven't done anything. We test because if we don't test, we don't know when we are done coding. We listen because if we don't listen we don't know what to code or what to test. And we design so we can keep coding and testing and listening indefinitely.
  • 13.
    A Quick OverviewAQuick Overview ● The Planning Game ● Small Releases ● Metaphor ● Simple Design ● Testing ● Refactoring ● Pair Programming ● Collective Ownership ● Continuous Integration ● 40 Hour Week ● On-site Customer ● Coding Standards ● The Planning Game ● Small Releases ● Metaphor ● Simple Design ● Testing ● Refactoring ● Pair Programming ● Collective Ownership ● Continuous Integration ● 40 Hour Week ● On-site Customer ● Coding Standards
  • 14.
    Practices Support eachotherPractices Support each other How could this Work ?How could this Work ? src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 15.
    Management StrategyManagement Strategy ●Metrics ● Coaching ● Tracking ● Intervention ● Metrics ● Coaching ● Tracking ● Intervention
  • 16.
    Facilities StrategyFacilities Strategy src:Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 17.
    Splitting Business and TechnicalResponsibility Splitting Business and Technical Responsibility The choice between selecting a Ferrari and a Minivan is made on the basis of: ● Cost – Ferrari($200,000) & Minivan($40,000) ● Requirement - ● Should be able to carry five people. ● Should be able to run at 200km/h. The choice between selecting a Ferrari and a Minivan is made on the basis of: ● Cost – Ferrari($200,000) & Minivan($40,000) ● Requirement - ● Should be able to carry five people. ● Should be able to run at 200km/h.
  • 18.
    Planning StrategyPlanning Strategy ●The Goal ● The Strategy ● The Pieces ● The Players ● The Moves ● Iteration Planning ● Exploration Phase ● Commitment Phase ● Steering Phase ● Planning in a Week ● The Goal ● The Strategy ● The Pieces ● The Players ● The Moves ● Iteration Planning ● Exploration Phase ● Commitment Phase ● Steering Phase ● Planning in a Week
  • 19.
    Development StrategyDevelopment Strategy ●Continuous Integration Learn/Test/Code/Release ● Collective Ownership Removes Complex Code from Project ● Pair Programming ● Continuous Integration Learn/Test/Code/Release ● Collective Ownership Removes Complex Code from Project ● Pair Programming src: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQsrc: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQ
  • 20.
    Design StrategyDesign Strategy Weshould design for today's problems today, and tomorrow's problems tomorrow We should design for today's problems today, and tomorrow's problems tomorrow src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 21.
    Testing StrategyTesting Strategy Anoutline that describes the testing approach of the Software Development Cycle - Wikipedia An outline that describes the testing approach of the Software Development Cycle - Wikipedia
  • 22.
    Adopting XPAdopting XP Howto adopt XP ? 1. Pick your worst problem. 2. Solve it the XP way. 3. When it's no longer your worst problem, repeat. How to adopt XP ? 1. Pick your worst problem. 2. Solve it the XP way. 3. When it's no longer your worst problem, repeat.
  • 23.
    Retrofitting XPRetrofitting XP ●Start with Testing ● Change Design ● Do Planning on regular basis ● Include everyone in Management ● Don't leave Development ● Start with Testing ● Change Design ● Do Planning on regular basis ● Include everyone in Management ● Don't leave Development
  • 24.
    Lifecycle of anIdeal XP Project Lifecycle of an Ideal XP Project ● Exploration ● Planning ● Iterations to First Release ● Productionizing ● Maintenance ● Death ● Exploration ● Planning ● Iterations to First Release ● Productionizing ● Maintenance ● Death
  • 25.
    Roles for PeopleRolesfor People ● Programmer ● Customer ● Tester ● Tracker ● Coach ● Consultant ● Big Boss ● Programmer ● Customer ● Tester ● Tracker ● Coach ● Consultant ● Big Boss
  • 26.
    20-80 Rule20-80 Rule 80%of the benefit comes from 20% of the work. XP makes use of this rule itself, by putting the most valuable 20% of functionality into production, do the most valuable 20% of the design 80% of the benefit comes from 20% of the work. XP makes use of this rule itself, by putting the most valuable 20% of functionality into production, do the most valuable 20% of the design
  • 27.
    What Makes XPHard ?What Makes XP Hard ? By adopting XP as our development process, we are accepting responsibility for being aware and modifying it when there is a problem. By adopting XP as our development process, we are accepting responsibility for being aware and modifying it when there is a problem.
  • 28.
    When You Shouldn'tTry XP ?When You Shouldn't Try XP ? ● Complete Analysis of Design ● Too much Documentation ● Long Working Hours ● Large Team ● Expensive Technology ● Long gaps in Feedback ● Complete Analysis of Design ● Too much Documentation ● Long Working Hours ● Large Team ● Expensive Technology ● Long gaps in Feedback
  • 29.
  • 30.
  • 31.
    ReferencesReferences ● Extreme ProgrammingExplained, Kent Beck ● http://www.extremeprogramming.org/ ● Extreme Programming Explained, Kent Beck ● http://www.extremeprogramming.org/

Editor's Notes

  • #3 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #4 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #5 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #7 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #8 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #9 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #10 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #11 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #12 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #13 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #14 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #15 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #16 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #17 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #18 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #19 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #20 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #21 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #22 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #23 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #24 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #25 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #26 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #27 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #28 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #29 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #30 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #31 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  • #32 Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application