What the Blub: Java vs JavaScript

  • Speed to market
  • Initial Quality
  • Mean Time to Resolve Defects

Speed to market

Box plot showing languages with dynamic type systems have faster development times than languages with dynamic type systems [4]

Initial Quality: Escaped Defects

Graphic: Different Types of Language Class [5]
Graphic: Showing escaped defect rates by language
Graphic: Functional programming languages demonstrate less defects

Mean Time To Resolve Defects

  1. These are the types of defects that most static type systems (particularly ones of Blub complexity) are expected show their performance advantage
  2. It introduces questions on why the group leveraging the dynamic type systems out performed on the time to market test or why did the group leveraging the static type system underperform.

Closing out

  1. Look at languages higher in the Blub paradox and learn about the constructs they provide. I have found this to broaden my perspective, my ability to think abstractly and to see patterns where I previously saw unique problems. Languages like Haskell, Idris, Agda etc have far more advanced type systems than Java and JavaScript. Perhaps they are a bit esoteric , but what can they teach you about your preferred tooling?
  2. The tasks we typically encounter (especially in the enterprise world) are likely solvable by most languages. Religious battles over language selection are a distraction turn those conversations to ones based on metrics. You could elect to search published research or conduct your own.
  3. At least one study concludes that dynamically typed language look to get products to market faster. This would seem to make sense in smaller efforts.
  4. Static type systems don’t impact defect rate as much as coding style. Java and JavaScript performed perfectly Blub with respect to rate. However functional languages significantly outperformed the field (particularly functional languages which run on the JVM).
  5. It looks like MTTR for escaped type-defects favors JavaScript over Java. This is just a small portion of escaped defect types that one should almost ignore this bit — but this is the one area Java is supposed to excel. This makes it surprising but not a practical difference maker in either direction.

--

--

--

A 25 year software industry veteran with a passion for functional programming, architecture, mentoring / team development, xp/agile and doing the right thing.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Scala:Railway oriented programming primer

Ante Tech Talk #4: Fixed-point Arithmetic and Rounding in AntePool (cont’d)

Cursor Trails — 3 simple CSS tricks to add 🔥 to any website [Part 1]

R Tips and tricks from a beginner.

What is a Full-Stack QE and it’s possible?

Scoping Problems: A Recipe for Success

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Todd Brown

Todd Brown

A 25 year software industry veteran with a passion for functional programming, architecture, mentoring / team development, xp/agile and doing the right thing.

More from Medium

Java Script , Version Control and NoSQL

Factory Pattern

Java Script

Data structures: Array

Array add operation