Side-effect-based programming.



  • I think that most people who have spent any amount of time learning about computer science have reached the conclusion that limiting the occurence of functions with side effects is a good thing. Of course in many cases, especially for things like logging and persistence, side effects are necessary.

    We have found a new approach to development...

    We use a clunky graphical tool to lay out nodes in a flowchart. Some of these nodes are made up of a series of "steps" that represent certain functions in the back end. Steps can only interact with each other by modifying the global context. In order to manage some of the complexity inherent in this system, the steps have "options" that may indicate where in the global context to retrieve or store a value.

    So, basicaly, we program by stringing together functions that take their parameters indirectly and only work by modifying the global state. There is no scoping in this system. If you have a loop A in one module, and call another module with loop B that uses the variable name from within loop A, you clobber your "outer" loop A variable.

    This is seen as a good thing somehow.



  •  What system/language is this and how much napalm will it take to destroy?



  •  Wow, that sounds nasty.  Is it an in house developed system by any chance?



  • Haha. I once worked with something similar. It was some test-tool developed in house in about 5 years. For some reason they decided that text is waaaay too complicated and it's easier to program by just dragging figures and lines on a flowchart. This meant that a simple procedure could develop into this massive diagram where you have to scroll horizontally and vertically just to see it. What I appreciated was that I could add C# plugins to it so many of my diagrams where just calling a procedure writen in C#.
    It was just UI design gone tooootally wrong. And that was just ONE of the many WTFs in it.
    Others were: frequent crashes, a huge memory footprint and i could go on..

    Luckily we dropped it and managed to write our own tool in about 5 weeks.



  • @superjer said:

     What system/language is this and how much plutonium will it take to destroy?

    FTFY


  •  Sounds like Prosa, a tool we used in university CE courses. Horrible, horrible thing. It's basically used for design only, but it contains options to convert into C. I shudder to think of the damage it can do to the unwary.



  • @wf_tmro said:

    Haha. I once worked with something similar. It was some test-tool developed in house in about 5 years. For some reason they decided that text is waaaay too complicated and it's easier to program by just dragging figures and lines on a flowchart. This meant that a simple procedure could develop into this massive diagram where you have to scroll horizontally and vertically just to see it.
     

     Hmm, sounds like MS Access....



  • Gah! Tell me you're not using EasyScript!

    I encountered that at my first programming job. It was used to lay out the logic for interactive voice systems-- those phone tree things everyone seems to hate so much.

    The stated purpose of the language was to let non-programmer clients write and edit their own phone trees, because they could just lay out flow charts instead of having to write in a cryptic language full of semicolons. Unfortunately since it still had to include variables and if-statements and all that "complicated" stuff, and the average non-programmer has never seen a flow chart in the first place, the company still had to maintain its own staff of programmers to write the code for its clients.

     



  • Note the complete lack of meaningful labels. Every node is simply labeled with a number.



  • @AuraSeer said:

    Unfortunately since it still had to include variables and if-statements and all that "complicated" stuff, and the average non-programmer has never seen a flow chart in the first place, the company still had to maintain its own staff of programmers to write the code for its clients.

    ^ This.



  •  ts:dr (too small: didn't read)

    Post it up on tinypic or something in full glory.



  • @djork said:

    Note the complete lack of meaningful labels. Every node is simply labeled with a number.

    Don't you think your employers might be angry with you for revealing this vital detail of their internal business logic?

    zoom in on the details of djork's pic



  • @amischiefr said:

     ts:dr (too small: didn't read)

    Post it up on tinypic or something in full glory.

    No need. Just imagine each box labelled with numbers like 100, 110, 120, 130, etc.. That's it.



  • Dang, sounds like someone ripped off my idea for Visual Batch Script 2008



  • @Dudehole said:

    Dang, sounds like someone ripped off my idea for Visual Batch Script 2008

    Actually, this is an old WTF.  But I can't find it now.  Eh had a GUI-cum-flowchart-cum-business-logic-abstraction layer, and doesn't afraid of anything!

     



  • @djork said:

    @amischiefr said:

     ts:dr (too small: didn't read)

    Post it up on tinypic or something in full glory.

    No need. Just imagine each box labelled with numbers like 100, 110, 120, 130, etc.. That's it.

    :-) Well, that was why I posted the blow-up.  Why bother having to imagine something is indistinguishable, when it actually can be?!


  • @DaveK said:

    Actually, this is an old WTF. Eh had a GUI-cum-flowchart-cum-business-logic-abstraction layer, and doesn't afraid of anything!
    FTFY



  • @TwelveBaud said:

    @DaveK said:
    Actually, this is an old WTF. Eh had a GUI-cum-flowchart-cum-business-logic-abstraction layer, and doesn't afraid of anything!
    FTFY

    Thanks!  *looks at diagram in article* AAAAARRGH MY EYES!



  • @Dudehole said:

    Dang, sounds like someone ripped off my idea for Visual Batch Script 2008

     

    I considered making Visual Minkowski Register Machines (complete with subroutines) for my B.A. dissertation.



  •  @pjt33 said:

    @Dudehole said:

    Dang, sounds like someone ripped off my idea for Visual Batch Script 2008

     

    I considered making Visual Minkowski Register Machines (complete with subroutines) for my B.A. dissertation.

    This is my all-time favourite Visual development environment:

    Visual TIM



  •  @DaveK said:

    This is my all-time favourite Visual development environment: [Visual TIM]
    Dude! You forgot to anonymize the password!



  • @Zecc said:

     @DaveK said:

    This is my all-time favourite Visual development environment: [Visual TIM]
    Dude! You forgot to anonymize the password!

    Help yourself, with my compliments!


  • whoah, looks like you are working on new advanced tech from Microsoft!

    You have just described W(t)F: Windows Workflow Foundation :)

    couple of examples




  • I have to say as someone who is employed as a developer at Microsoft, I hate it when marketing douchebags design software instead of engineers. Too bad that encompasses about 95% of the products we make :(



  • @Dudehole said:

    I have to say as someone who is employed as a developer at Microsoft, I hate it when marketing douchebags design software instead of engineers. Too bad that encompasses about 95% of the products we make :(

    Well, on the bright side, at least you'll get some good WTFs to contribute!

     

     



  • @loris128 said:

    whoah, looks like you are working on new advanced tech from Microsoft!

    You have just described W(t)F: Windows Workflow Foundation :)

    couple of examples


    My boss actually compares the system favorably to a similar MS research project, and thinks that what we are doing is advanced "modeling", which is some sort of magical thing that makes us more productive. Building an algorithm or a piece of functionality in these flowcharts is "modeling" it. Once we have "modeled" it things are somehow better off than it just being done in a more-readable and more comprehendible 2% of the generated LOC.



  • Hm, I guess I'll have to track down who owns this project and forward them my new idea for "Visual Whiteboard And Marker 2008"



  •  Wasn't Jeff Minter famous for programming using unorthodox techniques and even relying on side effects and hardware bugs?



  • @C4I_Officer said:

     Wasn't Jeff Minter famous for programming using unorthodox techniques and even relying on side effects and hardware bugs?

    Not that I remember; pretty much everybody did that shit back on the C64, and it wasn't something that he specifically was known for.




  • @DaveK said:

    @C4I_Officer said:

     Wasn't Jeff Minter famous for programming using unorthodox techniques and even relying on side effects and hardware bugs?

    Not that I remember; pretty much everybody did that shit back on the C64, and it wasn't something that he specifically was known for.


    So that's what this reminds me of! It's like I'm 8 years old again and programming Tandy 1000 BASIC!


Log in to reply