Rod Johnson Profile Banner
Rod Johnson Profile
Rod Johnson

@springrod

33,743
Followers
766
Following
79
Media
4,958
Statuses

Creator of Spring, Cofounder/CEO at SpringSource. Developer, Entrepreneur, Investor, Author. Current focus Gen AI.

Sydney / Bay Area
Joined April 2009
Don't wanna be here? Send us removal request.
@springrod
Rod Johnson
5 years
How can serverless have server errors? Just tried to invoke a Lambda through HTTP and got {"message": "Internal server error"}
38
202
798
@springrod
Rod Johnson
6 months
Working full time in Java again after more than 10 years is an interesting experience. I've done a lot of Scala, TypeScript and Python in the interim--of which I strongly prefer TypeScript. I'm thinking of blogging/talking/tweeting about the journey. #Java
31
26
404
@springrod
Rod Johnson
2 years
Another interesting point from this era: There were people from the community who made extremely valuable contributions to the docs, but never contributed code. Open source is about far more than the codebase.
@vlad_mihalcea
Vlad Mihalcea
3 years
The reason why I started using @springframework in 2004 is because of its manual written by @springrod and the team. I was sold right away. Never underestimate the impact of documentation.
Tweet media one
14
41
353
6
52
313
@springrod
Rod Johnson
5 years
Too many app developers undervalue the potential of triggers, stored procedures and views as an abstraction layer when using an RDBMS.
41
55
249
@springrod
Rod Johnson
5 years
Over 15 years in, I still love TDD and can't imagine how I lived without it.
7
61
254
@springrod
Rod Johnson
5 years
"Why Microservices Should Scare you" - Worth reading. I agree re the "standardization" and "DevOps" problems.
14
100
238
@springrod
Rod Johnson
5 years
"If I can reproduce it in a unit test, I can fix it." The TDD equivalent of Arnie's classic line in Predator - "If it bleeds, we can kill it." That bug's days are numbered.
Tweet media one
7
73
226
@springrod
Rod Johnson
5 years
My true thoughts on YAML.
10
81
218
@springrod
Rod Johnson
5 years
@mykola This makes sense. And implies that alchemists should really have focused on developing dragon laxatives
2
7
180
@springrod
Rod Johnson
29 days
get/set - gone! 25 years after I embraced JavaBeans, I'm happy to see records killing JavaBean conventions. They're not needed any more. It's just a matter of time for APIs to evolve.
9
18
193
@springrod
Rod Johnson
6 years
As things get smaller (monoliths > microservices > lambdas), the ratio of configuration/code -- which had been getting better -- gets worse again. Possibly unavoidable, but creates the need for tools that work at scale across many services
19
87
182
@springrod
Rod Johnson
6 years
Fascinating. Even I'm surprised at how dominant Spring is--as it deserves to be. Other key points: Most Spring projects are Spring Boot; Spring 5 and Spring Boot 2 uptake is already remarkably high, and Kotlin is growing like crazy. @springboot @kotlin
6
101
170
@springrod
Rod Johnson
5 years
SQL is a pretty good DSL
7
23
168
@springrod
Rod Johnson
6 years
Thrilled to announce that the Atomist Software Delivery Machine API is ready to use in open source, on a laptop near you. . It's time to develop your development/delivery experience in a real programming language, rather than YAML and Bash @atomist
6
72
170
@springrod
Rod Johnson
7 years
Spring 5 is cool. So is Kotlin and the @atomist generator I built based on @starbuxman sample. #typescript #kotlin
0
58
146
@springrod
Rod Johnson
6 years
It's on track to be the dominant programming language unless we come to our senses
13
43
140
@springrod
Rod Johnson
5 years
Part of the meaning of "enterprise" is always to be migrating from something to something else
10
34
137
@springrod
Rod Johnson
3 months
Interesting talk on Netflix's current use of Java. . "Since about a year or so we have completely standardized on Spring Boot." "It is quite amazing...that that framework has been so stable and so well-evolved."
1
39
133
@springrod
Rod Johnson
6 months
1/2 Perhaps surprising opinion: Java is a great language for developing #GenAI apps. Why? 1. Don't need to use Python, as communicating with big models via HTTP is easy in any language. 2. Useful apps often require a bunch of async/persistence stuff where Java beats Python.
7
28
134
@springrod
Rod Johnson
6 years
With all due respect to Eclipse, the home of cloud native Java is @springframework and @springboot , which have enabled Java to lead in microservices. I wish @JakartaEE the best, but it's a distant challenger in a mature space
@mpredli
Michael P. Redlich #IStandWithUkraine 🇺🇦
6 years
Cloud Native Java has a new home: @JakartaEE ...my latest @InfoQ news piece featuring a comprehensive interview with @mmilinkov , executive director at @EclipseFdn ... #JakartaEE
0
3
6
4
44
124
@springrod
Rod Johnson
3 months
Spring AI is progressing nicely. Good to see the integration between LLM calls and Spring context, as with @Beans surfacing as OpenAI functions.
5
22
127
@springrod
Rod Johnson
22 days
Amazing how good Java testing experience has gotten. DI+AOP made it possible to unit test code without a server. Spring integration testing functionality is awesome. @testcontainers adds the last bit of magic. Makes me smile to run a test suite using a real DB in 2 minutes.
5
21
124
@springrod
Rod Johnson
6 years
The new Java Flogger logging library looks interesting, but I particularly like the "Anatomy" discussion about tradeoffs. Well worth reading.
2
51
115
@springrod
Rod Johnson
5 years
This is a big deal. How it plays out will determine the future of open source and customer choice. We risk a future more proprietary than Microsoft or Oracle ever dreamt of.
10
86
109
@springrod
Rod Johnson
6 years
Controversial thought: Are languages most productive when they are imperfect, yet do not suck? Take Java and modern JavaScript. No one thinks they're ideal, yet they have spawned valuable, practical ecosystems vs academic purity. Is that chance?
35
24
108
@springrod
Rod Johnson
3 months
And still going strong into the Gen AI era. The core concepts stand up very well today, but the magic has been the amazing--and remarkably stable--team. Supporting and supported by a great community.
@starbuxman
Josh Long
3 months
Happy 20th birthday to @SpringFramework 1.0, which was released on March 24th, 2004, with an awesome announcement blog by the amazing @trisberg !!
18
107
414
6
14
109
@springrod
Rod Johnson
6 years
The days when it was defensible to look down on JavaScript are long gone. ES6/ES7 are pretty good and #TypeScript is great. There are still quirks & it will never be pure, but it's massively useful. Given JS is everywhere and inescapable, that's good news.
11
49
103
@springrod
Rod Johnson
6 years
Any time you reduce the cycle time of anything in development or delivery, you unleash more of the potential of developers
1
42
100
@springrod
Rod Johnson
6 years
Amen! The precursor of Spring was an in-house MVC framework I wrote at FT in 2000 where "injection" was just for simple properties that needed to be parameterized. I generalized it partly because EJB 1.1 was hard to unit test. So Spring *exists* partly to facilitate unit testing
@odrotbohm
Oliver Drotbohm 🥁 & 👨‍💻
6 years
@stilkov I can’t remember any Java framework that has had more emphasis on user code being written in a way so that you can purely unit test it.
4
4
26
3
38
98
@springrod
Rod Johnson
8 years
If it hasn't been tested, assume it doesn't work
8
111
99
@springrod
Rod Johnson
5 years
"In a healthy piece of code, entropic decay is staved off by dozens of tiny interventions — bug fixes, test fixes, small refactors, migrating off a deprecated API". Excellent article: Some of that work can be automated, making it more likely to get done
@mfeathers
Michael Feathers
5 years
A codebase is an organism - (the frame you are never taught in software engineering)
13
105
232
0
34
95
@springrod
Rod Johnson
3 months
My regular reminder to myself that composition is usually better than inheritance
3
8
96
@springrod
Rod Johnson
6 years
Already a big Vonnegut fan, but didn't realize he understood software, too
@Kurt_Vonnegut
Kurt Vonnegut
6 years
Another flaw in the human character is that everybody wants to build and nobody wants to do maintenance.
5
224
662
3
27
90
@springrod
Rod Johnson
8 years
Good error messages are like good documentation in code: A one-time investment by one person that can make many others more productive.
6
132
91
@springrod
Rod Johnson
5 years
While premature optimization is evil, it *is* important to ask the question "could this ever be efficient?" Otherwise it's easy to design interfaces etc that are fundamentally broken and will need to change incompatibly.
2
20
90
@springrod
Rod Johnson
6 years
Nice article on best practice for using var and local type inference in Java 10 - #java . This is really going to reduce noise in Java code.
2
48
87
@springrod
Rod Johnson
5 years
I often find that being forced to think about backward compatibility leads to a better solution.
3
28
86
@springrod
Rod Johnson
6 years
Delivery and infrastructure should be programmable using core development skills and practices. They're powerful. The work of Turing, Hopper, Dijkstra and so many other greats led to modern programming languages. Let's not ignore it and type ever more YAML.
@monkchips
Grumble Bundle
6 years
phrase. "Infrastructure as Typescript". See @PulumiCorp and @atomist
1
2
6
6
32
84
@springrod
Rod Johnson
8 years
I continue to be amazed by the elegance, economy and consistency of Scala syntax #scala
3
67
83
@springrod
Rod Johnson
7 years
It's ideal to achieve both, but writing the right code is even more important than writing the code right.Yet we tend to focus on the latter
5
61
81
@springrod
Rod Johnson
3 months
Java has changed for the better. Improved case statement; instanceof binding to a variable to avoid casting; records etc. And tooling & libraries are great. The main thing that annoys me is collections. Having to go back and forth to streams is verbose and unreadable. Trying vavr
4
6
85
@springrod
Rod Johnson
7 years
Really looking forward to attending and speaking at SpringOne Platform next month. See you there! @s1p @springframework @springboot
5
31
83
@springrod
Rod Johnson
6 years
My new favorite error message: (node:47831) TimeoutOverflowWarning: Infinity does not fit into a 32-bit signed integer.
3
27
80
@springrod
Rod Johnson
5 years
I loved getting to reflect on the 18 year history of Spring at Spring One. My talk is up now. @s1p @spring_io @springboot
1
26
79
@springrod
Rod Johnson
6 years
For anyone who's been waiting 20 years for CGI to come back, it's like Arnold Schwarzenegger.
@rauchg
Guillermo Rauch
6 years
. @now /bash is coming ◆ Yes, serverless bash functions ◆ Yes, pay-per-100ms and infinite horizontal scalability ◆ Yes, bash ftw by @tootallnate
Tweet media one
17
119
477
3
22
76
@springrod
Rod Johnson
5 years
We'll be showing best practice checks and autofixes where possible, e.g. "don't use setter injection," "do use Spring Test", don't use XML", "don't hardcode properties" and "keep Spring Boot version up to date". What would your favorite best practice be? @springboot @spring_io
@springrod
Rod Johnson
5 years
Looking forward to SpringOne in Austin next week. Talking about the history of Spring, and excited to show some cool stuff we've been doing at @atomist for @springboot @s1p
2
11
74
19
21
77
@springrod
Rod Johnson
2 months
When Java finally gets interpolation, it may beat that in other languages. Love this example of creating a non-String type: PreparedStatement ps = DB."SELECT * FROM Person p WHERE p.last_name = \{name}"; var rs = ps.executeQuery();
6
10
77
@springrod
Rod Johnson
8 years
Funny how implicits and other magic that apparently simplifies code are often what one wastes time on when returning to a codebase #scala
8
69
74
@springrod
Rod Johnson
6 years
Java also benefits from autoformatting. I created an @atomist autofix to apply spring-format by @phillip_webb to any Java project without needing to change its build file. This is a classic crosscutting concern. @lewisheadden
1
26
74
@springrod
Rod Johnson
7 years
Spring Boot your Slack team for greater productivity and visibility. #springboot #cloudfoundry #slack
0
42
74
@springrod
Rod Johnson
5 years
Looking forward to SpringOne in Austin next week. Talking about the history of Spring, and excited to show some cool stuff we've been doing at @atomist for @springboot @s1p
2
11
74
@springrod
Rod Johnson
6 years
Good API design: Small surface area, layered. Rather than mix levels of abstraction, expose a consistent set of primitives on which a helper layer can build, reducing coupling and encouraging innovation in usage.
2
13
72
@springrod
Rod Johnson
6 years
The astonishing power of code. Use the @atomist API for software to drive #Kubernetes delivery for *all* Maven projects in a team in a few lines of #typescript . Goodbye all those duplicated YAML/Bash pipelines. Plus it's more flexible and easier to evolve
@cdupuis
sındnp uɐıʇsıɹɥɔ
6 years
Ever wanted to program your CI/CD using a concise API and framework instead of hacking YAML and scripts? With an @atomist #sdm you can do exactly that now on your laptop and in the cloud. Example shows @springboot to #Kubernetes build and deploy. -
Tweet media one
0
12
35
1
24
71
@springrod
Rod Johnson
6 years
Microsoft acquiring GitHub isn't cause for developers to worry: It's proof we are calling the shots.
1
34
67
@springrod
Rod Johnson
6 years
@lukaseder @wattersjames @pivotalcf @springboot @springframework There was also an obsession with abstracting from the relational database. Stored procedures were thought evil. I remember writing a 200 line PL/SQL proc that replaced 20K lines of entity beans, ran in 2m vs 20m (req was <5m). And it being rejected as "not approved architecture"
4
15
69
@springrod
Rod Johnson
6 years
Rethinking software delivery using code. New blog on what we've been working on at @atomist : #TypeScript #DevOps
1
26
69
@springrod
Rod Johnson
6 years
Software delivery needs a framework just as much as app dev... As it's hard to find through google, thought I'd tweet the link to my Spring One presentation on Atomist . @atomist @springboot @s1p
0
18
66
@springrod
Rod Johnson
6 years
Congratulations to my friends at @pivotal on a great IPO! Well deserved, and good to see @springframework in good hands. Sorry I missed @cloudfoundry Summit but @atomist was there and I hear my colleagues had great conversations @springboot
2
9
65
@springrod
Rod Johnson
8 years
And now, the first cut of our @atomist generator for @springboot projects: . Scroll down to "Create Project" button
4
48
61
@springrod
Rod Johnson
6 years
Important point. Related to the way in which Silicon Valley people overvalue what *they* care about and undervalue what corporate customers care about
@lukaseder
Lukas Eder
6 years
I really wish more people from "the enterprise" would blog. This entrepreneurial/startup blog bias is giving us a wrong picture of reality
51
152
539
1
18
62
@springrod
Rod Johnson
6 years
Never leave an IDE template to complete methods to return void, null or undefined: Make them throw an exception or error. Will fail fast and explicably and give you free linking to the place you need to fix.
3
18
60
@springrod
Rod Johnson
5 years
@starbuxman @rhatr @chuhnk @wattersjames Focus on real problems. Stronger, more complete vision than competitors--an integrated solution. (Initially, the only project willing to defy the J2EE marketing machine. Now vision for cloud.) Good docs. Great team. Respectful, professional culture.Ability to pay core developers.
3
21
58
@springrod
Rod Johnson
6 years
Spring is bigger than ever, and now plays a key role in an IPO. Just over 15 years of amazing open source work from the Spring team after the initial code drop. Well deserved! @springframework @pivotal
@danprimack
Dan Primack
6 years
Dell spinout Pivotal sets IPO terms
0
3
4
0
13
57
@springrod
Rod Johnson
7 years
“Move Fast and Don’t Break Things”: My blog on Atomist bringing correlated info and actions into Slack #springboot
0
42
58
@springrod
Rod Johnson
6 years
Much more than a sketch. 30,000 lines of code
@ggonchar
Grygoriy Gonchar 🇺🇦
6 years
Did you know that @springframework started as a sketch from the book “J2EE Design and Development”? @springjuergen #GOTOber
Tweet media one
1
17
30
6
20
56
@springrod
Rod Johnson
6 years
@jacek_bilski @springframework @INNOQ Unit tests shouldn't use Spring. Period. Spring's integration testing support is a valuable alternative to a full deployment, but should only be used when you NEED to test real wired services, database interactions etc
3
26
47
@springrod
Rod Johnson
8 years
I really enjoy coding
4
16
54
@springrod
Rod Johnson
6 years
While software is eating the world, developers are eating software. We've barely scratched the surface with #DevOps --we can do much more to apply our engineering & coding skills to our own discipline.
5
20
51
@springrod
Rod Johnson
7 years
How we're using #typescript , #GraphQL and Slack at @atomist to enable development automation: @SlackHQ
0
8
52
@springrod
Rod Johnson
6 years
On NYSE trading floor for @elastic IPO with old friends and comrades in arms @stevenschuurman and @nickw249 . Amazing day. Great team, great technology. Looking forward to even greater things! @kimchy
Tweet media one
4
16
50
@springrod
Rod Johnson
6 years
Code is greater than fear: Why we developers should celebrate Microsoft acquiring GitHub -
2
27
51
@springrod
Rod Johnson
6 years
Current status: deep into TypeScript coding while listening to Nick Cave. Very happy.
3
3
48
@springrod
Rod Johnson
7 years
Looking forward to attending #SpringOne next week. See you at our @atomist happy hour! @springboot
@atomist
Atomist
7 years
Join us at #SpringOne next week! Talk with @springrod @cdupuis and our team at Tuesday happy hour.
Tweet media one
0
6
7
2
8
50
@springrod
Rod Johnson
7 years
#TypeScript & #Kotlin are important languages.I had fun with them making a factory for Spring 5 apps. @springcentral
0
16
48
@springrod
Rod Johnson
6 years
Funny, but also scary. A real Halloween tweet.
@khepin
李赛博 (seb)
6 years
If relational databases were invented today
Tweet media one
101
2K
5K
0
17
48
@springrod
Rod Johnson
5 years
@brunoborges @ThePracticalDev Good question. XML is annoyingly verbose. But it's more robust syntactically and has schema support. In practice, both are/have been greatly overused. Programming badly in YAML is currently out of control.
3
7
47
@springrod
Rod Johnson
8 years
TypeScript is SO much better than JavaScript. Yet compatible. Nice job #TypeScript
4
38
48
@springrod
Rod Johnson
8 years
Always amusing when "Why isn't this working?" becomes "Why did that ever work?" once one starts digging…
0
55
48
@springrod
Rod Johnson
6 years
"this" is such a disaster in JavaScript even #TypeScript can't fix it
2
11
47
@springrod
Rod Johnson
6 years
We think 3 things are key: an event hub vs many pipelines so orgs can express org policy; a rich model spanning code and correlated events around it, like builds and deployments; and a productive API in a full featured programming language, not YAML and Bash
@rseroter
Richard Seroter
6 years
This @monkchips chat with @springrod and @jryanday offers a really helpful perspective on what modern (next gen?) continuous delivery should look like. I really need to play with @atomist .
1
3
22
1
23
47
@springrod
Rod Johnson
5 years
If I were at Hogwarts, CSS would be a branch of magic I'd try to avoid
3
3
44
@springrod
Rod Johnson
6 years
Wow. Just learnt that Harper Lee 'received a gift of a year's wages from friends with a note: "You have one year off from your job to write whatever you please. Merry Christmas"'. The result was "To Kill a Mockingbird". What an amazing and important gift.
1
6
46
@springrod
Rod Johnson
5 years
#DevOps tools need to work per org, not per repo. Having one build pipeline per repo doesn't work in today's world of project proliferation. Pipeline duplication is technical debt, and safely making consistent changes across many projects becomes difficult or impossible.
1
14
46
@springrod
Rod Johnson
8 years
Sometimes a different algorithm or model can help solve a blocking coding problem. Sometimes, loud Bon Jovi can be equally effective.
2
21
41
@springrod
Rod Johnson
6 years
@headius @cra We owe quite a bit to Maven. Although not everyone learnt the lesson.
0
17
44
@springrod
Rod Johnson
6 years
I love this post from @hans_d on "Quantifying the Cost of Builds" - . It's always eye opening to look at where time/cost goes in software delivery. We should do more of that as an industry. #DevOps
1
26
44
@springrod
Rod Johnson
7 years
Just discovered Spring MVC optional path params via Optional<String> and multiple paths. Nice. @springcentral @springboot @springframework
2
14
43
@springrod
Rod Johnson
8 years
New blog about @atomist "executors" and the bigger picture: #chatops , understanding and automation across projects.
0
29
42
@springrod
Rod Johnson
10 years
@h3nk3 : Great summary of the Scala type system http://t.co/ItZ4tkCHIt” - Very readable: Nice job
1
23
42
@springrod
Rod Johnson
6 years
Yes. As developers grow more powerful, key decisions move left. Two of many business proof points: Microsoft's recognition of GitHub's importance; Pivotal using Spring to drive Cloud Foundry. The delivery flow is highly strategic, and fertile ground for innovation
@krishnan
Krish Subramanian
6 years
The next iteration of platform wars will happen on the delivery pipeline #discuss
0
0
5
0
17
42
@springrod
Rod Johnson
7 years
Our new Atomist website is live: Lays out our Development Automation vision, also with overhauled docs. @atomist @typescriptlang
@ddgenome
David Dooling
7 years
Launching 🚀 with new web site and docs: ramp your #development #productivity with ease, focus on coding and let @atomist do the rest!
0
2
2
1
19
40
@springrod
Rod Johnson
7 years
No more copy/paste: A better way to create projects with @atomist and #slack .
0
36
40
@springrod
Rod Johnson
6 years
Automatically deploy Spring Boot applications to Kubernetes without all the YAML and all the duplication. Exciting blog post by @cdupuis shows how Atomist team policies can transform CD @atomist @springboot @kubernetesio #continuousdelivery
0
14
40
@springrod
Rod Johnson
6 years
I know tech people, in particular, can be down on MBAs, but this seems excessive
Tweet media one
0
11
39
@springrod
Rod Johnson
6 years
Had a great meeting and lunch today with my personal and professional friend @emileifrem . Lovely to see him. Huge respect for his leadership at @neo4j since we met in 2010. Great product; great culture; great people. The character of a CEO matters.
1
3
39
@springrod
Rod Johnson
9 years
Wonderful cartoon in Le Monde, drawing on Delacroix's classic "Liberty Leading the People." #JeSuisCharlie http://t.co/wIAZnspHZn
Tweet media one
2
54
36
@springrod
Rod Johnson
6 years
Great insights from Google experience into how to make static analysis useful, including integration into workflow, making warnings actionable, and an extensible platform (Tricorder). It's how such technology is consumed that makes it useful in practice.
0
14
38