Live data from Hacker News

Does the software industry learn?

tomrenner.com

91–100 of 102 posts

Re: Does the software industry learn?

#91

Earlier quoted context omitted.

My feeling is that rewriting is used as blunt weapon when the developer lacks the inclination or skill to learn what was written before. I’m been guilty of this.

> lacks the inclination or skill Or the time. When you've been given a hard one-week deadline to produce something, you can commit to writing something that works with a lot more confidence than you can commit to figuring out somebody else's piece of garbage.

Most rewrites I’ve seen are huge system replacing projects that came over budget and often missed requirements. I’m not saying there are no legitimate reasons for rewrites. But when people bring it up, I think you need to ask a lot of questions.

Re: Does the software industry learn?

#92
post #53

Earlier quoted context omitted.

From what I remember of the times, it was the PC that killed COBOL. COBOL was considered a "serious" language, for "serious" business problems running on "serious" hardware that lived in a server room. PC's were not "serious", and lived on people's desks, running Lotus123 and other such trivial tools. Then VB/Delphi/etc came along, and a generation of developers writing "little" applications directly for the desktop…

> Writing an application in VB was several orders of magnitude cheaper Order of magnitude is big deal, can you be more specific, did you mean 2 or 3 orders of magnitude? Or what exactly did you mean. By this logic if writing an app in VB costs 20$ then COBOL equivalent cost 2000$ or 20 000$ ? Ok, 20$ seems a bit too cheap, let's see, if developing VB app cost 400$. So COBOL equivalent would have cost either 40 000$ o…

I worked on the Y2K project for a large infrastructure company in the UK.

I was getting paid £50/hour to write VB code and maintain an Access database for the change control system that the COBOL devs used. They were getting paid around £500/hour, because most of them had been hauled out of retirement, to actually change the COBOL code. There were ~1000 people in the building I was in, around half of them devs, around half of those the COBOL guys. The project lasted ~2 years. So, back of envelope maths: 500x250x40x(52-4)x2=£480,000,000. That was just to pay the COBOL devs to amend the codebase for just the billing system.

So yeah, at least 3 or 4 orders of magnitude, I'd say.

Re: Does the software industry learn?

#93

I think learning is subjective. The NodeJS world is learning a lot about backend development I guess. So, disclaimer, I am new to Typescript-NodeJS and the npm world but have a significant background in the JVM / Spring backend world with Kotlin and Java. I am also too young to be this cynic but I am honestly just baffled. To me the entire NodeJS backend movement seems like they are "Java sucks!" hipsters jumping int…

As someone with a significant background in Node.js and a bit of experience in Java I think Node.js is much better in that respect. Yes, we have things like NestJS, which I refuse to use precisely for the reasons that you point out: it looks like Java Spring and adds a lot of complexity where it is not needed. I am also painfully aware that TS can be abused to write Java-like code but that's on the developer. However…

Maybe the core issue is that you are just not a good programmer.

Re: Does the software industry learn?

#94
post #93

Earlier quoted context omitted.

As someone with a significant background in Node.js and a bit of experience in Java I think Node.js is much better in that respect. Yes, we have things like NestJS, which I refuse to use precisely for the reasons that you point out: it looks like Java Spring and adds a lot of complexity where it is not needed. I am also painfully aware that TS can be abused to write Java-like code but that's on the developer. However…

Maybe the core issue is that you are just not a good programmer.

I’m being paid to believe otherwise. :)

Re: Does the software industry learn?

#95
post #72

Part of me says "of course we learn, look at how many bad practices are at least significantly less common than they were in the olden days". It's quite rare you come across a decently run tech company or team that doesn't use version control, or makes changes live in production without a testing environment, or doesn't use automated tests at all, or doesn't have a deploy process at all beyond 'use FTP'. 10-20 years…

In the 1980s, GIT didn't exist, and CVS was a complicated thing that Unix people used, so I didn't have "proper" version control. I did, however, have a stash of ZIP files of increasing sequence number on floppy disks. In the 1990s, We used FTP to send files to web servers because we didn't have WebDAV or any more secure protocols at the time. We used tables because that is what we had. We had fewer tools than today,…

...but aren't those tools a representation of the additional knowledge that the industry accumulated over time?

Re: Does the software industry learn?

#96
post #75

Earlier quoted context omitted.

> I’m not sure how this meme got started How? Look at multitude of projects and see that most people using the software is not contributing back, with either time, money or anything else. > Why does free software need funding? Free software needs contributions You're saying the same thing, "contributions" is one way of funding projects, "funding" doesn't just mean money, it also means contributing engineering hours,…

‘Free’ literally means that you don’t need to contribute back. If a contribution is required, then it’s not free.

[deleted]

Re: Does the software industry learn?

#97
post #59

Earlier quoted context omitted.

But even if you know what is written, good luck making that PHP 3 website keep up with times. Or that old C library written for old versions of OS/other libs.

Agree, but you are giving a more extreme example. Most rewrites I saw was "wow, this Java code from the old team is a mess, let's rewrite it and, in a couple years, the new devs will think the same about our rewrite."

I think you're onto something there. It's hard to understand code. So maybe the best way to accomplish that is to rewrite it. That way you will have inhouse people who understand and can maintain the software your business is running on. Once those people are gone it's time for the new recruits to rewrite it again. It's a continuing process.

Re: Does the software industry learn?

#99

I think learning is subjective. The NodeJS world is learning a lot about backend development I guess. So, disclaimer, I am new to Typescript-NodeJS and the npm world but have a significant background in the JVM / Spring backend world with Kotlin and Java. I am also too young to be this cynic but I am honestly just baffled. To me the entire NodeJS backend movement seems like they are "Java sucks!" hipsters jumping int…

As someone with a significant background in Node.js and a bit of experience in Java I think Node.js is much better in that respect. Yes, we have things like NestJS, which I refuse to use precisely for the reasons that you point out: it looks like Java Spring and adds a lot of complexity where it is not needed. I am also painfully aware that TS can be abused to write Java-like code but that's on the developer. However…

> My (limited) exposure to Java was quite painful because I had to deal with layers and layer of inheritance and abstractions that at some point made it very difficult to do what I needed to do.

Hey — could you go into more detail about some of the times when inheritance and abstraction in Java were a problem, or when you had to deal with the gorilla issue?

I promise I'm not trying to catch you out or start a language war; as someone who lived in the Java world for a long time, I'm interested in which parts of it people who visited briefly have found annoying or painful to deal with.

Re: Does the software industry learn?

#100
post #99

Earlier quoted context omitted.

As someone with a significant background in Node.js and a bit of experience in Java I think Node.js is much better in that respect. Yes, we have things like NestJS, which I refuse to use precisely for the reasons that you point out: it looks like Java Spring and adds a lot of complexity where it is not needed. I am also painfully aware that TS can be abused to write Java-like code but that's on the developer. However…

> My (limited) exposure to Java was quite painful because I had to deal with layers and layer of inheritance and abstractions that at some point made it very difficult to do what I needed to do. Hey — could you go into more detail about some of the times when inheritance and abstraction in Java were a problem, or when you had to deal with the gorilla issue? I promise I'm not trying to catch you out or start a languag…

It’s not really a language thing. I would never use Java again simply because it is owned by Oracle but I am sure it is possible to use it elegantly. Just that it seems this is not the mainstream way.

So this is going back 5 years or so. We were building an Eclipse plug-in to make an IDE for a scripting language used in our platform, for which we needed to extend another language plugin. I remember there were layers and layers of abstractions, to hook into which I had to do some dirty things. There was a lot of boilerplate that I had to write before I could even start working on what I needed to work on. Logic being scattered across many many classes some with multiple inheritance was not fun.

I also did a similar project in JS for a web-based IDE around the same time and it was just so much simpler to do.

Eclipse itself was not a joy to work with - good idea in principle but so slow and buggy to actually use.

I also got to look at the code of a JS library that some of our Java devs wrote (some sort of RPC plugin framework) and it was simply terrible in exactly the same ways - abstraction abuse.

So basically I get that sometimes this complexity is necessary but it usually isn’t. Like we had a WebUI app built in Java that took nearly a GB of memory to run because it was probably using some framework underneath that was designed for bazillion different use cases all of which were completely irrelevant in this case, but there was no choice to leave them out.

So I really love the simplicity of JS. I particularly love Node.js - it’s really a C++ framework with a JS API but it’s such a joy to use for all network service related things. Add some sensible use of TS (for the type system rather than the additional OO features that pretend it is not JS) and it’s now even better.

Post reply on HN