News for hackers. Stuff that matters.
Re:Ask HN: What is the Holy Grail for Software Engineering? by jashkenas on Friday December 03, 2010 @08:13PM (#1968059)
Holy grail, eh? Well, if you really want to swing for the fences...

* Programming a computer in plain English.

* Teaching a machine to compose (real) music, or draw (real) art.

* Simulating a brain -- or, even better, emulating one.

* A programming language that makes it possible to write code that's worthy of being read as literature.

Re:Ask HN: What is the Holy Grail for Software Engineering? by redthrowaway on Friday December 03, 2010 @08:59PM (#1968180)
While I agree those are worthy goals, the middle two are CS, not SENG. Real AI is probably the loftiest goal in CS, but it requires a lot more theory work before anyone will be able to implement it.
Re:Ask HN: What is the Holy Grail for Software Engineering? by aaronblohowiak on Friday December 03, 2010 @08:50PM (#1968154)
Minimizing the cost of producing secure, reliable, efficient systems that fulfill business objectives and are inexpensive to modify (where modifications preserve reliability and performance.) Included in the cost must be the risk of finding engineers to provide maintenance and changes.
Re:Ask HN: What is the Holy Grail for Software Engineering? by ctkrohn on Friday December 03, 2010 @08:27PM (#1968100)
Building software like we build bridges.

There are a lot of things wrong with this analogy, but I think it still encapsulates a nice ideal. We'd like to get it right the first time, and make it last with minimal maintenance.

(This is for software engineering, not computer science)

Re:Ask HN: What is the Holy Grail for Software Engineering? by aaronblohowiak on Friday December 03, 2010 @08:44PM (#1968136)
Physical construction envy is naive.

Many bridge-building projects go over time and over budget.

Most bridges have a feature list fixed years before construction is begun.

Bridges are static. Even draw-bridges do not adapt to their environment automatically, but require human intervention.

There is a categorical error when you try to apply construction practices of static things to the construction practices of dynamic things, hence the failure of waterfall. Note that the original papers that introduced waterfall actually suggest a system that more closely resembles iterative development than BUFD.

Re:Ask HN: What is the Holy Grail for Software Engineering? by regularfry on Saturday December 04, 2010 @06:55AM (#1969070)
If we found a way to make BDUF work reliably, it would transform the industry overnight, and turn software development into a recognisable engineering discipline. The fact that we haven't yet, and that one particular approach failed, doesn't mean that it isn't possible. Nor does it mean we should stop trying.

Iterative development is an interesting stop-gap, but it's certainly not the be-all and end-all we should be looking for.

Re:Ask HN: What is the Holy Grail for Software Engineering? by evanrmurphy on Friday December 03, 2010 @08:44PM (#1968138)
> There are a lot of things wrong with this analogy

I think so. As a rule, when something can be developed incrementally rather than planned and engineered, it should be. This makes mistakes less expensive, allowing you arrive at a satisfactory end result in a fraction of the time.

This is one of the huge advantages of the web over desktop software. Initial delivery to the desktop and subsequent updates cost significant time and headache. Redeploying to the server is just a matter of running a script.

Re:Ask HN: What is the Holy Grail for Software Engineering? by aaronblohowiak on Friday December 03, 2010 @08:55PM (#1968170)
"This is one of the huge advantages of the web over desktop software. Initial delivery to the desktop and subsequent updates cost significant time and headache. Redeploying to a server is just a matter of running a script."

This raises a good point about reuse. You wouldn't try to re-use the same bridge across a different span without modifications, but we require our software to run in different contexts (be it different web browsers, operating systems, versions of the language, et cetera.)

Re:Ask HN: What is the Holy Grail for Software Engineering? by regularfry on Saturday December 04, 2010 @07:07AM (#1969085)
Re:Ask HN: What is the Holy Grail for Software Engineering? by bmj on Friday December 03, 2010 @08:45PM (#1968143)
I think the bridge analogy can work a different, equally effective way: we can build software based on well-established and tested engineering principles, with tools and materials that have a known, verifiable set of behaviors.

I'm not a materials/mechanical engineer, but it seems that engineers can build bridges properly the first time (most of the time, right?) because they are working against a set of well understood, well tested physical laws (for lack of a better word). Even I write the perfect, say, shopping cart application, that bit of software still relies on programming frameworks, web servers, operating systems, and hardware systems that have known issues.

Re:Ask HN: What is the Holy Grail for Software Engineering? by 27182818284 on Saturday December 04, 2010 @12:24AM (#1968583)
If bridges were like software, as soon as a drunk driver ran through a bridge's guard rail the designes would have to follow up with a post that started, "We had some downtime from an accident, here is what we're going to do about it..."
Re:Ask HN: What is the Holy Grail for Software Engineering? by balakk on Friday December 03, 2010 @08:24PM (#1968090)
Enterprise software perspective - IT managed directly by business users. In that, the system can accept natural language descriptions of business logic, resolve ambiguity, and can self-modify, maintain, and heal itself. In other words, a virtual software architect.
Re:Ask HN: What is the Holy Grail for Software Engineering? by d0mine on Friday December 03, 2010 @11:02PM (#1968454)
Such system would be necessarily self-conscious with all severe problems it implies and human reproduction already produces such systems.
Re:Ask HN: What is the Holy Grail for Software Engineering? by alt on Friday December 03, 2010 @08:10PM (#1968048)
The Holy Grail of software engineering — the one true approach to building software systems that can be applied, universally, to any and all software projects.

http://www.cse.unsw.edu.au/~se4921/PDF/CACM/p15-glass.pdf

Re:Ask HN: What is the Holy Grail for Software Engineering? by daniel-cussen on Friday December 03, 2010 @08:27PM (#1968097)
There's really three problems I can think of, in decreasing order of difficulty:

1) writing an AI,

2) proving P=/=NP, and

3) founding a 200-billion dollar company.

Re:Ask HN: What is the Holy Grail for Software Engineering? by steveklabnik on Friday December 03, 2010 @08:37PM (#1968119)
These are computer science, not software engineering.

Oh, and #3 is neither...

Re:Ask HN: What is the Holy Grail for Software Engineering? by Tycho on Saturday December 04, 2010 @03:19PM (#1970017)
You know that scene in Independence Day when Jeff Goldbloom flies into the mothership and uploads a program to shut it down? That.

No, I don't mean an alien empire running on Mac OS 7.6.5, I mean extreme interoperability so software can rewrite itself to work on a different platform (self-porting, in other words).

Having said that, their firewalls were lacking!

Re:Ask HN: What is the Holy Grail for Software Engineering? by trizk on Friday December 03, 2010 @08:15PM (#1968065)
A self programming, learning computing machine.
Re:Ask HN: What is the Holy Grail for Software Engineering? by Tichy on Friday December 03, 2010 @09:06PM (#1968196)
Doing correct time estimates? Finding an engineering methodology that actually works?
Re:Ask HN: What is the Holy Grail for Software Engineering? by tzs on Saturday December 04, 2010 @12:55AM (#1968643)
A lot of the suggestions so far have really been for CS, not software engineering.

For software engineering, how about a practical way to do proofs of correctness for large real-world systems written in mainstream languages?

Re:Ask HN: What is the Holy Grail for Software Engineering? by robsmith on Friday December 03, 2010 @08:39PM (#1968122)
Users that read the manual
Re:Ask HN: What is the Holy Grail for Software Engineering? by gvb on Friday December 03, 2010 @08:10PM (#1968044)
Re:Ask HN: What is the Holy Grail for Software Engineering? by joshes on Friday December 03, 2010 @08:35PM (#1968114)
Let us not conflate computer science with software engineering.
Re:Ask HN: What is the Holy Grail for Software Engineering? by gvb on Friday December 03, 2010 @08:41PM (#1968124)
Ahh, yes, my bad.
Re:Ask HN: What is the Holy Grail for Software Engineering? by johnbender on Friday December 03, 2010 @10:31PM (#1968384)
A model checker that somehow cleverly handles external input and statespace.

Lacking that, haskell's type system :D

Re:Ask HN: What is the Holy Grail for Software Engineering? by evanrmurphy on Friday December 03, 2010 @09:02PM (#1968186)
To make software so extensible that you never have to rewrite it, or so painless to rewrite that you never mind.
Re:Ask HN: What is the Holy Grail for Software Engineering? by invertedlambda on Friday December 03, 2010 @08:11PM (#1968050)
A programming language that does exactly what you want, exactly how you want it, exactly when you need it.
Re:Ask HN: What is the Holy Grail for Software Engineering? by curt on Friday December 03, 2010 @09:14PM (#1968217)
How to talk to women? Couldn't resist.
Re:Ask HN: What is the Holy Grail for Software Engineering? by dheerosaur on Saturday December 04, 2010 @05:40AM (#1968982)
Something that could have answered this question for us.
Re:Ask HN: What is the Holy Grail for Software Engineering? by rnicholson on Saturday December 04, 2010 @04:47AM (#1968938)
"Good, Cheap and Fast" and not being forced to pick two.
Re:Ask HN: What is the Holy Grail for Software Engineering? by joeld42 on Friday December 03, 2010 @08:43PM (#1968132)
A general purpose memory manager that doesn't suck.
Re:Ask HN: What is the Holy Grail for Software Engineering? by RK on Friday December 03, 2010 @09:35PM (#1968262)
Provably secure, stable, error free code.
Re:Ask HN: What is the Holy Grail for Software Engineering? by kingsidharth on Friday December 03, 2010 @09:28PM (#1968243)
It's a Holy Grail. It's a mystery!
Re:Ask HN: What is the Holy Grail for Software Engineering? by jamespitts on Friday December 03, 2010 @08:35PM (#1968116)
Becoming more than human.
Re:Ask HN: What is the Holy Grail for Software Engineering? by binaryfinery on Friday December 03, 2010 @09:05PM (#1968193)
The Singularity.

http://mindstalk.net/vinge/vinge-sing.html

I think Vinge explains it better than Kurzweil.

Re:Ask HN: What is the Holy Grail for Software Engineering? by evanrmurphy on Friday December 03, 2010 @09:15PM (#1968221)
Vinge's "superhuman intelligence" rhetoric bothers me because it suggests that intelligence is a one-dimensional quantity. I don't think this makes sense except in the context of specific domains. For example, a basic calculator has superhuman intelligence when it comes to arithmetic, because it can evaluate arbitrary expressions much faster than a human can and doesn't make mistakes. But it's dumb about everything else.

Update: The child comment by binaryfinery points to where Vinge addresses this. Sorry, I failed to add the disclaimer that I only skimmed the article.

Re:Ask HN: What is the Holy Grail for Software Engineering? by binaryfinery on Friday December 03, 2010 @09:40PM (#1968274)
FTFA: "Let an ultraintelligent machine be defined as a machine that can far surpass all the intellectual activities of any any man however clever"
Re:Ask HN: What is the Holy Grail for Software Engineering? by alnayyir on Friday December 03, 2010 @09:34PM (#1968260)
Here's a real holy grail of software engineering that might actually be attainable without getting Strong AI.

Significant code reuse without using a lot of hacks. I think Lisp and Ruby made great strides towards this, but I don't think we're quite there yet.

Re:Ask HN: What is the Holy Grail for Software Engineering? by jpr on Saturday December 04, 2010 @06:29AM (#1969046)
KISS