Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Intuitive Bug-less Software?

michael posted more than 10 years ago | from the dream-on dept.

Programming 558

Starlover writes "In the latest java.sun.com feature at Sun's Java site, Victoria Livschitz takes on some ideas of Jaron Lanier on how to make software less buggy. She makes a couple of interesting points. First, making software more 'intuitive' for developers will reduce bugs. Second, software should more closely simulate the real world, so we should be expanding the pure object-oriented paradigm to allow for a richer set of basic abstractions -- like processes and conditions. The simple division of structures into hierarchies and collections in software too simple for our needs according to Livschitz. She offers a set of ideas explaining how to get 'there' from here. Comments?"

cancel ×

558 comments

Sorry! There are no comments related to the filter you selected.

Here's an idea (-1)

NaCh0 (6124) | more than 10 years ago | (#8272371)

Open source the Java SDK.

Re:Here's an idea (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272380)

Open Sauce. What is it all about... is it good, or is it whack?

Re:Here's an idea (-1)

(TK)Max (668795) | more than 10 years ago | (#8272392)

Whack.

Re:Here's an idea (0, Offtopic)

Professr3 (670356) | more than 10 years ago | (#8272509)

Ouch.

Re:Here's an idea (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272659)

WHO THE FUCK ARE YOU?

And why are you burning your karma by making an offtopic comment?

Re:Here's an idea (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8272447)

Wanna sell me your 4-digit account? I bet I can get back to excellent karma in a week or so.

What you need for bugless code (2, Funny)

Anonymous Coward | more than 10 years ago | (#8272378)

Is bug spray.

Mock funeral for M.J. (-1, Offtopic)

paranoid_stoner (752268) | more than 10 years ago | (#8272710)

Let's show the michael jackson how much the world hates him by putting together a mock funeral for him!! Where will the money come from- the concerned celebrities and media personalities that have the spare change(someone should write howard stern) The money will go toward the camera crew, the chapel/casket/motorcade, and ultimately the plot of land with a headstone. Please mod this up- don't waste your points modding me down.

how abou (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272386)

dont purposefukky add bugs

I found it to be interesting (2, Insightful)

MysteriousMystery (708469) | more than 10 years ago | (#8272387)

I found it to be fairly interesting but is it just me or were there a few too many shameless plugs for Java in her "interview"?

Re:I found it to be interesting (1)

MysteriousMystery (708469) | more than 10 years ago | (#8272411)

And yes I do realize it was written in the Java developers section. But it is very possible to improve the development of large projects using existing languages. Which is what the general scope of the interview touched on.

Re:I found it to be interesting (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#8272535)

Apple users are faggots!

Re:I found it to be interesting (-1, Troll)

NanoGator (522640) | more than 10 years ago | (#8272553)

"I found it to be fairly interesting but is it just me or were there a few too many shameless plugs for Java in her "interview"?"

So?

Re:I found it to be interesting (1)

TheSpoom (715771) | more than 10 years ago | (#8272800)

In the latest java.sun.com feature at Sun's Java site...

;^)

Re:I found it to be interesting (4, Funny)

ajs (35943) | more than 10 years ago | (#8272803)

Lots of shameless plugs, yes, but look at what's being advocated:

* More intuitive
* More inclusive
* Pattern recognition vs. "yes/no" type logic

Ah... ok, let's turn those 90 degrees:

* More context-aware
* There's more than one way to do it
* Logic using higher order comparison such as regular expressions and grammars

Hmmm... Perl anyone? ;-)

Perl is universally panned by people who don't use it for being "opaque", and yet that opacity is the result of all three of the above, and CPAN is a monumental testiment to the value of those features in terms of large-scale software engineering.

If your opinion of dollar-signs is so valuable to you that you can't see the value in 4GB of source code sitting at your fingertips, then I direct you to the nearest Java tutorial....

Three-choice system of logic (0)

Anonymous Coward | more than 10 years ago | (#8272388)

There needs to be a logical system based on 3 possible answers for every question, rather than the YES/NO or 0/1 system we use no.

Maybe -1/0/1 or Maybe/Yes/No, something along those lines perhaps would help computers to mimic the brain a bit more.

Re:Three-choice system of logic (2, Insightful)

PD (9577) | more than 10 years ago | (#8272448)

Better yet, let's move to a system of logic where there is one state for each possible answer. This woman is asking if we're fundamentally making improper assumptions about programming, and that's why we're making crap programs. My proposed machine would fix that, because it has an output state for every possible answer. All that would be required is to select the desired output answer, then map it back to the input state. Bingo! We've now got the right question to ask.

(Or in other non-silly words, adding more states to a computer logical system doesn't make it more useful).

Re:Three-choice system of logic (0)

Anonymous Coward | more than 10 years ago | (#8272547)

Is this in development? Because it sounds a lot faster than what we're using.

I'll take three.

Re:Three-choice system of logic (4, Funny)

telstar (236404) | more than 10 years ago | (#8272583)

"All that would be required is to select the desired output answer, then map it back to the input state. Bingo! We've now got the right question to ask."
  • Who knew Alex Trebek read Slashdot?

Re:Three-choice system of logic (1)

ivern76 (665227) | more than 10 years ago | (#8272466)

Overly simplistic. Google for "fuzzy logic" and "open world assumption", this has been the focus of massive research for decades and has honestly not gotten us that far.

Re:Three-choice system of logic (4, Informative)

GeckoX (259575) | more than 10 years ago | (#8272500)

It is called ternary computing, as opposed to binary computing.

There is a ton of information out there on this, and this is in no way a new idea. (Google it, lotsa reading for ya)

Currently, the only way to utilize this is to process ternary logic in software, as at this point there is no ternary circuitry in general use.
For this to actually be useful we would need a platform that can execute ternary code natively.
Lots of work has been done in this area too (not only with ternary, but with multi-state transistors with more than 3 states as well)

For those of us not at the bleeding edge of research in these areas though, we'll just have to wait until there is hardware to support this kind of thing, and then likely some tools to start with.

Re:Three-choice system of logic (1)

nacturation (646836) | more than 10 years ago | (#8272593)

For this to actually be useful we would need a platform that can execute ternary code natively.

All you really need is a simulator. This is easily done with any sort of Virtual Machine which is able to run a ternary instruction set.

Re:Three-choice system of logic (4, Informative)

Sique (173459) | more than 10 years ago | (#8272599)

The main problem with ternary computing is that it can be directly mapped onto binary computing. So it doesn't change the set of problems we can attack with computing, it just changes the way. But the conversation between binary and ternary logic can be done automatically.

I know of no class of problems in computer science that can be better addressed by ternary computing than by binary computing. There may be some of them out there. But in general ternary computing doesn't change enough to have an impact.

Re:Three-choice system of logic (0)

Anonymous Coward | more than 10 years ago | (#8272799)

In GIS, the concept of fuzzy tolerance for deciding whether lines/arcs on a map cross or not is based on a form of ternary logic.

As this is one of the fundamental problems in representing spatial data in a computer.

This isn't new, by the way: these solutions are DECADES old.

Test for NULL pointers (1, Insightful)

Anonymous Coward | more than 10 years ago | (#8272390)

Any other good ideas?

fuck valentines day... (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8272391)

fuck love.. fuck life for that matter..

wtf is a livshits? (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8272396)

livshits?

XBox rules!! (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272400)

first post!!! you lame assholes... I can post first because my XBox is a american product and my pride in my great country and my great XBox accelerate everything...

If only they would make games for that bitch... IAve played Metroid Prime and it ruled... I hope M$ will buy those japanese bastards and port Metroid to my great american console system!!!

Join the fun!!! [slashdot.org]

Re:XBox rules!! (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272488)

shove your eggs boggs, dickhead

What does a chick know about programming? (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272405)

[this comment field intentionally left blank]

I'd rather have... (2, Interesting)

American AC in Paris (230456) | more than 10 years ago | (#8272408)

Frankly, I think the better approach would be to make software developers less buggy. Educate them properly!

So long as you allow developers to do such things as basic arithmetic and variable assignment, you're gonna have to deal with buggy code written by self-recursive sphincter-spelunkers.

Re:I'd rather have... (0)

Kphrak (230261) | more than 10 years ago | (#8272703)

This troll looks hungry and shows no sign of turning to stone, despite the fact that it's daylight. I think I'll feed him.

So long as you allow developers to do such things as basic arithmetic and variable assignment, you're gonna have to deal with buggy code written by self-recursive sphincter-spelunkers.

Of course! If we just made everything drag-and-drop, developers would barely have to know anything at all! You could just make windows that you draw components onto, then the developer just sets the way he wants it to look and pastes in some code from a website.

What?...Microsoft made that?...and it's called Visual Basic? And it sucks because developers who are trained on it never learned how to assign variables, do basic arithmetic, or program things efficiently?

Oh.

Re:I'd rather have... (4, Funny)

pompousjerk (210156) | more than 10 years ago | (#8272709)

Heh heh, yeah, right.

Right now I am in a Computer Science program. I have had the pleasure to see:

  • Students brag about their 400+ line recursive routine that they finally got working
  • Students that hate Linux/BSD/Solaris because "you have to use the command line"
  • Students exclaim, "It compiles!", as if it was a significant milestone in the development of the program (which, to them, I guess it is)
  • Students get confused when '.' is not in their $PATH
  • Professors taking advantage of having '.' in their $PATH
  • Students that love Visual Basic because you can "just drag and drop!"


I don't think the whole proper education thing is going to happen any time soon.

Simple solution (-1)

Muda69 (718162) | more than 10 years ago | (#8272412)

Don't write in that damn-awful C or Java crap. .NET is the only way to bug-free software. Just ask Bill Gates or CmdrTaco.

Bug-less Software? (-1, Redundant)

Anonymous Coward | more than 10 years ago | (#8272414)

There is no such thing. Half the time, the limitation is not the software, but the user. How is it possible to anticipate everything a person will do that will inadventently blow up your application?

Less bugs, fine. Bug-less? Hardly.

Re:Bug-less Software? (5, Insightful)

cubic6 (650758) | more than 10 years ago | (#8272551)

Well, the trick to "anticipating everything a person will do that will inadvertantly blow up your application" is to keep it as simple as possible, specifically by restricting how the user interacts with the app. If the user can only press one of 3 buttons or put a fixed number of characters into a text box, it's not impossible to code for every possibility. In theory, you could build a complex application from lots of very simple (and easy to test and write) parts interacting in a well-defined manner.

In practice, this almost never happens. Most developers are willing to trade perfect code that'll take four months for mostly-perfect code that will be ready for the deadline.

To sum it all up, a properly designed and written program should never choke on user input. If it doesn't, that means you cut corners somewhere. Don't blame it on the user.

Well... (5, Funny)

bobbinFrapples (598252) | more than 10 years ago | (#8272427)

First, making software more 'intuitive' for developers will reduce bugs

Feels right.

Re:Well... (5, Insightful)

RocketScientist (15198) | more than 10 years ago | (#8272600)

Man I hate this.

How many times do we have to have fundamental truths reiterated?

"Premature optimization is the root of all evil"

I'd submit that nearly every bit of non-intuitive code is written because it "should be faster" than the intuitive of equivalent function. Just stop. Write the code the way it needs to be written. Decide if it's fast enough (Not "as fast as it could be" but "Fast enough") and then optimize if necessary.

Here's a better solution: (-1, Offtopic)

paranoid_stoner (752268) | more than 10 years ago | (#8272762)

I have a great idea; lets get a bunch of rich media-personalities to hold a televised mock-funeral for Michael Jackson. The money will go toward the camera crew, the church/coffin/hearses, and ultimately the piece of land in a cooperating cemetary, with a headstone. Mock funerals are a great way to shame and mock faggot molesters like M.J. MOD ME UP.

Bugless != Skillless (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272428)

I wonder how many languages they'll pull outta their arses to avoid gaining some skills, first.

Ah, well.. what do I care.. I'm go(o)d.. ..with titties :)

Objects (5, Insightful)

tsanth (619234) | more than 10 years ago | (#8272431)

I would love to use a C/C++/Java-like language that utilizes pure objects, versus the mish-mashy hybrid typing that exists in most languages that I've used. To me, Livschitz's observation about how programmers work in metaphors, while mathematicians work in pure syntax, is very true: I breeze through all my programming and software engineering classes, but struggle mightily with math courses (save boolean algebra, but I digress).

I, for one, would like software writing to resemble (really resemble) building structures with Legos.

Re:Objects (0)

Anonymous Coward | more than 10 years ago | (#8272474)

Try Smalltalk.

Re:Objects (1)

CFTM (513264) | more than 10 years ago | (#8272506)

I was the same way, but I got so sick of the bullshit math classes and there syntax laiden garbage that I switched to philosophy, now I spend my time studying even more abstract bullshit but at least it's all in metaphors! :)

Re:Objects (1)

mhesseltine (541806) | more than 10 years ago | (#8272635)

My understanding is that Ruby is much like that. Everything is an object. The typing is left to methods inherent in each object.

You might want to give that a try. IANARP,YMMV,HAND

Re:Objects (1)

dnoyeb (547705) | more than 10 years ago | (#8272654)

Of course. Now who builds the Legos?

Often sofware usage resembles building with Legos. When you use a good library you feel this way. MS Visual Basic is strongly this way.

But the design of those pieces can be difficult.

Often people want OO objects to resemble "real world" objects. We take for granted how complicated the physics behind the real world really is.

I found software and math classes to be equally easy. They both require lots of time though.

Re:Objects (0)

Anonymous Coward | more than 10 years ago | (#8272758)

Pure object orientation is a mistaken reductio ad absurdum of a useful tool.

Java is already ridiculous enough - why the heck do you have to create and instantiate an object just to write a simple procedure with no inputs and no outputs?

I'm sure... (4, Insightful)

lukewarmfusion (726141) | more than 10 years ago | (#8272433)

"software should more closely simulate the real world"

Because the real world doesn't have bugs, right? Our company doesn't have project management software yet - but we're working on it. Personally, I don't think it's worth it until we fix the real world project management issues that this software is supposed to help with. Maybe that's not quite the point, but it raised my eyebrows. (Which I'm thinking about shaving off.)

Re:I'm sure... (4, Funny)

Xenographic (557057) | more than 10 years ago | (#8272609)

The real world has software bugs!?

You been experiencing a few too many glitches in the Matrix lately, or something? ;]

Re:I'm sure... (1)

SlashDread (38969) | more than 10 years ago | (#8272617)

Dont be fooled; the goal of pms is to have power, not to make "better projects"

Sometimes that works, sometimes not. Useless it is, I'll give you that.

"/Dread"

Re:I'm sure... (2, Insightful)

Carnildo (712617) | more than 10 years ago | (#8272726)

Because the real world doesn't have bugs, right?

The first rule of programming is to realize that all input is intended to crash your program, so code accordingly.

Jaron Lanier? (3, Insightful)

jjohnson (62583) | more than 10 years ago | (#8272437)

Someone please explain to me why anyone listens to this guy. I've read his essays; they're pedantic and hand-wavey. The term "Virtual Reality pioneer" should be enough to disqualify him from serious discourse.

Somebody, please point me to something significant he's done so I'll know whether or not I should pay attention to him because, from everything I've seen so far, I shouldn't.

Not a good idea... (3, Funny)

Leffe (686621) | more than 10 years ago | (#8272441)

Writing bugless code is not a good idea, in my opinion, think about it: Debugging is the art of removing bugs, therefore programming is the art of adding bugs.

Writing bugless code would throw the universe upside down and could possibly mean the end of the world!

Moderation Guideline: +3 Funny.

Comments? (4, Funny)

jayhawk88 (160512) | more than 10 years ago | (#8272446)

I'd say that with buzz-speak like that, she's going to make some CIO very happy someday.

Actually... (-1, Offtopic)

nphinit (36616) | more than 10 years ago | (#8272449)

In the Soviet Union, bugs add YOU to progams.

Re:Actually... (1)

Sique (173459) | more than 10 years ago | (#8272651)

Interestingly though Victoria Livshits is from the former Soviet Union. What does that tell us about running gags?

Not my problem anymore. (5, Funny)

Anonymous Coward | more than 10 years ago | (#8272450)

This type of stuff is not a problem for me to worry about anymore. It's India's. Direct me to the nearest auto-mechanic school please. It's time to learn how to fix problems that can put money in my pocket.

+1 Sad but true (0)

Anonymous Coward | more than 10 years ago | (#8272490)

+1 Sad but true

Ugh, more abstraction. (5, Insightful)

Telastyn (206146) | more than 10 years ago | (#8272464)

It might be me, but I've seen more bugs created because of assumptions made about abstractions, or because someone was used to a pre-made abstraction and didn't learn how things actually worked.

Want to make better software? How about actually scheduling enough QA time to test it? When development time runs over schedule, push the damned ship date back!

Re:Ugh, more abstraction. (2, Insightful)

Fizzog (600837) | more than 10 years ago | (#8272638)

The problem is that people see some kind of pattern they recognise in the initial requirement and immediately decide there is an abstraction to be made.

An abstraction is a pattern you find in something that exists, not a pattern you decide on for something you are going to do.

Write it to do what it is supposed to do, and then look for abstractions.

Re:Ugh, more abstraction. (5, Insightful)

kvn (64836) | more than 10 years ago | (#8272678)

I agree completely. Whether a developer uses a functional language or an object oriented language doesn't matter. What does matter MORE THAN ANYTHING is understanding the process that the software is supposed to support. If it's hospital management software, you have to know how hospitals are managed. If it's banking software, you have to understand banking.

And testing, testing, testing. Because people aren't perfect. Nor would we want them to be... Too much money to be made in support contracts. :)

Re:Ugh, more abstraction. (2, Insightful)

robbkidd (154298) | more than 10 years ago | (#8272733)

Want to make better software? How about actually scheduling enough QA time to test it? When development time runs over schedule, push the damned ship date back!

And mandate unit testing be integrated with coding.

First step in bugless code: (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#8272465)

Don't use Java.

Visual Basic (-1, Troll)

Manip (656104) | more than 10 years ago | (#8272472)

Does anyone else read this and think she is advising use of VB? :) I would like to add that MS VB is crap, but someone could make a good version (they they wanted).

Functional Programming et al. (5, Interesting)

pc-0x90 (547757) | more than 10 years ago | (#8272495)

She misuses the term functional programming. I'm assuming she meant imperative languages. A lot of the problems could be solved with true functional languages (Haskell, OCaml, etc) but the learning curve is too high. Especially when you can get a team of second rate VB coders for the price of one haskell coder (if you can find one) But really, do you want working code now? Or perfect code in 10 years? That's where the problem is. Time.

Speaking of mistakes... (5, Funny)

pokeyburro (472024) | more than 10 years ago | (#8272616)

...it also seemed like she misstated Java's approach as a "sandbag architecture" as opposed to a "sandbox architecture". I keep trying to visualize programmers writing more and more Java code to stave off the inevitable surge of bugs....

Re:Speaking of mistakes... (1)

Sique (173459) | more than 10 years ago | (#8272681)

It seemed to me that the interview was done on tape and the person who later typed it misheard it, and it slipped through the proofreading.

Test? (5, Insightful)

JohnGrahamCumming (684871) | more than 10 years ago | (#8272501)

I find it enlightening that this article does not include the word "test" once. Rather than spending a lot of time hoping that the purest use of OO technology or some other fancy boondoggle is going to make software better actually writing tests that describe the expected behaviour of the program is a damn fine way to make sure that it actually works.

Picking just one program from my experience, POPFile: intially we had no test suite, it quickly became apparent that the entire project was unmanageable without one and I stopped all development to write from scratch a test suite for 100% of the code (currently stands around 98% code coverage). It's particularly apparent when you don't have all day to spend fixing bugs because the project is "in your spare time" that it's vital to have fully automatic testing. You simply don't have time to waste fixing bugs (of course if you are being paid for it then you do :-)

If you want to be really extreme then write the tests first and then write the program that stops the tests from breaking.

John.

Re:Test? (4, Insightful)

ziggy_travesty (611150) | more than 10 years ago | (#8272687)

I agree. From the disposition of her interview, it seems like testing is beneath her; programs should will themselves to work flawlessly. Just like NASA's reflector tests on the Hubble...right. This is definitely hand-waving. She whines about how modern OO languages aren't intuitive for certain relationships and offers no concrete (or abstract) solution for these shortcomings. The bottom line is: software has bugs because it is complex. Deal with it. It's very hard to write large, qualtiy applications. We need more skilled and better educated engineers, not more language constructs. Launching a space shuttle or writing a weapons targeting system will never be an intuitive process. Also, intuition and simplicity will never be a substitute for testing. What malarkey. -AZ Strengths: whining and moaning Weaknesses: independent thought

Re:Test? (2, Funny)

Cranx (456394) | more than 10 years ago | (#8272697)

I agree everyone should try it. Rather than argue about whether it saves time or wastes time, everyone should start writing unit tests for every project before you begin coding it, give it a couple years, then decide whether it's worth it or not.

The two big reasons software is buggy! (5, Interesting)

irhtfp (581712) | more than 10 years ago | (#8272502)

This is all well and good, but I think there are two primary reasons software continues to be buggy:

The first is the intense pressure to get the product to market. This is especially true for custom code, written specifically for one client. They want it fast and cheap and in order to satisfy this desire, code invariably gets released/installed before it's ready. Then the "month of hell" starts as the client starts complaining about bugs, "bugs" and other problems and we bend over backwards to get it right.

As a ISV, we have no choice but to do it this way. If we don't quote the project with this in mind, the client will hire somebody else with a better "can-do attitude".

The second big reason software is buggy is because all the underlying tools (e.g. code bases, code objects, .dlls, etc.) are buggy as hell. I spend more time working around inherent bugs than I do debugging my own code.

Most programmers are perfectly capable of making their own code solid, given enough time.

Re:The two big reasons software is buggy! (5, Insightful)

FreshFunk510 (526493) | more than 10 years ago | (#8272724)

I like to compare it to civil engineering.

Civil engineering is superior for 2 reasons. 1) Time of QA and 2) Dependability of materials.

In short, look at the time it takes to QA a bridge that is built. Not only is there QA done from design to finish, but real load testing is done. Although software does have serious QA, the time spent QAing civil engineering products is far more as a ratio to time spent actually building.

Dependability. The thing with building things is that you can always take it for granted that the nuts, bolts and wires you use have a certain amount of pressure and force they can handle. Why? Because of the distinct same-ness behind every nut, bolt and wire ever built. One nut is the same as the other nut. All nuts are the same.

In software, not all "nuts" are the same. One persons implementation of a string search can widely vary. Yes, we do have libraries that handle this issue, but there is a higher chance of error in software construction because of the ratio of libraries (third-party) used that are not as robust.

Lastly, one reason why software hasn't been addressed with the same urgency is because of the consequences (or lack of). When a bridge is poorly built, people die. Laws go into affect, companies go out of business, and many people pay the price. When software starts failing, a patch is applied until the next piece of it starts failing when another patch is applied. In the end the software becomes a big piece of patched-up piece of crap.

One advantage, though, of software is that a new version can be released with all the patches in mind and redesigned. :) This certainly has been proved by products like Mozilla that were probably crap when first released but definitely has matured into a solid product (imho).

That is exactly the wrong approach (5, Interesting)

brokeninside (34168) | more than 10 years ago | (#8272511)

To produce bugless software we need to start with software designs that are provably correct and then produce code that is provably in line with the design. Using more objects that more closely model the "real world" is an invitation to producing larger number of bugs as the ambiguity of the real world infects the design and implementation of the program.

Don't expect the Japanese to come up with this (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8272524)

Leave them to things that they understand, like making cartoons about giant robots raping schoolgirls and those weird dancing games

It's all about the language... (1)

Lord Graga (696091) | more than 10 years ago | (#8272536)

I do C on GBA. I usually make some crappy bugs, but I have never ever made a bug when I tried to do ARM ASM (that language just rocks). Wierd... and up for a thought, since the faster you can go on, the faster you will have to face bugs.

sigh (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#8272549)

Women are idiots, and clearly she has no idea what she is talking about.

I program in raw machine code and shit binary (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272565)

For I am a real man

The real world is intuitive? (5, Funny)

richmaine (128733) | more than 10 years ago | (#8272567)

So she wants to make software more intuitive and wants to make it more like the real world.

Perhaps she should make up her mind. :-)

sounds like the perfect politician (4, Interesting)

circletimessquare (444983) | more than 10 years ago | (#8272605)

avoiding the obvious while promising the impossible

this is an exercise in wish-fulfillment, in suspending disbelief

writing software with less bugs by making things more intuitive and less hierarchical?

i mean, that's funny!

we're talking about telling machines what to do, that is what software writing is

writing software is an extremely hierarchical exercise, the art is giving people want they want

Mock funeral for Michael Jackson (-1, Offtopic)

paranoid_stoner (752268) | more than 10 years ago | (#8272615)

I have a great idea; a bunch of celebrities and producers need to pool their money to host a televised mock-funeral for Michael Jackson. The money will go toward the camera crew, the chapel/casket/motorcade, and ultimately the plot of land with a headstone. Mock funerals are a great way to shame and mock disgraced celebrities. Please mod this up so someone in a better position to make this happen will see this post. Thank you.

Orthogonal... (3, Funny)

pottymouth (61296) | more than 10 years ago | (#8272644)



"....especially because I've always thought that the principles of fuzzy logic should be exploited far more widely in software engineering. Still, my quest for the answer to Jaron's question seems to yield ideas orthogonal to his own. "

I fear people that talk like this. It makes me wonder if they go home at night and plug themselves into something.....

Being sandbagged by java? (3, Funny)

The Slashdolt (518657) | more than 10 years ago | (#8272645)

"The constant security-related problems associated with Microsoft's products are due to its fundamental platform architecture. Java technology, in contrast, enjoys exceptional immunity to viruses because of its sandbag architecture."

I think she means sandbox architecture [javaworld.com]

The concept of abstraction (1)

Nakito (702386) | more than 10 years ago | (#8272653)

From the article: So, your basic thesis is that programming constructs should be more intuitive to developers, and more closely simulate and resemble the real world. That would enable developers to write software with fewer bugs, right? Exactly.

But this point is just the application of existing principles. When I began learning C++ and OOP, one of the benefits that I noticed was the level of abstraction that becomes available. Your program becomes less procedural and becomes a closer metaphor to the real-world problem to be solved. This seemed to be a continuation of the trend toward abstraction that becomes apparent from the very beginning as you learn how to program. For example, at the most elementary level, abstraction begins with the simple variable: rather than hard coding specific values, you create a more abstract expression like "rate times distance" which makes your algorithm easy to understand. Then trend continues when you learn how to use functions and subroutines, which become freestanding abstractions for the functions being performed. The trend continues further with objects. As the level of abstraction increases, your program really starts to look like a flow chart of its various components, which maps to its real-world purpose. Isn't that all the author is saying?

vb solved this for me (-1, Troll)

Anonymous Coward | more than 10 years ago | (#8272668)

just put a

try

catch

around everything

i get paid 50,000 a year for that

screw you, indians

...and the wheel turns (5, Funny)

GSVNoFixedAbode (398577) | more than 10 years ago | (#8272670)

"and more closely simulate and resemble the real world". Hey, I know! How about a COmmon Business-Oriented Language? We could call it COBOL perhaps.

MOCK FUNERAL FOR MICHAEL JACKSON (-1, Offtopic)

paranoid_stoner (752268) | more than 10 years ago | (#8272673)

I have a good idea; celebrities and producers need to pool their money to host a televised mock-funeral for Michael Jackson. The cash will go toward the television crew, the funeral expenses, and ultimately a plot of land with a headstone. Mock funerals are a great way to shame and mock molester-faggots like Jackson. There's no point in modding this down, since you'll waste your points when more messages like this pop up. But to those of you that want everybody to hear about this great idea, MOD ME UP.

Intuitive Bug-less Software? (1)

Ih8sG8s (4112) | more than 10 years ago | (#8272679)

In a word: never

Jaron Who? (2, Interesting)

popo (107611) | more than 10 years ago | (#8272685)


No really... does anyone care about Jaron Lanier?

I'd put his contributions to technology right up there with Esther Dyson's.

He's another person who calls himself a "visionary" because the specifics of technological development are far beyond his capacity.

He is, always was, and always will be, a non-player.

Help! (0)

Anonymous Coward | more than 10 years ago | (#8272692)

I are have virii on my linux boxen!

A toolkit to construct a brain (1)

StuWho (748218) | more than 10 years ago | (#8272693)

I found the article interesting - other posters have pointed out that a lot of the ideas are not new, but in this interview they are stated concisely and clearly. The arguement that programming needs to be more intuitive seems like a no-brainer to me, and I was fascinated by the idea that the fault with OO programming is the very simplicity of concept which contributed to its growth.

What fascinates me most is this Easter-European prodigy's ideas on next gen languages. They sound like a toolkit capable of building a software representation of the human brain in all its complexity (and malice!).

What with these languages and nanotechnology, I'm beginning to think there's not much point in me paying pension contributions... We're all doomed.

Workflow/StateMachine (2, Informative)

bigattichouse (527527) | more than 10 years ago | (#8272702)

Most of my apps have been moving to a "State Machine" based workflow.. Each item of work or task sits in front of you, and only gives you the necessary choices to move it along... Once the engine is in place, you end up doing these simple "OK, lets build the code to show them enough info to make a choice".. and the idea translates well to automated processes, just pop the next item from the queue and work on it.

I agree, somewhat (4, Insightful)

Captain Rotundo (165816) | more than 10 years ago | (#8272722)

A lot of the article is common sense. But I have been perturbed by the ease with which a lot of people seen to claim that OO is the end all and be all of everything.

Even on simple project I have sometimes found myself designing to fit into Java's OO and not to fit the problem. Its really a language issue when it comes down to it. I am most comfortable in C, so I start writing a Java app and can feel myself being pulled into squeezing round objects into square holes. You have to then step back and realize whats happening before you go to far. I think this is the main source of "design bugs' from myself either ignoring the strengths of a system (not taking advantage of Java's OO) or trying to squeezing a design that is comfortable without billions of objects into some vast OO system, in effect falling into the weakest parts of a language.

Its probably very similar to the ways people screw up a second spoken language, mis-conjugating verbs and whatnot -using the style they are already most familiar with.

So with that its such ridiculusly common sense to say we need an all incompasing uber-language that is completely intuitive, I jsut would like to see someone do it rather than go on about it.

Why not experiment with added every feature to Java that you feel it lacks to see if you can achieve that? because then you end up with perl :)

Seriously programming languages aren't that way by and large because they have to be designed to fight whatever problems exist that they are created to take care of. It a bit foolish to say we need a language that is perfect for everything, instead you look at what your problems are and develope a language to fight those. Invariably you end up with failings in other areas and the incremental process continues.

Grammer checker bug (1)

Erick the Red (684990) | more than 10 years ago | (#8272729)

The simple division of structures into hierarchies and collections in software too simple for our needs according to Livschitz.

It looks like there's some bugs in the grammer checker michael uses.

What? Why are you laughing?

It's in the implementation (3, Interesting)

mysterious_mark (577643) | more than 10 years ago | (#8272731)

I think the current tools exist to produce code that is way less buggy. For instance much of the industrial code I have seen written in Java poorly uses the OO capabilities of Java, and this in itself causes more bugs and maintainability problems. It seems fairly rare that the existent OO languages and tools are well used at least at the application developer level. So I think the problem is really more with the abililty of developers to use proper and well implemented OO methodology. It also seems as though the design process is flawed in that class designs etc., are often done with a priori with insufficient in depth understanding of the process that is being modelled, this is usually because management insist upon having an immutable design before development starts and often before the problem and proceeses the code is being written for is sufficiently understood. Bottom line is you can hand anyone a scapel, but it doesn't make them a surgeon. Skilled developers with a good understanding of the underlying process they are coding for will produce better qualilty and maintainable code. Because it is developer skill that is the issue, not tools the current race-to-the bottom to off shore all devepment to the lowest bidder and lowest developer skill will inherently produce less maintainable, buggier code. The solution to less buggy code is to use skilled programmers wha really understand and can use the available OO techniques (ie NOT offshore, NOT H1-B etc.). I think it also helps if the developers have some understanding of the field for which they code ie medical, financial etc. When you go with the lowest bidder, you get what you pay for /rant) MM

fluff (5, Insightful)

plopez (54068) | more than 10 years ago | (#8272743)

Well.. some interesting ideas in there mainly flawed.

1) The concept that software should 'feel' right to the developer. First of all this cannot be formalized in any sense of the word. Secondly even if it could be it is focused on the wrong target, it should feel right to the end user/problem domain experts. More about this in point 2.

2) Software tools should model the real world. Well.. duh. Any time you build software you are modeling a small part of the real world. THe next question is: what part of the real world. The reason that OOP has not progressed farther is that the real world is so complex that you can only build some generic general purpose tools and then have a programmer use those tools to solve a particular subset. So the programmer must first know what the problem domain is and what the tool set is capable of.

3) Programmers should be average. Absolutely not. In order to model the real world a good programmer must be able to retrain in an entire new problem domain in a few months. This is what is missing in may cases, most people do not have that level of flexibility, motivation or intelligence and it is difficult to measure or train this skill.

4) Programmers shouldn't have to know math. Wrong again. Programming IS math. And with out a basic understanding of math a programmer really does not understand what is going on. This is like saying engineers shouldn't need to know physics.

5) The term 'bug' is used very loosely. There are at least 3 levels of bugs out there:
a) Requirements/conceptual bugs. If the requirements are wrong based on misunderstanding you can write great software that is still crap because it does not solve the correct problem. This can only be solved by being a problem domain expert, or relying heavily on experts (a good programmer is humble and realize that this reliance must exist).

b) Design flaws. Such as using the wrong search, bad interface, poor secuirty models. This is where education and experience come in.

c) Implementation bugs, such as fence post errors and referencing null pointer. THis can be largely automated. Jave, Perl and .Net ae eliminating may of those issues.

In short, a bad simplistic article which will probably cause more harm than good.

Would much stronger data types help? (3, Interesting)

farnz (625056) | more than 10 years ago | (#8272752)

I noticed that she touched on strong typing as an aid to avoiding bugs; would a really strong type system help avoid bugs, or would it just introduce bugs into people's data types?

I ask because I'm currently looking into dependent type systems, which aren't currently practical. However, their claim to fame is that the type system is much more expressive; it is possible to define types like "date" or "mp3" in them, and ensure that wrong data cannot be supplied to functions. As I play though, I get the feeling that if the type system is too powerful, people will just create bugs in types, and we'll not improve by as much as we could do.

expanding the pure object-oriented paradigm (3, Insightful)

Anonymous Coward | more than 10 years ago | (#8272763)

expanding the pure object-oriented paradigm

1. WTF does that mean? It's all just buzzwords. Woohoo. Another buzzword engineer. Just what the world needs.

2. Making programmers program in an OO paradigm doesn't stop bugs. So why should "expanding the pure object-oriented paradigm" do anything productive?

The Perfect Solution! (0)

Anonymous Coward | more than 10 years ago | (#8272792)

The only way to get rid of buggy software is to get rid of imperfect hu-mans!

Torpor also lifts things if asked nicely!

how to create bug-less software (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#8272802)

Let us show michael jackson how much the planet hates him by wrangling up a mock funeral for him!concerned celebrities and media personalities that have spare change(someone should write howard stern)-- The money would go toward the camera crew, the chapel/coffin/motorcade, and ultimately the plot of land with a headstone. Please mod this up- don't waste your points modding me down.

But is the real world intuitive? (5, Insightful)

G4from128k (686170) | more than 10 years ago | (#8272806)

Having watched many people struggle with physics, chemistry, and biology courses, I'm not sure that the real world is all that inituitive. Even in the non-scientific informal world, many people have incorrect intuitive models for how things work. For example, many people think that increasing the setting on the thermostat will make the room warm up faster (vs. warming at a constant rate, but reaching a higher temperature eventually). And my wife still thinks that turning off the TV will disrupt the functioning of the VCR.

Another problem is that the real world is both analog and approximate, while the digital world calls for hard-edged distinctions. In the real world, close-enough is good enough for many physical activities (driving inside the white lines, parking near a destination, cooking food long enough). In contrast, if I am moving or removing files from a file system, I need an algorithm that clearly distinguishes between those in the selection set and those outside it.

I like the idea of intuitive programming, but suspect that computers are grounded in logic and that logic is not an intuitive concept.

I was impressed... (1)

calebtucker (691882) | more than 10 years ago | (#8272808)

"I envision a programming language that is a notch richer then OO"

I was enjoying the article up to this point, but then I lost total respect for her.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?