Fork me on GitHub

@mccraigmccraig yes it... not the thing that comes after winter... or the thing where water comes out of the ground, or the thing that is in a car to make the ride more comfortable, or something else that the word spring might mean...

Rachel Westmacott08:11:37

Afaict Spring Boot takes most of its inspiration from the (IMHO superior) Dropwizard.


good fine morning everyone!


I have never used Spring... so no idea even what it does and why I need one.


i found dropwizard rather poor, when compared to similarly placed offerings from other languages


the tutorial begins with making you create a multi-module POM project with 3 sub-projects, and never explains why

Rachel Westmacott09:11:17

I must have skipped that tutorial, that sounds weird.

Rachel Westmacott09:11:05

what I liked was the approach of being a collection of well-regarded libraries and some optional glue code, rather than a framework

Rachel Westmacott09:11:04

once your code gets lost deep in the spring framework it becomes like ransomware

Rachel Westmacott09:11:20

its expensive to get your code back, but you might have to try it anyway


I remember some of the defaults and choices being annoying to my preferred approaches


nothing earth shattering, but enough to create some friction


eg. by default the jackson deserialisation on incoming requests would explode on unknown keys - which made evolving APIs a pain


or trying to do 12-factor style environment variable overrides for config while keeping defaults in the yaml was weirdly difficult

Rachel Westmacott09:11:27

I think generally the java community has been a little behind the curve on 12-factor - but I could be wrong about that, its a big community.


it’s the nicest java web service framework i’ve used, but didn’t feel close to something like compojure


or express, or sinatra


But then again, I hadn’t done any java for a while at that point, so that was probably a factor


Yeah - dropwizard was the nicest stable java framework around, when I used it. As far as I can tell almost all strongly-typed language frameworks don’t follow Postel’s law - they just love deserialising incoming requests into objects, and throwing an error when the request has extra parameters.


presumably in languages with modern types it’s easy to say “this object should have these keys, but I don’t care if it has extra keys I’m never going to use”?

Rachel Westmacott09:11:02

I never knew it had a name (Postel’s law)


Wikipedia suggests “robustness principal” but I prefer names that make me sound authoritative 🙂


it’s not too hard to do it in jackson, i was just annoyed that it wasn’t the default, and the setting was buried in the docs


purescript has row polymorphism that lets you have records with the keys of the type and any other keys