SlideShare a Scribd company logo
1 of 54
Presented by:
Vasu Srinivasan, Senior Developer and
SharePoint Architect
Eric Kelm, Senior Software Developer
Texas.gov
Technology Today Series
Presented by Texas.gov
Hosted by the Texas Department of Information Resources (DIR)
2
 Small, informal, interactive
discussions
 Deeper dive into topic
 Hosted twice a year
 Coming up – a follow up to this
webinar on Tuesday, May 13,
11:30am – 1:00pm (light lunch
provided)
• Look for RSVP instructions in follow up
email
• Space is limited
Texas.gov Partner Roundtable
3
 Learning a new programming language in
under an hour
 Comparing current popular programming
languages or frameworks
 Declaring which programming language is
best
What This Talk is NOT About
4
 A light-hearted look at industry trends
 A review of emerging technologies
 Keeping up with emerging technologies
 And something along those lines…
So What is This Talk About…
7
 C/C++
 Pascal, Delphi, PowerBuilder
 COBOL
 VB
 SQL Server, Oracle, DB2
 Word, Excel, Access
(T – 20).years()
8
 OOAD, OOP
 Java, EJB, JDBC, JNDI and JSP
 .Net/C# and ASP
 MoM, Web Services
 JavaScript, JScript, VBScript
 XML, DHTML, XHTML, XSL, XSLT, CSS
 SQL Server/Oracle
 UML
(T – 10).years()
9
• Java, EJB, JSF, Spring, Groovy, Grails, JBoss Seam, Struts, Swing, JavaFX, Objective C
• Ruby, PHP, Python, Scala, Clojure, Haskell
• .Net 2.0-4.5, C#, ASP.Net MVC2, MVC3, MVC4, SharePoint, RazorView
• SOA, WebServices, JAX-RPC, JAXB, Soap, REST, WCF, Camel, RabbitMQ
• SVN, GitHub, TFS, Jira, Jenkins, Maven, Ivy, Gradle
• JavaScript, HTML5, CSS3, jQuery, jQuery Mobile, Backbone, Ember, Knockout, AngularJS, Node.js,
extJS
• XML, YAML, XSL, XSLT, JSON
• UML, EIP, EAP
• SQL Server, Oracle, MongoDB, Redis, Cassandra, Neo4J
• BigData, Hadoop, Pig, Hive
• Android, OSX , Windows Phone 7/8/8.1/RT
• JUnit, NUnit, MSTest, Selenium, Spock, Geb
• OOAD, OOP, Functional, Parallel and Distributed Programming
• Agile, Waterfall, Scrum, XP, Kanban
• TDD, BDD, ADD and OCD
(T - 1).days()
11
 Obviously, technology has become complex over the
years
 Almost obviously, selecting a technology also has
become complex
 Not so obviously, the conviction that a selected
technology is suitable has also become complex
The Truth About Technology
12
What we mean by technology in this presentation
 Programming Languages
 Application Frameworks
 Databases
 Tools
#Technology
13
Hardware Servers Databases Platforms
Language
s
Framewor
ks
XaaS
Choices 2 4 8 16 32 128 256
0
50
100
150
200
250
300
Numberofchoices
Technology vs Choices
Technology Approx
# of
Choices
Examples
Hardware 2 Mac, PC
Servers 4 AIX, Solaris, Linux, Windows
Databases 8 Oracle, SQL Server,
PostgreSql, MySql, MongoDB,
Cassandra, MS Access
Platforms 16 JVM, .Net, Android, OSX,
Windows Phone/RT,
WebServices, Node.js, Vertex
Languages 32 C, C++, Java, C#, Groovy, PHP,
Python, Ruby, JavaScript,
XML, XSL, HTML
Framework
s
128 Spring, Grails, Wicket, Zend,
Django, Rails, AngularJS,
EmberJS, ExtJS, jQuery,
Sencha, PhoneGap
XaaS/Tools 256 IaaS, PaaS, SaaS, Cloud and
other services
Technology Choices
14
As the level of abstraction increases,
so do the number of choices.
The Kelm-Srinivasan Law of Choices
15
 Use scientific techniques such as
• “It’s the only tool I know”
• “I think I know this programming language”
• “Everyone talks about this new framework”
 Conclusion
• Go with what you think is best
• Or what others think is best
• You can always blame the technology, anyway
How to Select a Technology?
16
But what if…
we are actually overlooking something very fundamental?
if (what) { … }
17
Well, technologies have a pattern for that…
the problem is not
about selecting the
techologies for your
business
but how to select
YOU, has been the
problem for
technologies
you are not struggling
to select the
technology
but the technologies
are struggling to select
YOU
if (what) { … }
18
 INVERSION OF CONTROL OF DEVELOPERS
SUBJECT ORIENTED PATTERN
19
is how the architectures, platforms, languages and
frameworks are trying to attract, entice…
The Real Problem of for Technologies
20
The Battle
and how they are
battling to use …
YOU
21
But why do we think that the technologies are battling
amongst themselves?
Think about how many programming languages have been
invented to say “Hello, World!”…
And calculate the Fibonacci Series or a Factorial.
That’s because they do not trust each other’s bits.
“My bits are better than your bits”
Battle, Why?
22
Messaging
JVM .Net
JavaScript
Databases
Middleware
CMS
Others
HTML/CSS Web Frameworks
Integration
WHERE YOU ARE THE CATCH
the battlefield of technologies
JVM Brigade
Java
Groovy
Scala
Clojure
Jython
JRuby
Kotlin
Ceylon
Fantom
Gosu
http://tinyurl.com/odkwxcj
23
27
Android
iOS
Windows
Phone
Sencha
PhoneGap
Titanium
SOAP
REST
ActiveMQ
Fusion
Middleware
RabbitMQ
Activiti
Apache Camel
DropWizard
WCF
XML, JSON, GS
ON
JPA, Hibernate
jQuery
jQuery Mobile
extJS
emberJS
angularJS
backbone.js
node.js
knockout
prototype
dojo
mootools
sass/scss
less
Oracle
SQL Server
MySQL Server
PostgreSql
MongoDB
Cassandra
Redis
Hadoop
BigData
More Regiments
29
Galaxy of Programming Languages
30
 Essence over Ceremony
 Functional Programming Support
 Domain Specific Languages
Features of Modern Programming Languages
31
 Get to the essence of what your code is trying to
accomplish, and get rid of all of the unnecessary legacy
ceremony
 For example, the iterator pattern becomes much
simpler, because instead of the developer controlling the
iteration (for loop), the object itself is responsible for the
control of iteration (object.each)
 So the question “how to iterate” becomes irrelvant, and
you essentially are telling the object “Go iterate yourself”
Feature: Essence Over Ceremony
32
First-class and higher-order functions
functions as arguments
functions as return types
Pure functions
immutable objects
no state
Feature: Functional Programming Support
33
 Create languages targeted at a specific problem
domain in which you are working (mini-languages)
 Allows business users to write “code” in a language
that they can understand, and that same language
can also be understood by the system
Feature: Domain Specific Languages
34
package com.asoftwareguy.email.java;
public class JavaEmailSender {
public static void main(String[] args){
JavaEmail javaEmail = new JavaEmail();
javaEmail.setTo("ekelm@egov.com");
javaEmail.setFrom("test@texas.gov");
javaEmail.setSubject(“Test Email");
javaEmail.setMessage("Hello! This is a test email message!");
javaEmail.send();
}
}
Show and Tell: Java
35
send email to 'ekelm@egov.com' from
'test@texas.gov' with a subject 'Test
Email' and the message 'Hello! This is a
test email message!'
Show and Tell: DSL
36
The DSL illustrated “Essence over Ceremony”
allowed expression of a domain expertise directly in
a general purpose programming language
Many other technologies are doing the same thing –
simplifying solutions for complex business problems
And there are so many flavors of these technologies…
What Does the DSL Prove?
37
Choices, Choices Everywhere
38
Let’s revisit the question
Now that we know technologies are also fighting a
battle to get to us…
How to Select a Technology?
39
 NetFlix
• Grails, Asgard, Lipstick, Genie
 Twitter
• MySql, Cassandra, Hadoop, Lucene, Pig, Memcached, Scalding (Scala), Bootstrap
 Facebook
• Cassandra, PHP, Linux, MySQL, Memcached, Haystack, HipHop, Hive, Scribe
 Yahoo
• Hadoop, CapIt
 Google
• Big Table, Lazy Collections and a lot of stuff
 Amazon
• AWS, Linux, Oracle, Java, Perl, JBoss, Xen
 WhatsApp
• Erlang
What the Big Players are Doing
42
 Did you choose or were you chosen?
 Did you select the right technology?
 How do you measure it?
• Cost
• Resources
• Support and Community
 Can you brainwash convince your
• Stakeholder
• Manager
• Team
• Yourself
Too Many Questions…
45
A Technology Radar is a team exercise to experiment and
assess the emerging and sun-setting technologies in order
to provide value to your stakeholders
Pioneered by ThoughtWorks Inc.
Conducted quarterly
Assess current technologies
Publishes resulting radar
Technology Radar
46
The result of the exercise is a document that captures
• your team’s view of where the industry is going
• what your team is doing to keep up with it
• how your team leverages the potential benefits and
exclude excess baggage
• your team’s trail of how it has modernized
Results of Technology Radar
47
 Techniques
• Spock, Guerilla Testing, Async
programming, Functional programming, Html5
storage, Logs as data, Agile, Kanban, Scrum
 Tools
• Gradle, Pig, Maven, TFS, Eclipse, VisualStudio, Intell
iJ, Atlassian, Jira, GitServer
 Platforms
• MongoDB, Neo4j, Redis, Hadoop, Node.js, OpenSta
ck, Rias, Azure, AWS, SharePoint
 Languages and Frameworks
• AngularJS, Knockout, Groovy, Grails, Clojure, Scala,
Play, JavaScript/CSS
frameworks, DropWizard, SpringBoot
Groups (categories)
48
 Adopt
• Start using in your projects
 Trial
• Understand the capabilities;
consider in a low-risk project
 Assess
• Worth exploring with the goal of
understanding how it affects your
enterprise; do a PoC
 Hold
• Proceed with caution; Reduce support
Rings
49
Texas.gov Technology Radar ‘13
51
 Keep current
 Eliminate excess baggage
 Trail of your decisions on technology
 Helps to remove technology biases
 Not a roadmap, but it helps you come up with a
convincing roadmap
 Must be done at enterprise level
Benefits
52
 Check out where your peers are caught up and why
 Share your findings (even if you calculated the Fibonacci series again)
 Remain passionate and have fun doing what you do
Always remember, the technologies are battling for you
except for Chuck Norris
he chooses the technology to choose him
Summary
53
Technology Radar http://www.thoughtworks.com/radar
Higher-order functions http://en.wikipedia.org/wiki/Higher-order_function
Evolution of C++ http://knowtechstuff.blogspot.com/2012/02/evolution-of-c-
programming-language.html
History of programming
languages
http://www.georgehernandez.com/h/xComputers/Programm
ing/Languages.asp
The graph of
programming languages
http://griffsgraphs.com/2012/07/01/programming-
languages-influences/
Images Courtesy Foxtrot™, www.glasbren.com, www.wikipedia.org
and several web sites.
References
54
Contact Information:
Eric Kelm
ekelm@egov.com
512-651-9399
Vasu Srinivasan
vsrinivasan@egov.com
512-651-9816
println(‘Thank YOU !’)
Questions?

More Related Content

Viewers also liked

Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming PlatformsAnup Hariharan Nair
 
My First Article In College Magazine
My First Article In College MagazineMy First Article In College Magazine
My First Article In College Magazinedeepak171991
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudEberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology StackEberhard Wolff
 
Indian Information Technology Act
Indian Information Technology ActIndian Information Technology Act
Indian Information Technology ActKaran Bhagatwala
 
The Next Big Thing is Web 3.0. Catch It If You Can
The Next Big Thing is Web 3.0. Catch It If You Can The Next Big Thing is Web 3.0. Catch It If You Can
The Next Big Thing is Web 3.0. Catch It If You Can Judy O'Connell
 
Digital Bank, May 2014
Digital Bank, May 2014Digital Bank, May 2014
Digital Bank, May 2014Chris Skinner
 

Viewers also liked (9)

Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
My First Article In College Magazine
My First Article In College MagazineMy First Article In College Magazine
My First Article In College Magazine
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Indian Information Technology Act
Indian Information Technology ActIndian Information Technology Act
Indian Information Technology Act
 
it act 2000
it act 2000it act 2000
it act 2000
 
Cyber law
Cyber lawCyber law
Cyber law
 
The Next Big Thing is Web 3.0. Catch It If You Can
The Next Big Thing is Web 3.0. Catch It If You Can The Next Big Thing is Web 3.0. Catch It If You Can
The Next Big Thing is Web 3.0. Catch It If You Can
 
Digital Bank, May 2014
Digital Bank, May 2014Digital Bank, May 2014
Digital Bank, May 2014
 

Similar to Texas.gov Presents: Battle of Programming Languages

The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet developmentSynapseindiappsdevelopment
 
EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS Kenzan
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGOptum
 
Practicing at the Cutting Edge
Practicing at the Cutting EdgePracticing at the Cutting Edge
Practicing at the Cutting EdgeC4Media
 
Session2(Mod)
Session2(Mod)Session2(Mod)
Session2(Mod)mccmepco
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016Vaidheswaran CS
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...InfinIT - Innovationsnetværket for it
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technologyEldos Kuriakose
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - LongAgile Development with Smalltalk - Long
Agile Development with Smalltalk - LongTomáš Kukol
 
Class 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipClass 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipallanchao
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructurekaveirious
 
Refactoring Organizations - A Netflix Study (QCon NYC 2017)
Refactoring Organizations - A Netflix Study (QCon NYC 2017)Refactoring Organizations - A Netflix Study (QCon NYC 2017)
Refactoring Organizations - A Netflix Study (QCon NYC 2017)Josh Evans
 
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 presentationstreambase
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014jbandi
 
Nikhil Kaja Fair
Nikhil Kaja FairNikhil Kaja Fair
Nikhil Kaja Fairnikhilkaja
 

Similar to Texas.gov Presents: Battle of Programming Languages (20)

The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Overview
OverviewOverview
Overview
 
Synapse india fundamentals of dotnet development
Synapse india fundamentals of dotnet  developmentSynapse india fundamentals of dotnet  development
Synapse india fundamentals of dotnet development
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
 
01.intro
01.intro01.intro
01.intro
 
EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUG
 
Practicing at the Cutting Edge
Practicing at the Cutting EdgePracticing at the Cutting Edge
Practicing at the Cutting Edge
 
Session2(Mod)
Session2(Mod)Session2(Mod)
Session2(Mod)
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016
 
Logesh Kumaran M
Logesh Kumaran MLogesh Kumaran M
Logesh Kumaran M
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - LongAgile Development with Smalltalk - Long
Agile Development with Smalltalk - Long
 
Class 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipClass 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurship
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructure
 
Refactoring Organizations - A Netflix Study (QCon NYC 2017)
Refactoring Organizations - A Netflix Study (QCon NYC 2017)Refactoring Organizations - A Netflix Study (QCon NYC 2017)
Refactoring Organizations - A Netflix Study (QCon NYC 2017)
 
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
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
 
Nikhil Kaja Fair
Nikhil Kaja FairNikhil Kaja Fair
Nikhil Kaja Fair
 

More from Texas.gov

Beyond Strategy: Building Your Mobile Capabilities
Beyond Strategy: Building Your Mobile CapabilitiesBeyond Strategy: Building Your Mobile Capabilities
Beyond Strategy: Building Your Mobile CapabilitiesTexas.gov
 
DevOps: Lead, Follow or Get Out of the Way - A CISO Perspective
DevOps:  Lead, Follow or Get Out of the Way - A CISO PerspectiveDevOps:  Lead, Follow or Get Out of the Way - A CISO Perspective
DevOps: Lead, Follow or Get Out of the Way - A CISO PerspectiveTexas.gov
 
Fee Pay Lite Screenshots
Fee Pay Lite ScreenshotsFee Pay Lite Screenshots
Fee Pay Lite ScreenshotsTexas.gov
 
Commissary Shopping Cart Demo Slides
Commissary Shopping Cart Demo SlidesCommissary Shopping Cart Demo Slides
Commissary Shopping Cart Demo SlidesTexas.gov
 
Hackathons: Embracing Collaboration to Achieve Results
Hackathons: Embracing Collaboration to Achieve ResultsHackathons: Embracing Collaboration to Achieve Results
Hackathons: Embracing Collaboration to Achieve ResultsTexas.gov
 
Texas.gov - Using Hackathons to Work Together Towards a Common Goal
Texas.gov - Using Hackathons to Work Together Towards a Common GoalTexas.gov - Using Hackathons to Work Together Towards a Common Goal
Texas.gov - Using Hackathons to Work Together Towards a Common GoalTexas.gov
 
NACRC 2013 | Cloud Technology: Do you Compute
NACRC 2013 | Cloud Technology: Do you ComputeNACRC 2013 | Cloud Technology: Do you Compute
NACRC 2013 | Cloud Technology: Do you ComputeTexas.gov
 
THE ROAD FORGOTTEN: What's the roadmap for your website?
THE ROAD FORGOTTEN: What's the roadmap for your website?THE ROAD FORGOTTEN: What's the roadmap for your website?
THE ROAD FORGOTTEN: What's the roadmap for your website?Texas.gov
 

More from Texas.gov (8)

Beyond Strategy: Building Your Mobile Capabilities
Beyond Strategy: Building Your Mobile CapabilitiesBeyond Strategy: Building Your Mobile Capabilities
Beyond Strategy: Building Your Mobile Capabilities
 
DevOps: Lead, Follow or Get Out of the Way - A CISO Perspective
DevOps:  Lead, Follow or Get Out of the Way - A CISO PerspectiveDevOps:  Lead, Follow or Get Out of the Way - A CISO Perspective
DevOps: Lead, Follow or Get Out of the Way - A CISO Perspective
 
Fee Pay Lite Screenshots
Fee Pay Lite ScreenshotsFee Pay Lite Screenshots
Fee Pay Lite Screenshots
 
Commissary Shopping Cart Demo Slides
Commissary Shopping Cart Demo SlidesCommissary Shopping Cart Demo Slides
Commissary Shopping Cart Demo Slides
 
Hackathons: Embracing Collaboration to Achieve Results
Hackathons: Embracing Collaboration to Achieve ResultsHackathons: Embracing Collaboration to Achieve Results
Hackathons: Embracing Collaboration to Achieve Results
 
Texas.gov - Using Hackathons to Work Together Towards a Common Goal
Texas.gov - Using Hackathons to Work Together Towards a Common GoalTexas.gov - Using Hackathons to Work Together Towards a Common Goal
Texas.gov - Using Hackathons to Work Together Towards a Common Goal
 
NACRC 2013 | Cloud Technology: Do you Compute
NACRC 2013 | Cloud Technology: Do you ComputeNACRC 2013 | Cloud Technology: Do you Compute
NACRC 2013 | Cloud Technology: Do you Compute
 
THE ROAD FORGOTTEN: What's the roadmap for your website?
THE ROAD FORGOTTEN: What's the roadmap for your website?THE ROAD FORGOTTEN: What's the roadmap for your website?
THE ROAD FORGOTTEN: What's the roadmap for your website?
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Texas.gov Presents: Battle of Programming Languages

  • 1. Presented by: Vasu Srinivasan, Senior Developer and SharePoint Architect Eric Kelm, Senior Software Developer Texas.gov Technology Today Series Presented by Texas.gov Hosted by the Texas Department of Information Resources (DIR)
  • 2. 2  Small, informal, interactive discussions  Deeper dive into topic  Hosted twice a year  Coming up – a follow up to this webinar on Tuesday, May 13, 11:30am – 1:00pm (light lunch provided) • Look for RSVP instructions in follow up email • Space is limited Texas.gov Partner Roundtable
  • 3. 3  Learning a new programming language in under an hour  Comparing current popular programming languages or frameworks  Declaring which programming language is best What This Talk is NOT About
  • 4. 4  A light-hearted look at industry trends  A review of emerging technologies  Keeping up with emerging technologies  And something along those lines… So What is This Talk About…
  • 5.
  • 6.
  • 7. 7  C/C++  Pascal, Delphi, PowerBuilder  COBOL  VB  SQL Server, Oracle, DB2  Word, Excel, Access (T – 20).years()
  • 8. 8  OOAD, OOP  Java, EJB, JDBC, JNDI and JSP  .Net/C# and ASP  MoM, Web Services  JavaScript, JScript, VBScript  XML, DHTML, XHTML, XSL, XSLT, CSS  SQL Server/Oracle  UML (T – 10).years()
  • 9. 9 • Java, EJB, JSF, Spring, Groovy, Grails, JBoss Seam, Struts, Swing, JavaFX, Objective C • Ruby, PHP, Python, Scala, Clojure, Haskell • .Net 2.0-4.5, C#, ASP.Net MVC2, MVC3, MVC4, SharePoint, RazorView • SOA, WebServices, JAX-RPC, JAXB, Soap, REST, WCF, Camel, RabbitMQ • SVN, GitHub, TFS, Jira, Jenkins, Maven, Ivy, Gradle • JavaScript, HTML5, CSS3, jQuery, jQuery Mobile, Backbone, Ember, Knockout, AngularJS, Node.js, extJS • XML, YAML, XSL, XSLT, JSON • UML, EIP, EAP • SQL Server, Oracle, MongoDB, Redis, Cassandra, Neo4J • BigData, Hadoop, Pig, Hive • Android, OSX , Windows Phone 7/8/8.1/RT • JUnit, NUnit, MSTest, Selenium, Spock, Geb • OOAD, OOP, Functional, Parallel and Distributed Programming • Agile, Waterfall, Scrum, XP, Kanban • TDD, BDD, ADD and OCD (T - 1).days()
  • 10.
  • 11. 11  Obviously, technology has become complex over the years  Almost obviously, selecting a technology also has become complex  Not so obviously, the conviction that a selected technology is suitable has also become complex The Truth About Technology
  • 12. 12 What we mean by technology in this presentation  Programming Languages  Application Frameworks  Databases  Tools #Technology
  • 13. 13 Hardware Servers Databases Platforms Language s Framewor ks XaaS Choices 2 4 8 16 32 128 256 0 50 100 150 200 250 300 Numberofchoices Technology vs Choices Technology Approx # of Choices Examples Hardware 2 Mac, PC Servers 4 AIX, Solaris, Linux, Windows Databases 8 Oracle, SQL Server, PostgreSql, MySql, MongoDB, Cassandra, MS Access Platforms 16 JVM, .Net, Android, OSX, Windows Phone/RT, WebServices, Node.js, Vertex Languages 32 C, C++, Java, C#, Groovy, PHP, Python, Ruby, JavaScript, XML, XSL, HTML Framework s 128 Spring, Grails, Wicket, Zend, Django, Rails, AngularJS, EmberJS, ExtJS, jQuery, Sencha, PhoneGap XaaS/Tools 256 IaaS, PaaS, SaaS, Cloud and other services Technology Choices
  • 14. 14 As the level of abstraction increases, so do the number of choices. The Kelm-Srinivasan Law of Choices
  • 15. 15  Use scientific techniques such as • “It’s the only tool I know” • “I think I know this programming language” • “Everyone talks about this new framework”  Conclusion • Go with what you think is best • Or what others think is best • You can always blame the technology, anyway How to Select a Technology?
  • 16. 16 But what if… we are actually overlooking something very fundamental? if (what) { … }
  • 17. 17 Well, technologies have a pattern for that… the problem is not about selecting the techologies for your business but how to select YOU, has been the problem for technologies you are not struggling to select the technology but the technologies are struggling to select YOU if (what) { … }
  • 18. 18  INVERSION OF CONTROL OF DEVELOPERS SUBJECT ORIENTED PATTERN
  • 19. 19 is how the architectures, platforms, languages and frameworks are trying to attract, entice… The Real Problem of for Technologies
  • 20. 20 The Battle and how they are battling to use … YOU
  • 21. 21 But why do we think that the technologies are battling amongst themselves? Think about how many programming languages have been invented to say “Hello, World!”… And calculate the Fibonacci Series or a Factorial. That’s because they do not trust each other’s bits. “My bits are better than your bits” Battle, Why?
  • 22. 22 Messaging JVM .Net JavaScript Databases Middleware CMS Others HTML/CSS Web Frameworks Integration WHERE YOU ARE THE CATCH the battlefield of technologies
  • 24.
  • 25.
  • 26.
  • 27. 27 Android iOS Windows Phone Sencha PhoneGap Titanium SOAP REST ActiveMQ Fusion Middleware RabbitMQ Activiti Apache Camel DropWizard WCF XML, JSON, GS ON JPA, Hibernate jQuery jQuery Mobile extJS emberJS angularJS backbone.js node.js knockout prototype dojo mootools sass/scss less Oracle SQL Server MySQL Server PostgreSql MongoDB Cassandra Redis Hadoop BigData More Regiments
  • 28.
  • 30. 30  Essence over Ceremony  Functional Programming Support  Domain Specific Languages Features of Modern Programming Languages
  • 31. 31  Get to the essence of what your code is trying to accomplish, and get rid of all of the unnecessary legacy ceremony  For example, the iterator pattern becomes much simpler, because instead of the developer controlling the iteration (for loop), the object itself is responsible for the control of iteration (object.each)  So the question “how to iterate” becomes irrelvant, and you essentially are telling the object “Go iterate yourself” Feature: Essence Over Ceremony
  • 32. 32 First-class and higher-order functions functions as arguments functions as return types Pure functions immutable objects no state Feature: Functional Programming Support
  • 33. 33  Create languages targeted at a specific problem domain in which you are working (mini-languages)  Allows business users to write “code” in a language that they can understand, and that same language can also be understood by the system Feature: Domain Specific Languages
  • 34. 34 package com.asoftwareguy.email.java; public class JavaEmailSender { public static void main(String[] args){ JavaEmail javaEmail = new JavaEmail(); javaEmail.setTo("ekelm@egov.com"); javaEmail.setFrom("test@texas.gov"); javaEmail.setSubject(“Test Email"); javaEmail.setMessage("Hello! This is a test email message!"); javaEmail.send(); } } Show and Tell: Java
  • 35. 35 send email to 'ekelm@egov.com' from 'test@texas.gov' with a subject 'Test Email' and the message 'Hello! This is a test email message!' Show and Tell: DSL
  • 36. 36 The DSL illustrated “Essence over Ceremony” allowed expression of a domain expertise directly in a general purpose programming language Many other technologies are doing the same thing – simplifying solutions for complex business problems And there are so many flavors of these technologies… What Does the DSL Prove?
  • 38. 38 Let’s revisit the question Now that we know technologies are also fighting a battle to get to us… How to Select a Technology?
  • 39. 39  NetFlix • Grails, Asgard, Lipstick, Genie  Twitter • MySql, Cassandra, Hadoop, Lucene, Pig, Memcached, Scalding (Scala), Bootstrap  Facebook • Cassandra, PHP, Linux, MySQL, Memcached, Haystack, HipHop, Hive, Scribe  Yahoo • Hadoop, CapIt  Google • Big Table, Lazy Collections and a lot of stuff  Amazon • AWS, Linux, Oracle, Java, Perl, JBoss, Xen  WhatsApp • Erlang What the Big Players are Doing
  • 40.
  • 41.
  • 42. 42  Did you choose or were you chosen?  Did you select the right technology?  How do you measure it? • Cost • Resources • Support and Community  Can you brainwash convince your • Stakeholder • Manager • Team • Yourself Too Many Questions…
  • 43.
  • 44.
  • 45. 45 A Technology Radar is a team exercise to experiment and assess the emerging and sun-setting technologies in order to provide value to your stakeholders Pioneered by ThoughtWorks Inc. Conducted quarterly Assess current technologies Publishes resulting radar Technology Radar
  • 46. 46 The result of the exercise is a document that captures • your team’s view of where the industry is going • what your team is doing to keep up with it • how your team leverages the potential benefits and exclude excess baggage • your team’s trail of how it has modernized Results of Technology Radar
  • 47. 47  Techniques • Spock, Guerilla Testing, Async programming, Functional programming, Html5 storage, Logs as data, Agile, Kanban, Scrum  Tools • Gradle, Pig, Maven, TFS, Eclipse, VisualStudio, Intell iJ, Atlassian, Jira, GitServer  Platforms • MongoDB, Neo4j, Redis, Hadoop, Node.js, OpenSta ck, Rias, Azure, AWS, SharePoint  Languages and Frameworks • AngularJS, Knockout, Groovy, Grails, Clojure, Scala, Play, JavaScript/CSS frameworks, DropWizard, SpringBoot Groups (categories)
  • 48. 48  Adopt • Start using in your projects  Trial • Understand the capabilities; consider in a low-risk project  Assess • Worth exploring with the goal of understanding how it affects your enterprise; do a PoC  Hold • Proceed with caution; Reduce support Rings
  • 50.
  • 51. 51  Keep current  Eliminate excess baggage  Trail of your decisions on technology  Helps to remove technology biases  Not a roadmap, but it helps you come up with a convincing roadmap  Must be done at enterprise level Benefits
  • 52. 52  Check out where your peers are caught up and why  Share your findings (even if you calculated the Fibonacci series again)  Remain passionate and have fun doing what you do Always remember, the technologies are battling for you except for Chuck Norris he chooses the technology to choose him Summary
  • 53. 53 Technology Radar http://www.thoughtworks.com/radar Higher-order functions http://en.wikipedia.org/wiki/Higher-order_function Evolution of C++ http://knowtechstuff.blogspot.com/2012/02/evolution-of-c- programming-language.html History of programming languages http://www.georgehernandez.com/h/xComputers/Programm ing/Languages.asp The graph of programming languages http://griffsgraphs.com/2012/07/01/programming- languages-influences/ Images Courtesy Foxtrot™, www.glasbren.com, www.wikipedia.org and several web sites. References
  • 54. 54 Contact Information: Eric Kelm ekelm@egov.com 512-651-9399 Vasu Srinivasan vsrinivasan@egov.com 512-651-9816 println(‘Thank YOU !’) Questions?

Editor's Notes

  1. This is a light-hearted talk about technologies that are evolving very fast around us and how to manage them.
  2. Let’s start with something we all have done before, or at least wish to do. Many product startups start not just with a business idea, but also some form of implementation idea behind them. If you don’t have an implementation goal, your next step is to find a developer who can come up with that.
  3. Ok you are ready to hire a developer for your implementation. Lets do a comparison of developer interviews over the years.
  4. 20 years ago, you would look for a developer with these skill sets. Notice how Word and Excel are also considered developer skills.
  5. Well, things started changing fast. New acronyms were invented and more acronyms followed. There was a point of time where knowing the acronym meant the developer knew the subject.
  6. And this is what’s expected of a modern developer today. It is common to see recruiters looking for 5 years of experience in a technology that was invented last year’s fall.
  7. It’s an overwhelming technology world out there. Where do we start to understand this complexity? Some people believe that Business solution matters and technology is only an enabler. Any technology can be used to achieve any business solution.Some others believe that choosing a technology implementation is as important as getting to the goal
  8. We have used the term technology a bit liberally so far. Let’s scope that term - when we say “Technology” in this talk, this is what we mean – Programming Languages, Application Frameworks, Databases and Tools. Our discussion topic is restricted to these terms during this talk.
  9. A few slides earlier we said that selection of a technology has become complex. We can prove that using some stats. Look at the graph and see what you can conclude.You can think of each following row is an abstraction of the above line. For example, OS is an abstraction of Hardware layer. Frameworks are abstraction of Languages. At the end of it all, its just 1s and 0s, but you have various abstraction layers to just do that.
  10. And thus follows a simple law!
  11. How to select a technology. You can use proven scientific methods about what you already know or what others know. Because you can blame the technology at the end of the day anyway.
  12. Well, here is a thought.We as developers are looking at this completely wrong.
  13. With so many technologies around, may be its not we developers are struggling to select a technology.What if, technologies have a mind of their own?
  14. It is called Subject Oriented Pattern, which they call as Inversion of Control of developers
  15. They – the technologies – have a bigger problem than you…
  16. And that’s why they are battling to choose you – The Developer.So “Choices of Technology” does not necessarily mean what developers have to choose. It rather means that how the technologies are battling amongst themselves in order to get themselves implemented for a solution through the hands of developers.If you browse through a myriad of tech web sites, you can see how these technologies try to offer simplicity, installability, testability and maturity and several Quality Attributes, so that you as a developer will click on that link and eventually download and use it.
  17. But why do we call this a battle?Think about how many programming languages have been invented just to say “Hello World!”. Or how many web frameworks have been invented just to send a response back to the browser. Or how many relational databases are invented just to capture the relations of data. That’s because they do not trust each other. They seem to think that their bits are better than other languages bits.
  18. And welcome to the Battlefield of Technologies – where you, the developer, are the catch!
  19. Within this battlefield we have many divisions – The JVM Brigade with a hundreds of open source code.
  20. C# is really the only viable choice on the .Net platform
  21. Even on top of the development platforms, there is an abundance of frameworks that all strive to solve specific (and often times the same) problems.
  22. Even just looking at a specific segment of the market, the choices just keep multiplying.
  23. More examples of choices: Databases, JavaScript and CSS frameworks, Architecture, Middleware, Mobile
  24. There are so many technologies to talk about - tools, frameworks, architectures or programming languages. But we are really interested in their battles. For an illustration of this battle, we will highlight the battle of technologies by illustrating with examples from new programming languages.
  25. There are over 8000 programming languages, according to the Internet. Here is a interesting picture of relationships of programming languages. The bigger the font of the programming language, the more its related. It is interesting to see that Haskell has influenced many programming languages.
  26. Less CeremonyMore Celebration
  27. Modern languages emphasize getting the task done, instead of worrying how to construct your code
  28. Examples of DSLs: SQL MediaWiki markupUnix shell scripting
  29. A regular Java program to send an email
  30. Exact functionality implemented as a Groovy language DSL !
  31. Emphasize that we are trying to simplify solutions, in a way that non-programmers can effectively use our systems.
  32. But there are so many choices, where do we start?
  33. Now that we know technologies are also fighting a battle amongst themselves, let’s revisit the question of how to select a technology. Surely we need a better way of making choices.
  34. They are creating many smallprojects, open source them that eventually disrupt the industry. For eg. Cassandra/Mongo/Redis/Neo4J as a powerful NoSQL has gained a notable market over traditional RDBMS. Hadoop has become the defacto tool for analyzing BigData.
  35. The small players are hoping that cloud will solve all their problems.
  36. The bigger question is “What are YOU doing about it ?”
  37. How do you know that you are doing the “right” thing?
  38. Too few options.
  39. Team exerciseTry emerging technologiesRetire outdated technologies
  40. Documents what your team:Is doingPlan to doPlan to stopWill not do
  41. Describe the four categories
  42. Describe the four rings
  43. We practice what we preach
  44. Practice what we preach
  45. There are many benefits to using a technology radar