Live data from Hacker News

Ask HN: What is the single top-priority software engineering problem?

news.ycombinator.com

341–350 of 364 posts

Re: Ask HN: What is the single top-priority software engineering problem?

#341
post #270

Replace POSIX shell with something reasonable. Anyone trying to bring in a feature or name "because history" is temporarily banned from the working group. Other than that I've no idea how it should be done or what will emerge, but I would hope for it to include words like "exception handling", "test framework", "API", "concurrency" and "asynchronous stream processing" non-ironically.

https://github.com/powershell/powershell

PowerShell was on my mind when writing it, because it's the closest thing I've seen to this. But the .NET framework is also full of clunk, and I'm sure we could do even better on UX.

Re: Ask HN: What is the single top-priority software engineering problem?

#342
post #301

Earlier quoted context omitted.

Backwards compatibility causes a lot of evil. I would prefer that breaking changes come with automated tools to migrate. Sometimes bad decisions get made, and we shouldn't have to carry the burden of that forever out of laziness/stubbornness. What ends up happening is the opposite of what you wanted, because after enough backwards compatibility debt adds up, someone starts a fresh competitor that takes over.

> I would prefer that breaking changes come with automated tools to migrate. The hard part of the migration isn't that you can't automate it. The hard part is that you can't automate verifying that it didn't break anything. So you rather stick to what you have. > Sometimes bad decisions get made, and we shouldn't have to carry the burden of that forever out of laziness/stubbornness. Here's the deal, Mr. Developer who…

When code is hard to maintain, extend, or debug we should absolutely refactor it. Even if something is fine but can be expressed better using a feature from the language's new backwards-compatible release, go for it.

The tragedy is mandatory, all-out migration for code that was already high quality, and just happened to be written for an older stack.

Re: Ask HN: What is the single top-priority software engineering problem?

#343
post #304

We need a faster web framework that generates HTML on mobile phones with no JS on the main thread. The web is the "single top-priority" software platform, but it's in big, big trouble. On mobile, users spend less than 7% of their time on the web. https://vimeo.com/364402896 All of the rest of their time is in native apps, where big corporations decide what you are and aren't allowed to do. As a result, the money is g…

> On mobile, users spend less than 7% of their time on the web. https://vimeo.com/364402896 All of the rest of their time is in native apps, where big corporations decide what you are and aren't allowed to do. And the web isn't controlled by big corporations? You literally just linked to a website on the web owned by a big publicly-traded corporation. I am in favor of using the web over apps but mostly because it has…

>A more high-performance, bare metal implementation of the web would most likely give more stuff for websites to fingerprint you with. You want WASM, but WASM makes the web just as bad as apps in that respect. WASM is going to make it impossible to hide ads (because it will be painted without the DOM) or to block tracking or otherwise malicious code (because it will be heavily obfuscated).

This is true, but what's the alternative? That just seems like a necessary trade-off. Native code will always be easier to obfuscate. It seems backwards to think that we should keep things far more inefficient and consume more cycles and electricity and place things behind more layers of indirection and make web use slower for users just so that it's harder to hide malware. This reminds me of the argument that we shouldn't make cryptography too strong because then it could be used by criminals in a way that even intelligence and law enforcement agencies can't pierce.

There's already a ton of tracking going on, and typically already with heavy obfuscation. The obfuscation doesn't seem to make a difference in terms of practical solutions either way, since the detection and blocking is generally based on origins and IP addresses rather than static (or even dynamic) analysis. And a lot of ad blocking does the same, and should still work for WASM.

For cases where the ads are served directly by the origin and are painted without a DOM, more clever mitigations will be needed, but I don't doubt that people will come up with solutions.

So, yes, the cat-and-mouse game is going to become easier for ad/tracking companies and harder for anti-ad/tracking developers, but it's going to be a big challenge for both parties, just like it is now, and the anti-ad/tracking side is still going to have a lot of success.

Re: Ask HN: What is the single top-priority software engineering problem?

#344

My kingdom for a technology that lets me write an app once and run it acceptably on Android, iOS and in the browser. This probably beats everything else listed in this thread in terms of developer hours saved.

Just us out at [Ionic](https://ionicframework.com/) - a complete platform for doing just that. Write a web app using your framework of choice (or none at all!) then deploy as a PWA, iOS, Android, or Electron app.

Re: Ask HN: What is the single top-priority software engineering problem?

#345
Declarative Programming.

Specify a problem statement and let the computer figure out a way to implement it but take this idea and apply it to SaaS Applications. Here's how a domain model looks like, go figure out a database-backed API application implementation for me.

Re: Ask HN: What is the single top-priority software engineering problem?

#346
post #341

Earlier quoted context omitted.

https://github.com/powershell/powershell

PowerShell was on my mind when writing it, because it's the closest thing I've seen to this. But the .NET framework is also full of clunk, and I'm sure we could do even better on UX.

Interesting.

I never liked UX of the PS. I just happen to know it’s there, and to an extent how to use it. IMO, the older .cmd and especially .vbs (https://en.wikipedia.org/wiki/Windows_Script_Host) are better for most use cases of PS.

I like .NET, and I think both language, runtime, and standard library are exceptionally good. Not sure what do you mean in that comment.

Re: Ask HN: What is the single top-priority software engineering problem?

#347
post #179

We need a faster web framework that generates HTML on mobile phones with no JS on the main thread. The web is the "single top-priority" software platform, but it's in big, big trouble. On mobile, users spend less than 7% of their time on the web. https://vimeo.com/364402896 All of the rest of their time is in native apps, where big corporations decide what you are and aren't allowed to do. As a result, the money is g…

There already exist such a framework. I like to call it "vanilla". eg. no frameworks, and due to the stability and backwards compatibility of the web platform, doing a "vanilla" web app doesn't just give you 10x performance, it will also be much easier to maintain. The trick to doing a vanilla web app is to not write any XML (eg. ban innerHTML and Jquery). And not storing state in the DOM. You can use Websockets for…

I am curious about your approach as I also write my web app in vanilla JS. Where do you store the state or save the data? For me, I use either localstorage for simple update or network fetch for every thing else. For data format, I use Json all the way, rather than handling others,eg FormData, key/value.

Re: Ask HN: What is the single top-priority software engineering problem?

#348
post #283
post #276

Earlier quoted context omitted.

Here's my take on it from a few months ago: ---- ... Claim: Most sites are mostly static content. For example, AirBNB or Grubhub. Those sites could be way faster than they are now if they were architected differently. Only when you check out do you need anything resembling an “app”. The browsing and searching is better done with a “document” model IMO. Ditto for YouTube... I think it used to be more a document model,…

What about when you need an editing interface with an instant preview, though? You would want to reuse the component that renders the static content. So it’s simpler, and leads to happier devs, to treat both as an app from the beginning, and if you need to (for SEO or performance), server-side-render using the same codebase. Is this silly? Absolutely. Is it a global optimum? Possibly.

For this specific example, I would use event listener to sync the content. All done manually in DOM, no shortcut, some codes duplicated. I think that's what SPA frameworks and its components try to promote, single point of update.

Personally, I like the vannila JS approach, a bit tedious, but I know what I will get.

Re: Ask HN: What is the single top-priority software engineering problem?

#349

Earlier quoted context omitted.

> I would prefer that breaking changes come with automated tools to migrate. The hard part of the migration isn't that you can't automate it. The hard part is that you can't automate verifying that it didn't break anything. So you rather stick to what you have. > Sometimes bad decisions get made, and we shouldn't have to carry the burden of that forever out of laziness/stubbornness. Here's the deal, Mr. Developer who…

When code is hard to maintain, extend, or debug we should absolutely refactor it. Even if something is fine but can be expressed better using a feature from the language's new backwards-compatible release, go for it. The tragedy is mandatory, all-out migration for code that was already high quality, and just happened to be written for an older stack.

All code is "hard to maintain, extend and debug" to the person who didn't write it and therefore doesn't like working with it. Developers like to exaggerate this all the time, because they want to maximize their own comfort.

Even if developers were able to objectively asses that code is hard to maintain/extend/debug, that doesn't mean changing it is the right business decision. It may or may not be. From a pure efficiency standpoint, it may well be a net loss. From a developer psychology standpoint, it may be worthwhile.

You also can do a lot of refactoring without breaking a lot of code, especially if you didn't buy into the idea of writing tiny functions and unit tests for every piece of functionality.

Re: Ask HN: What is the single top-priority software engineering problem?

#350

Earlier quoted context omitted.

When code is hard to maintain, extend, or debug we should absolutely refactor it. Even if something is fine but can be expressed better using a feature from the language's new backwards-compatible release, go for it. The tragedy is mandatory, all-out migration for code that was already high quality, and just happened to be written for an older stack.

All code is "hard to maintain, extend and debug" to the person who didn't write it and therefore doesn't like working with it. Developers like to exaggerate this all the time, because they want to maximize their own comfort. Even if developers were able to objectively asses that code is hard to maintain/extend/debug, that doesn't mean changing it is the right business decision. It may or may not be. From a pure effic…

If you’re stuck working with people who think they are the only ones ever to have written good code, I’m sorry. That must be unpleasant. But please don’t take that out on everyone else who merely gives a shit about the quality of their work.

Most of the code I refactor is my own from a few years ago, btw. Usually because I learned new information, past choices turned out to have regrettable unforeseen consequences, etc.

But we have learned to be really careful about public APIs. Implementations may change, interfaces are forever.

Post reply on HN