Live data from Hacker News

Lessons for software developers from 1970s mainframe programming

hpe.com

71–80 of 89 posts

Re: Lessons for software developers from 1970s mainframe programming

#71
post #36
post #26

Earlier quoted context omitted.

cough javascript cough

You can program efficiently in js. Just maybe drop the fat framework that dynamically checks each and every of your assigned variables to update other hidden functions (and maybe the dom) and avoid dragging things through N functions for "encapsulation" reasons and other inefficient OOP principle application. what I want to say is: cough javascript developers cough (for reference: I am a js "fullstack" dev)

It's not that simple. My impression - I'm not very knowledgeable about this - is that JS and others started getting around as fast (in best conditions and a lot of voodoo) as unmanaged C code, but they are still behind in terms of memory footprint. For embedded applications, where you may be forced to count every KB of memory and every CPU cycle, the JITted systems are simply not a good fit right now.

You certainly can write a JavaScript implementation which would work in an embedded environment (just found one: http://www.espruino.com/ - it actually looks pretty nice! I wonder how it compares with Arduino?), but, when coughing JavaScript, it most often means "JavaScript as currently implemented in the four most popular implementations" or similar.

So, while it's true that you can write JS code that's 1000s of times more efficient than some bad JavaScript, it's also true that even the good JS is not going to be fast enough for some domains.

This (among others) is where AOT-compiled, GC-less (or with special implementations of those) come in. And even then, there are applications where even the cheap, mostly-compile-time abstractions of such languages prove to be too clunky and you need to drop down to assembly (bootloaders, demos, parts of OSes or language implementations).

So, while you can write efficient JS code, it's not going to be efficient enough for many cases.

Re: Lessons for software developers from 1970s mainframe programming

#72
post #5
post #2

Unfortunately, the "best practice" of today says it's better to import a 2 Gb library than write a function, given the choice.

Yes, because the primary cost to the company is the cost of developer time, not the download bandwidth cost or the power cost for increased utilization level of the user’s CPU. The craftsman cares they can accomplish the task without needing a large library. The business cares that it can get to market quickly and profitably at minimal cost. “I prefer your competitor because their code was lovingly hand crafted inste…

You say:

> said no customer, ever

and then:

> witness that we all use compilers

Well, strictly speaking, developers are also customers for programming tools' company, and there the tidiness of the code is important. I'm sure there are many other domains where writing your software well is actually encouraged by economic factors :)

Re: Lessons for software developers from 1970s mainframe programming

#73
post #23

Earlier quoted context omitted.

I don't have the ability to downvote, but I can explain why I might have downvoted. The comment is repeating a saying, it's not original. I have heard it a ton of times. It's really an entire category of arguments which can be called "premature optimization". While some optimization is premature, the saying is repeated in a way that is crazy overly-broad. It's based on a false assumption that is only approximately tr…

"This is very untrue for most practical systems in web development." And yet the very first sentence in gp's comment: "software development != web software development" So gp already qualified his statement is not applicable to web development, and then you criticise his comment with a web development example...

[deleted]

Re: Lessons for software developers from 1970s mainframe programming

#74

Earlier quoted context omitted.

I've made just the opposite argument. If you give me three weeks and a few EC2 instances,I can set up an integration environment that runs some automated test and we can cut the amount we spend on QA by x%.

Small tip from an ex-QAer: Don't worry, once the easy cases are automated, they'll have plenty of work to still do. At least the good ones will. They'll start doing more extreme exploratory testing, setting up combinatorial testing, fuzz testing... A good QA analyst is like any other good employee - they always have something else they'd like to test.

We are real QA heavy right now with non FTEs. I'm not saying they don't bring value, but the types of things they are QAing now is both new functionality and regression testing. I can't think of any good reason that regression testing shouldn't be completely automated.

Re: Lessons for software developers from 1970s mainframe programming

#75
Not sure that basing this on experience of "hem hem" university usage of mainframes (and presumably the previous gen at that) is actually that relevant to real world usage at the time.

Even back then it would be impossible for a serious mainframe program to be written and expected to work first time.

Re: Lessons for software developers from 1970s mainframe programming

#76
post #3

Interesting article but the author seems trapped in an antiquated “compute time is more expensive than developer time” mindset. For most startups today the EC2 budget is negligible compared to the dev team budget. If you’re successful enough that the compute cost matters that’s a good thing and you can deal with it then. Optimizing for problems you don’t yet have just keeps you from launching and getting successful e…

software development != web software development. Processing efficiency is still extremely important in the embedded world. Don't think that the embedded market is small, practically every product you buy has s/w in it. When you make for example a million units of a product, every single byte and every cycle counts as there is a large multiplier to take account of. Efficiency counts, just not in the web world.

Sorry it does at large scale you might be optimising for page speed rather than pure cpu but it defiantly does count.

Re: Lessons for software developers from 1970s mainframe programming

#77
post #26
post #21

Earlier quoted context omitted.

> Efficiency counts, just not in the web world. Which regrettably by now even end-users are painfully aware of!

cough javascript cough

cough massive amounts of javascript form multiple sources of which the page only needs 10% *cough"

Re: Lessons for software developers from 1970s mainframe programming

#78

Earlier quoted context omitted.

software development != web software development. Processing efficiency is still extremely important in the embedded world. Don't think that the embedded market is small, practically every product you buy has s/w in it. When you make for example a million units of a product, every single byte and every cycle counts as there is a large multiplier to take account of. Efficiency counts, just not in the web world.

I don't know if it counts as embedded, but about a month ago we bought a new TV (Sony xbr65x900e) and the built in software is unbelievably bad. Our three year old Roku has better software than this thing. I wish Sony sold a non-smart version of this TV because other than the software, it's pretty nice.

I don't use my sonny's smart function just use an xbox to feed it.

Re: Lessons for software developers from 1970s mainframe programming

#79
post #17
post #3

Interesting article but the author seems trapped in an antiquated “compute time is more expensive than developer time” mindset. For most startups today the EC2 budget is negligible compared to the dev team budget. If you’re successful enough that the compute cost matters that’s a good thing and you can deal with it then. Optimizing for problems you don’t yet have just keeps you from launching and getting successful e…

In a non-startup world (established business), imagine if you went to the boss and said "If you give me 3 or 4 weeks for optimization I believe I can cut our Azure bill by 15%, year over year". You'd get his attention pretty quickly.

If your AWS or Asure bill is a problem you need to think about going back to on prem or private cloud.

Re: Lessons for software developers from 1970s mainframe programming

#80

This website fully pegs one CPU core on my laptop (Firefox 57.0.4 on Ubuntu 17.10, with uBlock and Ghostery enabled). Apparently these lessons haven't reached their web design team. Edit: investigating closer, this even happens with JS disabled, and also in Chrome (with less load though).

Doesnt seem to do that on my 5 year old plus lap top with a i5-4200U

I get 5-9% cpu usage with just this site open on edge.

Post reply on HN