Slashdot Mirror


A Better Way To Program

mikejuk writes "This video will change the way you think about programming. The argument is clear and impressive — it suggest that we really are building programs with one hand tied behind our backs. Programmers can only understand their code by pretending to be computers and running it in their heads. As this video shows, this is increadibly inefficient and, as we generally have a computer in front of us, why not use it to help us understand the code? The key is probably interactivity. Don't wait for a compile to complete to see what effect your code has on things — if you can see it in real time then programming becomes much easier."

467 comments

  1. Great but... by Anonymous Coward · · Score: 5, Interesting

    Seems like it mostly only applies to GUI programming or programming with results expressed through a GUI. What about, say, kernel programming?

    1. Re:Great but... by viperidaenz · · Score: 5, Funny

      Visualise them kernel then. They didn't have any problems in The Matrix.

    2. Re:Great but... by Apothem · · Score: 1

      Hell, I'd like to see someone design another programming language with a programming language if that is the case. If you've got something as based off of GUI design as this is, why not right?

    3. Re:Great but... by spyked · · Score: 5, Insightful

      That sounds simple but it isn't. While you could theoretically do this from a virtual machine, the difference between visualising” it and testing it on real hardware is significant especially when it comes to device drivers, which are known to be the most common source of bugs in kernels.

      Plus verifying a kernel or a compiler is a pretty hard problem, it's a miracle if you manage to do it in decent time, let alone manage to visualise it in any way.

    4. Re:Great but... by Anonymous Coward · · Score: 1

      Seeing as you watched the entire hour-long video in 5 minutes, I think your question here might be answered by the remainder.

    5. Re:Great but... by blahplusplus · · Score: 4, Informative

      You didn't see the point when he showed how you could find bugs in algorithms as you typed them.

    6. Re:Great but... by Anonymous Coward · · Score: 0

      WOOOSH

      I mean, right over your head at mach 2.

    7. Re:Great but... by Junta · · Score: 5, Insightful

      In the video he covers that as well. Well, at least he conceptually says its covered, I disagree...

      Lets start with his abstract example. His binary search on the surface looks straightforward and he wanted to portray it as magically finding bugs as he got a float in one instance and an infinite loop in another. However the infinite loop example was found because he *knew* what he was doing as he intentionally miswrote it to start with and intentionally changed the inputs in accordance with this knowledge. There are a few more possibilities that you have to *know* to try out. For example, he didn't try a value that was lower than the lowest (would have panned out), he didn't try a value omitted from the list but still higher than the lowest and lower than the highest (which also would have been fine) and he didn't try an unordered list (which is incorrect usage, but accounting for incorrect usage is a fact of life). He didn't try varying dataset sizes (in this algorithm doesn't matter, but he has to *know* that) and different types of data. You still have the fact that 'B' is smaller than 'a' and all sorts of 'non-intuitive' things inherent in the situation.

      Now consider that binary search is a freshman level programming problem and therefore is pretty low in terms of the complexity a developer is going to deal with. Much of software development will deal with far more complicated scenarios than this, and the facility doesn't *really* cover even the binary search complexity.

      I know I may sound more negative than is appropriate, but his enthusiasm and some people's buy-in can be risky. I've seen poor developers suckered in by various 'silver bullets' and produce lower quality code because they think that unit test or other mechanisms passed and they can reast easy. Using these tools is good, but always should be accompanied with some wariness to avoid overconfidence.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    8. Re:Great but... by ghostdoc · · Score: 3, Insightful

      So your point, basically, is that programming is all about knowing what could go wrong with your code?

      Not a bad definition actually...it would certainly explain why coding productivity increases in step with experience; you've made those mistakes already and now know to avoid them.

      --
      Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
    9. Re:Great but... by sjames · · Score: 5, Funny

      What about, say, kernel programming?

      If you enter a syntax error, you get a video of Orville Redenbacher ripping you a new one.

    10. Re:Great but... by Anonymous Coward · · Score: 0

      What he showed seems like it could have promise in a more general sense if it's developed further. What I saw in his demo was basically a live test case that's combined with a time-independent debugger (basically just recorded/replayable...the same concept he talked about in his game example applied to a debugger) to show the state at any given point in the code. We've seen from the success of TDD and debuggers that they are powerful tools that developers have been able to apply almost universally to the problems that we face. The time-independence of his debugger is an interesting twist (which will get really interesting when you start dealing with concurrency, network or any of the many other examples of non-deterministic execution), but everything else is just a designer's take on something that exists and is currently in use.

    11. Re:Great but... by jythie · · Score: 3, Insightful

      That tends to be the problem with a lot of these 'rethink programming' ideas. They tend to come from people who are thinking in very specific domains and believe that their domain is the only one that matters or that its lessons apply everywhere. It gets very frustrating, esp if your domain is one that is not one of the 'hot' fields that everyone is paying attention to.

    12. Re:Great but... by msobkow · · Score: 1

      You mean Smalltalk all over again?

      --
      I do not fail; I succeed at finding out what does not work.
    13. Re:Great but... by msobkow · · Score: 2

      Smalltalk and Erlang both have this neat feature where you can not only load and unload new code on the fly, you can change implementations in mid-execution just like you can with the Eclipse Java debugger at a breakpoint, or with the C# debugger under Microsoft's IDE platform.

      So what exactly is he talking about that's "new"?

      We haven't had to rely on static build-test-debug-fix-repeat cycles for day-to-day programming in at least 5-6 years!

      --
      I do not fail; I succeed at finding out what does not work.
    14. Re:Great but... by marnues · · Score: 1

      The second sentence may be funny, but the first sentence is completely serious. Kernels are an object as any other that performs actions and has state. If a kernel implementation is visualizable maintenance will be difficult.

    15. Re:Great but... by Anonymous Coward · · Score: 0

      That sounds simple
      Really?

    16. Re:Great but... by TheRaven64 · · Score: 1

      It's more true of Smalltalk than Erlang. Erlang still has the edit-compile-load cycle. In Smalltalk, you modify objects on the fly. In a traditional Smalltalk system there's no distinction between source code and compiled code. You modify objects by sending messages to them.

      --
      I am TheRaven on Soylent News
    17. Re:Great but... by Score+Whore · · Score: 1

      We haven't had to rely on static build-test-debug-fix-repeat cycles for day-to-day programming in at least 5-6 years!

      Welcome to the 1980s.

    18. Re:Great but... by Anonymous Coward · · Score: 0

      Linux looks like a woman in a red dress

    19. Re:Great but... by JimboFBX · · Score: 1

      We haven't had to rely on static build-test-debug-fix-repeat cycles for day-to-day programming in at least 5-6 years!

      Who's "we" and why would you be past that? Usually by the time I realize what broke and how it broke, I'm too far in the code to recover anything. Example: I got an exception on line 11 due to a bug on line 8.

      Now what would be kind of cool is to save the program state prior to entering a function and then restarting from that function entry point. Of course that wouldn't work if your function modified an external file or something... Maybe Visual Studio already does this in a version newer than I use? Actually I'd appreciate if someone could fill me on this, I'm always looking for ways to be more efficient.

    20. Re:Great but... by BasilBrush · · Score: 4, Insightful

      However the infinite loop example was found because he *knew* what he was doing as he intentionally miswrote it to start with and intentionally changed the inputs in accordance with this knowledge.

      It's was a demo. Demos by their nature tend to be both simplistic contrived.

      He was putting across a principle in the first half of his talk and a way of life in the second. Both very valid.

      From your comments it's clear that you're more of a craftsman than a visionary. There's room in the world for both.

    21. Re:Great but... by BasilBrush · · Score: 3, Insightful

      You need to watch the video. The horizons of his thinking couldn't be wider.

    22. Re:Great but... by BasilBrush · · Score: 1

      So what exactly is he talking about that's "new"?

      If you watch the video you'll find out.

    23. Re:Great but... by jythie · · Score: 4, Insightful

      TBH - at an hour of talking, no. A summary or argument with diagrams would be worth looking at, but a video? I am actually getting tired of this fad of posting videos to make a case. Very inefficient and can usually be summed up in something that only takes 10 minutes to read. I get the feeling the people who do things pieces just like hearing their own voice....

    24. Re:Great but... by BasilBrush · · Score: 1, Insightful

      It's worth a hour. But if you don't want to watch it fine. Just don't expect your comments to be worth anything if you haven't done your homework.

    25. Re:Great but... by msobkow · · Score: 0

      I'm sorry, but even the one who posted the video says there isn't any interesting content until 18 minutes in.

      I was not able to fast forward the video.

      I am NOT going to sit through 18 minutes of tripe to get to something that sounds like it's been done a dozen times before, just repackaged, renamed, refactored, and presented as some yahoo's "new" idea because he changed a couple keywords and ignored history.

      --
      I do not fail; I succeed at finding out what does not work.
    26. Re:Great but... by jythie · · Score: 1

      I tried. I ended up wanting to punch the speaker. Then I went to his website to see if he had a better summary there, and wanted to punch the speaker. This person seems to be someone more interested in looking insightful then clearly communicating. He will probably do well as a motivational speaker or manager, but I would not want him anywhere near an engineering project.

    27. Re:Great but... by hpoul · · Score: 2

      for me this looked like something we learned even before we wrote our first program in school at a computer.. debugging on paper..
      although we had one column for each variable while the demo shows one row for each variable (in the same row as the variable is changed in the code).. so i don't think this is really that revolutionary but it would be quite cool, and maybe not that hard to implement.. simply an eclipse debug extension which when you have a breakpoint within a method, not only shows you all variables but also how they change, and allows you to change the input parameters of that method.. (would only work during debugging, since otherwise you would have to somehow initialize that class).. it's already possible to change variables in eclipse, so there must only be a way to try different input variables of the code without effecting future calls (maybe cloning the current object or forking the whole process).. too bad there are no savepoints&rollbacks in java to get back to the state when the breakpoint was invoked :)

      --
      Find me at http://herbert.poul.at
    28. Re:Great but... by Anonymous Coward · · Score: 0

      Funny thing is, years ago I slapped together a "krispykernel32.dll error" in VisualBasic at a LAN party and redirected the shortcut for the game of the day. Needless to say, when my friend returned, he was a bit surprised why his game wouldn't run!

    29. Re:Great but... by ceoyoyo · · Score: 1

      Most (all?) interpreted languages let you do this. I remember a WWDC demo from almost a decade ago where they demonstrated changing running Objective-C code and seeing the result live. I'm sure there are older examples.

      Not new.

    30. Re:Great but... by viperidaenz · · Score: 1

      You statement confuses me. It seems like you're saying "If a system provides a means to view its state, maintenance will be difficult"

    31. Re:Great but... by viperidaenz · · Score: 3, Funny

      All I see now is blonde, brunette, redhead.

    32. Re:Great but... by Anonymous Coward · · Score: 0

      He or she didn't watch the video.

    33. Re:Great but... by luis_a_espinal · · Score: 3, Insightful

      It's worth a hour. But if you don't want to watch it fine. Just don't expect your comments to be worth anything if you haven't done your homework.

      He has a point. You don't need a 1hr long video as the sole measure with which to convey a technical point. Summaries, diagrams, and/or a 8-10 page paper are also necessary. Asking people to devote one hour just to know that something is worth it, that is not how you present technical ideas or issues.

    34. Re:Great but... by euroq · · Score: 1

      1. You CAN fast forward.
      2. You should have watched it, you are making assumptions without evidence. It is well made and interesting and it doesn't claim to be a brand new invention.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    35. Re:Great but... by TangoMargarine · · Score: 1

      Yeah, sounds like the perfect circumstance for one of those journalistic-convention-things in the newspaper where the most important details are in the first paragraph.

      Sadly I have no mod points at the moment.

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    36. Re:Great but... by lucm · · Score: 0

      They didn't have any problems in The Matrix.

      I propose to ban references to the Matrix and instead use references to The Thirteenth Floor, which are cooler because they can partially overlap with references to LA Noire and Law & Order.

      --
      lucm, indeed.
    37. Re:Great but... by johanatan · · Score: 1

      So, couple this idea with something like PEX

    38. Re:Great but... by jones_supa · · Score: 2

      Yes, but while it was a joke, it still can be speculated if something like that could be done.

    39. Re:Great but... by lucm · · Score: 1

      It's worth a hour.

      Maybe it's worth one of *your* hours but after watching this for 3 minutes I had to give up because the half-cooked mix of Tony Robbins and Steve Jobs made me nauseous. It's too bad really because I was curious to see the third part of the speech where I would have discovered My Own Guiding Principle.

      --
      lucm, indeed.
    40. Re:Great but... by Anonymous Coward · · Score: 0

      Firehose, eh.

    41. Re:Great but... by lucm · · Score: 1

      Prejudice: "An adverse judgment or opinion formed beforehand or without knowledge or examination of the facts"

      You're welcome to your opinions. But they are prejudice, and therefore worthless.

      Lame: lacking needful or desirable substance.

      (While they are lame, your own comments are not totally worthless because they made me laugh)

      --
      lucm, indeed.
    42. Re:Great but... by Anonymous Coward · · Score: 0

      This is true for any field. You don't learn the ropes unless you make mistakes. Once you've made the mistakes, you know what to watch out for.

      Cooking is all about knowing what could go wrong with your recipe.

      Architecture is all about knowing what could go wrong with your plans.

      Football is all about knowing what could go wrong with your strategy, etc. etc.

    43. Re:Great but... by Anonymous Coward · · Score: 0

      This is non-trivial because multiple saved states gets huge very quickly. I remember one paper I read (I think it was worried about determinism and replay, not debugging, although I don't recall exactly) pointed out that as long as you remember all non-deterministic choices, you can save program state only once every second if you are okay with a backwards step taking up a to a second (worst case you have to go back to the last checkpoint and rerun the program almost to the next checkpoint).

      In reality, I have noticed Eclipse at least sometimes jumps execution to an earlier point after I make a change... but often that earlier point is the start of the program, which is pretty useless, although it is sometimes the start of the function.

      Someone commented up above that the key concept being shown is time-independent debugging. That is, after every change, the entire program is re-run and some kind of summary of that run is replayed. (This seems a bit imprecise when talking about the game example, although you could argue the program being run is to iterate the game state indefinitely.) Figuring out how to sensibly do time-independent debugging in other domains seems like a worthwhile goal, although I can't see it being generalizable. Personally, the programs I currently am working on are program analysis tools of some sort, so they spend a long time looking over lots of code; I don't see a meaningful analogue of this work to that domain, although I would love better debugging tools for a dataflow analysis (there's a graph structure to explore... maybe's there's something... but it's really, really slow).

    44. Re:Great but... by BasilBrush · · Score: 0

      Yes you do need a video for it. It would not be conveyed by static text and diagrams.

    45. Re:Great but... by datavirtue · · Score: 1

      Was that English?

      --
      I object to power without constructive purpose. --Spock
    46. Re:Great but... by lucm · · Score: 1

      You're is the view of another person with prejudiced opinions.

      Of course, everyone that does not have a hard-on for javascript guy and his cargo pants must have a prejudiced opinion. Or more generally: everyone that does not agree with you.

      I am curious: do you have strong feelings for javascript and/or cargo pants, in which case maybe it is your own opinion that is biased.

      --
      lucm, indeed.
    47. Re:Great but... by lucm · · Score: 2

      It's amazing how many people are proud to be closed minded. Too bad you missed out. I'm glad I didn't.

      You had a life changing experience watching javascript guy with his cargo pants, I get it and I rejoice for you. That does not mean that people who find him tedious and cheesy are close-minded, it just mean that some people need a little more substance before they applaud.

      --
      lucm, indeed.
    48. Re:Great but... by CptNerd · · Score: 1

      Syntactically, yes. Semantically, no.

      --
      By the taping of my glasses, something geeky this way passes
    49. Re:Great but... by crutchy · · Score: 1

      nah if that were the case a crapload more guys would be using it

    50. Re:Great but... by White+Flame · · Score: 1

      I think you meant "at least 50-60 years", seeing as Lisp has done it since the 50s.

    51. Re:Great but... by crutchy · · Score: 1

      confusingly, yes

    52. Re:Great but... by Anonymous Coward · · Score: 0

      >From your comments it's clear that you're more of a craftsman than a visionary. There's room in the world for both.

      Did you really intend for that to sound so condescending?

    53. Re:Great but... by crutchy · · Score: 1

      smoke enough pot and you can visualize anything... ANYTHING!

    54. Re:Great but... by Anonymous Coward · · Score: 0

      Never mind - I just read the rest of your comments in this thread. Yes, you did intend to be condescending.

      Note that there are usually two sides in a 'failure to communicate'.

    55. Re:Great but... by nightfell · · Score: 1

      I'll take one guy trying to come up with new ways to do things over a dozen anonymous internet nerds saying it's not going to work any day.

    56. Re:Great but... by cheekyboy · · Score: 1

      These days every single programmer is too lazy to do any binary storage, and just throws anything that requires more than 5 items in an array or enum, into a SQL database, or sqlLite, and just use SQL statements to find/add/remove items.

      algorythms? its all been done for us, if OO is that good as it says it is, then no one need to re-code an existing algorithm ever. Just use a framework/class and presto, it just works. Most code is all just data translation and storage and lookup.

      --
      Liberty freedom are no1, not dicks in suits.
    57. Re:Great but... by tknd · · Score: 1

      Now consider that binary search is a freshman level programming problem and therefore is pretty low in terms of the complexity a developer is going to deal with. Much of software development will deal with far more complicated scenarios than this, and the facility doesn't *really* cover even the binary search complexity.

      You're thinking a little narrow. You've found a problem with this style of programming and therefore dismiss its merits. But in the real world, I would say 90% or even more of the code we write is boring and lifeless.

      For example his "replay" demo concept or the binary search demo where he gave the function values and saw the output was basically unit testing but interactively. So once he has inserted some values and found the correct output, shouldn't he be able to record that as a macro and now be finished with a unit test? That's a lot less mental work than imagining the boundary cases and inputing values or setting up scenarios to come up with a test suite. If this was possible it would take much less time than it currently does to write unit tests.

      Another important aspect of his demo is the tree vector image. I think it includes an aspect that is missing from most UI development interfaces. The general consensus among UI development is the best we can provide is a drag and drop "what you see is what you get" but once you want to get into the details (the code) the WYSIWYG view disappears so now you're back to the tweak-compile-check loop. If there was a real-time display of your UI right next to the code as well as an inspector tool like he demo'ed, then making that UI wouldn't be so tedious especially since everyone has a different UI API to work with.

      The closest I have seen to this is actually firebug and firebug's inspector tool. If we could take the same concept one step further into our programming code, then I would expect UI experiences and quality to improve across the board.

      One field where his ideas are actually being implemented is photography. Cameras have gone quite a ways in "doing the boring stuff for you" so that you can focus on the creative process. (In fact the new lytro cameras allow you to change focus after the fact.) But because of this improvement in instance feedback on digital cameras, the number of photographers that can produce good quality work has increased dramatically. The traditional dark room is now replaced with software where you can see real-time edits with nearly unlimited undo. You could say within perhaps a decade everyone and their parents will be professional photographers. Sure, we just killed yet another profession, but I think that's the entire point of technology.

      On the other side another field that is sorely in need of this is the medical field. A simple example would be that we have built machines to take blood pressure and heart rate automatically. But why aren't they in homes? We brush our teeth everyday, why can't we take blood pressure? Why can't we get a daily or even real-time heart rate? We carry smart phones. We have wireless networks. Why not advocate daily blood pressure readings tied to a wireless network that would log and analyze your blood pressure and heart rate over time so you could see trends on a daily basis rather than behaving in a reactive manner by going to the doctor when you do start to have severe symptoms. If this information was available, the doctor would not just have your vital readings on the day you show up, he would have an entire history of your readings. Why even stop there, why not have the system signal when thresholds or trends are developing and recommending you see a doctor about a developing trend so preventative care can be utilized.

    58. Re:Great but... by hughbar · · Score: 2

      This is also the point of Z, for example: http://en.wikipedia.org/wiki/Z_notation amazing how much implicit 'potential wrongness' there is even in a simple bit of code. For me, whilst the demonstrations in the talk have limits [as a previous poster said, better for things that are visual and I can't imagine what the hashes of hashes and random bit of json that I deal with would look like] it's pretty interesting and related to some of the smalltalk attempts at visual programming.

      --
      On y va, qui mal y pense!
    59. Re:Great but... by msclrhd · · Score: 1

      Multiple saved values displayed over time was an example of how you could visualise data flow through an algorithm to get a better understanding of how the algorithm works -- it clearly does not scale to something like libreoffice or the kernel. Another way to visualise it would be in a form similar to the "Bubble Sort Dance" videos.

      By speeding up the time between making a change and seeing its effect you end up being more productive.

      How about being able to visualise what happened from a trace, with the trace log on one side and the code on another. When you move through the trace log, it jumps to that point in code. Same with an exception stack trace.

      In your analysis tools, there will be things like regular expressions, state machines and lexers/parsers to extract information from the programs. How about being able to visualise the state machines and regular expressions and run test input on those directly and interactively. How about being able to see the flow of data through the regex shown as a graph. There are tools to do these kinds of things, but not in an immediate and interactive way.

      I'm not saying that his approach works in all domains and for all problems. It will work better in some areas than others. It is another interesting way of providing immediate feedback to the thing you are working on to help solve problems.

      It will take time to get the tooling support for this. I see a JavaScript canvas and SVG designer being the easiest to create and will be a leap forward in writing and creating those -- maybe applying that to tools like inkscape and gimp.

      The others are more complex and will take time to evolve and see how to integrate with the editor/ide/designer program -- e.g. how do you support mixed javascript code that has canvas drawing, regexes, state machines and sorting algorithms?

    60. Re:Great but... by Anonymous Coward · · Score: 0

      Indeed this method would only work in a world in which you can create a sane model of the machine you are programming for.

      but the video makes it clear: This method is meant to enhance the situation of using your mind as a simulation of the machine you are programming for. If you couldn't possibly use your mind for this task already, because there is no documentation and only the "real" hardware acts as you need it to for your purposes, then this method is not applicable.

    61. Re:Great but... by __aancvu2993 · · Score: 1

      Off topic but I very much agree with you on video. It's too big, inefficient, slow and overall stupid but it suits slackers. We leapt forward when we invented writing. Before that it was hand-waving and storytelling around the fire, which is what these morons with podcasts try to pass as 'new'. I don't watch video that could be transcripted and read in one tenth of the time. If something is video only, I pass. My time is for written material, thus avoiding the worst crap.

      Even more offtopic: These last three weeks I've been working with video. I use avisynth because it has scripts: the 'program' is saved on disk and repeatable. If I was forced to use a UI and a mouse every little tweak and filter should be remembered and automation could not exist unless it was programmed into every tool used, which is unfeasible and the results of one step could be fed to the next which is even more unfeasible.

    62. Re:Great but... by BasilBrush · · Score: 0

      Of course, everyone that does not have a hard-on for javascript guy and his cargo pants must have a prejudiced opinion.

      Cargo pants? You're judging someones presentation by what trousers they're wearing? I was using the term prejudiced in it's simple "pre-judging" definition. Turns out you're actually prejudiced in the bigoted sad-sack definition. How truly pathetic you are.

      End of conversation. You have nothing worthwhile to say.

    63. Re:Great but... by Zebedeu · · Score: 1

      While I agree in many ways with the points you raise, I still think there's a place for his ideas in an IDE.
      For example, I'm currently writing some SQL for a project of mine, and it'd be really helpfull to be able to see the results of my queries in real time as I write them out (especially since my SQL is so rusty).

      The same goes for a few simple functions with a bit of complex math I have here. A side view like he has in his algorithm example would've saved me quite a few trips to the debugger.

      Sure, I could open a connection to the database and test it incrementally, but that's exactly what he's talking about: being able to see the results change dynamically as you type can improve productivity and identify problems earlier.

      It may not be as essential as he seems to claim, but it'd be a nice addition to an IDE.

    64. Re:Great but... by Mr+Z · · Score: 3, Insightful

      I personally am a fan of "debugging by printf." Kernighan and Pike make a good argument for it in The Practice of Programming. But, that's not limited to debugging, really. It's a great tool for understanding one's own code. Basically, whenever I want to get a greater intuition about how something works, I load it up with print statements at strategic points. I guess you might call it "understanding through printf."

      I'll be honest: I didn't invest an hour of my time watching this video. How really does his technique compare to "understanding through printf"?

    65. Re:Great but... by Mr+Z · · Score: 1

      But an hour long video holding all of the content? Couldn't it be a static document with a handful of short demo videos?

    66. Re:Great but... by Anonymous Coward · · Score: 0

      I would reply to you and inform you how retarded this stance is, but first I have a one hour preparatory video for you to watch. If you can't be bothered, then I'm going to discount your argument.

      I agree with the GP that the excessive posting of videos is annoying and unnecessary. The last thing our world needs is more people fond of watching and letting someone think for them as opposed to reading and comprehending on their own.

      This is like the marketing retards that leave 10 min voicemails of them rambling on and on about irrelevant stuff when they could've just typed out a 3 sentence e-mail to describe their problem in a much more efficient manner.

    67. Re:Great but... by mikechant · · Score: 1

      I am actually getting tired of this fad of posting videos to make a case.

      Also, many corporate networks block all streaming videos to save bandwidth, even when they allow 'reasonable' personal internet use.

    68. Re:Great but... by tixxit · · Score: 1

      Binary search is a great example because it is a very simple algorithm that is incredibly easy to mess up. Conceptually simple, but riddled with subtle obstacles.

    69. Re:Great but... by ultranova · · Score: 1

      Why can't we get a daily or even real-time heart rate?

      Because I, for one, do not want a continuous record of my activity level to be available to doctors, law enforcement, insurance firms or any other entity.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    70. Re:Great but... by gauauu · · Score: 1

      Usually by the time I realize what broke and how it broke, I'm too far in the code to recover anything. Example: I got an exception on line 11 due to a bug on line 8.

      Now what would be kind of cool is to save the program state prior to entering a function and then restarting from that function entry point. Of course that wouldn't work if your function modified an external file or something... Maybe Visual Studio already does this in a version newer than I use? Actually I'd appreciate if someone could fill me on this, I'm always looking for ways to be more efficient.

      You can do this in the java debugger, something like Eclipse makes it REALLY easy -- there's a button that drops you back to the beginning of the current function call. You can even change the code for the function, and it will hot swap your new code in, and restart the function, this time using your new code. It's amazing.

    71. Re:Great but... by Anonymous Coward · · Score: 0

      [Score:5, Funny]
      >> Visualise them kernel then.
      >> They didn't have any problems in The Matrix.

      [Score 5, Insightful]
      > That sounds simple but [...]

      Wat? :D

    72. Re:Great but... by next_ghost · · Score: 1

      You're thinking a little narrow. You've found a problem with this style of programming and therefore dismiss its merits.

      Actually, Junta's right on spot. This thing does have some practical application but a very limited one. Outside this narrow scope, it becomes a mere toy. Those with enough experience don't need it and those without experience will fail miserably at trying to use as substitute for experience as have many generations of unexperienced programmers before them. Computer programming often deals with problems too complicated for this thing.

    73. Re:Great but... by next_ghost · · Score: 1

      You didn't miss anything because what he shows in the video can be pretty much summed up as "you don't need to understand your own code anymore". And although the guy didn't put it that way, that's how everybody who doesn't know better will understand it. On the other hand those who know better will see this as nothing more than a pretty toy.

    74. Re:Great but... by ArsonSmith · · Score: 1

      I do much prefer Doctors just guess what treatment I need on as little info as possible.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    75. Re:Great but... by BitZtream · · Score: 0

      Pot generally doesn't make you see things, contrary to popular belief. LSD on the other hand ... thats what you're thinking of.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    76. Re:Great but... by bitingduck · · Score: 2

      On the other side another field that is sorely in need of this is the medical field. A simple example would be that we have built machines to take blood pressure and heart rate automatically. But why aren't they in homes? We brush our teeth everyday, why can't we take blood pressure? Why can't we get a daily or even real-time heart rate? We carry smart phones. We have wireless networks. Why not advocate daily blood pressure readings tied to a wireless network that would log and analyze your blood pressure and heart rate over time so you could see trends on a daily basis rather than behaving in a reactive manner by going to the doctor when you do start to have severe symptoms.

      It's become trivial to get a few basic medical parameters on demand cheaply. A pulse oximeter (heart rate and blood oxygen saturation) costs from $10-$50 for a home version, a blood sugar testing kit is $20+$1/test strip, and an automatic blood pressure cuff system is about $50. They all work well, they usually have storage, and if you're willing to spend more you can probably get a USB version. Heart rate monitors with a lot of memory have been used by athletes for decades. Fully networked versions of all this that give information to your doctor are not far off-- given that the baby boomers are getting older and it will cost too much to have live people monitor them as much as they want. The military is also developing such things so that someone can sit in a dark room in florida and play FPS using live people halfway around the planet, seeing what they see and what their health status is. If you watch high level bicycle racing, the team directors can often get real time data like heart rate and power output of riders.

    77. Re:Great but... by Delwin · · Score: 1

      He does do one function but I'm also worried that this won't scale well in modern programing. It does however lend itself very well to functional programing (as opposed to object oriented).

    78. Re:Great but... by radtea · · Score: 1

      This is also the point of Z...

      Studying Z convinced me that any kind of sane software specification language is unrealistic without some fundamental change in the way we do things. I have no idea what that change is, but it's not small.

      The thing that killed Z for me was the way the specification contaminated the design in his word-processor example. That's like using a CAD program that requires you to only use cast-iron components.

      I'm not convinced software specification is impossible, but I am convinced it's far harder than most people appreciate.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    79. Re:Great but... by Anonymous Coward · · Score: 0

      "Yes you do need a video for it. It would not be conveyed by static text and diagrams."

      Yeah, if you're that stupid.

      Fortunately most of us aren't.

    80. Re:Great but... by Anonymous Coward · · Score: 0

      The "internet nerds" are not saying it's not going to work, they are saying it's not a silver bullet like he's touting it to be. And I agree with that, it's a singular tool.

      I actually did watch the whole thing, and it did give me some ideas to try with my homegrown editors. But for all the coding his ideas helped with, I got hundreds of thousands of lines more that his ideas would be an insanely bad idea to use with.

      As much as I would like to have a magic button that visualizes a data set and the operations performed on it. I just don't see how it's possible, a good portion of my code time is spent making visualization routines for debugging algorithms, and very very rarely is there any common code or even layout between those. Nor is there really any pattern that could hint at how to visual it, usually the visualization is determined by intended usage.

    81. Re:Great but... by BasilBrush · · Score: 1

      Bret does have a lot of that kind of thing on his website.

      http://worrydream.com/

      Lots of interesting stuff there. But as far as I can see the topic and the demos of this particular presentation haven't made their way on to his web site yet.

    82. Re:Great but... by MadKeithV · · Score: 1

      TBH - at an hour of talking, no. A summary or argument with diagrams would be worth looking at, but a video? I am actually getting tired of this fad of posting videos to make a case. Very inefficient and can usually be summed up in something that only takes 10 minutes to read. I get the feeling the people who do things pieces just like hearing their own voice....

      Maybe someone could come up with a better way to make a video.

    83. Re:Great but... by rioki · · Score: 2

      You should invest an hour of your life, it really is worth it.

      To the discussion at hand, sure it is not an end all, but how often I see people doing the same thing in a debugger, only with mouse over variable / watch windows. His approach is essentially the same as many people do in the debugger, only the feedback look is tighter. Sure you still need to know about the problem and solution domain, to isolate boundary conditions; but it surly changes the way you program.

    84. Re:Great but... by s73v3r · · Score: 1

      So to you, having a tighter feedback loop means that you don't need to understand your code anymore. I shudder to think of what you'd say about REPLs for Python and the like.

    85. Re:Great but... by s73v3r · · Score: 1

      As opposed to others, like yourself, that seem to think that if an idea doesn't apply to every single last bit of programming, or at least their domain, then it's complete crap. Ignoring the possible applications in the domain it's meant for.

    86. Re:Great but... by s73v3r · · Score: 1

      We haven't had to rely on static build-test-debug-fix-repeat cycles for day-to-day programming in at least 5-6 years!

      As far as I know, you do if you're still using C/C++.

    87. Re:Great but... by Shotgun · · Score: 2

      It's worth a hour. But if you don't want to watch it fine. Just don't expect your comments to be worth anything if you haven't done your homework.

      I'd like to have my hour back actually.

      He said we need to push testing closer to the developer. His algorithm example was simply an demonstration of doing unit tests in real time. It's a good concept, suitable for developing small algorithms, but breaks down quickly once you hit a million lines of code, or have to work with large datasets.

      --
      Aah, change is good. -- Rafiki
      Yeah, but it ain't easy. -- Simba
    88. Re:Great but... by Anonymous Coward · · Score: 0

      When I make new algorithms, I pretty much do what this guy did with his demo, on paper. If I could do it easily on the computer it would be way better. Yes, there are debuggers, IDEs, etc etc, BUT, there is still a vast room for improvement.

    89. Re:Great but... by hazah · · Score: 1

      For example, I'm currently writing some SQL for a project of mine, and it'd be really helpfull to be able to see the results of my queries in real time as I write them out (especially since my SQL is so rusty).

      Do yourself a favour, and type those queries out on your dev db server, then please stop bothering the rest of us.

      This post does not, at all, recognize that a relational db is a separate system from whatever app they're working on. If they choose to delegate their data storage capacity to a db, then you will have to work within the framework of that system!

      So what's the real blocker from firing up query interface and sending in a query for testing? And how does an IDE solution help you in realizing that that is what you need to do?

      IDEs do not solve the problems of ignorance or stupidity.

    90. Re:Great but... by nightfell · · Score: 1

      No one *EVER* claims any one thing will solve everything. Calling it a "silver bullet" is just a straw man.

      But that's really just a distraction from my point, which is that one guy trying to do something is worth more than all the naysayers in the world combined. At least that one guy is trying to add to the world.

    91. Re:Great but... by Anonymous Coward · · Score: 0

      THe principle precedes GUI programming. I could say that principle was at work when the ideas behind the first APL platforms were being considered. Just seeing one's data was revolutionary at the time.

    92. Re:Great but... by Twinbee · · Score: 1

      Yes, I think you'd like his approach then as all the printfs are kind of done for you. Each line of code has a corresponding value, so its like every line has a printf.

      --
      Why OpalCalc is the best Windows calc
    93. Re:Great but... by next_ghost · · Score: 1

      Traditional compile&run feedback loop is tight enough for most practical applications. That IDE with real-time feedback doesn't give you anything new if you work on something abstract (as opposed to say procedurally generated graphics) and you understand the code very well because seeing the actual problem in the one-size-fits-all printout takes as much effort as actually stepping through the code in your head. So the only effect I can foresee for this thing is encouraging more shotgun debugging among bad programmers and allowing them to stick with it because they'll have even less motivation to learn better practices.

    94. Re:Great but... by Anonymous Coward · · Score: 0

      I told my professors in college this same thing.

      "If it's worth knowing, you can boil it down to a single page and a 10 minute summary. If you can't do that, then your so-called 'knowledge' isn't worth knowing or considering."

      As far as learning something new, an hour isn't that much of your time. If you don't care to consider some new thoughts, then just admit that you're old and on your way to being a washed up has-been who hasn't kept up with thinking in your field.

    95. Re:Great but... by crutchy · · Score: 1

      or magic mushrooms... woops. did i say magic mushrooms? i meant fungus.

    96. Re:Great but... by sjames · · Score: 1

      Yes, but video with more buttery goodness.

    97. Re:Great but... by Zebedeu · · Score: 1

      Sine we're sharing unsolicited advice on how to live each other's lives, here's mine: you're an asshole.
      Your arrogant and aggressive tone won't lead to any productive discussions and isn't going to be making in any friends. If this is how you act in real life, then you're in for a difficult one.
      But I suppose you're not really like this in real life. More likely you're just an internet bully, which is even worse -- it makes you a coward asshole.

      Anyway, to your point, the DB I was speaking about was an Android sqlite DB. Sure, I could've made that clear in my original post, but I didn't think that anyone would be an asshole about it (that's you -- see above).
      If you're not aware, the Android sqlite DB is there as a convenient way for apps to store data. It does not feature a "dev db server" or even run on a separate system.
      It is possible to connect to a running emulator and run tests from the pc, but the interface is contrived and difficult to use.
      Furthemore, this is just a hobby, not my job, so forgive me for not having an incredibly elaborate development environment.

      You seem to be the sort of developer who thinks that real developers must have it hard, and that the niceties that modern IDEs offer are for the newbies and incompetent.
      That and your poor social skills make you a crappy team mate and generally a bad programmer. I hope I'll never have the displeasure of being stuck in a project with you.

    98. Re:Great but... by Anonymous Coward · · Score: 0

      Functional and oop aren't mutually exclusive. This is basically good Lisp programming practices. Nothing new here at all except that maybe programmers are finally mature enough for Lisp.

    99. Re:Great but... by lucm · · Score: 1

      Of course, everyone that does not have a hard-on for javascript guy and his cargo pants must have a prejudiced opinion.

      Cargo pants? You're judging someones presentation by what trousers they're wearing? I was using the term prejudiced in it's simple "pre-judging" definition. Turns out you're actually prejudiced in the bigoted sad-sack definition. How truly pathetic you are.

      End of conversation. You have nothing worthwhile to say.

      Since you appear offended by your own conclusion that I judged cargo pants guy's presentation on the fact that he wears cargo pants, you will be rejoiced to know that I don't judge your comments on the fact that you are yourself obviously a big fan of cargo pants (or on the fact that you seem so intensely protective of that male presenter), but specifically on the fact that you feel entitled to determine what is worthwhile and what is not, and when a conversation is to end.

      Just out of curiosity: are you a fan of Celine Dion?

      --
      lucm, indeed.
    100. Re:Great but... by dave87656 · · Score: 1

      Only if you take the red pill.

    101. Re:Great but... by Anonymous Coward · · Score: 0

      Seems like it mostly only applies to GUI programming or programming with results expressed through a GUI. What about, say, kernel programming?

      Why not? You could simply check out the intermediate results generated by each module performed in the process.

    102. Re:Great but... by Anonymous Coward · · Score: 0

      I enjoyed reading his post more than yours, big shot. Stop bothering the rest of us with your petty and baseless put-downs.

    103. Re:Great but... by Anonymous Coward · · Score: 0

      If you need more substance than you've totally missed the point.

      He's not representing some tools for you to download, nor is he playing Steve Jobs. What is he is doing is representing an idea.

      The point here is (and I completely feel the same way everytime I'm programming some project together) that I have to think in terms of executing pathway mazes in my head, while these pathways could simply be presented to me visualy on the fly. It can happen anywhere from mega schale (UML, thank God for that invention) to microscale (bits and bytes).

      So imagine just something like loops, ifs, branches, whatever... It's the same thing that some crackers (hackers) use for cracking stuff that's only available in binary form. Like for example (ironically) the NT kernel. What happens if you poke it the right way? Emediately you'll see the protection mechanisms like little pathways; security layers are dropping like flies.

    104. Re:Great but... by stoborrobots · · Score: 1

      Wow - I thought I was the only one who remembered that movie! Did you get a weird feeling of deja vu when watching Inception?

    105. Re:Great but... by lucm · · Score: 1

      I never understood why it's the Matrix that was a hit; besides the Thirteenth Floor there was also Existenz that was released around the same time and both were pretty good and had somehow a similar scenario (and prettier actresses!). Maybe those movies had not enough shooting - although the Matrix became a karate franchise after the first movie, a change of style that was linked to the Columbine shooting IIRC.

      As for inception it was definitely deja vu, and it was more than just the scenario; I think the visual style was also very close. When I look at the ratings for all those movies on IMDB I find it unfair - but then we live in a world where most people think that Red Red Wine is a song by UB40 so maybe I should lower my expectations.

      --
      lucm, indeed.
    106. Re:Great but... by greglaw99 · · Score: 1

      In The Practice of Programming, Kernighan and Pike also say: "Debugging involves backwards reasoning, like solving murder mysteries. Something impossible occurred, and the only solid information is that it really did occur. So we must think backwards from the result to discover the reasons." The ability to go backwards when debugging is already here (e.g. UndoDB http://undo-software.com/). Running backwards to hit a watchpoint to find out why your data is corrupted is a revelation.

    107. Re:Great but... by Mr+Z · · Score: 1

      Someone I work with (who, incidentally, once had Brian Kernighan as his boss!) also wrote a bi-directional simulator. I've played with the idea myself a few times. They are a kinda cool concept. Still, the reasoning process is probably the more important part than being able to rewind, because it leads to actual insight. It's sorta like the difference between treating symptoms and finding an actual cure.

    108. Re:Great but... by greglaw · · Score: 1

      I totally agree that proper understanding of the code is essential, and all too often people go after the symptoms rather than the cause. But as with most tools, bidirectional/reversible debuggers can be used in good ways and bad. Analytical tools such as this can be of huge help in understanding code (finding out who calls what, when is a prequisite to figuring out why), particularly when working with very large code-bases most of which have been written by someone else.

  2. Connecting to your creation in Clojure by slasho81 · · Score: 4, Interesting

    Here's an implementation of Bret's ideas in Clojure.

    1. Re:Connecting to your creation in Clojure by justforgetme · · Score: 5, Informative

      And here is the vimeo video for those who want to tear their eyes out when
      visiting i-programmer and their 180px content column.

      --
      -- no sig today
    2. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      Now if only someone would produce a link to transcript of this video...

    3. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      No flash or html5 video, deaf or using lynx?

    4. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      Watching a one hour video is annoying when you could just spend 5-10 minutes reading a transcript and get the same information.

    5. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      Hour of mumbling awkward guy not accustomed to public speaking vs. 5 minute read.

    6. Re:Connecting to your creation in Clojure by durrr · · Score: 2

      25 minutes of that video involve video examples.

      The rest, perhaps a transcription would do.

    7. Re:Connecting to your creation in Clojure by jythie · · Score: 2, Insightful

      Agreed. I am getting a bit tired of things moving to video only. Videos are hard to skim or speed-read, you have to absorb things at the pace the speaker feels like moving at, which is usually pretty slow/inefficient.

    8. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      I'll give you a good reason to watch the video: it's really neat! :)

    9. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      After reading TFS ('S' for summary) the first thing that came to my mind was "Lisp dialect"... And of course it's a Clojure programmer who comes with an implementation of the idea in one day ; )

      +5 interesting indeed!

    10. Re:Connecting to your creation in Clojure by 0111+1110 · · Score: 1

      Except that he is a superb speaker. It was one of the most beautiful speeches I have ever seen.

      --
      Quite an experience to live in fear, isn't it? That's what it is to be a slave.
    11. Re:Connecting to your creation in Clojure by nacturation · · Score: 3, Insightful

      And for those decrying the use of video, you'll definitely want to check out Up and Down the Ladder of Abstraction by the same author: http://worrydream.com/LadderOfAbstraction/

      It's a big wall of text with interactive javascript examples and no video.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    12. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      I don't mind the video so much as the fact that I can't affect the speed of playback. I can listen at about 3x the rate of most speakers (5x if they are southern :-). I only know this because one of my in-laws is blind and listens to books on tape, at 3x or more speed, depending on the speaker. At first, I was astounded, but after just a little bit of experience, it is as comprehensible as 'normal' speech, even if it sounds like a chipmunk.

    13. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      I'm Chris Granger, the guy from the link above :) I'm happy to answer questions if people have them.

    14. Re:Connecting to your creation in Clojure by ibdknox · · Score: 1

      Since the last one ended up anonymous, I'll try this again: I'm Chris Granger, the guy from the link above :) I'm happy to answer questions if people have them.

    15. Re:Connecting to your creation in Clojure by bill_mcgonigle · · Score: 0

      and their 180px content column.

      Which is what, 3 microns on an iPad 3?

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    16. Re:Connecting to your creation in Clojure by Anonymous Coward · · Score: 0

      Not a problem, VLC has play speed, I usually use it at 1.5x - 3x the speed.

      People talk too slow on these presentations anyway.

      ADHD is here to stay :-)

    17. Re:Connecting to your creation in Clojure by dkf · · Score: 1

      Agreed. I am getting a bit tired of things moving to video only. Videos are hard to skim or speed-read, you have to absorb things at the pace the speaker feels like moving at, which is usually pretty slow/inefficient.

      Having just watched that video, I'd make the point that while in general I agree, it's not so true this time. The ideas involved are really rather deep, and all the neat tech demos in the first half aren't the real point (many of which serve just to act as indictments of how hard some of our tools really are). What he's really talking about is that some people should seek to find a cause to fight for in their programming, a way to totally transform the nature of the world through their creations.

      Very interesting, will take time to digest. Perhaps not for me at all...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    18. Re:Connecting to your creation in Clojure by Ly4 · · Score: 1

      Thanks for the link - that is interesting.

      But ... it's a demo of an interesting tool for solving a specific problem. I'm not sure how it could be extrapolated to a more general case, and the 'tools and implementation' appendix doesn't give any details.

    19. Re:Connecting to your creation in Clojure by justforgetme · · Score: 1

      You're binary That's why you liked it!

      --
      -- no sig today
    20. Re:Connecting to your creation in Clojure by nacturation · · Score: 1

      I'm not sure how it could be extrapolated to a more general case...

      Well, why not watch the video then?

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    21. Re:Connecting to your creation in Clojure by Ly4 · · Score: 1

      I'm not sure how it could be extrapolated to a more general case...

      Well, why not watch the video then?

      Thank you for your pointless, pedantic answer.

      There's a reason you (and every other proponent on this thread) are not providing any answers, and just keep saying 'watch the video'.

      Because there isn't an answer.

      The video isn't presenting a 'better way to program'. It's presenting a way to enter parameters for a specific set of circumstances. If you've written the simulator for that set of circumstances. Which is the hard part.

  3. They invented the debugger! by Giant+Electronic+Bra · · Score: 4, Insightful

    Yeeehaaa! ;)

    The tough problems aren't about running the code and seeing what happens, they're about setting up very specific situations and testing them easily.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:They invented the debugger! by vlm · · Score: 4, Insightful

      The tough problems aren't about running the code and seeing what happens, they're about setting up very specific situations and testing them easily.

      Handling non-specific unknown/unpredicted situations gracefully is also tough. Unsanitized user input, crazy failure modes, failure in other code making your state machines go bonkers... The trendy thing to do is just throw your hands up in the air and tell the user to reboot and/or reinstall, but that's not so cool.

      Maybe another way to phrase it is at least one of the specific situations needs to be the input of a random number generator doing crazy stuff.

      Your Arabic to Roman numeral converter accepts a INT? Well it better not crash when fed a negative, or zero, 2**63-1 (or whatever max_int is where you live), and any ole random place in between

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:They invented the debugger! by ktappe · · Score: 5, Interesting

      The tough problems aren't about running the code and seeing what happens, they're about setting up very specific situations and testing them easily.

      another way to phrase it is at least one of the specific situations needs to be the input of a random number generator doing crazy stuff.

      Your Arabic to Roman numeral converter accepts a INT? Well it better not crash when fed a negative, or zero, 2**63-1 (or whatever max_int is where you live), and any ole random place in between

      This is still archaic thinking. A much more efficient way would be for the IDE to, when specifying a variable, ask there & then what the boundaries of the variable should be. Then the compiler could error any time it saw a situation where the variable could be (or was) handed a value outside those boundaries. Programmers should not be having to catch weird situations over and over; that's what computers are for. Allowing a variable to be any possible INT/FLOAT/REAL just doesn't make any sense in many situations so I'm quite curious why we're still having to even talk about random number generators for debugging & testing. It feels like we're still working for the computers instead of the other way around.

      --
      "We can categorically state we have not released man-eating badgers into the area." - UK military spokesman, July 2007
    3. Re:They invented the debugger! by Anonymous Coward · · Score: 0

      Look up "halting-problem"

    4. Re:They invented the debugger! by Anonymous Coward · · Score: 1

      Because we still didn't reach the singularity, when computer will know what you want without your explanations.

      Sure, even today with sufficiently advanced type systems you can have compiler verifiable types like "int from 0 to 9" or "positive float" or "a power of two", or even "two non-overlapping intervals" or "list sorted in ascending order" - but this makes programs so verbose that it's not viable for general usage, only for the times when verification is a must.

      There won't be happiness until you can tell the computer "Make it cool" and it replies with "Did it 5 minutes ago".

    5. Re:They invented the debugger! by Anonymous Coward · · Score: 0

      That's not the halting problem, that's range checking on all of your variables. You don't have to know what the value of a variable is at any point in time (eg: actually running the program), you just have to know the range that variable can be, and the ranges of the assignment expressions that assign to that variable. Those ranges are further composed of more ranges (either return types from functions, constants, or more variables with their own ranges attached), and can be computed at compile time. Now, checking the bounds of dynamic arrays is not possible (this is the halting problem, as you mentioned), but that is not what the GP was talking about.

      What this guy means is that he wants a language where the compiler checks your variable ranges for you, which is completely doable.

      Now, this becomes more difficult when you factor in the fact that the same variable declarations (pointers, integers) can change sizes between hardware architectures, but the compiler already knows what hardware it is compiling for, so this can be a simple database query.

      Also note that this was already done (with proprietary software) to find the logic error for the Arianne rocket that blew up. And it did find the place where they assigned a floating point range to a short and didn't check that the float was within the range of the short.

      Maybe next time instead of simply replying with a generic non-answer you could actually think about the question and form a coherent response and explain why you came to that conclusion.

    6. Re:They invented the debugger! by Anonymous Coward · · Score: 0

      A much more efficient way would be for the IDE to, when specifying a variable, ask there & then what the boundaries of the variable should be. Then the compiler could error any time it saw a situation where the variable could be (or was) handed a value outside those boundaries. Programmers should not be having to catch weird situations over and over; that's what computers are for.

      This is the core idea in functional programming languages. Unfortunately there is not much interest in any language which is not an alternative notation for assembly.

    7. Re:They invented the debugger! by Anonymous Coward · · Score: 3, Insightful

      This is still archaic thinking. A much more efficient way would be for the IDE to, when specifying a variable, ask there & then what the boundaries of the variable should be. Then the compiler could error any time it saw a situation where the variable could be (or was) handed a value outside those boundaries. Programmers should not be having to catch weird situations over and over; that's what computers are for. Allowing a variable to be any possible INT/FLOAT/REAL just doesn't make any sense in many situations so I'm quite curious why we're still having to even talk about random number generators for debugging & testing. It feels like we're still working for the computers instead of the other way around.

      A good Ada compiler could do this almost thirty years ago, due to the flexibility of the type system. Of course, Ada '83 looked hopelessly complex compared to the other languages of the time such as K&R C. Put that together with the fact that the major users were bureaucratic mega-corps involved in government aerospace projects and it acquired a horrible reputation as a bloated mess.

      Time moved on. C begat C++ and C++ started adding features without much evidence of overall direction. For example it was never an explicit design goal for C++ templates to be Turing-complete. Features were added one after another, and one day someone pointed out that they had gone so far that templates could now be considered to be a language in themselves. Is it a good idea for a language to contain its own embedded meta-language? Is this something that results in maintainable, understandable code that can be analysed successfully? These questions did not matter because template meta-programming 'just happened' as C++ features agglomerated.

      Nowadays the most recent version of Ada (Ada 2012) is probably one of the more straightforward and better designed languages, but its early reputation is unshakable. That's life I guess.

    8. Re:They invented the debugger! by TuringTest · · Score: 1

      That's why you put a human in charge, to recognize the infinite loop conditions and fix them by stopping the inference engine.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    9. Re:They invented the debugger! by Anonymous Coward · · Score: 0

      A much more efficient way would be for the IDE to, when specifying a variable, ask there & then what the boundaries of the variable should be. Then the compiler could error any time it saw a situation where the variable could be (or was) handed a value outside those boundaries.

      That's already done in for example the asp.net dynamic data (and ruby-on-rails...) , although it only effects GUI input validation and content generation. Getters and setters for variables are all that is needed for validating back end code. Anything more would just be synthetic sugar for those.

      Link: http://msdn.microsoft.com/en-us/library/cc488545.aspx

    10. Re:They invented the debugger! by Anonymous Coward · · Score: 1

      This is still archaic thinking. A much more efficient way would be for the IDE to, when specifying a variable, ask there & then what the boundaries of the variable should be. Then the compiler could error any time it saw a situation where the variable could be (or was) handed a value outside those boundaries. Programmers should not be having to catch weird situations over and over; that's what computers are for. Allowing a variable to be any possible INT/FLOAT/REAL just doesn't make any sense in many situations so I'm quite curious why we're still having to even talk about random number generators for debugging & testing. It feels like we're still working for the computers instead of the other way around.

      You would have loved Ada.

    11. Re:They invented the debugger! by svick · · Score: 2

      It seems to me you're describing is Design by contract. Specifically, Code Contracts in .Net allow you to do this. The compiler there tries to check as much as it can, but checking every situation is simply not possible. It also produces runtime checks, so that your application crashes immediately when the contract is broken, instead of corrupting data.

    12. Re:They invented the debugger! by svick · · Score: 1

      Now, checking the bounds of dynamic arrays is not possible

      Okay, so what if I pass length of that array to some function? Wouldn't that break the range checking?

    13. Re:They invented the debugger! by Junta · · Score: 1

      From the parent poster:

      compiler could error any time it saw a situation where the variable could be

      That implies to me that at compile time you detect all the potential states. In terms of detecting at runtime, I don't see any language feature being less verbose or beter behaved than 'assert()' and 99% of the time you want something a tad more application specific than assert to detect/report/recover from such scenarios.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    14. Re:They invented the debugger! by Anonymous Coward · · Score: 0

      OK, what happens when your input is a string that has to be parsed into an integer, then converted to Roman numerals? The point is that you should handle any input gracefully, rather than crashing because somebody gave you "12,345" instead of "12345".

      dom

    15. Re:They invented the debugger! by marnues · · Score: 1

      That's what I was taught, but have found that such specifics are better handled at a higher level. I have started using assert() like functions on all public methods and am happy to throw assertionExceptions. If your object didn't pass mine an acceptable value, my object is right to complain about it and let your object deal with it. I can't prevent you from writing poor code, but I can try to keep your poor code from abusing mine.

    16. Re:They invented the debugger! by marnues · · Score: 1

      I love functional programming, but I have yet to work in a shop where enough people could wrap their heads around it to use it. Even if such a shop exists, the tool sets are not well developed. However, I do need to check out clojure and see how well it integrates into Java EE. I have a few engines that probably shouldn't be touched without rudimentary functional skills. ;)

    17. Re:They invented the debugger! by jedwidz · · Score: 1

      Just to be pedantic, it's not quite right to refer to 'objects' calling/invoking methods on other objects. Granted, typically the caller will be an object, but that's not required. Any two callers (objects or otherwise) making the same method call can expect to get the same result.

      For calls to 'main' methods and (other) calls from native interfaces, it's common for the caller to not be an object.

      However, Java for one can impose security restrictions based on the calling object, but this is a language feature and not OOP per se.

    18. Re:They invented the debugger! by kcitren · · Score: 1

      Ada had the ability to specify valid ranges for variable.

    19. Re:They invented the debugger! by Anonymous Coward · · Score: 0

      You're mis-reading - it is essentially a variant of assertions. Possibly with a bit extra compiler support.

    20. Re:They invented the debugger! by master_p · · Score: 1

      Then the compiler could error any time it saw a situation where the variable could be (or was) handed a value outside those boundaries.

      While what you propose seems a sensible solution, there is no algorithm to solve all cases. The problem is undecidable. If there was such an algorithm, it would be possible to get the result of a computation by examining it and not running it. See the 'halting problem' for more details.

    21. Re:They invented the debugger! by Mr+Z · · Score: 1

      Range checking only gets you so far, and it only catches the most basic bugs. Some languages give you 'assert()' to handle that; others have "programming by contract." Heck, wrap everything in classes that maintain tight control over their invariants and throw exceptions whenever they get cranky. That'll do, right? Not really. It's no silver bullet: Usually, the real bugs--the ones that take the longest to debug and require the deepest thought--result from more complex constraints getting violated, or fundamental thinkos about the problem domain.

      For example, a buffer overflow can be caught with range checking on array indices. Compilers can (and will, if you ask) insert those checks. Typically, fixing the overflow is quick; you just add a simple check prior to filling the buffer. Buffer bloat, on the other hand is an Internet-wide level bug that no amount of range checking, constraint checking or other simple debug techniques will catch for you. It resulted from fundamental thinkos about how to configure the software under the Internet at a grand scale.

      Ok, so that's perhaps an extreme comparison at far opposite ends of the scale. I'm fully aware that the bug "depth" vs. "frequency" distribution probably has a nice 1/x shape, with the shallower bugs occurring far, far more frequently than the deeper bugs. But, at the same time, by very virtue of their frequency and shallowness, they become the most quickly dispatched and easily avoided by a programmer with any experience.

      At least for me, it's as if I've developed an X-ray vision for the really basic bugs. I've been known to walk into a coworker's office and point out "that isn't going to work--you have a stray semicolon after that for() loop" or "there's an off-by-one error there" or other such things. I don't have synesthesia, but still it's almost as if such things show up in a different, if invisible, color or something. Finding and fixing the deeper bugs requires understanding far more of the system at a more thorough level.

    22. Re:They invented the debugger! by Mr+Z · · Score: 1

      Instead of corrupting data? It may stop it in its tracks, but that's no guarantee that stopping at that point prevents corrupting data. It may already be corrupted, or the act of truncating the computation (rather than gracefully failing) results in a now-corrupt output.

      Now, I would buy "instead of continuing and potentially making matters worse." If you're expecting it to prevent data corruption outright, though, your expectations are too high.

    23. Re:They invented the debugger! by svick · · Score: 1

      The assumption is that the method that would run with bad arguments could corrupt the data. But if you always check the arguments, you never corrupt any data. Of course, nothing is perfect and data corruption bugs may still occur.

      And when I said “crashes”, I actually meant that it throws an exception. You should not catch that exception (that would be just hiding the problem), but finally blocks will execute, so it kind of is graceful failure, or at least it can be.

  4. Conjecture. by tysonedwards · · Score: 3, Insightful

    Until someone actually creates this new mythical language that is proposed by Bret, than this is all conjecture that a hyper-efficient, overly intuitive programming language that can provide immediate feedback would be hyper-efficient, overly intuitive, and provide immediate feedback.

    Basically, the video referenced by the article is no different than "wouldn't it be nice if we were no longer dependent on foreign oil... that would make so many things so much easier!"

    --
    Thirty four characters live here.
    1. Re:Conjecture. by TheRaven64 · · Score: 4, Funny

      Yes, if only there were existing systems that worked that way. Such as the Lisp environment from 1958 or the Smalltalk environment from 1976. Such revolutionary new ideas about programming! I wonder if he will invent automatic refactoring tools next...

      --
      I am TheRaven on Soylent News
    2. Re:Conjecture. by vlm · · Score: 1

      Yes, if only there were existing systems that worked that way. Such as the Lisp environment from 1958 or the Smalltalk environment from 1976. Such revolutionary new ideas about programming! I wonder if he will invent automatic refactoring tools next...

      Lisp.. Smalltalk... Oh wait, I've got a FORTH answer oh no wait thats just the third... (Sorry bad joke, makes more sense if you know what FORTH is)

      Gotta admit that the Venn diagram of languages with that kind of environment and "write only languages" nearly perfectly overlap. If someone would make a real time dev system for Perl and Basic then we'd have near perfect overlap.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:Conjecture. by TheRaven64 · · Score: 2

      Not sure why you'd think Lisp or Smalltalk are write-only. Smalltalk is heavily used in the financial industry specifically because it is easy to quickly make significant changes to legacy code.

      --
      I am TheRaven on Soylent News
    4. Re:Conjecture. by KDR_11k · · Score: 1

      How about Java? If you run your program in debug mode inside Eclipse it'll do hot code replacement every time you save (doesn't ALWAYS work and obviously won't retroactively change results of previous calculations).

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    5. Re:Conjecture. by Brummund · · Score: 3, Informative

      "Whoever does not understand LISP, is doomed to reinvent it".

      (As a practical example, I used OpenGL in Lisp 10 years ago, and it was great to modify the code while the system was running.)

    6. Re:Conjecture. by SJS · · Score: 5, Insightful

      Smalltalk and Lisp are a good example, and they show (to me) that the problem isn't the language. The hard part about programming isn't the code.

      The hard part about programming is understanding and decomposing the problem. If you're not any good at that, then no matter what language you use, you're going to struggle and produce crap.

      This isn't to say that languages aren't important -- different languages lend themselves to particular problem-spaces by suggesting particular solutions. Picking the right language for the problem is as important as picking the right wrench for the nut.

      But there will never be a DWIM language, because the big problem is getting the programmer's brain wrapped around what needs to be done. Once that's done, what's left is only difficult if the programmer doesn't have the figurative toolset on hand.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    7. Re:Conjecture. by phantomfive · · Score: 1

      "wouldn't it be nice if we were no longer dependent on foreign oil... that would make so many things so much easier!"

      The funniest thing about this one is that it wouldn't matter. Even if we were no longer dependent on foreign oil, so many other countries around the world would be, that the middle east would still be getting funding for their terrorist programs.

      --
      "First they came for the slanderers and i said nothing."
    8. Re:Conjecture. by Anonymous Coward · · Score: 0

      And a chimpanzee could be trained to reproduce the works of Shakespeare! All you need a word processor with clear indicators for 'shakespeareness' feedback!
      Seriously though, probably the most important tools you'll ever have are pen and paper (or their equivalents), so you can scribble-scribble while you contemplate.

    9. Re:Conjecture. by TuringTest · · Score: 2

      Sure the difficult part is the problem. But if you have the computer doing the trivial and menial parts, the programmers mind will have more brain resources to expend analyzing the problem and thus it will be easier to solve the difficult part.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    10. Re:Conjecture. by BasilBrush · · Score: 0

      Until someone actually creates this new mythical language that is proposed by Bret

      Bret didn't propose a new mythical language. He presents a principle and he describes a possible way of life.

      The principle is applicable to an IDE for any language, and indeed to any tool for creation, not necessarily programming.

    11. Re:Conjecture. by Anonymous Coward · · Score: 0

      Smalltalk is heavily used in the financial industry

      [citation needed]

      I'm sure there are some financial services companies making limited use of Smalltalk. There are also some financial companies making limited use of many other niche languages (OCaml, Erlang, etc). But the vast majority of financial sector code, if I am to believe what I hear from people I know whose actual job is to write code in the financial sector, is written in mainstream compile-cycle-dependent languages such as Java and C++.

      Indeed, I have personal experience with a significant Smalltalk project. Not in the financial sector, but still relevant, I think. It had a very nice interface, quite powerful, lots of features. It was also completely replaced with a Java version, because the cost of finding and retaining Smalltalk developers (and paying for expensive VisualWorks licenses) was so great that the only affordable option was to rewrite it from scratch.

      "Smalltalk makes it easy to modify legacy code" may in fact be 100% true, and still leave Java as a better choice! Get your mind around that if you can.

    12. Re:Conjecture. by Anonymous Coward · · Score: 0

      Isn't that Haskell?

    13. Re:Conjecture. by MisterSquid · · Score: 1

      Even if we were no longer dependent on foreign oil, so many other countries around the world would be, that the middle east would still be getting funding for their terrorist programs.

      As long as we're talking hypotheticals, a solution that reduces US oil dependency (foreign and domestic) might be replicable in other places. One replicated, that solution would reduce dependence on oil everywhere.

      --
      blog
    14. Re:Conjecture. by phantomfive · · Score: 1

      That would be brilliant.

      --
      "First they came for the slanderers and i said nothing."
    15. Re:Conjecture. by Anonymous Coward · · Score: 0

      A principle without a means of actualization is a dream.

    16. Re:Conjecture. by Anonymous Coward · · Score: 0

      I came here knowing I would see this. Greenspun's 10th. People keep creeping up on Lisp, like moths, not even knowing the flame towards which they flutter.

    17. Re:Conjecture. by lucm · · Score: 1

      Smalltalk is heavily used in the financial industry

      [citation needed]

      I'm sure there are some financial services companies making limited use of Smalltalk. There are also some financial companies making limited use of many other niche languages (OCaml, Erlang, etc). But the vast majority of financial sector code, if I am to believe what I hear from people I know whose actual job is to write code in the financial sector, is written in mainstream compile-cycle-dependent languages such as Java and C++.

      I've been working in the financial industry for many years and I've seen a lot of weird technologies for products or in-house projects, including APL, but most of the stuff is java, C++ and some C#. Some big systems have their own scripting API that is usually available for Python.

      SmallTalk? Never seen it but in any event there is not a lot of ideology around technology in this industry, if a product is working nobody cares what is the underlying language, they'll hire busloads of consultants if needed.

      --
      lucm, indeed.
    18. Re:Conjecture. by TheRaven64 · · Score: 1

      I periodically get asked by JP Morgan if I want to come and work on the Smalltalk system that feeds all of their other in-house software.

      --
      I am TheRaven on Soylent News
    19. Re:Conjecture. by Mr+Z · · Score: 1

      Speaking of which, they've added lambda expressions to C++.

    20. Re:Conjecture. by Anonymous Coward · · Score: 0

      The hard part about programming is understanding and decomposing the problem. If you're not any good at that, then no matter what language you use, you're going to struggle and produce crap.

      BINGO!

      Even the greatest minds are going to make fencepost errors or miss a bounds check here or there. Those bugs, though, tend to be the easiest to fix and are often the easiest to catch. A good compiler may even be able to catch them for you if you crank the warning level up high enough.

      No compiler will diagnose a deep misunderstanding of the problem domain or a misunderstanding of how one's own code works. An example from work: We had a performance problem with one of our database-backed applications. It turned out that the code was asking the database for the same half-dozen static things over and over and furthermore, it was making a new connection every time, all in a misguided quest to be a "stateless" class. The class only gets invoked from short running scripts, not long-running daemons. The database is also almost entirely "write once, read many." Therefore, holding a connection open and caching static information locally is perfectly legitimate. Thousands of redundant database operations disappeared and running time improved by over an order of magnitude.

      I'm not a database guy, but I spotted these problems almost immediately. The guy who committed these mistakes has been programming database software for many years, and didn't even realize he had a problem. The difference comes down to really understanding what you and your code are doing.

      (Posting AC in case said coworker happens to be reading /.)

    21. Re:Conjecture. by MadKeithV · · Score: 1

      I periodically get asked by JP Morgan if I want to come and work on the Smalltalk system that feeds all of their other in-house software.

      Dude. That's code speak for "can you please come and use your people skills to sweet-talk our secretaries into doing their job".

    22. Re:Conjecture. by TheRaven64 · · Score: 1

      Heh. That would be more fun. They actually do have a pretty large Smalltalk team though. If you got to a Smalltalk conference you'll meet a lot of them.

      --
      I am TheRaven on Soylent News
    23. Re:Conjecture. by dargaud · · Score: 1

      The hard part about programming is understanding and decomposing the problem.

      The hard part about programming is finding the bugs in the underlying libraries you are using. You can prove your program correct and it still won't run properly.

      --
      Non-Linux Penguins ?
  5. Wait by bytesex · · Score: 4, Insightful

    Someone re-invented scripting languages ?

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
    1. Re:Wait by gl4ss · · Score: 4, Insightful

      well. yes. but sold the idea as having someone(the computer, AI) to magically setup the situation you were thinking of when writing that code too.

      it's very easy to demo the benefits with something that for example just draws something, but such game engines have been done before and isn't really that different from just editing the code in an svg- however as you add something dynamic to it... how is the computer supposed to know, without you instructing it? and using mock-content providers for realtime ui design is nothing new either so wtf?

      --
      world was created 5 seconds before this post as it is.
    2. Re:Wait by gbjbaanb · · Score: 1

      no, someone invented an interactive debugger.

      Really, it is easier to understand program flow by watching it work, but that doesn't mean its going to be a good program. Its far batter to understand a program by dividing it into pieces that are more manageable to us poor humans. That means defined interfaces and components (objects are generally too small to allow us to make good programs with), so go with a sensible middle ground and think about what you're trying to do. Works wonders for me.

    3. Re:Wait by Anonymous Coward · · Score: 0

      "how is the computer supposed to know, without you instructing it? "

      If you change the code..... the computer knows.

  6. Not intended for slashdot by Anonymous Coward · · Score: 0

    Interesting article this, just not for the slashdot crowd.
    Why? The subject is OK, it has to do with programming (so no discussion on whether YRO or similar is interesting to the /. crowd).
    The problem is the 'article' itself: it is almost shorter then the summary (and: /. users like their summary shorter then the article, mikejuk did his best!).
    The reason the article can be this short is that it links to a video. No problem you say? Surely in a few posts someone puts a transcription online.

    The moment I am writing this, this could be first post. Not that I think it will: it takes me too long too write.
    But at least I am sure that I will be BEFORE any one with an important comment on the article, AS IT TAKES 1 HOUR TO SEE THE VIDEO.
    And yes, the article says that it is somewhat slow to begin with, so the interesting bit is probably somewhere beyond the first 20 minutes or so.

    Why this rant? The article looks interesting, and I was planning to read it. Until I saw the 1 hour remark, surely slashdot editors do not expect us 'No-I-did-not-read-the-article-and-even-skipped-part-of-the-two-paragraph-summary-regulars' to actually view the video? It would be hilarious if after 10 minutes of the video it suddenly turned into something else, only no one on /. will actually get this point.

    1. Re:Not intended for slashdot by plankrwf · · Score: 2

      Just replying to myself, did not plan for the post above (yes, a first post!) to be made anonymous...

    2. Re:Not intended for slashdot by Barbara,+not+Barbie · · Score: 2, Insightful

      It was in the firehose a few days ago and I down-modded it because (1) the idea was stupid, (2) the article did not give anything but the vaguest hand-waving of explanations, and (3) there is no way someone is going to sit through an hour video if the blogger can't even bother to provide a half-decent summary - which is why I labeled it as binspam ... it's just link bait.

      --
      Let's call it what it is, Anti-Social Media.
    3. Re:Not intended for slashdot by Anonymous Coward · · Score: 0

      It was in the firehose a few days ago and I down-modded it because (1) the idea was stupid, (2) the article did not give anything but the vaguest hand-waving of explanations, and (3) there is no way someone is going to sit through an hour video if the blogger can't even bother to provide a half-decent summary - which is why I labeled it as binspam ... it's just link bait.

      And that is exactly what it really is. Here's a better summary:

      "Dipshit falls in love with the concept of a graphical IDE, advocates Guess and Check programming models as superior to Planning and Testing."

  7. Fine. by Kickasso · · Score: 2

    Now go program me a nuclear reactor control system with this.

    1. Re:Fine. by Anonymous Coward · · Score: 0

      That might be one area where it is inappropriate to use this type of tool. Seems like a pretty small slice of the overall software development pie, though, so I'm not sure what your point is.

    2. Re:Fine. by Kickasso · · Score: 2

      So nuclear reactors are out. Can you program a firewall this way? What about an airline ticket reservation system? A compiler, maybe? A web browser?

      His design is very good for instant unit testing, which is fine and dandy and I'm all for it.

    3. Re:Fine. by plover · · Score: 2

      Are you saying that trial and error isn't appropriate for a system that cannot fail even one time?

      I think it'd be very appropriate to build reactor control software with tests. Lots of tests. Lots and lots of tests. And you can simulate every device out there, you can simulate what happens when pressure builds or releases unexpectedly, you can simulate what happens when the operator pours his pepsi down the control panel and provides you with non-sensible inputs, etc.

      Matter of fact, I can't see any other way to build safety critical software. Not just testing the hell out of it, but designing it to be testable in the first place.

      --
      John
    4. Re:Fine. by ShieldW0lf · · Score: 1

      Are you saying that trial and error isn't appropriate for a system that cannot fail even one time?

      I think it'd be very appropriate to build reactor control software with tests. Lots of tests. Lots and lots of tests. And you can simulate every device out there, you can simulate what happens when pressure builds or releases unexpectedly, you can simulate what happens when the operator pours his pepsi down the control panel and provides you with non-sensible inputs, etc.

      Matter of fact, I can't see any other way to build safety critical software. Not just testing the hell out of it, but designing it to be testable in the first place.

      If you can't express what you want your software to do properly without throwing shit and attempting to get it to stick, what could possibly make you think you're qualified to create a simulator that reflects reality enough to be useful?

      If you're going to build safety critical software, it has to be deterministic. You can't assure that is the case with software built by trial and error.

      --
      -1 Uncomfortable Truth
  8. is it? by Anonymous Coward · · Score: 0

    A debugger the cloud? to help us solve NP-Hard problems?

  9. An observation... by Antony+T+Curtis · · Score: 1, Insightful

    If you need to "run" code, either in your head or on a computer, in order to see what it's going to do, you're probably not really programming and you're definitely not an engineer.

    --
    No sig. Move along - nothing to see here.
    1. Re:An observation... by Anonymous Coward · · Score: 1

      Guess that we had better go fire all of those damn physicists for wasting their time on their "models".

    2. Re:An observation... by vlm · · Score: 3, Insightful

      If you need to "run" code, either in your head or on a computer, in order to see what it's going to do, you're probably not really programming and you're definitely not an engineer.

      Would be a better post if you explained the "right way", hopefully its not mysticism.

      Whats wrong with processing this line of perl in your head according to the rules to figure out what it does? (admittedly I have no idea why the heck you'd want to do this, but its the simplest example I can think of using about 3 key perl concepts...)

      s/(.*):(.*)/$2:$1/;

      The other aspect has to do with new code vs maint (even maint of my own code). If I have no idea what I'm doing with my own freshly written code, thats just wrong... but old code always has some element of intense CSI work to figure out what it does before I can modify it..

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:An observation... by Anonymous Coward · · Score: 1

      And if you dont run it thru the debugger and STEP thru it you are just guessing what it will do.

      Many time I step thru my code to find some assumption I was making that is invalid.

      You can write code that compiles with 0 warnings on the highest levels, can get thru the most stringent of lint checks, passed dozens of code reviews, pair wise coded, etc, etc etc. But until you run it and step thru and see you will never know.

      Decent engineers know it is going to work. But the good ones test it too. They know people are screwups. Also you have built something do you know for a fact you are making the same assumptions of the other guy who wrote the function you are depending on?

      Best complement I get from fellow engieres "your code is easy to read and when it screws up it does it in a way I can tell what is wrong"

    4. Re:An observation... by KDR_11k · · Score: 1

      Or you're debugging.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    5. Re:An observation... by artor3 · · Score: 1

      WTF? How do you see what's going on in the code, if not by running it on a computer or in your head?

      Let me guess, if you need to add numbers with a calculator or in your head, then you don't really understand arithmetic?

    6. Re:An observation... by gl4ss · · Score: 1

      he means that you should code it in your head/paper/screen to some meta-language first("design") - then you're a real computer scientist engineer programmer, otherwise you're just a stinking hacker! waterfall or death!

      --
      world was created 5 seconds before this post as it is.
    7. Re:An observation... by bbn · · Score: 2

      Looking at your expression I do not think I "ran" it in my head. Rather i "understood" it the same way I look at an equation.

      Generally I do not find myself simulating the running of code when I look at a program. I only do that when the code is overly complicated and hard to understand. Or if it is a clever algorithm that I do not already understand.

      This is even more true for functional languages. Looking at some Haskell program it is not even always clear how the computer is going to "run" it. You look at it as a set of equations.

    8. Re:An observation... by DaveGod · · Score: 1

      I'd guess probably half of people doing a task involving significant technical skills don't really know what they're doing.

      Not to say that so many people aren't capable. It's more that for a significant chunk, once they reach that point then they're not so far off promotion. Then there's another chunk who specialise in something else entirely then found they need to do some programming or whatever as a tool for that.

    9. Re:An observation... by Anonymous Coward · · Score: 5, Funny

      I'd guess it slips a $1 and $2 bill into a stripper's titties by the looks of it.

    10. Re:An observation... by Anonymous Coward · · Score: 0

      Sorry bro, but no matter how much designing you do, you still have to run through low level algorithms in your head/on paper/on the computer during implementation time. There is no way around it. Being an engineer means you have good spacial abilities which makes this all the more easier.

      On a side note, my boss always yells at me and say, "If you spent half the time you spend designing and talking about code into actual coding, we'd get a lot of work done around here." My boss is obviously a fucking noob.

    11. Re:An observation... by Alex+Belits · · Score: 1, Insightful

      And if you dont run it thru the debugger and STEP thru it you are just guessing what it will do.

      If you are not right about behavior of your code, you are not qualified to write it in the first place.

      Many time I step thru my code to find some assumption I was making that is invalid.

      Then go kill yourself. People like you are the reason why there are bugs everywhere.

      You can write code that compiles with 0 warnings on the highest levels, can get thru the most stringent of lint checks, passed dozens of code reviews, pair wise coded, etc, etc etc.

      Compiler warnings are about things you are supposed to know -- a good programmer only gets them on typos or after removing things thus leaving something unused in the code.

      But until you run it and step thru and see you will never know.

      LISTEN, EVERYONE!

      This is what is wrong with those people. They think, they can write random shit, single-step through it, do more random changes, and repeat until it seems to run. Their code only works by accident. Get them out of programming.

      --
      Contrary to the popular belief, there indeed is no God.
    12. Re:An observation... by Alex+Belits · · Score: 0

      Science does not work the way you think it does.
      Also scientific research is the opposite of engineering -- research produces knowledge out of interaction with reality, engineering uses knowledge to produce interaction with reality.

      Now go, punch yourself in the face.

      --
      Contrary to the popular belief, there indeed is no God.
    13. Re:An observation... by vlm · · Score: 2

      I'd guess it slips a $1 and $2 bill ...

      Oh so close. She dances over to you with somebody elses one dollar bill in the left cup and a two dollar bill in the right cup and this magically swaps the $1 into the right cup and the $2 into the left cup without using a third cup, or even a hand. So it is essentially the popular internet meme "1 Girl 2 Cups". Even worse, a sharp eye can see the process involves a colon in the regex... This is going downhill fast...

      Three obvious ? perl concepts and the pitfalls surrounding them are:
      1) You're operating on the default variable $_. If a single variable chugs thru a dozen processing steps you don't have to name it each time. This is a complete statement, not just the right side of an equation.
      2) s/"before"/"after"/ is the simple search and replace operator. Guess how many times it S+Rs? There are options to control this other than the default and noobs always assume the default for s is what they want and it never turns out that way...
      3) If your regex matches something in parenthesis, later on you can access whatever that found using positional variables $1, $2, you get the idea. This is why perl is not amused at the idea of user variable names beginning with digits. Why does perl count regex matches from $1 instead of $0 like you'd expect? Well $0 means something completely different, thats for sure...

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    14. Re:An observation... by KZigurs · · Score: 1

      okay, never played with perl (I know, I know) - it takes line of input and swaps two blocks around first found ':' character?

    15. Re:An observation... by Alex+Belits · · Score: 1

      Your expression does not work you think it does if there is more than one colon in the input... ...bitch!

      --
      Contrary to the popular belief, there indeed is no God.
    16. Re:An observation... by Anonymous Coward · · Score: 0

      The latest trend is called S.C.R.E.A.M. programming. It's very cool and only for high priests of software development.

    17. Re:An observation... by jpapon · · Score: 1

      I know what you're trying to say, but what the OP said is even more important for physicists and models. Often they can't run their code to "test" it to make sure they get the right answer (except for trivial cases). It is VERY important that they know exactly what their code does before they compile it.

      --
      -- Let us endeavor so to live that when we pass even the undertaker shall be sorry. -- M. Twain
    18. Re:An observation... by TuringTest · · Score: 4, Interesting

      You approach makes lots of sense for writing mathematical of physical code, where you have a perfect model of the world that is the basis of the problem to solve. Your ancient Slashdot ID seems to indicate that this is the kind of that you have experience with; that, or the essential infrastructure for big businesses, which is similarly model-based.

      But when your program is for a specific business flow application, for which there is no model and the logic and corner cases must be elucidated from the client by showing a partially working prototype, the only way to extract all the requisites for the program is to throw in a few lines, show it to the user and ask what it's missing or how the current version is wrong, and then fix it; because the program's behavior has not been fully defined yet when the first version was written, it's d^Hrefined as a reaction of the working code.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    19. Re:An observation... by Oligonicella · · Score: 1

      You understand that you're responding to someone who is apparently deluded and thinks s/he makes no mistakes.

    20. Re:An observation... by Alex+Belits · · Score: 1

      "My approach" is the most fundamental of all foundations of engineering. The only alternative is quackery.

      --
      Contrary to the popular belief, there indeed is no God.
    21. Re:An observation... by Alex+Belits · · Score: 1

      There is a difference between being occasionally wrong by accident, and being occasionally right by accident. The idea you and this "TuringTest" guy are defending, is of the second kind.

      --
      Contrary to the popular belief, there indeed is no God.
    22. Re:An observation... by TuringTest · · Score: 1

      Engineering is for building bridges. When you try to modal software that reacts to human behavior, you have to deal with uncertainty. Unless your code doesn't react to human behavior, your approach is limited and won't solve all cases.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    23. Re:An observation... by TuringTest · · Score: 1

      Nope, you didn't understand the proposed idea and are making up stuff. I am proposing using the scientific method to build software, you are suggesting using a derivation from first principles.

      My approach is similar to physics, yours is similar to logic and math on abstract objects. If you work with data from the real world there's a point when logic and math alone won't work, you have to create hypothesis and test them against reality. That is what's being suggested here.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    24. Re:An observation... by TuringTest · · Score: 1

      Yup, already seen that; together with his low ID, that's why assumed he worked with classical well-defined problems A low ID on Slashdot has the potential of never making mistakes, if only because they apply their skills to that limited subset of the problems of the world. (It's the kindest assumption, the other one being that he is a severe case of the Dunning-Kruger effect, which is the other likely explanation for an overconfident low ID user).

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    25. Re:An observation... by TuringTest · · Score: 1

      s/modal/model/

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    26. Re:An observation... by Alex+Belits · · Score: 1

      Bugs have nothing to do with "human behavior". Humans are fine with software that does exactly what it's supposed to do -- a bad reaction to "human behavior" would be something like Windows 8 or GNOME 3 UI -- an irritating mess but not a bug.

      --
      Contrary to the popular belief, there indeed is no God.
    27. Re:An observation... by Alex+Belits · · Score: 1

      Scientific method is for research, and it involves devising theories that make sense.

      Alchemists used exactly the same method as those pseudo-programmers -- they didn't care about knowledge unless it promised to accomplish their goals, their reasoning was basically making up things randomly, and they spent centuries tinkering with chemicals trying to convince each other that they are getting closer to those goals.

      --
      Contrary to the popular belief, there indeed is no God.
    28. Re:An observation... by Cow+Jones · · Score: 4, Informative
      Around the last ':' character.
      * is a greedy "match as many as you can", and the first .* trumps the second.

      So the result of -- $_ = "foo:bar:baz:qux"; s/(.*):(.*)/$2:$1/; -- would be "qux:foo:bar:baz".

      --

      Ah, arrogance and stupidity, all in the same package. How efficient of you. -- Londo Mollari
    29. Re:An observation... by omglolbah · · Score: 1

      There is a distinct difference between coding against vague requirements and just coding plain badly.

      "If you work with data from the real world there's a point when logic and math alone won't work, you have to create hypothesis and test them against reality."

      No. Just no.
      When you write code the code does what you tell it to do. If you need to step through it to see what the code did, you are coding hoping to get the correct outcome.

      The issue of business logic and all sorts of customer requirements changing or being vague is entirely separate from the act of coding. You should not code it if you have no clear idea of what you want the code to do. Clarify it. Even if clarifying it is not an option, you have to have a clear idea in your head about what you want the code to do. If the issue is something as silly as 'we dont know if the customer wants an expense over X dollars to trigger reports or not" then you cannot implement the function without making a clear decision. Will it, or will it not trigger a report. You can code it to be easily changed later (check a config bool etc) but the code cannot do both at the same time.

      What "Alex Belits (437)" is commenting on is people who write code, step through fixing mistakes as they go and when it provides the expected answer they leave the code as is... Such code almost always breaks down when it is fed corner cases or obscure data. The DESIGN is not there, just the code. If the coder cannot understand what the code does without stepping through how can anyone expect said coder to build good code?

    30. Re:An observation... by Anonymous Coward · · Score: 0

      That's program code? I thought it was a geeky way of smiling and talking about money!

    31. Re:An observation... by Anonymous Coward · · Score: 0

      I think that means:

      (gawk)
      $0=gensub(/(.*):(.*)/,"\\2:\\1",1); #Also I suck Larry Wall's dick
      (true awk)
      k=split($0,a,":");$0=a[k];for(i=1;i<k;i++) $0=$0 ":" a[i]; #Also I suck Larry Wall's dick

      Just one of the many programs that may be implemented more concisely, but less readably, in perl.

    32. Re:An observation... by Kylon99 · · Score: 1

      Just to further the discussion, writing code without understanding why it does what it does and then moving it around until you hit some sort of 'win' condition is called Cargo Cult Programming.

      http://en.wikipedia.org/wiki/Cargo_cult_programming

      A cargo cult programmer on your team can be a huge negative influence in both his work and the reasons behind ways of doing things. At best, they will just be ineffectual members barely able to actually understand the technical issues at hand. At worse, whatever the person does will need to be checked, or basically re-done by someone else who does know what he's doing sooner or later.

    33. Re:An observation... by Anarchduke · · Score: 0

      Hey kid, quit posting shit on your Dad's slashdot account.

      --
      who prays for Satan? Who in 18 centuries has had the humanity to pray for the 1 sinner that needed it most? ~Mark Twain
    34. Re:An observation... by TuringTest · · Score: 1

      When you write code the code does what you tell it to do.
      And how do you find out what exactly you need to tell the code to do? I'm stating that building computer models is a good way to clarify that initial idea; i.e. to create a DESIGN, as you named it.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    35. Re:An observation... by TuringTest · · Score: 1

      writing code without understanding why it does what it does and then moving it around until you hit some sort of 'win' condition is called Cargo Cult Programming.
      Too bad that this is not what I'm advocating and Alex Belits (437) was attacking a straw man, isn't it?

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    36. Re:An observation... by locofungus · · Score: 1

      No. No. No!

      What he is saying is that when you write code it should do what you expect it to do.

      You should never, EVER, be using the debugger to find out what your code is doing. You might sometimes use the debugger to find out why it isn't doing what you expect.

      This is completely orthogonal to not knowing what your code /should/ do. Prototyping, iterating, throwing one away can all help with improving the requirements gathering.

      People who use debuggers to find out what their code is doing, fix the symptoms of whatever bug they are investigating and leave the bug festering. Later, someone more competent spots the bug in their code and tries to fix it only to discover there is layer upon layer of hack working around the problems it is causing and it's almost impossible to do anything at all with the code.

      Eventually, the only way forward remaining is to rewrite the code from scratch. But if you're going to rewrite a chunk of code, the first requirement is to understand what it is doing. When you have code that even the original programmer didn't understand when they originally wrote it the only real solution is to put one of your very best programmers to understanding the requirements, finding the unstated assumptions that are baked into this incomprehensible mess and sorting out the issues.

      I call these incompetent programmers "coincidence programmers." They keep making random changes until their code appears to work for the one test case they actually have. If it were such a great way of programming, or even if it were marginally useful then we wouldn't need programmers at all. Computers can do what these people do far better than people can.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    37. Re:An observation... by dbIII · · Score: 1

      So then, the difference between an engineered solution and basket weaving?
      I don't mean it personally, just there's a lot of people here that like to call themselves "engineer" even if they don't know high school algebra and take an ad-hoc approach to everything. There's also a lot of engineering projects that are effectively duct taped together at the last minute but that's never considered to be an engineering approach.
      It's hard to produce anything of value when you have no clue what you are setting out to do.

    38. Re:An observation... by dkf · · Score: 1

      And if you dont run it thru the debugger and STEP thru it you are just guessing what it will do.

      Your inexperience is showing. Quite apart from the fact that you should make your assumptions explicit in your code (if the argument must not be null, put code in to check it!) you have the problem that there's a lot of code where attaching a debugger is impossible because it runs in a tricky environment. You can try to test by putting the code in an environment mostly populated by mocked components, but you can't be sure that you've got things right in such a situation: more often than not, the problem comes when components undergo a subtle change unannounced. (I had to deal with such a problem a few weeks ago. Everything worked within itself, but failed to function correctly when integrated; the problem was a change to the encoding of one of the files used in the interface itself. The whole shebang was rather security-aware too, so debugging was super-difficult.)

      Many time I step thru my code to find some assumption I was making that is invalid.

      You can write code that compiles with 0 warnings on the highest levels, can get thru the most stringent of lint checks, passed dozens of code reviews, pair wise coded, etc, etc etc. But until you run it and step thru and see you will never know.

      Single-stepping is crappy way to debug code. Far better to have a consistent fundamental model and prove that your code adheres to it. It's a technique that tends towards the mathematical/logical end of things, but it works far better than simply trying to step through in that it can catch problems where required code is missing. (OTOH, stepping can help with cases where you've got a really nasty abstraction-busting bug like an endian-specific stack smash. I've seen some weird stuff in my time, and I now mostly pick my languages to avoid the worst disasters.)

      Best complement I get from fellow engieres "your code is easy to read and when it screws up it does it in a way I can tell what is wrong"

      My favorite is "I can't see how else you could possibly do it" when I know there's loads of ways which are all worse; means that the model I've picked is actively guiding people away from the dangers.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    39. Re:An observation... by Anonymous Coward · · Score: 0

      Spoken like the best religion acolyte there is, ignoring the world if much more and can't be tamed by any engineering approach or that such approaches conflict with other constraints like time or money. I know because they always tell me that.

    40. Re:An observation... by dzfoo · · Score: 1

      So now you show how little you know. The correct approach is the one "similar to logic and math on abstract objects" than to physics, precisely because programming is applied mathematics.

      The scientific method is used for physics to discover and understand the world around you, i.e. the model.

      Programming is the implementation of a model that solves a problem, one that by all measures should have been discovered and understood already. This is indeed done from abstract concepts and first principles.

      If you are discovering and learning how to solve a business problem while typing away source code, then you are in the wrong trade and your code is doomed to fail.

            -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    41. Re:An observation... by TuringTest · · Score: 1

      And what is physics other than applied mathematics? (plus empiric tests, of course).

      This is indeed done from abstract concepts and first principles. If you are discovering and learning how to solve a business problem while typing away source code, then you are in the wrong trade and your code is doomed to fail.

      There's a whole field of computer science that disagrees with you. (BTW you're the only one talking about "typing". I was always about "using" software to find out business models, which is a significant and completely different alternative).

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    42. Re:An observation... by TuringTest · · Score: 1

      We are 100% in agreement. It's a shame that your post is completely orthogonal to what I intended to discuss. ;-)

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    43. Re:An observation... by TuringTest · · Score: 1

      Scientific method is for research, and it involves devising theories that make sense.

      Yup, it looks that we agree to something for the first time.

      I wasn't ever talking about debugging and always about researching an unknown or under-specified problem. I'm afraid you completely misunderstood my position thinking that I was talking of the implementation phase of protramming, i.e. writing code. I was not.

      I was talking about problem-solving using a semi-automated environment that would generate on-the-fly logic inferences, so that the computer controller could use the hyman brain's strengths to recognize which computer inferences are relevant to the problem to be solved, reason whether they are correct or not, and then commit the correct ones to be the problem's mathematical definition. Something like Mathlab and Octave, but with computer-specific reasoning primitives. PROLOG and Haskell are often used in similar ways to what I propose, but they aren't there yet.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    44. Re:An observation... by omglolbah · · Score: 1

      That isnt really what the low-user-id person was commenting on at all though.. We're talking about someone who has a clear design but still has to step through the code to 'verify' that each piece of code does what he or she thinks it does.

      If you have to do that you do not have the required understanding. I have to admit that I have to do it from time to time, mostly when dealing with code that has little or no documentation and unclear purpose. That isnt really coding though, that is detective work of the worst kind :(

      Stepping through is a good thing to have when debugging or even more important when learning. Doing it when writing code in a team though leads to pain for all involved..

    45. Re:An observation... by Kylon99 · · Score: 1

      Yeah, I get the feeling you two were talking about different things.

      Weren't you talking more about, after writing code that you understood, to run through a code coverage test with a debugger, to verify that the system is indeed working the way you intended it to?

      I would support this to a limited degree. For complex code, I would do some checks, but I won't be spending any time verifying that simple code like assignments, or if statements, actually work the way they're supposed to work.

    46. Re:An observation... by Alex+Belits · · Score: 1

      Unfortunately, THIS discussion is about writing and debugging software, not about using software (already written and known to be not buggy) to analyze the nature of some data and apply it to problem solving.

      --
      Contrary to the popular belief, there indeed is no God.
    47. Re:An observation... by Alex+Belits · · Score: 1

      The way I usually explain it to people:

      "Debugger is not a debugging tool. It's a reverse-engineering and crash analysis tool".

      --
      Contrary to the popular belief, there indeed is no God.
    48. Re:An observation... by Anonymous Coward · · Score: 0

      Looks like someone bought a low uid account...

  10. wat by Anonymous Coward · · Score: 0

    Sounds like he (The guy in the video) spends too much time thinking about other things and not enough time actually coding.

  11. Silver Bullet Alert by Anonymous Coward · · Score: 0

    Every other month someone comes up with yet another Silver Bullet. It is so boring, so fscking boring.Don't /. editors have a little bit more clue than posting such rubbish as news?

  12. Sounds like they have a GUI REPL by istartedi · · Score: 4, Insightful

    Unless somebody wants to give a better executive summary, there's no way I'm weeding through an hour of video. Do they have any idea how many hours there are of "the one video you must see this year" on YouTube?

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    1. Re:Sounds like they have a GUI REPL by Anonymous Coward · · Score: 0

      There's a long thread about this over at SA, in their SH/SC forum. The discussion there is arguably more interesting than the video itself. :)

    2. Re:Sounds like they have a GUI REPL by Twinbee · · Score: 4, Insightful

      Okay, let's give this a go, well the first 25 minutes anyway. He's talking about seeing the effects of programming not after compiling and running, but while you're actually *typing*.

      The first example (with the fractal tree) is interesting. He changes a number in the code, and the trunk gets taller, or the number of leaves grow. He then adjusts the variable in the code as if it were a slider, and the picture updates accordingly in realtime.

      Second example is a platform game. He is able to user a slider to go back and forwards throughout time, and change certain parameters such as the gravity, or speed of the enemy turtle. To solve a problem at the end where he wants the character to jump at a very particular height, he employs a 'trail' of the character over time (so you can see all of 'time at once'). Adjusting the variable he can get that perfect jump height more intuitively. The 'character trail' changes in realtime as he adjusts the variable.

      The third example is where he talks through a binary search algorithm. Usually, you're blind as you have to figure out what the computer is doing behind the scenes. But let's say you can see the output as you're typing. The numbers of variables are drawn to the right as you're typing. If there's a loop, then there will be more than one value. In this case, the values are segmented horizontally in the output.

      I've thought of a lot of the things that this guy has said (and even semi-planned to incorporate his third idea into my OpalCalc program shown in my sig), but a couple of things were moderately surprising, and it's nice to see it all in action.

      --
      Why OpalCalc is the best Windows calc
    3. Re:Sounds like they have a GUI REPL by Samantha+Wright · · Score: 1

      Continuing your post:

      The fourth example is a dynamic circuit diagram that displays voltage and amperage over time. I'm not an electrical engineer so I don't know much about it, but it seems to me that this has already been done at least once. (I'm sure there are more mainstream examples than KCIRC, but it's one I've run into.)

      The fifth example is exactly like the iPad version of Garage Band, except with animation tweens instead of musical instruments: you play back the tracks that have already been performed while creating the next one. This is a pretty exciting idea, but he's a couple of years too late for it to be truly remarkable.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    4. Re:Sounds like they have a GUI REPL by FiloEleven · · Score: 1

      His guiding principle is that "creators need an immediate connection to what they create." He gives four examples as they can apply to programming: scene rendering, game mechanics, coding abstract concepts (implementing binary search in the example), and animation. In my opinion all four of them are noteworthy.

      The biggest difference between this and REPL is indeed that it's graphical. But, at least the way he has implemented it, that is not a trivial difference! In the three naturally graphical examples, the coupling between the code and the rendered image is very dynamic and explicit. In every case save for animation, there are two windows living side-by-side: the canvas or a data view, and code. In the scene rendering example, he has a functionally-generated tree with sky and mountains behind it, and when he changes the var controlling the tree's height, the tree instantly changes to reflect it. He's also added number sliders--by alt-clicking a number in the code window, you can slide your mouse left or right and immediately see the effect it has on the scene. Kinda boring with the tree height slider, but there are other more interesting variables available to play with. In addition, you can alt-click the image, which highlights the pixel you're over and any other pixels that are drawn by the same function, and also takes you to that function in the code itself.

      The game mechanics example is the one I found to be the most compelling. Game design takes a lot of trial and error to get things feeling right, and that's where those number sliders start to look very tasty indeed. On top of that, he's essentially turned Braid's main mechanic into a development tool--play the game a bit, then you can replay the controller input and see the effects any code changes you make have on what happens. Or, display a ghosted path of the entire recorded segment--so you can see how the entire jumping arc is affected when you slide the impulse var value around. The emphasis in these first two examples is on play, and how being able to play around with things and get instant feedback on them can lead to new things you wouldn't have thought of doing otherwise.

      The abstract stuff is closest to REPL, since there is no canvas component. But the immediacy is still compelling and looks to me how a debugger ought to act. It's as if the "watch" window in a traditional debugger showed you not only what a var's current value is, but what it was before and what it will be after the next assignment five lines down from here. In the binary search implementation, he writes the line "pivot = (min + max) / 2" and, given the concrete data he'd already defined in the data window, immediately sees "pivot = 2.5". That's obviously not a valid array index, and it was caught and corrected immediately, with no need to compile and run and see unexpected results and stare at the code, and turn on the debugger... When he implements a loop, the state of each variable during each iteration of loop are shown with a new column added for each run through the loop. And if he changes the searched-for array item in the data window, all values are instantly updated.

      The advantages become clear when you see it in action. You don't have to write a bunch of test functions to call your code with various inputs, then compile and step through the results, or litter your code with debug and print statements to see what's going on. It's all clearly laid out before you, making it easier to see if it's actually doing what you intended and expected it to do. Of course writing those tests later on is still a good idea, especially for a large project, but this way of working never pulls your focus away from your primary objective: working on whatever functionality you're working on.

      After watching the video I looked on his website to see if he's made any of these tools available, and it doesn't look like it. I am very impressed, though, and I hope he releases them or someone else picks up on the idea.

      This is much less of an executive summary than I anticipated. I'm long-winded. Sorry.

    5. Re:Sounds like they have a GUI REPL by istartedi · · Score: 1

      I think you've answered my question the best so far.

      It sounds like GUI builders genaralized to other problems, to the maximum extent that's possible. Believe it or not, I actually did something like that eons ago with a VRML editor I worked on. You could change the colors and shapes of objects while they whirled around under the direction of a very simple scripting language. My scripting language only had basic math and a few trigonometric functions.

      Of course in order for this to work the language has to be interpreted (or re-JIT compiled when you make changes). If you're willing to accept the performance of an interpreter in your application that's fine. As the modern web shows us, many people are willing to accept less performance for what those languages bring to the table. Very often the argument is based on developer productivity so if this can do that, more power to him.

      I think we might even be able to call this setting oriented programming. You change the settings in the program, and the settings become a part of the program. Carried out to the logical extreme, you load and run "nothing", and change the settings on it until it does what you want. Then you export your .conf, .INI, or registry from the session of "nothing" that you ran. The .conf file is the program.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    6. Re:Sounds like they have a GUI REPL by dkf · · Score: 1

      I think we might even be able to call this setting oriented programming. You change the settings in the program, and the settings become a part of the program. Carried out to the logical extreme, you load and run "nothing", and change the settings on it until it does what you want. Then you export your .conf, .INI, or registry from the session of "nothing" that you ran. The .conf file is the program.

      Ssssh! I know people who have been using this technique for over a decade to sell scripting to their overly-conservative management. "It's all a compiled program, it just loads a few settings from a text file so that we can customize a few bits at the last minute." (Sure, those settings just happen to be an honest computer program, but that's strictly a matter for techies only...)

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    7. Re:Sounds like they have a GUI REPL by Anonymous Coward · · Score: 0

      So, you didn't get beyond the 25 minute mark either, eh?

    8. Re:Sounds like they have a GUI REPL by Anonymous Coward · · Score: 0

      opalcalc looks really nice. what a bummer it's windows only :( love the idea though.

  13. Been There Done That. by Anonymous Coward · · Score: 4, Informative

    I've been doing this for years with Python's interactive prompt. I write code and test it on a line by line basis as I'm programming when working with unfamiliar libraries. The code that works is then put into a permanent file for reuse as a script or compiled to an executable for distribution to my end users.

    1. Re:Been There Done That. by Anonymous Coward · · Score: 0

      I've been doing this for years with Python's interactive prompt. I write code and test it on a line by line basis as I'm programming when working with unfamiliar libraries. The code that works is then put into a permanent file for reuse as a script or compiled to an executable for distribution to my end users.

      Python? For years? Please! I was doing the exact same thing on my Apple IIc when I was 6. That idea has been around almost forever. And it's a terrible way to write complex programs.

  14. The one video you must see this year by Anonymous Coward · · Score: 0

    Do they have any idea how many hours there are of "the one video you must see this year" on YouTube. I wager at least 2 years worth.

    It sounds like they have a REPL, possibly with a GUI standing in for readline. Unless somebody has an executive summarty that refutes that, I'm not wasting my time.

  15. Reverse applies by Anonymous Coward · · Score: 1

    ... and I started to feel like a programmer when I stopped needing to check the effects of my work every other 5 minutes.

  16. Obligatory Dijkstra by 1729 · · Score: 4, Insightful

    "I remember how, with the advent of terminals, interactive debugging was supposed to solve all our programming problems, and how, with the advent of colour screens, "algorithm animation" was supposed to do the same. And what did we get? Commercial software with a disclaimer that explicitly states that you are a fool if you rely on what you just bought."

    From http://www.cs.utexas.edu/~vl/notes/dijkstra.html.

    1. Re:Obligatory Dijkstra by Barbara,+not+Barbie · · Score: 2

      I'd argue that colour screens did give us a big, obvious, and immediate improvement - syntax highlighting. No having to learn some new technique or method - just open your existing code and the editor highlights it accordingly. Off-hand, I can't think of anything else that, by itself, had as much of an impact across all programming languages.

      --
      Let's call it what it is, Anti-Social Media.
    2. Re:Obligatory Dijkstra by 1729 · · Score: 1

      Yeah, I like syntax highlighting (and color screens in general), as well as interactive debuggers. Certainly, we can write code faster and find bugs more efficiently with all the tools available today. But it's the "silver bullet" claims that I'm skeptical about.

    3. Re:Obligatory Dijkstra by Barbara,+not+Barbie · · Score: 1

      I agree - I marked the submission as binspam in the firehose because it's pretty much crap designed for page views. A real article would have at least had a summary of the video. If they can't be arsed to at least summarize it, I can't be bothered to watch it.

      --
      Let's call it what it is, Anti-Social Media.
    4. Re:Obligatory Dijkstra by DriedClexler · · Score: 1

      Unfortunately, the next paragraph reads:

      And now we have the multimedia/communication hype: the best bits are those that just arrived from far away, and if you are not "on line", "on the Net", you just don't count, you are not of this world (which is virtual anyhow...). Apart from a change in vocabulary, it is the same hype, the same snake oil over and over again, and you can do me a favour by not getting excited by all the time you are supposed to save by switching to "home banking".

      --
      Information theory is life. The rest is just the KL divergence.
    5. Re:Obligatory Dijkstra by A+beautiful+mind · · Score: 2
      I giggled like a schoolchild when I've read the next paragraph from that lecture:

      And now we have the multimedia/communication hype: the best bits are those that just arrived from far away, and if you are not "on line", "on the Net", you just don't count, you are not of this world (which is virtual anyhow...). Apart from a change in vocabulary, it is the same hype, the same snake oil over and over again, and you can do me a favour by not getting excited by all the time you are supposed to save by switching to "home banking".

      Sometimes very smart people can be mostly insightful, but very spectacularly wrong on some points.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    6. Re:Obligatory Dijkstra by Raenex · · Score: 2

      Sometimes very smart people can be mostly insightful, but very spectacularly wrong on some points.

      Dijkstra turned into a figurative monk in his later years, dedicating himself to austerity and impractical principles. Kinda like Stallman is for "Software Freedom". There's some value in that, but the rest of us need to get work done, perfection being the enemy of the good.

    7. Re:Obligatory Dijkstra by Anonymous Coward · · Score: 0

      If you think of it, you will see that he still have a point. There is some wisdom in what he was saying.
      First, there was bloging, now it's Facebook and Linked In. Everywhere, you read that you don't exist if you are not on it.
      In the end, trends pass and you realize that maybe you have saved the commute time but you kind of miss the guy behind the counter.

    8. Re:Obligatory Dijkstra by Jaxoreth · · Score: 1

      I'd argue that colour screens did give us a big, obvious, and immediate improvement - syntax highlighting.

      Actually, THINK Pascal did syntax highlighting on black and white Macintosh systems. It used different styles, such as boldface, instead of colors.

      --
      In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide
  17. My boss sent me this drivel as well by AdrianKemp · · Score: 4, Funny

    It is the most worthless, dumbass thing I've ever had to sit through.

    It's just another "wouldn't it be great if computers programmed themselves" video by someone too stupid to tie their own shoes.

    I know what the code I'm writing is going to do *before* I start writing it, as I hope for the love of god most programmers do.

    In fact, the biggest plague on programming ever has been this concept that changing what you want fifteen times along the way is perfectly okay and we just need to adapt methods to that idiocy. You don't need any of this crap if you just know what you want ahead of time.

    1. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 1

      I know what the code I'm writing is going to do *before* I start writing it, as I hope for the love of god most programmers do.

      Some of us occasionally write programs with bugs. It's good to hear you don't.

    2. Re:My boss sent me this drivel as well by KreAture · · Score: 1

      Agreed!
      When you write code you should be 100% sure what the code will do. If not you don't really know how to program and can be categorized as belonging to the "poke at it untill it works"-crowd and be banned from comercial programming all together. (Members of that crowd should stay away from kernels and other important open source projects too, please.)
      Working with such coders will be frustrating at best, and the death of projects at worst.

    3. Re:My boss sent me this drivel as well by bertok · · Score: 1

      Maybe an analogy would actually be better...

      Think of programming as a Mathematician developing a new maths proof. The Mathematician may not know how to get to his goal, but that doesn't mean that the solution isn't robust, or that he needs a calculator at every step.

      Similarly, a good programmer can develop robust and easy-to-maintain code even without an a-priori design, or automated assistance.

      Where machine-assistance comes in is that I can see situations where a computer can assist the Mathematician in a way that a calculator can't -- through things like formal proof verifying software, or software like Mathematica that can be used to perform difficult and error-prone symbol manipulation steps like simplification, factorisation, integration, etc... Also, it's possible to use computers to perform brute-force numeric verification, and even reverse-engineering, which can give useful hints. There's software methods for taking a numeric result, and "guessing" what symbolic expression could have produced it, which can be very useful for someone who's become stuck and just needs a hint of the form of an expression.

      Similar methods have been applied by programmers for years. Think syntax highlighting, live error checking, or static code analysis. With sufficient computer power, these methods could be extended further. For example, wouldn't it be great if code could be given random inputs (or recorded inputs), run bunch of times, and then each section of the code highlighted based on hit-rate or time taken? A profiler can do that for you now offline, but I'd say we have the CPU performance to do this live with small blocks of code.

    4. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 0

      and you're an idiot troll

    5. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      You are wrong, and I hope in time you see this.

      Programming is *not* like a mathematician stumbling upon a new proof. Programming is in fact extremely rigid and based upon a series of existing mathematics.

      There is no room in *professional* software for stabbing in the dark. There is all the room in the world for that in hobby programming done by professionals or otherwise.

      I don't expect a carpenter to build a house without a blueprint, it'd turn up as shitty as most modern software.

    6. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      You don't need any of this crap if you just know what you want ahead of time.

      and i am sorry boy , things don' t actualy work in this way. Not in the real world at least. I guess your boss already told you this...

    7. Re:My boss sent me this drivel as well by Twinbee · · Score: 1

      Wow, to be able to get code right first time without ever debugging, you must be super-human. Perhaps we should throw away the debugger altogether, and any debugging output. While we're at it, throw away any regression or unit testing. - they're only for morons.

      --
      Why OpalCalc is the best Windows calc
    8. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      what is with your morons and equating the video I was commenting on to debugging?

    9. Re:My boss sent me this drivel as well by Alex+Belits · · Score: 1

      A bug is a failure on the part of the programmer. You are supposed to recover from occasional failures, not have them as a constant and mandatory presence in your work.

      --
      Contrary to the popular belief, there indeed is no God.
    10. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      Why exactly do you guess that?

      See, us intelligent programmers realize that without knowing what you're building to start with it's impossible to ever build it in a reasonable amount of time.

      But you go ahead with your idiocy, I'm sure it will serve you well in some low paid job at a sub-par software shop.

    11. Re:My boss sent me this drivel as well by Oligonicella · · Score: 1

      It sounded as if you were saying that you always write perfect code. You may not have, but that's what it read like.

    12. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      I can't imagine how what I said could possible be interpreted that way.

      I know what my code is going to do before I start, that doesn't mean I never make mistakes. What it does mean is that when I make a mistake I can actually tell.

    13. Re:My boss sent me this drivel as well by Oligonicella · · Score: 1

      OK. What I'm getting is that you do in depth analysis, which I do too. You generate some form of road plan, whatever combination of analysis presentation floats your boat. Then you approach the coding.

      Unless you have some environment that assembles all your stuff into code, aren't you doing the coding? And, being human, aren't you as prone as anyone to making a trivial mistake, or are you ensconced in an environ suitably able to catch those before compilation/assembly/interpretation?

      Just for your analogy's sake, carpenters can and do take a blueprint and construct it wrong. Sometimes the blueprint itself is incorrect.

    14. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      You clearly did not watch the video.

      It is not about compiling debugging or error checking, it's about realtime feedback of what you're writing so that you can change it (the intended function) as you go.

      That should never be necessary because you should know your goal before you start. Debugging and optimization are completely separate from TFA.

      I said nothing about a carpenter messing up, I said it would be stupid as hell for them to try to start without one.

      Watch the video before continuing this discussion

    15. Re:My boss sent me this drivel as well by Twinbee · · Score: 1

      Did you see the video? Did you see the part where he was going through the binary search algorithm? Granted, that's an easy example, and maybe you could get it right first time.

      But in more complicated examples, having the output displayed in a panel to the right to show what each line of code actually does (for given sample input); well, I think that's a massive improvement. Time spent debugging should decrease accordingly. Wouldn't you agree?

      --
      Why OpalCalc is the best Windows calc
    16. Re:My boss sent me this drivel as well by TuringTest · · Score: 1

      That should never be necessary

      As long as you have perfect knowledge of the environment on which the system will run.

      The tools in the video are best for the cases when you don't have done in advance a perfect analysis of all the existing conditions of the environment; in that case, the tool will allow you to create the perfect knowledge that you will need to complete an error-free working program.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    17. Re:My boss sent me this drivel as well by rossjudson · · Score: 1

      There is a very, very good chance that relative to Bret Victor, you are the one too stupid to tie shoes. You might want to have a look at worrydream.com, if you want to learn something about interactive visualizations.

      It's great that you work on dumb-fuck simple problems, such that you know what everything "is going to do". In the face of concurrency, user variation, systems failure...you know what it's going to do? We should all bow down.

      So, genius -- you are creating an L-System simulation of an oak tree. What's the system, and what are the constants involved? No cheating. You've already told us you know what your code is going to do, which means that in your magic, magic head-space, you already have the answers.

    18. Re:My boss sent me this drivel as well by BasilBrush · · Score: 1

      It is the most worthless, dumbass thing I've ever had to sit through.

      There are some people that are visionaries, there are some people who can't see anything ever being different from how they are now. He's the former, you're the latter.

      People like him invented GUIs. If people like you were in sole control we'd still have to do everything via modal text interfaces.

    19. Re:My boss sent me this drivel as well by BasilBrush · · Score: 1

      Cathedral thinking.

    20. Re:My boss sent me this drivel as well by BasilBrush · · Score: 1

      That should never be necessary because you should know your goal before you start.

      That's fine if you're building YATTBBB (yet another thing that's been built before). If you're creating something new, perfect plans ahead of time aren't always possible.

      I must say I'd hate to be in your uncreative world.

    21. Re:My boss sent me this drivel as well by BasilBrush · · Score: 2

      It's "you morons", not "your morons and", and a sentence starts with a capital letter. What's the matter, didn't you know what the sentence was going to be before you wrote it?

    22. Re:My boss sent me this drivel as well by BluBrick · · Score: 1

      If your code has ever behaved unexpectedly, then you obviously did not know what that code was going to do before you wrote it. Me, I always know what I intend my code to do before I write it, but I often need to change the way I implement my intentions before I'm done. Perhaps that's because I am a mere sysadmin rather than a programmer.

      --
      Ahh - My eye!
      The doctor said I'm not supposed to get Slashdot in it!
    23. Re:My boss sent me this drivel as well by BasilBrush · · Score: 0

      Here's a prediction. The software you work on is very, very, very boring. Kernel, embedded, industrial, banking back office, something like that. Am I close?

    24. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      I'd hate to be in your uninformed world.

      All that video's talking about is YATTBBB (and clearly NIH for you and him). It just doesn't scale and generalize well.

      When producing visualizations takes as long as coding the algorithms that produce data to visualize - it's not a viable way to code.

      There's two use cases for this:

      a) When visualization is your end result (that's why games and procedural graphics are already being built interactively - look at Cube's level editor or at Unity's interactive development)

      b) When you're developing something never done before, which is why visualisation costs don't bother you.

      (a) is YATTBBB, (b) is rare and specific (and YATTBBB as well - when I was fidding with compression algorithms, I just set up a lot of visualisation in Mathematica and played with the algorithm instantly watching the results. All I had to do afterwards is translate the result to C for the device it was targeted to)

    25. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      98% of software is "very, very boring" by your definition.

      The remaining 2% of visualization and human interaction is already developed interactively.

      This guy's all like "I've just got a great idea! See, if I fix these two round thingies on an axis that really helps with transportation. Why didn't people think of it before? I mean, I could have moved my house easily if I'd tuck those on!"

    26. Re:My boss sent me this drivel as well by zephvark · · Score: 1

      Wow, to be able to get code right first time without ever debugging, you must be super-human. Perhaps we should throw away the debugger altogether, and any debugging output.

      There's nothing superhuman about it. Most of my code works perfectly the first time through... but then, I've been programming for over 30 years now. Most companies probably can't afford to wait that long. Heh. Of course, a good debugger is a wonderful tool indeed.

    27. Re:My boss sent me this drivel as well by Oligonicella · · Score: 1

      You clearly did not watch the video. ... Watch the video before continuing this discussion.

      Uh, yeah I did. Fuck yourself, son.

      It is not about compiling debugging or error checking, it's about realtime feedback of what you're writing so that you can change it (the intended function) as you go.

      And, that concept's been called into question for general use. Please explain how you would provide "realtime feedback" on an inter-bank wire exchange module that requires bank clerk entry, supervisor approval and third-party verification when the "realtime" application isn't even real time. Added bonus: no two banks do it exactly alike.

    28. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      You're too stupid to have any sort of conversation with, debate or otherwise.

    29. Re:My boss sent me this drivel as well by FiloEleven · · Score: 1

      Everything you have ever written works perfectly, the first time? Damn, I must be doing it wrong. Like every other programmer I've ever met.

    30. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      People like him most certainly did not invent the GUI.

      People who actually know what they're doing invented the GUI.

      Tell me, in his pretty examples where all of the *actual* code is buried under frameworks, how do I visualize that?

      Where is the visualization for the OpenGL/DirectX calls that his code is actually making? The collision detection algorithms, etc. etc. etc.

      He came up with some contrived, useless drivel of demos that *might* work for something like flash "development". It in no way overlaps with actual programming and it's offensive that he thinks it does.

    31. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      I know what my code is going to do before I start, that doesn't mean I never make mistakes.

      s/going/supposed/

      That should take the apparent arrogance level down a few notches.

    32. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      Yeah, did you happen to notice that all the binary search stuff is just the debugger?

      Meanwhile, it can't be done using a compiled language which makes it useless.

      Most importantly, notice that he chose a binary search on 6 goddamn items?

      How would his little demo have looked with an array of 80 items or an array within an array? All he's doing is dumping variables to the screen -- there's no visualization involved.

    33. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      They are one and the same. My code is eventually going to do what I set out for it to do unless someone changes the project or scraps it.

      What he talks about in the video is "exploring" code, even in the binary search stuff he actually uses the phrase "So I've kinda got a feeling for what this algorithm does now"

      It's backwards, you decide what you want and then you build it.

      A design tool? sure, he's nailed it. A programming tool? not a fucking chance.

    34. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      What if you knew that the guy on the video designed the initial user interface concepts for a product they later named the iPad?

    35. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      Thank god that someone agrees with me on this. This video is the kind of crap Apple users thinks makes them "advanced" and real programmers think: "Why don't I just use my brain instead?".

    36. Re:My boss sent me this drivel as well by Anonymous Coward · · Score: 0

      Jesus, you must really be a fucking terrible programmer. You aren't understanding the importance of serendipity and quick iteration, you're just accepting the first thought that comes into your head as obviously the most effective solution and calling it 'experience'. No, it means you're actually quite limited in your range of thought if you do not do any sort of exploratory work. No one is impressed with you and your behavior is childish.

      People like you are a plague.

    37. Re:My boss sent me this drivel as well by Cederic · · Score: 1

      Look, I don't know the guy - but I do know he doesn't know software engineering. How? I've seen his code.

      Shit. Function parameter 'i', used inside the function for multiple if statements
      if (i 6)...

      No fucking wonder he doesn't know what his code's going to do, he's writing it like a 14 year old that only knows BASIC.

      Maybe if he spent less time fannying around with artistic visualisation and a little more time learning the basic disciplines he'd actually get further. I have no issue with people that think and learn visually, but he's crippling himself with his amateur approach.

    38. Re:My boss sent me this drivel as well by Twinbee · · Score: 1

      Meanwhile, it can't be done using a compiled language which makes it useless.

      The debugging could run using a separate fast interpreter of the same language (or maybe even JIT - C# has a lag of about 100-200ms if you're careful).

      Most importantly, notice that he chose a binary search on 6 goddamn items?

      Yes, there comes a point where more complicated code could complicate matters. But use your imagination - whether it's sliders within sliders to control time in a double nested loop, or tree-like information which expands for a given line of code to dig deeper. There has to be a way to generalize.

      --
      Why OpalCalc is the best Windows calc
    39. Re:My boss sent me this drivel as well by Twinbee · · Score: 1

      Well, you're possibly the exception, and can probably handle abstract thought better than most. Having said that, optimizing the speed of a raytracer, and working out a subtlety in the shadowing of a globally illuminated object is tremendously tricky to get right first time.

      --
      Why OpalCalc is the best Windows calc
    40. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      No, that's just it... There *doesn't* have to be a way to generalize.

      If there were a way to generalize complex code none of us would have a job.

    41. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      And you're too stupid to understand that design and programming are separate things.

      You think engineers tweak bridge plans as they're going just to see how it works out?

      Fucking retard.

    42. Re:My boss sent me this drivel as well by Twinbee · · Score: 1

      I meant generalize the format of the debugging output.

      Currently, his binary search demo produces 3 columns to represent 3 cycles of the loop. Yes, that's simple. If a loop cycles 1 million times, we don't want 1million columns as his binary search demo would naively produce. We want some way to cycle through that debugging output, perhaps by using a time slider (a normal slider wouldn't be appropriate, but you can get some very clever zoomable sliders which allow much better accuracy and navigation).

      For a nested loop (say 1000*1000), we'd need two sliders (one being 'nested' inside the other slider) for the debugging output. You follow?

      --
      Why OpalCalc is the best Windows calc
    43. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      Sure I follow, but you're still talking about just a wildly over simplified arrangement.

      Real programming involves threads and memory allocations, access levels and hardware interaction. How would you go about creating a live feedback system like he did for programming a VM? Keeping in mind that it has to be equally applicable to a full 3D game (client and server), a point of sale system and professional image (and video!) manipulation software.

      There just isn't a way to meaningfully generalize a fancy visualization for code. Either the code is so simple that you don't need it to start with, or it's complex enough that trying to generalize a visualization will take you a billion times longer than just designing it in the first place.

      The game stuff is a great play-testing tool, but that stuff has existed for ages; it's nothing new. There just isn't any overlap with actual programming.

      I would be in shear ecstasy if someone proves me wrong about this and writes a wonderful, generic, useful tool that actually simplifies interacting with complex programs. But it isn't going to happen, at least not until a major breakthrough in computing comes about (hard AI, readily available quantum computing, something else I can't fathom)...

    44. Re:My boss sent me this drivel as well by rossjudson · · Score: 1

      While you're the sitting thinking that you're the only real programmer in the world, you're really just embarrassing yourself. "Actual programming" works at many levels of abstraction. Again, you might want to do a few google searches before making yourself look like such an idiot.

      Have a look at http://worrydream.com/#!/Alesis before you go too much further. Yeah, he understands low-level programming, and all the other shit you're talking about. Most of us do.

      The point is, these kinds of interactions can help quickly solve a certain class of programming problem. Not all; just some.

    45. Re:My boss sent me this drivel as well by AdrianKemp · · Score: 1

      Well *one* of us certainly should do some googling before we make an ass of ourselves.

      But it isn't me

    46. Re:My boss sent me this drivel as well by rossjudson · · Score: 1

      Funny thing is, of course I googled your name prior to writing the post. Didn't see anything on par with, say, Bret Victor, a pretty-famous-in-smart-circles kinda guy. But of course I may be overlooking something obvious.

      Thing is, I agree with what you have to say, most of the time. You're wrong on this one, though. Nobody wants to binary-search their way through an edit-compile-run cycle to find generative structures or constant values. If you look at some of his other work, he's really trying to show how direct manipulation is the "right thing to do" for many user situations, even with complex contexts.

      Interactive, direct-manipulation documents and graphics are his specialty (or his current interest). Like Our Choice.

  18. This interactive language already exists. by Anonymous Coward · · Score: 4, Interesting

    It's called Python. I use the interactive interpreter to test snipets of code al the time. This makes me 4 times more productive than Java, for example.

    1. Re:This interactive language already exists. by Hogmoru · · Score: 1

      It actually also exists with Java : I use Groovy shell for this. It accepts (almost) Java syntax. You need to know a thing or two about subtleties like "==" being "equals", but if you know what you're doing, it's perfectly fine.

    2. Re:This interactive language already exists. by gatzke · · Score: 1

      Matlab has an interpreter too. And their latest editor is pretty slick, it lets you know which lines of code have syntax errors before you even try to run them. (warnings too). Plus memory trace and debug tools are pretty decent now as well. Not sure what python has along those lines, but I assume there are a few options.

    3. Re:This interactive language already exists. by Anonymous Coward · · Score: 0

      I did it in BASIC in 1980: hit [Ctrl][Break], change some code and variables, typed CONT and the modified program would continue. And I did it on devices which had a hexadecimal keyboard and which were programmed in machine code (I wrote assembly during the day and assembled it by hand during the night - I was young and it was school holiday).

    4. Re:This interactive language already exists. by Raenex · · Score: 1

      I use Java with an IDE with features that benefit from static typing, such as accurate code completion, finding definitions, references, and documentation with single keystrokes. It also features an interactive debugger that also lets me test snippets of code, as well as go back in the stack trace and examine data. This makes me 4 times more productive than Python, for example.

    5. Re:This interactive language already exists. by makapuf · · Score: 1

      I happen to code in python sce 10years and have tried almost every IDE under the sun.
      I would LOVE such an immediate feedback on tricky points (with several input vectors for a function and propee initialization and shutdown for code with side effects) , to the point that I thought about having them implemented.
      Saying this is python is bull. I guess it would be simpler to implement than in c but even that I'm not so sure.

    6. Re:This interactive language already exists. by dkf · · Score: 1

      I use Java with an IDE with features that benefit from static typing, such as accurate code completion, finding definitions, references, and documentation with single keystrokes. It also features an interactive debugger that also lets me test snippets of code, as well as go back in the stack trace and examine data. This makes me 4 times more productive than Python, for example.

      With all respect, you use Java with an IDE because the language is nearly unprogrammable without one. In particular, the libraries are colossal and have so many intricate features that an IDE is about the only way to do it. Scripting languages are much more manageable; it's practical to write them without an IDE precisely because they have a REPL instead. This means that instead of needing types to guide you through the API, you can instead interactively try stuff out and then copy into your script the bits that work. It's a different way of doing things, and if you've never worked that way you won't appreciate its power.

      But it's not new. Programmers have been doing this for many decades. Heck, it predates the IDE and quite possibly the GUI too.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    7. Re:This interactive language already exists. by Anonymous Coward · · Score: 0

      repl is interactive too?

    8. Re:This interactive language already exists. by Raenex · · Score: 1

      With all respect, you use Java with an IDE because the language is nearly unprogrammable without one.

      No, that's a bunch of bullshit. I use an IDE because it automates common tasks down to a single keystroke, the same tasks that I'd do in either a scripting language or a statically typed one like Java.

      Scripting languages are much more manageable; it's practical to write them without an IDE precisely because they have a REPL instead.

      I've done plenty of work in scripting languages, and I always miss the power of an IDE that Java allows. I can also get the same experience as a REPL with the Java IDE by running code within the IDE.

  19. Turbo Pascal by liquidhokie · · Score: 2

    'nuff said

    1. Re:Turbo Pascal by Kittenman · · Score: 1

      Isn't that Delphi?

      --
      "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
    2. Re:Turbo Pascal by dkf · · Score: 1

      Isn't that Delphi?

      It's what Delphi evolved out of, so yes.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  20. not really useful by Anonymous Coward · · Score: 0

    Its enough to watch first few mines. IMO this approach is completely invalid. It is nice to see immediately changes to the code on the screen, but this applies only to GUI and only to variables which can have arbitrary values. In real life you cannot iterate over an array and skip some element, transfer money from user with random uid, call not existing function, etc. Also executing invalid (not-yet-completed) code can destroy your data easily and waste your time.

    Second part starts in 18:00 and is more interesting, but it won't work in real programs for two reasons:
    1) function arguments are usually complex objects and defining one (for testing purposes) is often much more complicated then just writing the method
    2) you still need unit tests which do pretty the same
    But all in all a debugger which shows variable values for several lines of code could be interesting.

  21. VB Redux? by kimvette · · Score: 1

    The much-hated VB offers much of what you're looking for. Like it or hate it, it is really good for prototyping and for rapid development. The only drawbacks is that it encourages bad code and marries you to Windows.

    --
    The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
  22. This concept has already been in use for some time by danomatika · · Score: 2

    ... in the creative coding community.

    Patchers like Max and Pure Data allow for realtime graphical programming and live coding environments such as Fluxus exist for realtime graphics and sound. Max was originally written by Miller Puckette in the mid 80s for realtime control of DSP for computer music at IRCAM and Pure Data, started in the mid 90's, is his open source take on addressing some of it's design issues. Fluxus originates from around 2000 as is a live 3d engine for performance using a Lisp varient as the on screen scripting language.

    Yet another case of artists/scientists providing a working solution to a particular problem not apparent to other disciplines. Too bad Bret dosen't cite these examples. Perhaps he dosen't know of them?

    Bret's argument that realtime feedback is important to creative flow is spot on. I don't think he's calling for the use of this approach as a panacea. Naturally it won't work in all cases but anything that helps with problem solving is welcome in my book. It's not a replacement for deep understanding but really allows you more creative freedom which, as other posted have noted, is useful in creative graphics/sound programming.

  23. But we already have it! by Cyberax · · Score: 2

    We already have something like it: IDEs for typed languages with strong inspections.

    When I'm writing something my IDE helps me by highlighting possible errors or undesirable effects. That's not the 'visualization' stuff the author's talking in the article, but it's actually useful.

    1. Re:But we already have it! by Anonymous Coward · · Score: 0

      No, that syntax, possibly some semantics regarding correctness, not semantics as in "how is this going to run". Of course, there is some grey area here: findbugs telling me that that regexp within the string is correct or not, and that that format string (as in printf) is correct or not is getting close to running the application while you are typing it.

      Some Java GUI builders also have a direct line between code and visualization. That's probably at a level where you can say, yeah, that's it. Or the XML schema editor that lets you generate the appropriate XML automatically.

    2. Re:But we already have it! by Cyberax · · Score: 1

      "No, that syntax, possibly some semantics regarding correctness, not semantics as in "how is this going to run"."

      That's exactly what powerful analyzers do. They tell things like "this loop never terminates except by exception" or "this condition is superfluous", etc. That's not exactly Matrix-style 3D graphics, but it's quite close in spirit to 'visualizing' effects of the code.

  24. it is about visual, rapid prototyping by Anonymous Coward · · Score: 1

    The conjecture that the tree that you are watching is the result of the code you are pointing in the wrong direction: the tree is a representation of the code.
    In this way you may start to forsee how this may be related to programming related to non-UI stuff.
    Representation of SW is already a candidate silver bullet in The Mythical Man-Month(Brooks , stuff to read) . The problem with sw rapresentation is that as long as sw has multiple concerns its representation should have multiple dimensions. So we invented multiple dimensions for software representation using different charts to represent different dimensions (think about UML) . Guess what? multiple dimensions are mind consuming and counter-intuitive , you may describe them as very viscous notations (Cognitive Dimensions of Notations ,Green 1989) . So we are fucked up again. But if you can find a complete-enough single-dimension representation of your sw domain than you are able to enter the golden kingdom of visual rapid prototyping.
    Usualy you can only afford to design for requirements that can be proven wrong or correct by a disciple of Dijkstra but you are not able to design for something like beauty. You can not design in the engineering sense to cope with ambiguous or vague requirements BUT you can prototype for it. And if you can rapid-prototype it 's not bad at all.

  25. understanding by doing... faster by lkcl · · Score: 1

    the extension of this idea is to use evolution-style techniques. from an automated perspective, that means deploying genetic algorithms to improve the code. unfortunately that means that good tests have to be written in order to verify that the code so (eventually) generated is actually "correct". many people would fail to go to the trouble of writing good enough tests.

    yes - the alternative is seen to be to "read every line of code and make it run in your head".

    i can't handle that. a) i can't be bothered b) i have some strangeness going on in my tiny brain that makes line-by-line logic rather hard to do. so there's an intermediary style - one in between the line-by-line and the genetic algorithms approach - that i've use for programming, successfully for 20 years: accelerated development cycles.

    in essence it's incredibly simple: pack in as many compiles into a day as you can possibly manage. optimise the development environment - and the code structure - such that this is possible. install ccache, install distcc, get a compile-farm, don't do complete rebuilds but make sure that the Makefiles are properly structured to detect changes to source files etc. etc.

    by increasing the amount of times that the program is run and tested, you automatically increase the productivity, just as TFA says.

    HOWEVER, there is a CAVEAT.

    as i found out when the samba team dismissed the work that i had spent three years developing (and proving to my satisfaction by having run tens of thousands of tests over that three year period) if you follow the above development technique it is almost IMPOSSIBLE to actually explain how a particular solution was derived.

    the reason is because you literally don't know. you know that it works, because across the entire set of parameters under which the code is utilised, you KNOW that it works. but the actual bugfixes? when presented with your *own* code and asked "why did you do it like this??" you can't exactly answer "well i tried 50 iterations of modifying the code and this was the one that actually worked" when you're expected to answer "the technical answer is that this algorithm is an implementation of a well-known algorithm that is described on page N of K&R's recipes on c programming: let me take you through a line-by-line code review and walk through it with you".

    the key here is that the person who is asking you to justify the coding decisions is expecting you to be ABLE to do a line-by-line code walk-through, but because you've never done one of those in your LIFE let alone on the code that you wrote only a few weeks ago...

    but the real problem comes when you've developed 5 to 10x more code than anyone else in the group, through this type of technique. not only does it show up your peers as potentially seeming to be incompetent, but it also means potentially that you wrote code that is very very difficult for the average programmer to understand.

    that makes for a massive maintenance headache.

    there was a survey done over 10 years ago, of the productivity vs salary across several professions. most professions, the ratio of salary to productivity for a range of employees varied by a factor of about 1.5. e.g. one person paid $10k could have a productivity metric of say "2.0" but their colleague paid $20k could have a productivity metric of say "6": (20/6.0) / (10/2.0) = 1.5

    but for programmers, the variation came out at a whopping 10 to one discrepancy. in other words, someone who was paid only double the salary of one of their peers could be TWENTY times more productive than their lower-paid colleague.

    it would be very very interesting to redo this survey, specifically for programmers, but this time taking into account the *techniques* that they use to develop code.

    1. Re:understanding by doing... faster by Alex+Belits · · Score: 5, Insightful

      Congratulations, you are an idiot.

      "Tests", no matter how numerous, cover an infinitely small fraction of possible instances of your code being used (that would be an infinite number of, unless you take into account the maximum lifetime of the Universe). They are supposed to assist a developer finding some faults in his reasoning, nothing more than that.

      --
      Contrary to the popular belief, there indeed is no God.
    2. Re:understanding by doing... faster by Anonymous Coward · · Score: 0

      I was going to flame you for calling a random guy an idiot, which is usually unnecessarily inflammatory. But then I read his post.

  26. It's all about efficient resource management by TuringTest · · Score: 2

    If you need to "run" code, either in your head or on a computer, in order to see what it's going to do, you're probably not really programming and you're definitely not an engineer.

    Sure, you can do that in your head. They got to the moon with an abacus and some slide rules, so why do we need computers again?

    That you can make it in your head doesn't mean that you should. Human brains are incredibly slow and error-prone at recall and logic, the primary strengths of computers. On the other hand our brains are evolutionary-level good at recognition and pattern matching.

    This should make obvious the conclusions in the video: letting the computer do the recall and logic inferences, and the human the thinking and pattern matching, will produce a much more efficient system, two or three orders of magnitude higher than having the engineer produce all the derivations in his head.

    It's a shame to the profession that so many slashdotters will laugh and dismiss the idea, and a sign of how incredibly conservative are programmers when it comes to the tools of their trade. In special because these ideas were already implemented and tested in academai before our current batch of business tools (C, Unix and IDEs) were developed, and then abandoned only because they were more difficult to teach even if they were more powerful to use. There, I have said it.

    --
    Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    1. Re:It's all about efficient resource management by Alex+Belits · · Score: 0

      Translation: "Why should we be smart if we can fake our way through everything even if we are stupid?"

      Kill yourself. Really, kill yourself. I need less militantly stupid people around. EVERYBODY except militantly stupid people needs less militantly stupid people around.

      --
      Contrary to the popular belief, there indeed is no God.
    2. Re:It's all about efficient resource management by TuringTest · · Score: 1

      Nope, won't happen. And while we are busy using our 21st century tools that automatically sequence proteins, build nano-structures and discover the hidden structure of English by spidering Wikipedia articles, you will be here trying to repeat the moon voyage with your slide rules. If we used your principles that "everything should be done in your head", we would still be sitting in the cave telling hunting tales instead of painting the chase plan on the walls.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    3. Re:It's all about efficient resource management by Alex+Belits · · Score: 1

      Don't try to attach a stupid fraud if yourself to people who actually accomplished something. They all agree with me.

      --
      Contrary to the popular belief, there indeed is no God.
    4. Re:It's all about efficient resource management by TuringTest · · Score: 1

      Uh? I'm not even sure if that sentence parses. I basically said "you should use the best tool for the job; get the computer to do all the menial work and you will be freed to use both logic and your natural skills and brainpower on a higher level of abstraction", and your answer was "kill yourself, you dumbass". Hardly a constructive exchange of ideas.

      I would have wished for a more interesting debate with a low ID account, but it seems clear that we come from different backgrounds (though I understand your posture, I shared it as an ideal when I was young, but found it impractical for the kind of problems I deal with). What a shame.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    5. Re:It's all about efficient resource management by Alex+Belits · · Score: 1

      Being a dumbass is a good tool for a job if the job is to be a fraud. Otherwise it's a problem.

      --
      Contrary to the popular belief, there indeed is no God.
    6. Re:It's all about efficient resource management by Anonymous+Brave+Guy · · Score: 1

      People who choose the right tools for the job typically achieve more in weeks than people who flail about refusing to acknowledge (and therefore compensate for) their weaknesses achieve in years.

      I think you're reading an argument into the posts you're responding to that the other posters were never actually making, and consequently you keep attacking a straw man.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    7. Re:It's all about efficient resource management by Alex+Belits · · Score: 0

      When "right tool for the job" is writing random shit and being a dumbass, job should not be done at all.

      --
      Contrary to the popular belief, there indeed is no God.
    8. Re:It's all about efficient resource management by BasilBrush · · Score: 1

      Don't try to attach a stupid fraud if yourself to people who actually accomplished something. They all agree with me.

      I don't agree with you. But then I suppose that means I'm no true Scotsman.

    9. Re:It's all about efficient resource management by Anonymous+Brave+Guy · · Score: 1

      No-one except you seems to be talking about just writing random shit, though. You've created this fantasy world where everyone else is somehow advocating completely arbitrary trial-and-error programming, but I don't see anyone else posting here that actually did that.

      In any case, I don't think any developer on the planet, including you, actually lives up to the artificial standard you seem to consider minimal for acceptable work. It's just that everyone else here is acknowledging that reality and considering potential ways to do better, while you're burying your head in the sand and saying that anyone else who doesn't is a dumbass.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    10. Re:It's all about efficient resource management by Alex+Belits · · Score: 1

      No-one except you seems to be talking about just writing random shit, though.

      What people are describing IS "writing random shit" +/- negligible amount of understanding coming from a person unfamiliar with logic or engineering.

      In any case, I don't think any developer on the planet, including you, actually lives up to the artificial standard you seem to consider minimal for acceptable work. It's just that everyone else here is acknowledging that reality and considering potential ways to do better, while you're burying your head in the sand and saying that anyone else who doesn't is a dumbass.

      The reality is that shit happens. It is not a justification for swimming in shit. What those people are advocating, is swimming in shit.

      --
      Contrary to the popular belief, there indeed is no God.
    11. Re:It's all about efficient resource management by Alex+Belits · · Score: 1

      Don't try to attach a stupid fraud if yourself to people who actually accomplished something. They all agree with me.

      I don't agree with you. But then I suppose that means I'm no true Scotsman.

      No, it means that you have not accomplished anything in software or any form of engineering.

      --
      Contrary to the popular belief, there indeed is no God.
    12. Re:It's all about efficient resource management by BasilBrush · · Score: 1

      Well lets see, I've created a compiler, then as part of a team created a commercial OS, and a games console emulator too. All of them would have benefitted from better tools to visualise what was going on under the hood during development.

      But of course that doesn't make me a Scotsman in your eyes?

      It's funny, I'd expect a self-professed programming expert such as yourself to be more aware of logical fallacies.

    13. Re:It's all about efficient resource management by Anonymous Coward · · Score: 0

      And I created light, a firmament to divide waters from waters and then made the dry land to apear amidst the water.

      Can we get anything more verifiable than "a compiler, a commercial OS and an emulator"? Because judging by your posts on this page you're unaware of state of the art as shown by your fascination with TFA^HV and find first two of those jobs "very, very, very boring".

    14. Re:It's all about efficient resource management by Anonymous Coward · · Score: 0

      It's a shame to the profession that so many slashdotters will laugh and dismiss the idea, and a sign of how incredibly conservative are programmers when it comes to the tools of their trade. In special because these ideas were already implemented and tested in academai before our current batch of business tools (C, Unix and IDEs) were developed, and then abandoned only because they were more difficult to teach even if they were more powerful to use. There, I have said it.

      This is the way I see it. Programmers love to change the way other industries and fields do their jobs, but we ourselves hate to see such a democratizing shift in our own professions.

      So instead we focus on disrupting other industries with the same tools we used in the 90s... Why do we still use vim and emacs?

      Where I think an observation like this is particularly interesting is in regards to the future of mobile computing. Think about how this could change the way we think about programming- how we think period- if we had 24 hour access to instant, perfect recall and logic systems. Think about using interactivity as a programming teaching tool, think about little children that have learned programming, math, and science through the lens of an always-on continuously compiled interactive interpreter...

      It may sound like science fiction, but it seems like this could be a significant paradigm shift.

    15. Re:It's all about efficient resource management by Anonymous Coward · · Score: 0

      I guess I'm a "bad" programmer, when I do program.

      I always use iterative solutions and never recursion when I write my own code, because I can trace every step or the iterative solution, if too large for doing it in my head then on paper or even in the debugger.

      On the other hand, I do use API functions or statements whenever possible, rather than writing my own. As long as the statement or function generates expected output, I don't care if it's using iterative or recursive methods to generate the output.

      The key is a rich API, making programming more or less changing variables and strings, using API calls as much as possible. The best way to see programs run without waiting for a compile is the interpreted method.

      What's stopping programs from being run line by line using the interpreted method inside the IDE, and then also being compiled to generate the executable?

    16. Re:It's all about efficient resource management by TuringTest · · Score: 1

      It's a shame that you answered AC and won't likely read my answer. These are the ideas I would have liked to discuss. This is how computers will be controlled in the future. The same way than computers allowed mathematicians to build agent-based models to research whole systems, when previously only formulas on pen-and-paper could be used, computing will benefit from approaches than the first computer programmers in the 50s couldn't dream of supporting (and whose methods still form the basis of all the professional technical environments nowadays).

      Unfortunately everybody else placed their preconceptions in line and assumed that I was talking about using a debugger to tweak input cases of function calls, when I meant the completely different topic of using an evolved computer model to discover and analize the properties of the world. Shame that we got an almost 0 signal-to-noise ratio.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    17. Re:It's all about efficient resource management by dzfoo · · Score: 1

      No-one except you seems to be talking about just writing random shit, though. You've created this fantasy world where everyone else is somehow advocating completely arbitrary trial-and-error programming, but I don't see anyone else posting here that actually did that.

      That's precisely what the video and some people in this forum are advocating.

      The idea that code is this arcane, magical entity that cannot be understood beforehand and that needs to be traced, step-by-step, in your head or on the computer until its purpose is gleaned by discovery; is in fact risible.

      Sure, computers are a better tool to do this than our own brains. That's not the argument here. Neither it is that an interactive debugger is not useful.

      The argument is that it is fundamentally wrong to write code naively without properly understanding what it was doing to begin with. And a need to iterate through it interactively--not to find errors or omissions in its function, but to understand what it is doing--is irresponsible and reveals gross inexperience.

      The debugger is a tool that helps you find errors in your program, and these indeed happen. It is not, however, intended to be a substitute for proper design, thought, or understanding of the problems you are trying to solve.

                          -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    18. Re:It's all about efficient resource management by TuringTest · · Score: 1

      Following your metaphor, is more like constructing a robot to swim in shit for you, while you safely send high-level directions from a control room. This would a most preferred way to deal with shitty environments. Of course you wouldn't need it if you're operating in an operating theater.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    19. Re:It's all about efficient resource management by Anonymous+Brave+Guy · · Score: 1

      With the greatest respect, I think you're misunderstanding in the same way as the other guy.

      That's precisely what the video and some people in this forum are advocating.

      Maybe I've overlooked a post, but I still can't see anyone here saying it is. And I'm not sure how you've got that idea from Victor's illustrative examples; although many of those are very well presented in their own right, he has gone out of his way on several occasions to stress that examples is all they are and the underlying ideas are what he is interested in.

      Are you thinking of the simulations that Victor shows in some of his work? In that case, sure, he varies the parameters of the simulation interactively. That's the point of setting up a simulation as an exploratory tool. He's not developing algorithms that way, though, at least not in any of the work I've seen.

      One of the examples he uses is about a binary search algorithm, where he simulates the data flow in real time. Is that what you're concerned about? If so, we took away very different things from that part of the presentation.

      The argument is that it is fundamentally wrong to write code naively without properly understanding what it was doing to begin with.

      I don't think anyone would disagree with your goal, but realistically, while you might properly understand what you think the code is doing, you usually won't be confident about what it's really doing until you try it.

      The kind of development environment mentioned in some of Victor's work is just tightening the feedback loop. Automated test suites can serve a similar purpose. Why wait until you've "finished" to discover you didn't write the algorithm you think you did, when you can discover that immediately and correct it five seconds later?

      Of course testing is no substitute for understanding. But even the most carefully crafted algorithm, developed with formal methods and locked down extensively with a strong type system, can have implementation errors.

      I find it helpful to remember that Donald Knuth, who is one of the few people on the planet who can probably claim to have developed a serious software product that might actually be completely bug-free at this point, still famously wrote at one point, "Beware of bugs in the above code; I have only proved it correct, not tried it." I'm pretty sure I'm not as smart as Knuth, so anything that helps me to make sure I'm both writing the code right and writing the right code is potentially a useful tool.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    20. Re:It's all about efficient resource management by Twinbee · · Score: 1

      He probably didn't read that, because you posted as AC (which are filtered out according to his sig). Ironically, you probably won't read this for the same reason.

      --
      Why OpalCalc is the best Windows calc
  27. Strict Typing by pavon · · Score: 2

    We have languages that force you to define the allowed range of an integer every time you define it (like ADA), and static analysis tools that find many of these problem. Entering this information into a dialog box wouldn't be any faster than typing it into the source code. The problem is that programmers consider these languages to be too cumbersome, and using such tools on other languages has too many false positive. They would rather have freeform languages like python, which are faster to program and easier to read, but don't catch these types of errors for you, and instead require more discipline in unit testing (which is good to have anyway).

    1. Re:Strict Typing by Giant+Electronic+Bra · · Score: 1

      Heh, well, we were using ADA and/or PACE PLI which did the same thing. We still had unit testing to the Nth degree. Heck, we had complete design verification by simulation at the module, assembly, and system levels on top of that, lol.

      Of course no 747/57/67/A320/30/40 etc with any of my code flying in it has to my knowledge yet fallen out of the sky due to bad code, lol. I really have to wonder about all these rocket guys and their bad code. Can't even imagine how you could use tools that could allow a type mismatch in that kind of system, crazy. Heck, we coded (and built the hardware for) the range safety destruct box on Titan 34D. Now talk about "this is not allowed to ever have a failure mode, period" yeah. Ain't no stinking C++ code on that baby, nope. You push the big red button, there's only one answer, kaboom! ;)

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    2. Re:Strict Typing by obsess5 · · Score: 1

      Reminds me of the ARIANE 5 rocket failure in 1996. IIRC, they reused Ada code from an earlier rocket, the range of one of the rocket parameters had changed, they didn't correct the range of the corresponding variable, and a run-time exception occurred seconds after launch. Too easy to overlook ... Still, you're better off with Ada than without on mission-critical systems like that.

  28. languages by lkcl · · Score: 1

    The hard part about programming is understanding and decomposing the problem. If you're not any good at that, then no matter what language you use, you're going to struggle and produce crap.

    there was a report a few years ago about an entrepreneur who *refused* to employ computer science majors. he only employed english language majors. the reason was he said that it was easier to communicate with english language majors in order to teach them programming, and they were more effective and also worked better when introduced into teams, than the people who had been taught programming at university.

    so there is definitely something to learn here. but my god if imperial college had tried to get me to read jane austen instead of teaching me object-orientated and parallel computing architectures i would have hit the roof. mind you if they'd asked me to scan the book in and do some parallel processing on its contents then.. hmmm.... :)

    1. Re:languages by swillden · · Score: 2

      there was a report a few years ago about an entrepreneur who *refused* to employ computer science majors. he only employed english language majors. the reason was he said that it was easier to communicate with english language majors in order to teach them programming, and they were more effective and also worked better when introduced into teams, than the people who had been taught programming at university.

      I think there's a reason we don't all know this entrepreneur's name and abbreviated life history.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  29. the plural of anecdote is performance bonus by epine · · Score: 1

    I can't even bring myself to watch this, and I'm generally a compulsive bring-myselfer.

    Dijkstra spins in his grave. Somewhere out there, Lamport is guzzling Guinness by the barrel and swinging his underwear around his head, while Knuth plays organ dirges.

    The plural of anecdote is performance bonus. That was the VB business model in the late 1990s. This won't work twice. To obtain twice as many programmers at half the price there's now India and China. And they can do math.

    1. Re:the plural of anecdote is performance bonus by BasilBrush · · Score: 0

      I can't even bring myself to watch this

      Then you don't know what it's about.

  30. The biggest Mistake Today by prefec2 · · Score: 4, Insightful

    Most programmers think, that coding takes the most part of the development. In some cases they would admit that testing is also very time consuming. But the real issue is the understanding of the problem. A lot of programmers design while their code. This results in strange development cycles which also includes trying to understand what the program does. As this can be done with a debugger, an interpreter or a trace analysis tool. The real issue is the problem description. First, understand the problem and its borderline cases. Second, come up with a solution for that problem. And third, try to implement it.

    BTW: Most programs of today do not contain that many surprising new algorithms. They collect data, the validate data to some constraints, they store data, they provide an interface to query the data. In desktop applications like Inkscape or Word the data is stored in in memory models. And there exist serializers and renderers for the content. So the code as such is not hard to understand, as we all know such structures.

    1. Re:The biggest Mistake Today by TuringTest · · Score: 2

      And why would it be a bad practice using a computer to analyze the available data to discover the possible cases that must be covered, and thus understand what the program needs to do? Sure, the final released code should not contain the tests implemented for the first assumptions about data. But understanding the problem is easier if you can run a primary version of the basic program logic on live data.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    2. Re:The biggest Mistake Today by Anonymous Coward · · Score: 0

      No, most coders think that.
      Programmers know that the reality is somerthing like 60% planning, 30% test & debug, 10% coding.

    3. Re:The biggest Mistake Today by prefec2 · · Score: 3, Insightful

      No. My argument is: You have to understand the problem and its cases first and then code it. At least that is what we learned from the analysis of different software development methods. Some developers think that the perfect model to fit all cases will emerge when they code. This is true for very small problems, where they can keep the cases all in their head. As an alternative you could come from the cases. Define your input and desired output and all parameters which effect the result. You define your constraints. If you believe in a strict test driven development, you even could design the tests. then you divide the problem and specifies the different sub-problems before you try to implement that in C, Java, Fortran, Cobol etc.

      Your argument is:You start with some input (subset of the real input or maybe a specification of the input) and a desired output. Then you fiddle around and try to come up with a suitable transformation which reads the input and provides the desired output. To "test" if it works you run it with input data. When it does not suit your needs you modify the transformation code. On a sample input basis you cannot know all alternatives of input look like. And if you have just a specification of input code, you have to generate suitable input from that specification.

      My proposition is, if you know what the input is and what the output is and what the cases are, you should be able to come up with a specification for the transformation before you implement it. The specification is then the model for the implementation. That approach is much saver and you can even try to proof if the code is supporting all specified input. I know most people work differently. But it is expensive and results in long coding nights and a lot of extra hours.

    4. Re:The biggest Mistake Today by TuringTest · · Score: 2

      You have to understand the problem and its cases first and then code it. At least that is what we learned from the analysis of different software development methods

      That is the myth of the classical waterfall model. It assumes that you can and already do understand the whole problem in advance. As I said in another thread, that only works if you already have a model for the problem, maybe because it's a classical problem in physics or math. What I say is that you can use software to develop a new model; in that case the first iterations will be necessarily fragile, because you don't know what the possible cases will look like.

      My proposition is, if you know what the input is and what the output is and what the cases are

      Yup, that makes sense when you know the input and the output. I'm interested in the case when you don't know them and have to find them by exploring the real world with which the program interacts, ideally by using the scientific method (trial and error). We are saying nearly the same, just approaching different classes of problems.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    5. Re:The biggest Mistake Today by Twinbee · · Score: 1

      Yes, and if the actual output doesn't match the expected output, then something must have gone wrong in the middle. Did you see the video? The binary search example is simple, but its basic idea is sound. To have data appear *alongside* each line in the code in realtime as you type would allow you to home in on any errors much quicker. It's like a debugger on steroids.

      --
      Why OpalCalc is the best Windows calc
    6. Re:The biggest Mistake Today by Anonymous Coward · · Score: 0

      Anecdotally I've heard only one story of an engineer who actually went through a design process and then coded. IIRC, it was IBM's Rational. He drove managers crazy asking questions during the design process, and then spent just a couple days coding from his designs.

      IMHO, that's the exception. There are a lot more stories of people having endless meetings, the end result of which is a design document that fails to track what the real engineers are doing. The code the engineers hack while the design team argues is what gets shipped.

      Two differences between programmers and "architects". The programmer's code compiles. The architect's doesn't. The other difference? Unfortunately, the architects usually get paid more. And yes, I said "programmer". There's a computer. I program it. The whole thing about calling programmers engineers is just the result of the endless race to appear superior on your resume.

    7. Re:The biggest Mistake Today by leehwtsohg · · Score: 1

      I totally agree with you (well except for your last paragraph.)! I used to work with C/C++, and switched to working mostly with R (interpreted). Working with an interpreted language makes you lazy. You write an algorithm, and try to make it work by trial and error, because you think that it's almost there. (Just like in the binary search example he showed). But that's the wrong approach. You don't want your program to work, you want to work correctly. You can never make sure it works correctly by trial and error. You have to take a minute or an hour, think about what the code does, and why this unexpected behavior happens. When compiling takes 10 minutes, you sit and think before trying. When it is instantaneous I get lured by the trial and error approach.
      Another problem is that to invent a new algorithm you have to think. You have to understand what an algorithm does, how it can be improved.

      But a lot of his ideas are cool, too. In some cases (a debugger for example) immediate feedback is great.

    8. Re:The biggest Mistake Today by Xiver · · Score: 1

      Please read up on post normal science. What you are proposing sounds like post normal computer science to me and I seriously doubt it will return the results you desire.

      --
      10: PRINT "Everything old is new again."
      20: GOTO 10
    9. Re:The biggest Mistake Today by TuringTest · · Score: 1

      Thanks for the link. Who knows how it will turn out? There weren't computers nor neuroscience when the scientific method was developed, and look how far it has brought us. Who can say what will happen with a method designed with those in mind?

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    10. Re:The biggest Mistake Today by Anonymous Coward · · Score: 0

      Using your brain to model the problem before you implement works in almost all cases. Computers are then used to fill in the details.

      I'd like to see an example of what you propose. It sounds like bullshit to me.

    11. Re:The biggest Mistake Today by TuringTest · · Score: 1

      The original article video author has a really good example of this approach. Enjoy!

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    12. Re:The biggest Mistake Today by Cederic · · Score: 1

      I call people that write code programmers.
      I call people that write fully tested working releaseable code software engineers.

      I expect the latter to have a level of discipline in their work that gives them far higher productivity and a far more repeatable set of outcomes.

      I want all programmers that do regular programming to learn the engineering disciplines. It's not because I think they're bad programmers, it's because I think the engineering disciplines will make them better.

      Architects are a separate question, and as someone with that word in my job title I'll merely point out that I'm not actually writing code these days. (And yeah, a company like Thoughtworks wouldn't accept that for a moment, and they know what they're talking about.)

    13. Re:The biggest Mistake Today by heson · · Score: 1

      The idea is that with his tool you do not need to understand the problem. Play for a day or three and you got a nice working binary search, voila! Without understanding it at all. All while sipping latte and updating your status at facebook.

    14. Re:The biggest Mistake Today by Twinbee · · Score: 1

      Do you ever think the trial and error approach is more beneficial? I'm thinking in terms of time. If you have good unit/regression testing, then that should cover most of the cases, and sometimes there are only finite possibilities available for the trial and error (shotgun) approach.

      --
      Why OpalCalc is the best Windows calc
    15. Re:The biggest Mistake Today by leehwtsohg · · Score: 1

      My own experience (i.e. sample size=1), trial and error in the end takes longer. That's the problem really... that it seems to take shorter, but enventually takes much longer. Probably mainly for slightly complicated problems.

  31. TL;DW by Gordonjcp · · Score: 1

    It's an hour long, and I don't have the patience to sit through someone gibbering on for that long. Is there a transcript?

  32. Gibberish. And you can quote Riker on that. by HeavyDDuty · · Score: 1

    Terrible ideas that would transform coding time to 98% on the oooh-aaah-slider and setup for endless runtime tests vs 2% of actual coding. This is worse than time wasted dealing with various Android incompatibilities! Inspirational software engineer gibberish! His approach: a different way is a better way. Sell it. Sell it. Uhm, ok. Let's see some real world exmples of software projects using more than javascript joke code. "It's the specs that Kosinski sent us. In my opinion, sir, they're gibberish."

    1. Re:Gibberish. And you can quote Riker on that. by BasilBrush · · Score: 1

      Question, did IDEs with interactive UI constructors make UIs quicker/higher quality to build?

      I'm not suggesting designing with them. That's a job for a designer. I'm saying given a wireframe design does such a tool enable getting the UI part of an application done quicker/better?

    2. Re:Gibberish. And you can quote Riker on that. by Qzukk · · Score: 1

      enable getting the UI part of an application done quicker/better?

      As with all things, the answer is "it depends". I can't count on my appendages the number of UIs I have used that truncated "unexpectedly long" strings, or didn't fit in a small window, or, or, or...

      I think that's why web programming is so popular. HTML makes UI someone else's problem, and Sir Lord Johnathan Victor Fraskin Humpledingbart III can have his entire name displayed in the name field, even if it makes the rest of the form look like shit when the rendering engine rearranges it to fit.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    3. Re:Gibberish. And you can quote Riker on that. by BasilBrush · · Score: 1

      What's any of that got to do with my question? That problem (and it's solution) can happen just as easily whether the UI is constructed interactively in a GUI IDE or produced solely with code.

  33. Reasonable idea, terrible article by Animats · · Score: 3, Informative

    The article completely misses the point. The talk starts out awful, but after about five minutes of blithering, he gets to the point. He's set up an environment where he's running a little Javascript program that draws a picture of a tree with flowers, with mountains in the background. As he edits the code, the picture changes. There's a nice user interface which allows selecting a number in the code and then changing it with a slider. This immediately affects the picture. There's an autocomplete feature which, when code typing has reached a limited number of possible choices, offers options like drawCircle, drawRect, etc. Mousing over the selections changes the picture.

    It makes sense if you're drawing pictures with programs. Something like this should be in editors for Renderman shaders and Maya programs, and maybe for some game engines. It also makes sense for HTML editors, and there are HTML editors which do that. Beyond that, it may not be too useful.

    1. Re:Reasonable idea, terrible article by Anonymous Coward · · Score: 0

      Really I think what he was trying to get at was that existing interfaces tend to make things difficult.
      What he talked about was a mix of Natural User Interface concepts and his ramblings on design using direct data modification.
      There were some very good ideas presented he just seemed to not have worked out his grand unifying theory.

    2. Re:Reasonable idea, terrible article by DecoyMG · · Score: 1

      Did you watch beyond the first 10 minutes?

  34. Cute by Anonymous Coward · · Score: 0

    But this is only useful in his simple program that has no abstraction. This is firebug for canvas, basically.

  35. Successful troll is successful. by Anonymous Coward · · Score: 0

    Everyone who watches movies knows real programmers bang on the keyboard 300 wpm while mumbling and making
    "efforting" faces while the monitors around them rotate and zoomify 3-D objects, Mr Tony Curtis.

  36. That video was INCREDIBLE! by MindPrison · · Score: 1, Interesting

    A few moments in my life can be considered life changing, very rare, very seldom... ...but this video was one of them. He is totally SPOT ON! Instant and LIVE feedback on programming, changes EVERYTHING.
    Let me explain where I come from, so you understand why I react the way I do to this if it sounds weird or foreign to you, but I was the kid in class who asked too many "dumb" questions, the teachers couldn't answer, I wanted to know WHY X and Y was what they where, and not just accept that they where there. The teacher wasn't creative enough to explain why, and told me to just accept that it was there....

    that made me feel dumb for 15+ years, until I actually discovered that I was smarter than any of those teachers, and had an IQ way WAY above average (yep..that explains why I didn't need manuals...duh!)

    The point of the case is, not how intelligent I am, but the way I LEARN THINGS! Such as the video demonstrates very elegantly.

    I'm a tech nerd, I have a room filled with Test-Instruments, you know...oscilloscopes, multimeters, rf-generators, spectrum analyzers etc....I don't have a heavy theoretical science background, but yet I'm very capable of building and constructing robots and advanced circuitry (much to the confusion of my educated friends), but the truth of the matter is - these instruments.. ...yes...here comes the point of the video as well... ...provided me with a VISUAL FEEDBACK ON WHATS GOING ON!

    Did you get that, slashdot audience? Visual feedback is what it's all about (to certain visual persons like me), we're no dummies because we can't just accept or visualize data inside our mind based on eg. traditional math such as you know it, but have a different...visual mind)

    Benoit Mandelbrot comes to mind....if I'm not mistaken...

    Get it?

    --
    What this world is coming to - is for you and me to decide.
    1. Re:That video was INCREDIBLE! by Anonymous Coward · · Score: 0

      Your arrogance sir, impresses me. Got any other buzz words to elevate the impression above ability?

    2. Re:That video was INCREDIBLE! by Anonymous Coward · · Score: 0

      The problem is that as soon as you need to program something reasonably complex, creating a SENSIBLE visualizer for your code becomes more complex than writing the code itself.

    3. Re:That video was INCREDIBLE! by Anonymous Coward · · Score: 0

      High IQ, and yet you ramble like such a fool...

    4. Re:That video was INCREDIBLE! by BasilBrush · · Score: 0

      Congratulations, you're the first commenter that gets it. Mind you most of the commenters didn't bother to watch the video in the first place.

    5. Re:That video was INCREDIBLE! by Twinbee · · Score: 1

      I think I'm generally surprised why this story received so much negative feedback from slashdot.

      It's not even a case that this idea is so neat and amazing that we should be using it. But it's that we should have this technology ANYWAY. It's taking scripting to yet another level. This would help even the geniuses who can code a ton of stuff without having to run for ages (even if only a little bit). Then again, they say ideas go through 3 stages...

      --
      Why OpalCalc is the best Windows calc
    6. Re:That video was INCREDIBLE! by sakari · · Score: 1

      I hear you out brother. If I can Visualize it, I can Understand it. For me it was always hard to understand how Math works also, because I tried to learn the algorhithms and equations without even understanding what they represented. For me it was really hard to learn math or physics this way, I need something visual to show me what is happening and then I can connect the dots and let my Visual Thinking do the magic for me.

    7. Re:That video was INCREDIBLE! by TomHeal · · Score: 1

      I think I'm generally surprised why this story received so much negative feedback from slashdot.

      Everyone is different. Perhaps this style of programming will work better for some people. We should be willing to accept others can approach programming from a different angle.

    8. Re:That video was INCREDIBLE! by Anonymous Coward · · Score: 0

      yep, same story with the teachers and and i am also a visual feedback-ist. bret victor is surely also belonging to our type, the author of the video. Surely we are a certain class of people wanting to make things and on the way we meet great serendipitous moments of insight;i think that was brets main point.

  37. Visual Studio by Anonymous Coward · · Score: 0

    This guy have not used c# and visual studio. With Visual Studio you can debug, modify code during debugging, drag current instruction pointer back and re-execute code. You can write program as you debug and see results right away. Of course it is unavailable on Mac.

    1. Re:Visual Studio by SplashMyBandit · · Score: 1

      This functionality is not unique to Visual Studio. Try to get out more.

    2. Re:Visual Studio by Anonymous Coward · · Score: 1

      Better phrased as...Fuck, even Microsoft can do that in Visual Studio.

  38. Unity by Anonymous Coward · · Score: 0

    This is one of my favourite things about using Unity to learn programming - you can leave the game running while making changes to your code. Unity will recompile and reload them without having to restart, and it's both fun and extremely useful - especially when I was working on the GUI.

  39. I've been doing it wrong all these years! by matunos · · Score: 1

    Why didn't anyone ever tell me to try running my programs at intervals while I develop them?

    You guys just blew my mind.

  40. Trees and birds... by Anonymous Coward · · Score: 0

    Is this the beginning of a new wacky religion?

  41. This isn't new by Murdoch5 · · Score: 2

    I'm wondering whats really new about this video?

    The traditional "good programming" method is actually a horrible programming method, if you can't read and understand your code like reading a book then your not really a "good programmer" and your not really a "talented programmer".

    A compiler is one of the last steps in the process, you should know before you compile if your code will work. Interacting programming just helps people learn better programming. You can write C or Assembler and if you truly are a talented programmed you know well writing your code what will happen. When schools or even work places teach programming they teach it in a structures and very formal way, code like any language is an expression and it should be taught in the same way.

    Would you teach an artist to paint by following numbers? Would you teach an english student to write but following a script? Then why teach programming by teaching strict methods and formal standards?

    Good programming means looking past the code and writing code like you write book or paint a picture, you need to picture whats happening 10 steps ahead of where you are and how to get around problems before they occur, I don't think this video / article is new but I do think it might finally make some of the trolls on this site who cry and moan about structured coding a mute button.

    Interactive programming can be made interactive by the programmer and a "good programmer" can write any language interactively by thinking ahead of where they need to be. Programmer who can't really do have one arm behind there back but not tied! I do know some classic programmers who are jedi's in the art, but most programmers who can't preform interactive programming are programming with a blind fold on and with one hand, it's not pretty.

  42. CS212 by itchybrain · · Score: 1

    I would usually re-compile and re-run my codes at least four times to make sure that the compiler is not lying to me before I think to re-visit my broken codes.

    Kidding aside, maybe this free online course from Peter Norvig will prove useful to someone.

    CS212

    1. Re:CS212 by Skapare · · Score: 1

      And that's 4 compiles whether they succeed or fail. Do 'em in parallel FTW!

      --
      now we need to go OSS in diesel cars
  43. Blue Sky == B. S. by WombleGoneBad · · Score: 1

    This sort of epiphany evangelism is just fluff, and does not contribute anything at all. IDE's have been trying to do this sort of thing for the last 15 years, the attempt has brought us a few nice features (powerful inline debuggers, RAD tools, gui drag n drop, code generators), and also sometimes brought a few nightmares. Ultimately it has not removed the need for traditional coding, and there is no sign of it happening any time soon. The bottom line is that a system that removes coding will have to make assumptions about the nature of the problems it is trying to solve, the nature of the inputs and outputs. The ecosystem changes relatively rapidly in the programming world in the last 2 years for example there has been a massive shift to broweser/client side processing with jquery, around eight years earlier there was a shift from desktop to web. Anything that makes too many of these assumptions becomes quickly redundant. Traditional code has many advantages, it is very flexible, context independant, readily testable, easy to extend/supplement and keep stable.

  44. That's not really the point by Anonymous+Brave+Guy · · Score: 1

    Unless somebody wants to give a better executive summary, there's no way I'm weeding through an hour of video.

    That's your loss. The guy behind these ideas is, IMHO, one of the most interesting researchers in the field of computing today. Go ahead and check out Bret Victor's home page directly if you don't like the blogspam link. He has many other ideas about the interplay between visualisation, mathematics, and software development.

    There are way too many people in this Slashdot discussion whose only contribution is either "TL;DW" or "it's a dumb idea that only applies to GUIs". Those people obviously haven't understood the fundamental ideas that Bret is suggesting, and I suspect didn't even bother to watch the whole presentation before diving in and criticising. It's sad.

    Genuinely interesting and innovative ideas are rarely conveyed in 140 characters, or in a three-paragraph echo chamber blog post with 5 Google Ads attached. You have to invest a little of your own time if you want to do anything worthwhile. I recommend that you do invest some of your own time in studying this guy's work if you're at all interested in what's wrong with maths and/or software development today and some ways we might improve it. Or you could just spend the same hour reading another five troll blog posts about things like whether it's the year of Linux on the desktop yet and then getting involved in the inevitable more-heat-than-light comment threads, I suppose.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:That's not really the point by istartedi · · Score: 2

      140 characters may not be enough; but an hour of vid is too much. Can you add anything to TwinBee's post above? I think he answered my question the best. To reiterate, there are a lot of great researchers out there, and a lot of people like yourself who will tell me their ideas deserve my attention. Your whole line of reasoning is "this one is special". Sorry. That's just an assertion.

      Personally, I think Manfred Von Thun who you may not have heard of is really great for having shown us the Joy programming language. That doesn't mean I'm going to tell you "it's your loss" because you don't want to spend the better part of a week reading his papers.

      You could read the Wikipedia article on it very quickly instead.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    2. Re:That's not really the point by Anonymous+Brave+Guy · · Score: 0

      Did you even follow the links I gave you? Those go to articles on the same researcher's home page, which you can read/skim over/explore interactively as you see fit, and which have a similar flavour to the video posted here but don't require you to sit through anything you don't have the patience for. If you can't even be bothered to do that and decide for yourself, then it really is your loss.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:That's not really the point by istartedi · · Score: 1

      The links all point to an index of links. I did think this was a bit funny. It came off as you advocating that I should read all those links. This was with IE 8, which I always go through and nail down a lot of security settings on for obvious reasons. I'm not sure if that's the culprit or not. There is a weird sort of bang path in your URLs. I don't feel like looking up the URL RFCs, which are ancient as the Parthenon and really ought to "just work" by now.

      Now, when I fire this up in Chrome it seems to do more what you intended.

      Sorry. Even after skimming his work in a way where I'm more in control and don't have to veg in front of a video, I'm still not excited. Different strokes for different folks.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    4. Re:That's not really the point by Anonymous+Brave+Guy · · Score: 1

      Even after skimming his work in a way where I'm more in control and don't have to veg in front of a video, I'm still not excited. Different strokes for different folks.

      Fair enough.

      FWIW, on the #! thing, it's to allow AJAX-based web pages to be linked/crawled.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    5. Re:That's not really the point by istartedi · · Score: 1

      I Googled around about the shebang because I was curious. A lot of people are criticizing it for doing essentially what it did to me on this thread. It looks like a Google innovation and AFAIK it can't be a compliant URL because the hash is supposed to take you somewhere within the page. Obviously there's no bang on the page.

      I also took a look around his site and I see what you mean. The man and his accomplishments impress the living daylights out of me. To the point of... "crap, I feel small".

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  45. Timing by Anonymous Coward · · Score: 0

    Many of the complaints here about his ideas were less than an hour after the slashdot post. Problem is the video is an hour long. Blah blah I'm new to slashdot, but before you tear down someone else's idea learn what their idea really is.

  46. How I program by Skapare · · Score: 1

    I set up a separate script in another window that, in a loop, keeps trying to compile and run my program. If it fails, it immediately tries again (I was thinking one day I should make it detect if the code has changed, or not, but then, I figured, I have too much computer power so it needs to be wasted). If the program compiles, and then runs, then it sends me an alert (making loud grunting noises and such). So all I need to do is sit there and randomly code stuff I have no idea about, and keep trying until I hear the grunting noise. Then I'll know it's done, and release the beta version.

    --
    now we need to go OSS in diesel cars
    1. Re:How I program by dlingman · · Score: 1

      If the program compiles, and then runs, then it sends me an alert (making loud grunting noises and such). So all I need to do is sit there and randomly code stuff I have no idea about, and keep trying until I hear the grunting noise. Then I'll know it's done, and release the beta version.

      Congratulations - you've invented Grad Students.

  47. Anything for download? by CrackedButter · · Score: 0

    Where is the ability to download Bret's software? He worked for Apple, why isn't this in Xcode already?

    1. Re:Anything for download? by Nexus+Unplugged · · Score: 1

      I second that. While his ideas may not be as "revolutionary" as he says, I'd still like to try out that Javascript thing he had. Could be interesting.

  48. 3D graphics programs like Maya and Houdini by gmueckl · · Score: 1

    3D graphics programs like Maya and Houdini have a nice little set of features that comes quite close: they do not forget operations that you make, but instead can repeat them for you again and again. In fact, this mechanism exists to allow the user to go back and change parameters for old operations. The program then reruns the entire history (effectively a program) and displays the result. This works even for quite complex contraptions. In a way, this is just that same kind of visual debugging. Once you understand that a graph can be a representation of a program, that is. Animation features allow you to go back and forth in time and there are also features to trace out the complete paths of objects on the screen so that you can see it all at once.

    Spreadsheets also come pretty close: if execution were allowed to loop and branch properly (to become Turing-complete), you would be able to create an instant visualization with them as well. Actually, the program would be its own visualization.

    --
    http://www.moonlight3d.eu/
  49. Naive by gregben · · Score: 1

    Reliance on tools of this nature will reduce the quality and clarity of the source code. The programmer will have little motivation to use descriptive variable names or constant definitions.

    This is evident in the video. You can see the use of integer literals everywhere instead of symbolic constants.

  50. Re:Blue Sky == B. S. by BasilBrush · · Score: 1

    You didn't watch the video. It's not about removing coding. It's about getting instant feedback on what's being coded.

    Well actually it's about much bigger issues than that, but that's the heart of it.

  51. Designing on "PrincipleI"? "Principle"? by Requiem18th · · Score: 0

    He means interactively, he is talking about immediate feedback and interactive design. Leaving aside that these things are know and already worked on, why could he title his conference after what he is actually talking? Why did he had to make it appear as if he's breaking some philosophical ground and why did he had to inkoe great creators from the past? Oh yes he's an Apple guy, the company that used 1984 imagery to insult IBM, the company that used the ghost of communism to sell themselves, the company that abused images of Ghandi to sell you questionably priced equipment.

    --
    But... the future refused to change.
  52. 50 years to late... by Anonymous Coward · · Score: 0

    REPL?

  53. Did anyone else think Bob Ross? by steve.cri · · Score: 1

    With the little tree, and the little leaves, and the nice little sun, and it is all very simple and friendly with lots of colours? Even the voice of this guy has this monotone, almost hypnotising Bob Ross quality, and it looks all very harmless and friendly, but somehow you get the feeling that you can't take it too serious and that the method is fine for him and his little tree, but that you couldn't use it to make anything much different.

  54. Depends on language... by Junta · · Score: 1

    I was thinking more C/C++ where failed assert statements generally mean pretty fatal behavior.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  55. Fuzz testing by tepples · · Score: 2

    at least one of the specific situations needs to be the input of a random number generator doing crazy stuff.

    You're by far not the only person to reach this conclusion.

  56. I agree STRONGLY w/ 2 things you stated by Anonymous Coward · · Score: 0

    "In fact, the biggest plague on programming ever has been this concept that changing what you want fifteen times along the way is perfectly okay and we just need to adapt methods to that idiocy. You don't need any of this crap if you just know what you want ahead of time." - by AdrianKemp (1988748) on Sunday March 11, @03:29PM (#39319623)

    Agreed, agreed, agreed, 110% - that is, unless what I wrote is not good to begin with (happens, even though I usually think often for DAYS before writing anything).

    In fact, once I 'map out in my mind' what the program needs to do, based largely on spec requirements (either ones I do myself for personal code, or ones given me for business work (mostly MIS/IS/IT work here, the 'steady-eddy' money that's usually around because no business really EVER does things the same as the next one))? I know what it has to do, & I start building it, piece-by-piece.

    Now, I don't know about you guys, but like "Wayne & Garth" said in "Waynes World" (while garth held is UNIX book no less, lol) - "WE FEAR CHANGE"...

    I.E.-> Usually around the 10k-20k lines mark (compiled code that is built by the IDE & compiler engine) & 5-15k hand-written lines in smaller apps for example?

    Well... If it's working well, and it usually is for smallish type projects (think freeware/shareware apps)??

    IF I get a 'smart idea', such as what you see when you 'refactor' an app OR start to @ least (& I do that 'oldschool' by hand, spotting repetitive routines that could be trimmed out into a single function you pass parms into etc./et al, after profiling the 'slow' areas with hi-res timers @ start & termination of procs/subs/methods/functions etc.)??

    I do it!

    HOWEVER, but often RELUCTANTLY...

    That's right!

    Just because I get a bit 'scared' that my idea isn't going to pan out though it "looks good in theory" in my mind!

    Yes, it happens, did to me recently!

    I 'burned a LOT of time on it' in fact & I was rather let down (was working with stringlists, but their frigging limitations on assigning them to visible controls isn't always perfect, ie-> sometimes if say, they're sorted? No dice for removnig elements etc. or their limits on records possible etc.)

    We've all been there saying 'oh yea, that's better & will work' until you open a can of 'whoop ass worms' on yourself doing it...

    Again, I ran into recently in fact on a freeware app (I'm doing now in fact & began submitting it to places for distribution once it passes muster/antivirus tests, etc.-et al) - it's been nearly 7 yrs. since I was into this (was from 1995-2004 or so pretty bigtime, decent side money, some notoriety, & just GOOD practice too).... "You've been asleep CAP, for almost 70 yrs." lol, human time vs. internet time that is.

    Anyways/anyhow:

    I'd burned a lot of time on an algorithm/engine that SOUNDED good mentally @ first, until I hit crap in the details in stringlists... it's always THAT!

    I.E.-> Some SMALL detail I overlooked in fact or I didn't know about since I'd never tried it before ('the devil' truly TRULY are in the details in this work & we all know it).

    ---

    "I know what the code I'm writing is going to do *before* I start writing it, as I hope for the love of god most programmers do." - by AdrianKemp (1988748) on Sunday March 11, @03:29PM (#39319623)

    ABSOLUTE 110% AGREEMENT here, for sure... lol, imagine a blindman leading folks along a path on a cliff is what I just thought of reading what you wrote!

    APK

    P.S.=>

    "It's just another "wouldn't it be great if computers programmed themselves" video by someone too stupid to tie their own shoes." - by AdrianKemp (1988748) on Sunday March 11, @03:29PM (#39319623)

    Sometimes I feel that way too: BUT, I try to 'stop myself' (that is unless that person starts 'busting my balls' too hard, & then like most fo

  57. Curses by VTEngineer · · Score: 1

    luckily I am old enough to still benefit from ignorance. I am able to visualize such things while coding without aide. It has always been a competitive advantage. If you generalize it via a video component to all coders, it levels the playing field. The gifted super coders, who I suspect can all do this visualization in their head, will simply be rendered normal. Unfortunate, but predictable in the long line of jarring advancements. Bravo! The really interesting part of this to me is I bet that is how most great coders think implicitly. I bet that is why a great coder is 10 or more times more productive with fewer errors than average. Let's call it visual coding and whether it is computer aided or God given, it is very productive.

  58. paint by Anonymous Coward · · Score: 0

    How is this not paint?

  59. exactamundo. article missing the point by decora · · Score: 1

    the time spent writing / compiling / etc is not just about getting the thing to work.

    its about organizing it in some half-way logical and elegant manner so that other people can understand it and work on it later.

    its like composing a poem (minus the emotional considerations or the search for truthful depictions of the human condition).

  60. as long as you dont need clean water, by decora · · Score: 1

    yeah, fracking shale gas is wonderful way to get rid of 'terrorist oil'.

  61. First, Draw Flow Charts by Taco+Cowboy · · Score: 1

    for me this looked like something we learned even before we wrote our first program in school at a computer.. debugging on paper..

    Before you even started debugging on paper, remember to draw out the flow chart

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:First, Draw Flow Charts by Cederic · · Score: 1

      Which is itself an articulation of the program that will eventually be translated into a language the computer understands.

  62. Just be the code by Anonymous Coward · · Score: 0

    Just be the code Danny, be the code...NA...NA...na...na...na...na.......

  63. This reminds me of by khoonirobo · · Score: 1

    When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.

    from: http://en.wikiquote.org/wiki/Alan_Perlis

  64. Nothing new by Anonymous Coward · · Score: 0

    Lisp has been able to do this for just a little while. A few decades.

  65. Keys to the Lamborghini by CamD · · Score: 1

    Grab that spare Model M, some duct tape, and presto: The keys to the Lamborghini!
    http://www.youtube.com/watch?v=kTYFsyFFfPs

    PS. Why the hell is this video unlisted? Made it really hard to find.

  66. its about great serendipitous moments of insight ! by Anonymous Coward · · Score: 0

    Its about: just do it and along the way we meet great serendipitous moments of insight. Bret victor has a couple of great vimeo vids which show his great teaching ideas. Whatever discipline, programming is just one of it.

  67. nothing new by SuperDre · · Score: 1

    This is fun for what he show's, but it doesn't work for everything.. Also we already have stuff like that since Visual basic 6.0.. In the end it does do compile, the only difference is you don't have to hit the compile button..

  68. Misnomer by Anonymous Coward · · Score: 0

    This was a 1 hour talk talking about a "general principle" and "a better way to program". If he had instead titled it "A cool hack for GUI programming" or similar and proceeded with a 5-15 min talk about how it works and some examples only it would have been fine. It's a neato little tool/idea that can be used in some specific situations such as GUI/Games programming as he showed.

    It's when he generalises the talk into something more than a hack into a "general principle" and "a better way to program" that the talk becomes complete bullshit. It's not a general tool/principle. It's a specific tool/hack/idea and it's a simple one at that and not very new/revolutionary. It's been done by people everywhere.

    Also, he didn't show any examples of where it's not very useful although he had a whole hour (disingeniously implying that it works for everything).

  69. It was both right and wrong by maxm · · Score: 1

    As a programmer working on difficult and abstract problems, his method is not that usefull. The example was good for a single simple problem. But that is not really the problems you have when working on difficult problems. And writing visual-feedback software for complex problems would be like writing book authoring software that creates a movie from the book you are writing. It is a good and obvious idea. But absolutely unrealistic for real world problems.

    Where it is *very* useful though is for programmers designing software. If we can make our software work like that in their limited domains, then it is a terrific way to solve our users problems.

    --
    Max M - IT's Mad Science
  70. Perfect for network programming by mux2005 · · Score: 1

    His principle is perfectly applicable to the programming of networking protocols. Imagine working on IPv6. You have the network sniff in one window. You can rewind the timeline, make changes in the kernel module and see live the changes in the sniff, including the differences in the peer's replies. That would be an incredible productivity tool. And it seems feasible to implement something like this with virtual machines. As you change the code the framework transparently compiles it and runs the protocol exchange again in the virtual machines, updating the sniff to match. The problem is performance, so I don't see this happening today, but the principle seems sound.

  71. How does this work with J2EE? by Anonymous Coward · · Score: 0

    You have JSP, JSTL, and EL code with JavaBeans emitting HTML, CSS, JavaScript, and jQuery with AJAX calls, driven by Struts with form beans and Actions, talking to a back-end object model that uses Spring, Hibernate, MQ, and DB2. When he does a video explaining how to visualize that, I'll watch. Extra credit if he explains how to visualize any and every Java library on the list breaking its own configuration syntax between point versions. More extra credit if he visualizes Hiberbate with legacy databases.

  72. Everybody already do that by Anonymous Coward · · Score: 0

    When I'm "creating" (I'm a creator XD) in OpenGL for example and I want to see what effect some set of variables have visualy I simply change their vallues using the keyboard when running the program. When I`m programming a html page I change style values using firebug. Eclipse compiles everything you type in and show you bugs making the whole IDE unusable while on it (I can't stand text editors that sometimes take more than a second to type in something I keystroked - vim for the win).
    If you want to create a IDE that gives you instant visual feedback of some kind of code, cool but no way it will have a big scope, or number of functionalities. And good luck with that.

  73. what a waste by Anonymous Coward · · Score: 0

    Several minutes I'll never get back.

  74. functional programming with Caml light interpreter by Blaskowicz · · Score: 1

    When in first year at the university we were introduced to functional programming as the first paradigm to learn. we would make fun at it and hate it, you'd thought they would start with something simple and low level like C (which by the way is assembly++, like BASIC).

    But Caml, an ML variant, had its charms. strong typing, as in perfectly strong typing. type inference as in, it looks at the code and perfectly infers what the input and output types are. it was so picky that you add "+" for addition between ints and "+." for addition bewteen floats. so you would try and input your damn recursive fonction, hit keypad-enter and the damn interpreter would inform you of type mismatch, or accept your function which would mean it should mostly work, and prints out the types (such as int -> int or list of int -> list of ints) . running on windows NT4 on 32MB ram computers at the time, which was impressive - a real OS in not much ram.

    That ultra-strict strong typing bitch was awesome too, if your function could deal with any kind of element or list then you would get a truly polymorphic function without any special syntax.

  75. I do that since 25 years by Anonymous Coward · · Score: 0

    yes, it's my programming style. And I choose the tools enabling me to do it.
    That means, screw the compiler, or have a really fast one.
    Basic, assembler, awk, bash, perl, javascript ...

    All those languages can give you quickly a response if your little modification has an impact.
    I call it iterative programming. One step after the other.
    Result is of course lovely spaghetti code :-) That code saved some projects from being canceled. Yes it's bad code but it's doing the job. Usually it gets later fixed by a rewrite: keep the functionality, make code maintainable.

  76. Its called a debugger by assertation · · Score: 1

    Seeing the results of what you write is what debuggers are all about.

    The only problem is that debuggers have universally horrible documentation and are difficult to get hooked up, so most programmers don't bother.

    Make a debugger with easy to understand documentation ( don't hire the tech writers from Oracle ) that is easy and fast to set up.

  77. The point of the talk by bobbutts · · Score: 1

    The talk was not about revolution in programming. It was about a person defining a principle and using that to guide what they do. In this case, the speaker, decided that creative designers need feedback, and he created these demos to show how feedback can improve some simple situations. If you didn't watch the video, you look very stupid criticizing it. This discussion is one of the worst I have ever seen. You may be a great programmer, but you have a closed mind and made a bad decision to post about something you know nothing about.

  78. I watched the whole hour by Anonymous Coward · · Score: 0

    The point of the video is not to show some new technology that will take over development in any field. The eye candy at the beginning was just to garner some attention from the audience for his follow-up point. He believes that there exists a problem where people think of ideas and cannot realize them due to lack of technical skill. The tech demos are just him following through on trying to fix the problem he believes exists, which, by his definition, is living/working on a principle.

    This is a life lesson talk, not a tech demo. You just have to watch the whole thing to get it.

  79. rapid prototyping by George10s · · Score: 1

    Hmm. This reminds me about Winforth, how you can edit the source code in realtime, and is also very practicable esp in Artificial Intelligence. I'll be looking forward to this feature in c++ and some other languages.

  80. Compilers are getting smarter by TheSkepticalOptimist · · Score: 1

    As more processing power is available, compilers are getting smarter. At least working with C#, it highlights errors long before I have to compile the code to see what the results are and other systems are trying to catch issues long before they are built and shipped.

    The idea of "realtime" software development will make sense in the near future, why not build an application while it is running so you can see the side effects of the code immediately, both good and bad.

    However the problem isn't "conceptualization", its in testing. Programs are only as good as the testing done on them. Anyone can whip up software, but bugs are found from usage without adequate testing.

    What is needed is not an "easier" way to develop software, but a smarter way to test it. If a compiler could be invented that would automatically generate the test cases to throw against your code that would solve the problem of buggy code once and for all. Today test driven development is still broken by the idea that humans have to write test cases. If a test case is not properly written with adequate code coverage, it can still produce code that fails. If an automated process could throw every conceivable scenario where your code could fail rather then just "compile" and execute it, that would be the future of bug free software.

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
  81. if you can't explain why it works... by Chirs · · Score: 1

    How can you possibly know how to extend it when someone changes the requirements, or new hardware becomes available, or you need to port it to another OS?

    I've been coding for over a decade. I can prototype something and get it working fairly well in a relatively short amount of time. Making it bulletproof takes 10x as long. If I just make it work for my initial conditions, I'd be 10x as productive....but pity the poor slob that needs to come in later to fix it when conditions change.

  82. Seems most of you are missing the point by LongearedBat · · Score: 1

    His point isn't the interactive language per se. Nor is it the interactive Flash editor. Nor even the interactive ciruit diagram. They're just examples that he's using to get his message across. He even starts his talk pointing that out (at 62 seconds in to the talk).

    His message is that you should try to find a guiding principle to guide your work. A sort of focus, I guess one could say, rather than working on random problems. (In a sense, his talk really begins at around 34 min.) The point of the talk actually has nothing to do with programming at all, but because of his background that's the direction that he's coming from.

    His own guiding principle is that creativity is stifled when you can't get immediate feeback. So he wants to find ways beyond that. Thereof his examples.

  83. Lemme sell you an esoteric, transcendental bridge by luis_a_espinal · · Score: 1

    Yes you do need a video for it.

    For f7cks' sake man, reading comprehension. This is what I wrote with bolds to emphasize:

    You don't need a 1hr long video as the sole measure with which to convey a technical point.

    Now, regarding this:

    It would not be conveyed by static text and diagrams.

    Not even the gist of it. Are you telling me that no amount of proper technical writing can capture the gist of the idea, that it is impossible to write a summary of it? What, is it so trascendental that it escapes description, that it defies summarization in a written language? Do you realize the monumental absurdity behind that sentence? The only circumstances I've ever seen such a thing is when dealing with meta-physics snake oil salemens (or snake oil salesment in general.)

    Lemme sell you a bridge, no no, the idea is to grand/complex/<insert appropriate adjective&gt to be described in a written summary or presentation. Come to our <insert time length in hours or days> lecture/video/meeting/whatever so that you can see why you must buy my bridge.

    Can you spell "bullcrap"?*

    * - btw, the sarcasm is not directed to the people who made the video (by all accounts, they could be right.) It is directed at this absurd post of yours.

  84. It's a method for exploration by vosovich · · Score: 1

    I think the example of the binary search is a bad one for reasons already pointed out. But that example differs from the others by being a problem for which you know exactly what it is supposed to do. I hope there are still people believing that just trying out something -- be it a doodle, a physical experiment, some code or a circuit -- is an important process in the discovery of new things.

  85. What's wrong with console.log()? by tingentleman · · Score: 1

    Sounds like he's more interesting in finding the thing that will give "meaning" to his life, than actually caring whether that "thing" is sensible or practical. Go find love Bret, have kids and program stuff that makes a difference to other people's lives. That works for most of us...

  86. How about monkeys? by Anonymous Coward · · Score: 0

    May be this will make monkey coders inventors...

  87. Partial compilation was same answer 20-30 yrs ago! by lpq · · Score: 1

    This was known decades ago. I remember projects devoted to partial compilation to provide interactive feed back on what your code is doing.

    The problem isn't how fast you get feed back -- it's getting any at all.

    Unless you instrument your code or run it through a debugger, most code doesn't generate any output, so you don't know what it is doing!...

    To instrument it generates nearly 100% overhead and running debugger can easily take 10X as long or longer to run the same code. Neither is a great tradeoff.

    If the computer could take old and new and show us differences in execution flow -- or just SHOW us execution flow, that would be useful. Even today -- tools to show *static* execution-flow are rare and complicated to use -- not to mention difficult and expensive to develop.

    With the cost for development tools being pushed toward 'zero', fringe benefits like visualization seem like a frill I'll never see and is unlikely to be developed unless vendors deem code excellence to be a much higher priority than it is now: today, mediocre, is more than good enough as long as it gets something in the customer's hands.