+ All Categories
Home > Technology > Texas.gov Presents: Battle of Programming Languages

Texas.gov Presents: Battle of Programming Languages

Date post: 12-May-2015
Category:
Upload: texasgov
View: 220 times
Download: 0 times
Share this document with a friend
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.
Popular Tags:
54
Presented by: Vasu Srinivasan, Senior Developer and SharePoint Architect Eric Kelm, Senior Software Developer Technology Today Series Presented by Texas.gov Hosted by the Texas Department of Information Resources (DIR) CHOICES of TECHNOLOGY Battle of Programming Languages
Transcript
Page 1: Texas.gov Presents:  Battle of Programming Languages

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

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

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

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

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

6

An ideal man’s mind is a developer’s workshop

the interview

Page 7: Texas.gov Presents:  Battle of Programming Languages

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

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

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

10

COMPLEXITY IS A STATE OF MIND

complexity

Page 11: Texas.gov Presents:  Battle of Programming Languages

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

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

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

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

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

16

But what if…

we are actually overlooking something very fundamental?

if (what) { … }

Page 17: Texas.gov Presents:  Battle of Programming Languages

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

18

INVERSION OF CONTROL OF DEVELOPERS

SUBJECT ORIENTED PATTERN

Page 19: Texas.gov Presents:  Battle of Programming Languages

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

20

The Battle

and how they are

battling to use …

YOU

Page 21: Texas.gov Presents:  Battle of Programming Languages

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

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

JVM Brigade

JavaGroovyScalaClojureJythonJRubyKotlinCeylonFantomGosu

http://tinyurl.com/odkwxcj

23

Page 24: Texas.gov Presents:  Battle of Programming Languages

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

25

SpringStrutsJSFPlayWicketGrailsGWTVaadinStripes

ASP.net MVC4Vert.X

Frameworks Squadron

Page 26: Texas.gov Presents:  Battle of Programming Languages

26

CMS Troop

Page 27: Texas.gov Presents:  Battle of Programming Languages

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

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

29

Galaxy of Programming Languages

Page 30: Texas.gov Presents:  Battle of Programming Languages

30

Essence over Ceremony

Functional Programming Support

Domain Specific Languages

Features of Modern Programming Languages

Page 31: Texas.gov Presents:  Battle of 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

Page 32: Texas.gov Presents:  Battle of Programming Languages

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

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

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

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

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

37

Choices, Choices Everywhere

Page 38: Texas.gov Presents:  Battle of Programming Languages

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

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

40

What the Small Players are Doing

Page 41: Texas.gov Presents:  Battle of Programming Languages

41

What are YOU Doing?

Page 42: Texas.gov Presents:  Battle of Programming Languages

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

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

44

A RADAR THAT DETECTS WHAT’S HOT AND WHAT’S NOT

technology radar

Page 45: Texas.gov Presents:  Battle of Programming Languages

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

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

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

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

49

Texas.gov Technology Radar ‘13

Page 50: Texas.gov Presents:  Battle of Programming Languages

50

Texas.gov Technology Radar ’13

Page 51: Texas.gov Presents:  Battle of Programming Languages

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

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

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

54

Contact Information:

Eric [email protected]

Vasu [email protected]

println(‘Thank YOU !’)

Questions?


Recommended