SlideShare a Scribd company logo
Oscar Renalias
Using Dynamic Languages to
Achieve Higher Development
Productivity and Agility
October 11, 2013

Organizers

Top Media Partner

Media Partner

Supporter
@oscarrenalias

github.com/oscarrenalias
oscar.renalias@accenture.com
oscar@renalias.net
Key characteristics of Dynamic Languages


Dynamic typing



Interpreted



Code conciseness



Support for the interactive REPL (read-evaluate-print loop)
Major Dynamic Language Technologies
Framework

Framework

Framework

Language

Language

Language

Platform

Framework

Platform

Browser
JVM
OS (Unix, Linux, Windows, iOS)
Copyright © 2013 Accenture All rights reserved.

4
Our focus
Framework

Framework

Framework

Language

Language

Language

Platform

Framework

Platform

Browser
JVM
OS (Unix, Linux, Windows, iOS)
Copyright © 2013 Accenture All rights reserved.

5
Ruby
Mature object-oriented language with tons of
libraries and great support for Domain Specific
Languages


Released in 1996



Object-oriented, support for functional programming



Extensive library



Syntax enables great support for internal DSLs



Short learning curve for Java developers



Runs on the JVM as JRuby



Ruby on Rails is the best example of what can be done
with Ruby
PHP
Probably the most widely-used web development
language


Strongly oriented to web applications



Ubiquitous ISP support



Vast library of components



Easy to learn



Very powerful, but not as clean as the other major
dynamic languages



Commercially supported by Zend
Python
Clean, well-designed language that enforces
readable code


Predates Java



Object-oriented with functional programming support



Extensive library



Readable structure promotes maintainable code



Easy to integrate with and wrap C/C++ code



No commercial vendor support



Jython is a fully-compliant Python implementation that
runs on the JVM
JavaScript
Ubiquitous client-side language that has been
recently gaining acceptance as a server-side
language too


Mature language, created for web browsers in 1995



Prototype-based object-oriented language with support for
functional programming



Interest in JavaScript was boosted by Ajax and
frameworks like jQuery



Easy to learn, a bit quirky in some areas



Node.js has accelerated the adoption of JavaScript for
server-side development
Groovy
Ruby-like language for the JVM


Mature dyamic capabilities on the JVM



Integrates seamlessly with Java, effectively leverages all
of Java’s capabilities and ecosystem



Object-oriented, advanced meta-programming and
functional programming features



Promotes code conciseness, comparable to that of Ruby



Strong support for domain-specific languages



Vendor support from VMware
Scala
Powerful functional programming language for the
JVM


Strong following



Hybrid object-oriented and functional programming language



Compiled, runs on the JVM, Steep learning curve



Well-suited for high-productivity development of quality-critical,
complex logic



Excellent support for Domain Specific Languages



Proomotes concurrency through the Actor framework



Vendor support from Typesafe



Akka and Play Framework are built on Scala
Clojure
Strongly opinionated Lisp for the JVM


Lisp compiled for the JVM



Fully functional oriented



Designed to dramatically simplify concurrent programming
and leverage multi-core processor architectures



Philosophy is that of smaller composable libraries as
opposed to monolithic frameworks



Easier than Scala, just as weird for Java developers



No vendor support
Who’s using what?
Ruby

Rails, Chef, Puppet,
Cucumber

GOV.UK, Github, Twitter, Hulu,
ESPN

PHP

Drupal, Wordpress

Flickr, Yahoo, Facebook,
Wikipedia, Digg

Python

Django, Google

Big data projects, Washington
Post

JavaScript

jQuery, Node.js

Virtually every web Application,
LinkedIn, Yammer, Yahoo

Groovy

Grails

Sky.com, wired.com, Canoo.com

Scala

Play, Akka

Twitter, FourSquare, The
Guardian, LinkedIn, Klout

Clojure

Compojure, Cascalog,
Pallet, Riemann

Twitter, Akamai, Prismatic
Why Are Dynamic Languages Important?
Establishing a strong capability in dynamic
languages can position the enterprise for higher
software delivery productivity and agility


Alternative to heavy-weight traditional approaches



Strong support for agility, possibility of dramatically better
productivity and time-to-market



Increased interest in browser-centric and asynchronous web
technologies



Many proven examples in industry



New generation of developers considers them more fun and
exciting



Growing support from industry analysts and thought leaders
Industry Trends
Dynamic languages have an established market
position and are gaining in popularity and
adoption


Ruby, Python, JavaScript, and PHP are consistently
ranked among the top 10 most popular languages by
industry surveys



Recent increase in demand for Ruby, Python, Groovy, and
PHP (Drupal) skills from some of our largest clients



ThoughtWorks’s Oct 2012 Tech Radar moved Scala and
Clojure from “Trial” to “Adopt”
Agility
Dynamic languages are powerful enablers of
agile delivery – methodology is not enough


Cumbersome technology and heavy-weight architecture
do not align well with agile



Extraordinarily rapid code-test workflows is strong enabler
of agile delivery



High-productivity tools and lightweight architectures



In some cases can be twice as fast at half the cost as with
Java or .Net



Synergies with PaaS/SaaS technology for development
and production deployment
Business Application Scenarios
Many kinds of business applications are wellsuited for development with dynamic languages


Media, marketing and e-commerce sites



Application pilots



Location-based, mobile web applications



Web frontend for back-end services



RESTful service APIs



Scientific computing



Big Data



Dev Ops
Fit for Enterprise
Dynamic languages are an important enabler of
software delivery for the enterprise


Organizations and large companies use dynamic languages



High productivity, agile development, fast time-to-market



Reliability



Abundance of libraries



Multi-platform



Mature set of development tools



Strong support ecosystem and commercial vendor support



Performance ranges from acceptable to excellent
Synergy with Other Technologies
Augmenting Java


Significantly faster development of web front-ends



Development of frameworks and complex logic



Continue leveraging existing Java skills and tooling
Synergy with Existing Technologies
Agility for “New Web” applications


Applications involving event-driven and highly responsive
user interfaces



Gartner recommends dynamic language frameworks,
avoid traditional MVC frameworks
Synergy with Existing Technologies
Agility for mobile development


Develop mobile web sites and RESTful APIs



JavaScript & HTML5 write-once-deploy-many, usability
approaching that of native
Synergy with Existing Technologies
Synergy with PaaS technology


Streamlined PaaS support from many of the largest PaaS
providers, further accelerating end-to-end solution delivery
Challenges and Concerns – Performance
Performance and Scalability


Dynamic language performance can’t be ignored, but it is
typically not an issue



Dynamic language applications proven to scale up to very
high transaction volumes
Challenges and Concerns – Skills
Skills and Team Size


Skills availability can be a challenge -- fewer developers
than with Java



Our experience shows Java developers can be rapidly
trained to a moderate level of proficiency



Scaling to very large applications with large teams is
unproven for some dynamic languages
Challenges and Concerns – Adoption
Adoption can be politically difficult due to prior
investments


Corporate IT departments reluctant to introduce additional
languages



Compatibility with existing corporate practices, standards,
and tools can be a challenge



In a Java shop, the introduction of JVM dynamic
languages can be relatively smooth -- existing
investments can be leveraged



Complexity associated with introducing another required
skill may be overrated
Take-away: Why We Should Care About
Dynamic Languages
We care when we need to…


Compress timelines



Be more flexible



Increase creativity



Mitigate risk

More Related Content

What's hot

Top 10 php frameworks in 2021
Top 10 php frameworks in 2021Top 10 php frameworks in 2021
Top 10 php frameworks in 2021
MaryamAnwar10
 
IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...
IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...
IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...
Robert Nicholson
 
Delphi developer certification study guide
Delphi developer certification study guideDelphi developer certification study guide
Delphi developer certification study guide
ANIL MAHADEV
 
6 weeks 6 months live project summer industrial training in cmc limited 2012
6 weeks  6 months live project summer industrial training in cmc limited  20126 weeks  6 months live project summer industrial training in cmc limited  2012
6 weeks 6 months live project summer industrial training in cmc limited 2012
CMC Limited
 
HTML for beginners
HTML for beginnersHTML for beginners
HTML for beginners
Salahaddin University-Erbil
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training Bangalore
Sunil Kumar
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
sunil kumar
 
angular js and node js training in hyderabad
angular js and node js training in hyderabadangular js and node js training in hyderabad
angular js and node js training in hyderabad
php2ranjan
 
PHP Interview Questions
PHP Interview QuestionsPHP Interview Questions
PHP Interview Questions
MaryamAnwar10
 
Gowrisankar_Resume
Gowrisankar_ResumeGowrisankar_Resume
Gowrisankar_Resume
GOWRISANKAR M
 
Delphi Certification
Delphi CertificationDelphi Certification
Delphi Certification
Andreano Lanusse
 
.Net language support
.Net language support.Net language support
.Net language support
Then Murugeshwari
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
IncQuery Labs
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
Jayanta Basak
 
Best things to know about .net framework
Best things to know about .net frameworkBest things to know about .net framework
Best things to know about .net framework
Shelly Megan
 
Best PHP Frameworks
Best PHP FrameworksBest PHP Frameworks
Best PHP Frameworks
Clixlogix Technologies
 
[Altabel Group] General Presentation 2010
[Altabel Group] General Presentation 2010[Altabel Group] General Presentation 2010
[Altabel Group] General Presentation 2010
elviragolyak
 
Overview of Java
Overview of JavaOverview of Java
Overview of Java
josemachoco
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?
NIIT India
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalore
zasi besant
 

What's hot (20)

Top 10 php frameworks in 2021
Top 10 php frameworks in 2021Top 10 php frameworks in 2021
Top 10 php frameworks in 2021
 
IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...
IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...
IBM IMPACT 2009 Conference Session 2078 - Extending and Integrating Popular P...
 
Delphi developer certification study guide
Delphi developer certification study guideDelphi developer certification study guide
Delphi developer certification study guide
 
6 weeks 6 months live project summer industrial training in cmc limited 2012
6 weeks  6 months live project summer industrial training in cmc limited  20126 weeks  6 months live project summer industrial training in cmc limited  2012
6 weeks 6 months live project summer industrial training in cmc limited 2012
 
HTML for beginners
HTML for beginnersHTML for beginners
HTML for beginners
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training Bangalore
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
 
angular js and node js training in hyderabad
angular js and node js training in hyderabadangular js and node js training in hyderabad
angular js and node js training in hyderabad
 
PHP Interview Questions
PHP Interview QuestionsPHP Interview Questions
PHP Interview Questions
 
Gowrisankar_Resume
Gowrisankar_ResumeGowrisankar_Resume
Gowrisankar_Resume
 
Delphi Certification
Delphi CertificationDelphi Certification
Delphi Certification
 
.Net language support
.Net language support.Net language support
.Net language support
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
 
Best things to know about .net framework
Best things to know about .net frameworkBest things to know about .net framework
Best things to know about .net framework
 
Best PHP Frameworks
Best PHP FrameworksBest PHP Frameworks
Best PHP Frameworks
 
[Altabel Group] General Presentation 2010
[Altabel Group] General Presentation 2010[Altabel Group] General Presentation 2010
[Altabel Group] General Presentation 2010
 
Overview of Java
Overview of JavaOverview of Java
Overview of Java
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalore
 

Viewers also liked

Automotive: Gaining the required edge
Automotive: Gaining the required edgeAutomotive: Gaining the required edge
Automotive: Gaining the required edge
Pawan Kawan
 
Containerize everything - Wildcardconf 2015
Containerize everything - Wildcardconf 2015Containerize everything - Wildcardconf 2015
Containerize everything - Wildcardconf 2015
Oscar Renalias
 
Richard Smeltz Linkedin Presentation Rev A
Richard Smeltz   Linkedin Presentation Rev ARichard Smeltz   Linkedin Presentation Rev A
Richard Smeltz Linkedin Presentation Rev A
Richard Smeltz
 
Asynchronous web apps with the Play Framework 2.0
Asynchronous web apps with the Play Framework 2.0Asynchronous web apps with the Play Framework 2.0
Asynchronous web apps with the Play Framework 2.0
Oscar Renalias
 
Globalization
GlobalizationGlobalization
Globalization
Pawan Kawan
 
Richard smeltz linkedin presentation
Richard smeltz   linkedin presentationRichard smeltz   linkedin presentation
Richard smeltz linkedin presentation
Richard Smeltz
 
Derivative market in nepal
Derivative market in nepalDerivative market in nepal
Derivative market in nepal
Pawan Kawan
 
Role and function of nepal rastra bank
Role and function of nepal rastra bankRole and function of nepal rastra bank
Role and function of nepal rastra bank
Pawan Kawan
 

Viewers also liked (8)

Automotive: Gaining the required edge
Automotive: Gaining the required edgeAutomotive: Gaining the required edge
Automotive: Gaining the required edge
 
Containerize everything - Wildcardconf 2015
Containerize everything - Wildcardconf 2015Containerize everything - Wildcardconf 2015
Containerize everything - Wildcardconf 2015
 
Richard Smeltz Linkedin Presentation Rev A
Richard Smeltz   Linkedin Presentation Rev ARichard Smeltz   Linkedin Presentation Rev A
Richard Smeltz Linkedin Presentation Rev A
 
Asynchronous web apps with the Play Framework 2.0
Asynchronous web apps with the Play Framework 2.0Asynchronous web apps with the Play Framework 2.0
Asynchronous web apps with the Play Framework 2.0
 
Globalization
GlobalizationGlobalization
Globalization
 
Richard smeltz linkedin presentation
Richard smeltz   linkedin presentationRichard smeltz   linkedin presentation
Richard smeltz linkedin presentation
 
Derivative market in nepal
Derivative market in nepalDerivative market in nepal
Derivative market in nepal
 
Role and function of nepal rastra bank
Role and function of nepal rastra bankRole and function of nepal rastra bank
Role and function of nepal rastra bank
 

Similar to OpenSlava 2013 - Dynamic Languages

Top Backend Development Languages and Frameworks for Modern Web Applications
Top Backend Development Languages and Frameworks for Modern Web ApplicationsTop Backend Development Languages and Frameworks for Modern Web Applications
Top Backend Development Languages and Frameworks for Modern Web Applications
KaneJordy1
 
Improve Your Business Standards with Backend Development .pdf
Improve Your Business Standards with Backend Development .pdfImprove Your Business Standards with Backend Development .pdf
Improve Your Business Standards with Backend Development .pdf
WPWeb Infotech
 
Top Programming Languages to Learn for Web Development in 2023
Top Programming Languages to Learn for Web Development in 2023Top Programming Languages to Learn for Web Development in 2023
Top Programming Languages to Learn for Web Development in 2023
priyanka rajput
 
Top Programming Languages to Learn for Web Development in 2023 (1).pdf
Top Programming Languages to Learn for Web Development in 2023 (1).pdfTop Programming Languages to Learn for Web Development in 2023 (1).pdf
Top Programming Languages to Learn for Web Development in 2023 (1).pdf
Uncodemy
 
8 Top Web Development Programming Languages in 2023.pdf
8 Top Web Development Programming Languages in 2023.pdf8 Top Web Development Programming Languages in 2023.pdf
8 Top Web Development Programming Languages in 2023.pdf
Baek Yongsun
 
The most in-demand programming skills American companies are looking for
The most in-demand programming skills American companies are looking forThe most in-demand programming skills American companies are looking for
The most in-demand programming skills American companies are looking for
Turing.com
 
Fullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-DegreeFullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-Degree
DineshSingh398
 
Evaluation Ria Frameworks
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria Frameworks
Rishi Singh
 
Top Web Development Trends in 2023
Top Web Development Trends in 2023Top Web Development Trends in 2023
Top Web Development Trends in 2023
UmanoLogic
 
4th pdf off page seo.pdf
4th pdf off page seo.pdf4th pdf off page seo.pdf
4th pdf off page seo.pdf
excellenceacademy420
 
Full Stack Development
Full Stack DevelopmentFull Stack Development
15 Top reasons to choose Java for Backend Development
15 Top reasons to choose Java for Backend Development15 Top reasons to choose Java for Backend Development
15 Top reasons to choose Java for Backend Development
Your Team in India
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
Ishan Monga
 
Top Automation Programming Languages of 2023.pdf
Top Automation Programming Languages of 2023.pdfTop Automation Programming Languages of 2023.pdf
Top Automation Programming Languages of 2023.pdf
pCloudy
 
Java's Journey: Understanding Features and Envisioning Its Future Scope
Java's Journey: Understanding Features and Envisioning Its Future ScopeJava's Journey: Understanding Features and Envisioning Its Future Scope
Java's Journey: Understanding Features and Envisioning Its Future Scope
priyanka rajput
 
Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...
Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...
Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...
OliviaWatson27
 
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationStream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
streambase
 
Demo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki KakshaDemo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki Kaksha
GandhiSarthak
 
Demo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notesDemo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notes
GandhiSarthak
 
Dynamic Languages on the JVM
Dynamic Languages on the JVMDynamic Languages on the JVM
Dynamic Languages on the JVM
elliando dias
 

Similar to OpenSlava 2013 - Dynamic Languages (20)

Top Backend Development Languages and Frameworks for Modern Web Applications
Top Backend Development Languages and Frameworks for Modern Web ApplicationsTop Backend Development Languages and Frameworks for Modern Web Applications
Top Backend Development Languages and Frameworks for Modern Web Applications
 
Improve Your Business Standards with Backend Development .pdf
Improve Your Business Standards with Backend Development .pdfImprove Your Business Standards with Backend Development .pdf
Improve Your Business Standards with Backend Development .pdf
 
Top Programming Languages to Learn for Web Development in 2023
Top Programming Languages to Learn for Web Development in 2023Top Programming Languages to Learn for Web Development in 2023
Top Programming Languages to Learn for Web Development in 2023
 
Top Programming Languages to Learn for Web Development in 2023 (1).pdf
Top Programming Languages to Learn for Web Development in 2023 (1).pdfTop Programming Languages to Learn for Web Development in 2023 (1).pdf
Top Programming Languages to Learn for Web Development in 2023 (1).pdf
 
8 Top Web Development Programming Languages in 2023.pdf
8 Top Web Development Programming Languages in 2023.pdf8 Top Web Development Programming Languages in 2023.pdf
8 Top Web Development Programming Languages in 2023.pdf
 
The most in-demand programming skills American companies are looking for
The most in-demand programming skills American companies are looking forThe most in-demand programming skills American companies are looking for
The most in-demand programming skills American companies are looking for
 
Fullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-DegreeFullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-Degree
 
Evaluation Ria Frameworks
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria Frameworks
 
Top Web Development Trends in 2023
Top Web Development Trends in 2023Top Web Development Trends in 2023
Top Web Development Trends in 2023
 
4th pdf off page seo.pdf
4th pdf off page seo.pdf4th pdf off page seo.pdf
4th pdf off page seo.pdf
 
Full Stack Development
Full Stack DevelopmentFull Stack Development
Full Stack Development
 
15 Top reasons to choose Java for Backend Development
15 Top reasons to choose Java for Backend Development15 Top reasons to choose Java for Backend Development
15 Top reasons to choose Java for Backend Development
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
 
Top Automation Programming Languages of 2023.pdf
Top Automation Programming Languages of 2023.pdfTop Automation Programming Languages of 2023.pdf
Top Automation Programming Languages of 2023.pdf
 
Java's Journey: Understanding Features and Envisioning Its Future Scope
Java's Journey: Understanding Features and Envisioning Its Future ScopeJava's Journey: Understanding Features and Envisioning Its Future Scope
Java's Journey: Understanding Features and Envisioning Its Future Scope
 
Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...
Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...
Ruby on Rails Vs JavaScript A Comparative Analysis of Technologies for Web De...
 
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationStream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
 
Demo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki KakshaDemo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki Kaksha
 
Demo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notesDemo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notes
 
Dynamic Languages on the JVM
Dynamic Languages on the JVMDynamic Languages on the JVM
Dynamic Languages on the JVM
 

More from Oscar Renalias

Enterprise Open Source
Enterprise Open SourceEnterprise Open Source
Enterprise Open Source
Oscar Renalias
 
DockerCon EU 2017 - Containers are not just for microservices
DockerCon EU 2017 - Containers are not just for microservicesDockerCon EU 2017 - Containers are not just for microservices
DockerCon EU 2017 - Containers are not just for microservices
Oscar Renalias
 
Containers aren’t just for microservices – Containerizing Legacy Workloads
Containers aren’t just for microservices – Containerizing Legacy WorkloadsContainers aren’t just for microservices – Containerizing Legacy Workloads
Containers aren’t just for microservices – Containerizing Legacy Workloads
Oscar Renalias
 
50 production deployments a day, at least
50 production deployments a day, at least50 production deployments a day, at least
50 production deployments a day, at least
Oscar Renalias
 
DockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryDockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container Delivery
Oscar Renalias
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014
Oscar Renalias
 
Node.js, for architects - OpenSlava 2013
Node.js, for architects - OpenSlava 2013Node.js, for architects - OpenSlava 2013
Node.js, for architects - OpenSlava 2013
Oscar Renalias
 
ScalaCheck Cookbook v1.0
ScalaCheck Cookbook v1.0ScalaCheck Cookbook v1.0
ScalaCheck Cookbook v1.0
Oscar Renalias
 
Unlocking value in your (big) data
Unlocking value in your (big) dataUnlocking value in your (big) data
Unlocking value in your (big) data
Oscar Renalias
 

More from Oscar Renalias (9)

Enterprise Open Source
Enterprise Open SourceEnterprise Open Source
Enterprise Open Source
 
DockerCon EU 2017 - Containers are not just for microservices
DockerCon EU 2017 - Containers are not just for microservicesDockerCon EU 2017 - Containers are not just for microservices
DockerCon EU 2017 - Containers are not just for microservices
 
Containers aren’t just for microservices – Containerizing Legacy Workloads
Containers aren’t just for microservices – Containerizing Legacy WorkloadsContainers aren’t just for microservices – Containerizing Legacy Workloads
Containers aren’t just for microservices – Containerizing Legacy Workloads
 
50 production deployments a day, at least
50 production deployments a day, at least50 production deployments a day, at least
50 production deployments a day, at least
 
DockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container DeliveryDockerCon 2016 - Structured Container Delivery
DockerCon 2016 - Structured Container Delivery
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014
 
Node.js, for architects - OpenSlava 2013
Node.js, for architects - OpenSlava 2013Node.js, for architects - OpenSlava 2013
Node.js, for architects - OpenSlava 2013
 
ScalaCheck Cookbook v1.0
ScalaCheck Cookbook v1.0ScalaCheck Cookbook v1.0
ScalaCheck Cookbook v1.0
 
Unlocking value in your (big) data
Unlocking value in your (big) dataUnlocking value in your (big) data
Unlocking value in your (big) data
 

Recently uploaded

How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 

Recently uploaded (20)

How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 

OpenSlava 2013 - Dynamic Languages

  • 1. Oscar Renalias Using Dynamic Languages to Achieve Higher Development Productivity and Agility October 11, 2013 Organizers Top Media Partner Media Partner Supporter
  • 3. Key characteristics of Dynamic Languages  Dynamic typing  Interpreted  Code conciseness  Support for the interactive REPL (read-evaluate-print loop)
  • 4. Major Dynamic Language Technologies Framework Framework Framework Language Language Language Platform Framework Platform Browser JVM OS (Unix, Linux, Windows, iOS) Copyright © 2013 Accenture All rights reserved. 4
  • 6. Ruby Mature object-oriented language with tons of libraries and great support for Domain Specific Languages  Released in 1996  Object-oriented, support for functional programming  Extensive library  Syntax enables great support for internal DSLs  Short learning curve for Java developers  Runs on the JVM as JRuby  Ruby on Rails is the best example of what can be done with Ruby
  • 7. PHP Probably the most widely-used web development language  Strongly oriented to web applications  Ubiquitous ISP support  Vast library of components  Easy to learn  Very powerful, but not as clean as the other major dynamic languages  Commercially supported by Zend
  • 8. Python Clean, well-designed language that enforces readable code  Predates Java  Object-oriented with functional programming support  Extensive library  Readable structure promotes maintainable code  Easy to integrate with and wrap C/C++ code  No commercial vendor support  Jython is a fully-compliant Python implementation that runs on the JVM
  • 9. JavaScript Ubiquitous client-side language that has been recently gaining acceptance as a server-side language too  Mature language, created for web browsers in 1995  Prototype-based object-oriented language with support for functional programming  Interest in JavaScript was boosted by Ajax and frameworks like jQuery  Easy to learn, a bit quirky in some areas  Node.js has accelerated the adoption of JavaScript for server-side development
  • 10. Groovy Ruby-like language for the JVM  Mature dyamic capabilities on the JVM  Integrates seamlessly with Java, effectively leverages all of Java’s capabilities and ecosystem  Object-oriented, advanced meta-programming and functional programming features  Promotes code conciseness, comparable to that of Ruby  Strong support for domain-specific languages  Vendor support from VMware
  • 11. Scala Powerful functional programming language for the JVM  Strong following  Hybrid object-oriented and functional programming language  Compiled, runs on the JVM, Steep learning curve  Well-suited for high-productivity development of quality-critical, complex logic  Excellent support for Domain Specific Languages  Proomotes concurrency through the Actor framework  Vendor support from Typesafe  Akka and Play Framework are built on Scala
  • 12. Clojure Strongly opinionated Lisp for the JVM  Lisp compiled for the JVM  Fully functional oriented  Designed to dramatically simplify concurrent programming and leverage multi-core processor architectures  Philosophy is that of smaller composable libraries as opposed to monolithic frameworks  Easier than Scala, just as weird for Java developers  No vendor support
  • 13. Who’s using what? Ruby Rails, Chef, Puppet, Cucumber GOV.UK, Github, Twitter, Hulu, ESPN PHP Drupal, Wordpress Flickr, Yahoo, Facebook, Wikipedia, Digg Python Django, Google Big data projects, Washington Post JavaScript jQuery, Node.js Virtually every web Application, LinkedIn, Yammer, Yahoo Groovy Grails Sky.com, wired.com, Canoo.com Scala Play, Akka Twitter, FourSquare, The Guardian, LinkedIn, Klout Clojure Compojure, Cascalog, Pallet, Riemann Twitter, Akamai, Prismatic
  • 14. Why Are Dynamic Languages Important? Establishing a strong capability in dynamic languages can position the enterprise for higher software delivery productivity and agility  Alternative to heavy-weight traditional approaches  Strong support for agility, possibility of dramatically better productivity and time-to-market  Increased interest in browser-centric and asynchronous web technologies  Many proven examples in industry  New generation of developers considers them more fun and exciting  Growing support from industry analysts and thought leaders
  • 15. Industry Trends Dynamic languages have an established market position and are gaining in popularity and adoption  Ruby, Python, JavaScript, and PHP are consistently ranked among the top 10 most popular languages by industry surveys  Recent increase in demand for Ruby, Python, Groovy, and PHP (Drupal) skills from some of our largest clients  ThoughtWorks’s Oct 2012 Tech Radar moved Scala and Clojure from “Trial” to “Adopt”
  • 16. Agility Dynamic languages are powerful enablers of agile delivery – methodology is not enough  Cumbersome technology and heavy-weight architecture do not align well with agile  Extraordinarily rapid code-test workflows is strong enabler of agile delivery  High-productivity tools and lightweight architectures  In some cases can be twice as fast at half the cost as with Java or .Net  Synergies with PaaS/SaaS technology for development and production deployment
  • 17. Business Application Scenarios Many kinds of business applications are wellsuited for development with dynamic languages  Media, marketing and e-commerce sites  Application pilots  Location-based, mobile web applications  Web frontend for back-end services  RESTful service APIs  Scientific computing  Big Data  Dev Ops
  • 18. Fit for Enterprise Dynamic languages are an important enabler of software delivery for the enterprise  Organizations and large companies use dynamic languages  High productivity, agile development, fast time-to-market  Reliability  Abundance of libraries  Multi-platform  Mature set of development tools  Strong support ecosystem and commercial vendor support  Performance ranges from acceptable to excellent
  • 19. Synergy with Other Technologies Augmenting Java  Significantly faster development of web front-ends  Development of frameworks and complex logic  Continue leveraging existing Java skills and tooling
  • 20. Synergy with Existing Technologies Agility for “New Web” applications  Applications involving event-driven and highly responsive user interfaces  Gartner recommends dynamic language frameworks, avoid traditional MVC frameworks
  • 21. Synergy with Existing Technologies Agility for mobile development  Develop mobile web sites and RESTful APIs  JavaScript & HTML5 write-once-deploy-many, usability approaching that of native
  • 22. Synergy with Existing Technologies Synergy with PaaS technology  Streamlined PaaS support from many of the largest PaaS providers, further accelerating end-to-end solution delivery
  • 23. Challenges and Concerns – Performance Performance and Scalability  Dynamic language performance can’t be ignored, but it is typically not an issue  Dynamic language applications proven to scale up to very high transaction volumes
  • 24. Challenges and Concerns – Skills Skills and Team Size  Skills availability can be a challenge -- fewer developers than with Java  Our experience shows Java developers can be rapidly trained to a moderate level of proficiency  Scaling to very large applications with large teams is unproven for some dynamic languages
  • 25. Challenges and Concerns – Adoption Adoption can be politically difficult due to prior investments  Corporate IT departments reluctant to introduce additional languages  Compatibility with existing corporate practices, standards, and tools can be a challenge  In a Java shop, the introduction of JVM dynamic languages can be relatively smooth -- existing investments can be leveraged  Complexity associated with introducing another required skill may be overrated
  • 26. Take-away: Why We Should Care About Dynamic Languages We care when we need to…  Compress timelines  Be more flexible  Increase creativity  Mitigate risk

Editor's Notes

  1. Key characteristics: dynamic typing, interpreted, code conciseness and REPL interactive consoleDynamic language with long history: Lisp and PythonOur focus: Generic Language like Groovy, Ruby, Python, Clojure and JavaScript + PHP for web applicationOur focus also including strong type functional languages and framework like Scala and Play
  2. Dynamiclanguages are not newLisp, Smalltalk have been around for a long timePython has been around longer than Java (pre-1995)
  3. Ourfocus:We distinguish general-purpose dynamic languages from scripting and specialty languages. Our focus:General purpose: Ruby, Groovy, Clojure, JavaScript, PythonWeb application: PHP We also include statically-typed functional languages which support the REPL style and achieve code conciseness through type inference even if it doesn’t 100% fulfill our own definition of a dynamic language:Scala