> Java is a great language because it's boring [...] Types are assertions we make about the world This is less of a mind-was-changed case and more just controversial, but... Checked Exceptions were a fundamentally good idea. They just needed some syntactic sugar to help redirect certain developers into less self-destructive ways of procrastinating on proper error handling. In brief for non-Java folks: Checked Excepti…
> They just needed some syntactic sugar to help redirect certain developers into less self-destructive ways of procrastinating on proper error handling. Syntactic sugar it needs is an easy way (like ! prefix) to turn it to a runtime exception. Procrastinating on exceptions is usually the correct thing to do in your typical business application - crash the current business transaction, log the error, return error resp…
Software development topics I've changed my mind on
261–270 of 788 posts
Re: Software development topics I've changed my mind on
#262>Frontend development is a nightmare world of Kafkaesque awfulness I no longer enjoy As a backend/systems engineer I recently had to look at a React + Typescript + MobX app from 2019/2020. It is true that that some things, especially the webpack config and Typescript loading, were outdated but the overall design and architecture of the app was still understandable and modern. With some help from ChatGPT it took very…
Re: Software development topics I've changed my mind on
#263Earlier quoted context omitted.
Because you can't capture the evaluation of a function as a value, or write the type of it. E.g. try to write a generic function that takes a list and a callback, and applies the callback to every element of the list. Now what happens if your callback throws a checked exception? It doesn't work and there's no way to make it work, you just have to write another overload of your function and copy/paste your code. Now w…
Make the signature of your generic callback "throws Throwable". It's generic; it should never care about the specific types that the callback can throw. (Except that then you have to decide what your generic function is going to do if the callback throws an exception...)
Of course in general the manual effort to do that in a large code base ends up too hard and so in the real world nobody does that. Still the ideal is good, just the implementation is flawed.
Re: Software development topics I've changed my mind on
#264It felt good to read someone who thinks like me, honestly. Also the observation of "The trouble with functional programming is functional programmers" is absolutely correct . This needs to be said more. Way more. P.S.: You can ask why, and I can answer honestly, without hostility.
> The trouble with functional programming is functional programmers > This needs to be said more. Way more. In other words, why stop with an ad-hominem when you can do an ad-nauseam too.
Why not give that one a read, then come again?
Maybe we can discuss, and we can both learn something from it?
Re: Software development topics I've changed my mind on
#265Re: Software development topics I've changed my mind on
#266Earlier quoted context omitted.
Not really. Obsessing over breaking lines after famous 80 chars in Eclipse was, is and will be idiotic to be polite. Surprisingly large amount of people were obsessed by this long after we got much bigger screens, if that was ever an argument (it wasn't for me). 2 spaces vs 4 spaces or tab. Cases like these were not that rare, even though now it seems better. That's not productive focus of one's (or team's) energy an…
Reporting as an Eclipse user of 20+ years, and a person who cares about the craft: The choice for me is simple: If I'm going to view the code I'm writing in a 80x24 terminal later on, I'll break that lines, and will try really hard to not get closer to 80 chars per line. If that code is only going to be seen in Eclipse and only by me, I won't break that lines. I omitted your other examples for brevity. Having bigger…
When dealing with tabular data, particularly test data, I find most formatting lacking. I want to be able to specify blocks that align on the decimal point. Especially when dealing with lists of dicts. This makes reading test fixtures much more intuitive than default indentation styles.
Has anyone seen a formatter where you can specify a block be formatted in that manner?
[{'a': 3.89, 'b': 10},
{'a': 12.3, 'b': 233}]
instead of [{'a': 3.89,
'b': 10},
{'a': 12.3,
'b': 233}]Re: Software development topics I've changed my mind on
#267> If I think something is easy, that's a sure sign I don't understand it. A lot of people (definitely here) need to understand this.
This was the one that resonated the most with me. As soon as I start to think "Why don't they just . . . ." I know I'm in for an epiphany.
The bane of my life.
Glad I grew out of that eventually.
I completely agree.
Re: Software development topics I've changed my mind on
#268Code maintainability certainly is something to consider that will bite you if you're not thinking about it.
Re: Software development topics I've changed my mind on
#269> Most programming should be done long before a single line of code is written Nah. I (16+ years developer) prefer to iteratively go between coding and designing. It happens way too often that when you're coding, you stumble across something that makes you go "oh f me, that would NEVER work", which forces you to approach a problem entirely differently. Quite often you also have eureka moments with better solutions th…
The statement sounds like something out of a book on the waterfall method of software development.
Re: Software development topics I've changed my mind on
#270> Most won't care about the craft. Cherish the ones that do, meet the rest where they are > (…) > People who stress over code style, linting rules, or other minutia remain insane weirdos to me. Focus on more important things. What you call “stressing over minutiae” others might call “caring for the craft”. Revered artisans are precisely the ones who care for the details. “Stressing” is your value judgement, not neces…
There's another way to look at this: if you consider the school of thought that says that the code is the design, and compilation is the construction process, then stressing over code style is equivalent to stressing over the formatting and conventions of the blueprint (to use a civil engineering metaphor), instead of stressing over load bearing, material costs and utility of the space. I'm fond of saying that anythi…