texas.gov presents: battle of programming languages
DESCRIPTION
Software technology is evolving quickly. Platforms, programming languages, and frameworks are created at a pace faster than ever before. New techniques, processes, and standards are also emerging that can impact your organization, especially if you’re not prepared. There are times, though, that these same technologies also fade fast. Catching up with and staying abreast of new technologies is as important as knowing which technologies will yield long term results. How can your organization's technology strategy keep up with all the changes? Join us for a light-hearted yet informative look at the “Battle of the Programming Languages” and our take on how to keep up with emerging technologies and techniques, and how you can align your organization's technology goals with the ever moving software industry.TRANSCRIPT
![Page 1: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/1.jpg)
Presented by:Vasu Srinivasan, Senior Developer and SharePoint Architect Eric Kelm, Senior Software DeveloperTexas.gov
Technology Today SeriesPresented by Texas.gov
Hosted by the Texas Department of Information Resources (DIR)
CHOICES of TECHNOLOGY
Battle ofProgramming Languages
![Page 2: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/2.jpg)
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
![Page 3: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/3.jpg)
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
![Page 4: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/4.jpg)
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…
![Page 5: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/5.jpg)
5
That you are tasked with a new project
You have some business goal in mind
You may or may not have a technology implementation in mind
You are about to hire an ideal developer to help your implementation
imagine()
![Page 6: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/6.jpg)
6
An ideal man’s mind is a developer’s workshop
the interview
![Page 7: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/7.jpg)
7
C/C++ Pascal, Delphi, PowerBuilder COBOL VB SQL Server, Oracle, DB2 Word, Excel, Access
(T – 20).years()
![Page 8: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/8.jpg)
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()
![Page 9: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/9.jpg)
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()
![Page 10: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/10.jpg)
10
COMPLEXITY IS A STATE OF MIND
complexity
![Page 11: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/11.jpg)
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
![Page 12: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/12.jpg)
12
What we mean by technology in this presentation
Programming Languages Application Frameworks Databases Tools
#Technology
![Page 13: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/13.jpg)
13
Hardware Servers Databases Platforms Languages Frame-works
XaaS
Choices 2 4 8 16 32 128 256
25
75
125
175
225
275
Technology vs Choices
Num
ber o
f cho
ices
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
Frameworks
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
![Page 14: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/14.jpg)
14
As the level of abstraction increases, so do the number of choices.
The Kelm-Srinivasan Law of Choices
![Page 15: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/15.jpg)
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?
![Page 16: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/16.jpg)
16
But what if…
we are actually overlooking something very fundamental?
if (what) { … }
![Page 17: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/17.jpg)
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) { … }
![Page 18: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/18.jpg)
18
INVERSION OF CONTROL OF DEVELOPERS
SUBJECT ORIENTED PATTERN
![Page 19: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/19.jpg)
19
is how the architectures, platforms, languages and
frameworks are trying to attract, entice…
The Real Problem of for Technologies
![Page 20: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/20.jpg)
20
The Battle
and how they are
battling to use …
YOU
![Page 21: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/21.jpg)
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?
![Page 22: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/22.jpg)
22
Messaging
JVM .Net
JavaScript
Databases
Middleware
CMS
Others
HTML/CSS Web Frameworks
Integration
WHERE YOU ARE THE CATCH
the battlefield of technologies
![Page 23: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/23.jpg)
JVM Brigade
JavaGroovyScalaClojureJythonJRubyKotlinCeylonFantomGosu
http://tinyurl.com/odkwxcj
23
![Page 24: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/24.jpg)
24
No, I’m in pajamas.
No, I’m in coma.
No, I’m in death bed.
Hello, any one here? Wanna
fight?
.Net Detachment
![Page 25: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/25.jpg)
25
SpringStrutsJSFPlayWicketGrailsGWTVaadinStripes
ASP.net MVC4Vert.X
Frameworks Squadron
![Page 26: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/26.jpg)
26
CMS Troop
![Page 27: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/27.jpg)
27
AndroidiOSWindows PhoneSenchaPhoneGapTitanium
SOAPRESTActiveMQFusion MiddlewareRabbitMQActivitiApache CamelDropWizardWCFXML, JSON, GSONJPA, Hibernate
jQueryjQuery MobileextJSemberJSangularJSbackbone.jsnode.jsknockoutprototypedojomootoolssass/scssless
OracleSQL ServerMySQL ServerPostgreSqlMongoDBCassandraRedisHadoopBigData
More Regiments
![Page 28: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/28.jpg)
28
SO MANY TECHNOLOGIES TO COVER, ONLY A FEW MINUTES LEFT TO PRESENT
the inconspicuous battle of programming languages
![Page 29: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/29.jpg)
29
Galaxy of Programming Languages
![Page 30: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/30.jpg)
30
Essence over Ceremony
Functional Programming Support
Domain Specific Languages
Features of Modern Programming Languages
![Page 31: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/31.jpg)
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
![Page 32: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/32.jpg)
32
First-class and higher-order functionsfunctions as argumentsfunctions as return types
Pure functions immutable objectsno state
Feature: Functional Programming Support
![Page 33: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/33.jpg)
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
![Page 34: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/34.jpg)
34
package com.asoftwareguy.email.java;
public class JavaEmailSender {
public static void main(String[] args){ JavaEmail javaEmail = new JavaEmail(); javaEmail.setTo("[email protected]"); javaEmail.setFrom("[email protected]"); javaEmail.setSubject(“Test Email"); javaEmail.setMessage("Hello! This is a test email message!"); javaEmail.send(); }}
Show and Tell: Java
![Page 35: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/35.jpg)
35
send email to '[email protected]' from '[email protected]' with a subject 'Test Email' and the message 'Hello! This is a test email message!'
Show and Tell: DSL
![Page 36: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/36.jpg)
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?
![Page 37: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/37.jpg)
37
Choices, Choices Everywhere
![Page 38: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/38.jpg)
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?
![Page 39: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/39.jpg)
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
![Page 40: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/40.jpg)
40
What the Small Players are Doing
![Page 41: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/41.jpg)
41
What are YOU Doing?
![Page 42: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/42.jpg)
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…
![Page 43: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/43.jpg)
43
Status QuoEgo sum, ergo sum
Proof-of-Concepts or PrototypesGood, but not enough
Technology RadarMeasure and Synthesize
Too Few Options…
![Page 44: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/44.jpg)
44
A RADAR THAT DETECTS WHAT’S HOT AND WHAT’S NOT
technology radar
![Page 45: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/45.jpg)
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
![Page 46: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/46.jpg)
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
![Page 47: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/47.jpg)
47
Techniques
• Spock, Guerilla Testing, Async programming,
Functional programming, Html5 storage, Logs as
data, Agile, Kanban, Scrum
Tools
• Gradle, Pig, Maven, TFS, Eclipse, VisualStudio,
IntelliJ, Atlassian, Jira, GitServer
Platforms
• MongoDB, Neo4j, Redis, Hadoop, Node.js,
OpenStack, Rias, Azure, AWS, SharePoint
Languages and Frameworks
• AngularJS, Knockout, Groovy, Grails, Clojure, Scala,
Play, JavaScript/CSS frameworks, DropWizard,
SpringBoot
Groups (categories)
![Page 48: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/48.jpg)
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
![Page 49: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/49.jpg)
49
Texas.gov Technology Radar ‘13
![Page 50: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/50.jpg)
50
Texas.gov Technology Radar ’13
![Page 51: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/51.jpg)
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
![Page 52: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/52.jpg)
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
![Page 53: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/53.jpg)
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/Programming/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
![Page 54: Texas.gov Presents: Battle of Programming Languages](https://reader035.vdocuments.net/reader035/viewer/2022062319/5550f945b4c9057b478b4902/html5/thumbnails/54.jpg)
54
Contact Information:
Eric [email protected]
Vasu [email protected]
println(‘Thank YOU !’)
Questions?