News for hackers. Stuff that matters.
Re:Why not program right? by lisper on Friday July 06, 2018 @06:30PM (#17475620)
> One final stakeholder requirement that's always a priority: you have to be able to find qualified developers, and what developers learn is based on popularity and fashion.

But popularity and fashion are not disembodied forces controlled by the whims of the gods. They are the sum total of decisions made by people. We could make different choices, but the belief that this is futile is a self-fulfilling prophecy.

Re:Why not program right? by tchaffee on Saturday July 07, 2018 @12:54PM (#17479329)
How could we make different choices? These choices are rarely made by developers unless it's their own startup. For most IT jobs these kinds of decisions are made by upper management who have to answer to a board of directors, and ultimately to shareholders. No one ever got fired for using Java. (I personally quit C++ and Java many years ago because I thought both were a bit of a mess. Maybe things have improved with Java - I haven't followed it much).

Upper IT management can't just say "we're switching to Haskell because fewer bugs". They have to sell the idea to the folks who will pay for those massive changes which include retraining existing employees. And management does take into consideration how big the hiring pool is. That affects costs. A surge in demand for Haskell programmers would of course create a higher cost for hiring and keeping them.

So they continue to hire Java programmers and students graduating from uni make sure they know Java.

Where is the opportunity for us to make different choices?

Should students refuse jobs in Java? Or without picking on a language, jobs at companies that have the highest software quality standards? That's a lot of idealism and responsibility to ask of someone whose is just hoping they can get a foot in the door and start their career.

Or is there someone else you have in mind that could be making different choices? It does seem like my own personal choice to give up on Java has had zero effect on its popularity.

There is far more at play than the "the belief that this is futile is a self-fulfilling prophecy" although I agree that too is a factor.

I do have hope though. One thing I've seen happen is more and more programmers who were introduced to functional programming at uni and who manage to sneak ideas from that in wherever they can. I think we are slowly moving away from the worst parts of the object oriented paradigm and adopting the easier and better parts of functional programming.

I'm looking forward to see what we end up with. So far, I think the evolution has headed in the right direction and we are getting better and better at this thing we call coding.

Re:Why not program right? by lisper on Saturday July 07, 2018 @01:07PM (#17479384)
> How could we make different choices?

By exercising our free will. By having the courage to stand up and say, "Yeah, I get that we have a huge investment in Perl code, but Perl really sucks so how about we do this new project in Python instead? Or Scheme? Or Common Lisp?" Or, "Yeah, I get that we can get it done faster by doing it in Java, but that will incur a huge amount of technical debt, and also make it so that the really cool kids, the ones who get why Java sucks, won't want to work for us. So how about we make an investment in our future and try Clojure or Scala or Rust instead?" If enough people do that, eventually one of these overtures will get a green light. Whatever organization does that first will eventually accrue a competitive advantage, and that will in the fullness of time change the dynamic.

But it won't happen if no one even tries.

Re:Why not program right? by tchaffee on Saturday July 07, 2018 @08:56PM (#17481571)
> By exercising our free will. By having the courage to stand up and say

Did you miss the part of my comment where I said I gave up Java and C++ for reasons of code quality? That was well over 15 years ago. I am doing my part actually.

I've had the "courage" to talk to management countless times in my career about what I think the best choices would be to improve quality. I don't even think it takes courage. It's just a conversation and attempt to sell an idea. Happens all the time in business.

Do you think my description of the challenges around getting change to happen were more accurate than the parent's "the belief that this is futile is a self-fulfilling prophecy."?

I hardly think my comment claims it's futile when I concluded with being hopeful that change has and is happening.

Re:Why not program right? by lisper on Sunday July 08, 2018 @12:33PM (#17484623)
> Did you miss the part of my comment where I said I gave up Java and C++ for reasons of code quality?

No, but the bulk of your comment sounded pretty defeatist to me:

"These choices are rarely made by developers"

"No one ever got fired for using Java"

"Where is the opportunity for us to make different choices?"

"It does seem like my own personal choice to give up on Java has had zero effect on its popularity."

It's true: a single person's decision to stand up against the system is unlikely to have an effect. But if everyone makes that choice, it will have an effect. And that is more likely to happen if more people stand up and say that you should make that choice rather than whine about they tried and failed.

Re:Why not program right? by tchaffee on Sunday July 08, 2018 @11:57PM (#17487893)
Being realistic about what you are up against is not defeatist. Is there anything I mentioned that's not a realistic assessment? Is it me that's negative, or is it the actual situation? And I also mentioned where I think the promising opportunities are coming from.
Re:Why not program right? by lisper on Monday July 09, 2018 @01:50AM (#17488231)
Realism and defeatism are not mutually exclusive. That's the thing about self-fulfilling prophecies: if you believe in them, then they are actually true.
Re:Why not program right? by tchaffee on Monday July 09, 2018 @10:21AM (#17490343)
You haven't yet answered any of my questions. Since this doesn't seem like a conversation but more like you trying to take my comments in the most ungenerous way possible, I'm going to stop here. But if you want to answer some of my questions and discuss the massive challenges around changing the global dev culture I'll be happy to continue.
Re:Why not program right? by lisper on Monday July 09, 2018 @12:35PM (#17491469)
> You haven't yet answered any of my questions.

That's because you're asking the wrong questions.

"Is there anything I mentioned that's not a realistic assessment? Is it me that's negative, or is it the actual situation?"

Those are the wrong questions. The answers to those questions don't get you any closer to a solution to the problem. They only get you to the conclusion that the situation is hopeless and that you should give up.

OK, you want an answer? It is both you and the situation that is negative. But the reason that the situation is negative is because of people like you who have decided that the situation is negative and that the only reasonable thing to do is to give up. And you know what? You're right. That is the only reasonable thing to do. Which means that the only way to solve the problem is to be a little unreasonable and carry on despite the fact that it makes no sense.

That's why I'm doing things like this:

https://github.com/rongarret/ergolib

Re:Why not program right? by tchaffee on Monday July 09, 2018 @02:15PM (#17492214)
I haven't given up. You've still refused to acknowledge that my very first post talked about where I think the promise is coming from. Universities and young programmers who have learned and embraced functional programming.

If you think you have the right answers to change a globe full of programmers and to make businesses focus more on software quality, then by all means you should go on to prove to the world you are right.

I'll continue to assess the situation realistically and do my thing. I've never once failed to point out to management when I think things are being done poorly. I'm often the new guy on the team who starts measuring and reporting tech debt to management. You're super quick to judge a stranger based on a few comments in a forum.

When I put the concerns of the company first (instead of being idealist and obsessive about quality as the only goal that ever matters) management takes what I say seriously. So when I do speak up about quality they listen. That's my path. Fine that yours is different.

Maybe if you asked more questions and attacked less you'd find that those who you think are your enemies are actually allies and just have a different idea about the best way to improve things.

Re:Why not program right? by lisper on Monday July 09, 2018 @03:08PM (#17492629)
> You've still refused to acknowledge that my very first post talked about where I think the promise is coming from.

So I went back and re-read your first post:

> How could we make different choices? These choices are rarely made by developers unless it's their own startup.

That sounds very negative to me.

> For most IT jobs these kinds of decisions are made by upper management who have to answer to a board of directors, and ultimately to shareholders.

Ditto.

> No one ever got fired for using Java.

Ditto.

> Upper IT management can't just say "we're switching to Haskell because fewer bugs". They have to sell the idea to the folks who will pay for those massive changes which include retraining existing employees. And management does take into consideration how big the hiring pool is. That affects costs. A surge in demand for Haskell programmers would of course create a higher cost for hiring and keeping them.

Ditto ditto ditto.

> So they continue to hire Java programmers and students graduating from uni make sure they know Java.

Ditto.

> Where is the opportunity for us to make different choices? Should students refuse jobs in Java? Or without picking on a language, jobs at companies that have the highest software quality standards? That's a lot of idealism and responsibility to ask of someone whose is just hoping they can get a foot in the door and start their career.

Ditto.

> Or is there someone else you have in mind that could be making different choices? It does seem like my own personal choice to give up on Java has had zero effect on its popularity.

Ditto.

> There is far more at play than the "the belief that this is futile is a self-fulfilling prophecy" although I agree that too is a factor.

Mostly ditto.

And then, after wading through that sea of negativity, we finally get to this:

> I do have hope though.

Very well, I acknowledge that in your first post you talk about where you think the promise is coming from. But do you see how someone might come away with the impression that you were not entirely optimistic about it?

Re:Why not program right? by tchaffee on Monday July 09, 2018 @04:24PM (#17493149)
Yeah, you're being very ungenerous. Just for example, it's not negative to say that startups have the power to make their own language choices.

I've never thought an accurate description of the current environment and the challenges around changing it are a pessimistic view of things. Nor optimistic. Just realistic. I prefer realism. Is that bad?

If you want to see it as negativity, I think that says something more about you than me.

One of the reason I described all of those things AND asked questions is because I was hoping someone would actually come back with some stories about how they have overcome those challenges.

Saying that Java is still the most popular programming language only because people haven't tried enough seems to me to be both inaccurate and dishonest, and does nothing to help change that. Clearly what we've done in the past has changed nothing. Time to look at what we missed and to try something other than "just do it".

If we really do want to use better programming languages and techniques (I'm pretty into TDD myself) then it's very important to understand what management thinks about those ideas and why, and how we might influence the real decision makers. I've tried the wrong way enough times in my career to to understand the right way. Selling an idea to upper management usually has to come with low risk and a guaranteed return on investment.

That's neither optimistic nor pessimistic, neither positive nor negative. It's just the simple truth. Don't kill the messenger.