Live data from Hacker News

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

news.ycombinator.com

291–300 of 364 posts

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

#291
post #261

Earlier quoted context omitted.

I imagine an implementation of this is equivalent to writing code and tests with the same level of detail as one might today. Language features put constraints on the solution, but do not reduce the essential complexity of a problem. Could you elaborate more on what you mean by "could be taken much further"?

I think a language could even more constrain expected behavior so the compiler can catch problems without having to write tests. With tests you have describe the design constraints in two places: the code and the tests. If we could reduce the number of tests and more information into the code it would be a big win. Or a language that can model distributed systems and their interactions. The problem is to still be fle…

Got it, thank you for that explanation. I completely agree that we can eliminate all kinds of erroneous behaviors with better type systems.

> good luck with a legacy microservice architecture in a few years. And it seems to be getting worse.

It is getting worse. The complexity of systems and their dependencies are growing faster than the discipline of seeking to reduce accidental complexity.

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

#293
post #219

A constantly cycling proliferation of different languages, frameworks, libraries, etc. that all do the same things in a different way and are most often mutually incompatible with each other and have entirely different ecosystems with their own comparative advantages but also major pitfalls. This causes tech workers’ investment in skills to get more out of shallow knowledge and trivia than on deeper concepts, creates…

I was thinking about the reasons why this happens, and I see two major factors: 1) Tension between abstraction and optimization. To put it shortly, abstraction is about ignoring the details, optimization is about fine-tuning the details; you can't do both at the same time. Which is why different programming languages make different kinds of compromise. You could make a beautiful language or framework with elegant abs…

For the tension between abstraction and optimization. Red, the language claim to be fullstack, from hardware driver to high level programming for GUI. It can be used for performant system programming as well as high level functional programming and meta programming.

For people interested by this rebol inspired language https://www.red-lang.org/p/about.html?m=1

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

#294
post #55

Development environments. The amount of time and hassle I've seen lost to getting a working development environment up and running is incredible. Every time I talk to someone who's learning to program I tell them: "Setting up your development environment will be a nightmare. I have been doing this for twenty years and it's STILL a nightmare for me every time I do it. You are not alone." Docker is reasonably good here…

That’s what I like about working in a .net shop, it goes like this:

1) install windows 10 2) install visual studio

And I’m good to go. I’ve seen my friends from the uni setting up elaborate arch/vim contraptions and I’m kinda glad I don’t have to.

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

#295
Some conventional wisdom candidates for most importance piece of technical debt across software engineering: complexity, memory unsafety, excess authority, formal methods underutilized

Probably not a candidate for "most" but maybe worth mentioning: pgp

There's also lots of non-technical debt; indeed not even any of the above are purely technical, at the least getting solutions adopted likely requires a lot more than just serious hacking.

Surely there are existing projects, or at least communities, that have formed around taking on what participants thought/think of the most importance piece of technical debt, at least that they were/are equipped to take on; perhaps [non-]reproducible builds, shotgun parsers (langsec)?

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

#297
I think making software human-understandable (and by extension modifiable) is one of the biggest problems for software engineering.

As it stands, both beginners and experts have difficulties understanding exactly what their own programs are doing as well as what programs written by other people are doing. We encode complex algorithms in static, abstract text descriptions that are hard for humans to understand and reason about. We have to imagine the behavior in our heads from these illegible descriptions. The behavior and internal workings of their programs are invisible.

Not to mention that when trying to modify other's programs there is often a huge communication problem, trying to construct a mental model of what the program does is a tedious and often impossible endeavor because of missing context. Just think, how is it even possible to make "write-only code", code that was understood when written but is now completely unintelligible. To me, that should be impossible. Or think about how open source software is open in that its code is available, but closed in terms of being easily understood — there's the formidable cognitive challenge of understanding the program well enough to be able to modify it to one's ends. For most people, this is a significant and unreasonable effort.

What to do about all this? To me, the answer is redesign programming so that it is primarily about communicating behavior to humans. A couple things I've made toward that end:

  * Legible Mathematics, an essay about the UI design of understandable arithmetic: 
http://glench.com/LegibleMathematics/

  * FuzzySet: interactive documentation of a JS library, which has helped fix real bugs:
http://glench.github.io/fuzzyset.js/ui/

  * Flowsheets V2: a prototype programming environment where you see real data as you program instead of imagining it in your head:
https://www.youtube.com/watch?v=y1Ca5czOY7Q

  * REPLugger: a live REPL + debugger designed for getting immediate feedback when working in large programs:
https://www.youtube.com/watch?v=F8p5bj01UWk

  * Marilyn Maloney: an interactive explanation of a program designed so that even children could easily understand how it works:
http://glench.com/MarilynMaloney/

In general, I think it's a neat research direction to redesign many concrete programs by hand in the most understandable way possible (using custom graphics, interactivity, game design mechanics — all the best things we have for helping someone understand things through media), and then use those experiments to work backward toward programming languages/environments.

In the end, programming is essentially only limited by human understanding, so that's the most significant engineering program out there.

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

#298
post #219

A constantly cycling proliferation of different languages, frameworks, libraries, etc. that all do the same things in a different way and are most often mutually incompatible with each other and have entirely different ecosystems with their own comparative advantages but also major pitfalls. This causes tech workers’ investment in skills to get more out of shallow knowledge and trivia than on deeper concepts, creates…

Learning new skills is easy enough, what kills me is the enormous manpower invested in churning working code.

Easily 30% of my company's total engineering effort is just treading water, migrating from a deprecated platform to another one that will be deprecated by the time the migration is complete. Typically because the original team's standard 18-month tenure has elapsed and the new guy was under-leveled at hiring so he needs impact for promotion.

It's a great disservice to our field that people so deep in the stack are so comfortable changing their minds all the time. The Python 2.7 thing feels like the Library of Alexandria. Burning down mountains of perfectly good working code just because we can.

Backwards compatibility is tragically underrated.

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

#299
post #148

Earlier quoted context omitted.

Great to hear :-) Certainly the plan. Just a matter of priorities and time. I'm curious, what's so attractive about self hosted version?

It's a requirement for most of the US DoD (though that's changing). Which is where I work

> (though that's changing)

Though I'm glad for the flexibility it will offer you...that doesn't seem like an awesome idea/trend.

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

#300
post #219

A constantly cycling proliferation of different languages, frameworks, libraries, etc. that all do the same things in a different way and are most often mutually incompatible with each other and have entirely different ecosystems with their own comparative advantages but also major pitfalls. This causes tech workers’ investment in skills to get more out of shallow knowledge and trivia than on deeper concepts, creates…

You don't actually have to invest in these new shiny ecosystems. It's just a choice you made. There are still people making a living on Fortran, C, C++03, Java <5, Angular. All of that still works on modern hardware and will for the next 100 years. You just probably won't be in a coastal place with pool tables and free food.
Post reply on HN