Jira contains discussion and requirements. It can meander for months before the right action is chosen. It can be important to have background, but it replaces the mailing list discussion that led up to the change, it does not replace the commit message.
The commit message is writen in retrospect and is written for someone with the code in front of them to explain why this change was made, and why it was done in this particular way.
If your commit message is too short then than is your problem right there. The easy fix is you taking five seconds out of your busy day to save an hour for you readers.
Have you seen how commit messages are written for git itself, or for the Linux kernel? Let me help you by linking the currently latest commit in the github mirror of git, it is not chosen to be particularly good or bad but is pretty representative of how git developers write commit messages:
https://github.com/git/git/commit/b809304101
As you can see, without knowing much of the specifics of the code, we can get an idea why this change was made the way it was. There is a certain art to writing short and concise commit messages, but the same is true for code itself. Some, but comparably very little, practice is required.
ESG is supposed to be about valuations, long-term. People conventiently tend to forget that when it doesn't suit them. It has been shown over and over again that it is a working predictor of valuation, in which it is not alone of course. Economy students regularly invent such predictors. And the dirty little secret about ESG is that it is probably G that is doing the heavy lifting. Companies without good governance seldom survive the first change of leadership.
No one in the green movement ever spoke about "ESG" as if that was a thing. It is an investor thing. Invented by bank economists, to sell financial products. It's not like your local environmentally concious hippie type figure would suddenly start investing in Shell, just because they improved their ESG score.
Does it work as a predictor for company valuation? It seems so. But it would probably have worked better if you separated E and G, because they have nothing to do with one another. Will it work in the future? No one knows. Once you start gaming these things, all initial bets are off by a lot.
Just don't say "valuation, not ESG". It does not make sense. If you mean "short term valuation, not long term", then just say so.
> In practice, GPL is pro-user, BSD/MIT is pro-business.
Yet every time a GPL licensed product competes against a BSD licensed product in an open market, even when inferior the GPL product wins in the long run.
That's because the GPL ecosystem leapfrogs the BSD one every time one of those pro-business businesses sells proprietary add-ons while the former stands on one another's shoulders.
It's almost like free markets composed of multi vendor ecosystems are business friendly?
(Sarcasm aside, the weasel word here is "business". Customers and vendors are both businesses. Monopolies are very business-friendly for the vendor, just not for anyone else.)
It's a rule that's mostly only true for self-contained products though, it hasn't been true for things like codecs and SSL stacks, and components used by proprietary and free products alike.
Anybody who has ever done programming professionally in the small scale knows this. Refining the requirements is the job.
In fact, I've never known an industry so keen on levelling its own moats as the software industry. We regularly invent things like 4GL, graphical programming and frameworks and engines such as Unity just to enable more people to do programming. People will happily teach programming for free in outreach programs (I am just one example). No other profession does this. Perhaps with the exception of mathematicians and other fields that are very close to programming.
I could teach an economist enough programming in a weeks that they could write an ERP module, but I could not learn enough economics in a week to write one. If the language was the barrier, we could invent a more effective one. We invent new languages weekly anyway. Having seen how quickly beginners can make things with Unity or Godot, I seriously doubt an LLM agent could improve much on this. Of course, if the job is writing yet another CRUD React app with a Java or Python backend, then sure, the LLM will be very effective. But compared to doing same app in something like Excel or MS Access? Not that much.
Everything everywhere does this. All human progress has been making common and accessible the rare and expensive. Universities, online courses, textbooks, etc all exist to make economics as accessible as possible, there’s just a really tight reward loop with programming so your rate of learning it is more tangible
I think you are underestimating how hard it is for average joe to learn programming basics. I remember a fellow in high school that just could not accept that = in programming is assignment not an equation (like in high school math)
I'd like to believe I have an inkling, having done a fair bit of teaching.
Still, imagine how hard other skills are to acquire. How much civil engineering can you learn in two weeks? How much violin playing? But you could absolutely get basic grasps on a general purpose programming language. With something specialized like Unity or Excel you would get tons of useful output.
The hurdle around assignment operator is as old as symbolic languages. That's why legends such as Niklaus Wirth wanted to use another operator, ":=", a notation that is still being used.
Anyway, it can be a hurdle, but one I find that most people get over pretty quickly.
> The hurdle around assignment operator is as old as symbolic languages. That's why legends such as Niklaus Wirth wanted to use another operator, ":=", a notation that is still being used.
Well, sure; but more generally, the ability to accept other meanings for symbols (and keep subtly different symbols straight in one's head) is a mental skill, and individuals vary in their aptitude for it. (Presumably, this one is also relevant to natural language learning, since one must reckon e.g. with false cognates.)
> I remember a fellow in high school that just could not accept that = in programming is assignment not an equation (like in high school math)
The English noun "mist" has a different meaning than the German noun "[der] Mist" (dung, crap). Or the French "[la] infusion" has a different meaning (herbal tea) than the English "infusion" and the German "[die] Infusion".
So, you are very used to the situation that in different languages, terms can have different meaning, so also in, say, C versus mathematics.
not to mention the other english word, "missed", which sounds exactly the same.
However, people really do have a great deal of trouble with this exact concept. Its a common test to give to people to define a function with a misleading name, like multiplyByTwo(int x, int y), and then show them the code inside (return x/y)
and ask what this results in. Surprisingly many non programmers have a great deal of trouble with the idea that the name can be different to the behavior, especially in cases where its subtly different not entirely like this.
Other fields have similar issues, where people have trouble with this sort of abstract thinking, divorcing abstract knowledge about a thing from its appearence. iirc its a stage in child psychology and development, and shows up in teenage years after puberty. Many adult people never develop it fully, and struggle with this to a greater or lesser extent
No, that actually happened. I actually knew pascal used := (I programmed quite a bit of pascal/delphi myself back in the day) but I never knew its inventor ever made a big deal about the assignment operator until I posted this.
But that was just an offnote observation, when I got to college I already knew how to program but MANY of my student peers had A LOT of trouble in the first year grasping the basics. These were not dummy students, they were top ~3% of students in the college entrance exams.
At least 50% of my class didn't understand pointers properly by then end of first year.
>We regularly invent things like 4GL, graphical programming and frameworks and engines such as Unity just to enable more people to do programming.
You're right on the money on this.
Earlier this month I went to visit a company for a complete demo prototype of a full one-to-one train simulator trainer mostly designed and programmed by a former civil engineer using Unity engine. According to the company, they could not do it if Unity engine (or similar) is not around because it will be prohibitively expensive to develop.
In a related news, Unity recently released AI eco-system namely Unity AI Suite [1].
the 1 dimensional thinking that's perverse in the industry will be catastrophic.
we don't like doing the hard things e.g training juniors so they can be skilled seniors via good apprenticeship programs i.e on the job. now we r delegating to stochastic parrots.
in terms of systems thinking which is one skill you need to be a domain expertise - very few people are ever curious & are not willing or able to ask critical questions. hence the groupthink that's prevalent in the industry.
no wonder the quality of software never goes up - while the building blocks have gone up in quality. an analogy is like having super strong bricks but making brittle structures
I use LLMs daily for coding. That said, I agree with your sentiment. Super strong bricks, poorly put together, makes a bad building.
Another analogy I like is a beginner playing a $100k Stratavarius probably can't produce anything near a professional violinist playing a $50 violin.
Personally I use LLMs to level up my systems thinking. I describe the domain, I have it brainstorm some scalable solutions, I look them up, I bring them up to the team, and we discuss, and I implement. It's a great workflow imo.
Earlier today there was a large thread on HN about the golden age of child rearing, from time immemorial to about two decades ago, when children started getting sent home and parents got a stern talking to from the police, just for owning a pocket knife or biking home alone.
We really can't have it both ways, that every failure of the child is blamed on the parent for lapsing in their almost totalitarian oversight, while also idealizing the idea that children must make their own mistakes and gradually growing into responsibilities and self-governance. Except having access to the Internet, apparently.
Taking a step back, this all smells like madeleines and a yearning for the good old days when everyone rode bikes and nobody owned smartphones. That's not really a productive stance on anything.
(If you would ask me, and I'm sure nobody would, I would think that there is a sort of trade-off here but with a clear answer: Make clear restrictions about buying cigarettes, alcohol, abusive content and extreme porn. But these restrictions aren't meant to be technically perfect. It's ok that some kids will learn to lift the limits and explore what is forbidden. At least then they would know that there is some reason society collectively considers these things off-limits, and that they soon will be in a mistake of their own making.)
The commit message is writen in retrospect and is written for someone with the code in front of them to explain why this change was made, and why it was done in this particular way.
If your commit message is too short then than is your problem right there. The easy fix is you taking five seconds out of your busy day to save an hour for you readers.
Have you seen how commit messages are written for git itself, or for the Linux kernel? Let me help you by linking the currently latest commit in the github mirror of git, it is not chosen to be particularly good or bad but is pretty representative of how git developers write commit messages: https://github.com/git/git/commit/b809304101
As you can see, without knowing much of the specifics of the code, we can get an idea why this change was made the way it was. There is a certain art to writing short and concise commit messages, but the same is true for code itself. Some, but comparably very little, practice is required.
reply