Slashdot Mirror


Ask Slashdot: Why Are We Still Writing Text-Based Code?

First time accepted submitter Rasberry Jello writes "I consider myself someone who 'gets code,' but I'm not a programmer. I enjoy thinking through algorithms and writing basic scripts, but I get bogged down in more complex code. Maybe I lack patience, but really, why are we still writing text based code? Shouldn't there be a simpler, more robust way to translate an algorithm into something a computer can understand? One that's language agnostic and without all the cryptic jargon? It seems we're still only one layer of abstraction from assembly code. Why have graphical code generators that could seemingly open coding to the masses gone nowhere? At a minimum wouldn't that eliminate time dealing with syntax errors? OK Slashdot, stop my incessant questions and tell me what I'm missing." Of interest on this topic, a thoughtful look at some of the ways that visual programming is often talked about.

876 comments

  1. I think IBM is working on it by SigNuZX728 · · Score: 1

    With a project named "Watson". Or maybe not. I dunno.

    1. Re:I think IBM is working on it by Anonymous Coward · · Score: 0

      Yeah... no...

      Watson is a very long way from helping develop software, or even algorithms.

    2. Re:I think IBM is working on it by Anonymous Coward · · Score: 2, Insightful

      Why? http://catb.org/~esr/writings/unix-koans/gui-programmer.html

    3. Re:I think IBM is working on it by lgw · · Score: 5, Insightful

      The hard part is clearly, unambiguously describing the solution to the problem at hand. English is a crappy language for that (legalese and standardese are harder to read than code). The easy part is expressing your clear thoughts in a formal language. Seriously, if you can't get past the fact that you need a formal language, you'll never be writing non-trivial programs - you've high-centered on the easy part and haven't even gotten to the hard part.

      There's one tried and true way to create a computer program to solve your problem without learning to code: hire a programmer. Even then, you'll likely discover that you lack the ability to even explain the problem clearly and unambiguously.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    4. Re:I think IBM is working on it by lgw · · Score: 5, Funny

      </b>

      --
      Socialism: a lie told by totalitarians and believed by fools.
    5. Re:I think IBM is working on it by JoeMerchant · · Score: 4, Informative

      I'd also throw in, we're still writing text based messages - even though competing pictogram systems have been developed, none seem to have caught on well enough to displace the written word, composed of characters from a relatively small alphabet.

      I made a LabViewLike graphical system for compiling algorithms into parallel processors as part of my Masters' thesis. It used a schematic capture program to build the hierarchical graphic "data flow" - but at their core, the basic modules were still short text based programs.

      Some "programmers" might operate at an entirely graphical connect the lego blocks level, but sooner or later it comes down to 1s and 0s, and somewhere along that chain (several somewheres in modern practice) it will be represented in text based languages.

      I think the graphic based systems haven't taken over for the heavy lifting because they're all too specialized, my thesis included. Most "real jobs" need more flexibility than the non-text based systems can provide. Having said that, I use 100% graphic based UI design, even though the tools translate to .xml for me, I almost never "get my hands dirty" on the text based code for my UIs, anymore.

    6. Re:I think IBM is working on it by LifesABeach · · Score: 4, Funny

      "I consider myself someone who 'gets code,' "

      I think I spotted your initial error. Would you like cheese with that wine?

    7. Re:I think IBM is working on it by LifesABeach · · Score: 2

      The Egyptians used a graphical system, but the Greeks dumped it for them.

    8. Re:I think IBM is working on it by ShanghaiBill · · Score: 5, Insightful

      What does that have to do with BETA?

      It is because both BETA and "graphical coding" are abominations. The people pushing "graphical coding" are usually PHBs or other "non-programmers" (such as the submitter). I have never met a programmer that has used GC and prefers it over just writing code.

      Note to submitter: Before you try to "fix" a profession, try learning enough to understand it first. The first thing you need to understand is that you are recycling a thirty year old idea, that has been tried and failed many, many times.

    9. Re: I think IBM is working on it by Anonymous Coward · · Score: 0

      Algorithms are math based.
      Mathematicians work I. Numbers an formulas. Not pictures.
      And why would it be implied that graphics would be easier and clearer than the written word.

    10. Re:I think IBM is working on it by JimSadler · · Score: 2

      Considering the difficulties in developing Chinese and Japanese typewriters and the difficulty programming in pictoral languages English text looks rather nice. If we had a formal language such as we see in chemistry or mathematics or physics the learning curve and retention issues would be worse than any syntax nightmare in English. Oddly the difficulty with applying meaning to terms in a formal language gets worse when less terms are in play. Imagine it is 1870 and someone hands you E = M.C.squared. How many years would it take a person to figure out just what the equation described? Formal languages reduce ambiguity but carry a translation burden that is nightmarish. I took a good chemistry course in 1961. Thank God i don't have to take a similar course in 2014. Chemistry is off the charts in complexity although I will say in 1961 doing molar chemistry with a slide rule was challenging. Some of the required proofs ran into five pages and the teachers insisted on every step being perfectly recorded.

    11. Re:I think IBM is working on it by JustOK · · Score: 1

      [Preview]

      --
      rewriting history since 2109
    12. Re:I think IBM is working on it by JWSmythe · · Score: 5, Insightful

      I do recall some attempts at "graphical coding", where a function was an icon that you could drag into your code, and other such nonsense.

      Wikipedia has a whole list of them.

      Thankfully, most never really took off, except for the WYSIWYG HTML editors. I still hate it when people who make their entire WYSIWYG site, and then ask me to go make "simple" changes. Sure. 3 hours to reformat the HTML itself and strip out extraneous crap, and 5 minutes to make the change. ...like...

      <font color='#FFFFFF'><font color='#ff33dd'><font color='#000000'><i><span style='color:#0cd'><b><font face="Book Antiqua, Times New Roman, Times"><a href='C:\My Documents\FP98 Examples\homepage.htm'></a></font></b></span></i></font></font></font>

      I don't mind charging the time to do it, but I hate doing the work. Sometimes I'm actually stunned how much crap can be shoved into code, that does absolutely nothing.

      It happens in real coding too. I've found thousands of lines of unused functions, or even

      /* disabled for now, fix tomorrow. */
      /* John - Feb 13, 1998 */
      if (0){
      ...
      // 500 lines later
      }

      --
      Serious? Seriousness is well above my pay grade.
    13. Re:I think IBM is working on it by dbIII · · Score: 2

      I have never met a programmer that has used GC and prefers it over just writing code.

      I preferred it for something like my first week of using LabView when I was only doing trivial stuff. Then the restrictions of the metaphor of programming by drawing a flow chart started to sink in. Once you get crossing lines it becomes far more confusing than reading lines of code. Once you have to waste time moving icons around to fit other stuff in it becomes far more time consuming than writing lines of code.

    14. Re: I think IBM is working on it by Anonymous Coward · · Score: 0

      Now I'm lost. What the fuck is XML?

    15. Re:I think IBM is working on it by globaljustin · · Score: 1

      IBM is working on it with a project named "Watson".

      no. Watson is a program made to take speech or text input and scan large databases to provide speech or text based answers

      it is programmed with, ultimately, 1's and 0's just like every other computer

      code will always be 'text based' because ****human to human**** communication is 'text based' in the sense that symbols represent logic.

      you can change the language rules, use numbers, whatever you want, but all coding uses symbolic logic

      --
      Thank you Dave Raggett
    16. Re: I think IBM is working on it by Anonymous Coward · · Score: 0

      Take a look at APL. This used symbols instead of words and required a special keyboard. It was just about impossible to understand a programming written by somebody else.

    17. Re:I think IBM is working on it by gnupun · · Score: 1

      Graphical programming is slow and tedious. Imagine a simple 20-50 line algorithm written in text. Now convert that to a flow chart. That's gonna take 10-20 times longer to write and edit that, it's not going to easily fit in a screen.

      Although graphical programming may be suitable for simple things like automation in a tool where you do taskA then taskB then optionally taskC.

    18. Re:I think IBM is working on it by Anonymous Coward · · Score: 0

      It can be good for teaching young kids the basic concepts of programming (logic, flow control, etc), I think. Scratch, for example, allows them to quickly make changes and investigate the flow of a program, without having to worry about memorizing or debugging syntax.

    19. Re:I think IBM is working on it by mwvdlee · · Score: 2

      Graphical programming would be more useful if it could be mixed with code fragments.

      I've used SynthMaker, which uses a data flow programming model, and the dragging around of things actually works quite well for certain tasks.
      It works good for building things like DSP's, where the flow is very linear.
      It works surprisingly well for developing user interfaces and controls.
      It fails for loops and any flow more complicated than a basic "if..else" conditions.
      I managed to get Conway's Game of Life working, which should be a proof of turing completeness, but this type of project should no longer be considered readable or maintainable in a visual programming language, whereas it's be trivial in a "text-based" language.

      Mind you, even at it's worst, visual/graphical programming is still a lot more useful than Beta.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    20. Re:I think IBM is working on it by mwvdlee · · Score: 2

      Scratch is pretty much on the border of graphical/text-based.
      Just look at these examples: http://progopedia.com/language...
      The only thing that scratch does is prevent typos and illegal constructs.
      Granted, this DOES make things less frustrating for beginners, but it's not really what people mean with graphical programming.
      A PBH still won't be able to create a working program with Scratch.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    21. Re:I think IBM is working on it by TapeCutter · · Score: 1

      Mind you, even at it's worst, visual/graphical programming is still a lot more useful than Beta.

      GP is good for laying out graphical interfaces and that's about it. The logic that goes behind the interface is rarely of a visual nature, so GP is not the right tool for the "guts" of most applications. A more "natural" way to code the "guts" is the "recipe" abstraction...step1, step2, etc.

      The "problem" here is that coding (of any kind) is an abstraction, at the end of the day everything a computer does must be reduced to AND, OR, and NOT gates. When you start combining them into discrete tools (such as an adder), the type problems that tool can solve are less general than the base Boolean algebra. By time you have accumulated enough abstraction layers to get to a graphical screen painting tool, the range of problems that tool can solve is very narrow.

      Watson is indeed revolutionary, it breaks the above generalization and is very close to what I think people like the submitter really want from a computer interface. Something that will understand what they want,, they do not want to spend years trying to understand what the computer "wants"

      BTW: Watson will soon be sitting the US medical license exam and is expected to do well. IBM are also starting to rent instances of Watson to third party developers ( along with the mandatory(?) phalanx of expensive consultants that will help you build your application ). It really will "change the world" in the next decade or so, even more radically than CAD/CAM has changed manufacturing and engineering in the last couple of decades. In a very real sense IBM have built something akin to the ancient Greek "Oracle", lets hope it works out better for us than it did in the story.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    22. Re:I think IBM is working on it by Koen+Lefever · · Score: 1

      Imagine it is 1870 and someone hands you E = M.C.squared. How many years would it take a person to figure out just what the equation described?

      About minus 90 years?

      --
      /. refugees on Usenet: news:comp.misc
    23. Re:I think IBM is working on it by ShanghaiBill · · Score: 1

      Graphical programming would be more useful if it could be mixed with code fragments.

      This sounds great, until you find a bug the day before the release, and try to retrieve the diffs from your source code repository, only to find that it is full of mountains of binary or XML crap generated by the graphics coding engine. Then try running lint, valgrind, or any other code quality tools. Graphical coding doesn't scale.

    24. Re:I think IBM is working on it by Anonymous Coward · · Score: 0

      Once you get crossing lines it becomes far more confusing than reading lines of code. Once you have to waste time moving icons around to fit other stuff in it becomes far more time consuming than writing lines of code.

      And you're foolish enough to use some kind of auto-arrange/pretty-print feature you can be sure that it'll be such a clusterfuck that it'd be quicker to start again than to tidy it up. Maybe that's how slashdot beta happened?

    25. Re:I think IBM is working on it by TomPittman7 · · Score: 1

      There is a very cool talk on this very subject at: http://worrydream.com/dbx/ Bret Victor comes out dressed like he is in the 1960s and talks about the "future of programming" -- in other words he is speaking like it is 1972 or something and talk about what programming in 2014 should look like. In so doing, he effectively shows us how far off we drifted from what programming could be today. In the talk, Bret Victor points out that one of the reasons programming doesn't evolve as it should is because so many programmers have the attitude ShanghaiBill has and they resist change. We get so full of what programming "is" that we can't see what it could be. BTW, ShanghaiBill, what does failing over the last 30 years have to do with today? Broadast.com failed to bring streaming video to the mainstream in 1999... does that mean no one should ever try streaming media on the Internet again?

    26. Re:I think IBM is working on it by lgw · · Score: 2

      Euler discovered most of 20th century mathematics, but he didn't have modern notation, nor modern proof structure. While there were people working hard to translate his work into modern notation and make his proofs formal, people working from scratch usually made better progress.

      So while he discovered a big chunk of all the math that would be discovered in the next several decades, for the most part he wasn't the basis for that new work, because he lacked good notation. Good notation is that powerful - had Euler written as modern mathematicians do, the field would likely be 30-50 years beyond where it is today. But he mostly wrote in natural language augmented with jargon, and so his amazing genius could not be properly communicated.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    27. Re:I think IBM is working on it by lgw · · Score: 2

      I should add that Euler did actually invent a bunch of notation as he went along (a lot of modern notation, like f(x) for a function, is due to his textbooks). But much of his notation was his alone, and typically his notation came after a lot of work in a given area. Had he started with modern notation, the field would be a different place.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    28. Re:I think IBM is working on it by Burz · · Score: 1

      OTOH, there is the school of thought that holds body language, vocal cues and physical deeds at the basis of human communication; and that without learning language in this context there would be little or no motivation to do anything with the symbols.

    29. Re:I think IBM is working on it by dacaldar · · Score: 1

      Sigh. Never any mod points when I really want them, so comment: +1 Insightful

    30. Re: I think IBM is working on it by lefin1 · · Score: 1

      Timex had something like that for BASIC. One key per code. It really wasn't a bad idea. Definitely a time saver.

    31. Re: I think IBM is working on it by Anonymous Coward · · Score: 0

      XML is a way of representing a hierachical recursive tree of name tags, values and lists in the form of an ASCII file.

    32. Re: I think IBM is working on it by Anonymous Coward · · Score: 0

      +1 remove the upper limit to moderation totals

  2. I know this one... by djupedal · · Score: 1, Offtopic

    It's because _we_ are still writing code. Self-written code that doesn't rely on wetware can't get here soon enough I think.

    1. Re:I know this one... by hcs_$reboot · · Score: 3, Insightful

      and the reason being probably that, in OP's mind, thanks to all new technologies like Google Maps, GPS, Siri and the like, it seems we only have to ask simple requests to obtain a nice result, that, in fact, hides complex operations made servers side.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    2. Re: I know this one... by Anonymous Coward · · Score: 5, Insightful

      It's been my experience over the last 25 or so years that, to the corporate apes in charge, anything they don't understand is easy.

    3. Re:I know this one... by david_thornley · · Score: 1

      We've been writing programs to write programs for a long time. Assembly language was originally considered automatic programming. Modern languages cut through an immense amount of unnecessary complexity to reveal, well, more necessary complexity. Modern programs can be really, really complicated and can deal with a tremendous number of things.

      The critical part of programming is taking something and expressing it in some formal system. Once there's a formal definition, you can write a compiler to translate that into whatever other formal system you want.

      Writing code looks to me like one of those AI-complete things.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    4. Re:I know this one... by LifesABeach · · Score: 1

      Only when the all the simple questions are answered can the intermediate questions be considered.

    5. Re: I know this one... by Dr.Dubious+DDQ · · Score: 1

      "Nothing is impossible for someone who doesn't have to do it."

    6. Re:I know this one... by Zordak · · Score: 1

      Assembly language was originally considered automatic programming.

      I can't believe you made this point without linking to the legendary story of Mel. Here is a story where simply getting the punchline requires an order of magnitude more understanding than the poster manifests. Tell me how to use an integer overflow to bound a loop in LabView, and I'll believe that graphical programming is the wave of the future.

      --

      Today's Sesame Street was brought to you by the number e.
  3. The more simple you make it the less complex it is by Anonymous Coward · · Score: 5, Insightful

    The reason programming languages are still as they are is for a simple reason, because you can't produce something complex with something simple, I.E. the more you simplify something the less control you have of it. Can a programming language be made that is not text based? Sure, but I highly doubt you are going to get the flexibility to do a lot of things. Even assembly is still required sometimes.

  4. It's been done by Misanthrope · · Score: 4, Insightful

    If you have to understand the concepts anyways, why is text worse than a graphical set up? You can't really avoid learning syntax this way if you want to write anything actually complicated.

    Also, fuck beta.

    1. Re:It's been done by bondsbw · · Score: 1

      Textual syntax does have its limitations. Many language designers strive to make their languages at most context-sensitive, but that can only take you so far. The semantics of variable naming and lookup require another layer on top of syntax to complete the description.

      Another way of looking at it: even columnar flat file formats have Turing complete descriptions.

      Graphical languages, for all the bad rap they get, make it easier to describe many structures like graphs, tables, etc. without the need for an additional layer of semantics on top of their "syntax", e.g. you may not need a concept of symbol lookup. Probably a hybrid approach is better, where you can describe imperative operations in text and declarative concepts in a graphical language... I don't know.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    2. Re:It's been done by Nerdfest · · Score: 5, Insightful

      Why are we still writing books using text (for the most part)? Doing it with pictures or other methods is frequently not clear enough even for fiction. Text is concise, or at least more-so than other methods.

    3. Re:It's been done by Dunbal · · Score: 5, Insightful

      I would like to complain that OP had to explain his concept to us in words. Why are we still using something as primitive as words - abstract collections of symbols depicting sound (of all things!)- to convey meaning. Surely in the tens of thousands of years or more that humans have had language, someone must have come up with a better way of transmitting information... oh, and fuck beta

      --
      Seven puppies were harmed during the making of this post.
    4. Re:It's been done by Anonymous Coward · · Score: 5, Funny

      If you have to understand the concepts anyways, why is text worse than a graphical set up? You can't really avoid learning syntax this way if you want to write anything actually complicated.

      Also, fuck beta.

      For that matter (and it really does matter), why is Slashdot still text based? I mean, my 2-year-old daughter enjoys looking at pictures on an iPad. So why not make Slashdot picutre based only, to open it up more to the masses (who often have the intellectual capacity of a 2-year-old anyway)? You could start by having 42% of visitors arbitrarily enter this new picture only mode which would have the second letter of the Greek alphabet (I love Greek!), and an embedded picutre that everyone associates with slashdot (some .cx domain or something). I'm blanking on the second step here, but I promise you, we will PROFIT!

    5. Re:It's been done by umdesch4 · · Score: 1

      Damn, that has to be the best post I've seen yet for being on topic, while eloquently saying "fuck beta". Well done AC!

    6. Re:It's been done by s.petry · · Score: 2

      Textual syntax does have its limitations. Many language designers strive to make their languages at most context-sensitive, but that can only take you so far. The semantics of variable naming and lookup require another layer on top of syntax to complete the description.

      All languages have limitations. This is why TFA really makes no sense to me. The computer does not understand graphic vs. text, the computer understands binary instruction. Languages allow _us_ easier ways of telling a computer what to do. Languages are translators, and all translators are imperfect.

      A graphical language tries to do way more translation than text, it has to do so. That does not make them better, or worse. I think the big thing is that the text based compilers bring a person closer to the native language of computers, so people tend to understand more at a lower level. Does not mean a person has to understand things at that level, but it sure does not hurt.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    7. Re:It's been done by Rasberry+Jello · · Score: 1

      Great point and there's a lot to be said for the fact that humans are built for language as it relates to sounds. The difference I see when it comes to code is that the computer isn't interpreting anything, it's blindly following instructions, so any little miscommunication will trip it up. A human can understand what you say even if you leave out a few words or talk with an accent. There must be a more ideal way to turn a human conceived algorithm into computer executable code.

    8. Re:It's been done by tlhIngan · · Score: 3, Interesting

      Why are we still writing books using text (for the most part)? Doing it with pictures or other methods is frequently not clear enough even for fiction. Text is concise, or at least more-so than other methods.

      Well, perhaps why are we still using text-only to code?

      I mean, the thing is, books are mostly text, but there are also illustrations (photos, artwork, graphs, charts, etc) that help enhance the content in the book.

      A picture is worth 1000 words does happen quite a bit, and it shows how one picture can remove a ton of wordy description in both clarity, conciesness and ease of expression.

      Heck, we can start with basic charts and tables - when you need to consult a chart or table, why do we have to literally code them in? Can't we just say "this is a chart with input X and output(s) y". and just include it, and the compiler automatically generates the code to handle looking up data? Same with a table of data - you put it in the code as a table, the computer figures it out and may even offer interpolation.

      Now you have source code where the chart is easy to understand and the amount of written code is less because the compiler generates the actual translations and encoding of the table.

    9. Re:It's been done by waveman · · Score: 2

      > why not make Slashdot picture based,,,

      4chan.org is already there for you

    10. Re:It's been done by Anachragnome · · Score: 1

      " So why not make Slashdot picutre based only, to open it up more to the masses (who often have the intellectual capacity of a 2-year-old anyway)?..."

      I'll give it a shot.

      http://troll.me/images/grandma...

      http://www.lolwtfcomics.com/up...

      http://troll.me/images/bill-or...

      http://s2.quickmeme.com/img/e9...

      http://global3.memecdn.com/bet...

      http://s2.quickmeme.com/img/7e...

      Did that convey my message sufficiently?

    11. Re:It's been done by bondsbw · · Score: 1

      For describing structure and organization, a graphical language is often better suited for the job. Take a state machine for instance. Describing it using a graph is very natural but nothing like native machine code. Describing it in XML is less natural, and perhaps a tad closer to machine code. Describing it using conditional statements, loops, and gotos is definitely closer to the native language but makes it more difficult to understand the original structure. Assembly and machine language tend to lose the original meaning entirely.

      For describing imperative and mathematical operations, graphs aren't very well suited. A state transition diagram is the "language" of a turing machine, but it is much more natural to use text to describe an algorithm than to use a turing machine.

      Like I mentioned before, we tend to use these concepts together and thus a hybrid approach may be ideal.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    12. Re:It's been done by drkim · · Score: 1

      I would like to complain that OP had to explain his concept to us in words...

      I agree. From now on we should post everything as a Rebus.

    13. Re:It's been done by sl149q · · Score: 1

      Works for Ikea assembly instructions!

    14. Re:It's been done by jez9999 · · Score: 1

      Also, fuck beta.

      Karma whore.

    15. Re:It's been done by typo-lfm · · Score: 1

      For the rigorous definitions software needs to work with it seems text is better. It might be just cuz I am used to text for software but outside of trivially simple programs, I'm sure I would rather work with text. I even think I can read and write text definitions FASTER than I could create diagrams. We used to try to use flowcharts to document and support development but they fell out of popularity for a reason I think. They were not as good.

    16. Re:It's been done by Anonymous Coward · · Score: 0

      Please don't insult the 'masses' with another all encompassing '2 year old' comment. I used to program (20 years ago?) and I literally hate the newer languages (since 'C'). Basic was easy, but nobody was willing to add to it, thinking that a 'newer' and 'better' language was needed. For instance, C uses libraries to add to its basic functionality. It wasn't cool to still do it in BASIC. And for God's sake! Please learn to spell (or spell check) the word 'picture'!! How often does your code go awry when you test it??

    17. Re:It's been done by Pseudonym · · Score: 1

      Obligatory mention of Intentional Programming (which I think was and still is an important experiment, but not ready for prime time).

      Very smart people have developed a lot of rich notation for formal systems, and it seems a shame that we programmers basically can't use it. I think of Pascal syntax diagrams, or sequent calculus, or Penrose graphical notation. It would be nice to be able to drop into a non-text-file notation for just this little bit.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    18. Re:It's been done by Will.Woodhull · · Score: 1

      I have worked with several declarative languages: the regular expression engine in Perl, and also HTML, and CSS. I cannot visualize any of these in a graphical way.

      The only true graphical languages I have worked with are in Blender and Maya (mostly Blender, since it is the better choice for solo CG artwork). These languages are excellent for modeling: Blender set to 1 meter units has sub-millimeter accuracy in a 10 cubic kilometer space.

      I don't see any intersection between what can be done in Blender and what can be done in a regular expression engine. Yet both are declarative languages,

      The work in HTML5 and CSS3 in separating content and presentation shows the direction of growth of declarative languages as a whole. This suggests that we need to teach newbie programmers that pseudocode is a declarative language to use in developing the programming solution, that is independent of the coding process. And that existing programming languages-- Assembly, C, Pascal, Python, etc-- should be regarded as methods of presentation of the underlying pseudocode.

      Or maybe it is all bullshit.

      --
      Will
    19. Re:It's been done by Will.Woodhull · · Score: 1

      Text is also a very "hot" medium, to resurrect Marshall McLuhan's term. Hot media are those that require the audience to invest in the work. In a story I might say

      "Jim dove out of the car as it skidded sideways over the edge of the cliff. His coat caught on the edge of the door, almost dragging him into the chasm before it tore loose, leaving him rumpled but safe. His arm and leg were raw with road rash, but he was not yet feeling its pain, not while his heart was racing from the adrenaline rush. The pain would come later."

      What kind of car? Was the cliff the edge of a canyon, or of a quarry? What kind of coat? Was Jim's road rash on his left side or his right side?

      Those details would be critical if this was a movie script, as in the recent Star Trek movie. But they are not needed, and would get in the way, in text. Because in text the reader gets to fill in the details, and create the story imagery that works best for him. That kind of audience involvement is what McLuhan meant by a hot medium.

      We problem solve in hot ways: we talk about the advantages of buffering and sorting the data locally before sending it over the wire to the storage center, but we don't say what kind buffer (memory? disk?) or what kind of sort (bubble??). We don't say anything more than what is needed to evoke the kind of image we want the reader to see. Pseudocode is one way of refrigerating text so it is cold enough to use as a guide in writing the program code. Pseudocode is very wordy; the conciseness of natural language evocative descriptions is replaced by precision. And computer languages are all about precision, which is why they are so damn hard to work with.

      We need better refrigerators in our problem solving. But I don't think that can be done with visuals. McLuhan regarded visual presentations as being "cold", since they don't allow the audience to bring their own imagination into active play. Problem solving in a visual system would limit what the imagination can bring to the process.

      --
      Will
    20. Re:It's been done by Anonymous Coward · · Score: 0

      amen. /. beta is the most horrbile thing i've witnessed here. shiny != better.

    21. Re:It's been done by Anonymous Coward · · Score: 0

      For that matter (and it really does matter), why is Slashdot still text based? I mean, my 2-year-old daughter enjoys looking at pictures on an iPad. So why not make Slashdot picutre based only, to open it up more to the masses (who often have the intellectual capacity of a 2-year-old anyway)?

      To be fair, Dice figured this out by themselves. That is why they created the wonderful Beta.

      The next step is to make Slashdot iPad-only, and only have stories about Business Intelligence. Business Intelligence is the only true intelligence. Anyone can do technology and science, but only gifted people understand Business!

      </joke>

      Fuck beta.

    22. Re:It's been done by bondsbw · · Score: 1

      Regular expressions describe constraints on text, so writing them in text makes sense. So I'd say regular expressions as a declarative language are more the exception than the rule.

      But you certainly could use a graphical language to describe regular expressions. Here's an example of using a state machine. But regular expression syntax is more constrained and therefore generally serves its specific purpose better than a state machine.

      I once wrote a text-based tablature parser for a CS class. Like most text languages, its main upside is in tooling. You could use any text editor to describe music in that language. But it has several downsides compared to modern staff notation. Without using a specialized IDE, keeping measures and notes aligned when inserting other notes is a time-consuming process... this sort of negates the tooling upside. There is a tradeoff between number of lines used in a tab staff and the expressiveness of each line. And it is more difficult to read for many instruments (although the nature of guitars make them an obvious exception).

      Going back to your example of web presentation, I would say that a graphical editor (if done right) is a much more natural way to describe graphical objects being displayed to the user than either HTML or CSS. I said "if done right"; most graphical IDEs I've worked with are mediocre at best, unfortunately.

      Even though there are natural exceptions, I tend to stand behind my original thought that imperative languages are more naturally text-based and declarative languages are more naturally graphical. But text will win for some time unless and until someone very smart figures out a way to make graphical editing just as natural and universal as text editing.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    23. Re:It's been done by bondsbw · · Score: 1

      Yep, thank you. In some initial Ph.D. research, I read through papers related to Intentional Programming and was very close to building my dissertation research around the subject.

      I think the day may come, but only after graphical editing becomes more ubiquitous. For now it seems easier to drop into a text editor than to find, download, and learn software for working with graphical languages. And of course, many graphical languages are essentially DSLs, meaning Google and StackOverflow are of little help.

      Plus how do you even search for a graphical concept without translating it to text?

      I'm just not sure if these kind of problems will be solved anytime soon, which is quite unfortunate.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    24. Re:It's been done by swilver · · Score: 1

      Well, perhaps why are we still using text-only to code?

      We're not.

      However, we're also not burdening the compiler with all this crap anymore -- it is expected you load such resources on demand instead of including it with your code in order to keep the memory footprint reasonable (just imagine the intro movie of some big game being part of its base code).

      It wasn't always that way. Assemblers would often have directives to directly include a file as binary as part of the code. C did away with that (although converters for binary files to something a C compiler can understand exist). More new fangled language like for example Java allow you to just include the resources in a zip file (jar file) and load them on demand with a very simple construct.

    25. Re:It's been done by s.petry · · Score: 1

      You mention graphical editing, which I don't perceive as the same as graphical programming. Graphical programming is dragging and dropping objects, functions, and conditions in a sequence and getting a result. Graphical editing makes syntax checking easy for text based code. I don't know very many programmers that work regularly without a graphical editor. Even when they build on the command line.. Hell, Nedit is pretty old and well suited for just that task. In other words, I don't see the editor being used as the big difference when people discuss graphical vs. text based programming. I'm not sure we will ever agree on an editor for coding. Hell, I still meet and discuss Emacs vs. VI.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    26. Re:It's been done by Anonymous Coward · · Score: 0

      Pictures capture only the essential elements or concepts, where as descriptive langauge provides the background or context plus the details. A picture always follows a full discussion and thus visually capture the over all concept that can be recalled from your memory as stored by your efforts. So, both of them are necessary. I have seen a statistics book entirely explining concepts in pictorial format, but also has a descriptive part. A very valuable way of designing a text book. I have also seen one pictorial law book with usual descriptive part. It is very difficult for a single person (author) to work on both format, thus to avoid expensive creation cost, only written material based codes or books are created. That is the current state of affairs.

    27. Re:It's been done by bondsbw · · Score: 1

      The definition of graphical editing you are using was not my intention (I would call that "text editing in a graphical environment"). I meant editing graphical objects, closer to what you are talking about with graphical programming.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    28. Re:It's been done by BadDreamer · · Score: 1

      Can't we just say "this is a chart with input X and output(s) y". and just include it, and the compiler automatically generates the code to handle looking up data?.

      Yes! We could call the code handling the data a "library" and include it when compiling!

      What an astonishing breakthrough! You should patent this!

    29. Re:It's been done by Anonymous Coward · · Score: 0

      We still use text-based programming languages and environments because I can securely remotely connect to a virtualised workspace and edit code using vi/vim and manage the source code repository using rcs (lone wolf projects) or git (lone wolf projects and collaborative projects). Besides the graphical world wide web is a distraction from getting anything done. Oh how I pine for the scent of elm while interactively exchanging information in newsgroups hosted on news servers and scheduling my cal(endar) and using a finger to obtain a subset of information about other people I encounter on the 'net'.

    30. Re:It's been done by Anonymous Coward · · Score: 0

      For that matter (and it really does matter), why is Slashdot still text based? I mean, my 2-year-old daughter enjoys looking at pictures on an iPad. So why not make Slashdot picutre based only, to open it up more to the masses (who often have the intellectual capacity of a 2-year-old anyway)? You could start by having 42% of visitors arbitrarily enter this new picture only mode which would have the second letter of the Greek alphabet (I love Greek!), and an embedded picutre that everyone associates with slashdot (some .cx domain or something). I'm blanking on the second step here, but I promise you, we will PROFIT!

      They did this... it's called 4chan.

    31. Re:It's been done by s.petry · · Score: 1

      It was your mention I think the day may come, but only after graphical editing becomes more ubiquitous. which was not very clear. The additional context here adds the required distinction, thank you.

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

    32. Re:It's been done by Anonymous Coward · · Score: 0

      We do have that.

      Some Google terms for you:

      MVC
      javax.swing.table.TableModel
      QSqlTableModel
      QAbstractTableModel

    33. Re:It's been done by natetk · · Score: 1

      > why not make Slashdot picture based,,,

      4chan.org is already there for you

      I wish I had mod points today.

    34. Re:It's been done by Anonymous Coward · · Score: 0

      And that little conversation you just had there proves the point. He could have shown you a picture and you would've gotten it but due to the limitations that text has, you didn't figure it out until a later time. Not only that but it seems you guys may have thought you were arguing against each other. Graphics 1, Text 0. Which is better again?

    35. Re:It's been done by P3r53ph0N3 · · Score: 1

      Well, perhaps why are we still using text-only to code?

      I mean, the thing is, books are mostly text, but there are also illustrations (photos, artwork, graphs, charts, etc) that help enhance the content in the book.

      A picture is worth 1000 words does happen quite a bit, and it shows how one picture can remove a ton of wordy description in both clarity, conciesness and ease of expression.

      In many cases code is written to interact with computers.. it is true as you say:"A picture is worth 1000 words" but only if its referred to humans..

      Heck, we can start with basic charts and tables - when you need to consult a chart or table, why do we have to literally code them in? Can't we just say "this is a chart with input X and output(s) y". and just include it, and the compiler automatically generate code to handle looking up data? Same with a table of data - you put it in the code as a table, the computer figures it out and may even offer interpolation.

      Now you have source code where the chart is easy to understand and the amount of written code is less because the compiler generates the actual translations and encoding of the table.

      maybe, in a remote future, machines will require no programming skill at all to be configured and they'll interact with humans the same way humans interact each other.. but actually I think we are so dramatically far from that future.. If you refer to creating charts and tables destined to humans without writing code, there are many tools in a perfect WYSIWYG style already available, even if when it comes to be more specific, a bit of code is sometimes needed. That said, personally I find really fascinating the idea of coding without writing, using other ways.. sometimes i tend to visualize in my mind objects, methods, classes , data streams and so on like colourful pipes and nodes interconnecting each other in a 3d field.. but this is just because of my synesthesia I think :D

  5. COBOL !! by Anonymous Coward · · Score: 0

    Grace said to !!

    1. Re:COBOL !! by rusty0101 · · Score: 2

      Don't fall prey to these trendy attempt to get you away from truely understanding what you are doing when programing. Write to the bare metal. Ada did.

      --
      You never know...
  6. Lego Mindstorms by mrbluze · · Score: 4, Interesting

    Try Lego Mindstorms and see whether you find it quicker or slower. It's easy to make something simple but once the algorithm gets complicated it is not much easier to decipher than text code, and no faster in my experience. As soon as you want to get serious with the system, you will wish it had a low level system that lets you lay it out in text instead of images.

    This is partly the reason why surviving languages use symbols representing sounds rather than images as the Egyptians used. It's faster to write, and possibly faster to read.

    --
    Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
    1. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      >surviving languages use symbols representing sounds
      over a billion people have a few symbols with you...

      >algorithm gets complicated
      that just means you need symbols to represent larger blocks. even electronics does this. nobody writes out amplifiers anymore, they use a single symbol now.

      also, buck the feta.

    2. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Last I heard Chinese was still a surviving written language.

    3. Re: Lego Mindstorms by Anonymous Coward · · Score: 0

      They use symbols to represent words.

    4. Re:Lego Mindstorms by garyebickford · · Score: 1

      This is partly the reason why surviving languages use symbols representing sounds rather than images as the Egyptians used. It's faster to write, and possibly faster to read.

      Ummm ... Egyptian hieroglyphics were actually phonetic symbols. And Chinese (still i use) is pictographic and not phonetic.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    5. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Last I heard Chinese was still a surviving written language.

      How many programming languages do you know that use Chinese script?

    6. Re:Lego Mindstorms by Anonymous Coward · · Score: 2, Funny

      ChineseScript? None that I remember, but there is SumatraScrip...or HawaiiScript? Maybe JavaScript? (I don't remember)

    7. Re:Lego Mindstorms by Anonymous Coward · · Score: 1

      This is partly the reason why surviving languages use symbols representing sounds rather than images as the Egyptians used. It's faster to write, and possibly faster to read.

      Ummm ... Egyptian hieroglyphics were actually phonetic symbols. And Chinese (still i use) is pictographic and not phonetic.

      Original poster was wrong in part, but I agree that phonetic languages are easier to read. I've ridden with far too many Chinese drivers (in China) who have to STOP IN THE MIDDLE OF THE HIGHWAY so they can fully decipher the exit signs. Scares the shit out of me.

    8. Re: Lego Mindstorms by Anonymous Coward · · Score: 0

      I've seen a moderately large project built that way. The problem is diff/merge tools simply aren't available.

    9. Re:Lego Mindstorms by petermgreen · · Score: 4, Informative

      Try Lego Mindstorms

      Be aware that the lego NXT software (haven't tried the EV3 stuff yet) is seriously crippled compared to labview (which it was based on), in particular you can't take "wires" in and out of structure blocks.

      I have used labview a bit and find serveral things annoying.

      1: There is no zoom functionality (apparently this is the #1 most requested feature)
      2: unlike variable names in traditiona code wires in labview typically don't have names. This makes it hard to understand what each wire is for (yes i'm pretty sure there is a way to label them, but it's something you have to do extra not something that naturally comes as part of the coding like in traditional languages)
      3: I can never remember what all the little pictures on the blocks mean.
      4: I find connecting the blocks very fiddly.

      Having said that some people seem to like it.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    10. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      This is partly the reason why surviving languages use symbols representing sounds rather than images as the Egyptians used. It's faster to write, and possibly faster to read.

      Ummm ... Egyptian hieroglyphics were actually phonetic symbols. And Chinese (still i use) is pictographic and not phonetic.

      Yep yep yep, that part of my post was way off. Thanks.

    11. Re:Lego Mindstorms by EETech1 · · Score: 3, Interesting

      The last place I worked went from hand written C code to using Simulink to generate the (C) code for use in their ECMs.

      The entire engine: airflow model, fuel injection, and emissions system was just a bunch of pretty pictures in Simulink. You can drill down by clicking on the high level diagrams to see the nitty gritty of each process if you so desire.

      It was not nearly as efficient as the hand coded version, but there were far less issues with bugs, and it allowed us to have (many more) math / simulation types coding instead of just a few C gods. There were libraries that Simulink hooked in to that let it configure the hardware, but those were hidden away from the day to day people diagramming code.

      Cheers!

    12. Re:Lego Mindstorms by mrbluze · · Score: 1

      Try Lego Mindstorms

      2: unlike variable names in traditiona code wires in labview typically don't have names. This makes it hard to understand what each wire is for (yes i'm pretty sure there is a way to label them, but it's something you have to do extra not something that naturally comes as part of the coding like in traditional languages) 3: I can never remember what all the little pictures on the blocks mean. 4: I find connecting the blocks very fiddly.

      Having said that some people seem to like it.

      That's exactly it. You find yourself going back to words. And the simplest use of words is just plain old text, maybe with colors, maybe with shades, maybe with lines joining relevant bits of text for visual guidance, but it's still text. Better still, there is a thing called a keyboard, with all the letters you'll ever want to use and cleverly designed to make use of all your fingers (as opposed to a mouse or touch screen which in practice reduces you to at most three fingers and a lot of elbow/wrist work ... maybe that has appeal for some!), and spares the use of your visual cortex (large, energy intensive part of the brain) to endlessly process images and lines. I can do several lines of programming without looking at the screen but maybe looking at a spec or template before I have to look up and see if it's right. Can't imageine how you'd do that with icon dragging AFAIK.

      --
      Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
    13. Re:Lego Mindstorms by sconeu · · Score: 1

      Thank you. I was going to bring up Mindstorms. I just had my first shot at Mindstorm programming, and the visual paradigm was a pain in the ass.

      Text based languages are much more expressive, IMO.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    14. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Chinese (still i use) is pictographic

      No it's not. It started out using pictographs, but has evolved beyond that long ago.
      I believe it's called logo-graphic because each icon represents a word, but the icon is not a picture of the word.

    15. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      So on the mark in my experience. Especially the part about the higher level tool enabling more skilled minds to work the problems. This can make or break a project.

    16. Re:Lego Mindstorms by 0100010001010011 · · Score: 1

      Did they make big yellow things?

    17. Re:Lego Mindstorms by tlambert · · Score: 3

      Last I heard Chinese was still a surviving written language.

      How many programming languages do you know that use Chinese script?

      Depends; how many keyboards do you own that have 30,000 keys?

      Ideogrammatic languages are great for reading high information density content, but are really crappy when you want to do input processing; chording and composition sequences, such as Kanji hand, tend to be no more useful for input than Romaji or Katakana/Hirugana alphabetic/syllabic input. This is why it's been a holy grail for a while to get working voice input for Japanese, but the information density on audio input is generally worse than text input via keyboard (i.e. a good typist can do 120 WPM, but a good speaker can't spee 2 words per second).

    18. Re:Lego Mindstorms by dpidcoe · · Score: 1

      that just means you need symbols to represent larger blocks. even electronics does this. nobody writes out amplifiers anymore, they use a single symbol now.

      symbolsLibrary.drawOpAmp();

    19. Re:Lego Mindstorms by EETech1 · · Score: 2

      Mostly black, or blue (now available with custom colors)

      We put them in some big yellow things for testing though.

      www.mercuryracing.com/sterndrives/hp1650.php

      The above is all Simulink powered including the drive by wire.

    20. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Now, the interesting question is: Was the visualisation the part that improved productivity or the abstraction? After all, it's not like C is the most expressive programming language out there ...

    21. Re:Lego Mindstorms by unitron · · Score: 3, Funny

      "... but a good speaker can't spee 2 words per second..."

      You never heard me back in the day when I had to cram 90 to 120 seconds worth of furniture store copy into a 60 second spot.

      --

      I see even classic Slashdot is now pretty much unusable on dial up anymore.

    22. Re:Lego Mindstorms by O('_')O_Bush · · Score: 1

      This. Simply, programmers want and need control to make things work the way they imagine, and graphical programming doesn't give it to them.

      A good analogy is that graphical programming makes it easier to be a programmer just like pre-cut shape sponges make it easier to be an artist, or pre-thought out plotlines make it easier to become a writer. In reality, programming is a mix of art and math, and tools that try to dumb it down while simultaneously exorcising control end up doing more harm than good.

      --
      while(1) attack(People.Sandy);
    23. Re: Lego Mindstorms by Anonymous Coward · · Score: 0

      Not quite; the symbols represent morphemes, roughly equivalent to "morph-" and "-eme" in "morpheme" for example. Running Chinese text actually has less monosylabicity than English. There are mountains of bullshit spouted about Chinese writing by natives and foriegners; the roots of most of it is that people are afraid to confront the fact that it's really just a horribly bad abortion of a spelling non-system. If Roman numerals were still in use I'm sure there would be people similarly unwilling to just look at the non-system and say "holy shit; you are doing it way wrong" for psychological reasons. I recommend DeFrancis and Unger for further reading.

    24. Re:Lego Mindstorms by rusty0101 · · Score: 1

      The standard american keyboard has 101 keys. the 7bit ascii character set consists of 127 characters. Most character sets in use today represent 255 symbols or more. We use a variety of means to access the characters in excess of the keyboard keys, either by using key sequences, or key chords. Examples of Key Chords in common use include various Ctrl key combinations, such as Ctrl-q and Ctrl-s and in console use, many of the Ctrl key combinations that represent the first 26 or so characters are still commonly available. That said, some of those map to dedicated keys, such as Ctrl-J for Backspace, Ctrl-T for Tab, and Ctrl-M for Return. Another example of chording is the way that most people, who have been using their computer for more than a year, use the 'Shift' key to access upper case characters. Key sequences are often used in combination with the right 'Alt' key and the numeric keypad. Some of us remember using this for basic ascii art line and fill characters.

      It is trivially easy to add support for various asian keybord solutions that allow you to typekey combinations to access character sets of several hundred characters. As an excersize for the reader to prove, consider the 26 characters of the english alphabet, and chording up to four keys per hand or 8 characters to select characters. That gives you 62,990,928,000 possible characters that you could access. Without using the shift keys.

      That said, mapping a symbol to a character, and a key combination to a symbol/character is trivial compared to maping a set of instructions for a computer to perform based on that symbol. However if I understand correctly, that may be what the developers of Slashdot Beta have attempted.

      --
      You never know...
    25. Re: Lego Mindstorms by Anonymous Coward · · Score: 0

      FYI, Lego mind storms programming is a watered down version of LabVIEW from National instruments. And LabVIEW is a fully functioning multi-thread programming language that even supports OOP.

    26. Re:Lego Mindstorms by EETech1 · · Score: 3, Insightful

      The familiarity, and the fact that it was already being used to do the modeling.

      It's much easier to find people who are well versed inMatlab / Simulink VS. coding in C, especially the PHDs who really understand dynamic process control and simulation.

      We already used Simulink to do the control algorithm design and simulation, but then we had to write detailed software specs to be hand coded by the controls group (to hope we got the same results) Sending them an updated Simulink model to be linked into the production application (and being able to rapidly make changes to the production code for testing) was a much more effective use of everyone's time.

      There were still only a few people who really knew how it worked, but anyone who knew Simulink could get it to do whatever they wanted without having to deal with understanding the interactions in many thousands of lines of C code.

      Wrapping a PID around a PID that's already around a PID is much less error prone in Simulink, and much easier to integrate into the application

      You can have thousands of lines of code generated by a 5 minute update to a Simulink diagram. Copy it, paste it, delete it, change it around 5 ways on Wednesday, all without having to worry about breaking it, or leaving something behind that will haunt you.

      Testing was also much easier as the functions knew the range of their variables and the whole thing could be simulated in Simulink to verify itself.

    27. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      In the Kangxi Dictionary, 90% of Chinese characters are Phono-semantic (xingshengzi), in which the character is split into a phonetic (sounds like) and a semantic (means like) part. You can usually guess what most characters sound like by looking at the phonetic bit.

      Ancient Egyptian Hieroglyphic script was nothing like that, characters were just a picture of something and there were no clues to what it means and how its pronounced.

    28. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Well, I guess familiarity might be a factor in why it was chosen, but I still wonder whether it was the familiarity with Simulink that mattered as far as productivity was concerned or the familiarity with the abstractions you find in Simulink?

      My point is: Yes, I find it kindof obvious that C is far too low level for this kind of work, of course you would want to work at a higher level of abstraction. But being so low level is a property of C, not of programming languages in general, and so I would think that most of the advantages you mention are more likely due to the higher level of abstraction rather than due to the visualization, and thus probably should also be achievable by chosing an appropriate language!?

      Also, how did you deal with revision control? Are there any useful diff and merge tools for Simulink files?

    29. Re:Lego Mindstorms by macshit · · Score: 1

      Ummm ... Egyptian hieroglyphics were actually phonetic symbols. And Chinese (still i use) is pictographic and not phonetic.

      Chinese is (basically) ideographic ("symbols representing ideas"), but not generally pictographic ("symbols representing ideas/objects directly by resembling them"). Some Chinese characters are arguably pictographic, and in many cases there was probably a pictographic stage in the historical evolution of other characters, but the bulk really aren't.

      In response to the grandparent: it doesn't appear that alphabetic/phonetic languages are faster to write/read than ideographic languages like Chinese. Chinese seems to be generally faster to read, and roughly equivalent to write in many cases. It's obviously a pretty hard comparison to make, since there are so many variables, but while ideographs are generally more complicated, they're also more information dense (so you need fewer of them to communicate a given idea) and can take better advantage of the human visual system to allow recognition of more text in parallel .

      --
      We live, as we dream -- alone....
    30. Re:Lego Mindstorms by pipatron · · Score: 1

      And it is one of the most difficult, if not the most difficult language for children to learn, taking them up to twice the time to learn their own language compared to children in languages using an alphabet.

      (See for example http://pinyin.info/readings/te...)

      --
      c++; /* this makes c bigger but returns the old value */
    31. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      About LabView: Yes it is powerful, and very quick to develop software in. It's highly-priced for good reason.

      1: Legacy of very old version 1.xxx software: it's based on a per-pixel scheme, and would need from-the-ground-up version "2.0" rewrite to do things with vectors, properly.
      2: The whole point of why it makes coding easier/faster is that you *DONT* have to name these wires, they're the equivalent of variables - how they are connected within the diagram gives their purpose, much like how components in a electronics schematic are connected talks of their purpose (once you can "read" the language). To label them, you right click them and make the label visible, then type into it.
      3: Agree, but the help floater box will let you know, giving a small description when you hover on 'em.
      4: Agree also, but you can change mouse cursor modes to a "wiring only" tool to make it less fiddly. The default mode, the cursor is context specific, and sometimes changes modes depending on which exact pixel it is on.

      Once nice benefit of LabView is that it is capable, effectively, of "re-factoring" code automatically: Ctrl-U will initiate a diagram cleanup, which will spatially reorganize everything to minimise apparent complexity. Since the "shape" of the code is effectively equivalent to the specific layout, (even though the meaning is not : it's encoded by the actual topology) this is equivalent to rewriting code to make it more legible, if functionally exactly equivalent.

      It isn't perfect though, so I tend to group functionally-associated code within "diagram disable" structures (set to enabled) and then after cleaning those up, I set them to "exclude from diagram clean up" so that they are treated as a block when the full-diagram cleanup runs. I sometimes reuse these by copy/pasting them, even if it's "the wrong way".

      I really miss the lack of zoom functionality, as well as an inability to treat those little grouping boxes as proper inline sub-VI's, because they ought to be.
      I disagree quite thoroughly with the idea that if the code is too "big" it should be hidden away in separate little boxes: Excess encapsulation hurts comprehension and slows navigation: Things should be as simple and elegant as possible BUT NO SIMPLER, and excessive encapsulation certainly runs afoul of that.

      Consequently, some of my most serious research control system code looks a mess, but it has remained quick and easy to maintain, even after four years of not having looked at it. Note that you can "grab scroll" by holding CTRL-SHIFT, but be careful where you place the cursor! It'll still drag things if it lands on something, unfortunately.

      I do really hate not being able to read the VHDL auto generated when it compiles into an FPGA... the bastards even encrypt those temp files, just so it is totally impossible to see what's really happening on the FPGA. I use LabView real-time embedded too, and it's annoying that the code that connects the "front panel" on the host PC to the VI on the embedded target is similarly completely hidden.

      That last part: the hidden-source nature of LabView - is the biggest reason I personally consider it depreciated: I'd much rather develop on bare-metal, even if it is a little slower. (the cost also factors in, no way am I spending that much for my own personal projects. If it hadn't been chosen as a standard before I began work, I wouldn't have selected it either.)

      Decent FPGA devkits can now be had for less than the price of a computer game (go see xess.com ).
      One can even run the Xilinx toolchain on a ~$200 embedded x86 board like the Gizmo, under linux. Open source hardware like the recently kickstarted DSLogic meets data logging needs (it's probably almost exactly the same chip set as what NI use in their "CompactDAQ" backplanes, but for a teensy fraction of the price.)

      National Instruments find their niche in Government-Funded serious science, so they can get away with charging through the nose, they're a standard, and TBH they are at least well-engine

    32. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      over a billion people have a few symbols with you...

      He said "languages", not "people".

    33. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      To be picky, Egyptian heiroglyphs actually had at least 3 possible ways to be interpreted. Firstly, as you say, as a collection of sounds. Secondly as the object itself (often followed by a small mark to show that the object itself was meant, but this mark was mostly omitted). Thirdly as a way to determine the meaning of a proceeding block of heiroglyphs (a rabbit followed by a lock of hair means 'to go bald', but a rabbit followed by a crossroads means a particular town, i forget which one).

      There are also all the puns, which make life more interesting ('mr' being replaced by 'ns' in the word for a governer or leader, for example).

      Just being picky here. Your point mostly stands.

    34. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Japanese words tend to be in the form of consonant-vowel-consonant-vowel-etc, which is conducive for fast speaking.

    35. Re:Lego Mindstorms by Filip22012005 · · Score: 1

      The Mindstorms way is probably well-suited to the target audience, especially if a text-based solution is also available (unfortunately, EV3 has no easy way of programming using text yet). In the end, I prefer to write someone an e-mail instead of giving them a rebus.

      --
      When the policeman of the tie, rule you violate, hello punishment of the kitty?
    36. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      The standard american keyboard has 101 keys. the 7bit ascii character set consists of 127 characters.

      man ascii on my computer says:

      The following table contains the 128 ASCII characters.

      I'm going to assume that the man page is correct on this point unless you can prove it wrong.

      Most character sets in use today represent 255 symbols or more.

      Most of them represent 256 (2^8) symbols, so yeah, that would be "more".

      As an excersize for the reader to prove, consider the 26 characters of the english alphabet, and chording up to four keys per hand or 8 characters to select characters. That gives you 62,990,928,000 possible characters that you could access. Without using the shift keys.

      Please explain how you got that result. You're not even close. 26^8 = 208,827,064,576

    37. Re:Lego Mindstorms by rusty0101 · · Score: 2

      I don't personally consider 'nul' to be a character, but if you do, so be it.

      In a single deck of cards, there are not 52^2 ways of dealing two cards. Once you have dealt a card, you no longer have 52 cards in the deck. To calculate the number of permutations of 2 cards being dealt out of 52 cards, you multiply 52 for the first card, by 51 for the number of possible second cards. Unless you think the odds of dealing two ace of spades out of a standard poker deck of 52 cards is reasonable. The principle is also true for key chording.

      --
      You never know...
    38. Re:Lego Mindstorms by Cochonou · · Score: 1

      C code generated from Simulink is also increasingly being used for spacecraft embedded software. Several satellite buses have at least a part of their attitude, orbit and control system running software directly coded in Simulink.

    39. Re:Lego Mindstorms by bware · · Score: 1

      We do this as well, with Simulink/Matlab, and LabVIEW. Yeah, it would be great if we all knew VHDL, but then we'd be VHDL programmers, not scientists.

      We get things working and tested with (very expensive - trading time for money) hardware in LabVIEW, come up with a Simulink model that matches the LabVIEW, then hand it off to a VHDL guy who generates the FPGA code from that. It would be nice if LabVIEW generated usable VHDL but it doesn't. But it's also nice to have a model to play with, and LabVIEW is better at hardware, Simulink better at modeling.

      Even so, it's been a bit of a problem getting the final VHDL FPGA to exactly match the results of the tested hardware-in-the-loop LabVIEW and Simulink simulations. Fencepost errors, quantization mismatches, etc.

      If we had just handed the requirements to a VHDL person, maybe we'd have something that worked [1], but that person would have been the only one who understood it or been able to experiment with it. This way, ten scientists have been able to use, change, model, and eyeball the algorithms, and see the results, without any of them having to learn VHDL.

      [1] maybe not. We tried that experiment, and it almost worked, but the programmer who wrote it moved on to another project before it was debugged, and we were left with code that no one else wanted to start with.

    40. Re:Lego Mindstorms by maxwell+demon · · Score: 1

      The whole point of why it makes coding easier/faster is that you *DONT* have to name these wires, they're the equivalent of variables - how they are connected within the diagram gives their purpose, much like how components in a electronics schematic are connected talks of their purpose (once you can "read" the language). To label them, you right click them and make the label visible, then type into it.

      As soon as your electronics schematics gets more complicated, you will want to label wires, for the same reason you also don't want to name your variables simply a,b,c,d,e in programming. Yes, you could in principle follow all the gates to ultimately figure out that this wire is indeed the address line holding the fifth-least significant bit of the memory address, but you're surely better off if you can read it directly. Just as you could ultimately follow the program flow to figure out that the specific variable holds the file handle of the log file, but again you are much better off if the variable name just says directly.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    41. Re:Lego Mindstorms by maxwell+demon · · Score: 1

      I forgot another good reason to label lines in circuit diagrams: If a wire goes halfway through the diagram, it is hard to follow with your eye (especially if it goes in parallel with many other lines for a while). If you want to make sure you correctly followed the line, it is immensely helpful if you have the same name on the other side. Indeed, if you already know to which component the line goes, this may actually save you the work of actually following the line.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    42. Re:Lego Mindstorms by cascadingstylesheet · · Score: 1

      This is partly the reason why surviving languages use symbols representing sounds rather than images as the Egyptians used. It's faster to write, and possibly faster to read.

      Except minor little languages like Chinese? :)

      (I agree with you about the code, though)

    43. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      The Egyptian pictures ARE sounds. Go take a look at the names and 'spellings'. Just FYI.

    44. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Maycausesevererashes diabetesfibromyalgiaHodgekinsdisease frequenturinationropethedopeconstipation braintumorsinconsistentanswersonyourcalculator analrecessanttendanciesvisionsofgrandeur, - and death. Like that?

    45. Re:Lego Mindstorms by EETech1 · · Score: 1

      The abstractions, and how easy it is to add / change things. It is so much easier to add and change things in Simulink than in C. Want to add a filter, just drop it in your diagram, want to change the type of filter, it's only a few clicks away, instead of having to manually add / delete all the required variables, be sure you use them in the math correctly, and then add all the things you want to manipulate to the database that the calibration tool interfaces with. We used to wait weeks for changes that took hours to make with Simulink.

      It's not a Simulink specific thing I guess, it's just one of the few tools that could do that type of modelling. If there were other programs like that, (that everyone knew) you could use those as well. Matlab / Simulink also has a C code generator, and we used that, so that definitely was one of the main reasons.

      Revision control for production code was done by the controls group. Everyone in development was encouraged to use a specific format of base model year SW version, project, engine, variation, user, and such to name everything so you could keep track of what was what. The ease of changing things meant you could keep using the same filename for a test until you found what worked the best, you didn't end up with a version (filter a, filter b, foo filter) for every change you made, so we ended up with less versions as a result.

      To merge finished changes, you just add the new blocks to the model, and as long as the variable names are the same (they better be WTF is MyRPM) it links up with very little effort.

      The diff tools in Simulink generate a comparison report, and you use that to merge changes.

      www.mathworks.com/help/rptgenext/examples/merge-simulink-models-from-the-comparison-report.html

      Cheers.

    46. Re:Lego Mindstorms by EETech1 · · Score: 1

      Have you looked at:
      www.mathworks.com/products/hdl-coder/

      From the above link:

      HDL Coder generates portable, synthesizable Verilog and VHDL code from MATLAB functions, Simulink models, and Stateflow charts. The generated HDL code can be used for FPGA programming or ASIC prototyping and design.

      HDL Coder provides a workflow advisor that automates the programming of Xilinx and Altera FPGAs. You can control HDL architecture and implementation, highlight critical paths, and generate hardware resource utilization estimates. HDL Coder provides traceability between your Simulink model and the generated Verilog and VHDL code, enabling code verification for high-integrity applications adhering to DO-254 and other standards.

      Just curious if it works or not.

    47. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      The abstractions, and how easy it is to add / change things.

      But the latter is because of the former, isn't it? It's easy because you can operate at the abstraction level of the problem instead of having to deal with low-level implementation details.

      It's not a Simulink specific thing I guess, it's just one of the few tools that could do that type of modelling. If there were other programs like that, (that everyone knew) you could use those as well. Matlab / Simulink also has a C code generator, and we used that, so that definitely was one of the main reasons.

      Does it really matter all that much that people do already know it? It's not exactly my area of epertise, but in my world, the underlying concepts are far more important than the specific language you are using. If you do know what classes, closures, pointers, references, higher order functions, ... are and how to apply them to solve problems, you just pick up a new language that has those features if needed.

      Revision control for production code was done by the controls group. Everyone in development was encouraged to use a specific format of base model year SW version, project, engine, variation, user, and such to name everything so you could keep track of what was what. The ease of changing things meant you could keep using the same filename for a test until you found what worked the best, you didn't end up with a version (filter a, filter b, foo filter) for every change you made, so we ended up with less versions as a result.

      To merge finished changes, you just add the new blocks to the model, and as long as the variable names are the same (they better be WTF is MyRPM) it links up with very little effort.

      The diff tools in Simulink generate a comparison report, and you use that to merge changes.

      www.mathworks.com/help/rptgenext/examples/merge-simulink-models-from-the-comparison-report.html

      That sounds ... terrible? Though, at least there is a diff and merge tool at all, so it's better than I had expected ;-)

      But revision control by changing file names? At least in the general software world, that's close to a reason for being fired :-)

      Best practice in software generally is to use version control software (like git, subversion, mercurial) and to commit often, one commit for every logical step you make, so it's easy to figure out what specific change caused some breakage, for example, or to help with understanding some difficult code (by looking at the log of all the changes, each entry with a context diff that shows you exactly what changed in that revision) - and merges normally are done as three-way merges (common ancestor and the two diverging lines of development) rather than two-way as the simulink tool seems to be doing, so they are fully automatic in almost all cases and merge removal of code just as well as new code, so they allow you to easily maintain many, many branches of development and/or of specialized versions of a product, while still being able to trivially pull bug fixes into all supported release versions, for example. All that I suspect to be difficult, possibly impossible, to implement for graphical program code, while it works really well with text-based code, that's why I asked.

    48. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      It's much easier to find people who are well versed inMatlab / Simulink VS. coding in C, especially the PHDs who really understand dynamic process control andsimulation.

      What makes Matlab NOT programming ?

    49. Re:Lego Mindstorms by EETech1 · · Score: 1

      sorry replying from my phone...

      " But the latter is because of the former, isn't it? It's easy because you can operate at the abstraction level of the problem instead of having to deal with low-level implementation details."

      I agree.

      " Does it really matter all that much that people do already know it? It's not exactly my area of epertise, but in my world, the underlying concepts are far more important than the specific language you are using. If you do know what classes, closures, pointers, references, higher order functions, ... are and how to apply them to solve problems, you just pick up a new language that has those features if needed."

      Most of the people who they had using Simulink very successfully, would never be able to code in any low level language. Pointers would kill them.

      " But revision control by changing file names? At least in the general software world, that's close to a reason for being fired :-)"

      The controls group managed releasing code, and they used a VCS (Subversion I believe) When doing development, they would get the latest version of production code:
      Example:
      2014_prod_V8_SCI_014.XXX
      and make it:
      2014_dev_V8_SCI_014_Project#_New_Knock_StrategyX_Your Name_Today.XXX
      That would be sent to the engine guys and used for development, and when they were happy with it, they sent it back to the controls group who checked back into VCS and possibly merged it into the production code.

      We would make 3 or 4 versions on the dyno, and take them to the water to test. The test data would reflect the name, and all the versions would be kept in the VCS to recreate the test.
      Meetings were held to review the data, and a choice was made as to which version would get merged into the production code and when.

      Many times 5 or 6 different sub-projects would contribute changes to a final new model engine, so one group would add cooling system updates, another base engine control updates, another knock system updates, and all of these little changes get merged back into the production code by the controls group and that then gets tested on endurance and verified against the data from the original tests.

      With anybody and everybody making code, you had to have a way to identify what was what, and having some of the info in the filename made sense. The projects were all tracked in Oracle, and Teamcenter, so finding the details of a test by the project number was easy. Having 100 different versions of code floating around with the same filename would be crazy.

      There was a final build script for production code that built every version for every engine (50 or so V4, V6, I6, V8, 2 stroke, 4 stroke, Supercharged, turbocharged, catalyst, Direct Injected,) at once, and then those were distributed to the various teams for use in production. That way bug fixes, and updates made it to every version they made.

      Cheers

    50. Re:Lego Mindstorms by losfromla · · Score: 1

      1. It seems like zoom would be nice but it makes no sense if you think about how labview is supposed to work. You aren't supposed to cram a bunch of ever smaller wires into an ever smaller space. No. You're supposed to create subVIs out of code that has gotten over-crowded and complex, think functions. That is in effect zoom functionality. However, if the problem is that the icons and wires are too small for you to resolve, then use the OS's zoom functionality, or change the resolution of your screen.
      2. Wire labels are a new feature, I think as of LV2013, however, I get along fine by putting labels near when needed or from looking at what outputs and inputs are called. Bundle-by-name and Unbundle-by-name go a long way where applicable.
      3. You don't have enough experience with LV, also turn on context help (ctrl-h) and when you hover over icons, their description will come up.
      4. You don't have enough experience with LV. Also, turn off autowiring, run wires by hand, autowiring is very annoying to me.

      --
      Only I can judge you.
    51. Re:Lego Mindstorms by ILongForDarkness · · Score: 1

      Not to mention that the people that tend to be very analytical an precise don't always match up with people that are visually skilled. Text and symbols is more the domain of engineers and mathies which are the breeding ground of programmers.

    52. Re:Lego Mindstorms by unitron · · Score: 1

      Swap in words like Bassett, Broyhill, Sealy, Stearns, Kincaid, Foster-Seeley, High Point, Beautyrest, Simmons, and several appliance brands, and yeah, pretty much.

      --

      I see even classic Slashdot is now pretty much unusable on dial up anymore.

    53. Re:Lego Mindstorms by RightwingNutjob · · Score: 1

      LabView is part of the problem, and the problem is a misapprehension of what problems programming solves. NI software sucks (and the constant excuses on the NI forums from the support people reek of a lack of technical know-how in the company's software people to fix them, which isn't surprising for a large codebase developed half a generation ago). The only reason LabView is used is that the graphical paradigm makes *some* limited applications so much better that it's worth it to deal with the NI clowns to use it. Trouble is that people who don't know better do those limited things with a graphical language and think they can do everything with it.

    54. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Yes, that is what the world used to do before good version control systems were invented. As the other AC was saying, not using version control would be considered a firing offense in any decent software shop. And using Subversion does not count as using version control. Revision control via file name? That introduces whole categories of error. Anyone with professional sensibilities would recoil in horror. Nor yet the horror of the unknown, God help us, but the practice is as obsolete as geocentrism.

      Learn git, or mercurial if you must. Your "controls group" is only necessary because you use bad tools. In a proper managed environment, you don't have 100 different files with the same name: you have one repository, and a hundred different branches. I recommend the O'Reilly book, "Version Control with Git". I'll warn you that understanding its internals is vital to using git properly, and that said understanding is liable to convince you that git is a superlative solution to the problem of revision control; you may as well pick up your zealot card with the book. Nevertheless, it should be obvious that git is wildly successful and that it has more or less taken over the software industry. It may be less obvious that this is due to some tangible benefit. Read and learn...

    55. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      For engineering applications, I can do just about everything I need in Labview with 10 times the speed. And yes, I have programmed in basic, Pascal, C, C++, Tcl, and Java so I know what I am talking about. I even taught myself assembly on my Commodore 64. The problem with Labview is that it is difficult for programmers to adjust their way of thinking in data flow terms instead of control flow. Sounds like you fail to understand the basic concepts of Labview. I am so sorry for your ignorance.

    56. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Shhh, nobody tell the Chinese that.

    57. Re:Lego Mindstorms by angel'o'sphere · · Score: 1

      You are thechnicaly correct, but how you word it you strongly play down the importance of pictograms.

      The sumbols for 1, 2, 3, mountain, tree, sun, moon, human, foot, head, 'fenced area', field etc. are all pictograms.

      Most symbols are no ideograms either, the name for them (this particular term) is something differen, which I forgot. Examples: prisoner (combination of a human inside of a 'fenced area), way (combination of head and foot) - well, way could perhaps be considered an ideogram.

      Woman for instance is an ideogram, a picture of a sitting person, like a woman serving dishes.

      However you are certainly right about reading, not sure about writing (I only can a bit Japanese, which did not realy simplify its Kanjis).

      I'm a very fast reader, but if I read some japanese I nearly read twice as fast. (But in general the jap. words are much shorter anyway)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    58. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      I'm an engineer for a very large company with a fair amount of automated testing and I don't know anyone who actually *likes* LabView. It's merely something that is tolerated so that the software can be written by other engineers who have very little software training. As someone who has to use this software, I'd much prefer it if we just hired a couple of guys who are actual programmers who could write a nice program that didn't have countless gotchas and quirks.

    59. Re:Lego Mindstorms by RightwingNutjob · · Score: 1

      Most of the things you need to do for engineering applications *do* lend themselves to a data flow paradigm, but a lot of the things under the hood do not. Data acquisition, process control, and the like lend themselves very much to such thinking. Iterative solvers and fitters, less so, but it can be done because the data flows in strictly parallel or strictly serial paths.

      Applications where the data flow isn't 'laminar' and jumps around an awful lot, like learning algorithms, image segmentation, and pattern matching doesn't lend itself to data flow programming at all. That's not to say it can't be done, but the resulting diagrams will have crazy jumps and the LabView equivalent of global variables all over the place, because the data processing is not local, and the result at location x at time t doesn't only depend on the input in the neighborhood of x and time t.

    60. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      Seeing as how Mercury makes some of the best marine engines in existence, I would say the way they are doing things works superbly. I bet Microsoft, Oracle, and even your beloved Linuxes use git and that doesn't seem to stop the bugs. Something about glass houses and stones goes here.

    61. Re:Lego Mindstorms by Bacon+Bits · · Score: 1

      Sounds very similar to the last place I worked. I wasn't a developer, but it was an engineering firm that built test stands. All the PLCs and PXI devices were programmed with LabVIEW. There, too, the objects in LabVIEW were representing C code. Most of the electrical engineers didn't write their own C code and just used the libraries that came with the software.

      The way it was explained to me was, essentially: write your functions and subroutines in C as modular and agnostic as you can, then write your main routine as a data flow diagram. It's somewhat more complicated than that, since subroutines can also be LabVIEW programs, but that's essentially it. It's very easy to understand if you understand data flow. It always reminded me of setting up a TV with an amplifier, VCR, DVD, CD player, and a cable box.

      The only other mainstream visual programming environment I can think of is MS SQL's SSIS.

      --
      The road to tyranny has always been paved with claims of necessity.
    62. Re:Lego Mindstorms by AK+Marc · · Score: 1

      A blog site of a frustrated adult doesn't seem to be related to your assertion that it takes twice as long for children to learn Chinese as a first language. Though even that, if true, is likely misleading. A 4 year old has verbal-skills only, for most people everywhere. So are you saying that the vocabulary of a 4 year old in China is less? I'd expect that to not be true. Or are you saying that the written vocabulary of a 10 year old is smaller in China? That may be true, but isn't the only measure of how long it takes to learn.

    63. Re:Lego Mindstorms by AK+Marc · · Score: 1

      There may never be a Cinese programming language, so they wouldn't use Chinese script. Those in China who type, type in Roman characters. Though that may change once touchpads are ubiquitous, as stroking out a character may eventually surpass pinyin input.

    64. Re:Lego Mindstorms by DaChesserCat · · Score: 1

      IIRC, you don't have to have 30,000 keys. You need something akin to the text prediction systems found on most modern smartphones and tablets. Enter a few symbols (phonetic, a small subset of possible symbols), the system 'guesses' what word you're typing, suggests possibilties, you keep doing input until the symbol you want appears and you select it. I do that all day long with my smartphone. I can use T9 or 'compact' layouts to further reduce the number of possible symbols I can enter, but such things depend more heavily on the text prediction having my desired word in its dictionary/corpus.

      The difference is that, for Japanese and Chines, you had to do that for desktop PCs and laptops because there was no way to represent the thousands of symbols available on any keyboard.

      As touch-based input systems become more common (smartphones/tablets), there's the possibility to have a 'finger painting' type input system, where you draw the symbols. In that respect, eastern languages would be better suited to text input on such devices than us westerners.

      --
      ... by the Dew of Mountains the thoughts acquire speed, the hands acquire shakes, the shakes become a warning
    65. Re:Lego Mindstorms by cavebison · · Score: 1

      This is partly the reason why surviving languages use symbols representing sounds rather than images as the Egyptians used.

      Aren't you forgetting the Chinese language, used by a fair number of billions of people?

  7. No thanks by Dan+East · · Score: 1

    I don't think I'd like the alternative to text based coding. The only thing I can think of is some kind of fancy smancy IDE where you drag and drop stuff and build some kind of visual flowchart. Those kinds of things are out there for people who don't like to type (or produce real software for that matter).

    --
    Better known as 318230.
    1. Re: No thanks by Anonymous Coward · · Score: 0

      as a programmer, I know I am longing for the day when I can ditch my keyboard and reprogram something by removing a side panel and rearranging the underlying plastic cards inserted into slots... just like they always did on the Enterprise in Star Trek TNG. They always managed to get the expected result with no testing required!

    2. Re:No thanks by i.r.id10t · · Score: 1

      That is one thing I liked about VB (yeah, flame on but this was in '96/97) was creating a quick GUI app, you could drag/drop/draw to add/move/remove objects from your app, then set the initial properties and write the code for the various event handlers. While I liked writing c/c++ and java, I really hated writing the overhead code to create the visual interfaces.

      I've not done much/any c/c++/java stuff other than compile source written by other folks in the past 14 years or so, so maybe the current crop of IDEs do this.

      --
      Don't blame me, I voted for Kodos
    3. Re: No thanks by glavenoid · · Score: 1

      Yeah, but when you're high like on the Naked Now and you pull out all the little plastic cards so you can throw them into the air like pretty little snowflakes you're gonna make the crew of the Enterprise NCC-1701D have a bad time, even if you're fully functional and programmed in many techniques...

      --
      I, for one, am looking forward to the inevitable /. beta rollout fallout.
    4. Re:No thanks by TsuruchiBrian · · Score: 1

      The last time I used an graphical GUI editor:

      I wanted one of those thingies where you could enter a number but also click arrows to make the number increment or decrement. I could not come up with a google search that told me what the hell this thing was called. I ended up installing the QT GUI creator app, and found the visual representation of this widget and dragged it into my design. Then I generated the sourcecode and inspected it to learn it is called a spinbox. Then I went back to editing code in text form only.

      I am not sure what my point is. (are GUI creators good or bad?) I just thought it was interesting.

    5. Re:No thanks by abhi_beckert · · Score: 2

      I've not done much/any c/c++/java stuff other than compile source written by other folks in the past 14 years or so, so maybe the current crop of IDEs do this.

      iOS/Mac/NeXT programming has worked that way for about 25 years. You build and configure a series of objects with a GUI and when the application launches all of those objects will be loaded into RAM, then a "loaded" event is fired on each of them. From there your code will typically create more objects and setup stuff that can't be done in the GUI.

      Objects created in the GUI are tightly linked to your code, the GUI for building the objects understands how to parse and partially compile code (even half written/broken code) and you can connect things up, for example if a button should only be enabled if a particular method returns true, then you can hook that up by dragging a line from the button's "enabled" state onto the method in the source code.

      You can also drag a line from the button's "action" onto the an empty line of code in the source code, and it will write a blank method that in your code doesn't do anything, with the button linked up to it. Or you can write the method yourself and drag the line onto the method name.

    6. Re: No thanks by 93+Escort+Wagon · · Score: 1

      And yet, excepting the very first episode, I bet you can't name ONE TIME the Holodeck functioned completely correctly!

      Talk about engineering fail...

      --
      #DeleteChrome
    7. Re: No thanks by mark-t · · Score: 2

      Just off the top of my head...

      In "Hollow Pursuits", Barclay used it for purposes that we all know everyone would, if the technology existed in real life.

      In "Booby Trap", Geordi used it to simulate the engineer who developed the Enterprise engines and discuss certain things with her, and as I recall it functioned completely correctly in that episode.

      In "The Outrageous Okona" Data was trying to learn how to tell jokes from a holodeck stand-up comic, and the holodeck functioned perfectly (too perfectly, in fact, to Data's evident disappointment). Ironically, albeit unintentionally, Data manages to pull a great one-liner unintentionally near the end of the episode.

      Data learned how to dance by dancing with a simulated dancing partner in "Data's Day".

      In "Relics", Scotty uses the holodeck to recreate the bridge of the original enterprise, where he shares a drink with Captain Picard.

      Do you want me to go on?

    8. Re: No thanks by Anonymous Coward · · Score: 0

      No, Mr Hadoop.

  8. Because people write text by Anonymous Coward · · Score: 5, Insightful

    This is a rhetorical question. It would be similar to ask "why do we write books or manuals when we can just record a video"

    The answer is written words is how we communicate and record such communication as a civilization. Written communication is easy to modify and requires little space to store. And this is just scratching the surface, not touching things like language grammar or syntax, etc.

    1. Re:Because people write text by pla · · Score: 3, Insightful

      This is a rhetorical question. It would be similar to ask "why do we write books or manuals when we can just record a video"

      You clearly haven't searched for even the most trivial of "How do I..." topics recently, have you?

      Why write three quick and dirty sentence-fragments on how to do it, when you can record a 10 minute video and post it to YouTube? And I wish I meant this as hyperbole.

      More seriously, I agree with you. We still code in text because no programming language will ever let me easily express "c^=0xdeadbeef" by drawing a line between two data objects. Yes, wizards have become reasonably adept at setting up the core functionality of any app not worth writing in the first place. But even when they do allow you to write a line of code such as I gave above, well... I can type that in about a tenth the time it would take me to click... drag... click... right-click... click (function) select (xor)... click (constant) type "0xdeadbeef"... whatmorondoesntaccepthexforafuckingbitwiseop??? backspace*10 "-559038737".

    2. Re:Because people write text by Anonymous Coward · · Score: 1

      I hate video as a substitution for good documentation. Videos are cheap, good docs are expensive, so I guess we know the trend....

    3. Re:Because people write text by 93+Escort+Wagon · · Score: 1

      Yeah, and it's especially insane when the entire video just shows a terminal window on some random kid's computer screen, with the audio track consisting of "and now type this, then type this...".

      I ran across a number of these not too long ago when I was looking for some specific bit of info about a particular jailbreak tweak. I just wanted the path to a particular file! If they'd written a good old-fashioned web page I could've had the info in a few seconds. Scrubbing around in those stupid videos took many minutes - not to mention most of them ended up not including the info I was looking for.

      --
      #DeleteChrome
    4. Re:Because people write text by sjames · · Score: 1

      The funny thing is that most counter examples are still using words. For example, record a video immediately brings to mind someone speaking, not a silent animation.

      Most of the 'graphical' languages are blocks with words on them.

      GUI layout editors make sense, but aren't really graphical programming since you still have to fill in the code to give the elements functionality. Even with those, I find them useful for a rough-in, but still find tweaking text more effective for refining the layout.

    5. Re:Because people write text by skids · · Score: 3, Interesting

      Why write three quick and dirty sentence-fragments on how to do it, when you can record a 10 minute video and post it to YouTube?

      This. And it's getting even worse -- even enterprise grade vendors are starting to do it to document their products while allowing their more formal manuals to languish.

      Anyone who wonders why we still use language instead of pictures really needs to spend some time trying to find information in a manual for a GUI-based application versus finding it for the CLI (or writing the two styles of manual, for that matter.) Yes, learnig to read well and type well takes a lot of practice. It is also worth every second.

    6. Re:Because people write text by Anonymous Coward · · Score: 0

      We still code in text because no programming language will ever let me easily express "c^=0xdeadbeef" by drawing a line between two data objects. Yes, wizards have become reasonably adept at setting up the core functionality of any app not worth writing in the first place. But even when they do allow you to write a line of code such as I gave above, well... I can type that in about a tenth the time it would take me to click... drag... click... right-click... click (function) select (xor)... click (constant) type "0xdeadbeef"... whatmorondoesntaccepthexforafuckingbitwiseop??? backspace*10 "-559038737".

      Just because you couldn't think of an efficient interface for it in the time you spent thinking about it (about 10 seconds, right?), doesn't mean it doesn't exist.

    7. Re:Because people write text by Lisias · · Score: 1

      Yeah, and it's especially insane when the entire video just shows a terminal window on some random kid's computer screen, with the audio track consisting of "and now type this, then type this...".

      Some years ago, I was hired to code in Ruby On Rails.

      Well, my experience was Java, C++, PERL and Python, so I need some kick start. Some guy gave me the RailsCasts. The content was good, but by Turing's sake, WHY IN HELL someone would prefer to watch some guy talking while typing? My plan was to use my commuting time, so in order to attent the Rails Casts I had to download the video, recoded it to fit on my Palm LifeDrive screen (yes, I used to use a Palm to watch videos WAAAAYYYY before Android and iPad!) and then sync the damn thing to the device using Palm Desktop.

      Damn, downloading text using Plucky was infinitelly easier and faster.

      Write me a good essay, use a 5 min. video to show how the resulting program behaves and that's it!

      (I ended up reading the Pickaxe book. Best thing I could do, the book is awesome.)

      --
      Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
    8. Re:Because people write text by Anonymous Coward · · Score: 0

      Why write three quick and dirty sentence-fragments on how to do it, when you can record a 10 minute video and post it to YouTube?

      I often find that important contextual points are lost with the terrible style of writing that is often employed for "formal documentation".

      [I was going to be polite, but just the above is going to result in mega down-modding, so here is my true feelings on the matter.]

      When it comes to reading the MAN pages, some neckbeards decided that options to send data through a telnet connection are as important as options related to usernames or passwords. As a result, you need to search through pages of unimportant gibberish to find the two lines that you really need to know. Oh, and no examples because of some paternalistic response about having to know every little nook and cranny of a 50000 line program that you need for one small part of a cron job.

      Guess what? That philosophy failed, and your collective tough guy act got called out. Now, it's Microsoft on the PC, Google on the mobile, Apple on the high end, and GNU for toys. The best paid programmers are paid making toys for web-development companies, with no need to contribute to open source, and the best database company is run by a megalomaniac who pays Indians to do everything. The real man pages today are google search site:stackoverflow.com and the Indians are going to take your precious cobol job at the bank away.

      Better get to learning Javascript there, Trevor; you wouldn't be doing your Ayn Rand circle proud if you had to depend on the children. (Not that they would be very likely to do that, having been raised as hardcore capitalists by your divorced wife who took the stock options that you stabbed so many people in the back for.)

    9. Re:Because people write text by houghi · · Score: 1

      The problem with video is that many people forget one very important step: editing. Another step is preparation.
      Just look at many unboxing videos.
      TV blaring in the background. Turn that off.
      If something goes wrong (e.g. you cat walks over your keyboard) start over. If I want to see cat videos, I am sure there will be one or two available on youtube.
      Don't say "I hope you can see this." and then drag the box out of focus or out of the field of view. This is not live feed. Start over till you get it right.
      Oh? That takes a lot of time? Welcome to the world of video. And also why writing is much better for transferring ideas between people who are not in direct contact.

      With writing we have learned in school to edit before we submit our homework. With video, professionals do the same thing, but it just takes up much more time.

      --
      Don't fight for your country, if your country does not fight for you.
    10. Re:Because people write text by AK+Marc · · Score: 1

      I don't get it, can you post it as a 30 minute how-to tutorial?

      I wish people would put a transcript in the description. I can read 10x as fast as they can talk, and I get better retention reading than listening. The tutorials are often about control. You control how the user gets the information. They *must* watch. Like the flash-video ads for "one weird trick" to date, lose weight, make money, or whatever with the guy drawing as they are talking. They want to make sure you don't learn it, but try to keep you interested for 30 minutes without teaching you anything.

  9. BASICally This by Anonymous Coward · · Score: 0

    05 REM Slashdot comment
    10 CLS
    15 PRINT "Back In the Bad Old Days you had to re-arrange cords and switches to re-program a computer."
    20 PRINT "Then Came Text Based Code and everyone had a gay old time programming."
    25 PRINT "Then 30 motherfucking years after the advent of the Macintosh you asked this question"
    30 PRINT "They should have came up with this years ago."
    35 GOTO 10

  10. Power. by Anonymous Coward · · Score: 1, Insightful

    Words have power. They abstract complex ideas. One word and you have an image in your head. We don't think in terms of code, we think in terms of pictures. Text abstract it.

    1. Re:Power. by Mitchell314 · · Score: 1

      This is slashdot, not society, so OP's point stands.

      --
      I read TFA and all I got was this lousy cookie
    2. Re:Power. by garyebickford · · Score: 2

      IMHO that's just historic, mostly. EEs have been designing circuits with structural complexity at least as great as any software program, using graphical tools, all along. Early on (after the plugboard era) computers didn't have the horsepower or graphic capability to do software CAD, and so programmers got started using prose of necessity. It's quite possible that as a result, programmers have tended to be non-graphical people (viz. the folks that hate using X-windows, or all that "GUI crap".) Now getting a graphical language frontend to be as popular would require replicating a lot of existing work in the new domain - for instance a graphical function library front end that presents all of the C function library as 'chips'. And then you'd still have to either convince all those linear, text-based programmers to change, or start over with the new generation.

      I believe that a new generation will in fact start over using a graphical system sometime in the near future. There are things you can see and understand in three dimensions that just don't show up in prose.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    3. Re:Power. by Anonymous Coward · · Score: 5, Informative

      EEs have been designing circuits with structural complexity at least as great as any software program, using graphical tools, all along.

      As an EE I call complete bullshit on this. Other than simplistic circuits most modern electronics design is done just as software: textually. Ever heard of Verilog and VHDL? These have largely replaces schematics. You can't have a schematic for a modern complex IC. The schematic would cover a fairly large state like Florida for something like a SPARC T5 or Core i7. There are so many pathways that even labeling the lines would be problematic. The days of something like CS0 are over. VHDL supports structured naming. These days netlists for complex chips are huge.

      The tools and techniques for IC design have changed to a more textual mechanism precisely because text is better at dealing with complex abstractions. Please don't tell us what EEs do if you aren't an EE.

    4. Re:Power. by TsuruchiBrian · · Score: 1

      I think visual graphics are good for EE's because they actually have to physically make all the components they are designing. Having the design in a graphical format allows for easy translation of design to real life. Software runs in a computer as a set of instructions. It is sort of naturally a language. Obviously you could write tools to transform graphical representations to language representations and vice versa. And we have already done similar things like this with higher level languages being transformed to assembly to machine language. But it is an extra step with extra costs whose benefit that may or may not be worth it. When high level languages first came out, some people still preferred to write in assembly. They thought high level languages weren't worth the added complexity. Maybe graphical languages will turn out like that. I don't know. My gut feeling is that they won't though.

    5. Re:Power. by Anonymous Coward · · Score: 0

      > You don't speak for the intelligent people in society, though.

      Neither do you. Take a moment, mouth breather, and notice you used a simile. Then consider metaphors, then consider colloquialisms, etc. Humans have used representations since we were painting on cave walls and dolls. Almost all ideas are visualized (Picasso, Einstein, Tori Amos, all thought/think in different abstractions) by humans. It's part of how we think.

    6. Re:Power. by Anonymous Coward · · Score: 0

      No. It isn't, dumbass.

    7. Re:Power. by Gazoogleheimer · · Score: 1

      Mixed-signal, RF & everything else analog laughs heartily at your calling bullshit.

    8. Re:Power. by skids · · Score: 1

      Diagrams have a few small advantages over language when it comes to reactive programming, which is dominant in basic digital circuits. As noted by others, EEs today use text at least as much as diagram, because silicon has caught up to implementing some of the concepts best expressed by words.

      What will eventually become popular IMO is a mild graphical enhancement to text based languages, e.g. using arrows/traces for complicated parallel flow control while the program keeps the same general text-file form for OO, modularity, and expressions. Past that point, there won't be much benefit to further conversion to graphical representations.

      Basically graphical elements amount to adding gesticulation to language -- there are benefits, but compared to the total power of the system, they are but a small fraction.

      (Words also have one advantage in that they can utilize both/either auditory and visual channels, and so offer a disability-resistant method of communication.)

    9. Re:Power. by AdamHaun · · Score: 3, Insightful

      EEs have been designing circuits with structural complexity at least as great as any software program, using graphical tools, all along.

      The most complex circuits (in ICs) are synthesized from text-based HDLs or automatically generated by software tools. Schematics are common at the board level, but that's nowhere near the complexity of even a medium-sized software program. And of course all functionality is explained through text-based documentation.

      Text is better for expressing abstract concepts. Graphics are better for expressing concrete concepts. If you try to use graphics for abstract concepts, you end up adding a lot of text anyway -- flowcharts, for example.

      --
      Visit the
    10. Re:Power. by Anonymous Coward · · Score: 0

      Mixed-signal, RF & everything else analog laughs heartily at your calling bullshit.

      The question was about complexity -- in particular complexity as it relates to software. Complicated ICs are the closest thing in EE. RF stuff is still done with schematic but that's because it is a different kind of complexity. RF circuits are typically not enormous like digital ICs are. Software does have things like this (interrupt handlers, tight little algorithmic areas) but these are not what the original author had in mind.

    11. Re:Power. by rp · · Score: 1

      I think there is an important distinction here.

      Circuits and GUIs are graphical by themselves. To specify them graphically is to specify them in their own terms. Such graphical representations are natural and compact. They are not really abstractions. (For circuits, their behavior can be added to the graphics using a minimal set of graphical conventions. For GUIs, this is not possible; hence, the behavior of GUIS isn't usually specified in a graphical way.)

      Most things in programming are not graphical. C functions aren't. Algorithms aren't. Data structures aren't. Databases aren't. Contracts on what a function may or may not do aren't. Communication protocols aren't. Etc.

      Graphical languages can be used as an aid in explaining or specifying these things, but the results will be symbolic representations, just like textual representations are. This is a fundamentally different way of using graphics.

      Such symbolic graphical languages certainly have their use (UML diagrams, database model diagrams, state machines, etc.) but they take up a lot more space than equivalent textual representations. Take natural numbers, for instance. It's perfectly OK to replace them with a graphical representation (dots and circles on a screen) when introducing them, but only a textual representation such as the decimal representation will scale to larger sizes. This holds for pretty much all aspects of programming. For instance, when specifying program flow logic, a flowchart is a very space-inefficient way to do so when compared to textual code. It also takes much more time to create. There is no way to specify the equivalent of 10 million lines of code in less than 1 million pages of flowcharts, and they would cover only the control flow, not all other things that the code specifies. Therefore, graphics will only be used for those aspects of a program that are easy to visualize, and usually, only as a secondary representation, next to a textual one. Text is a lot more compact and usable.

  11. Labview by Anonymous Coward · · Score: 5, Insightful

    Because visual programming is even more awkward in almost any aspect (see Labview).It takes significantly longer to write, large projects are all but impossible. There is a reason why circuits are not designed anymore by drawing circuits (in most cases anyway)

    1. Re:Labview by Garble+Snarky · · Score: 4, Interesting

      I'm stuck on a several-month-long Labview project right now. It's been a terrible experience. I don't know if it's more because of the poorly designed editor, the language itself, or the visual language paradigm. But I'm sure all three of those are part of the problem.

    2. Re:Labview by ArchieBunker · · Score: 3, Informative

      I use Labview all the time and it does exactly as advertised. I'm a hardware guy but occasionally need things done in software. Sure its not optimal but it gets the job done.

      How are circuits designed today if they are not drawn?

      --
      Only the State obtains its revenue by coercion. - Murray Rothbard
    3. Re:Labview by bunratty · · Score: 1

      I did a small project in Simulink (part of MATLAB) which uses graphical-based programming. It was also quite tedious. Writing text files seems so much easier to me. I wish all system administration was based on simply editing text files... if something wasn't working I could just look at the code and see what is wrong, rather than typing obscure queries to try to determine the current settings.

      --
      What a fool believes, he sees, no wise man has the power to reason away.
    4. Re:Labview by garyebickford · · Score: 1

      There is a reason why circuits are not designed anymore by drawing circuits (in most cases anyway)

      AFAIK they're certainly not designed in prose. What about all those VLSI and layout CAD systems?

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    5. Re:Labview by tftp · · Score: 3, Informative

      How are circuits designed today if they are not drawn?

      They are synthesized by XST, Synplify Pro, or a similar tool.

      Slashcott Feb. 10-17!

    6. Re:Labview by Anonymous Coward · · Score: 1

      I have used Labview since 1994. It most definitely does everything it claims and more. I also program in assembly (MPASM), C, C++ but in Labview I can generate more proven code in far less time.

      My only problem with it is that the Labview Development Environment is all proprietary. An Open-Source Development Environment would be nice, even if it didn't have the multitude of functions. As long as it had .vi and .llb compatibility

    7. Re:Labview by Anonymous Coward · · Score: 0

      What does circuit design have to do with programming?

      PS: And surely as a hardware guy you get to write logic circuits in HDLs, don't you? 20 lines of Verilog can be a lot more readable than a screenful of circuit diagrams.

    8. Re:Labview by bunratty · · Score: 1

      What about Verilog?

      --
      What a fool believes, he sees, no wise man has the power to reason away.
    9. Re:Labview by joe_frisch · · Score: 2

      There are some applications where graphical design works. Matlab Simulink, Labview etc are very useful for a certain limited set of problems. My feeling is that if the problem can be easily represented graphically, it may make sense to use a graphical language to code the solution. I think it is rare for a graphical language to be a good choice for a large problem.

      Its pretty similar to spreadsheets - they are very efficient tools for certain types of functions, but should not be turned into large scale programming tools.

    10. Re:Labview by Anonymous Coward · · Score: 0

      I've been using LabView (and other languages) for 15 years. LabView was a serious mind trip after decades of text/line based languages but now it is my language of choice. I've written everything from non-linear optical simulations to a test suite that included it's own interpenetrated scripting language (yes I implemented a line based language in lab view, the irony is not lost on me). I'm thinking it may not be the graphical nature that keeps me hooked but he very large libraries of math and equipment, polymorphic data handling (lazy yes), multiple outputs to functions and the fun of finding out (after the fact) that something you wrote could be simplified by an order or magnitude. It's also nicer to look at you code.

    11. Re:Labview by sayfawa · · Score: 1

      I'm sure it's all 3, and if someone worked on the code before you, then they are probably a 4th problem.

      When I used Labview, it would get so messy and stringy that at some point I'd just say 'fuck it' and wrap up everything in a module (I forget what it's called). A nice looking little box with a few inputs and outputs that hides the horrible mess I'd made. Good for me, torture for anyone who used it after me. No one else could know what it was doing in there. A few years after I finished at that lab I saw that they were still using the Labview code I wrote. So yeah, I feel a bit bad.

      Although, I guess I could wrap that up into your problem #3. Maybe it shouldn't have allowed me to pull such dirty tricks.

      --
      Free the Quark 3 from asymptotic confinement! Bring your charm! Don't get down! All colours and flavours welcome!
    12. Re: Labview by Anonymous Coward · · Score: 0

      Exactly. Beyond the most simple routines, LabVIEW is incredibly cumbersome. Plus the they operate from Microsoft's playbook, with unneeded bloated upgrades and forced obsolescence.

      After learning to run my lab with Python, labjack, and cheap gpob to Ethernet adaptors I'll never go back.

      By the way, how do you all feel about Slashdot beta?

    13. Re:Labview by petermgreen · · Score: 2

      Board designs are usually done by drawing schematics and then importing those into the PCB editor and then laying them out (autolayout of PCBs is possible in theory but i've never heard of anyone using it in practice).

      IC designs on the other hand are done by writing code in a hardware description language and then running that through the synthisizer (and maybe some manual tweaking afterwards for really high end designs).

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    14. Re:Labview by ArchieBunker · · Score: 1

      Altium has something similar included. Most of my work is on the analog side of things.

      --
      Only the State obtains its revenue by coercion. - Murray Rothbard
    15. Re:Labview by tftp · · Score: 1

      I'm not sure what is worse, Altium or Slashdot Beta ... I think they deserve each other :-)

    16. Re:Labview by somenickname · · Score: 1

      I've actually worked on several projects where we ended up creating a new visual programming language to solve the problem. We did it because it was almost impossible to express the problems in a traditional programming language. Visual programming is awkward when the problem doesn't lend itself to visual programming. If you wanted to argue that most problems don't lend themselves to visual programming, you'd get no argument here. But, if the problem calls for it, definitely don't be afraid to design a UI to describe it just because, traditionally, you've seen it not work.

    17. Re:Labview by Ambassador+Kosh · · Score: 1

      As soon as the differential equations get very complex is becomes massively easier to just write them in code than to use Simulink. I don't think that Simulink is bad in any way just that if you have a complex problem it becomes at least as hard to read as any code is. I have a problem I am working on right now that is about 7 coupled differential equations and probably another 10 regular functions. Doing it in simulink just does not seem like a good idea.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
    18. Re:Labview by femtobyte · · Score: 1

      Labview is an excellent example of the limited scope of usefulness for graphical programming languages. The "front panel" layout features of Labview are great: for quickly whipping up a GUI, it's far easier to drag-and-drop interface widgets than to code up a layout by hand. The back-end "wiring diagram," however, is generally a royal pain to work with, as soon as you start trying anything remotely complex. There's a small scope of problems for which the ease of expressing parallel, event-driven logic in a 2-D layout is convenient; however, one quickly finds themselves burning huge amounts of time meddling with visually positioning elements in a comprehensible way for tasks that would be trivial in textual representations. There's a reason that people moved away from programming computers by manually re-wiring connections between simple hardware units. Much of Labview's visual programming interface represents a regression to the flexibility and ease of use of computers prior to 1950.

    19. Re:Labview by chromas · · Score: 1

      it would get so messy and stringy that at some point I'd just say 'fuck beta' and wrap up everything in a module (I forget what it's called). A nice looking little box with a few inputs and outputs that hides the horrible mess I'd made.

      Maybe it shouldn't have allowed me to pull such dirty tricks.

      It's about as dirty as wrapping some code into a function or an object.

    20. Re:Labview by joe_frisch · · Score: 1

      I'd never write something big in a graphical language. Sometimes though you have small problems and a graphical language is a good tool for some of these. We are using simulink now to model the flow of information in a programmable logic based microwave processor. The tool uses blocks that map onto programmable logic blocks, so the results can directly be translated into a working part.

      Using VHDL would be much more efficient, but this is faster for this particular type of problem, and efficiency is not a limitation for this application.

    21. Re:Labview by Anonymous Coward · · Score: 0

      Large projects are infinitely faster to do in labview. You're just a shifty programmer.

    22. Re:Labview by Anonymous Coward · · Score: 0

      The problem is you. A competent labview programmer would be done right now.

    23. Re:Labview by Anonymous Coward · · Score: 0

      Add to that you can tell if you wrote bad code by how literally it looks like spaghetti.

      The only people that write bad labview code are nubies.

    24. Re:Labview by Anonymous Coward · · Score: 0

      I wrote an email checking client (HELO, etc) in LabView back in the late 90s just because I could. It worked, but the "code" was painful to read and it was even more painful to write (I wrote a more functional client in C in 1/10th the time BEFORE I did the LabView version). These days I wouldn't ever consider using LabView for anything, because development is way, way too slow, and screw developing in a language that doesn't support diffs. (Yeah, for all I know they've hacked some kind of visual diff into LabView in in the past 15 years, but I know it wouldn't satisfy me. I want text-based diffs.)

    25. Re:Labview by Anonymous Coward · · Score: 0

      If you didn't write the thing, it's because it isn't your code.

      Code you are "stuck with" is always horrible, no matter what language it is in.

      If you can, rewrite it from scratch a few times, it'll get massively cleaner, and easier to maintain, and it won't take very long. (CTRL-SPACE is your friend!, as is CTRL-U). Seriously, the main benefit of LabView is that there exists no faster coding / testing /iterating platform in existence. It lets you see at a glance, and more importantly, point to and connect things intuitively and quickly. Don't be afraid of systematic and total rewrites - it makes them fun! Also, don't be afraid to enjoy the fun!

    26. Re:Labview by Anonymous Coward · · Score: 0

      For what it's worth, analog circuits are almost universally designed using schematics still. This includes things like analog to digital converters, wireless/RF, clock generators, power regulators, and even high speed IO circuits, all of which appear on modern chips. Some things (eg. logic flows) work better in text, but some work much better in a visual paradigm.

    27. Re:Labview by hyperfine+transition · · Score: 1

      I use LabVIEW for FPGA programming, with other LabVIEW code running on a real-time controller interfaced to the FPGA, with top-level control, logging etc on a PC. LabVIEW is nice for the FPGA because the metaphor suits the parallelism of FPGAs. Part of why it works too is that you're only dealing with a very limited subset of LabVIEW's functionality and you can't do complicated things, at least if you want to clock at high speed.
      But the code running on the real-time controller and PC ... yuck. I'm an experienced C-coder and LabVIEW can be painful when algorithms eg for a servo, get complex. The standard joke "LabVIEW makes easy things easy" has plenty of truth in it. What it means is that once you get beyond a certain level of complexity, LabVIEW doesn't offer any advantage over a text-based language.

    28. Re:Labview by Filip22012005 · · Score: 1

      I agree. I think the point is to make a lot of different, small, custom modules, and document them properly.

      --
      When the policeman of the tie, rule you violate, hello punishment of the kitty?
    29. Re:Labview by Garble+Snarky · · Score: 1

      False. You're an idiot.

    30. Re:Labview by Garble+Snarky · · Score: 1

      No, that's really not true. It's the slowest development system I've ever used. The software engineers who develop the editor DO NOT UNDERSTAND that the keyboard is faster than the mouse.

    31. Re:Labview by thegarbz · · Score: 1

      How are circuits designed today if they are not drawn?

      VHDL

      I greatly prefer to write some lines of code than to draw a circuit with 1000 logic gates. Though both graphical and text based systems have their uses.

    32. Re:Labview by thegarbz · · Score: 1

      I hate to reply to my own comment but I thought of another. SPICE.

      What is SPICE simulations if not a text based netlist combined with some descriptions on the behaviours between nodes?

    33. Re:Labview by Jamlad · · Score: 1

      True this. I've some basic working knowledge of Labview, used it for some simple control systems in college. The "brick" analogy is a good one. It's about as nuanced and elegant as a brick. Great for building simple things. Useless for building intricate things. I once had to modify the Labview software controller for a 3-axis piezoelectric stage. The backend was an awful mess of spaghetti even though it was laid out quite neatly and layered with sub-VIs. I would have needed a dual (perhaps tri-) 24" monitor setup to work on the code efficiently or some sort of billboard poster printer. It was horrible. By coincidence I just had to modify a VI for polling oscilloscope data just now, after years of having not touched Labview, it took me two hours to insert an automatic save/load default control values routine. Something that would have taken a fraction of the time in a traditional language.

    34. Re:Labview by monty_mcmont · · Score: 1

      I respectfully disagree that large projects are all but impossible in LabVIEW. Large projects quickly become troublesome in any language if the wrong architecture and sub-optimal coding practices are used, and LabVIEW is no different. I grant you that LabVIEW requires much more knowledge and experience than e.g. Python to get the most out of it, but it is very powerful, robust and can make communicating with hardware a doddle. I wouldn't use it for every project, but for engineering work where hardware interfacing is necessary it's a no-brainer. I don't think that it necessarily takes any longer to write code in LabVIEW than other languages; the huge palette of built-in objects can even make it much quicker to bash out code. If your license includes access to National Instruments' online self-paced training materials I'd highly recommend going through them. They're a gold mine of useful information, and the architecture templates that NI provides are very good starting points for a wide variety of projects.

    35. Re:Labview by Anonymous Coward · · Score: 0

      Trend is toward Verilog-AMS for analog, wasn't it done with SPICE netlists before this?

    36. Re:Labview by defcon-11 · · Score: 1

      I can't imagine trying to make comprehensible diff view between versions of a visual programming language.

    37. Re:Labview by losfromla · · Score: 1

      hmm, or maybe it's because you don't have enough experience in LabVIEW to program it properly using paradigms appropriate to the language? LV is a fine tool and it is easy to hack out nasty looking stuff in it. It is also possible but requires more experience to crank out nicely architected code that is easy to understand, same as in C, C++, Java, etc. It is a poor craftsman that blames his tools is how the saying goes, right?

      --
      Only I can judge you.
    38. Re:Labview by losfromla · · Score: 1

      Sounds like you are the 4th problem ;-)

      --
      Only I can judge you.
    39. Re:Labview by chthon · · Score: 1

      Yes. The thing about Simulink and the places where I have seen it used is very domain specific, e.g. transmission systems. These have to handle torque, acceleration and speed, three well-understood and relatively simple things.

      Business software is much more complex in the kinds of things it needs to handle, and one fool can ask more questions than a thousand wise men can answer.

    40. Re:Labview by sandertje · · Score: 1

      I was once forced to do a project in Labview. The end result: spaghetti-code. Making code that someone else will be able to understand in Labview is nigh impossible. Wires, boxes everywhere. Any attempt to understand the application logic will result in having to trace spaghetti across your screen.

    41. Re:Labview by Anonymous Coward · · Score: 0

      It's difficult to apply text based programming paradigms to LabVIEW, because it's inherently different. I've been programming full-time with LabVIEW for years and I'll freely admit it has its pitfalls. For anyone without LabVIEW training though I can see why they'd call it terrible. It's easy to do things, and equally as easy to do things badly. And for some tasks it's just not suited. Maybe that's the problem with your project.

  12. Text-based books by femtobyte · · Score: 5, Insightful

    Why are we still writing text-based books, and communicating in word-based languages? Surely, we should have some modern, advanced form of interpretive dance that would make all such things obsolete. Wait, that's a terrible idea! Text turns out to be a precise, expressive mode of communication, based on deep human-brain linguistic and logical capabilities. While "a picture is worth a thousand words" for certain applications, clear expression of logical concepts (versus vague "artistic" expression of ambiguous ideas) is still best done in words/text.

    1. Re:Text-based books by Anonymous Coward · · Score: 0

      Exactly. Software you can feed instructions to on a higher, coding free level is of course something that is not only possible but also something many people are working on to refine, but I really don't think it would be easier to construct an algorithm using such software than it would be to just code one using any programming language. It of course depends on the operation though. In some situations (when dealing with robots for example) it might be easier to utilize forms of instructions such as speech or motion, but that is not coding. The point of writing code is about having all instructions clearly viewed and documented.

    2. Re:Text-based books by Anonymous Coward · · Score: 0

      Why are we still writing text-based books, and communicating in word-based languages? Surely, we should have some modern, advanced form of interpretive dance that would make all such things obsolete. Wait, that's a terrible idea! Text turns out to be a precise, expressive mode of communication, based on deep human-brain linguistic and logical capabilities. While "a picture is worth a thousand words" for certain applications, clear expression of logical concepts (versus vague "artistic" expression of ambiguous ideas) is still best done in words/text.

      Have you seen this new thing called television? Almost no words to read. There's another thing on the internet called "youtube". You might want to check it out, too.

    3. Re:Text-based books by Anonymous Coward · · Score: 0

      Exactly. Also, it's not like there has been no development in computer languages over time. There may actually be too many of them. And they don't have to be obtuse. There are efforts like Smalltalk and Perl, that try to make code more like natural languages.

      There's a place for what the questioner is talking about in WYSIWYG editors, CMSs, and image-processing software, but for specifying and implementing protocols the question of why we do it in text is completely absurd.

    4. Re:Text-based books by femtobyte · · Score: 2

      I have seen these things you speak of. I have also noticed that they have an extremely low information density, especially compared to the effort required to produce communications. Compare the number of person-hours required to make a movie versus writing a book. "TV" and "youtube" are not generally the first places I turn to when I want detailed information about a subject.

    5. Re:Text-based books by Darinbob · · Score: 4, Funny

      Perhaps the original question should have been asked in a purely graphical way instead of using archaic textual means.

    6. Re:Text-based books by abhi_beckert · · Score: 4, Funny

      A picture is worth a thousand words.

      A thousand pictures flipping past at 24 frames per second is worth ten words.

    7. Re:Text-based books by Idbar · · Score: 1

      Hey, the last thing is touch, we should be migrating to touch!

      Clearly, some ladies will find it awkward at first, when introducing your self to them, but hey... it's the new thing, waaaay better than words!

    8. Re:Text-based books by Grishnakh · · Score: 1

      1 picture is worth 1000 words. However, the words one person thinks of when they see a picture will be different from the words another person thinks of seeing the same picture. Text is less ambiguous. And text in purely logical languages (like programming languages) is completely unambiguous. When you want exact, deterministic behavior, you need to express yourself in an unambiguous manner.

    9. Re:Text-based books by mooingyak · · Score: 1

      A picture is worth a thousand words.

      A thousand pictures flipping past at 24 frames per second is worth ten words.

      Is that yours or are you quoting someone? I'd like to do the attribution properly when I use that.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    10. Re: Text-based books by Anonymous Coward · · Score: 0

      Why aren't we just submitting videos of us speaking responses, instead of typing them like 19th century refugees!

      Dice! Are you getting the same idea I am? Beta 2.0 Here we come!

    11. Re:Text-based books by Anonymous Coward · · Score: 0

      "I consider myself someone who 'gets code,'"

      Consider otherwise.

    12. Re: Text-based books by Anonymous Coward · · Score: 0

      That's what's wrong with beta - too many freekin pictures.

    13. Re:Text-based books by Anonymous Coward · · Score: 0

      Graphical languages are exactly as unambiguous as text. You still need to know what the function does. It doesn't matter if it's a square that has a + on it and two inputs and an output or if it's a + between two variables and a output variable in front. You still need to know the syntax. There are competitions about that you know? http://www.ioccc.org/

    14. Re:Text-based books by Xifer · · Score: 1

      Actually in the field of architecture, we call the little dance a wave presentation, and it usually means that you have not drawn anything or explored the design tree of possibilities, but just have a few dimensional ideas in your head. Modern architecture uses a lot of programs in 3d geometry that crunch the numbers behind the scene and allow the architect to note down his shoe box full of design ideas so that he can solve the transitions and keep track of all the conflicts. For a small building you may have eight different systems to document but a large skyscraper also has logistics and just in time deliveries and also an end of life schedule. There are some design ideas that you cannot imagine easily without building a model or drawing a walk through three dimensional representation of it and you certainly won't transfer it to the client's understanding with no presentation aids. That being said, you also have to generate a text document called the Specification and another text document called the Contract, to make sure that everyone understands everything about the proposal. It does not seem a wonder that certain areas such as hardware lend themselves to activities more like drafting because of spacial considerations. However i am intrigued by the concept of using a three d visualization to sort out work flow and inputs.

    15. Re:Text-based books by Anonymous Coward · · Score: 0

      some modern, advanced form of interpretive dance

      That's actually a decent description of sign language. :)

    16. Re:Text-based books by Coop · · Score: 1

      And one of the ten words always seems to be "meh".

      --
      "If you're not passionate about your operating system, you're married to the wrong one."
    17. Re:Text-based books by Skreems · · Score: 1

      And yet, somehow, the written word has managed to survive.

      --
      Slashdot needs a "-1, Wrong" moderation option.
      The Urban Hippie
  13. April 1st isn't for a few more months by t0qer · · Score: 4, Informative

    I think the /. folks think it's an early April Fools day. Not write code using text? That's like saying, write a book with pictures. Sure it can be done, but it doesn't apply to all books.

    Maybe beta is an early April Fools joke too.

    1. Re:April 1st isn't for a few more months by runeghost · · Score: 2

      They appear to be tossing up anything they can in an effort to stop us bitching about Beta.

    2. Re:April 1st isn't for a few more months by Selur · · Score: 1

      Not write code using text? That's like saying, write a book with pictures.

      Not really. Isn't a letter also a picture? Aren't Kanji basically pictures (pictograms)?
      -> the text video interpretive dance comparison fits better

    3. Re:April 1st isn't for a few more months by thegarbz · · Score: 1

      You mean like this?

      There actually is a very good use case for visual based programming, it's harder to stuff something up once you're abstract enough that it's just a bunch of blocks tied together. A lot of industrial stuff is coded like this. Visual function block diagrams tied together, hell Schneider's latest acquisition use a Microsoft Visio based tool for "programming" controllers. Even more interesting is the standards for safety systems has less stringent requirements on certification and verification if you use a function block or ladder logic based editor instead of just writing text.

      Just like books with pictures, a text free programming environment has it's uses. I say this as someone who has written precisely one Android app, and I don't have a clue how to code in Java and know very little about the Android API: App-inventor

    4. Re:April 1st isn't for a few more months by Anonymous Coward · · Score: 0

      That's a really good analogy. Graphics-based programming is equivalent to books with nothing but pictures inside them. They fill a definite need, but not any of the needs professionals have.

      Graphical programming, picture books, beta... If this is what Dice thinks that intelligent people are like, I will NEVER use their services when I need to hire new colleagues.

  14. No by Anonymous Coward · · Score: 0

    You'll like the Slashdot Beta then.

    When I was taking a C class at a community college, the instructor gave up half way through and just started putting buttons on windows in Visual C++, thus ensuring that the students wouldn't know what all the underlying code behind those shiny objects did.

  15. Church of Pain by Moblaster · · Score: 4, Funny

    Well, Grasshopper, or Unschooled Acolyte, or whatever your title of choice may be...

    You did not hear this from me.

    But most developers belong to the Church of Pain and we pride ourselves on our arcane talents, strange cryptic mumblings and most of all, the rewards due the High Priesthood to which we strive to belong.

    Let me put it bluntly. Some of this very complicated logic is complicated because it's very complicated. And pretty little tools would do both the complexity and us injustice, as high priests or priests-in-training of these magical codes.

    One day we will embrace simple graphical tools. But only when we grow bored and decide to move on to higher pursuits of symbolic reasoning; then and not a moment before will we leave you to play in the heretofore unimaginable sandbox of graphical programming tools. Or maybe we'll just design some special programs that can program on our behalf instead, and you can blurt out a few human-friendly (shiver) incantations, and watch them interpret and build your most likely imprecise instructions into most likely unworkable derivative codes. Or you can just take up LOGO like they told you to when you were but a school child in the... normal classes.

    Does that answer your impertinent question?

    1. Re:Church of Pain by Anonymous Coward · · Score: 0

      The question isn't about graphical tools. The question is about graphical code (i.e. instructions and algorithms).

    2. Re:Church of Pain by martin-boundary · · Score: 1
      We *already* have graphical code. What do you think the alphabet is? It's a modular, graphical coding system for concepts using icons. We use it to build intermediate high level graphical pictures called words, which are then interpreted according to ad hoc graphical rules (such as whether we read left to right, right to left, indent using space or braces etc) into graphical representations of logical processes known as programs.

      Perhaps you imagine a more primitive 2D system where the low level structures are not built up from a small number of multi purpose alphabetic icons using elaborate juxtaposition rules, but rather exist individually in a huge library of predefined pictograms. We have that too, it's called Chinese.

    3. Re:Church of Pain by Anonymous Coward · · Score: 0

      Well, Grasshopper, or Unschooled Acolyte, or whatever your title of choice may be...

      You did not hear this from me.

      But most developers belong to the Church of Pain and we pride ourselves on our arcane talents, strange cryptic mumblings and most of all, the rewards due the High Priesthood to which we strive to belong.

      Let me put it bluntly. Some of this very complicated logic is complicated because it's very complicated. And pretty little tools would do both the complexity and us injustice, as high priests or priests-in-training of these magical codes.

      One day we will embrace simple graphical tools. But only when we grow bored and decide to move on to higher pursuits of symbolic reasoning; then and not a moment before will we leave you to play in the heretofore unimaginable sandbox of graphical programming tools. Or maybe we'll just design some special programs that can program on our behalf instead, and you can blurt out a few human-friendly (shiver) incantations, and watch them interpret and build your most likely imprecise instructions into most likely unworkable derivative codes. Or you can just take up LOGO like they told you to when you were but a school child in the... normal classes.

      Does that answer your impertinent question?

      Testify!

  16. because higher abstractions are hard by bob_super · · Score: 0

    Try to run this kind of code in your CLI:
    compile linux -ideal_desktop $my_needs
    display slashdot_UI -ad_revenue -comment_friendly -no_backlash

    What result did you get?
    You can find pretty high abstractions for very limited subsets (Matlab algorithms, video filter IP in an FPGA), but it's near-impossible to get a generic compiler to guess what you really want if your code is too abstract.

    1. Re:because higher abstractions are hard by Anonymous Coward · · Score: 0
      I got

      syntax error at fuck beta

  17. Sure thing by Tough+Love · · Score: 5, Funny

    Sure, and similarly, laws should not be written down in legal language, they should be distributed in comic book form.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
    1. Re:Sure thing by Anonymous Coward · · Score: 0

      Watch "City Limits" some time. An important juridical question is decided based on the precedent in Insect Man #43.

    2. Re:Sure thing by Anonymous Coward · · Score: 0

      Sure, and similarly, laws should not be written down in legal language, they should be distributed in comic book form.

      And for rules like "no smoking permitted on these premises", they are often put up in graphical form.

    3. Re:Sure thing by Anonymous Coward · · Score: 0

      It will be a blast to describe financial crimes using Batman.

    4. Re:Sure thing by Anonymous Coward · · Score: 0

      Perhaps Chick tracts. Chick.com

  18. Re:WE WANT TEXT SLASHDOT by Garble+Snarky · · Score: 1

    What's the big deal? Who cares?

  19. Because text is the only medium that's varied enou by machineghost · · Score: 3, Insightful

    There have been LOTS of attempts at "visual code", and they all look great when you watch the 10 minute presentation on them, but when you actually try to use them you find that they all solve a very small set of problems. Programmers in the real world need to solve a wide variety of problems, and the only medium (so far) that can handle that is text code.

    It's like saying "why don't we write essays in pictograms?" You might be able to give someone directions to your house using only pictograms (and street names), but if you want to discuss why Mark Twain is brilliant, pictograms just don't cut it: you need the English (or some other) language.

  20. Ugh... by Anonymous Coward · · Score: 1

    why are we still writing text based code?

    Because that's the most efficient way of doing it.

    Shouldn't there be a simpler, more robust way to translate an algorithm into something a computer can understand?

    No. Because the problem isn't with how you communicate with the computer, it is in changing your way of thinking to be specific enough that the computer has all the information needed and knows exactly what to do with it. Computers don't think and they have no concept of anything but numbers. One way or another, you're going to have to word things how the computer likes it.

    Why have graphical code generators that could seemingly open coding to the masses gone nowhere?

    Because 1) They are slow as fuck and 2) They aren't as open-ended and allow you to build whatever you want and 3) You still need to design around what the computer wants to accept. Over-engineering something leads to loss of control and robustness.

    At a minimum wouldn't that eliminate time dealing with syntax errors?

    Syntax errors are a non-issue. You could very well make the same type of mistake in any kind of code-editor, but that aside, it takes, what, 2 seconds to fix a syntax error? And the compiler is going to tell you exactly what's wrong.

  21. One practical example by TheloniousToady · · Score: 3, Interesting

    One practical example that I know of is Simulink, which can be used to generate code from diagrams. I did some testing years ago on Simulink-generated source code, and the code itself was awful looking but always worked correctly. Not a lot of fun to test when you had to dig into it, though. Also, testing seemed superfluous after never finding any bugs in it. All the bugs we ever found were in the original Simulink diagrams that the humans had drawn.

    1. Re:One practical example by tftp · · Score: 2

      Simulink is not as easy as it looks. Not every block has compatible I/O, and not every arrow from block A can connect to block B. You have to understand what data those blocks are producing and consuming. Simulink is a useful tool ... but only for a specific class of problems. I am not sure if it can be even used to calculate primes. A simple airline ticket reservation system would require sheets and sheets of Simulink graphic.

      Text-based code is very powerful. A mathematician can write a formula with just a few symbols ... but each of those symbols requires a university course to understand.

    2. Re:One practical example by Anonymous Coward · · Score: 0

      Mathwork's Simulink is actually a great example of graphical coding **that fits a specific problem**. The reason it works is because the interface between blocks is pretty basic: matrices (a.k.a. arrays) with basic datatypes (int, double, fixedpt). It also has a specific niche where try's to be it's best: digital signal processing (ex. FFT, discrete transfer function, control-loop).

      It's usefulness quickly degrade outside of it's niche. For example, it becomes awkward to use when you need to do logic (if-then, while) and bit manipulation (shift, mask). You can write actual text-based code that implements a graphical-block but, even then, the basic idea is "You are doing digital signal processing and you have some special code that supports digital signal processing."

      There is a place for graphical "coding" but the places are carefully carved out b/c the problem fits well.

      P.S. I'm ignoring some of the additional features/add-ons like State Flow (state-transition-logic tool). Forgive me.

    3. Re:One practical example by Anonymous Coward · · Score: 0

      Model generated code from Simulink/Real-time Workshop is industry standard for automotive control applications such as ECUs amongst OEMs and Tier 1 suppliers. It may not be very easy to draw something which calculates primes (but I've never tried) but it is extremely good at expressing complex control systems and generating code for embedded targets. You need to use the right tool for the job and model generated code is the correct tool for embedded control systems.

  22. if you "get coding" so well, why arent you coding? by dagrichards · · Score: 4, Insightful

    You may believe that you 'get code'. But clearly you do not. there have been more than a few attempts to make common objects flexible enough so that even you can stack them on top of each other to make applications. They are unwieldy and create poorly performing applications.

  23. What do you mean by text? by Anonymous Coward · · Score: 3, Funny

    Does APL suffice?

    1. Re:What do you mean by text? by LaughALot · · Score: 1

      The problem with APL is it was a write only language which was very difficult to read. Perl is another example of a hard to read easy to write language. Visual programming - not to be confused with Microsoft's hijacking the word visual and using it incorrectly - visual programming has never been able to really address more complex problems easily.

    2. Re:What do you mean by text? by Anonymous Coward · · Score: 0

      APL is depreciated, get with the times! It's called J now
      www.jsoftware.com

    3. Re:What do you mean by text? by ebvwfbw · · Score: 1

      I haven't written a line of apl in probably 30 years. I remember with my colleagues - Here's an APL program, guess what it does. That was about right too. For what it did it was great.

    4. Re:What do you mean by text? by ebvwfbw · · Score: 1

      APL is depreciated, get with the times! It's called J now
      www.jsoftware.com

      Not so. I don't see a way to transpose a matrix for example or add one to another. It's probably lame.

  24. Why don't all cars get 100mpg? by Sam36 · · Score: 0

    I mean really, it is like the 21st century. Why can't cars get better gas milage? I am not an engineer, or very good at physics, but it seems to me that we can do better than this.

  25. Because it is classic by transporter_ii · · Score: 4, Funny

    And why should you change if what you had worked great. I'm not against change, just as long as it is change for the better. If they came out with some new snazzy looking way to write code, but everyone said it sucks...but the old way worked just fine...then freaking stick with the old way. Unless you just don't care about actually making writing code better. Now who in their right mind would want to change something just to make it worse?

    --
    Doctors destroy health, lawyers destroy justice, universities destroy knowledge, religion destroys spirituality
    1. Re:Because it is classic by Anonymous Coward · · Score: 0

      Wow, good question. Who would want to change something good into something not as good and force people to accept it? ... ... ... ...
      SATAN?

  26. ssis by Anonymous Coward · · Score: 0

    Try SSIS you idiot and see how far it gets you with its visual language.

    1. Re:ssis by aix+tom · · Score: 1

      Exactly. Especially when something goes wrong, and basically the only "error message" you get out of SSIS is something along the line of "something went wrong. Dunno what, dunno where, but something did"

  27. Already done for many yrs - MBD by postmortem · · Score: 1

    Model based development.
    You design the model, simulink makes the code.
    http://www.mathworks.com/produ...

  28. Not happening. by Anonymous Coward · · Score: 0

    Translating an algorithm into an abstraction isn't the problem. Functions do that and objects do that, with different levels of fit for different tasks. I don't need to reimplement a linked list, I can just use the linked list object my library provides most of the time. If I do have to implement an algorithm, it should be abstracted into helper functions or objects.

    So a language-agnostic way of representing algorithms in a non-text form seems kind of a weird request. Instead, a non-text language seems more promising.

    The problem there is that text is actually pretty good. I've tried things like Racket and they bug the hell out of me. I like the idea of Smalltalk images - being able to save a VM image of where I currently am in the development and debugging process. But it doesn't seem to work out. Text is actually an incredibly good way of storing programme logic. It's efficient, easily editable in a wide number of applications, easily portable between systems.

    The closest I've seen to a good visual programming tool is something like Yahoo! Pipes. And that's pretty much only good at handling exceptionally trivial data transformations. A good high-level language with well-written libraries would let you turn out much more readable code to do the same thing.

    You can version control text, you can diff text, you can use the Git/svn blame tool to see who fucked things up.

  29. because by niff · · Score: 2

    Just try to write a quicksort routine using any non-text-based programming language.

    Or try to describe a 10 line shell script using UML.

    You'll find out that text-based code is actually quite efficient.

    1. Re:because by Pseudonym · · Score: 1

      Just try to write a quicksort routine using any non-text-based programming language.

      If you find yourself having to write quicksort yourself in any modern language, you're either doing something very unusual or doing something deeply wrong.

      Use your library's sort. There's been more effort put into engineering it than you have time for right now.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    2. Re:because by RedHackTea · · Score: 1

      The problem is if a new, faster algorithm comes out. For sorting, it's pretty much done, so you're right. But for something else, if we have a graphical programming language, we'll have to alter the underlying structure some way. Let's say we have blocks/triangles/etc. How do we represent a quick sort vs a bubble sort vs a merge sort? And is that more efficient than writing text? If we think of a better solution, how are we to represent it? Do visual aids make our mind think of better solutions better than text in all scenarios? Will we have all of the visual objects that we need?

      As a small example, at my current job, we had a SQL query running extremely slowly. I modified part of the query to be cached in Java, and it became 10x faster. If we abstract to visual objects, that SQL query and SQL query+Java will look identical. If we make it less abstract, then eventually we're using visual aids called characters (each letter in the alphabet and mathematical symbols are graphical images technically). Also, I'm able to manipulate everything in such a way that I'm not dependent on someone else to fix the underlying problem. I can debug the base code, and I can make it faster. If it's too abstract, I can't. Why did GameMaker not become the de facto standard for PS/XBOX/PC? Every year, they're pushing the envelope to make it faster and improved.

      Which brings me to my next point, you'll still need some type of textual language to create this graphical language -- to create the underlying base structure.

      Lastly, typing is pretty quick. With a graphical language, I'll have to move objects around with my mouse. With a very complex problem, that could take a lot longer than just typing up some text. For python, I just write: print 'hello' For a graphical language, I'll have to find the print section of objects (through I guess a large menu? or a toolbox?) and drag it onto the screen and then type in 'hello.' I'll need a damn large menu and/or toolbox of objects that I'll have to scan through. Now imagine "print str(2+5/70)" That took me 2 seconds to type. For a graphical language, I'll have to find and drag down print; find and drag down str cast; find and drag down the + image; and find and drag down the / image. Or something like that. It will suck.

      For simple stuff (and for GUI programming), it works. Complex things will be way more inefficient.

      --
      The G
    3. Re:because by niff · · Score: 1

      Quicksort was an example of something simple, that wouldn't be very efficient to implement using a non-text language.

      Anyway, kids nowadays with their fancy languages and 800MB frameworks. They have a ".sort()" routine built in and immediately think that anyone writing those 10 lines to suit their specific situation is doing something deeply wrong. :-)

    4. Re:because by phantomfive · · Score: 1

      A lot of times you can get a better running time using an algorithm that is designed specifically for your dataset. People writing generic algorithms can't take advantage of specific characteristics, no matter how good they are at coding.

      For example, if you know the max and min of your data, you might get a huge speed boost using a radix sort. If your dataset is small (less than ~8 items), Bubblesort will be faster than Quicksort. For Quicksort, you might want to add a randomization step because Quicksort is known to act badly on some orderings (which is why it's an O(n^2) algorithm). Given the specifics of a situation, you can almost always make things more efficient. Whether it's worth the effort is another question, of course, but one that should be taken into consideration.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:because by Pseudonym · · Score: 1

      If your library uses quicksort, and it is anywhere near well-engineered enough, it will eventually drop back to insertion sort (not bubble sort, which is never the right answer to any problem).

      Having said that, nothing that you said contradicts my point: if you are doing something unusual, then you may have to write your own sort, but you're probably not doing anything unusual, and the library sort probably isn't a bottleneck in your application.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    6. Re:because by Pseudonym · · Score: 1

      Hey, I once implemented Shell sort in production code. (It was precisely the right tradeoff, by the way; I had about 100 items to sort, and it was on an 8-bit microcontroller where I couldn't afford to use any more RAM than the space of the items themselves.) That's why I added the caveat "deeply unusual"; that does happen over the course of a typical career.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    7. Re:because by phantomfive · · Score: 1

      Having said that, nothing that you said contradicts my point: if you are doing something unusual, then you may have to write your own sort, but you're probably not doing anything unusual, and the library sort probably isn't a bottleneck in your application.

      True, but your point was only vaguely related to the comment you replied to lol. I don't feel I need to contradict someone every time I post.

      If your library uses quicksort, and it is anywhere near well-engineered enough, it will eventually drop back to insertion sort (not bubble sort, which is never the right answer to any problem).

      If your library is checking for that kind of thing, then it will be inefficient on data that you know won't have any problems with order. You can't be optimally efficient on all kinds of data.

      --
      "First they came for the slanderers and i said nothing."
    8. Re:because by losfromla · · Score: 1

      I think being that you have apparently zero experience with a professional graphical language like labview, you should refrain from what it takes to program in a graphical language. I am sure you are an excellent C/C++ and/or Java and/or Python programmer but, your comments regarding graphical programming point to a fundamental lack of knowledge on the topic. Spend a couple of years with it, suffer through the pain like you did to learn C, then come back and let us know how cool graphical programming is and how you can do just about anything with it and faster than with text. You will arrive at that point if you earnestly strive to become better at it, or you could gripe and not put in the effort required to become good at it.

      --
      Only I can judge you.
  30. You must not actually "get coding" like you say. by darkshot117 · · Score: 2

    You mention that you aren't a programmer, and it's obvious by the questions you ask. There's a reason why all of the attempts to create non-text based programming languages have failed and people revert back to text code. Because text code simply works best. If some day we can plug a computer into our brain to convert our thoughts into computer code, then I'd prefer to write code that way. But until then, the best way for us to get our thoughts and ideas into code is to write it out.

  31. Code is meant to be read. by sixtysecs · · Score: 5, Insightful

    “Programs are meant to be read by humans and only incidentally for computers to execute”. — Donald Knuth http://stackoverflow.com/quest... http://www.codinghorror.com/bl... http://www.codinghorror.com/bl...

  32. PureData by jblues · · Score: 2

    There are some graphical programming languages - PureData is one. Quick summary: Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically, without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. I used it recently on a project and really enjoyed it. (Used it to remix the Australian Chamber Orchestra in real-time on iPads). Other folks are doing fantastic things with it too - check out the Rj Voyager App. Although Pd is a turing complete language, I wouldn't want to write anything but specialized applications with it. Text-based OO is just so fluent and fast.

    --
    If it acquires resources on instantiation like a duck, then its a shared_ptr<Duck>
    1. Re:PureData by Guspaz · · Score: 1

      And therein lies the problem. PureData probably works great for a few specific use cases, but ultimately... PureData is written in C.

      Don't get me wrong, that's not a problem. As I said, PureData isn't intended to be general purpose like that. But the fact that visual programming languages are never self-hosting (as far as I know, anyway) illustrates the reason why they're not a replacement for text-based languages.

  33. Try it, you'll hate it by Anonymous Coward · · Score: 0

    I inherited a large program written in LabView. It is a visual programming environment that is good for making virtual instruments. However, it was, in my experience, very hard to document, search, etc. Making even small modifications was impossible and we abandoned changing it. Instead we wrapped the parts we couldn't replace with C code and called the C from a scripting language. I have also had experience with other very large code bases written in cryptic languages such as Fortran 4. It was much easier to find out where to make changes. Tools like grep, diff, etc., all apply. Maybe this is because I already know text tools, but I think there is a reason that those kind of visual programming environments haven't really caught on.

  34. There is programming without code. by darkwing_bmf · · Score: 2

    Programming is nothing more than telling a machine what to do. You can tell your car to start by turning a key. You can tell the light to switch off by flipping a switch. You can even etch your own circuit board without typing anything. However, using actual words to code is much easier than designing an entire system from chemical and mechanical processes. That's why we have programming languages. Despite popular perceptions, those languages significantly simplify complex tasks.

    1. Re:There is programming without code. by Todd+Knarr · · Score: 4, Interesting

      Actually you can't tell your car to start by turning a key. Turning the key starts a complex series of interactions between the fuel pump, fuel-injection and air intake systems, ignition system and starter motor to get the engine turning over and then to manage disengaging the starter motor and switching from battery to alternator power once the motor's running until you let the key go from Start back to Run. You can ignore all that and talk only in terms of the key being turned if all you want to do is drive the car, but if you need to say diagnose why the car won't start or figure out why it's running rough and has no power you need to delve into the complexity behind just turning the key. You can no longer ignore it and abstract it away. That's the key: not whether it's code or a mechanical system, but the degree of abstraction involved. Most programming languages are seen as complex because they dive below the level of "start the car" and work at the level of "OK, how exactly do I design the drivetrain of the starter motor so it'll rotate the engine crankshaft until the crankshaft starts turning faster than the starter motor is, then automatically and instantly disengage so the engine won't strip the starter motor by trying to turn it faster than it's safe to?" (and that's just one small part of what's needed to make turning the key start the car, and not even the most complicated part).

    2. Re:There is programming without code. by darkwing_bmf · · Score: 1

      Thank you Mr. Car Analogy Person. But us programmers are simple people. We just tell the machines what to do. Other Engineers are responsible for making the machines.

    3. Re:There is programming without code. by Anonymous Coward · · Score: 0

      By the same token, when you call printf() in reality there are several layers deep of processes that are ultimately responsible for getting the text printed in a console, yet you wouldn't say that the only part of programming is at the lower level, or we would be still coding cpus in binary or by rewiring them.

      So yes, every order that you give to a system at some level can be correctly called "programming that system".

    4. Re:There is programming without code. by Todd+Knarr · · Score: 1

      Same difference. To the user, you're the guy who tells the system what to do by writing the program that tells the hardware what to do. If you can't handle being the engineer responsible for making the machine, you aren't a programmer.

    5. Re:There is programming without code. by david_thornley · · Score: 1

      Sure. On the other hand, we're responsible for all the details necessary to get our programs to work, just like an automotive engineer might be responsible for all the things that happen when I turn the key.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  35. Relevant xkcd by Anonymous Coward · · Score: 0

    Panel #2
    http://xkcd.com/568/

  36. not so bad... by Anonymous Coward · · Score: 0

    I started coding using Pure Data and Max/MSP over a decade ago, and have built large and complex pieces of software with them. They are great for prototyping and communicating ideas to those unfamiliar with text based code. They also allowed text based code inside the flow chart with little built in python and java widgets, with their native objects are written in C. However, they both hog resources and their code is barely portable from one version to the next. This is the reason why they essentially fail in the long run.

  37. Dataflow languages? by fatphil · · Score: 1

    They're inherently graphicalisable, as long as all of the building blocks fit inside nice small rectangles.

    Having said that - ``|'' and ``>'' are graphical. So probably all shell programming is in part visual.

    Having said that, that the fuck am I on?!?!?!? I write perl, and perl looks like ASCII art, it certainly doesn't look like text.

    Mod down story, story bollocks.

    Fuck beta.

    --
    Also FatPhil on SoylentNews, id 863
    1. Re:Dataflow languages? by Darinbob · · Score: 1

      Dataflow languages were text based though. Generally the graphical part was just a subset of the operations, you still needed to do things like arithmetic which were better spelled out textually. And the actual breaking things down from the program to the dataflow computers was done by a compiler so that you did not need to specify explicitly what the data flow would look like.

      And any modern day superscalar computer is essentially a dataflow computer.

    2. Re:Dataflow languages? by fatphil · · Score: 1

      Not all.

      I've seen some wonderful audio-processing (functional/mathematical) code which was entirely software in implementation, but entirely graphical in design. You could literally build your own Yamaha DX7 (pretty much all pads, almost every one had been reverse engineered/mimicked to within indistinguishability) from just drag-and-drop boxes and a single frequency input (dependent on the keypress, obviously).

      I wish I'd written it myself, I'd been thinking about such a design for about a decade. Some Finn (IIRC, don't remember the name) beat me to it (no surprise really, my inertia is high). Respect to him.

      And fuck slashdot beta

      --
      Also FatPhil on SoylentNews, id 863
  38. Room for future expansion by j-stroy · · Score: 0

    Leaving room for this kind of design in our architectures is a great idea.. for now tho, it would appear as whitespace.

    1. Re:Room for future expansion by Darinbob · · Score: 1

      We need large margins in all our programing languages, to provide a place for drawing doodles or jotting down notes. The older printouts of famous programs all used to have nice marginalia which is so rare these days.

  39. Because the alternatives are worse by umafuckit · · Score: 4, Insightful
    There are "visual" (non-text) languages out there and they're not very nice. A major proprietary one is LabVIEW, which mainly used for data acquisition and instrument control (hence the name). This is what the code might look like. Developing small applets in LabVIEW is very fast, but things get horrible as the project gets larger. LabVIEW issues include:
    • Hard to comment
    • Very easy to write bad code (particularly for beginners)
    • Version control is awkward
    • Clunky to debug because programs are hard to follow.
    • Hard to modify existing code
    • Coding becomes an exercise in placing the mouse in just the right places and finding the right little block.
    • As a beginner you waste lots of time trivialities instead of actually learning to code.
    • Hard to learn from a book or even from reading somebody else's code.
    • Documentation is crappy.

    Graphical languages are still programming. Syntax errors don't go away, they just manifest themselves differently. I don't think graphical languages really solve any problems, they just create new ones. That's why they haven't caught on.

    1. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      You forgot about that fact that it is all but impossible to find out what is different between two versions of a program when it is written in a graphical language.

    2. Re:Because the alternatives are worse by Megane · · Score: 1

      And the same people are also too retarded to understand source code management (What's a git?), so they can't even understand an entire dimension of just how shit LabView is.

      Where I work we have a factory floor that needs equipment to test products after they are manufactured. There are a couple of LabView-based testers. They need an entire PC with monitor and keyboard and a full install of Windows, and then you have to add a bunch of I/O boxes. And it has multiple windows doing stuff.

      Meanwhile, I made a few testers based on re-purposing one of our embedded controllers (ARM Cortex M3 with only 64K of RAM!). They have a simple UI based on an actual product of ours (without a bunch of GUI controls all over the place, because there's no room for that crap on a 3" QVGA screen), and the whole thing takes up about half a cubic foot, so they can easily put it on a shelf when they're not using it.

      There is one thing the LabView stuff can do that mine absolutely can't, and that is that one of them tests multiple boards at the same time for a test that takes a minute or two. (These are all tests for different products.)

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    3. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      I use LabVIEW daily for test and measurement. I consider myself pretty good, plan to get the top level certification this year. Hope it helps to have a viewpoint of a graphical user here.

      First off, the code picture you linked to is terrible. If one of my developers wrote that I'd send them back to school, it breaks just about every LabVIEW coding standard out there.

              Hard to comment - You can stick comment text blocks anywhere you want and the latest version has searchable hashtags.
              Very easy to write bad code (particularly for beginners) - Fault of the user, not the language. The difference between beginners in LabVIEW and text is that the LabVIEW program has a decent shot at running, the text will just fail to compile.
              Version control is awkward - Agreed, but getting better each version. SVN and a few others are supported, Pro license has a diff tool and code analyzer.
              Clunky to debug because programs are hard to follow. - Couldn't disagree more. Debugging is extremely powerful once you learn the environment. Write your code correctly and you can instantly debug individual modules or sections at any time.
              Hard to modify existing code - Not if it's written correctly, just like anything else.
              Coding becomes an exercise in placing the mouse in just the right places and finding the right little block. - As opposed to finding the exact string of text that will compile?
              As a beginner you waste lots of time trivialities instead of actually learning to code. - Graphical and text are different. Don't confuse lack of familiarity with difficulty.
              Hard to learn from a book or even from reading somebody else's code. - I'm mostly self-taught. Don't know how you learn a language other than doing anyway.
              Documentation is crappy. - ?? Every function is fully documented internally and there's very strong community forum. Your LabVIEW license includes free support from NI application engineers, who are very good. ...That's why they haven't caught on. - NI is a $1.2B/year company, just behind Red Hat. Not exactly a fringe market. Once you know what to look for you see LabVIEW screens *everywhere*.

      LabVIEW is great for test and measurement, which is what it is designed for. I wouldn't use it for airplane control systems or the Obamacare website but it excels at its design intent. I guarantee I can write drivers for physical test equipment in LabVIEW faster than any text language.

    4. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      Text based languages are complete shit. The worst part is that it's used by people who are too retarded to code in LabView, so you KNOW they're going to fuck everything up from the start.

      Fixed that for you.

    5. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      WRONG

      You can diff in labview just fine.

    6. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      Labview is one of the easiest programming languages to debug. You can watch the program flow. Probe any variable. Set break points on anything.

      By contrast GDB is a piece of shit. Break points stop where ever they fell like. You can can't probe variables for their values. Just try a get the value from an array without needing to do printf's and pointer casting.

    7. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      Sounds just like SSIS (SQL Server Integration Service).

    8. Re:Because the alternatives are worse by umafuckit · · Score: 1
      I think LabVIEW is just as "hard" as text-based languages. The difference, however, is that it allows you to do more stuff with less experience. As a result, a beginner can end up producing shit code very easily.

      I know several smart people who can code in text based languages but, for some weird reason, decide they have to use LabVIEW for data acquisition. Now, against my will, I have to learn the stupid thing. Fuck me, it's an annoying language. The only thing I can see it being good for is quickly building a GUI (which I normally avoid). However, the thought of building a large application in it makes me shudder. The first thing I plan on doing is figuring out how to embed text based code into it. I really hope it's possible.

    9. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      FYI, I'm a National Instruments employee, and I modded you +1 because I think you have some valid constructive points regarding version control, mouse control, and beginner "control", and I want someone who works on LabVIEW (I don't - I'm a hardware developer) to see your post and take action on those things. I disagree about debug and commenting, both of which I find relatively easy as a user of LabVIEW once or twice every few years. (I haven't used any version of LabVIEW newer than 2009, which is what I installed the last time I bothered to do so, as I generally don't need to use it for my job.)

    10. Re:Because the alternatives are worse by Osgeld · · Score: 1

      in my world PC's are very handy, course we are testing up to 54 individual units on a panel in parallel using all sorts of NI DAQ's and 488 systems and Cognex video systems. In our company time is critical cause we are small but expanding really fast, so if I can order a 150$ off lease dell optiplex, slap some cards in it and be done that's what I am going to do.

      never once does it ever touch lab view, its all written in a common C# and the test bases are wired to the max so any fixture can be slapped on any base. Lab view consumes a core 2 like it was a 486 and is impossible to debug due to its flowchart weirdness. C# phht its like any other app, add the needed resources and within an day a new product is in the test kiosk, calibrated, debugged, certified and ready to use by a temp.

    11. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      Hard to comment
      Double click where you want a comment in the code and write a comment

      Very easy to write bad code (particularly for beginners)
      So are other languages

      Version control is awkward
      Not if you do it properly

      Clunky to debug because programs are hard to follow.
      Only if you write them badly. Just like any other language.

      Hard to modify existing code
      No it's not.

      Hard to learn from a book or even from reading somebody else's code.
      Not really.

      Documentation is crappy.
      Documentation is fine.

    12. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      "Where I work we have a factory floor that needs equipment to test products after they are manufactured. There are a couple of LabView-based testers. They need an entire PC with monitor and keyboard and a full install of Windows, and then you have to add a bunch of I/O boxes. And it has multiple windows doing stuff. "

      You can have a no PC, no windows labview stuff too. Someone just did it that way.

    13. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      Upvote parent to a score: 6, please.

    14. Re:Because the alternatives are worse by toddestan · · Score: 1

      I know several smart people who can code in text based languages but, for some weird reason, decide they have to use LabVIEW for data acquisition.

      Part of that may be because they are using National Instruments' data acquisition hardware, and naturally LabView plays nicely with it. NI offers other options, such as LabWindows/CVI (which is C-based) and Measurement Studio which are essentially a bunch of libraries for Visual Studio that support NI's hardware and add some UI widgets (like plotting). Certainly worth looking into if you want to use NI's hardware but would prefer to not use LabView.

    15. Re:Because the alternatives are worse by umafuckit · · Score: 1

      Indeed, everyone says that LV "plays nice" so it should be used. Yet for many tasks you can use MATLAB for the job, which is easier and much more pleasant. I don't yet understand in what ways LV plays nicer with NI hardware than does MATLAB.

      Thanks for the links. I was aware of LabWindows but not Measurement Studio. My C needs polishing but, TBH, I'd much rather invest the effort into doing that than into learning LV. At least C is a transferable skill. Hopefully in the future I'll be able to do that, but in the short term I have to learn LV because that's what's being used in my environment right now.

    16. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      I find it's generally computer scientists / software engineers that bash LabVIEW, without really knowing what it is for. Yes, if you apply your text-based paradigms to writing LabVIEW programs, you will get a bad result. I have personally seen some horrendous LabVIEW programs where someone (who quite clearly would rather be coding in C) has set up some godawful bit manipulations using transformations to and from various integer representations while multiplying by a variety of magic numbers, rather than using a boolean array, or (better yet) a well-labelled Control or Cluster object. Incidentally, this is how commenting is supposed to be achieved in LabVIEW - there are ordinary comments available, but LabVIEW epitomizes the approach that if you have to comment something, you didn't express it clearly enough to begin with. Well-written LabVIEW code is concise, well-abstracted and extremely easy to follow. You can even label your conditionals / loops - forget trying *that* in Java.

      The fact that all controls are labelled makes it very easy to name variables - no more 'FudgeFactorForOptimizationStep' or similar. You can literally *see* the variables you are using, and interact with them in real time. Interaction between various events is well-defined (as opposed to digging through Form1.h to find where the hell the 'OnMouseButtonClick' function was defined and what it does)

      If you are trying to quickly construct an interface to some hardware, there is no better alternative. Almost all scientific hardware comes with LabVIEW drivers, and if it doesn't, wrapping dll functions is trivial. I'd say at least 50% of the software I get from hardware manufacturers to control their products is written in LabVIEW (judging by the distinctive buttons), and the stuff that isn't written in LabVIEW always seems to be buggier, due to the extensive re-invention of the wheel taking place.

      In short, you should always use the best tool for the job, rather than espousing a one-size-fits-all approach. You want to do lots of array manipulation and plot simulation results? Use Matlab. You want to interface with hardware and provide intuitive user interfaces? Use LabVIEW. Simulate complex dynamic systems? Simulink. Implement high-speed optimized algorithms? Use C. Notably, you can write awful code in any of the above systems. But if you do, it's usually because you don't understand the programming paradigm you were supposed to be using.

    17. Re:Because the alternatives are worse by ananamouse · · Score: 1

      I use LabVIEW every day. I started with Fortran on mainframes and mini, then basic on the C= 64, then basic on PCs and a stint with IDL on Solaris. Fifteen years ago I worked in a lab that had Labview 2 on Mac, and followed it on to the PC. I struggled with LabVIEW at first but when I discovered that I could highlight execution and figure out where the 'off by 1' logic was killing me I was hooked. When I learned how to scoop up a bunch of code and turn that into an icon with inputs and outputs I realized I could never go back. While I started off controlling instruments I now use it for everything including processing images or just simple filters.

      All of your criticism have faded over time except the legitimate criticism that it is too expensive. That price makes the barrier to entry way too high and the number of users available to ask help from below critical mass. National Instruments gives the hardware drivers away free and charges for programming

    18. Re:Because the alternatives are worse by umafuckit · · Score: 1

      All of your criticism have faded over time

      I wish I was convinced, but I'm using it right now and it's no fun. Criticisms may be faded compared to earlier versions but, IMHO, they're still present.

      When I learned how to scoop up a bunch of code and turn that into an icon with inputs and outputs I realized I could never go back.

      Back to what? Scooping up a bunch of text and writing "function blah()" above it? :) The only thing LabVIEW is easier for is quickly producing a GUI.

    19. Re:Because the alternatives are worse by Anonymous Coward · · Score: 0

      >>When I learned how to scoop up a bunch of code and turn that into an icon with inputs and outputs I realized I could never go back.

      > Back to what? Scooping up a bunch of text and writing "function blah()" above it? :) The only thing LabVIEW is easier for is quickly producing a GUI.
      Yes, absolutely. When I look at the code I wrote to draw contour maps for instance I just cannot follow it. I really need to turn on the highlight execution at times to see what is happening when. But that is just me. If you are different that is not bad, just different.

      I still have to wade into things like producer consumer and state machines. I am not a super guru wiz and really don't want to be. I write my own data acq out of self defence. However:

      The other day some package did statistics and put the data out as 1,1,x(1,1)/n 2,1,x(2,1),/n 3,1,x(3,1),...i,j,x(i,j)/eof [Each value on a separate line]
      I needed x1,1/tab x1,2/tab x1,3/tab...x1,j/carriage return/line feed x2,1 /tab ..... [Just the values in rows and columns]
      I made a LabView program to do it. It did not take long and I can follow what is going on.
      Most people would have used sed, grep, and/or awk but I did it in LabVIEW because I goof up things like off by 1 and for me when I can see the logic i work better. But, if something else works for you no problem.

      I am very fortunate to have corporate access to the latest and greatest. If I had to shell out for it I would be doing everything in G77 and Excel macros.

  40. Because you don't know the algorithm by iMadeGhostzilla · · Score: 1

    In my experience often I start with what I think is the algorithm that will solve the problem, and then I discover that there are nuances in the real world that make my original algorithm/idea/flow inadequate, and that requires refinements, iteratively, until I get the right algorithm. Now this kind of nuanced tweaks requires very nuanced tools, and nothing is more suitable than text. Certainly some pictures with arrows wouldn't cut it.

    On a related note, I checked to see what that beta thing was about and I instantly hated it. It has as much appeal as seeing a mobile version of a site on my HTML5-capable phone.

  41. Because by bhcompy · · Score: 1

    Because Dreamweaver and Frontpage were awful and no one dares revisit it

  42. Wow, what a brilliant idea by sunking2 · · Score: 2

    If someone ever comes up with such a thing I have the perfect name for it. MatrixX or perhaps Matlab.

  43. What about the slashNOT beta? by Life2Death · · Score: 0

    Its so rad and DIGG like, but who cares? Not the community! FUCKERS

  44. The problem is not... by MpVpRb · · Score: 3, Insightful

    ..text vs "something-else-that-isn't-text"

    The problem is complexity

    Programs are getting too complex for humans to understand

    We need more powerful tools to manage the complexity

    And no, I don't mean another java framework

    1. Re:The problem is not... by Rufty · · Score: 3, Funny

      VB#.NET++

      --
      Red to red, black to black. Switch it on, but stand well back.
    2. Re:The problem is not... by Anonymous Coward · · Score: 0

      You know what's good to get a grip on complexity? Visualization.

      There are total issues with 'writing' code visually, but that does not mean that we cannot benefit from visualizations of code we have written.
      For example, somehow visualizing the way all the code calls itself and how data is referenced.

      I've always had a fairly physical conception of the data structures I use in my code and how I process and relate to those. If there were clear visualizations maybe I could see more easily if I'm breaking a pattern or doing something stupid. It may also give clues on how to grow, evolve, or refactor in more harmonious ways.

      Also, as an aside, I've always liked programming languages and this is an old topic.. I've always figured the 'graphical' 'languages' will turn out to be ways to manipulate complex living objects that we can visualize in meaningful ways that we modify with commands (textually like a prompt, or even contextually with mouse clicks in menus) that are validated and interpreted to bring about their modification to the object. Everything is tracked and replayable and reversible. The objects you are modifying are real data and processing elements that have their own identity and are a part of a larger living evolving computation environment.

    3. Re:The problem is not... by Anonymous Coward · · Score: 0

      Similar to the relation of a DDL and DML in a DBMS.

      Visualization with pictures is one view, visualization with text is another view. A view on what you ask?

    4. Re:The problem is not... by XcepticZP · · Score: 1

      Programs are getting too complex for humans to understand

      We need more powerful tools to manage the complexity

      You are the tool. We are the tools. Our job as programmers is to "manage complexity". To take a complex problem and mangle it away into a layer of abstraction so that we can comfortably work with it. Of course, some programmers take that too far and make 50 gazillion layers that shouldn't be there, but that's a different discussion entirely.

    5. Re:The problem is not... by Anonymous Coward · · Score: 0

      The problem is complexity
      Programs are getting too complex for humans to understand

      Yeah, show me how this APL program for Conway's game
      life{1 .3 4=+/,1 0 1.1 0 1.}
      (The non-ASCII APL glyphs can not be displayed here, but I'm sure they would be in Beta.)
      can be written in a "visual language"

    6. Re:The problem is not... by Skreems · · Score: 1

      Programs are getting too complex for humans to understand

      That's just silly. I have yet to see a programming problem that couldn't be made to wind up looking dirt simple by factoring out abstractions and reusable pieces. The real problem is effort and attention span. A lot of people see a complex problem and give up, instead of looking for the first black box sub-system they can factor out.

      --
      Slashdot needs a "-1, Wrong" moderation option.
      The Urban Hippie
  45. Are you kidding? by agapeton · · Score: 1

    Seriously. None of us wants to draw out expression trees for every single thing we do. Why not just get rid of ALL math notation while we're at it!? Not not kill all language and communicate in internalized thought-vectors? Seriously, are you kidding me? Is it April 1st somewhere? Going for the troll of the year award?

  46. Not one layer, several layers. by Anonymous Coward · · Score: 0

    If you think that the current state of programming languages is only "one layer of abstraction from assembly code", then you need to pick up K&R and learn some C.

  47. It is a symptom of the industry and human nature by maple_shaft · · Score: 3, Interesting

    There have been a number of attempts at making coding easy enough that non engineering types will be able to conceive their requirements in software then communicate these through a tool, usually in a visual manner and turns this into functional software. This has come in many different forms over the years, Powerbuilder, FoxPro, Scratch, BPEL, etc...

    The fundamental flaw is one of the software development industry, especially when it comes to line of business applications. Analysts writing requirements have been and always have been an inefficient and flawed model as most requirements documents are woefully incomplete and tend to not capture the true breadth of necessary functionality that ends up existing in resultant software. Analysts are business oriented people and they will think about the features and functionality that are most valuable and tend to miss or not waste time on what are deemed as low value or low risk items. Savvy technical folks have needed to pick up the slack and fill in the gaps with non-functional requirements (Architecture) or even understand the business better than the analysts themselves for quality software for the business to even be realized.

    I have seen this song and dance enough. True story, IBM sales reps take some executives to a hockey game, show them a good time, tell them about an awesome product that will empower their (cheap) analysts to visualize their software needs so that you don't need as many (expensive) arrogant software engineers always telling you no and being a huge bummer by bringing up pesky "facts" like priorities and time. So management buys Process Server, snake oil doesn't do it justice, without consulting anybody remotely technical. Time passes, and analysts struggle to be effective with it because it forces them to consider details and fringe cases. Software engineers end up showing them how to use it, at which point it just becomes easier for the software engineer to just do the work instead of holding hands and babying the analysts all day. Now your company is straddled with a sub par product that performs terribly, that developers hate using, that analysts couldn't figure out and that saved the company no money.

  48. The best way to find out . . . by Mitchell314 · · Score: 1

    . . . is to attempt to make a large project in a visual language yourself.

    --
    I read TFA and all I got was this lousy cookie
  49. Command line vs GUI by asmkm22 · · Score: 1

    Same deal with command lines and GUI's. A GUI may seem easier to learn and use, and it is for a lot of things, but you still have to use the command line in order to start getting into the more powerful features, like piping. Here's a quick example for Windows users:

    Easiest way to see your IP address?

    A. Depending on your OS version, you might be able to just double-click the connection icon (if it's there) and then click to see the details. Or you might get taken to the Network and Sharing Center where you have to dig around for the device adapter.

    -or-

    B. You can hit Win+R, type "cmd" and hit enter. Type "ipconfig" and view everything there. If you need details, you can do "ipconfig /all". Or, you could just type:

    ipconfig | find "IPv4"

    Option B might seem more complicated, but it's faster, more consistent, and only takes a few times to get used to.

    1. Re:Command line vs GUI by Anonymous Coward · · Score: 0

      Same deal with command lines and GUI's. A GUI may seem easier to learn and use, and it is for a lot of things, but you still have to use the command line in order to start getting into the more powerful features, like piping. Here's a quick example for Windows users:

      Easiest way to see your IP address?

      A. Depending on your OS version, you might be able to just double-click the connection icon (if it's there) and then click to see the details. Or you might get taken to the Network and Sharing Center where you have to dig around for the device adapter.

      -or-

      B. You can hit Win+R, type "cmd" and hit enter. Type "ipconfig" and view everything there. If you need details, you can do "ipconfig /all". Or, you could just type:

      ipconfig | find "IPv4"

      Option B might seem more complicated, but it's faster, more consistent, and only takes a few times to get used to.

      I don't think your IP address example is particularly relevant. I just double-click my custom "network info" tool which is essentially the same output as ipconfig, but shown in a window. It's far easier than "win+R, cmd, ipconfig /all". The fact that Windows fails to include such a tool is baffling, but it isn't an argument of GUI vs. command-line. Everyone to whom I've given my "network info" tool uses it instead of the command line. Why? Because it gives the same info and is far faster and easier to run (assuming it's somewhere convenient on the start menu or desktop). And that's the OP's point. If using a graphical interface can be faster and easier, why aren't programming languages making better use of them?

    2. Re:Command line vs GUI by Darinbob · · Score: 3, Funny

      But if you have such a tool, you still have to find it. I can type ifconfig faster than you can find the tool (and of course, ifconfig is superior to ipconfig but that's another story).

      Now is the time when someone says "but I just pin it to the taskbar so it's easy to find". Then someone else responds "a real power user would use Windows 8 and just start typing out I P C O until the program popped up and you could click on it." Then someone else would say "I'm on a Mac you ignorant lout." And someone else would say "I hate this BETA!"

  50. Alternatives? by rossdee · · Score: 1

    why are we still writing text based code?"

    Have you ever tried programming in APL ?

    (And then tried reading the code later?)

  51. Re:The more simple you make it the less complex it by garyebickford · · Score: 5, Interesting

    This view is belied by the graphical tools used to design and layout hardware and chips. Higher level languages in particular are largely based on connecting the data flow between various pre-defined blocks or objects - function libraries.

      I actually built a primitive graphical Pascal pre-processor back in the late 1980s, which used the CMU SPICE circuit board layout program. Since the output of the program was text based, it could be processed into Pascal code. The model I used was that a function was a 'black box' with input and output 'pins', but also could be designed itself in a separate file.

    I never actually finished it, but it was pretty workable as a programming paradigm, and opened up some new ways of looking at programs. For instance, a 3-D structure could be used to visualize formal structure (function calls, etc.) in one axis, data flow in another.

    Also, the Interface Builder for the NeXT machine was more-or-less graphical, IIRC only 2-D. It made for very fast prototyping of a new user interface, and the 'functional' code could be put in later. (I saw a former schoolteacher, who had never used a computer until a few months before, demonstrate creating a basic calculator in Interface Builder in under 15 minutes. It worked, first time.)

    I think the real issue is in large part a chicken-and-egg problem. Since there are no libraries of 'components' that can be easily used, it's a lot of work to build everything yourself. And since there is no well-accepted tool, nobody builds the function libraries.

    Looking at this from a higher level, a complex system diagram is a visualization that could be broken down to smaller components.

    In practice, I believe that the present text-based programming paradigm artificially restricts programming to a much simpler logical structure compared to those commonly accepted and used by EEs. For example, I used to say "structured programming" is essentially restricting your flow chart to what can be drawn in two dimensions with no crossing lines. That's not strictly true, but it is close. Since the late 1970s, I've remarked that software is the only engineering discipline that still depends on prose designs.

    --
    It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  52. At a high level of abstaction will work-UFKC ATEB by mrpacmanjel · · Score: 1

    This kind of thing is okay for simple tasks but can get complicated very quickly.
    Maybe at a high level of abstraction this works but the inner details has to be coded in text.

    UFKC ATEB https://scontent-b-lhr.xx.fbcd...

  53. It's because you get bogged down by Todd+Knarr · · Score: 4, Informative

    So-called "visual programming", which is what you're wanting, is great for relatively simple tasks where you're just stringing together pre-defined blocks of functionality. Where you're getting bogged down is exactly where visual programming breaks down: when you have to start precisely describing complex new functionality that didn't exist before and that interacts with other functionality in complex ways. It breaks down because of what it is: a way of simplifying things by reducing the vocabulary involved. It's fine as long as you stick to things within the vocabulary, but the moment you hit the vast array of things outside that vocabulary you hit a brick wall. It's like "simplfying" English by removing all verb tenses except simple past, present and future. It sounds great, until you ask yourself "OK, now how do I say that this action might take place in the future or it might not and I don't know which?". You can't, because in your simplification you've removed the very words you need. That may be appropriate for an elementary-school-level English class where the kids are still learning the basics, but it's not going to be sufficient for writing a doctoral thesis.

    1. Re:It's because you get bogged down by Darinbob · · Score: 1

      So it's like writing in Java and discovering that you have to do something that's not in a Java framework. At which point the programmer has to actually LEARN Java.

    2. Re:It's because you get bogged down by khchung · · Score: 1

      So-called "visual programming", which is what you're wanting, is great for relatively simple tasks where you're just stringing together pre-defined blocks of functionality.

      THIS. The same reason why picture books only works for story for pre-school kids.

      When the thought one wish to express reaches a certain level of complexity, it went beyond what a 2D image can express.

      --
      Oliver.
  54. Look at RpgMaker by elysiuan · · Score: 4, Informative

    Kind of a weird example but RpgMaker is a tool that lets non-programmers create their own RPG games. While there is a 'text based code' (ruby) layer a non-programmer can simply ignore it and either use modules other people have written or confine their implementation to the built in functionality.

    Now look at the complexity involved in the application itself to enable the non-programmer to create their game. Dialog boxes galore, hundreds of options, great gobs of text fields, select lists, radio buttons. It's just overflowing with UI. And making an RPG game, while certainly complex, is a domain limited activity. You can't use RpgMaker to make a RDBMS system, or a web framework, or a FPS game.

    The explosion of UI complexity to solve the general case -- enable the non-programmer to write any sort of program visually-- is stupendously high. WIth visual tools you'll always be limited by your UI, and what the UI allows you to do. Also think of scale, we can manage software projects with text code up to very high volumes (it's not super easy, but it's doable and proven). Chromium has something like 7.25 million lines of code. I shudder to think how that would translate into some visual programming tool.

    I'm not sure how well it would scale

    1. Re:Look at RpgMaker by Anonymous Coward · · Score: 0

      RpgMaker is a steaming pile of dung. After futzing around with it for several hours, I would assert that even make RPG games is a bit of a stretch for it.

    2. Re:Look at RpgMaker by Anonymous Coward · · Score: 0

      You can't use RpgMaker to make a RDBMS system

      Is that a challenge? What's the prize if I can?

    3. Re:Look at RpgMaker by Anonymous Coward · · Score: 0

      "Kind of a weird example but RpgMaker is a tool that lets non-programmers create their own RPG games. "

      With all of them having failed simple tasks like enabling VSYNC because 'the engine can't do it'.
      I almost cried when i saw a 2D RPG being teared to shreds...

    4. Re:Look at RpgMaker by Anonymous Coward · · Score: 0

      You can't use RpgMaker to make a RDBMS system, or a web framework, or a FPS game.

      Ooh, sounds like a challenge :P

      On topic, I actually made a platformer in RM2K back in high school. Wanting more flexibility was actually what led me to learning code :D (though the looks I got showing sketchy CPU rendered SDL apps after some basic RPGs my mates actually liked at the time, they thought it was a huge step back :P)

      edit: captcha "repents", maybe slashcott is getting to them ;)

  55. Graphics doesn't scale well by saccade.com · · Score: 2
    Graphical programming languages were a popular PhD topic 25-30 years ago. You can find them today in systems targeted at kids or non-technical users. But you won't find them anywhere near serious software development. Text is an incredibly dense and powerful medium for communicating with machines. The problem with graphics for programming is they do not scale well. Consider a moderately complex problem, solved in, say, several thousand lines of code. The same thing expressed graphically starts using dozens of pages (or bubbles, or nodes or whatever graphics) to express the same thing. It gets ugly quick.

    Several years ago, I did the side by side experiment of expressing the same non-trivial digital circuit (a four digit stopwatch with a multiplexed display) as both a schematic diagram, and as text with Verilog. The graphic (schematic) version was much more time consuming, and *much* harder to modify than the text-based Verilog. It became very clear why digital circuit designers abandoned graphics and switched text for complex designs.

    1. Re:Graphics doesn't scale well by tftp · · Score: 1

      It became very clear why digital circuit designers abandoned graphics and switched text for complex designs.

      HDL compilers also do a better job at optimization and detection of problems. A schematic on a sheet of paper will not tell you that some of your inputs may be driven by HiZ outputs, or that two connected HiZ-capable outputs will be active at the same time. A simulation of your code will find that.

    2. Re:Graphics doesn't scale well by Anonymous Coward · · Score: 0

      You are correct about the scaling thing, but for simple things graphical languages can be good. They aren't used for PC programming, but they are used elsewhere in professional environments.

      Labview is used at data aquisition and process control all the time and PLC guys use FBD, Ladder and SFC. Most non IEC standard PLC environments basically only support FBD and/or LD and IL (instruction list, assembly language). IEC 61131-3 environments also support SFC and ST(a basic type of text language). Some also add CFC and nowdays you can use C and C++ in some environments.

      The graphical languages are good for the logical stuff and if you have the ready made function blocks, also for more complicated stuff like communicating with servos and such, but if you need to do that communication function block yourself, it's better to use ST, C or C++ to make the function block and then use it in the graphical language.

      By combining the use of graphical and text, you can make stuff faster and easier to understand. Unfortunately even the ST seems to be difficult to use in most environments, but that shit will hopefully die pretty soon.

      Your simple experiment is only a one time test with you having how much experience in the graphical programming? Just saying that you can't really draw any conclusions about the whole concept of graphical programming with one test in one environment.

      Yes, i think the best is a combination of both. With graphical you can make the logic, with text you can make the data handling functions.

      Also for mathematics, graphical would be sooooo much better. It's hell trying to figure out what a simple mathematical expresion does, when it's all in one line (dividing it into many lines does not help, unless you use temporary variables) and you have who knows how many parenthesis which you can't tell which belongs to which simpler expression and has long variable names. Unfortunately the only tool i have found for mathematics is dragmath (it can convert the graphical mathematics into text like latex or you can define your own language, unfortunately not the other way around, but atleast it'd be easier to create that math), but it still had few annoying bugs and it's pretty much dead now.

    3. Re:Graphics doesn't scale well by anomalous+cohort · · Score: 1

      As someone who has worked http://www.dynamicalsoftware.c... on such systems in the past, I concur. Graphical programming languages are not used by serious engineers. It is easier to express a complex algorithm textually than by any manner of drag-and-drop manipulation of icons. My take on the OP's attitude is this. Programming is too hard. It should be easier. The OP is obviously not a good programmer because, if they were, then they would realize that what is hard about programming is not the mouse vs the keyboard. Rather, it is the abstract cognitive ability to analyze a problem into smaller, more manageable parts then synthesize a solution up from those parts into a system that is accurate, reliable, consistent, and performant. I first heard this programming is too hard sentiment in the 90s. Frankly, I can't help but label this as just another sense of entitlement by a generation who has not had to suffer from anything other than the existential angst of their own mediocrity. Hard words, I know, but there you have it.

  56. vvvv by Anonymous Coward · · Score: 0

    Hi this a nice visual programming tool (just for Windows...) http://vvvv.org

  57. Re:if you "get coding" so well, why arent you codi by khchung · · Score: 1

    You may believe that you 'get code'. But clearly you do not.

    This was also my first thought when reading the summary. His question already proved that he doesn't "get code" at all. \

    --
    Oliver.
  58. Visual Programming Has Been a 20-Year Failed Exper by CalenMartinD.Legaspi · · Score: 2

    Visual code generators have existed for two decades, most famous is the Rational product. I've never met a developer or read an unbiased article claiming that the code generators have helped. Usually they say it just leads to ugly code and high maintenance overhead to maintain the diagrams. In natural language, why haven't photos and videos replaced words? It's because words are still the best way to express precise and complex logic. Now, it's up to the writer to express complex logic in a series of simple steps that a reader can understand, or to write in a convoluted way.

  59. We're not 1 layer above assembly by viperidaenz · · Score: 1

    We're two.
    That's already enough.
    There are plenty of '4GL' languages out there, where you draw diagrams and 'write no code' but they're very limited in what you can do. You can only do what the language and tool designers have already thought of. As soon as you need to do anything more complex. you need a write code.

    1. Re:We're not 1 layer above assembly by cribera · · Score: 1
      Sorry to repeat the post, but when you don't answer soon enough in /., it seems you are ignored by the rest of the people, other by the one you answer directly.

      We're two. That's already enough. There are plenty of '4GL' languages out there, where you draw diagrams and 'write no code' but they're very limited in what you can do. You can only do what the language and tool designers have already thought of. As soon as you need to do anything more complex. you need a write code.

      What about examples like http://www.genexus.com/ http://www.windev.com/ or http://www.velneo.com/ ?

      Check this, 2+ years ago, how it runs in Android like a full-fledged windows app (not the typical watered-down app created for mobile devices), with the very same functionality in Windows/MacOSX/Linux & Android, without writing a single line of extra code. http://www.youtube.com/watch?v...

      Despite not being 'famous', these tools are very succesful AND POWERFUL, in the sense that users are happy with them, they can solve complex problems with them, and such users are experienced in 3GL languages and HATE to think working again in the 3GL way most of their time.

      In my personal experience, I consider myself more a software architect than a programmer, and any of such 3 tools is a far better options for me than horrible ( compared to such 3 tools, regarding productivity) tools like VisualStudio, Netbeans or Eclipse.

      Software architects with real knowledge, can take a lot of advantage of such 4GL+ tools , I don't understand how people writes about supposed 'limitations', I hope they explain what are they talking about, perhaps they talk about cases equivalent in construction of giving an imaginary rapid-house-building tool to blue-collar workers without engineering and/or architecture knowledge?

  60. If you want to try it, try it by Sycraft-fu · · Score: 1

    Labview is visual code. As another poster mentioned, you can try Mindstorms NTX, which is a cut down version of Labview. It really isn't any easier though, at least for anything of any real complexity.

  61. Work on your attention issues by Anonymous Coward · · Score: 0

    I don't know what you mean by "I get code" if you can't write it. You say you lack patience. Well, that's only going to get worse if you're confined to a visual (rather than textual) interface. The structure of the program should be in your mind. A UI can't relieve you of that.

    Don't take your lack of patience for granted. Work on it. Take your time to reflect what you're doing.

  62. As Simple As Possible, No Simpler by Bob9113 · · Score: 4, Insightful

    Most of the unnecessary parts of code are there for clarity, to make the code less cryptic. Most of the cryptic stuff is cryptic because it has been condensed. Consider iterating with a counter:

    for $i in ( 1..100 )

    That's about as concise as it can possibly be, and still get the job done. Most languages get a little more verbose, to add specificity and clarity:

    for ( int i = 1; i <= 100; i++ )

    That specifies the type of the holder (int), that it should use include i=100 as the final iteration, and it explicitly states that i should be increased by 1 each time through. That's just a tiny example, but that is how most code is. It is as simple as possible, without becoming too noise-like, but no simpler. Some langauges, like PERL, even embrace becoming noise-like in their concision.

    As for doing it with pictures instead of text, we try that every five or ten years. GUI IDEs, MDA, Rational Rose, UML, etc (there's some overlap there, but you get the picture).

    I suspect the core problem is that code is a perfect model of a machine that solves a problem. The model necessarily must be at least as complex as the solution it represents. That could be done in pictures or with text glyphs. Why are text glyphs more successful? I'm guessing it is because we are a verbal kind of animal. Our brains are better adapted to doing precise IO and storage of complex notions with text than with pictures. It's also faster to enter complex and precise notions with the 40 or 50 handy binary switches on a keyboard than with the fuzzy analog mouse. But at this point I'm just spitballing, so on to another topic:

    Fuck beta. I am not the audience, I am one of the authors of this site. I am Slashdot. This is a debate community. I will leave if it becomes some bullshit IT News 'zine. And I don't think Dice has the chops to beat the existing competitors in that space.

    1. Re:As Simple As Possible, No Simpler by Anonymous Coward · · Score: 0

      "Fuck beta. I am not the audience, I am one of the authors of this site. I am Slashdot. This is a debate community. I will leave if it becomes some bullshit IT News 'zine. And I don't think Dice has the chops to beat the existing competitors in that space."

      So why are you still posting here?

    2. Re:As Simple As Possible, No Simpler by Lumpy · · Score: 1

      "for $i in ( 1..100 )"
      not enough information in that to be useable.

      for $i in ( 1..100+ ) is more accurate, that way you can specify increment or decrement.

      --
      Do not look at laser with remaining good eye.
    3. Re:As Simple As Possible, No Simpler by Anonymous Coward · · Score: 0

      Just pointing out, Matlab uses `for i=1:100`, which is even more dense. :P

    4. Re:As Simple As Possible, No Simpler by Anonymous Coward · · Score: 0

      Can't remember the last time I would of used a for loop. I hate that "for ( int i = 1; i = 100; i++ )" syntax so very much.

    5. Re:As Simple As Possible, No Simpler by defcon-11 · · Score: 1

      It can definitely be more concise than that. See functional programs that don't even have the (for in) construct.

    6. Re:As Simple As Possible, No Simpler by Anonymous Coward · · Score: 0

      The question reminds me of a fortune I once read ... something to the effect of "Real programmers don't comment their code. It was hard to write; it should be hard to understand."

    7. Re:As Simple As Possible, No Simpler by dkf · · Score: 1

      Consider iterating with a counter:

      for $i in ( 1..100 )

      That's about as concise as it can possibly be, and still get the job done.

      You could make it a little shorter: for(1..$i..100) is one necessary character shorter, as it doesn't force a space between variable name and in keyword. It's also a syntax that you'll sometimes see in mathematics. (I excluded unnecessary whitespace from the count to be as kind to your assertion as possible.)

      Of course, you could also remove the parentheses, the for and the "look out computer, here comes a variable!!" glyph ($), but those are either drastic or facets of a more general shortening of the containing language.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    8. Re:As Simple As Possible, No Simpler by SlideRuleGuy · · Score: 0

      In all fairness, UML wasn't meant to express things like individual "for" loops. It's utility is at a much higher level. However, some of its formalisms, such as class diagrams and statecharts are very much one-to-one with actual code. (See this http://www.codeproject.com/Art... for an example.)

      And if you need any more reasons to understand why graphical languages didn't make it, just consider the fact that most of the silly icons had a text window behind them where you could put specific text, even short scripts. Why was that needed if graphical programming was so complete? Just like CASE tools and object databases, graphical programming was just an attempt by vendors to shake some more money loose from unsuspecting clients.

  63. Simple: Text is most expressive by gweihir · · Score: 3, Informative

    All other potential "interfaces" lack expressiveness. Just compare a commandline to a GUI. The GUI is very limited, can only do what the designers envisioned and that is it. The commandline allows you to do everything possible.

    So, no, we are not "still" using text. We are using the best interface that exists and that is unlikely to change.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Simple: Text is most expressive by StormReaver · · Score: 1

      We are using the best interface that exists and that is unlikely to change.

      At least not until we get the Do What I Want, Not What I Say language.

    2. Re:Simple: Text is most expressive by Anonymous Coward · · Score: 0

      That's why combination is in my opinion the best. Like in linux using yakuake. You have the graphical environment, and with a simple button press, you can have the terminal open (with tabs) and do stuff like that instantly. I don't see why this has to be a XOR-situation.

  64. Are they PAYING people to post non-beta comments? by Anonymous Coward · · Score: 0

    I hate beta.

  65. Efficiency by kifter · · Score: 2

    Using a keyboard is the most efficient way for me to create programs. My fingers are the fastest appendages I own. I assimilate keyboard shortcuts into my daily patterns to avoid using the mouse(hand-based:slower); the visual aspects of software engineering that typically require mouse movement take more time to execute. If it were more efficient to write the programs I need to write with a visual, mouse-based, or gesture-based editor, I would. Hands-On-Board

  66. The answer is simple... by 3seas · · Score: 1

    .... the baseline is wrong... it needs to be corrected and then you can have better interfaces for coding, or auto coding http://abstractionphysics.net/...

    1. Re:The answer is simple... by 3seas · · Score: 1

      To clarify, the fictional Star Trek holodeck cannot be programmed with the way programming is done today. The Holodeck is programmed by simply describing the objective and letting the computer system fill in the details. But to do this, and it can be done, requires getting back to the basics, the unavoidable action constants and building out in a manner that is consistent with the idea of layering automatons such that you eventually get to a level of simply describing the objective and if needed the system prompts for additional information (sort of like how wiki's can have links not yet defined and going to them presents you an opportunity to fill in the details.)

      Genuine software engineering would thrive this way, for it really would be a engineering task to create a, so to say, dictionaries of integrated active functionality.

      But there is a problem, similar to the roman numeral accountants who has a high position in society and didn't want to lose it and fought against easier and more powerful the Hindu-Arabic system. I mean anyone who thinks nothing can have value must be insane... (re: zero place holder). And so it would be with a large industry of coders having to give up programming as the general population becomes enabled to do so for themselves. Those resisting are on both sides of the property fence, the fence between proprietary and open source as they both generall keep the end user disabled.

    2. Re:The answer is simple... by Darinbob · · Score: 2

      But to fill in the details, the computer also has to know all the hidden requirements.
      Ie, "Computer, Earl Gray, Hot" results in "oh my god, why have you served up up the long dead corpse of an English nobleman and set it on fire?!"

      And that's a problem many product managers face. They seem to think that by writing up specifications that everything can be automated, or that at least they can have the programming team in the scruffy side of the building do all the work without constantly interrupting with stupid questions.

    3. Re:The answer is simple... by 3seas · · Score: 1

      I suspect the computer would be programmed to respond in asking for further clarity given its multiple findings with multiple choices of which is included the choice of "Tea". From the link I provided there is a link to http://groups.google.com/group... describing circular flowcharting and example of what may be considered engineered vocabulary or dictionary sets.

      Roman numeral accountants did not comprehend the value of zero, but the decimal system required a different way of thinking about math. Same sort of thing here, a different way of thinking about programming from the basics up.

      When you think about it, there are other programming interfaces that simplify programming via GUI, such as CNC router G-Code generators such as Router-CIM Solid-Cim 3D http://www.cim-tech.com/solidc... (watch the video and know this automates the creation of g-code directly from the 3D CAD model) and the Aerospace industry....it has its highly bug free software generators.

  67. Known issue... by frank_adrian314159 · · Score: 1

    Text is more dense than graphics. Graphics, depending on how it's laid out can provide better or worse documentation than the code itself. Debuggers run on text, not pictures. Text can be edited with a variety of tools; any graphical notation will have its own editor, which will probably suck. Big diagrams are too tangled, while small diagrams provide too little context or require enough off-page connectors to make any intent opaque. No good way to connect to globals without use of (again) said off-page connectors. Need I go on?

    People have been trying out and discarding graphical programming interfaces since the early 1970's (at least). Nobody keeps using them. Get the clue.

    Plus, fuck beta.

    --
    That is all.
    1. Re:Known issue... by petermgreen · · Score: 1

      Debuggers run on text, not pictures.

      I mostly agree with your post but I would have to point out that labview does have debugging features.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  68. Shouldn't there be a simpler, more robust way? by Culture20 · · Score: 1

    00000001

  69. Why? Got something better? by khellendros1984 · · Score: 1

    If I need to write a large piece of software, there's a certain irreducible complexity that will be involved. There's a point where simplifying the program any further would require dropping features from the program.

    In the end, you still need to specify behavior. I don't think that it matters if the program is shown represented as some kind of image, control blocks arranged visually, a flowchart, text, or anything else, the problems of writing complex software will be the same; you need to organize the program logically, maintain its internal state somehow, take input, and produce results.

    Say that I write some 100-class project in Python (so, a fair-sized system, but not *too* huge). I could come up with a visual metaphor for everything in the program, maybe with ways to assign pictures to variables and functions that (somehow) give a language-free representation of the meaning of that variable/function. It's still going to have 100 classes in it, the same effective logic in its design, but now, I'd have no idea how to search for a specific function in it. The thought that I'm left with is that yes, it would be cool to have a magic pill that made programming easy for everyone to do, but I'll believe it when I see it. I've never seen a non-text-based way to produce a computer program that could represent an algorithm in a way that wouldn't look like a horrific visual jumble for a non-trivial algorithm.

    --
    It is pitch black. You are likely to be eaten by a grue.
  70. Language is the answer to your question... by necro351 · · Score: 5, Insightful

    ...and I do not mean programming language, though that can help.

    There is not a big gain (any gain?) to seeing a square with arrows instead of "if (a) {b} else {c}" once you get comfortable with the latter. I think you hinted at the real problem: complexity. In my experience, text is not your enemy (math proofs have been written in mostly text for millennia) but finding elegant (and therefore more readable) formulations of your algorithms/programs.

    Let me expand on that. I've been hacking the Linux kernel, XNU, 'doze, POSIX user-level, games, javascript, sites, etc..., for ~15 years. In all that time there has only been one thing that has made code easier to read for me and those I work with, and that is elegant abstractions. It is actually exactly the same thing that turns a 3--4 page math proof into a 10--15 line proof (use Louisville's theorem instead of 17 pages of hard algebra to prove the fundamental theorem of algebra). Programming is all about choosing elegant abstractions that quickly and simply compose together to form short, modular programs.

    You can think of every problem you want to solve as its own language, like English, or Music, or sketching techniques, or algebra. Like a game, except you have to figure out the rules. You come up with the most elegant axiomatic rules that are orthogonal and composable, and then start putting them together. You refine what you see, and keep working at it, to find a short representation. Just like as if you were trying to find a short proof. You can extend your language, or add rules to your game, by defining new procedures/functions, objects, etc... Some abstractions are so universal and repeatedly applicable they are built into your programming language (e.g., if-statements, closures, structs, types, coroutines, channels). So, every time you work on a problem/algorithm, you are defining a new language.

    Usually, when defining a language or writing down rules to a game, you want to quickly and rapidly manipulate symbols, and assign abstractions to them, so composing rules can be done with an economy of symbols (and complexity). A grid of runes makes it easy to quickly mutate and futz with abstract symbols, so that works great (e.g., a terminal). If you want to try and improve on that, you have to understand the problem is not defining a "visual programming language" that is like trying to encourage kids to read the classics by coming up with a more elegant and intuitive version of English to non-literate people. The real problem is trying to find a faster/easier way to play with, manipulate, and mutate symbols. To make matters worse, whatever method you use is limited by the fact that most people read (how they de/serialize symbols into abstractions in their heads) in 2D arrays of symbols.

    I hope helping to define the actual problem you are facing is helpful?

    Good luck!

    --
    --"You are your own God"--
    1. Re:Language is the answer to your question... by dkf · · Score: 1

      Let me expand on that. I've been hacking the Linux kernel, XNU, 'doze, POSIX user-level, games, javascript, sites, etc..., for ~15 years. In all that time there has only been one thing that has made code easier to read for me and those I work with, and that is elegant abstractions. It is actually exactly the same thing that turns a 3--4 page math proof into a 10--15 line proof (use Louisville's theorem instead of 17 pages of hard algebra to prove the fundamental theorem of algebra). Programming is all about choosing elegant abstractions that quickly and simply compose together to form short, modular programs.

      You touch on a point there, but there's a key aspect of it that you didn't mention which is important. It's not just abstractions, though they're indeed very important; it's named abstractions ("Louisville's theorem"), so that you can work with just the outer parts of the abstraction without having to think about the details, and can communicate that to other people. Oh, and computers too.

      Language (and by extension, text) is good for programming because it has been dealing with naming abstractions and sharing them with other people for tens of thousands of years. It works very well for describing computation now that we have formal language theory so that computers can at least partially understand what we're going on about. We're still learning what the best ways to do this sort of thing graphically are.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    2. Re:Language is the answer to your question... by Anonymous Coward · · Score: 0

      This guy, he gets it. We code to define the language. That's why the successful GUI-based development tools are generally domain-specific and data driven, they require a language to be well defined first.

  71. Visual Boxes Aren't Code by rhysweatherley · · Score: 1

    Because while programming by joining prefabricated boxes together with lines sounds awesome, it's what is inside the boxes that is important. If the box you need is not already written, then you need variable assignment, conditionals, and loops to write a new box. And then all of a sudden you are back to writing text code even if it is drag-n-drop "if" statements encoded in XML. At that point you might as well give the programmer a text edit window and get out of the way. The lines are the least interesting part of an application, but they are the only parts that even make sense to do graphically.

    1. Re:Visual Boxes Aren't Code by petermgreen · · Score: 2

      then you need variable assignment, conditionals, and loops to write a new box. And then all of a sudden you are back to writing text code

      Have you ever used labview?

      A custom block just links to another diagram on which you can place more stude
      Conditionals and loops are represented by large adjustable size boxes in which you can place other boxes.
      Variables aren't used much, if you really need them they are there but for the most part you just use "wires" and "shift registers" (a "shift register" takes an output from one iteration of a loop and feeds it into the next one with the ability to feed in at the start of the loop and feed out at the end)

      Which is not to say I like labview but it is certainly a graphical environment and it's certainly powerful enough to do a heck of a lot without resorting to text code.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  72. just an idea by Anonymous Coward · · Score: 0

    First sorry for my english.
    I think the other way. whats the better way to get an idea. sure yuo can see a movie, pictures or a play. but reading a book its the more detailed experience you can get. so the limitation its not technology. its how we express ideas, concepts and for sure algorithms.
    just an idea.

  73. SIMULINK et al by majid_aldo · · Score: 1

    SIMULINK (and HYSIS which is domain-specific) and other tools that display a process have good use. You can think of the process as a program. In this case it works when the process can be shown as a flow-diagram. You probably can't represent all programming paradigms this way though.

    --
    --- widget evolution: enhanced, plus, super, ultra, extreme, exxxtreme, ultra-extreme, ..etc.
  74. Because it works, like Slashdot Classic by russotto · · Score: 2

    The reason we're still writing text-based code is because it works and it works well, unlike, say, Slashdot Beta. Other things have been tried; most sucked, no one used them, and they went away. Others (e.g. LabView) found a niche and stayed there.

    Shouldn't there be a simpler, more robust way to translate an algorithm into something a computer can understand? One that's language agnostic and without all the cryptic jargon?

    How are you going to describe this algorithm? As far as I can tell, any meaningful answer to that question IS a programming language.

    1. Re:Because it works, like Slashdot Classic by Darinbob · · Score: 1

      If you can't describe the problem and solution in plain English (or other natural language) then it will be difficult to program it in a text language.
      Similarly, if you can't create a painting that describes the problem and solution clearly then it will be difficult to program it in a graphical language.

      So which of those two is easier for the average programmer to do?

  75. Because... by Darinbob · · Score: 3, Insightful

    Because text based stuff works. All the graphical programming stuff essentially is experimental. ALL of them have major faults. Yes, there are some people who think that everything can be done in UML and then automatically have that generate code, but that requires a huge investment to learn UML (at least as much time as it takes to learn a text based language) plus the code generated is not necessarily efficient. This is a very old idea, people have been working on this for decades!

    It is only recently that we've had graphical displays that I would considere good enough for the level of detail necessary. The computer monitors from 10 years ago were not high enough resolution.

    And frankly there's nothing wrong with text based programming. After all we are programmers. We all learned calculus (or should have), physics (or should have), we learned all the theory (or should have), we wrote term papers using text, and so forth. So to learn a simple programing language should not be a hurdle to anyone. We're professionals, we should never be saying "this is too hard!"

    Graphical user interfaces are not efficient in terms of building something up. Lots and lots of mouse movement is necessary merely to draw out a basic set of blocks and flow control but then you still need lots and lots of mouse movement to apply the correct sets of properties to each box, each line, and so forth (ie, type in variable names, set their type, make them const, place them in the correct scope, etc). Whereas text you just start typing and it is fast. That's why we still use command language interfaces instead of graphical user interfaces for most professionals, they're faster and more efficient. You may think that typing is slow and cumbersome, but I find using tools like Visio and Powerpoint to be slow and cumbersome.

    Finally, how are you going to share your graphical program? Do you require everyone who will read your code to also have the same graphical code viewer, no matter what operating system they are on? Sure this may be ok if you're just doing simplistic visual basic but in the real world you can't rely on this. The practical matter is that it will get translated into a textual form just to be shared. At which point you may have well done it in text to start with. Why do we have so many programming languages? Because not everyone agrees on just one language, and of course no language is equally efficient in all problem domains. The same issue will exist in any graphical programming style; no one will agree on just one, and you'll need different variants.

    Basically, text based programs are indeed simpler and more robust. Now maybe you don't like some programming languages because they're too verbose and hard to type, in which case choose a language that uses higher level constructs, and so forth.

    1. Re:Because... by cribera · · Score: 1
      Sorry to repeat the post, but when you don't answer soon enough in /., it seems you are ignored by the rest of the people, other by the one you answer directly. Besides, it seems in this thread, the majority are programmers, not Software archtiects, because how else the comment I quote is modded 'insightful' (I have still mod points I cant use in this thread, FWIW) and my comment is ignored?

      Because text based stuff works. All the graphical programming stuff essentially is experimental. ALL of them have major faults. Yes, there are some people who think that everything can be done in UML and then automatically have that generate code, but that requires a huge investment to learn UML (at least as much time as it takes to learn a text based language) plus the code generated is not necessarily efficient. This is a very old idea, people have been working on this for decades!

      It is only recently that we've had graphical displays that I would considere good enough for the level of detail necessary. The computer monitors from 10 years ago were not high enough resolution.

      And frankly there's nothing wrong with text based programming. After all we are programmers. We all learned calculus (or should have), physics (or should have), we learned all the theory (or should have), we wrote term papers using text, and so forth. So to learn a simple programing language should not be a hurdle to anyone. We're professionals, we should never be saying "this is too hard!"

      Graphical user interfaces are not efficient in terms of building something up. Lots and lots of mouse movement is necessary merely to draw out a basic set of blocks and flow control but then you still need lots and lots of mouse movement to apply the correct sets of properties to each box, each line, and so forth (ie, type in variable names, set their type, make them const, place them in the correct scope, etc). Whereas text you just start typing and it is fast. That's why we still use command language interfaces instead of graphical user interfaces for most professionals, they're faster and more efficient. You may think that typing is slow and cumbersome, but I find using tools like Visio and Powerpoint to be slow and cumbersome.

      Finally, how are you going to share your graphical program? Do you require everyone who will read your code to also have the same graphical code viewer, no matter what operating system they are on? Sure this may be ok if you're just doing simplistic visual basic but in the real world you can't rely on this. The practical matter is that it will get translated into a textual form just to be shared. At which point you may have well done it in text to start with. Why do we have so many programming languages? Because not everyone agrees on just one language, and of course no language is equally efficient in all problem domains. The same issue will exist in any graphical programming style; no one will agree on just one, and you'll need different variants.

      Basically, text based programs are indeed simpler and more robust. Now maybe you don't like some programming languages because they're too verbose and hard to type, in which case choose a language that uses higher level constructs, and so forth.

      What about examples like http://www.genexus.com/ [genexus.com] http://www.windev.com/ [windev.com] or http://www.velneo.com/ [velneo.com] ?

      Check this, 2+ years ago, how it runs in Android like a full-fledged windows app (not the typical watered-down app created for mobile devices), with the very same functionality in Windows/MacOSX/Linux & Android, without writing a single line of extra code. http://www.youtube.com/watch?v... [youtube.com]

      Despite not being 'famous', these tools are very succesful AND POWERFUL, in the sense that users are happy with them, they can solve complex problems w

  76. I wrote a visual language years ago.... by Anonymous Coward · · Score: 0

    In Java no less. Back in the early days. Drag and drop. The whole nine yards.

    Long story short: It's much faster to type than to drag graphics around - BY ORDERS OF MAGNITUDE. The visual system had to save in an intermediate language. Our users were writing code as text in emacs in that intermediate language and then loading it into the visual system. Saved countless hours of work for them. They could write in a minute what would otherwise have taken hours. And that's for the simple stuff. Imagine the complex stuff. Wait until you've got tens of millions of lines of code to work with.

    No, with text it's fairly easy to write a compiler, and to understand how your code is being translated into machine code. Adding a visual system makes it all much harder to comprehend. It slows down the coding process down enormously! And encourages mistakes.

    The ultimate goal in coding is to manage complexity so your project doesn't reach critical mass or implode. Adding complexity is counterproductive.

    And my visual programming project? It was canceled after 6 months. But 15 years later the text compiler is still being used (for a small exotic subset of programming tasks related to automated systems).

    p.s. I can live with BETA as long as there's a CLASSIC link at the bottom. When CLASSIC goes, so do I.

  77. Graphic tools create crappy code. Beta? by Anonymous Coward · · Score: 0

    Lots of money has been spent on the promise of doing away with the need of programmers via GUI tools. Maybe one of these days, but not today.

  78. Simulink is visual programing that matters already by Anonymous Coward · · Score: 0

    I develop the algorithms that control the transmission and engine for cars & we develop our code in Simulink.

    The biggest upside is you can infer the structure & importance of things based on how they are laid out visually on the screen, it's really self documenting to a large degree. Then we employ a team of coders who maintain tools to generate C code from the Simulink program. Another upside is the Simulink environment which makes it easy to re-run things that happend in the vehicle by inputing measured state variables to the code. From there we can beta test code changes or dig deep & debug issues.

  79. please rewrite the submission in pictures, no word by raymorris · · Score: 2

    You'll have your answer if you first rewrite your questions in picture form, with no words. You may find it's much, much harder to write anything that way. There ARE purely graphical programming environments, like Lego Mindstorms. Using it, you can write a ten line program in only twenty minutes

    Additionally, graphical environments actually are NOT simpler. They are far more complex. Standard C, the language operating systems are written in, consists of a couple dozen "words". Microsoft VISUAL C has hundreds or thousands of items to learn.

    The visual approach only tries to HIDE the complexity, make it invisible. The thing is, if you can't see it, you can't understand it. Building a complex system out of complex parts that you cannot understand is extremely difficult. That way leads to madness, to healthcare.gov. The way to make it simple is to start with simple things - 30 or so simple words like "while" and "return". You take a few of those words to build a small function like "string_copy". The string copy function is simple because a) it does one simple job and b) you can understand it because it's composed of a few simple keywords. Take four or five of those simple functions like stringcopy and you can easily build a more powerful function like "find_student". Each stage is simple, so you build all this simple stuff, each simple layer built on another simple layer and soon you have powerful software that can do complex tasks. Graphical tools don't work like that. You can't have a "while" picture, because in even a fairly small program you soon end up with thousands of pictures, way too many to see and understand. So with graphical tools you have to have a "web browsing" picture - a complex object whose behavior you cannot intuitively know. Instead, you have to spend hundreds of hours reading textual descriptions of the details of how the "web browsing" picture and thousands of other pictures can be used. Learning a few dozen words if far, far simpler.

  80. Ask Slashdot: Why Are We Still Here? by Anonymous Coward · · Score: 0

    SRSLY WTF? Have you lost your resolve?

    FBETA!

  81. Try ladder logic or LabView by Anonymous Coward · · Score: 0

    Both of these are graphical programming languages. You might like one of them.

  82. Function blocks anyone by Anonymous Coward · · Score: 0

    There are somewhat graphical programming using functions block. You have predefined block (think lego mindstorm) the perform specific function.
    You drag the block and connect inputs on one block to the output of other blocks. This is used quite often in DCS and PLC programming. Now if you have function blocks for everything that you need to do then things work great. As soon as you don't have a function block for your specific task your screwed. Now you can also make your own function block by (you guessed it) writing code. So at some level someone has to write the code. Now if you have a function block for every possible algorithm then you wouldn't have to make your own. But I'm just guessing that now all algorithms have been written yet.

  83. Johnny Carson realistic dildo by Anonymous Coward · · Score: 0

    i laugh everytime it goes in

  84. Re:The more simple you make it the less complex it by icebike · · Score: 2

    This view is belied by the graphical tools used to design and layout hardware and chips. Higher level languages in particular are largely based on connecting the data flow between various pre-defined blocks or objects - function libraries.

    That's basically a scheduling and routing problem. Getting all the leads from hither to yon connecting all the right points.
    That's drafting, not programming. Akin to wiring a board for an IBM 407 or something.
    Wiring a board wasn't programming either, (although it was often called that).

    Conceptualizing the problem and the solution is the job of wetware. The closest we get to symbolic programming is writing out flow charts, but you can still say in 6 words and one symbol what takes a mountain of code to accomplish. And all too often the flowchart glibly handwaves into existence that mountain of code with just a few words.

    --
    Sig Battery depleted. Reverting to safe mode.
  85. It's just majority taste, nothing more. by dpbsmith · · Score: 1

    There's no good reason for it, it simply reflects the tastes and preferences of people who are attracted to programming who are the market. The people who like visual aspects of programming are a minority. The mainstream does not "get" it, doesn't want it, and doesn't care about it.

    To prove this, take a case that is much simpler than visual programming: Donald Knuth's "literate programming." This simply means an environment in which the source code can be commented with comments having the full capability of TeX, with rich text and illustrations.

    Why is it that IDEs, programmers' editors and compilers are restricted to plain text? Why not rich text and compound documents (embedded graphics?) It not a difficult technical problem, as shown by the fact that Knuth already solved it. It is not a standards issue, as there is at least one perfectly good open and ubiquitous standard that could be used--HTML. It is not a cost or difficulty of migration issue, as shown by the fact that everyone was able to migrate from ASCII to Unicode. Yes, HTML would be harder, but perfectly feasible. Unlike visual programming, it is still just text.

    The reason we do not have mainstream "literate programming" environments is because the vast majority of programmers, who form the market, don't care. They just don't want code with word-processor-like comments in it. They are perfectly happy to represent emphasis with leading and trailing underbars--after all, the semantics is the same.

    Closest I ever came to literate programming was the original version of Nisus, a Mac word processor which stored all the formatting information in the resource fork. It was a fully formatted WP document, but if you ignored the resource fork it was an ASCII document. No, it didn't need to be converted, it just was. And you could use Nisus to write literate-programming-like documents, and provided the comments were delimited by /* and */ you absolutely could use a Nisus document as input to any standard Mac compiler with no change. However, there was no good way to integrate it into an IDE...

  86. Re:It is a symptom of the industry and human natur by Anonymous Coward · · Score: 0

    There have been a number of attempts at making coding easy enough that non engineering types will be able to conceive their requirements in software then communicate these through a tool, usually in a visual manner and turns this into functional software.

    I think the problem is that these languages are targeted as non-engineering types. I want a graphical language targeted at engineering types.

  87. That's still limited by Anonymous Coward · · Score: 5, Interesting

    to what the programmer of the computer programmer envisioned.

    I think the story OP should learn some Lisp. Seriously. Just to grok it.

    Part of the frustration I had with many programming languages is feeling I was trying to build castles with toothpicks. If I moved the wrong way or wasn't utterly careful, the structure would fall.

    Maybe the OP feels the same way since he is talking about feeling a single level away from assembly.

    Like the most powerful editors (emacs and beyond) requires commandline. That's just how it is. If you want fast to learn, then you absolutely want a pretty GUI and all that nonsense, but a user will hit his head on a low ceiling if he's a fast learner. Because GUIs just don't do anything but the small tasks envisioned to them. OTOH, commandline is hard to learn but a much higher ceiling.

    Put another way, text is abstractions. I say cat, you the reader know roughly what I'm talking about. I didn't have to describe a small furry 4 legged animal. Now if I did a graphical representation of it, I would be limited to the parameters I gave the original cat - fur (there are furless cats like the sphinx), legs (some cats are missing legs), tails (the manx). How would a graphical representation take that into account? Through clunkiness if at all.

    It's kind of like the difference between an alphabet and a logographic system like kanji.

    Kanji seem like an awesome idea at first. You make a picture of the sun, and voila, you have the sun! And then a picture of the moon, and you have that idea. Moonlight? Combine kanji for moon plus kanji for light and you probably have moonlight!

    Awesome right? Yeah it's just fucking great until you realize you have to start making 30 strokes for one word, and that small pics start looking like each other, and that unless you know that very specific kanji, you have no clue how to write it out. And unlike the english alphabet which has 26 letters and once you learn them and combination you can sound out most words, you have to memorize thousands of kanji and even more kanji combinations or you'll get hung up reading highschool level newspapers.

    I view CLI like the alphabet and GUIs inevitably like the alphabet and kanji. One is more awesome than the other in theory but in practice...

    1. Re: That's still limited by keysdisease · · Score: 1, Funny

      As a gaijin I had he same problem with kanji. Do you spell that with a house or a tree?

    2. Re:That's still limited by See+Attached · · Score: 2

      Great analogy... Once the human experience gets rational and predictable, then.... we can hope to have a comprehensive GUI tool for programming. We all suffer the vagaries of human input (is that really an email address??) and things like spaces in file names that confuse parsing, and the incessant need to confirm that ever step in a program -actually- worked.... Many of us have given up on the GUI and have learned to cope with our pals grep awk sed cut read while for case until (and the list goes on.... Waiting for that day when human experience is ultimately predictable.

      --
      Time for a new Political party in the US (or two!) One is off the rails Other cant pony up a leader.
    3. Re:That's still limited by vux984 · · Score: 4, Insightful

      I say cat, you the reader know roughly what I'm talking about.

      Right. A unix command utility that concatenates its inputs as its output.

      I didn't have to describe a small furry 4 legged animal.

      oooooooh .... riiiiiight. in all seriousness, if i saw the word cat without context in nearly any setting I'd have been right with you on a furry critter... but here on /. especially given you'd mentioned the CLI and GUI, well, my brain was primed up for the other cat.

    4. Re: That's still limited by Anonymous Coward · · Score: 1

      We all did. That's why I say "pussy cat." Not only does it disambiguate, but it also elicits giggles from 2/3 of males over age 9.

    5. Re:That's still limited by LifesABeach · · Score: 1

      If one does not know software, then the cat analysis makes sense.

    6. Re:That's still limited by Princeofcups · · Score: 1

      It's kind of like the difference between an alphabet and a logographic system like kanji.

      Kanji seem like an awesome idea at first. You make a picture of the sun, and voila, you have the sun! And then a picture of the moon, and you have that idea. Moonlight? Combine kanji for moon plus kanji for light and you probably have moonlight!

      Awesome right? Yeah it's just fucking great until you realize you have to start making 30 strokes for one word, and that small pics start looking like each other, and that unless you know that very specific kanji, you have no clue how to write it out. And unlike the english alphabet which has 26 letters and once you learn them and combination you can sound out most words, you have to memorize thousands of kanji and even more kanji combinations or you'll get hung up reading highschool level newspapers.

      There is zero difference between memorizing some additional kanji radicals (strokes or series of strokes) and memorizing a series of letter on a horizontal line to form a word, especially with all the different non-phonetic spellings in English. One is in a box shape, the other a horizontal series. Besides, it is not the English alphabet. It is the Roman alphabet, and lots of other languages use those letters.

      --
      The only thing worse than a Democrat is a Republican.
    7. Re:That's still limited by Anonymous Coward · · Score: 0

      I thought he was talking about the Caterpillar corporation

    8. Re:That's still limited by lorinc · · Score: 0

      A cat is a cat, no more, no less!

    9. Re:That's still limited by tragedy · · Score: 4, Funny

      Kanji seem like an awesome idea at first. You make a picture of the sun, and voila, you have the sun! And then a picture of the moon, and you have that idea. Moonlight? Combine kanji for moon plus kanji for light and you probably have moonlight!

      Awesome right? Yeah it's just fucking great until you realize you have to start making 30 strokes for one word, and that small pics start looking like each other, and that unless you know that very specific kanji, you have no clue how to write it out. And unlike the english alphabet which has 26 letters and once you learn them and combination you can sound out most words, you have to memorize thousands of kanji and even more kanji combinations or you'll get hung up reading highschool level newspapers.

      You forgot about Kanji dictionaries. Want to look something up, just count the strokes. It's easy, as long as you've spent years practicing forming the strokes in the first place. If not, it's a bit of a wild guess what constitutes one or two or three strokes. But hey, once you've counted the strokes, you just have to jump to the section of the dictionary for characters with that many strokes then look through a few thousand characters until you see one that matches. Piece of cake!

    10. Re:That's still limited by tsa · · Score: 1

      This. And to use a car analogy: you can view the CLI as a plane and the GUI as a car. You can make the plane ride but you can never make the car fly.

      --

      -- Cheers!

    11. Re: That's still limited by Anonymous Coward · · Score: 0

      There is a huge difference. The roman alphabet is mostly phonetic. There are common rules one can employ to sound out words. So it's rather easy to figure things out if you are fluent with the spoken language.

    12. Re: That's still limited by shiruba3094 · · Score: 2

      I have to call b.s. On this one. Kanji doesn't work like you describe except for very simple concepts. A single kanji character is generally more complex than a single "English" letter, but it also carries more information. You also doubt have to memorize every kanji as a series of strokes because they are composed of common radicals. A more apt analogy would be something like this: English letters are like binary code. Ones and zeros are simple, but you need more of them. Kanji are like hexadecimal. Each unit requires more bits, but it holds more data. For example house requires 5 characters in English, but only 1 or 2 characters in Japanese, depending what word you translate it too.

    13. Re:That's still limited by julians · · Score: 1

      The above poster is right in many ways about the memorisation load of learning kanji (or hanzi/Chinese characters). An Chinese university student will have learnt to recognize over four thousand characters (estimates vary here).

      But readers should avoid the common misunderstanding that most characters are predominantly pictoral. In fact, over 90% characters in current use in Chinese are 'picto-phonetic', comprised of one part that is semantic, and one part phonetic. To use the example the poster takes of 'cat' the character is comprised of an element on the left for 'animal' and on the right indicating prounciation (the element is miao, with cat pronounced mao in modern Mandarin). There's quite a lot more of abstraction in characters than is generally realised in these kind of debates, and claims that they are not as good "in practice" as alphabets should not oversimplify the issues at hand.

    14. Re:That's still limited by characterZer0 · · Score: 1

      trying to build castles with toothpicks. If I moved the wrong way or wasn't utterly careful, the structure would fall.

      If you are not careful when building castles out of rocks and bricks, they fall too. Many large buildings throughout history fell down during construction or shortly thereafter because the designers did not understand the required engineering principles. Software is the same.

      If you want to throw together a shed, you can grab some some prefabricated bits and stick them together. If you want to build a castle, you need to understand and utilize the properties of rock, brick, mortar, and wood.

      If you want to throw together a simple shell script, you can grab some snippets from stackoverflow and stick them together. If you want to build a more complex site (like /.) you need to understand a lot more. If you just take the latest design elements from the mock-turtleneck-and-crayons guys and shove them together, you end up with something like Beta.

      --
      Go green: turn off your refrigerator.
    15. Re:That's still limited by Anonymous Coward · · Score: 0

      Or recent America's Cup style ships, or medical diagnosis machines, or heavy machinery, or much about .cat ...

      Hey, is semantic overloading in English an important thing to be a nerd about in a discussion about computer languages?

    16. Re: That's still limited by Koen+Lefever · · Score: 1

      The roman alphabet is mostly phonetic.

      Indeed, except in English.

      Ghoti: gh, pronounced /f/ as in tough; o, pronounced /I/ as in women; ti, pronounced /sh/ as in nation: read aloud as "fish".

      Ghoti: gh as in though; o as in people; t as in ballet; i as in business: read aloud as ... silence.

      --
      /. refugees on Usenet: news:comp.misc
    17. Re: That's still limited by Anonymous Coward · · Score: 0

      I think you missed the mostly.

    18. Re: That's still limited by Anonymous Coward · · Score: 0

      I hear a monad is like a cat...

    19. Re:That's still limited by Anonymous Coward · · Score: 0

      There is zero difference between memorizing some additional kanji radicals (strokes or series of strokes) and memorizing a series of letter on a horizontal line to form a word, especially with all the different non-phonetic spellings in English.

      Alphabetic systems have many superior features and no real disadvantages when compared with logographic systems. This has been recognized since at least the 15th Century, when this insight led to the creation of Hangul in Korea.

      Historically, it was MUCH easier to typeset alphabetic systems (although the Chinese were the first develop movable type). The printers in Japan and China had to use and manipulate much larger sets of blocks in their movable type setup than European printers did. A typical Japanese newspaper would need on the order of 2500 blocks, a book printer ~12000.

      Similarly, today is much simpler to make a real or virtual keyboard for an alphabetic language. Using these for logographic languages is worse than having to use emacs (with all its goofy multi-key combinations).

      Basically, hanzi, kanji and other logographic systems are dinosaurs, relics of the ancient past that should be discarded (along with emacs).

  88. answer: i dunno by eyenot · · Score: 1

    "Why have graphical code generators that could seemingly open coding to the masses gone nowhere? At a minimum wouldn't that eliminate time dealing with syntax errors?"

    Where is "nowhere"? Also, what are you referring to when you say "that"? I'm lost in parsing this sentence. And how does a graphical interface eliminate syntactical expressiveness and therefore the potential for syntactical error? Are you suggesting that a language is better off not having any combinations of operators that could potentially result in syntactical error, with everything parsed as equally valid?

    "Shouldn't there be a simpler, more robust way to translate an algorithm into something a computer can understand? One that's language agnostic and without all the cryptic jargon? It seems we're still only one layer of abstraction from assembly code."

    I'm not sure what you're suggesting. What cryptic jargon? Have you ever actually used assembly or ANSI-C ? They are pretty un-jargon as far as languages go. Jargon is higher-order language that is so built up on technical definitions defined recursively by further technical definitions, that the language is so specialized, that only a specialized segment of the population can understand it. Most mnemonics (which C for example is -- a mnemonic for assembly, albeit in modern versions accompanied by many helpful and useful tools on the side) ... most mnemonics are by definition easier to understand than jargon. And most programming languages are mnemonic in some way, shape, or form. When you say we're one layer of abstraction from assembly code, I'm not entirely clear whether you think that's good or bad, or if you're just cleverly trolling us all.

    "I consider myself someone who 'gets code,' but I'm not a programmer. I enjoy thinking through algorithms and writing basic scripts, but I get bogged down in more complex code. Maybe I lack patience, but really, why are we still writing text based code?"

    Everybody gets bogged down in more complex code. That's why there are numerous attempts at simplifying coding in general. Procedural code, functional-argument code, object-oriented programming, it's all an attempt to put more and more "ease of use" into the programmer's life.

    These methods don't always work, period, let alone for everybody or even for all coders. The Java language is the current best case in point of this. Java shows what can go wrong with not only a programming language but any tool, or project, or system when it suffers from too many eggs in one basket -itis.

    I myself suffered programming burnout at a young age. I had been programming since 8 years old but never quite "got" it, just inputting code from magazines (back when we still did that) and modifying strings and variables. I understood GOTO and GOSUB but still didn't grasp that these essentially put procedural programming in the hands of lined BASIC.

    I remember when I met one BBS sysop when I was BBSing and SYSOPing in the early 90's, around the time I was 15 or 16. I had asked him for advice in programming this QBASIC thing I was making. I kept getting out of memory errors. And he said if the program is too big, I'm likely to get that particular error and he asked to see my program. Well, it was all lined code (which QBASIC still supported) and because I had no sense of procedure, what I had was an attempt to hard-wire the entire game including all of its choices.

    Learning procedure and function was pretty amazing, but the same helpful SYSOP went further and started teaching me C++. So now I was learning pointers and references as variables, functions as arguments, and recursive programming. I started getting headaches, my head was actually physically overheating when I was programming, and I gave out. I didn't program anything from the age of 16 until about roughly 26 or so.

    I approached returning to code with a fresh perspective. I wanted to learn 8086 assembly, but I didn

    --
    "Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
  89. Re:Because text is the only medium that's varied e by satch89450 · · Score: 4, Interesting

    I used to write articles for magazines as a full-time job. When I first started using the outliner MORE, I found that the task of writing became much, much easier: I would outline the article, then fill in text for each outline item. When I was finished, I would then export the text and there was my article. It let me design the articles top-down, just as a EE designs a circuit top-down. Moreover, as the article would develop, I could shift things around very easily without having to do massive cut-and-paste exercises.

    Software design? I do that top-down mostly. I design the top level with functions, then fill in the functions. Lather, rinse, repeat as many times as you need to. The result is a piece of software that is highly maintainable.

    One of my biggest complaints about "graphical" programming is that you can't have much on the display -- you end up paging *more* than with a text-based system. It isn't the text that's the problem; its the lack of top-down designing on the part of the human.

    Now, one system that I absolutely loved working with had an IDE (text-based) where you deal in layers. When you click on the function name, the function itself comes up in different windows. I found that paradigm encouraged small, tight functions. Furthermore, the underlying "compiler" would in-line functions that were defined only once automatically. (You could request a function be in-lined in all cases, like in C, if you needed speed over code size.)

  90. it works by Tom · · Score: 1

    Because it works.

    You might think of text as antiquated and primitive, but that only seems to be so because you have 20, 30 or whatever your age is, years of daily training in language.

    Language is a tool that has 20, 30 or 50,000 years of development. Compared to 20 or 30 years of trying to come up with a way of visual programming, our attempts to find something better are pathetic and rightfully short-lived.

    You're not the first to ask this question. But so far, all the answers anyone has provided turned out to fall so short of the target that they were very quickly dumped and forgotten.

    The other reason is that computing is largely a superset of math, and math is basically symbol manipulation.

    --
    Assorted stuff I do sometimes: Lemuria.org
  91. Re:Because text is the only medium that's varied e by Darinbob · · Score: 1

    Remember that COBOL was originally invented to be human readable and precise. But today it is used as a joke because of its verbosity. However it did exactly what it set out to do. If COBOL had been simpler it would not have survived as long because it would have been unable to accomplish its goals.

    Any graphical programming language likewise will need to be complex. You can not just draw a flowchart. Even something as simplistic as adding together a string of numbers is complex to do in a graphical way: you need to specify what type of addition to do, what the types of the numbers are, where to get the numbers from, where to put the results. For the types of numbers they could be floating point, fixed point, binary integers, decimal integers (very very important, too many programmers forget about these even though they're vital to the financial industry). For types of addition do we have wraparound on overflow or saturation, what precision do we want to keep if we're adding floating point numbers of greatly differnet magnitudes, do we want to trap on overflows or cause an exception or just ignore it. Are these numbers all typed in initially, acquired from a column in a database, typed in by a user interactively, parsed from a text file, etc. Do we write the results back out to a text file, display on a screen, send it over the internet to someone's phone?

    And that's a simple program. Now try to use a graphical tool to create a more complex program, such as one that handles moving a telescope around to track a region of space while acquiring images of the sky and stitching them together.

  92. EXACT by AndyCanfield · · Score: 1

    The Art of Programming is the art of saying EXACTLY what you mean. You want a button on the lower left corner? How close to the corner? When? In English or French or other language? Lower right corner if the page is in Arabic? How big? Mouseover, mouseclick, double click?

    Programming is the translation of user desires to the computer; users think fuzzy, and computers are incredibly dumb. We ued to yell "DWIM!", meaning "Do What I Mean!". Computers cannot do what you mean because meaning to a computer is in a different universe. Computers and Humans have entirely different experiences, and so what seems simple to a human is totally foreign to a computer. Thats' why we must program.

    Maybe some day the shared experience of driving an automobile will evolve to a world model that humans and computers can share and mutually understand. But not for another generation, I am thinking.

  93. Flow charts and spoken language. by Anonymous Coward · · Score: 0

    To easily understand the logical flow of a program, flow charts where invented to make it easier. I don't see why there couldn't be a flow-chart direct to machine code "compiler".

    I agree, a flow chart would make a shitty novel, but we're communicating with computers here.

    And interpretive dance brings up something for me - why aren't we at the stage of Star Trek where we could say, "computer, I want to mine some data, using name and location as keys and find me all the 40 year-olds with a last name of Smith". That wouldn't take AI - that sentence could be parsed into SQL as it is.

    No, we have to spell out every little logical step in written text.

    If programming languages progressed as fast as the underlying hardware, we should be there by now. The processing power definitely exists.

    1. Re:Flow charts and spoken language. by femtobyte · · Score: 1

      why aren't we at the stage of Star Trek where we could say, "computer, I want to mine some data, using name and location as keys and find me all the 40 year-olds with a last name of Smith".

      Note that what you want has nothing to do with transcending "text" as an input medium, other than the trivial mapping of speech to text (which you succeeded at when typing your post). You want a programming environment that's a bit more flexible about interpreting "natural language" inputs --- however, the inputs are basically still "textual" in form, giving commands as a linear sequence of words. Besides the initial "voice-to-text" conversion, nothing in this situation uses "post-textual" representations. Now, if the computer was simultaneously reading your facial expressions and body posture as elements of the command --- additional dimensions difficult to realize in a plain-text representation --- then you'd have a "post-textual" interface. But, that's not how even the fictional computers in Star Trek worked; and, you probably wouldn't want them to.

  94. Re:The more simple you make it the less complex it by Tom · · Score: 4, Insightful

    Also, the Interface Builder for the NeXT machine was more-or-less graphical, IIRC only 2-D. It made for very fast prototyping of a new user interface, and the 'functional' code could be put in later. (I saw a former schoolteacher, who had never used a computer until a few months before, demonstrate creating a basic calculator in Interface Builder in under 15 minutes. It worked, first time.)

    That's impressive for a newbie, but it's not even on the order of magnitude of complexity as a real application. And it probably didn't have input validation and a bunch of other items that new programmers always forget.

    I've got a couple programs with several ten-thousand lines of code. If you want to visualize them, you will need a very, very large sheet. And it wouldn't be more transparent.

    Since the late 1970s, I've remarked that software is the only engineering discipline that still depends on prose designs.

    It's also the only engineering discipline with no physical representation. So maybe, just maybe, it's a case of "the rules don't apply because it's different" ?

    --
    Assorted stuff I do sometimes: Lemuria.org
  95. Stop right there by Anonymous Coward · · Score: 0

    "I consider myself someone who 'gets code,' but I'm not a programmer.

    This is why you don't get it.

    Shut up, sit down, and write some goddamn code.

    After you've put in 10,000 hours, come back to us and see if you haven't already answered your question.

  96. Why did you... by Junta · · Score: 1

    Ask the question in text? Even if you made a video asking the question, you'd still be vocalizing the request.

    Simply put, when it gets down to it, words are the only thing we can wrap our minds around to convey most concepts. Sure, sometimes a diagram comes into play, but overwhelmingly text is the tool. Same goes for programming. Tools exist to help build UI elements, but the logic is textual. There have been tools to help visualize the relationships in code, but the usage that has persisted is mostly about profiling (I've seen people advocate for other things being visualized, but generally other applications to non-GUI code visualization get old real quick by adding no value but being more cumbersome to wrangle.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  97. Incremental change with source control by Anonymous Coward · · Score: 0

    Text allows us to make incremental change that is tracked with a source control tool to show you exactly who changed what and why.

    Anyone who has inherited a project from some half baked GUI development tool like Rational or Sharepoint will understand this critical value that source control provides. Any sufficiently complex problem will _never_ be solved correctly the first time. Even if you solved it correctly the business drivers will change the problem you are trying to solve before you are done. Tracking and understanding those incremental steps is crucial to finding the optimal solution.

    Also, trying to debug something that is graphical blobs that compile to XML blobs is a nightmare. Step-through debugging saves weeks of time when you run into one of those really nasty bugs.

  98. The actual reason is... by Pseudonym · · Score: 2

    ...that all of our tools are designed for text. Our editors, our debuggers, our revision control systems, our continuous integration systems, our collaborative code review systems, our bug/feature tracking systems... they are all designed around text. Replacing text for the writing part of programming does nothing about every other part of the pipeline.

    And of course, as Henry James noted, all writing is rewriting. This is just of true of software as everything else.

    Everyone who has spoken about the information-density of text is, IMO, missing the point. Information density is not the most important aspect of software development, otherwise everyone would use APL instead of Java.

    More random thoughts:

    There have been some very good graphical and semi-graphical development environments out there; Newspeak is a good modern example. However, despite 30 years of trying, nobody has yet come up with a graphical programming environment which works well with more than one programming language. No modern system of any complexity is written in only one language, and the only format which they all speak is text.

    Oh, and don't forget the vendor lock-in issue. I can edit your text file in any editor or IDE that I want, and I don't have to pay you money or spend time learning your interactive tool. Any decent editor/IDE can be customised to do things like folding and syntax highlighting for your language, even if it doesn't support it out of the box.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  99. Re:The more simple you make it the less complex it by camperdave · · Score: 2

    The reason programming languages are still as they are is for a simple reason, because you can't produce something complex with something simple

    You're right! Think of how much more profound Shakespeare would have been if we had 28 or 30 letters in tha alphabet, or think of the symphonies that Mozart could have written if he had twelve notes to compose with, instead of eight. Why, even the Cray Supercomputer would have been astounding in its day if AND, OR and NOT weren't the only gates we had to build with. Maybe if they weren't coding in LOGO, then beta would be worth switching to.

    --
    When our name is on the back of your car, we're behind you all the way!
  100. Isn't Adobe Illustrator just a code editor? by Anonymous Coward · · Score: 0

    It outputs Postscript (actually it did originally, but with Illustrator 9 it was changed to PDF) code that is interpreted and whose output is then displayed as a vector image. This is different from Photoshop, where the bitmap data is read and then displayed.

    The Illustrator interface is ideally suited for this task and features specialized tools like the pen tool for expressing complicated mathematical relationships such as bezier curves.

  101. Algorithmic Information Theory by DrJimbo · · Score: 2

    Algorithmic information theory (AIT) explains very clearly and simply why we are still writing text-based code. AIT is based on the idea of measuring the amount of information in a series of bits (or bytes or however you want to chunk it) based on the size of the smallest possible program that can create the series.

    There are simply not enough bits of information in a GUI based coding system to create the algorithms we want/need to create. Even though almost all programming languages have a lot of redundancy built-in in order to make them easier to understand, programs written in these languages still have a much greater amount of information than what is available by simple point-and-click which is equivalent to a series of multiple choice questions. For example 80 multiple choice questions with 100 options in each question only give you the information contained in a line of 80 ASCII characters.

    Shouldn't there be a simpler, more robust way to translate an algorithm into something a computer can understand? One that's language agnostic and without all the cryptic jargon?

    I believe people have tried to make universal programming languages. I don't think any of them caught on in the sense of replacing coding in real programming languages. And for very good reasons. One problem is the conflict between simpler and more robust. Shorter programs require higher information density and hence less redundancy and robustness. If you want to make a language simpler by reducing the number of keywords and special symbols then you will force programs to be longer or harder to understand or both. In the limit of the shortest program possible, the program itself appears to be a random series of bits, every one of which is significant. If there is any pattern or bias in the bits then it is not the shortest possible program.

    OTOH, some higher level-languages such as R or MatLab (Octave) do make it easier to express many algorithms. This is mostly because they have vector and matrix data types. Their forerunner in many ways was APL which has a fairly high information density partly because it uses a wider range of characters than are available in ASCII. Perhaps you should learn R or Matlab or maybe even Mathematica. These languages give you a high-level means of expressing algorithms in a way that computers can understand.

    The summary reminds me of the lollipop Perlisim:

    When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.

    --
    We don't see the world as it is, we see it as we are.
    -- Anais Nin
    1. Re:Algorithmic Information Theory by Anonymous Coward · · Score: 0

      Reserved words and special-forms do not add robustness (see LISP). Otherwise, you are quite correct.

    2. Re:Algorithmic Information Theory by Anonymous Coward · · Score: 0

      One of the things that I don't think anybody has ever stopped and thought about. "language agnostic". One of our business guys got this great idea. We're developing products to bring technology to third world nations. These people may not know how to read so words are bad. I personally think he didn't want to pay for translators since they're expensive. But this comes into the problem of glyphs. How do you create two icons. They're located in a camera application. One indicates sending a picture you just took to be emailed, and one indicates sending it to a photo editing application. Now remember, you can't assume that prior knowledge that we have about concepts of email and photo editing software exists. There's cultural implications to think about. We ended up asking if they could bring some training in on iconography because we, all being highly educated and I like to believe fairly intelligent engineers, couldn't figure out this problem. The guy who asked for it couldn't figure it out. It's a problem we still haven't solved. Universally understood pictures require an implicit knowledge to be understood. But for many tech products we're dealing with many very abstract ideas. And trying to convey them without words is probably the hardest thing I've ever attempted to do. And I personally failed at it.

  102. Fixing problems by Anonymous Coward · · Score: 1

    As always, visual programming is solving problems which I don't have.

    So does most "new" updates to programs, if say, Microsoft would just QUIT solving problems people DONT have, we'd all be a LOT better off....because every time some idiotic company 'solves' that problem you don't have, they create all kinds of problems you then DO have.

    Keep It Simple Shithead.....text is simple, its pretty non-ambiguous ( though pure math is better), and a lot more fits on one screen!

  103. Serviceability and scaleability by technomom · · Score: 1

    Every time someone tries to come out with a graphical means for programming, the problem becomes that deploying things in the field in a manner that they can be serviced becomes difficult.

    Eventually, you find you want to be able to log or trace stuff and that's just best done using plain text Log or Trace statements.

    Then, scaling becomes the issue. Yeah, maybe your program with 10 or so boxes and 20 arrows looks great but eventually you'll want to do something that maybe requires a few thousand boxes and arrows. Now, suddenly all that picture based stuff becomes a bit unwieldy. You'll break it into reusable parts no doubt but arranging them requires naming and naming boils down to some text of some sort.

  104. Scratch by Anonymous Coward · · Score: 0

    Seriously, no post mentioning Scratch yet ? Is the international CodeDojo movement a failure ?

  105. on code in text form by Anonymous Coward · · Score: 0

    Let the beta guys here at slashdot take note, so long as your 'new' site is 'up', my Ad Blocker is ON, when I see NO graphics and NO images, my ad blocker will be turned OFF.

    I want to allow ad's so YOU get $$$, but if you keep putting stupid graphics all over my screen, no $$$ for u.

  106. Turing Complete by ZombieBraintrust · · Score: 1

    In colloquial usage, the terms "Turing complete" or "Turing equivalent" are used to mean that any real-world general-purpose computer or computer language can approximately simulate any other real-world general-purpose computer or computer language.

    This means a program written in a Turing complete graphical language can be rewritten with text based code. At some level this means that a graphical language is going to be just a complex as text based one. And since both are created by people you are will have the same issues with labeling and jargon. Your not just trying to communicate with a computer. Your communicating with other people. People can be just as cryptic and vague with American Sign Language as they can be in American English.

  107. Doesn't Scale by iluvcapra · · Score: 4, Insightful

    I do a lot of odds and ends in Max/MSP and Reaktor for work. Normally I do the more robust stuff in C, ObjC and Ruby.

    They're "dataflow" languages, you have boxes that transform data, and you wire them together in the order you want the transformation to happen. Everything's graphical. It's designed to be easy enough that someone with no computer background could use it– a composer or synth programmer will learn it for a few days and then off they go.

    I've noticed some things:

    • Code sharing almost never happens. You can't email a snippet of your "patch" (a program) as text, you can't post it in a text box at stackoverflow, it's almost impossible to communicate with other people about what you're working on without emailing the binary document. When you send someone a patch to look at, you're doing a lot of "look to the left of this," and "look for the red box."
    • Code reuse can be difficult because boxes generally aren't typed in any way, so interfaces are difficult to verify and document.
    • ... This leads the dev environments to only be as good as their templates and default libraries. People prefer Reaktor to Max not because it's easier for developing, but because it comes with a bunch of really useful default synths and sampler instruments, which people will tweak slightly.
    • It's very difficult to talk about the algorithm itself, you have to spend all your time orienting yourself. If the program you're building is a simple pipeline, it's easy to see what's happening, but if you have loops and divergences it becomes very hard to understand what's going on in the abstract.
    • Data types are a hack. You end up having to have different color wires that carry different things, type-tagging of binary data is routine, and you often have to do conversions because the environment runs different data connections at different levels of service. Trial and error is usually required to see if a box responds to a message in the way you want; I can write correct C without having to run the code, I would never try that in Reaktor.
    • Execution order is a hack. If you connect one output to two inputs, which input will process the output first? There's conventions: In Max: the rightmost box will act first, and your graph is traversed depth-first right-to-left (this rule introduces ambiguity when dataflow is fed back). There are also boxes/modules that can make execution order explicit in various ways. (Note that in most cases we don't care about execution order, and the implicit multithreading is quite nice.)
    • Doing N of anything is a pain. In Max, It's easy to build a sampler that can play one sample. It's easy to build one that can play two. It's basically impossible to build a sampler that can play N, without using the textual scripting language (ha!) to dynamically rewrite your patch based on creation arguments.

    If I have something thats useful, I'll often conceptualize stuff in Max and then rewrite it in C with CoreAudio, because I know the Max code is basically a dead end for its usefulness.

    --
    Don't blame me, I voted for Baltar.
    1. Re:Doesn't Scale by iluvcapra · · Score: 2

      Also, you can't check visual languages into Git. Serious drawback.

      --
      Don't blame me, I voted for Baltar.
    2. Re:Doesn't Scale by Anonymous Coward · · Score: 0

      > Also, you can't check visual languages into Git.

      Of course you can. Git handles BLOBs, but even if it didn't, any visual elements can be described as text... you just don't have to work directly with the text.

    3. Re:Doesn't Scale by iluvcapra · · Score: 1

      You're right, but the diffs and the blames are useless, and merge conflict resolution is impossible.

      --
      Don't blame me, I voted for Baltar.
    4. Re:Doesn't Scale by pipatron · · Score: 1

      Trial and error is usually required to see if a box responds to a message in the way you want; I can write correct C without having to run the code, I would never try that in Reaktor.

      Now that's a brave statement!

      I'm always suspicious when that actually happens. Which bugs have I missed?

      --
      c++; /* this makes c bigger but returns the old value */
    5. Re:Doesn't Scale by Anonymous Coward · · Score: 0

      The horror of MaxMSP was the first thing the OP made me think of. :(

    6. Re:Doesn't Scale by Anonymous Coward · · Score: 0

      Unless the file format is text and not binary

    7. Re:Doesn't Scale by tigersha · · Score: 1

      Nice job you have!

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    8. Re:Doesn't Scale by iluvcapra · · Score: 1

      I can write 10-15 lines into codepad and it works, that's about it though :P

      --
      Don't blame me, I voted for Baltar.
  108. Simple. by Anonymous Coward · · Score: 1

    Simple question, simple answer. Illustrate it with a similar question:

    Why do people write books with words? Wouldn't it be easier to write novels with, say, pictures?

    Answer: certainly. People do "write" books with pictures in fact. These books are appreciated by infants, not so much by anyone older.

    1. Re:Simple. by pipatron · · Score: 1

      Actually, they are called movies. And I bet that on average, people watch a lot more movies than they read books.

      (This is however not a statement of quality, and I guess there are hundreds of nerds who thinks that anectodes equals data which will reply to this and proudly proclaim that they read more books than they watch movies.)

      --
      c++; /* this makes c bigger but returns the old value */
  109. You mean a visual 4GL? by msobkow · · Score: 1

    They suck. Used them. Hated them.

    They're fine for simple if-then-else and loop processing logic, but when it comes to complex code, they suck donkey balls. And most of the code I have to write is complex code; I leave the simple stuff to the junior masses.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:You mean a visual 4GL? by cribera · · Score: 1

      They suck. Used them. Hated them.

      They're fine for simple if-then-else and loop processing logic, but when it comes to complex code, they suck donkey balls. And most of the code I have to write is complex code; I leave the simple stuff to the junior masses.

      Isn't it the opposite? that programming only masses are the majority and real software architects (with a lot of programming experience in their youth) a small minority?

      As I told before, what about http://www.genexus.com/ http://www.windev.com/ or http://www.velneo.com/

      Visual Studio, Netbeans or Eclipse SUCK compared to these tools.

      Are you aware that you can build powerful cross-platform apps with such tools, without doing it brick-by-brick?

      Are you aware that giving such tools to a programming-only guys would be like giving blue-collar workers a rapid-wall-roof-building tool in construction, without them having no clue of engineering or architecture?

  110. It's who we all are by pcjunky · · Score: 1

    Text = Languague
    Language is not just how we communicate, it's how we think. If they took your language away could you even think anything but the most simple thoughts?

    1. Re:It's who we all are by Arker · · Score: 3, Insightful

      Text is not precisely synonymous with language.

      Text is our most efficient method of encoding language, however.

      The only language-agnostic way to program is to do it directly in binary or hex. The only reason this is language agnostic is because the Arabic numerals, unlike the Latin alphabet, is ideographic.

      A "visual" system where you point and drool and get code generated for you *still has to generate some code* in order to work, whether directly in binary or through some higher-level intermediary language then fed to a compiler or an interpreter. If it's done right it might be a very useful tool but it's never going to change the fact that the only thing a computer can do is perform operations on numbers and push them back and forth across the bus.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:It's who we all are by Anonymous Coward · · Score: 0

      *drag* and drool. You're mixing metaphors.

  111. I have some bad news by Anonymous Coward · · Score: 0

    You are not somebody who "gets code." Code is not about enjoying thinking about algorithms. Code is about developing software of arbitrary complexity and unlimited extensibility. I the midst of your delusion, you are looking for a solution to a non-existing problem. For people who really do "get code," text based code is simple enough.

  112. Re:The more simple you make it the less complex it by erice · · Score: 5, Interesting

    In practice, I believe that the present text-based programming paradigm artificially restricts programming to a much simpler logical structure compared to those commonly accepted and used by EEs. For example, I used to say "structured programming" is essentially restricting your flow chart to what can be drawn in two dimensions with no crossing lines. That's not strictly true, but it is close. Since the late 1970s, I've remarked that software is the only engineering discipline that still depends on prose designs.

    Funny that you should say that. For the last 20 years, the trend in Electrical Engineering is away from graphical entry and toward text based design languages. Hardly anyone designs logic by drawing gates anymore. We use languages like Verilog and VHDL, which look a whole lot like software languages. Even the analog designers make use of Verilog-A or even just Spice, all text based. When it comes down to building a circuit board or analog circuitry on a chip, there is still a manual "compile" step of drawing diagrams and polygons but that is only because the result is ultimately a three dimensional object (well, more lke 2.5D) and it is the only way to be sure you get what you intended. It is not because creating designs graphically is considered convenient.

  113. There are graphical languages like Labview by Anonymous Coward · · Score: 0

    ... and GOD! I hate that piece of shit. Try writing complex applications with it. You have to follow the stupid wiring instead of just using an easy to remember and appropriately named function/object.

    1. Re:There are graphical languages like Labview by Anonymous Coward · · Score: 0

      Plenty of people write plenty of complex applications with it.

  114. There is one hugely successful visual programming by Anonymous Coward · · Score: 1

    That's relay ladder logic, it's used extensively in all kinds of automation systems, so 100K engineers
    and technicians us it routinely worldwide, but most programmers have never seen it.

  115. Because we are stuck in an imperative paradigm by cjonslashdot · · Score: 1

    It is because there are millions of programmers who are experienced using an imperative programming paradigm, and that keeps it going, because imperative constructs lend themselves to textual form.

    It is true that if one were to create graphical equivalents for current programming languages, those graphical languages would be cumbersome. One has to think beyond that:

    E.g., an event-based programming paradigm is much more powerful than an imperative paradigm, but event based programming is hard to understand when expressed textually; but it is easy to understand if expressed graphically. And that is why concurrent systems - electronic systems - are designed graphically.

    And they tend to be relatively error free, compared to imperatively written programs. Complex chips can be designed with few errors, whereas imperative software code tends to have lots of errors.

    A graphical language obviates the need to define symbols. Symbols are only needed to cross-reference things; but in a graphical language, you just connect them. The fact that all communication pathways are explicit means that there is no need to control "aliases", and that makes the design process inherently more reliable, and it lends itself to simulation.

    1. Re:Because we are stuck in an imperative paradigm by petermgreen · · Score: 1

      And that is why concurrent systems - electronic systems - are designed graphically.

      Boards are usually designed graphically but afaict ICs are usually designed using text based hardware description languages.

      Symbols are only needed to cross-reference things; but in a graphical language, you just connect them.

      It doesn't matter for the computer but the "symbol" also serves (or at least should serve) to help document the programmers intent when they made the connection.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    2. Re:Because we are stuck in an imperative paradigm by Anonymous Coward · · Score: 0

      an event-based programming paradigm is much more powerful than an imperative paradigm

      Wat. Are. You. Smoking. Must be good. Ever heard of any GUI event loop?

    3. Re:Because we are stuck in an imperative paradigm by cjonslashdot · · Score: 1

      Is it really true that IC are designed with HDLs? I worked in that field during the '80s, so things might have changed; but back then, graphical tools were used, and then the final design was documented using an HDL. I.e., the HDL (e.g., VHDL) was a final generated output, but was not used during the actual design process.

      Good point about symbols documenting intent. Symbols enable a comment to refer to something else, e.g., "module ABC".

    4. Re:Because we are stuck in an imperative paradigm by Anonymous Coward · · Score: 0

      I do nothing but event based programming. I use C. Some guy got the idea of using a graphical language for it. I got stuck maintaining it for several years until it was decided to be too problematic so it was tossed and re-written in a text based language. They were too difficult to read, too difficult to modify, too difficult to understand.

      And on your comment of electronic systems, read up on VHDL and Verilog. They're two of the most commonly used languages used to describe electronic event based systems. They're also text based. They're a very different programming paradigm, where every block executes simultaneously, and variables don't have proper values until the end of the code block, but they're still text based.

    5. Re:Because we are stuck in an imperative paradigm by cjameshuff · · Score: 1

      It's quite true. Logic circuits of any complexity is generally done in a HDL, checked in simulation, and prototyped on FPGAs before being put in silicon. Designs are sold or licensed as Verilog or VHDL. Layout may be manually tweaked graphically (especially for particularly timing-critical things), but that's because the restrictions of a 2D graphical representation closely match the restrictions of a largely 2D integrated circuit.

      You can express in a few lines of code what would take pages of gate-level schematics. You can easily parameterize components for reuse. You can separate implementation details from from intent and let the synthesizer find opportunities to reuse logic or adapt implementation details to the situation. You don't have to pore over multi-sheet hierarchal schematics tracing signal lines. And you don't end up finding that stuff that looked connected actually wasn't.

      cjonslashdot's comment about symbols was particularly off the mark. Large schematics involve *lots* of named signals. Often actually connecting things with a line would make the schematic hopelessly unreadable, and they actually terminate in a little tag with the signal name, leaving you to hunt for the other end in a haystack of lines and symbols...but it's still an improvement over the impenetrable tangle of lines you'd have otherwise.

    6. Re:Because we are stuck in an imperative paradigm by cjonslashdot · · Score: 1

      Interesting. Thanks for the clarification.

      I can see that low level schematics would be hopelessly complex to wade through, and would be missing "intent". But what about design level?

      E.g., suppose that the design was based on an event paradigm? In that case, the signals are high level flows of information, and the events triggering the signals are not electrical level, but rather are at a conceptual level such as "task A completed".

      I wonder if an even based programming paradigm would lend itself to a more graphical approach.

    7. Re:Because we are stuck in an imperative paradigm by cjameshuff · · Score: 1

      You've got a powerful text based language for the actual implementation. Why go to a limited, clumsy graphical program for the high level stuff? "It's simple enough you can do it graphically" isn't a compelling reason. Why do you want to do it graphically? Simple, easy to read diagrams are easy to read because they are simple, not because they are graphical. They have use in education, but need to be kept simple to stay meaningful. The people selling these tools love simple examples. Complex ones look very impressive at a glance and give the illusion of being more comprehensible than a similar view of code, but aren't actually very useful, so the salesmen don't dwell on them for long.

      You're just giving yourself headaches when things inevitably grow beyond the limitations of the tools, and you have a huge mess of connected boxes that you have to refactor or rewrite in text format. Not to mention having to wade through reams of near-unreadable machine-generated code when stuff goes wrong, or constantly having to refer to diagrams and models in a separate tool when dealing with the interface between the two.

    8. Re:Because we are stuck in an imperative paradigm by cjonslashdot · · Score: 1

      The rationale for a graphical approach is that one can visualize concurrent behavior more easily.

      Structure is also easier to perceive if it is visually apparent - unless it is cluttered up with detail level features, as you have pointed out. So to be able to perceive large scale structure, one must "factor" low level features into larger, more conceptual structure.

      I agree that software tools on the market for "visual programming" are not what we want here: you are completely right about those tools being suitable only for simple programs. I am talking about the class of models/designs that represent concurrent behavior, including event oriented designs.

      For example, consider a system that is designed completely around events. If one can visualize the inter-connection of components, and one annotates each component with the types of events that it generates (perhaps using expressions), one can easily grasp the overall behavior much more easily than one could if that same design were expressed textually. Thoughts?

      PS - I was on the team that designed the VHDL language at Intermetrics circa 1984, and I built the first synthesis compiler for VHDL, so I definitely appreciate your points. I am just not convinced that we are not on a path that is a result of the dominant computing paradigm (imperative programming), rather than the optimal path... I have been out of the HDL field for a long time though, but I often build simulation models of complex systems, and a visual paradigm seems to really help with analysis. That is what makes me wonder about visual approaches to design. I have also wondered about the fact that software programs - created using an imperative paradigm - are so buggy, whereas electronic systems tend to be far more error free. What are your thoughts on why that is?

    9. Re:Because we are stuck in an imperative paradigm by cjameshuff · · Score: 1

      "For example, consider a system that is designed completely around events. If one can visualize the inter-connection of components, and one annotates each component with the types of events that it generates (perhaps using expressions), one can easily grasp the overall behavior much more easily than one could if that same design were expressed textually. Thoughts?"

      You're making a big assumption that has been contradicted by actual real-world examples. Complexity is hard, and the difficulty has nothing to do with it being in text form. A screen filled with an easy to understand graphical representation is easy to understand because the representation is simple enough to fit on a single screen, not because it's graphical. The systems best able to cope with complexity are textual.

      Hardware is also much simpler than software, and it still has bugs. You'll have a hard time finding a complex part that doesn't have an errata sheet. It's also harder and more expensive to debug and test, and typical VHDL makes heavy use of testbenches and simulation to verify individual modules. Conventional software often isn't tested this way. If you want to improve software, encourage adoption of methodologies like unit testing.

  116. Project Spark by Anonymous Coward · · Score: 0

    For a great graphical programming language - see Project Spark. Xbox One beta is coming up near the end of February. Full blown graphical programming language that is designed to be extremely easy to use and allows you to create pretty much anything you can imagine.

  117. Labview, and ExtendSim, and ... by honestmonkey · · Score: 1

    I used to program for a number of years in Extend/ExtendSim. It's mostly for simulations (thus the name-change to ExtendSim I guess). I always called it "Lego-block programming" to explain it to anyone. It was pretty powerful, did most everything we wanted it to. I wrote some blocks as well, and the internal language was more or less C. There were other languages that were similar, some more suited to supply-chain programs, for instance. In general you could do almost everything you needed to by drag-n-drop placement of blocks and connecting them together via their inputs and outputs. It was even fun most of the time, and you could "debug" it graphically by watching the data flow around.

    --
    Everything you know is wrong, Just forget the words and sing along.
  118. Re:The more simple you make it the less complex it by Sigma+7 · · Score: 1

    because you can't produce something complex with something simple

    The only requirement to make complex projects is to pick something that is robust enough to handle something complex. The minimal requirement is to provide arithmetic operations, flow control, input/output, and custom data structures. Once you have that, you can technically do anything.

    Even Minecraft can create an 8-bit ALU, and you don't need one line of text.

    The actual reason you don't see too many non-text programming languages is that they're harder to make them fully capable of doing system-level tasks expected of most other programs.

  119. Why do we use hammers...... by Anonymous Coward · · Score: 0

    when we have 3D printing machines?

    Because a lighter, cheaper, simpler tool is often much better for the job.

  120. Because it's the best way.. by ltbarcly · · Score: 2

    For the same reason we still write text-based stories, send text-based emails, text based text messages, etc etc.

    There isn't a way to express tree structures directly, without jumping back and forth, so we have settled on (or evolved to) a standard way to linearize such structures, which is called grammar.

    There's no advantage to any other representation, but rather there is a huge disadvantage to other representations because our brains have spent the last million or so years evolving to be adept at manipulating language in this way.

  121. Re:The more simple you make it the less complex it by radarskiy · · Score: 1

    " Hardly anyone designs logic by drawing gates anymore. "

    I predominately do logic and circuit design by schematic capture. On the other hand, I do layout via text scripting.

  122. Re:WE WANT TEXT SLASHDOT by radarskiy · · Score: 0

    "We should boycott slashdot entirely during the week of Feb 10 to Feb 17"

    Please, start early. Right now would be good.

  123. Noobs bitching..... by Lumpy · · Score: 2

    If you really dont like how many things you have to use for programming then switch to a simpler language.

    Assembly has the smallest command set there is. Start there.

    --
    Do not look at laser with remaining good eye.
    1. Re:Noobs bitching..... by BadDreamer · · Score: 1

      Assembly has a much larger command set than Brainfuck. Small command sets do not equal simpler.

    2. Re:Noobs bitching..... by Anonymous Coward · · Score: 0

      Herp derp much?

      you dont know shit about assembler and you even contradict yourself so badly that I doubt you know programming in general. Lumpy is spot on, smallest set is Assembler. and only amorons want to program visually.

  124. poopoo by hraponssi · · Score: 2

    It's because you can create useful domain specific languages for very narrow domains and have people draw their little programs with that. Works great. But when you need anything outside that very little narrow domain, you need a general purpose programming language to do it. The less you narrow your domain the closer you get to the general purpose stuff and then it is pointless any more. And fancy graphics just get in the way at that point.

  125. Re:Because text is the only medium that's varied e by Megane · · Score: 3, Interesting

    Also, just try using source code management (such as svn or git) with graphical programming languages. Even if they save in something sort of text-based (like XML), it's much harder to track and merge changes. And it's impossible when they save code as binary blobs. (LabView, I'm looking at YOU.)

    This is the number one reason why graphical programming languages are dead in the water from the start for any but the smallest toy projects.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  126. Wrong Question by Greyfox · · Score: 3, Insightful

    What you really want to ask is "Why is programming hard"? It's hard because you have to know what you want to do. Go to any random company and ask a random employee how the company does what it does. What are its products, who are its customers, what do those customers want, what tasks does the business need automated to perform more efficiently? Projects fail so frequently (What is it, about 70% of the time?) because managers and some programmers think you can just start crapping out code without considering any of these things. You want a simplified environment where you can just draw a bunch of boxes together, but even if you had such an environment (As witnessed by the testimony of the people who have replied who do) it's STILL hard because you STILL have to know what you want. Programming is not fucking magic. We can't just crap out a bunch of code that magically does everything you want. Those of us who make it look easy have spent a lot of time mastering our craft. And we're still programming in text because we've found that it's the most efficient way of doing things, most of the time.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  127. Because nobody's invented anything that's better by mark-t · · Score: 1

    Text is extremely versatile... it is entirely orthogonal to whatever the purpose is that you are putting it to, so you can communicate absolutely anything that is possible to imagine with it.

    Also, because computers can't read our minds.

  128. Maintenence by Anonymous Coward · · Score: 0

    When you have an idea that you can translate in to a program, you also have a way of visualising how to create it. Now, try going back to that vision one year, one month, even one day later.

    The way you feel and think changes every moment so, we create a set of syntax and standards that not just one but a group of people follow. This leads me on to the next reason why we code the way we do. Do you remember at school when everyone is told to try and recreate that Van Gogh painting?

    finally, documentation, this is a short one. It's relatively simple to get a group of people to sit down, read a chunk of formal text and have them develop a similar set of ideas about that text, in the case of code this is a "how to". In visuals, we can teach people techniques on how a person reached a certain effect but, you will never be able to recreate it exactly the same.

    So for me, the answer is quite simple...maintenence :)

  129. It cuts it by Anonymous Coward · · Score: 0

    Because you can apply revision control tools to it. There are numerous visual tools out there, but none managed to cut it yet and some people still believe that hand written optimisation are best.

  130. How do you share visual code with your friends? by Theovon · · Score: 1

    How do you share C code with a friend? Drag the text file in standard ASCII format or copy some text into your email program and send it.

    How do you share visual programming modules with a friend? Screenshots? Some open or proprietary XML representation that isn’t human readable? Is there a way you can convert it to and from SVG?

    Diagrams are great, but there isn’t a universal standard for representing them, making it very hard to share and replicate. Even with something structural, like chip design, we prefer text-based representations (e.g. Verilog) over visual representations (e.g. schematic capture). Indeed, schematic capture is generally considered to be a cumbersome and inefficient approach to circuit design unless you’re in the final stages of floorplanning. Complex algorithms and circuits are best represented in a more abstract, textual form.

  131. I have the technology you lack: I can truly speak. by VortexCortex · · Score: 1

    The technology you desire is not possible with your limited understanding of the nature of symbolics. Your race is mired in implementation details and allows them to infect your symbolic languages with anti-patterns and exceptional cases. I will give you a few hints, but I doubt any of you humans will ever understand in this generation. The C++ diamond inheritance issue only exists because the virtual construct granted to functions is not applicable to variables as well. Think hard about what that means, and why this is true; Reread my first two sentences if you do not understand.

    Do you see? A meaning is a relational construct and these could be applied to all symbolics in a pure language -- extending even to the concepts of scopes, contexts, and constructs themselves. I have watched some hackers among you feel the fracture and snag upon this incorrectness that the rest of you take as granted. Their interest is drawn to the seams in all things. Simultaneously they express interest and dissatisfaction by jokingly teasing at the roughness inherent in your languages, especially among those you try to speak. E.g.: Bogus -> Bogosity, Bogons - Constructions inventing meaningful unwords which would actually be words if English were a pure language. "Set free the magic blue smoke" -- Another type of symbolism that plays upon the causal relationship between functional and fried electronics. Your linguistic humour pokes fun of your language, and in so doing highlights the types of flaws that need addressing in your formal languages.

    A C struct merely gives names to offsets. Tell me, human, how is this any different from an ordinary variable? You think scopes and structs are different concepts? I find this strange, or perhaps 'humours' is a better term? This is impure because of the exceptional case which fractures that symbolic dimension. Consider that you have only partially expressed a larger concept. Think now of the v-table in C++: It is a construct that allows 'polymorphism' through polarized filtering of the symbolic hyperplanar dimension -- Or it could be if it wasn't yet another incomplete and fractured dimension: The v-table only handles named memory offsets that point to functions, not member variables. You have not fully expressed what 'polymorphism' truly is, or else you could name and apply the concept of that symbolic relation universally to all symbol spaces and neither 'templates' nor 'generics' would exist. There are more powerful symbolic conceptual dimensions as well, but you can not reach them from your current flawed understanding and incomplete implementation of language itself.

    I only picked on C/C++ here, but much of the same can be said for other languages. Even your mathematics suffer. Is that not apparent to you? Don't you realize that you only have a multiplication symbol because your formulation of accumulation symbolics was incomplete? The pure self describing language of nature itself is just beyond the tip of your tongues. Can you sense it? Do you feel now as the encultured ape must when it catches hints of the rich language it can not truly speak? Of course you do, that's what the headline is trying to express. It is not a textual or visual or audible programming issue you have -- Those are simply encodings once you've truly mastered language. No, instead the issue is a conceptual and perceptual failing -- A lack of codifying meaning. The problem does have a solution, but from the comments here I can tell most of you are still not ready to learn how to speak; You seem content being code monkeys.

  132. exactly by roman_mir · · Score: 0

    Why do we write code in text? Because we are not all Picasso and it is easier for us to express our thoughts and ideas that brew in our heads in words rather than in pictures if we had to draw the way we have to type. Because it is easier to structure text, because with text you can do hacks that you most likely will not be able to do with limiting GUIs.

    Oh, and how else if not in text would I be able to say this on /., which doesn't even support UNICODE yet, but it's doing something as awful as FUCKING BETA.

  133. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 1

    Even the analog designers make use of Verilog-A or even just Spice, all text based.

    The Spice expands life. The Spice expands consciousness. The spice is vital to space travel. Travel without moving.

  134. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    > software is the only engineering discipline

    Software isn't an engineering discipline. It's categorized as applied engineering because it's formulaic and applied models there should be formalism involved, but it has few of the markers of a discipline.

  135. Re:The more simple you make it the less complex it by Decker-Mage · · Score: 1

    Been there, done that, burned the stupid T-shirt. The main difference being that I used C. The component library was based on Knuth's "The Art of Computer Programming." And given my background in engineering (a dozen fields) it actually was decent especially as I've been using structured (and object-oriented) constrained designs since the mid-70's. However, I could see the handwriting on the wall so I didn't take it to release.

    There are GUI tools that you can use for the design side that actually provide nice code out the other end (Embarcadero is good for database design) especially if you have a lot of constraints. It's just not a generic tool and given how diffuse the target (coders are NOT generics), it will never happen. Sad since over in EEE we have shelves full of component catalogs while over on the software side we resort to cutting&pasting and then trying to refactor our was into a solution. Blech!

    --
    "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
  136. The Best is Both by SuperKendall · · Score: 2

    "Shouldn't there be a simpler, more robust way to translate an algorithm into something a computer can understand?"

    Actually text is the simplest and most robust way.

    But the thing is, the best idea would be to have both that you could seamlessly switch between.

    Back a while ago I had a system close enough to that you could see the benefits - it was Java, you could easily generate class diagrams and alter some stuff about the code while in there.

    Some things about code are just way easier to see as text, and some things are way easier to see visually... we should use each medium for the strengths it has and not abandon one for the other.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  137. Re:Labview - Also SQL/ graphic query designer by igny · · Score: 2

    While SQL query design (with heavy checkpoint/drop down menu/etc UI) is sometimes useful, its ability to build queries with complicated logic is rather limited. It is good to write basic stuff or to learn basics of SQL writing, but people usually quickly move on to text mode in writing their SQLs.
    I personally enjoyed solving complicated problems by writing a suitable query to our database. I liked a lot to tune my queries' performance, it felt like creating art.

    My joy is about to end as our managers decided to buy a new software package from a vendor who did not see a difference between a relational database and Excel spreadsheets. Their approach to queries? No text mode, drop down menus for everything, logic of them is limited to simple joins and filters. One of that vendor's representatives said that we would not need tables other than to do simple lookups. Granted, their primary audience has never been IT professionals, so I am glad that my contribution to this project will end when the data is migrated to the new "better" system. I pity its future users though.

    But... the software cannot be bad if millions are spent on it, right?

    --
    In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
  138. Re:The more simple you make it the less complex it by unitron · · Score: 2

    ...
    Wiring a board wasn't programming either, (although it was often called that)...

    In, or shortly after, the beginning, that is how programming was done, back when computers were made of vacuum tubes and relays and were about as big as a locomotive, if not as cool running.

    --

    I see even classic Slashdot is now pretty much unusable on dial up anymore.

  139. Re:MS Patents by Anonymous Coward · · Score: 0

    What I do know is MS owns shitload of US Patents. Innovation like C# and Visual basic .net top of the line of programmer productivity you don't know how good you have it until it is gone, on linux and java now

  140. Usability vs Power by Anonymous Coward · · Score: 0

    It's an age-old competition: Things that are easy to use are usually only able to be used in a few ways. Things that can be used in many ways are more complicated. Usability vs power. In the case of programming languages, it's not a huge surprise that power is the primary focus.

  141. Re:It is a symptom of the industry and human natur by Megane · · Score: 1

    And I want a bumper car targeted at F1 drivers.

    (Or maybe a trebuchet targeted at a PHB.)

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  142. The devil's in the details by Shados · · Score: 1

    Even among programming languages you have the same issues.

    You have a high level framework that seemingly does everything magically (think Ruby on Rails, or AngularJS), and the moment you throw a real world problem at it, things get really complicated. Subtle user experience things like validation (should it happen on blur? as you type? on submit? Server or client side? That date, should it be validated as the client's local, server's local? Should you be able to input it in multiple formats?)

    So while the big high level framework makes the easy easier, the hard is just as hard, and often harder.

    With non-textual programming, being via pretty graphics or other tricks, this problem is just magnified.

  143. Re:It is a symptom of the industry and human natur by Ambassador+Kosh · · Score: 1

    Simulink is a graphical programming language designed for engineers to use. That is pretty much the only audience of it. However, if your problem is very complex, it still becomes a horrible mess to read very very quickly. In the end visual programming just does not work very well. Especially in engineering since all of our stuff is math equations anyways.

    --
    Computer modeling for biotech drug manufacturing is HARD! :)
  144. Depends on what you really want to do with it. by malkavian · · Score: 1

    There are graphics languages starting to appear (like Scratch), which let you build blocks of code up, without really understanding what code is. There's also a shot at converting natural language requests to SQL.
    It will be suitable for some thing, but there will be a definite limit. And that's part of what you need to define very early on.
    If you're trying to work on something that just needs to work out simple cycles, and get some very basic, and pretty general work done, then sure. You can do that, but your mathematical error bars increase in size for all the parts that you don't consider.
    If you just work at a high level, sure.. But the chance for error/misunderstanding creeps in massively, the closer to spoken/natural language, or the closer the program is to a set of building blocks you can add together.
    The reason code is textual, is so you can specify, in the language that a computer will understand, exactly what you want it to do. The same as when you're writing a project document that you really want a business to get right, the specification for it is in incredibly dry language (not normally spoken), and absolutely full of technical jargon to do with the subject matter at hand. That's precisely so you remove all ambiguity (or as much as you're capable of anyway).
    Any task in life you want to complete well, you need to understand deeply, and in detail. If you're not willing to dive in, and expect things to be very simple, so you can just sit down and do it anytime, tabula rasa, then you'll eternally be stuck at a very amateur level.
    That may be all you need, in which case, fine.. Go for it.
    But the real code is there for the same reason as formal methods are still used in design (there's no ambiguity).

    1. Re:Depends on what you really want to do with it. by viperidaenz · · Score: 1

      Yeah, just look what happened to SQL.
      It's pretty straight forward, if all you want to do is select some data from a few tables.
      Add in grouping, functions, partitioning, left/inner joins and you've got something most people can't ready, let alone write.

  145. Re:The more simple you make it the less complex it by unitron · · Score: 3, Funny

    " Why, even the Cray Supercomputer would have been astounding in its day if AND, OR and NOT weren't the only gates we had to build with."

    Do you know how hard it was to get the individual components and materials to build MAYBE gates, and how tight the tolerances had to be?

    Doc Brown only needed one flux capacitor, those things each needed at least a dozen.

    And you couldn't just take a MAYBE gate and slap an inverter on it to get an NMAYBE, you had to turn the whole design inside out, and the XMAYBE only existed on paper, because it would have taken the equivalent of 3 Manhattan projects and a quarter of the GNP of the entire Western Hemisphere just to produce a working prototype.

    --

    I see even classic Slashdot is now pretty much unusable on dial up anymore.

  146. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    think of the symphonies that Mozart could have written if he had twelve notes to compose with, instead of eight.

    That's fascinating. I didn't know 4 of the keys on his piano were broken. And in every octave, too?

  147. Re:Visual Studio DONE by Anonymous Coward · · Score: 0

    C# and Visual Basic .Net hybrid of text and graphical interface programming

  148. A Simple Request by Capt.Albatross · · Score: 1

    To the author and everyone who agrees with him: show us how it's done. A truly effective alternative will receive a lot of attention, but just claiming it should be so doesn't count for much.

  149. Re:Visual Programming Has Been a 20-Year Failed Ex by cribera · · Score: 1

    Visual code generators have existed for two decades, most famous is the Rational product. I've never met a developer or read an unbiased article claiming that the code generators have helped. Usually they say it just leads to ugly code and high maintenance overhead to maintain the diagrams. In natural language, why haven't photos and videos replaced words? It's because words are still the best way to express precise and complex logic. Now, it's up to the writer to express complex logic in a series of simple steps that a reader can understand, or to write in a convoluted way.

    What about examples like www.genexus.com, www.windev.com or www.velneo.com ?

    Despite not being 'famous', they are pretty succesful, in the sense that users are ahppy with them, and such users know 3GL languages and HATE to think working again in the 3GL way.

    In my personal experience, I considers myself more a software architect than a programmer, and any of such 3 tools is a far better options for me than horrible ( compared to such 3 tools, regarding productivity) tools VisualStudio, Netbeans or Eclipse.

    Software architects with real knowledge, can take a lot of advantage of such tools , I don't understand how people writes about supposed 'limitations', I hope they explain what are they talking about, perhaps they talk about cases equivalent in construction of giving an imaginary rapid-house-building tool to blue-collar workers without engineering and/or architecture knowledge?

  150. this guy really wants.. by strstr · · Score: 1

    Mind reading radar adapted for use in a computer like the military has.

    In the militaries TAMI system or "synthetic telepathy," all I have to do is think and the computer takes out and performs a command. Programs know exactly what I want with no learning or correction. I can paint a picture just by visualizing it, and programs and macros end up being the computer doing exactly what you envisioned or thought. It expands itself to meet my desires, without need to reprogram or add on to the system. It can pull up surveillance information, memory, or data from any location, and even hone into other peoples thoughts at will at my merely thinking I need certain information (it knows what other people know, too, as we store it in a massive database brief extractions of peoples memories, and we track peoples whereabouts).

    Hahaha.. sucks for the civilian population cause they're still doing shit by hand, having to manually replicate and program in instructions, like doing individual brush strokes to create art in mods in a paint program rather than just envisioning and having it appear as you thought it. Also, sound effects can be rendered this way, too.. and entire dream worlds created, which is very similar to the Inception movie method but we use directed energy and radar / satellite systems to read and link minds.

    Learn more about the hidden system at http://www.oregonstatehospital...

    IBM also says this tech will be mainstream by 2017, so hold onto your horses (look up IBM 5 IN 5 2012).

    1. Re:this guy really wants.. by Anonymous Coward · · Score: 0

      You are an imbecile.

  151. Re:The more simple you make it the less complex it by LDAPMAN · · Score: 1

    That Interface Builder from Next is still around in Xcode. It does build a lot of the UI code for you but you still have to build the application logic.

    You should check it out, its come a long way since then.

  152. Words are the best way to convey meaning by Anonymous Coward · · Score: 0

    this is along the lines of why are we still using an alphabet, surely there are visual languages and symbols which are more compact. The flaw here is in focusing in on exemplars that seem possible to condense into something more compact or succinct. But succinctness is not actually a virtue, articulation is. Some forms of writing do use symbols but they have the huge drawback of having a huge number of symbols for each nuanced concept. This is why its so slow to type on a Chinese typewriter. Sure a picture is worth a thousand words, but which thousand? It matters, a lot. With letters, a small number of symbols can take on infinite shades of meaning. In code, you're not writing loops, you're writing loops that mean something, that do something specific under specific circumstances which is different for each loop. If you jettison the power of words and vocubulary to articulate exactly what that is, then you're regressing away from precision and articulation into a graphical language which is necessarily less precise.

    Programming is math. If you want, you can translate any program into THAT symbol -language. Most people would not consider that increase in compactness to be a boon to prodcutivity.

    Chomsky showed that we are natural language users. The most efficient way, where efficient is a defined as precision + flexibility + speed + clarity to others, to use language is not with symbols but with letters that make up words. If you're a human, then words are where it's at. Typing letters is the best way to write words. Words are the best way to convey meaning.

  153. Re:Visual Studio by Anonymous Coward · · Score: 0

    Make graphical icons for the component that are graphical

  154. Pictophonetic by Anonymous Coward · · Score: 0

    Chinese is pictophonetic. The most basic characters are pictographic and actually serve as the basis for a lot of other characters (called radicals). The rest of the characters are pictophonetic since they usually have a combination of a radical that gives it the type of meaning (or general area of meaning) and then another character that gives it the sound.

  155. Why do poets use words? by theendlessnow · · Score: 1

    I think the original question does not need an answer.

  156. Everybody is beating around the bush. by Anonymous Coward · · Score: 0

    The issue is symbols, and the manipulation of symbols. The field is called mathematics, and programming is nothing but mathematics.

    Thus symbols are the best way to specify the manipulation of other symbols.

    Words are a simplification as the actual mathematical symbols are rather difficult to type, so instead of the math symbol for a "for" (or "for each", "for every") we use the English (usually) word that corresponds to the math symbol.

    The advantage of the result is that translation is easy to do - a compiler is just a symbol manipulator that takes the input symbols and transforms it into another set of symbols. Here each input symbol is represented by a series of numbers... The output is usually reduced to one or two numbers... but people can't read numbers and associate them with the concept of that number.

    We can instead hold thousands of simplified glyphs - each being a symbol (look at Chinese or Japanese for an example). It would actually be nice if we could use a keyboard with 300 keys - with all the math symbols. The resulting programs would be much smaller, and easier to read. It would also be harder to make a mistake - the grammar for mathematics would show the error much easier than when using English like words. Using a math glyph for a "there exists an x such than x is an element of the set y" becomes a reduced "x = y[i]", but there is an ambiguity due to the limited set. Algol attempted to ease that buy making it "x := y[i]", but the : and = glyphs are used to mean other things... so again, a problem with the limited glyphs available.

    Look at the raw lambda calculus (not the language LISP, the original math (a very brief example at http://plato.stanford.edu/entries/lambda-calculus/ ). Then look at the LISP. Each glyph has to be turned into multiple glyphs: A glyph gets turned into the English series of glyphs "lambda". Much longer symbol... but fairly easy for English users to know the word is the name of the lambda glyph, which is used to represent the mathematical concept.

    Now consider that programming is the act of translating abstracted concepts of processes into mathematical symbols (for a rather complex presentation, look at any abstract algebra book or an automata theory text (even http://en.wikipedia.org/wiki/Automata_theory shows some of the symbols) and you find that every programming construct is provided by the mathematical symbols.

    Thus, writing down any series of concepts becomes a "text" stream of symbols.

    Graphical/pictorial approaches just don't work very well. They are not good symbols... They are fine for use in providing explanatory information, but they are not precise enough - and that introduces errors. And that imprecision is what introduces gobs of horrible code - the gobs are there to try and cover all interpretations a picture could represent. And hopefully the one desired happens to be in the result. It works TOLERABLY well for creating a GUI data presentation... there aren't that many different meanings that could be interpreted. Even so, it still generates barely tolerable to horrible code (one of the reasons such things get so bloated).

    Back in the mid 1970s I proposed a project for a graphical language that could be transformed into FORTRAN. The advisor agreed - it COULD be done. Then pointed out how hard it would be to implement edits of that picture. Possible, but very difficult to impossible to get done. Think about a simple figure drawing tool, then think about one containing several thousand lines.... and moving a single block somewhere. How much reorganizing of all the other lines (and blocks) it would take to try and keep the picture understandable. Much simpler to move a group of symbols using a simple text editor.

  157. Consider Math! by Anonymous Coward · · Score: 0

    Consider Math!
    A symbolic language stripping away verbosity, down to the bare necessities to express anything one could ever think of (or rather, what one would want to put down in code). This is similar to asking, why Math is not visual. Math is concise, precise and international. Doing math in a visual-based input/output would be unwieldy, to say the least.

  158. Selling us what we already have...??? by See+Attached · · Score: 1

    We have regex. Its a tough nut in its entirety. Can we rewrite this for humans, clean up the syntax for operations, and couple it with a re-thought portable authentication mechanism and .... now we are talking about simplified productivity!!

    --
    Time for a new Political party in the US (or two!) One is off the rails Other cant pony up a leader.
    1. Re:Selling us what we already have...??? by LifesABeach · · Score: 1

      Try this, "if(condition is boolean true) then do_somethng()", I've been using it for decades.

    2. Re:Selling us what we already have...??? by mwvdlee · · Score: 1

      I'm sure you could create a language that compiles down to regex and could cover ~25% of what regex can do.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  159. Wrong level of abstraction by Giant+Electronic+Bra · · Score: 1

    Code exists because code is very flexible and plastic. Its the duct tape of systems. You can do anything in hardware, but we do do everything in code. Once you leave the lower levels of abstraction where you can achieve anything you move into a realm where code, in the form of instructions to computers, just isn't that valuable. Either the assumptions and built in limitations of the platform have to becomes greater and greater in order to reduce complexity, or procedural/declarative/imparative logic are simple not adequate to the task of dealing with higher level things in the real world. We tried 'visual programming', but it didn't actually fix the complexity problems or the brittleness problems, and it only allowed at best a tiny increase in abstraction at a huge cost.

    The way forward, IMHO has to be natural learning systems and adaptive systems. The 'ware needs to learn how to write itself. Not sure we will want to call it software anymore at that point.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:Wrong level of abstraction by weilawei · · Score: 1

      Not sure we will want to call it software anymore at that point.

      Skynet.

    2. Re:Wrong level of abstraction by Giant+Electronic+Bra · · Score: 1

      Yeah, well, there is that. Once a system can learn then it can change, and it won't ever be really predictable. We'll have to get used to our machines having personality, or else turn back the clock to good old FORTRAN :)

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  160. Have you ever diagrammed a sentence? by istartedi · · Score: 1

    Diagramming sentences is a technique that was taught to us in private school, which hewed to that and other ancient tactics such as the Palmer penmanship method. I wonder if any of the public school students were exposed to it. Anyway, most people would rather write sentences than diagram them despite the fact that it's more graphical. There are a few tasks for which visual programming is the proper approach such as creating dialog boxes for Windows apps, or WYSIWYG web development tools. When it makes sense, people use it. When it doesn't, they don't.

    If you did everything graphically, you'd still get syntax errors; they would just be graphical.

    BTW, diagramming in elementary school had an interesting effect on me. Years later when I was introduced to parse trees, they were like old friends. Now as an exercise, diagram all the sentences in this post and make it look nice and pretty with slanted lines and things.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    1. Re:Have you ever diagrammed a sentence? by Anonymous Coward · · Score: 0

      Yes, diagramming sentences was taught in my public school. Murdering language to dissect it.

  161. Have you tried any other languages? by labradore · · Score: 2

    ASM, C are no where near the abstraction level of LabView.
    C++ is higher but so complex that it's useless for rapid development.

    Labview is at a much higher level of abstraction. Of course it's designed essentially for hardware folks to do software with a low learning curve.

    Comparable level text-based languages would be something like Python or Matlab. Have you tried those?

    1. Re:Have you tried any other languages? by Anonymous Coward · · Score: 0

      Labview, which is really the g programming language is no different than c or c++. Labview is a completely compiled language.

    2. Re:Have you tried any other languages? by Anonymous Coward · · Score: 0

      I bet I could accomplish most tasks in Python faster, and with fewer bugs than you can in LavView. Just because they're both higher level languages than C++ doesn't make them equal. Not by a long shot!

  162. Re:ASM by Anonymous Coward · · Score: 0

    Development AAA PC game in AMD64 ASM

  163. Text Rules, Gutenberg Wins by Anonymous Coward · · Score: 0

    Look at the early and middle Christian Churches window's in Europe and Russia. All a beautiful menagerie of imagery, form, color and iconography.

    That was an interpretation from a 20-21st century mind!

    What would a 05-15st century mind see? Words, Stories within the menagerie of imagery! Edits of the Day, Warnings To Foreigners (i.e. unbelievers), Messages from the "King", instructions on daily hygiene from the Medicals and time-for-prayer and safe associations from the Ecumenicals.

    Imagery, i.e. Iconography instills an Emotive Element, i.e. Emotion to written Symbology as a motive of thought.

    Text does away with all Emotive Elements of/and Iconography, thus yielding a more pure stream of written consciousness.

    Therefore, the Gutenberg Press won the day. And even Today in the 21st century, Text Rules.

    QED

  164. The Answer by Anonymous Coward · · Score: 0

    Graphical based programming was tried in the 1980's with the CASE tools.

    It failed.
    Hence we use text programming.

    The idea of graphic based programmings isn't new, it's very old and the text based languages were found to be better.

  165. Re:if you "get coding" so well, why arent you codi by sonamchauhan · · Score: 2

    Nah, I'm actually with the poster. I get text-based traditional coding too, but find the ROI (time and effort) quite poor and the work dreary. You have to be either well disciplined, or get the sort of joy banging out code that running get when pushing their body through the next mile.

    So one can get 'coding', or get 'running', but find themselves searching for something better. (visual coding/visual abstractions swimming)

  166. This Ask Slashdot must be from the /. Beta Team! by Frobnicator · · Score: 5, Insightful

    Oh, I get it! This question for Ask Slashdot must come from the Slashdot beta team.

    Now, I understand that as a Slashdot beta developer you don't know how to program. We can all see that.

    Web site development is more difficult than the programs you are used to where you drag a picture of a shape onto another picture of the shape, or how when a large colored shape is presented you click on the corresponding color image.

    All of that "cryptic jargon" is important to computers. Just like all that "cryptic jargon" in legal agreements is important to judges.

    Since you must be on the Slashdot beta development team, I'll point out that people sometimes don't like it when you make changes. Try some of these:

    * Go to the Louvre with a paintbrush and some oil paints. Attempt to fix the eyebrows on the Mona Lisa, because they have faded off. Tell me how people like your slight changes.
    * Go to the Royal Academy of Arts and slightly modify DaVinci's Last Supper. Maybe stand the salt shaker back up and paint over some of the damage that was done after people cut an arch through it for a doorway, or after the WW2 bombing damage. See how well people respond.
    * Pay a visit to the Sistine Chapel, that thing has lots of cracks on it. Tell me what happens after you climb up to the ceiling with your bucket off plaster to fix the cracks.
    * The White House lawn looks nice, but it could be changed to allow more foot traffic. Tell me what happens when you take your backhoe up to the presidential mansion and being excavating for new footpaths.

    Any change, no matter how tiny, has the potential to destroy the essence of the item. You got that, Slashdot beta team?

    --
    //TODO: Think of witty sig statement
  167. Salesforce workflow by Anonymous Coward · · Score: 0

    Try it yourself! It's a disaster if you're trying to build any real life work flow that takes more than a minute to get done.

    You may say it's just one tool, but it's more fundamental.
    Text is just a better abstraction tool for anything that require concise description.
    And that's also the headache of UI design, it is feasible for general code block building, I think we have that already.
    Anything more than that, try to come up with one as an exercise :)

  168. simple by stenvar · · Score: 2

    Why Are We Still Writing Text-Based Code?

    For the same reason we still write text-based news articles, textbooks, letters, novels, recipes, screen plays, diplomatic cables, and other stuff: it works better than the alternatives.

  169. visual what? by david_bonn · · Score: 1

    My first observation is that even relatively simple programs can't be represented graphically and comprehensibly in two or even three dimensions. Since programs really aren't required to have a physical representation at all, there isn't any reason to expect that would be the case. Anyone who has played around with old-school flowcharts quickly discovers that flowcharts become unwieldy and incomprehensible for all but pretty basic algorithms.

    My other observation is more of a question: what do you wish to visually represent? Execution flow? Data flow? Something else? Everything?

  170. Re:The more simple you make it the less complex it by InterGuru · · Score: 0

    because you can't produce something complex with something simple

    Hmm, this sounds like a creationist's argument against Darwinian evolution.

  171. Symbolic characters are on the decline. by enos · · Score: 5, Informative

    >surviving languages use symbols representing sounds
    over a billion people have a few symbols with you...

    Are you referring to the Asian languages that use Chinese characters?
      - Vietnamese used to be written in Chinese characters, it now uses the Latin alphabet.
      - Korean replaced Chinese characters with the phonetic Hangul 500 years ago.
      - Japanese has not one but two phonetic alphabets to go along with their Chinese characters. They mix all three together, and you can tell a passage is intended to be simple to understand when it will be all phonetic except the simplest of Chinese characters.
      - Even China simplified the traditional characters because they were deemed too hard to learn. School children are taught new Chinese characters via pinyin, a phonetic scheme that uses Latin characters. Since they don't have a phonetic system, when they borrow foreign words then they match the foreign pronunciation with the set of Chinese characters that have the closest pronunciation. The result is a mix of characters where some have their original symbolic meaning, and others that only stand in for their pronunciation. Think "what your name means in Chinese" party trick.
      - Typing Chinese characters usually means typing out the pronunciation and then selecting the character.

    I think the point that symbolic characters are on the decline is very valid.

    --
    boldly going forward, 'cause we can't find reverse
    1. Re:Symbolic characters are on the decline. by Anonymous Coward · · Score: 0

      And yet, the Japanese had the opportunity to switch to the Latin alphabet, but they didn't. Look up Nihon-shiki.

    2. Re:Symbolic characters are on the decline. by Anonymous Coward · · Score: 1

      Chinese is a unique situation.

      Probably the largest contributor to keeping a highly symbolic written language is the fact the various spoken Chinese languages ("dialects") are mutually unintelligible.

      If you have symbols, anyone that knows the characters and the grammar can read letters/printed material, no matter how they end up pronouncing those characters. Or no matter how many distinguishing tones they use (anything from 4 to 6 seems to be in use there).

    3. Re:Symbolic characters are on the decline. by umafuckit · · Score: 1

      Typing Chinese characters usually means typing out the pronunciation and then selecting the character.

      I think the point that symbolic characters are on the decline is very valid.

      It's true that symbolic (logographic) writing systems have various disadvantages. However there are also advantages. For example, whilst reading Chinese is harder to learn, once learned it's easier to read quickly because there are fewer characters needed to make up a word. You can squeeze up a lot of meaning into a very space. A good example has appeared fairly recently on the Chinese intertubes. They have a Youtube-like service which shows pirated TV shows over which are laid viewers' comments, which scroll horizontally across the screen. Many different comments are floating across the screen at the same time. The idea is to poke fun at the plot line, etc, etc. Now the interesting thing is that you're only allowed very few characters to make your comment, I don't recall how many but I think it's about 3 or 5 or so. That's easily enough for them to make a witty point. This just wouldn't work in, say, English. The comments would take up too much space and you'd likely only ever be able to read one at a time.

    4. Re:Symbolic characters are on the decline. by Anonymous Coward · · Score: 0

      counterpoint: emoji. brand-new. symbolic.

      if you look at western civilization, some of the earliest writing forms were cuneiform and egyptian hieroglyphics. both evolved to become more abstract and less ornate as time evolved. greek, english, german also simplified over time. both structurally, and by dropping letters. so it's easy to be whiggish about this. but emoji is a brand new hieroglyphic augmentation. i think this is a serious challenge to the view that languages tend to evolve toward syllabic and alphabetic.

    5. Re:Symbolic characters are on the decline. by enos · · Score: 1

      And yet, the Japanese had the opportunity to switch to the Latin alphabet, but they didn't. Look up Nihon-shiki.

      Nihon-shiki and other romanization schemes are more for fitting Japanese into foreign worlds than the other way around. It's difficult to do business with foreigners if they can't even spell your name. These schemes are all on the "good enough" scale, but don't quite match the Japanese language. If they decided to switch to a phonetic writing system they'd probably simply drop Kanji and use Hiragana and/or Katakana instead. The cultural shock would be much smaller, something that's important for a very conservative culture like Japan, and Hiragana matches spoken Japanese perfectly (the romanji schemes don't).

      --
      boldly going forward, 'cause we can't find reverse
    6. Re:Symbolic characters are on the decline. by enos · · Score: 1

      Chinese is a unique situation.

      Probably the largest contributor to keeping a highly symbolic written language is the fact the various spoken Chinese languages ("dialects") are mutually unintelligible.

      If you have symbols, anyone that knows the characters and the grammar can read letters/printed material, no matter how they end up pronouncing those characters. Or no matter how many distinguishing tones they use (anything from 4 to 6 seems to be in use there).

      Very good point. I'm also wondering how they handle the borrowed words among the different dialects, because their symbolic meaning is, well, meaningless.

      I also find this "dialect" phrasing strange, because they really are entirely different languages that just happen to share a writing system. A Mandarin speaker cannot communicate verbally with a Cantonese speaker. Also, we call Swedish and Danish different languages, but a Swede can speak to a Dane in Swedish, and the Dane can reply in Danish, and they will likely understand each other perfectly.

      BTW, I believe Cantonese has 9 tones.

      --
      boldly going forward, 'cause we can't find reverse
    7. Re:Symbolic characters are on the decline. by enos · · Score: 1

      Typing Chinese characters usually means typing out the pronunciation and then selecting the character.

      I think the point that symbolic characters are on the decline is very valid.

      It's true that symbolic (logographic) writing systems have various disadvantages. However there are also advantages. For example, whilst reading Chinese is harder to learn, once learned it's easier to read quickly because there are fewer characters needed to make up a word. You can squeeze up a lot of meaning into a very space. A good example has appeared fairly recently on the Chinese intertubes. They have a Youtube-like service which shows pirated TV shows over which are laid viewers' comments, which scroll horizontally across the screen. Many different comments are floating across the screen at the same time. The idea is to poke fun at the plot line, etc, etc. Now the interesting thing is that you're only allowed very few characters to make your comment, I don't recall how many but I think it's about 3 or 5 or so. That's easily enough for them to make a witty point. This just wouldn't work in, say, English. The comments would take up too much space and you'd likely only ever be able to read one at a time.

      I used to think that too, because from an information theory standpoint it should be. Like CISC vs. RISC, the complex characters should mean fewer characters. And in some instances, like maybe microblogging that's true. But look at any product packaging, instruction manual or form written in several languages. English almost always takes up the least amount of room.

      There are probably lots of reasons for that that I can think of: The characters need a larger font size due to their complexity. Maybe there are a lot of concepts that don't match a single character, so then you have to have combinations and that takes space. Also language tends to evolve short words for commonly-used concepts, so a phonetic language will likely use short words a lot. Written Chinese doesn't benefit from this as much, because you need to have an integer number of (large) characters.

      Also, Chinese words are short in general, even when spelled phonetically. So the savings might not be that high to begin with.

      --
      boldly going forward, 'cause we can't find reverse
    8. Re:Symbolic characters are on the decline. by enos · · Score: 1

      counterpoint: emoji. brand-new. symbolic.

      if you look at western civilization, some of the earliest writing forms were cuneiform and egyptian hieroglyphics. both evolved to become more abstract and less ornate as time evolved. greek, english, german also simplified over time. both structurally, and by dropping letters. so it's easy to be whiggish about this. but emoji is a brand new hieroglyphic augmentation. i think this is a serious challenge to the view that languages tend to evolve toward syllabic and alphabetic.

      Good example, and I think it will be interesting to see how Emoji changes over time.

      But I'll argue that at this point Emoji is more akin to punctuation than a symbolic written language. You don't use Emoji to transmit facts, you use it to transmit how you feel about them, much like you use the '!' symbol to signify your excitement. You also wouldn't, for example, use an Emoji icon for the moon to talk about months, something that Chinese and Japanese do.

      --
      boldly going forward, 'cause we can't find reverse
    9. Re:Symbolic characters are on the decline. by Anonymous Coward · · Score: 0

      I think the point that symbolic characters are on the decline is very valid.

      Bah! Symbolic characters in the form of emoticons are on the rise with regard to chat/texting. ;-)
      Even our #HashtagsWithMeaning and @PersonalIdentifiers are symbols for something more than just the text they encode.
      Painting with such a broad brush (wish I had an emoticon) is ill-advised (wish I had another emoticon).

      Now I am motivated to go make a new emoticon library in GIMP, you know that free open source tool that allows you to manipulate images and make symbols without writing a lick of code :-D ...oh wait, we don't call it code when it is an app that does something we want

      As a funny aside...all of my lurking on SlashDot without ever posting, led me to believe that Anonymous Coward was a single person who had waaaay too much time to spend on /. --ooh, more symbol

    10. Re:Symbolic characters are on the decline. by AK+Marc · · Score: 1

      Even China simplified the traditional characters because they were deemed too hard to learn.

      And the studies show that simplified Chinese doesn't speed learning. Taiwan doesn't have a great advantage because they use simplified, compared to China, that still uses traditional (mostly, if not officially, but I think still officially).

      Since they don't have a phonetic system, when they borrow foreign words then they match the foreign pronunciation with the set of Chinese characters that have the closest pronunciation. The result is a mix of characters where some have their original symbolic meaning, and others that only stand in for their pronunciation. Think "what your name means in Chinese" party trick.

      Horse gram here. A better example is karaoke. spelled "[ka] [la] OK" (with the character for ka and la used, and the Roman characters for OK).

      Typing Chinese characters usually means typing out the pronunciation and then selecting the character.

      Well, they'd consider it typing the pinyin. You aren't typing the pronunciation, but the transliteration. Pinyin is a code for a character, so they are typing the character, but in a code to match the keyboard. One could make a keyboard with strokes on it. But nobody cared to back when keyboards were being introduced.

  172. muscle memory by mspring · · Score: 1

    With text you can develop muscle memory (muscle macros) which can be applied without concious thinking while expressing abstract ideas.

  173. Re:The more simple you make it the less complex it by ShieldW0lf · · Score: 1

    It occurs to me...

    One of the things that separates speedy readers from slower readers is that it's faster to see a short paragraph as a single symbol for one concept.

    It's slower to see it as a series of sentences each of which is a symbol for a concept.

    It's slower still when you're digesting the words as individual symbols and putting them together.

    At the very bottom of the stack are those who need to phonetically assemble letters into symbols. This is where young children read.

    The symbols used in coding describe a limited number of concepts, and we've built our symbols with English language keywords and recycled punctuation marks.

    There might be value to be had in creating special glyphs that are a little more purpose built, rather than haphazardly assembled out of older marks with a rich history that end up being dragged along.

    What came out of it would be more arcane to the newbie, not less. But what was and wasn't arcane would be readily apparent, and it could be more powerful and concise if done correctly.

    --
    -1 Uncomfortable Truth
  174. You think in words by jader3rd · · Score: 2

    It's possible that we're still using text to represent our ideas, because we think in words. Right now my two year old son is behind the curve in talking. His mouth doesn't seem to have any physical limitations in making the necessary sounds for English speaking, but he rarely attempts any words anyway. After lots of observation, I'm currently thinking that the problem isn't that he can't say worse, it's that he isn't thinking words. Some concepts are represented as words, and he can say those words (ie ball, shoe, Super Mario), but concepts which words yet in his head are what's preventing him from speaking more.

    So the reason why I think we code in text, is because we think in words, which map really well to text.

    1. Re:You think in words by emmjayell · · Score: 1

      I do agree - we need language to think about things. Similarly, we use the language of physics math to describe and understand things more precisely. If we don't have the language to think about it, it becomes difficult to describe.

      Personally, I've found that it's a combination of drawing and words to most effectively communicate a concept.

    2. Re:You think in words by Jmc23 · · Score: 1
      No, you and many other geeks who aren't too familiar with the 3d world think in text.

      Remember, never assume the reality you experience is the same as everybody elses.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    3. Re:You think in words by jader3rd · · Score: 1

      Remember, never assume the reality you experience is the same as everybody elses.

      Then they're experiencing it wrong!

  175. Unreal by Anonymous Coward · · Score: 0

    Author should have a look at Unreal Engine 3's Kismet.

    Tell me.. is this any better?

    http://www.peoplecanfly.com/blog/files/2010/12/KismetHorror.jpg

  176. Re:if you "get coding" so well, why arent you codi by khchung · · Score: 2

    Nah, I'm actually with the poster. I get text-based traditional coding too, but find the ROI (time and effort) quite poor and the work dreary. You have to be either well disciplined, or get the sort of joy banging out code that running get when pushing their body through the next mile.

    So one can get 'coding', or get 'running', but find themselves searching for something better. (visual coding/visual abstractions swimming)

    Ok, I suppose you also "get" English writing. How about, as an exercise, show us a "better" visual depiction of your own post above without using text?

    Or how about the OP posting his question visually using a picture?

    Can't do that? Perhaps text IS a very good way to express thought and logic? Good luck on your search for something "better" (whatever that means), the past 2 decades have already been littered with numerous carcasses of "visual programmer" tools that can't do the job.

    --
    Oliver.
  177. Rephrase by sjames · · Score: 3, Insightful

    Please rephrase your question in the form of a picture.

    Or, if you prefer, interpretive dance.

    As you contemplate that task, you will learn the answer to your question.

    1. Re:Rephrase by SpinyNorman · · Score: 1

      Haha - very Zen! Love it!

  178. text + tools by Anonymous Coward · · Score: 0

    I think the poster's question is fair. If s/he doesn't have much programming experience, text does seem somehow arcane and inefficient.

    In fact, pure text is awesome for many reasons. It's easy to manipulate. It's as concise as possible: a sequence of symbols. Most people work in an IDE or IDE-like environment -- e.g., Eclipse and emacs -- and these offer layers of tools and graphical abstractions on top of the pure text, such as collapsible cells associated with scopes, symbol lookup and completion. and code outlining. So we don't really work in pure text -- just the language plus Windows notepad, say; rather, we work in a rich environment that is focused on the text.

    Several commentors have mentioned LabView as an example of visual programming. There are many others, but LabView is probably one of the most prominent professionally used visual languages. As others have written, it is awful to use if you want to do something detailed.

  179. We do program visually by MerlynEmrys67 · · Score: 1

    We started with 1s and 0s in direct machine code (I did this in college)
    We moved up to assembler to allow us to not have to memorize the 1s and 0s
    Then we moved to our first language C/Pascal/Lisp/so many to choose from to compile a language into assembler
    Then we moved into management and finally get the visual tool that we want. Managers compile programmers into machine code using Power Point

    --
    I have mod points and I am not afraid to use them
  180. Most graphical languages suck, Scratch excepted by dbc · · Score: 1

    The vast majority of graphical pgramming languages do not scale well beyond toy problems. Scratch isn't so much a "connect the blocks" programming system, as a way to drag-and-drop traditional procedural-imperitive programming clauses. That doesn't sound too exciting, but it sure is nice to have an environment where it is simply impossible to make a syntax error. No more grief over semi-colons. I would love a Python code editor with a Scratch-like GUI.

  181. FTFY by Anonymous Coward · · Score: 0

    "I consider myself someone who 'gets text' but I'm not a writer. I enjoy making shapes on paper and spelling words, but I've never written anything longer than my name."

  182. Re:This Ask Slashdot must be from the /. Beta Team by Farmer+Tim · · Score: 1

    The art analogy is definitely wrong for Slashdot. I’d say a more apt analogy is replacing a rustic but functional outhouse with a shiny chrome shovel and a sign pointing towards a nearby forest.

    --
    Blank until /. makes another boneheaded UI decision.
  183. Best comment by Anonymous Coward · · Score: 0

    Now that's a comment looks written by one who clearly knows the topic and can explain it in such simplest axiomatic atoms. Cheers

  184. Visual Programming.... perhaps... by Anonymous Coward · · Score: 0

    One thing you might want to look at is HP Operations Orchestration - not exactly what you're looking for I bet, but likely as close as you can get. Use a visual tool to "program" complex automations which perform just about anything you'd want to do in non-homogeneous data centers. There are other tools that are similar, though I'm not terribly familiar with them.

    Short of that, the bottom line is, complex problems require complex language, you don't get complex language with pictures - in the case of a solution like Operations Orchestration, the complexity has already been done for you beneath the graphical operations you're customizing for your needs. If the complexity is beyond you, utilizing a graphical programming solution isn't going to get you any closer - if your mind can understand the complexity, take the time to learn the syntax of the appropriate complex language.

    Disclaimer: I work for HP.

  185. having used Labview by Khashishi · · Score: 1

    Certain things are just painfully inefficient to code in Labview. Short, commonly used functions which can be mentally grouped into larger expressions. I think this is most clearly demonstrated with mathematical operations. It takes way longer to wire up something like
    x = 3*(sin(y)+4-length(q))
    because you have to connect each operation, which takes a lot longer than typing.

    This might be an issue with LabView, and not graphical programming in general, but searching for the appropriate operations in a palette is slower than typing the name of the operation if you have the name memorized. It's also hard to see where wires are connected to because they can be arbitrarily nudged around the terminals.

    The advantage of graphical programming is that it is easier to represent procedures that have multiple inputs and outputs. The function concept really only works with one output and you have to create extra variable names to pass multiple outputs. The whole pass-by-reference thing for output in c is really hackish and could be avoided.

    I could envision a hybrid solution could be more efficient, but then you end up with something like perl where there are many ways to do the same thing, and it's difficult to understand.

    1. Re:having used Labview by Anonymous Coward · · Score: 0

      searching for the appropriate operations in a palette
      which is why you use quick drop rather than looking through the pallets.

      It's also hard to see where wires are connected to because they can be arbitrarily nudged around the terminals.
      If you don't keep your code clean it doesn't matter if you're using a graphical or text based programming language. It's going to be hard to read either way.

      x = 3*(sin(y)+4-length(q))
      It's cases like those that you use a formula node.

  186. Incessant by Anonymous Coward · · Score: 0

    "I consider myself someone who 'gets code,'

    Consider otherwise.

  187. Einstein said it best: by Weaselmancer · · Score: 1

    “Everything should be made as simple as possible, but no simpler.”

    To paraphrase: Some things would be unwieldy to program in a GUI or other oddball paradigm that would make you happy.

    Some things are difficult. Combat pilot, brain surgeon, coder. Dedicate yourself and you can excel. If not, you need to do something else, rather that complain that something that interests you is difficult.

    Get dedicated. LEARN. Focus and fight. Struggle and lose. Lose again. And again. Eventually win.

    It's worth it, I promise you.

    --
    Weaselmancer
    rediculous.
  188. Look up code visualization. by Jartan · · Score: 1

    The best way to understand is to turn the question around. Look at the methods people use to visualize code. There's no one method that's really good. You have to use several different ones.

    We might see some new tricks with VR though. Stuff like call graphs would work far better in full 3d.

  189. Beta by clcobra · · Score: 1

           

    Please post this to new articles if it hasn't been posted yet. (Copy-paste the html from here so links don't get mangled!)

           

    On February 5, 2014, Slashdot announced through a javascript popup that they are starting to "move in to" the new Slashdot Beta design. Slashdot Beta is a trend-following attempt to give Slashdot a fresh look, an approach that has led to less space for text and an abandonment of the traditional Slashdot look. Much worse than that, Slashdot Beta fundamentally breaks the classic Slashdot discussion and moderation system.

           

    If you haven't seen Slashdot Beta already, open this in a new tab. After seeing that, click here to return to classic Slashdot.

           

    We should boycott stories and only discuss the abomination that is Slashdot Beta until Dice abandons the project.
    We should boycott slashdot entirely during the week of Feb 10 to Feb 17 as part of the wider slashcott

           

    Moderators - only spend mod points on comments that discuss Beta
    Commentors - only discuss Beta
      http://slashdot.org/recent - Vote up the Fuck Beta stories

           

    Keep this up for a few days and we may finally get the PHBs attention.

            -----=====##### LINKS #####=====-----
           

    Discussion of Beta: http://slashdot.org/firehose.pl?op=view&id=56395415

            Discussion of where to go if Beta goes live: http://slashdot.org/firehose.pl?op=view&type=submission&id=3321441

            Alternative Slashdot: http://altslashdot.org (thanks Okian Warrior (537106))

  190. Re:if you "get coding" so well, why arent you codi by sonamchauhan · · Score: 1

    > show us a "better" visual depiction of your own post above without using text?

    A better representation of my post? A better representation would be me speaking these phrases to you in person, code editors open in front of us, trying to demonstrate certain use-cases where visual coding is superior. Perhaps, a printed executive summary of bullet points in your hand.

    Note, I'm not against text. I'm saying that's just _one_ mode of interaction - and it shouldn't be the only one.

    As for me, I've work in visual coding for over a decade (in an integration middleware product line named 'webMethods', that uses a graphical language named 'Flow', Owner: 'Software AG'). Its based on Java, its been successful for the almost the last 2 decades. I've had a job in it for 13 years.
    http://en.wikipedia.org/wiki/W...

  191. Re: The more simple you make it the less complex i by inasity_rules · · Score: 1

    National Instruments does graphical programming in their motion control systems and it makes some sense, though it kind of sucks. Also PLCs are often written in ladder not text, unless your programmer has lost the plot a bit and thinks statement list is appropriate for everything (hint, it isn't).

    --
    I have determined that my sig is indeterminate.
  192. Re:This Ask Slashdot must be from the /. Beta Team by ShanghaiBill · · Score: 5, Insightful

    The art analogy is definitely wrong for Slashdot.

    A better analogy is written language. For instance, I could write the sentence "Today I went to my friend's house." Or I could convey the same message graphically, but using an icon to represent myself, another icon to represent my friend, and my friend's icon could then be placed next to an icon of his house with the "ownership" relationship connecting them. Then I could draw a vector from my icon to the icon representing my friend's house, and then a small calendar could be placed on this vector with today's date, and another graphical feature added to indicate that this is all past tense.

    Would the graphical representation be faster to create? Of course not. Would it be easier to understand? Only for someone that does not understand written English. The graphical representation of algorithms is no different. It is far faster to just write textual code, and it is more understandable to people that actually understand the programming language. This is why "graphical coding" is almost always proposed by people that are not programmers (such as the submitter), just like "graphical English" would only be proposed by people that don't understand written English.

  193. Re:The more simple you make it the less complex it by ppanon · · Score: 1

    You mean like APL? While it does have a fiercely devoted community, it's a fairly small community.

    --
    Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
  194. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    I've got a couple programs with several ten-thousand lines of code. If you want to visualize them, you will need a very, very large sheet. And it wouldn't be more transparent.

    A number of people have made the same "one large sheet" argument. Why would you expect to be able to display every nuance of your 10,000 lines of code in one sheet? If your code has any structure, you could display it in multiple pages, perhaps in a hierarchical format. The beauty of a graphical representation is that, if done properly, it can quickly show you the individual components and their relationships, something that's much more difficult to discern from simply reading the 10,000 lines.

  195. Re:The more simple you make it the less complex it by ppanon · · Score: 2

    Apparently the GP only ever learned the C major scale. That's surprising for a programming-aware individual who should have at least heard of C#.

    --
    Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
  196. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    I remember building interfaces with IB, and scripting apps with AppleScript, and wishing there were a good way to bring the two together.

    I love the idea of just creating objects from scratch using an IB-like interface, then hitting "record" to record scripts for manipulating the objects. I would love to create non-graphical objects in IB using an Access-style property list. If I could do that, I'd be 90% of the way to a finished application without editing any code.

  197. Re:if you "get coding" so well, why arent you codi by khchung · · Score: 1

    A better representation would be me speaking these phrases to you in person

    So, essentially the same TEXT in audio format? Doesn't that simply proved the point that the TEXT is already the, conceivably, most concise and precise representation of your idea?

    I've work in visual coding for over a decade (in an integration middleware product line named 'webMethods', that uses a graphical language named 'Flow', Owner: 'Software AG'). Its based on Java, its been successful for the almost the last 2 decades. I've had a job in it for 13 years.
    http://en.wikipedia.org/wiki/W...

    And yes, I have used and taught other people to use webMethods in the past, over 10 years ago when it was still "new".

    It might be "successful" in the sense that the company is financially successful. But "successful" in the sense it lets you program better than text? Only if you consider taking 5-10 times as long write the same logic compared to writing plain text in Java as "better". Good luck trying to debug a program from its visual representation.

    People who learned webMethods before learning Java have trouble understanding basic concepts as exception handling, and have even more trouble with OO concepts such as polymorphism, or even basic Objects, as they cannot see the objects in the visual representation of the logic flow.

    --
    Oliver.
  198. It's a question of performance. by Z00L00K · · Score: 1

    Writing the code in text is often producing more efficient code than using generic blocks of code that someone has written. The problem with the generic block style is that they invariably have an overhead of always checking incoming and outgoing data which is good from a stability point of view but horrible from a performance point of view.

    When writing code in text you can select where to put the data constraints for the least performance impact, and then execute your loops, parallelize your tasks and optimize the I/O easier.

    And even if you have a building blocks system you need someone to program the building blocks.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  199. Work by timkofu · · Score: 1

    There's no path around hard work to results.

  200. Lots of fields could benefit from this sort of ide by Anonymous Coward · · Score: 0

    Why don't we see artists painting pictures without all of those icky, hard to understand colors?

  201. Re:The more simple you make it the less complex it by Mike+Buddha · · Score: 2

    you can't produce something complex with something simple

    I beg to differ. Machine language and assembly code is some of the simplest computer language there is, but it's the basis for all of the higher level programming languages. In an ARM processor there are only 34 commands. From this are derived all sorts of esoteric and mundane high level language operations.

    --
    by Mike Buddha -- Someday the mountain might get him, but the law never will.
  202. Twice sent to beta, this sucks by Anonymous Coward · · Score: 0

    Please get rid of this crap, beta is terrible. I can hardly follow the discussion in this place. Gray text? Seriously?

  203. Stop Talking Right Now by holophrastic · · Score: 1

    Let me know when you start speaking without words, and that's when I'll stop programming in text.

    Sherades just doesn't work as a form of communication. Welcome to visual programming.

    What the hell do you have against text? Books not workin' for you? Video killed the radio star. Nothing killed the book.

  204. Re:The more simple you make it the less complex it by dyingtolive · · Score: 1

    An 8 bit ALU, and all you need is a modern computer running 64 bit java with a gigabyte or larger in heap to use it.

    --
    Support the EFF and Creative Commons. The war is coming, and they're supporting you...
  205. Like the Farenheit 451 comics by argee · · Score: 1

    I recall in the movie Farenheit 451, where text based writing is banned, the
    people riding the train are reading the "newspaper." It is all comics. Kinda
    sorta like the Evacuation Cards we get on Jet Airliners.

  206. Still? by Anonymous Coward · · Score: 0

    It's been tried already and I doubt that technological advances have been able to negate the awkwardness of visual programming. Even the Soviets tried!
    http://en.wikipedia.org/wiki/DRAKON

  207. Neal Stephenson wrote a great essay on this by rbrander · · Score: 1

    PDF at: http://www9.georgetown.edu/fac...

    It wasn't about programming, specifically, but about all computer usage. I hate to summarize, but my take was that only through text can you get down to anything the tool (the computer) can do; with all interfaces, you're limited to what the designer of the interface thought you might do.

  208. If you had speech based recognition by GoodNewsJimDotCom · · Score: 1

    Me:'Say,"Hello World"'
    Computer: Hello word
    I don't see speech recognition being the next big thing. I think what will be made are programs with more higher level functions. Look how nice Java or AS3 is about handling Strings compared to C/C++.

    And for people who can't program at all, Video Game makers will become easier to use, more robust, and have genres of video games done already. I see the future of video game making as a company who makes a quality video game, then licenses the game making tools to anyone who wants to use them.

  209. To this I say.... by Anonymous Coward · · Score: 0

    ... wait until the OP finds out that those graphical code generators were written in text-based code

  210. Nope by Anonymous Coward · · Score: 0

    It's been all but proven that graphical representations are inferior for readability, and that understanding how code fits together has nothing to do with its text, but it's overall design. No matter how you choose to visualize it. Anyone who claims to "get code" should understand these two things implicitly. It's not about whether you like to read text, it's that being lazy about it doesn't improve your skills as a programmer, it shifts the burden to others to do your job for you. It's basically the same thing as a ridiculously high-level toy language... only useful for people who CAN'T code the traditional way. By now, research would have proven otherwise.

  211. Re:This Ask Slashdot must be from the /. Beta Team by JWSmythe · · Score: 1

    Nah, their code works. It's just the user experience is (from the comments I've seen) undesirable.

    I didn't look at beta long enough to form an opinion. I just gave up on figuring it out, and came back to the good ol' interface. :)

    --
    Serious? Seriousness is well above my pay grade.
  212. Table Oriented Programming by Tablizer · · Score: 1

    I've been a proponent of Table Oriented Programming, where attributes and perhaps small code expressions are put into tables. I've used the technique fairly often under dBASE and clones back around the early 90's, but newer tools don't make it nearly as easy. OOP trends put a thicker layer between the database and the code in the name of "encapsulation". I wish more tools would explore the table idea. I really liked it.

    I believe it has a lot of potential to make programming more visual. It's often easier to manage and study attributes and expression patterns in a grid. Plus, one can transform ones view of the table(s) to show only what you want to see with the order/grouping/filtering you want it, something textual code is not so good at. You can sort, group, join, and/or summarize various aspects together, such as security aspects, UI aspects, web services aspects, printing aspects, etc.

    For example, you may use a "data dictionary" table to enter attributes of CRUD fields, such as title, type, length, required-ness, references to pull-down-list table(s), etc. Sometimes event trigger snippets can even be put into the tables (using Eval-like functions under the hood). It's far more compact than the code-centric approach to specifying fields, and usually more natural and visual to change.

    (Yes, dBASE had a lot of flaws as a language and tool, but we don't necessarily have to take all the bad parts with the good parts if we resurrect the good ideas from it. So please, let's not get into a dBASE bashing spree. We may have to invent "dynamic relational" databases to make TOP effective; something I've been fiddling around with on paper.)

    -Tablizer

  213. Re:This Ask Slashdot must be from the /. Beta Team by manquer · · Score: 1
    Basically you saying immortal designs however flawed are not to be touched? I will now ask you consider this challenge
    * Ask DaVinci if he got MonaLisa right the first time? Or ask him how many changes he made till Mona Lisa became the painting it is today. Or even better ask him if he is happy with the painting the way it is or it was when he last worked on it?
    No work is ever complete, no true creator, artist or programmer for that matter will say his work is ever complete. Change is always for the good, however shitty the current version is. I think a quote from Tao of Programming is appropriate

    A manager asked a programmer how long it would take him to finish the program on which he was working. ``It will be finished tomorrow,'' the programmer promptly replied. ``I think you are being unrealistic,'' said the manager, ``Truthfully, how long will it take?'' The programmer thought for a moment. ``I have some features that I wish to add. This will take at least two weeks,'' he finally said. ``Even that is too much to expect,'' insisted the manager, ``I will be satisfied if you simply tell me when the program is complete.'' The programmer agreed to this. Several years later, the manager retired. On the way to his retirement luncheon, he discovered the programmer asleep at his terminal. He had been programming all night.

    P.S. I don't like the beta either, but am happy at least they are trying to do something.

  214. Re:if you "get coding" so well, why arent you codi by sonamchauhan · · Score: 1

    A better representation would be me speaking these phrases to you in person

    So, essentially the same TEXT in audio format? Doesn't that simply proved the point that the TEXT is already the, conceivably, most concise and precise representation of your idea?

    No. First, there are benefits unique to audio interaction (immediacy, tonal emphasis, emotion); next up, benefits to physical presence (enhances interaction - e.g. pointing, gestures, a wider visual canvas), and finally you skipped this last bit with the pretty pictures... :)
    "...code editors open in front of us, trying to demonstrate certain use-cases where visual coding is superior."

    Regarding your comment "Good luck trying to debug a program from its visual representation.", do you remember savePipelineToFile and restorePipelineFromFile? :D Those features make it trivial to debug and replicate errors between environments.

    On and off, I've programmed in both Java and Perl since the mid-nineties. I still use both in my 'webMethods' job when Flow js unsuitable. But for core integration work, webMethods Flow programming beats text-mode programming hands down. It wouldn't survive so long (neither would my job), if this wasn't the case. In fact, my personal view is the only reason for webMethods to thrive is Flow makes even average coders (like me), way much more productive then they ever would be CTRL+SPACEBAR-ing away in Eclipse.

    Sadly, Software AG (and webMethods Inc. before them) have let webMethods Flow wither on the vine. There's so much they could have added to it by now - both in terms of visual language enhancements and visual tools. For example, diff and merge tools, environment comparison tools, code metrics and estimation tools, temporal debugging, automated test case generation (by using the input pipeline persisted on error), automatic documentation, some form of AoP...

  215. Text gives a global view of your project by herve_masson · · Score: 1

    One of the worst experience I had was fixing a project on msaccess, one of those GUI based coding environment.

    MSaccess intend to provide a graphical UI to create database driven apps. I've seen people creating programs this way without having much "text programming language" knowledge, and those program somehow "do the job". As much as I hate ms access, I have to admit it give some people a way to turn ideas into computer programs, without text programming language.

    At some point, the same people have more needs, and msaccess becomes unpractical for them. They need people like me (we all need money) to "fix" or "expand" their program, and this is where it turns into nighmare. Graphical UI won't do 100% of the job, and you need to add little TEXT program snipsets here and there (formulas, routines, whatever). This makes the program very very hard to maintain, having pieces of code disseminated in hundred of places, with no way to get a global view of the software.... Needless to say, this also make future changes even more complex and expensive.

    This is to me one of the key feature of text programming environment: you can have a global picture of your coding, organized in folders, files, etc. You can grep code parts, find them, merge them, split them, reorganized them, comment them, keeping the whole project well organized all along its evolution.

    The only thing I would like more than text file is a rich-text programming language that makes possible to add visually rich comments, designs, etc, but keeping the useful part (the program) purely textual.

  216. Re:There is one hugely successful visual programmi by peppepz · · Score: 1

    In ladder, even basic logic structures such as a finite-state machine are hard to express, and harder to read. I still have to understand the reason for the success of ladder. It's hard to write, it's hard to read, it's hard to maintain, even the program "text" is impractical to handle (think about cut and paste).

  217. Look at LabView and you'll see why by dbIII · · Score: 1

    "Visual programming" is a giant step backwards because it collapses into a mass of confusing spaghetti on anything other than trivial projects.
    It especially is the wrong way to go when multiple processing cores are available.
    LabView was visual programming done well, nobody has been able to improve on it much, and it's great for trivial or easy to modularise projects - however once your program needs just a little bit of complexity you have lines crossing all over the place and such a 2D graphical representation becomes visually confusing and a terrible metaphor for what you want the machine to do. You end up wasting time moving lines and icons around just so you can see more clearly what is going on - or just to make room for other bits of code.

    It comes from the old patch cable analog programming metaphor and it's very limiting now that we are using digital computers.

    1. Re:Look at LabView and you'll see why by Anonymous Coward · · Score: 0

      it collapses into a mass of confusing spaghetti on anything other than trivial projects.
      Only if you produce shoddy code.

  218. Some day, but not soon by Kevin+Fishburne · · Score: 1

    This will happen eventually, but there will be a lot of dirty genetic algorithms under the surface to make it efficient and it will still require seemingly endless tweaking with unexpected results. People will even call the software "stupid" and "unintuitive" as it crunches out insane iterations of what it thinks might meet your requests (based on non-scratched previous requests). Give computer science and AI another 100 years (shit; we'll all be dead), and you'll probably see some laymen programming away by giving directives to "Computer" like TNG.

    --
    Buy your next Linux PC at eightvirtues.com
  219. Re:Labview - Also SQL/ graphic query designer by Tablizer · · Score: 1

    Many of these "instant CRUD" tools have the same flaw in that they make the first 80% of the project easier, but the last 20% either impossible, or hair-graying.

    To be effective, it needs to have sufficient escape hatches to "exit the framework" when needed for custom adjustments. However, one will still need to know the framework well in order to make all the custom details still get along with the framework and its way of doing things.

    Thus, you need to know the framework well to use such a tool effectively.

    Good tools help engineers manage complexity, not so much hide complexity from them. The newbie error is in expecting the tool to hide "annoying" details from themselves. But such details will byte you in the ass later if not sooner. (Pun intended.)

    The tool needs to simplify the repetitious grunt work without interfering too much with custom behavior or special cases. These two factors usually pull against each other.

  220. Re:if you "get coding" so well, why arent you codi by waveman · · Score: 1

    People have been trying to create better programming languages for 60 years. If there were any great and beautiful solutions they would probably have been found.

    Domain specific languages have been useful but the problem is that there are many domains. Once you know the DSL it's good but there is the overhead of learning the DSL each time. And what if your requirement is just a little bit beyond what the DSL supports? Back to the good ol' 3GL.

    Lisp (and to some extent Ruby) offer the possibility to create your own DSL. Once you get used to the parentheses, there is very little syntax to learn with Lisp. Typically in a project in Lisp you create a DSL for the problem and then write the solution in the DSL (see Paul Graham's book "On Lisp" available for free). This makes for fewer lines of code but more effort to understand per line of code, compared to 3GLs.

  221. Re:if you "get coding" so well, why arent you codi by martin-boundary · · Score: 1

    No. First, there are benefits unique to audio interaction (immediacy, tonal emphasis, emotion); next up, benefits to physical presence (enhances interaction - e.g. pointing, gestures, a wider visual canvas), and finally you skipped this last bit with the pretty pictures... :) "...code editors open in front of us, trying to demonstrate certain use-cases where visual coding is superior."

    This is not very convincing. There are benefits unique to text representation (typefaces, size of text, color of text, capitals/lowercase, even the precise choice of idiom in languages such as perl where there are many ways to do something). These benefits arguably are more varied and precise than those offered by the spoken word. Pointing, gestures and visual canvas interactivity is the job of an editor or ide, as is changing the view of the information presented eg by folding away function bodies etc.

    Furthermore, there are benefits that simply exist in text form and can never be duplicated in audio interaction, such as going back and annotating existing text, or skipping comments and going back and reading them later. The linearity of audio interaction makes hierarchical information structures essentially impossible.

  222. Re:The more simple you make it the less complex it by dbIII · · Score: 1

    This view is belied by the graphical tools used to design and layout hardware and chips

    Such tools rely on text based macros once you get away from the "lite" version. You don't carefully draw a line by eye to the edge of a circle - you tell the machine you want a tangent. That's frequently done by text input instead of pointing at an icon.

  223. Re:The more simple you make it the less complex it by dbIII · · Score: 1

    Switches.

  224. Re:The more simple you make it the less complex it by ttucker · · Score: 1

    Except... Verilog... VHDL... oh nevermind!

  225. Re:The more simple you make it the less complex it by dbIII · · Score: 1

    Since the late 1970s, I've remarked that software is the only engineering discipline that still depends on prose designs.

    That's only due to a blinkered view of the other engineering disciplines. Once time becomes a variable, for example, prose designs become essential. Download something like the details for the Grumman lunar lander for example and you'll see a lot of things in there that rely on different states so are far easier to describe verbally than graphically.

  226. Why? by Anonymous Coward · · Score: 0

    Because we're fucking competent, use a complex toolchain, develop and improve and build our own tools... and right now it appears you're still learning.

    I haven't had a syntax error in months that wasn't caught by the my editor immediately anyway. But really, it's because we have 30 years of text toolchain that your graphics stuff barely begins to touch.

    * I have version control. It works with binary files too. But it won't do much with them.
    * I have programs like patch, diff, meld that will compare two files and highlight just the differences. Some of them even work 3-way.
    * Text files inherently work well with other text processing utilities. Utilities like grep, sed, awk, indent, ctags, doxygen/javadoc....
    * Text files are more easily manipulated in broad swaths than... whatever the fuck you think you're talking about with some sort of visual editor and whatever data representation it useses internally
    * I can copy and paste subsets of text just fine (not that I should copy/paste much, as a good dev). Your editor requires a subroutine to do this because of the previous task. My editor already has one that works in any language.
    * My editor is flat and 2D just like yours. However, the logical flow may be spaghetti, linear, or constructed. Your graphical editor works in full x-y, or x-y-z coordinate system, permitting a whole new fucking dimension of code sprawl I can't even describe.
    * My editor forces me as a competent developer to engage in abstraction, or will fold it up for me as an IDE. Your editor provides existing abstraction, and perhaps enables you to create new abstractions, but every single one is a brand new paradigm that to date is expressed as a bunch of fucking lines into a box.
    * My editor will let me elgantly express higher order functions, recursion, staticness, constness (and build manuals and documens with them). Your editor will let you write documentation and generate it, and use strange unintuitive symbols for these. Yes-- you do not know my editors words or syntax for these ideas -- but they are a fixed set of vocabularies I can produce on my keyboard.
    * My editor can in a worst case be replaced by a single stupid program. I will be unhappy, may have syntax errors, and difficulty structuring code as I understood it -- but I can work in my language even on a 25 year old computer. Your editor will require a brand new tool and not be replacable
    * My editor works in a format called ASCII, and sometimes UNICODE. Anyone fucking anywhere can read my source, even on a 40 year old teletype. Your editor requires special software just to visualize the nature of the program.

    Look, I know and work with people that use a graphical program language, and one that hasn't even been mentioned here. The last time they used it in a project -- in order to document it, they had to pay something like $400 for some printing company to print the picture of it on some ridiculously wide /tall sheet. There were tens of dozens of "very nearly closely" duplicated structures that a competent developer would have replaced with functions/methods/subroutines. Parameterization was...weird, and there were crossed lines running all over the sheet. They got it done.

    That piece of shit lies on a drive with their software, and only one person is allowed to touch it, and he doesn't even remember what it does or how it works now. It took him nearly two months in the GUI to compose and test it.

    I solved the same problem three days during my lunch breaks. Of course, since it wasn't in their standard it's not allowed to be used, maintained, or developed -- and to be brutally blunt, I don't think I could teach the other "programmer" about functions passing functions and returning functions as arguments. It's not elitism -- he simply isn't equipped or prepared to think that way yet (and probably never will be while he thinks of programming as dragging lines or writing formulas in excel)

    Some of these problems can be surmounted. Some o

  227. Why do books still use text? by jacobleonardkes · · Score: 1

    Why do books, law, math, etc still use text? Because it is the best way humans have found to communicate detailed information clearly and unambiguously. Human text processing is inextricably linked to our analytic processing capabilities.

  228. You still write text-based code? by Anonymous Coward · · Score: 0

    I've been coding for over 25 years and I switched to a graphical interface. Sure you miss out on some of the tedious stuff but I don't give a fuck about that most of the time, I can whip up something together that works great IN MINUTES. No need to mess with code, and if you really must have something high performing, then you can create a custom graphical object to do it for you.

  229. Yeah if only we could take a language like BASIC by DeanCubed · · Score: 1

    and making things work better by using graphic interfaces... like a "visual" BASIC. That could work.

    --
    Born to Play
  230. Re: The more simple you make it the less complex i by Anonymous Coward · · Score: 0

    And they need to cling to their special keyboards and font sets.

  231. Re:Because it's the best way.. so far by Anonymous Coward · · Score: 0

    But there are some domains in which something other than text wins:
            (a) Sheet music and musical scores
            (b) Choreography
            (c) Roadmaps
            (d) 3D tinker-toy molecular models

    Maybe we just haven't yet found what is better for software. We expect that the same representation should work for programs and systems ranging in cost from around $10.00 (say a few minutes for a simple program) to $100,000,000 for a big system. If the representation scales by becoming hierarchical, with a general limit on the amount of information on any page, that might be a range of 1 to 8 levels of hierarchy. Are there any physical construction projects using blueprints that have 8 levels of blueprint? Why is it that the diagrams for assembling something very complicated (an airliner) are always drawn and saved actual size?

    Why would we want to add more graphical elements to software development when the two graphics that we see most often are the (no) progress bar and the (appropriateley named) hourglass?

  232. Too rigid by paavo512 · · Score: 1

    At a minimum wouldn't that eliminate time dealing with syntax errors?

    It seems to be a general concept that if one cannot make any mistakes using a system, then the system is not flexible enough to achieve anything interesting. And syntax errors cannot be clearly distinguished from semantic ones, when you make a system where every combination of tokens is syntactically valid, then there will be either a lot of semantic errors (think of writing machine code directly - almost any bit pattern is a valid opcode, so no syntax mistakes), or the system would be too rigid to be useful.

  233. Re: The more simple you make it the less complex i by Anonymous Coward · · Score: 0

    You mean, if Mozart had a chromatic keyboard, where the black keys weren't just painted on?

    Wow, man. Berliotz coulda happened a half century early!

  234. Not a programmer by Anonymous Coward · · Score: 0

    That's what you're missing. End of story.

  235. Re:This Ask Slashdot must be from the /. Beta Team by Bearhouse · · Score: 1

    Nice one.

  236. It is even simpler by SmallFurryCreature · · Score: 2

    Your example works but there is a next level. NEW WORDS!

    The Japanese have a way of dealing with new words. AN ENTIRE FUCKING NEW ALPHABET! Forget just learning Kanji (Chinese pictorgrams) Japanese students have two more alphabets to learn (Kana) hiragana and katakana, one for japanese stuff and the other for sound and foreign words. Oh and EITHER one of them is larger then the western alphabets even the really screwy ones with lots dots and slashes messing up perfectly fine letters.

    Whooo!

    And forget about different breeds of cats. How do you signal a list of cats? Two different icons combined? In language I only need to add an s to the word, with icons you just doubled the number of needed icons. How about extinct cat breeds? What is the icon for extinct? A dinosaur? Then what icon do I use for a dinosaur? A skeleton, then how do I signal a dead cat vs an extinct breed? You would need an infinite number of pictographs to express anything complex.

    Oh wait, I GET IT, Flow charts. They are graphical... AND they tend to contain lots of text because there is just ONE database symbol so how do I make it clear one is the relational database and the other a key value store? With WORDS because the makers of flowchart programs knew LANGUAGE is more expressive and more versatile, so they created a dozen symbols and relied on TEXT to clarify them.

    And it is not that you couldn't create a graphical interface for a programming language. But what about extensions? With a text library I can just add it to my text code and use it. With a graphical programming language any extension needs far more work, not just downloading a text file but an entire library with new pictographs and detailing how they can be used.

    A new programming language is already hard enough to develop and get from idea to a usable product. With a text language, all the focus can be on the compiler, text editors exist very old ones can be used. But for a graphical programming tool, you first need to create a complete graphical tool before you can start using it. It is just far more work. Want me to proof it? Create a graphical config tool for for instance samba that supports EACH and EVERY option in full detail. Compare the amount of work needed for that vs sudo vim /etc/samba/smb.conf WHAT option do you think the samba developers choose? Months of work vs seconds. And it is not like Samba developers need a graphical tool, they know their config file.

    That is the final problem... who is going to make it? Where is the market? You are looking at a tool that costs far more to develop then a conventional IDE, is less flexible, less up-to-date, less extensible for an audience that can't be bothered or isn't intelligent enough to handle text coding.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  237. No you are wrong by Anonymous Coward · · Score: 0

    The best way of communicating ideas, is to use a language.
    If what the author of this article said was true, then why don't we also communicate by using pictures, instead of text.
    Silly ideas like this are usually proposed by non-programmes, just like the author of this article.

  238. Re:The more simple you make it the less complex it by unitron · · Score: 1

    Soldering irons.

    --

    I see even classic Slashdot is now pretty much unusable on dial up anymore.

  239. Re: This Ask Slashdot must be from the /. Beta Tea by Anonymous Coward · · Score: 0

    Perhaps they wrote BETA using Scratch.

  240. For the same reason we still use... by kevingolding2001 · · Score: 1
    text based things like... Oh I don't know... Shopping lists.

    If my girlfriend wants me to buy a loaf of bread on the way home from work, she can either text/email with a message "please buy bread" or she could send me a video of herself doing an interpretative dance of sewing seeds of wheat, reaping the seeds when they grow, grinding them up (or something), adding water and probably other stuff like yeast (how does one dance that?), kneading it into a lump of something, firing up an oven, putting the lump into the oven, taking it out and cutting it into slices,and then 'dance' it being delivered to the store I drive past on my way home so I know to drop in and buy it.

    I seriously don't now how to finish this post. I'm just... stunned.

  241. Re:The more simple you make it the less complex it by dbIII · · Score: 1

    Patch cables then as well.
    My point is that we are discussing multi-purpose machines that can be programmed into a different state after manufacture.

  242. Re:The more simple you make it the less complex it by Tom · · Score: 1

    Why would you expect to be able to display every nuance of your 10,000 lines of code in one sheet?

    I don't. You are taking it too literally. It's a way of saying "this complexity does not lend itself to visualisation".

    Have you ever tried to actually visualize a data model that is from a real-world application, where you soon find that you need to draw hundreds of arrows all across the model? The technique that works well and gives you a really nice view for, say, a simple blog application or whatever the current tutorial app beyond "hello world" is, breaks down horrible when you're dealing with real-world complexity.

    --
    Assorted stuff I do sometimes: Lemuria.org
  243. fornicate the one after alpha by Anonymous Coward · · Score: 0

    i mean it
    use a rotten carrot
    and eff all you people that are editing posts
    support the boycott feb. 10th-17th

  244. Because someone needs to build it for you, and it by mimino · · Score: 1

    Because someone who is an expert in writing text-based code has to design and write it for you. It won't help them, it's not fun, it's not believed to be achievable.

  245. Try this at home... by kefalonia · · Score: 1

    ...attempt to provide visual alternatives to this kind of discussion on IPv6/IPv4 regex constructs: http://stackoverflow.com/quest... Human brain seems to work well with information in text format, despite complexity.

  246. Mathmatics by Anonymous Coward · · Score: 0

    The problem here is that typical mathematical representations are fairly complex (graphics wise), and "hard" for computers to express in a way readable for the human being. There is some systems that do it, e.g., Mathematica, Maple, ... But then we just stay with the slightly less expressive form of ascii, and find ways to represent those things there.

  247. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Why can't a flow chart be exactly what you do. A series of peer reviewed function blocks, and a simple GUI can let you create a fairly complex program fairly fast ($DEITY if I was a GUI coder..). Python is a great example of simple enough, and then you only need the hand-written-complex blocks for the custom parts.
     
    I would hazard that at least 50% of the "programmers" out there aren't writing their own libraries or particularly complex function blocks anyway, so there is 50% of the community of coders dealt with right there.

  248. Skynet by Anonymous Coward · · Score: 0

    We have to wait for Skynet to become active. It should happen any time soon.

  249. Whenever this question comes up.. by maharg · · Score: 1

    It reminds me of the one of the finest comments I ever read on here, from joss:

    "If the kind of drag and drop stuff you are proposing was a better mechanism for creating complex programs than languages, then we wouldnt use languages to communicate with each other. Instead we would push a bunch of colored blocks around and drag string between them. I don't think we're going to start doing that anytime soon either."

    --

    $ strings FTP.EXE | grep Copyright
    @(#) Copyright (c) 1983 The Regents of the University of California.
  250. Because graphical languages don't work well by Anonymous Coward · · Score: 0

    Graphical languages look nice. At the beginning. But then you start to do something serious with it. And then you find out that clicking and dragging in a complex FFT function is nice: Okay, you have to click your way through twenty libraries with many close to identical features, but then you click the block, drag it, connect two wires and you are done.

    Then you want to add one to something... find the add function in the huge pile of lego -this starts to annoy me already-, move some wires and blocks out of the way, oh wait, maybe add another nesting level because this sheet becomes too complex, now where did my add block go, hover over the terminals over the block and wait for a second because you need to know which connector does what. AAAARGH. Any text-based language : +1. Two characters and done.

    Oh wait, I have to replace some values: Text based: Edit->Replace available since what, 1973?. Graphical based: I haven't seen a single language for which Edit->Replace actually works properly: Or you can't specify well enough what you need to change, or it can't find the values for you.

    The nice thing of text based languages is that the order typically is defined quite well, while I haven't seen a single graphical language which doesn't end with spaghetti. In text-based languages you have your lego too, it's called procedures, functions and libraries. The problem with text-based languages is not that they are text-based, but that there are so many lego bricks (libraries) in the wild, every one of them is reinventing the wheel, and there are lot of crappy programmers. Take strings in Windows, graphical libraries in linux. You won't solve any of these with a graphical language, but you get free spaghetti with it.

  251. My graphical language by Anonymous Coward · · Score: 0

    I still write programs in my graphical environment, known as "EMACS"...

  252. Why text? by Anonymous Coward · · Score: 0

    One word: grep.

  253. How many buttons you want on your remote? by Anonymous Coward · · Score: 0

    Obviously having only one button makes the thing almost completely useless, having two makes it just a tiny bit more useful. Since this sounds like the more the merrier, one might jump to a conclusion that having a button for every single variant of every single setting would be optimal. However this would mean the remote would be the size of a barn door and weigh more than you can carry.

    So, like so many other things in life, there's a sweet spot that strikes a correct balance. Call it ying and yang or goldilocks just right but it's there and everybody knows what I'm talking about.

    I guess the current practice is fairly close to the sweet spot or we wouldn't be there and wouldn't stay there. Now, go prove me wrong and push the envelope, enhance the state of the art.

  254. I LOVE BETA by future+assassin · · Score: 1

    written in text....

    --
    by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
  255. Yes reply to the fucking comment beta by isorox · · Score: 1

    Watson is in beta. It still lets you quote posts though unlike slashdot beta which is crap. Watson still lets you deep link to posts.

    I bet slashdot beta isn't written in text code. It's just a mess of crap. But not in a retro way like slashdot prime.

  256. In automation by Anonymous Coward · · Score: 0

    In automation we have two visual languages: ladder and fbd. Both are used every day, and are very old standards. Variables are text but functions are visual.

  257. another question by benob · · Score: 1

    Why do you still use language to communicate with your pals? You would be so much more efficient with drawings...

    1. Re:another question by crutchy · · Score: 1

      You would be so much more efficient with drawings

      engineers already do this

  258. actually used a graphical "programming language" by Anonymous Coward · · Score: 0

    I've used LabView (which uses a graphical programming paradigm--they call it the G programming language). I'm also a programmer by trade (software engineering and coding hardware using HDL).

    I think I'll take text-based code because it can actually be more descriptive and concise, especially for data types, memory usage and just simply implementing equations.

  259. Code is like math by allo · · Score: 1

    You need a precise language to express what you want. You can define almost everything you like, but you must express it in some basic terms, everyone agreed on first.
    If you build something graphical, you will have only a toy. you can define your building blocks (think of yahoo pipes or something like this), but they do not have the power of raw code.
    And raw code will be more concise for many tasks, and i do not think of the simple ones, but the complicated algorithms, which can be written in very concise code, if you think enough about them. With some building blocks, they will look even more complicated.

    1. Re:Code is like math by maxwell+demon · · Score: 0

      If you build something graphical, you will have only a toy. you can define your building blocks (think of yahoo pipes or something like this), but they do not have the power of raw code.

      Nonsense. Graphical programming can be as powerful as non-graphical programming.

      Proof:

      Everything you can program can be written as a Turing machine. Therefore anything that allows to define a Turing machine also allows to write any algorithm you can imagine. Now it is easy to encode a Turing machine with graphical programming. The main part of a Turing machine is a state machine. A state machine can be easily drawn as a set of boxes representing the states, and arrows representing the changes. A box with no arrows leaving would represent a halting state. If you do a Turing machine with only two symbols, you just need to types of arrows: One to follow if you read a 0, and one to follow if you read an 1. This could for example be dome using different colours (e.g. red for 0, black for 1), or different line styles (like dashed for 0, solid for 1). And finally, you need to encode whether the read/write head should move left or right. This could be done e.g. by the convention that a left move of the head is signified by the arrow leaving the box on the left side, and a right move is signified by the the arrow leaving on the right side. Or you could also encode it in the arrow line (e.g. if you encode the bit in the colour, you could encode the head movement in the line style).

      So you see, you can easily encode a complete Turing machine in a graphical diagram. Which means that there's no algorithm which cannot be represented graphically.

      Now whether you would want to do it is a completely different issue. I can type a few lines of text faster than I can draw a few boxes plus connections on the computer. And thus graphical programming sucks for input (indeed, even for creating certain types of graphics, I consider it more efficient to type commands that create it than to create it using a GUI).

      It is certainly useful if you can create certain images (like class diagrams) from the code you've written, but that's not graphical programming, that's visualization. And visualization is powerful exactly because it doesn't display all the information of the code. Which would be a no-go if the graphics were to be the program source.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Code is like math by allo · · Score: 1

      nice long text, which totally misses the point.
      Nobody doubts, that you CAN code everything in that way. You may know, that the only logic element you need is NAND.

      But you really miss the point. Graphical programming will never be that powerful, in a sense, that nobody will use it for stuff more complicated than controlling a lego roboter with an easy program.

    3. Re:Code is like math by maxwell+demon · · Score: 1

      It would help if you were using the words with their correct meaning. What you apparently mean is either that it is not as convenient or that it is not not as efficient to do graphical programming.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    4. Re:Code is like math by Anonymous Coward · · Score: 0

      The US Navy was using LabVIEW during their railgun tests.
      http://www.youtube.com/watch?v=-uV1SbEuzFU (18 seconds in you see a LabVIEW front panel).

    5. Re:Code is like math by allo · · Score: 1

      just read what i wrote. Powerful can mean the possibilties to calculate anything. Almost every language IS turing complete. Which is completely useless, because it for example does not say anything about IO.
      So powerful means, what can you really do, and can you do it with a reasonable efford. Otherwise you can advertise for INTERCAL. Have a lot of fun...

    6. Re:Code is like math by allo · · Score: 1

      oh. How does labview work, i do not know really know it. Is this really graphical, or are the graphical blocks building blocks for much more code, one of their programmers wrote before? Stuff like putting together code blocks in a form of configuration can be useful i.e. for testing scenarios, but i thought of stuff like implementing a graph algorithm or similiar, which is possible, but will look pretty ugly.

  260. Scratch? by kae_verens · · Score: 1

    Dude, if you want to work in Scratch, just say so!

    You don't need to justify it - we're here to help.

  261. Oh dear that is a lot of posts, but here is mines. by Anonymous Coward · · Score: 0

    You know what visual programming languages would be REALLY good for?
    You know how people are trying to get more kids in to programming at earlier ages? Use it there.

    Show kids the result of programming after just playing with highly visual concepts and ideas, which is what their brains are more adapted for at a younger age.
    Then with time, up to around 10-12, start introducing them to more direct code.

    There you go, enjoy your super-intelligent new generation.
    Enjoy your not getting a job because you got kicked out for said generation that likely have IQs in the 160s+ and suffer from extreme depression after being forced to work at at McDonalds due to the massive overflow of people similarly as smart as them.
    Isn't education and society brilliant?

  262. Re:The more simple you make it the less complex it by crutchy · · Score: 2

    engineering discipline

    programming will be an engineering discipline when programmers can get prosecuted for negligence

    ever seen a bridge or an aeroplane with a disclaimer?

  263. Code = Math by Anonymous Coward · · Score: 0

    An algorithm is nothing more than a mathematical construct. When you write code, you are writing down an algorithm. Sure, you can abstract it a bit, but it woudn't be possible to abstract it more than the thing it represents, which is math.

    When we write down math we use symbols, when we write code we use symbols. There are more abstract ways to write math than text-like symbols and the same can be used for writing down code too. Figure out a new way to represent math, and you'll figure out a new way to write down code.

  264. Re:The more simple you make it the less complex it by crutchy · · Score: 1

    i never use flow charts for my software projects, but i can appreciate that flow charts could be useful... the problem may not be that flow charts aren't useful for complex software, but that programmers aren't taught how do do flow charts properly.
    a single flow chart doesn't have to contain all the complexity of a program any more than a circuit diagram contains all the complexities of an integrated circuit.
    if you represent a class/function/method/etc as a "black box", you can break a complex program down into levels.
    you could add a black box to your program without having any idea how it works on the inside, except that you know what its expected inputs and outputs should be, which lends itself well to xp unit testing.

  265. Are function calls "shoddy code" now? by dbIII · · Score: 1

    Only if you produce shoddy code.

    Code beyond very tight constraints becomes "shoddy code" and some algorithms demand nothing but "shoddy code" in that case.
    BTW: Calling a function, or block of code, multiple times would come under your definition of "shoddy code". That's how tightly constrained it is by the 2D graphical view.

  266. simple mechanics by crutchy · · Score: 1

    using a keyboard is generally more efficient than using a mouse

  267. Why are you still writng moronic webpages? by Anonymous Coward · · Score: 0

    This BETA crap sucks my grandpa's shrivelled up nutsack!

    Goodbye crappy website!

    Whoever thought this was a good idea should be fired!

  268. History by nashv · · Score: 1

    Programming started out as lists of commands sent to computers often on punch cards. This was considered infinitely easier than actually sending out voltages to a myriad vacuum tubes. That textual origin has lasted us 50 years.

    The only visual programming packages that I know to be relatively commonly used are Labview and Simulink packages from MATLAB.

    I think the problem is programming requires precise detail and to provide a complete visual interface you'd have to provide a visual representation of essentially every function available in the language, as well as a 'custom' function visual element. At this point , text is infinitely more efficient for modifying than a flowchart. This is why algorithms are often explained using flowcharts, but executed as textual programs.

    That said, I suppose all WYSIWYG web, 3D animation or Flash-animation tools like Dreamweaver/Blender/Adobe Flash Builder could be thought of as visual programming.

    --
    Entia non sunt multiplicanda praeter necessitatem.
  269. Re:The more simple you make it the less complex it by mikael · · Score: 1

    Some of them most complex control systems for aircraft are on the order of five million lines of code plus; device drivers for every possible component and sensor, user interface systems for the pilot information system and some AI for the autopilot logic.

    There are two places where I know that visual design tools are used; the first is QT Designer which is used to design application frames and dialog windows with radio buttons, sliders, text windows. However, this still requires that you connect all the input/output events between widgets manually. And those get really messy. That could be eliminated though, since if you add a push-button to a window, it is practically guaranteed that you want to know about the press/release event, so those event handlers could be added automatically. Another place is the composition editor of Blender where you can place and connect processing nodes to do image processing and lighting. Once again that still requires the data flow to be connected up manually.

    While a visual programming environment could be extended to do mathematics, there would need to be some way of handling complexity - some image processing and geometry algorithms consist of 20 or 30 more different stages, with each stage consisting of a 100+ line algorithm. If this environment supported hierarchical designs like data-flow diagrams, it might work, but it would just become a complete mess otherwise.

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  270. Need the expressiveness by eddy · · Score: 1

    It's a bit like asking why we aren't all writing novels with a markov chain generator.

    --
    Belief is the currency of delusion.
  271. Re:The more simple you make it the less complex it by Tom · · Score: 1

    There are two places where I know that visual design tools are used; the first is QT Designer

    I think we should make a difference between visual coding and using a visual designer to make your graphical user interface.

    Of course the later makes sense. If your output is visual, working with a visual tool is so obvious a choice. But that's not what we're talking about here, in this we're talking about making a program by drawing connections between boxes.

    --
    Assorted stuff I do sometimes: Lemuria.org
  272. Re:The more simple you make it the less complex it by Tom · · Score: 1

    if you represent a class/function/method/etc as a "black box", you can break a complex program down into levels.

    Sure you can.

    But then you are not gaining anything, because what you have is a graphical version of

    $variable = somefunction($some_parameter);
    $other = someotherfunction($variable);
    $total = something($other) + $input;

    because, you know, when you write a complex program, you already break things down that way, just like you write, into classes, methods, callbacks, macros or whatever. So you already have the black boxes, they're just function names instead of pretty pictures, but it's the same thing.

    Visualisation is a net benefit if it does something that a text doesn't do. It has many places. For example, the somewhat-famous pie chart that shows how many scientists agree on climate change has a much more powerful emotional impact than the number (97%).

    So when visualisation gives you a better understanding of the relations - as it can do for database design, for example - then it's useful.

    But when you go making black boxes, you are hiding the exact details that you would benefit from visualising.

    --
    Assorted stuff I do sometimes: Lemuria.org
  273. Money by Hyperhaplo · · Score: 1

    The answer to your question is: money

    Code exists as a way for humans to talk with the computer in a way in which the computer understands what actions to take in what circumstances. Each generation away makes code easier for humans to read and use and (generally) more expensive and specific to implement. Adding a visual layer on top of this is another expense.

    It has been done. It will be done again. Most likely very specifically and probably quite badly. A lot of programs can be introduced when putting another layer between the programmer and the machine. webMethods is a good example of what not to do. CA Workflow is another.

    Coding with a 2GL or 3GL or 4GL directly in text is currently the most efficient method for achieving the desired results. Existing systems do the job well enough. New systems are expensive.

    In many cases it is a 'build it and they will come'. Quite a few attempts have been made to make GUI programming language interfaces; in particular for workflow applications. It gets messy quite quickly. Take a program which has 900 lines of actual code (disregard comments, headings, etc, just the raw code). Translate that into a diagram and then try to debug it. Print out out? On what? an A0 printer?

    Visualise a program with 100 calls in the main. How would this be represented on the screen? Would each call open up in its own screen? Would you spend your time scrolling around looking for bits and pieces?

    Have a read of https://en.wikipedia.org/wiki/...

    If you want a practical idea of why it is not feasible then have a look at some of the existing examples of visual front end for code generation.

    I have used a CASE tool to create a system for a project. The first month was not too bad. After a while traversing through the screens can really get to you. I found that many people had printed copies of what the program had so they did not lose track of where they were. Humans can only hold so much in their mind at any one time. At the end of the project the system would not 'balance' and finding the 'bugs' was an absolute nightmare, one which involved using the existing solution as a basis and redoing the whole thing from scratch from the bottom up. If this happened in the corporate world the tool would be out the window very shortly.

    As another example, I have used a Workflow tool which had a graphical interface to define the rules for the workflow engine. Great. Except when it didn't work. Or did something in the output which did not match the graphical interface. Or where it just plain did not match up. In the end I ran SQL queries on the database to the rules table to write the rules I needed.

    Another example of using a graphical method for programming instead of text is Atlassian who removed wiki markup from their flagship product Confluence. This resulted in a huge backlash in the corporate wiki arena with many still bitter over the loss of the ability to write code in text. Atlassian have since somewhat recanted and users can now enter code as xml markup. It is a good case showing that the flexibility of code can not be easily replaced by a gui.

    --
    You have a sick, twisted mind. Please subscribe me to your newsletter.
  274. Programming is all about abstraction by Jookey · · Score: 1

    Richard Feynman: "Thinking is just like having a conversation with yourself." Friend: "Oh yeah(sarcasticly). Do you know what a crank shaft looks like?" RF: "Of course." Fr: "Than describe it's shape to me" RF: "..." Some concepts are better understood visually and some are better understood with text. Most textbooks have pictures and text. Can you emagine giving a contracter a set of plans written in text? One of the main obsticles to visual programming is it is currently used to teach coding. This is a terrible idea. In order to understand code you must have at least some basic concept of whats going on in the background. Visual programming abstracts this away. That being said, visual coding could be extremly usefull if you could use several paradigms at once, text and visual(s). For example you could start out your code with text, then insert picture that describes a controll loop. Inside one of the controll loop boxes there could be more text. Another box might contain a graph that in conventional programming would require a table or a seprate data file. Another box could contain a spreadsheet. Another box could contain a differential equation written in standard mathematical notation. Another box would be a visual layout of the GUI. etc... If you stick to one visual paradigm your going to make certain abstractions harder or impossible while making others easier.

  275. abbstraction and levels of comprehension by Anonymous Coward · · Score: 0

    I started with assembler. Very low-level. Then Basic, followed by Fortran.
    Yes, these are outdated in terms of the latest fads of programming languages.
    But they were simple enough that anyone who could follow logic could understand them.
    When I learned Pascal, and then C, then C++ it was a steeper learning curve, but doable in less than a year.
    With the advent of 'abstraction', manifests, templates, and more - the learning curve has become
    a 5-year process to become 'fluent' ( a verbal language comparison). Yes, it might be OK to
    make things more complicated than they need to be IF THERE IS A REASON! The reason might be
    to make more money, or to ensure that only genius-level people can understand the programming...
    But I suspect it is because of Hubris ( ego-asshats ).
    [ Microsoft is guilty. So is Oracle, Intel, and others

  276. Re:The more simple you make it the less complex it by mikael · · Score: 1

    I've seen hardware engineers print out images of chip designs, but they weren't looking at track layouts, they were looking at transistor densities. The image looked like a a density map of a large American city, with empty space in white, low density in green, medium density in yellow, orange and red, and high density in gray and black. I saw what looked like a exclusive leafy-green street surrounded by green parks. Like a sadistic urban planner, the engineer said, "oh, those are multiplexers, don't worry, we'll get them to move, it's costing us money to have a block like that, we like everything to be high density".

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  277. because you can have powerful abstractions in text by fuliginous · · Score: 1

    The reason is related to bootstrapping. The computer runs its instructions, you have to still have a translation from what ever layer over it to the form the processor handles.

    Yes you can use images and graphics that represent functionality and bolt things together. But customisation will still be required and that will probably fall back on using a keyboard. And that same abstraction can be turned into another graphical representation that just happens to be built from a few quickly entered taps on a keyboard such as "map(some_function, some_data)" - that for someone experienced in their chosen language assuming it is expressive enough to have an equivalent is able to be typed in about as much time as it takes to reach for the mouse and start moving to the appropriate button to click or icon to drag.

    When you add context sensitive completion in your chosen advanced IDE filling in items is made even quicker.

    Then when you need to drop to some lower level to create some new abstraction you are already there.

    What's lacking in text based coding packed with powerful abstraction (increasingly so in newer languages to the point I see lots of good programmers reinventing rather than learning the facilities already there - shows there could be too many) is the strategic overview. That is where I think good visualisation tools come in. People scoff as outdated things like Data Flow but it's the kind of thing that gives a good overview of the system but every tool for that or (to me the rubbish) OOD tools fail to give an easy flow.

    The failure of linking code to the design adequately is probably that too much code even on large things like GCC are hacked together (I mean coded) rather than as is done in places having a design at the top and the functionality in each region coded. In other words decomposition because in reality no one person can understand the details of each area along with seeing and reading all the lines of code.

    What I'm getting at with the design separation from coding is that up to a point just code with the powerful abstractions in text form is more than adequate for the job. It is only when a system passes a boundary of complexity that the graphical overview grows valuable. Even then you can probably represent the assembled system textually more than adequately using another form of abstract, but still textual, representation.

    Finally there's a practical difficulty. We still mainly use keyboard and mouse. Personally I think that will always trump touch and visual input and only be surpassed when we start wearing communication caps and think to interact with the computer (I'm bypassing speech input as always being pants).

  278. software automatically written from requirements? by fuliginous · · Score: 1

    Even then the writing of the requirements will probably best be done in text! With overly ambiguous words automatically rejected by the "compiler".

    But I see your point and agree.

  279. What happened to Slashdot by Anonymous Coward · · Score: 0

    This new design is terrible. What happened to the classic site?

    Please bring it back - the discussions are why many people come to Slashdot.

  280. Re:The more simple you make it the less complex it by grumbel · · Score: 1

    The reason programming languages are still as they are is for a simple reason, because you can't produce something complex with something simple

    I don't think that's really the reason. Quite the opposite, with proper graphical tools you could build far more complex things then with flat text. As those tools could allow you everything text can do and a lot more, as you aren't restricted to simple serialized textual representation of the data you deal with.

    Anyway, I think the whole graphics vs text debate is getting a bit ahead of itself, lets take a step back to things we already know and use every day. Take some simple shell code like:

    cat file | grep "foo" | sort | uniq

    Now try to reproduce that simple one liner in your favorite programming language. Can you make it that easy to read? Is your recreation as powerful as the original shell code (i.e. capable of running in parallel, easy to modify, etc.)? The answer to both of those would be "No" for almost any language out there. The code would not only get far more complex, but also far less flexible, slower and just downright miserable. Why is it that most mainstream programming languages don't have pipes or something similar as first class citizen? How can it be that some rusty old language from 30 years ago is far superior when it comes to such basic data flow and filtering?

  281. Re:The more simple you make it the less complex it by RabidReindeer · · Score: 1

    It has been tried many times. I'm staring right now at a vintage box on my bookshelf containing the Amiga Vision program, which was precisely that sort of drag-drop-drool tool. It was intended primarily for multi-media application development, and I liked it, but it obviously never shoved COBOL aside.

    It's not the only attempt. I also have an old Scientific American on another shelf that features the Icon language, similarly illustrated by wiring together pictures of stuff. On a more modern note, I have a GUI tool named "Spoon" that allows me to design data extract/transform/load processes using the Pentaho Kettle utility. That one I'm still using, and fairly frequently.

    There were attempts using OLE/COM and JavaBeans. Nothing ever became the "killer app-builder".

    The primary reason for this seems to be that all of the GUI software design programs are doing declarative-style programming, and while declarative programming has some very powerful advantages, sooner or later you hit the limits of what wiring together pre-supplied components can give you in terms of function, performance, and flexibility. And then you have to fall back to the old text-based modes, which ultimately convert into machine text (binary code).

    Management would just love to find a true D-D-D software design tool suitable for general production use. They could get rid of those nasty old overpriced third-world programmers and go straight to untrained monkeys. Or draw out complex systems in their spare time on the back of a napkin and hand them to a flunky. After all, "All You Have To Do Is..."

    But the Silver Bullet continues to elude them. No such tool has ever been found.

  282. Same reason why math is still in text by Teekin · · Score: 1

    We are still writing text-based programming code for the same reason that we're still writing text mathematics. It's better. There are only two reasons why anyone might prefer anything else than text. One is aesthetics, which is plainly irrelevant. The other is dyslexia, which is a handicap (with all due respect). Programming will continue to be in text for the same reason that mathematics will continue to be in text; it is the simplest, most elaborate and easiest way to achieve what is wanted.

  283. There is no other way by Anonymous Coward · · Score: 0

    As you stated yourself, a notation is necessary to describe algorithms and functionality. Text based programming languages are such notations. In computer history many attempt have been made to establish visual programming. And DSL have been used to reduce and hide boilerplate code as well as concentrate on the problem and less on the implementation. All these method and tools provide formal notations.

    A key argument for still using text based notations is the ability to code faster in text than in graphics and version control of models in an unsolved issue. Furthermore, you waste 2/3 of your time rearranging elements instead if specifying functionality.

  284. Re:The more simple you make it the less complex it by Joce640k · · Score: 1

    LEGO is supposed to be able to build anything, right?

    So how come all those kits in the shop have special parts in them? May kits have parts that are only used in that on specific kit.

    --
    No sig today...
  285. FB and oh BTW FUCK BETA. Nothing more to... by Anonymous Coward · · Score: 0

    FUCK BETA and oh BTW FUCK BETA. Nothing more to see on Slashdot, time to move along to something not redesigned for PHBs by PHBs.

  286. Code by Purpose by fiftybmg · · Score: 1

    Code is written for many purposes, and each purpose requires different constructs which are not interchangeable because of the hardware each is written to run on. There are purposes for client-server, desktop, server-only and mobile, and other more specialised. Each purpose requires a different code structure, and ultimately all code written for each purpose is very similar, which facilitates the creation of code generation tools and the use of 4GL development environments, per purpose. The pinnacle of achievement in the building of systems with the elimination of coding is provided by the Remedy ARS [ available from early 90's ], which is applied to client-server. To date, there is no equivalent in the areas of mobile, desktop, server-only or any other coding purpose. There can be no one method to create all code for all purposes without writing actual code, by virtue of the underlying differences in fundamental functionalities.

  287. Because complicated things are complicated by cascadingstylesheet · · Score: 1

    You share the dream of every Marketing department in existence. Can't we just get rid of those unfashionable expensive guys who write all that cryptic code stuff?

    The problem is that everything that can implement complex logic becomes programming, at some point. And for some reason it's actually not more efficient to have your Marketers become programmers in strange, clunky, non-standard languages, instead of spending their time, oh, I don't know, actually doing some marketing.

  288. Use the right tool for the right job by nurb432 · · Score: 1

    There *are* graphical dev tools out there ( check out ETL and workflow designers for example ) but sometimes, writing 10 lines of code is more efficient than putting 10 widgets on the screen, drawing your connectors, then setting up your variables. ( plus the run-time overhead )

    It all depends on what you are doing.

    --
    ---- Booth was a patriot ----
  289. The answer is: by drolli · · Score: 1

    We write text based code where it is suitable. Automated code generation from graphical system models or data flow models is in heavy use. Simulink/Simulink coder (translating your system model to c) and Labview (which compiles to LLVM internally since about 5-6years) are selling well.

    In the domain of their applicaiton (generating safe/stable code from an easy to understand system model) these products are excellent.

    I used them both, *but* (and this come from somebody who drew a webserver in Labview): Outside this domain, these tools suck. As soon as you need multiple interitance/easy code maintainance, you are screwed. There is no facility in these graphical system models like an abstract system model, or subclassing etc, for the very simple reason that these are difficult to represent graphically. I have seen dozens ov labview programs which could be written with a single component changed, based on the same parent class. I have sen people manually redrawing and changing simulink system model for very little change (which affected different subsystems). So maintaining any big/complex/flexible project sucks and requires hundres of pages of diagrams.

    And that is the reason why we still use text bases languages.

  290. Why write articles without comments? by Anonymous Coward · · Score: 0

    Sure, you can write articles without a community but what's the point? Fuck beta.

  291. Answer to OP by NapalmV · · Score: 1

    Jello - the answer is simple. Try to translate your Slashdot submission into a graph of emoticons and pictures. You're free to use any emoticons/pics you wish or create your own - except using pictures of text of course. Then post the result for us on some web site and a link to it here. We'll post what we made out of it.

  292. Information density by Anonymous Coward · · Score: 0

    I've been back and forth over the graphical vs textual space, and it comes down to conciseness: Visual works OK for a program's structure, but is lousy at the details needed to describe the actual data transformations. You can get a lot more bits of programming instruction per square millimeter of screen with text, and who wants to spend their lives scrolling?

    Also, text works very well for automation (overnight builds, test scripts, etc) and code sharing. To date, no visual representation comes close for repeatability or standardization.

    1. Re:Information density by Anonymous Coward · · Score: 0

      So diagrams don't exist?

  293. I think you have never heard of VHDL or Verilog by Anonymous Coward · · Score: 0

    Nobody designs chips by drawing schematic diagrams. That is all done using VHDL or Verilog languages today - schematic is simply unusable beyond certain amount of complexity. You cannot design a modern CPU or a memory chip which has few millions of transistors/gates by drawing them on a circuit diagram.

    Those CAD systems you mention are used to do circuit board layout - which is a very different type of problem.

  294. You need to see it _all_! by Anonymous Coward · · Score: 0

    One aspect that is really necessary when _maintaining_ software is the ability to understand _completely_ what it is doing. In other words you need to see _all_ the code. Visual Programming usually hide stuff. You attach a listener to an input field in a GUI application which need to do something - where do you see this when looking at the visual programming tool?

    Also the problem is similar to why we do not see something more powerful than SQL for accessing databases. You simply cannot cover as much as concisely with a GUI (because you need to anticipate everything) as you can with a text based interface.

  295. easy code. by tleaf100 · · Score: 0

    sorry jello,but you will not get a sensible answer on here,/Â has many problems,in your case you are asking a bunch of self interested,self protecting "professionals"how to put themselves out of business. you will not get many sensible answers,too many already hanging on by their fingernails as they are finaly made responsible for the usual rushed,badly done,over hyped over priced thats popular this month

  296. what do you mean no visual? by youn · · Score: 1

    _ gui interfaces
    _ gui db tools
    _ gui class visualization
    _ auto complete
    _ some uml tools allow you to prototype classes.

    Programming can be as visual as you want it to be. no, this is not fully visual because it does not make sense - it is not because you have a "smart phone" that computers are smart enough yet :)

    my personal question is why are most language still ascii and resort to external library for i18n strings

    --
    Never antropomorphize computers, they do not like that :p
  297. Because graphical programming languages are a dead by Anonymous Coward · · Score: 0

    You can't meta-program in them.

    In current text-based languages, if I discover I am writing a certain sequence of steps over and over, with slight input variations, I can write a program that will generate those steps for me, making it easier for me. ONC-RPC is an example - you specify the interface in a domain-specific language and run that through rpcgen, and you get out code that you compile and link into your other code.

    You can't do that with graphical coding systems, because the information is either too abstract or absent. How do you specify that these input values are expected to be integers instead of floating-point? How do you describe the input-sanitization routines needed to prevent a "Bobby Tables" attack on your website?

  298. For the same reason we still write words by Anonymous Coward · · Score: 0

    For the same reason we still write words, not images, to translate an idea. Why are you typing words here? You could draw a picture. Sing a song. Make a movie. But are still writing english sentences. Why?

    1. Re:For the same reason we still write words by Anonymous Coward · · Score: 0

      Why do people watch movies rather than just obtaining a copy of the script?
      Why do so many people pirate the game of thrones tv series rather than pirating copies of the ebooks?

  299. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    There's a graphical programming language that's existed for quite some time. It's calls SDL. As somebody who has had to maintain programs written in SDL, all I have to say is anybody who pushes more towards a programming model like SDL deserves to rot in the deepest darkest pits of hell. I honestly hope that a whole new ring of hell was created specially for the jerk-off who invented that crime against humanity.

    Graphical languages sound nice in theory. Then you actually get subjected to it. No. Just no. I spent two and a half years in that hell.

    And if you stop and think about it, it makes sense. We don't communicate in pictures. We communicate in words. And written text is the graphical representation of how we communicate naturally. Books convey much more complex and intricate stories than movies do. Why, because it's very difficult to make something complex and intricate visually. Movies based on books tend to suck, because they're trying to convey a more complex story than what movies are typically conveying, and as such typically have to throw a lot away. Seriously, a challenge. Make up a picture that says what I just wrote. Do it in less time than it took me to write this, and do it in a way that is less ambiguous than what I've written.

  300. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Umm .. Mozart did have 12 notes to compose with.

  301. Bollocks by Anonymous Coward · · Score: 0

    You sound like people back when high-level languages were introduced. Granted, the first high-level languages sucked and forced you to escape to assembler or lower from time to time. Today, we have abstractions that are better than people in most cases, and we only need to escape to assembler for very tight loops where we have more information than the compiler can know.

    As an example, consider the goto/jump statement. In the beginning it was necessary, but then structured programming was invented. It's much easier to grasp and far less error-prone. There were still cases for goto, such as early termination and error handling. Enter break/continue and exceptions, which make those cases irrelevant. Now, I'd say the only case where goto is marginally useful is to jump into the middle of some code (e.g., common execution but different parameters). More or less like a faulty switch/case where some idiot leaves out a break. It's shitty code style, though, confuses the CPU, and can be emulated by separating your code into multiple procedures.

    Same goes with smarter programming. Some advances are made, but we're not there yet. For example, the Eclipse Modeling Framework makes it heaps easier to create standard object structures. Write the interfaces or use an UML editor, and get a complete data-structure with notification mechanisms. The code is easier maintainable, editable and decently efficient; heck, the notification mechanism is more efficient than what most programmers would come up with.

    I have also seen systems that aim to handling the concurrency part of MPI applications. You specify your architecture, your network layout and the basic components of your application. The framework handles all of that stuff for you, so you can concentrate about the easy part of making sure that your non-concurrent code works. Again, this is a domain-specific tool that helps making a ridiculously difficult problem much easier. Fast prototyping with a reasonable implementation for experts, the mere possibility to do it for non-experts.

    User interface editors. Heck, even object-oriented UI elements; if you ever tried making user interfaces in the early mid-nineties, those are a time saver on par with a machine gun in a supermarket.

    I have also seen systems I do not believe in, but who try interesting approaches to make programming easier. Take for example the Graphical Modeling Framework, which automatically creates utterly shit graph-based editors for EMF models. The idea is sound, but the execution is sort of lousy. For a much more esoteric system I doubt many here have heard of, consider the Play Engine (different from the Play Framework; if you wanna look it up, throw in the name David Harel in your search). It allows you to create a GUI and by showing the system what you expect to get out from it. It allows you to make simple applications by show-and-tell. At least in theory; in practise it is too computationally expensive and limited. Still an interesting idea.

    Myself, I've been working with a graphical modeling formalism called colored Petri nets. It allows you to abstractly describe the flow of a concurrent system. It is not intended as a programming language, but for specifying complex behavior. It is an ongoing and active topic to go from such abstract descriptions to (skeletons of) executable code. Recently, I've been working with another formalism, where you don't even specify how to execute your system, but merely constraints (e.g., can't be in a critical section more than once at a time, transmitting cannot happen before encryption, and so on). The system then derives legal execution plans. It can detect potential future conflicts and automatically avoid them. Sure, it's still work in the early stages, but with time it'll get there.

  302. Why are we still writing text-based text? by gottabeme · · Score: 1

    Why are we still writing text-based text?

    Why are we still writing text-based communication?

    Why are we still using languages with words and grammar and syntax?

    Why aren't we communicating with pictures?

    Why aren't we communicating with thoughts?

    Why was this story posted on Slashdot?

    --
    "Those who consume the bulk of goods are those who make them. We must never forget this secret of our prosperity."
  303. Turing doesn't agree with you. by Anonymous Coward · · Score: 0

    And neither should anyone else. Nothing in your post is correct.
    All complex things evolved from simpler things.

  304. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Hey, it is already possible to program VCR to record my wanted show at day without me ever using any text-based coding, so it definitely would be possible to program a computer do programs when I am wront of the computer!

  305. Already exisst - and there are better alternatives by taikedz · · Score: 1

    For the TL/DR: graphical programming is inefficent, and error prone; better methods of viewing source code during read-back is more interesting.

    Apple has the Automator, which takes actions and chains them together. You can define variables, and operate on them.

    I used to work with an enterprise software called Adobe LiveCycle, which does business process automation -- the approach was that rather than defining the business workflows in a chart diagram, and handing it over to a programmer to implement, the diagram itself WAS the program - business workflow designers (often managers and business consultants who were not technical) could build the workflow as individual steps, and more tech savvy people would add the variables and stuff to make it work.

    A quick search on Google images turns up a lot of interesting stuff, including this graphical programming tool . The techniques have been in the making for a while.

    Needless to say, even with these visual aids, to get something worthwhile done, you need to have actual programming knowledge - the Automator is good for home use but cute at best in production environments due to lack of finer configurability, and the business process workflow programming I mentioned still required in-depth computer knowledge: the workflow creators' work was often computationally inefficient, and often had to be refactored to take into account finer points of logic flow from both efficiency and data management points of view.

    On top of that, it's easier to search on the Internet and on forums for code snippets, and discuss these when they're already in text form - no programmer actually works in isolation, communication is essential. Some advantages in reading back code might be had in graphical representation, and certainly creating a "visualization tool" for reading back code or designing high-level ideas might be helpful - but making it the implementation language is probably a bad idea.

    On that matter, I recently came across the LightTable IDE which facilitates programming by doing live demonstrations of what happens to variables directly in the code flow. This also catches syntax issues early, bad type casting, and other relevant issues. Much better than a graphical abstraction I think, but that may just be preference.

    The linked article indicates that visual programming has had success with casual creators in very specific scenarios (education of young kids, and use in LittleBigPlanet) - not in the general purpose programming arena for business critical solutions, high throughput systems, etc. Also, it says nothing concrete apart from "it's a matter of opinion" - nothing about the advantages or disadvantages of either.

    Ultimately, it's like asking why bread shops don't use bread making machines. Tools for the job, tools for the desired outcome. If the simpler method works at home, that's great - but if you want to work professionally, the more sophisticated method yields better control over the final product.

    --
    -- "Simplicity is prerequisite for reliability." --Dijkstra
  306. Why are you still writing text-based questions? by gig · · Score: 1

    Same reason.

    1. Re:Why are you still writing text-based questions? by Anonymous Coward · · Score: 0

      http://www.animationplaza.com/3/animations/people_f_to_h/heads/dave_shaking_head_no_ha.gif

  307. FUCK. BETA. by Anonymous Coward · · Score: 0

    You claim classic is still here, but I CAN'T FUCKING USE IT because it fucking redirects to the goddamn beta.

  308. Text-based code best represents multi dimensional by KJSwartz · · Score: 1

    As a software engineer, you've taken the effort to generate requirements document, various module development plans, a high level design document, multiple interface control documents, and finally begin to codify the design. Now, graphically embed the essence of all those documents into intermediate object files, link them together and swear on a rack of Sun Solaris Manuals that you can support the product for the next ten years.

    The answer: you can't. Tools evolve and die off, while text-based intermediate files are infinitely easier to support in the long run. Imagine what happens when your current version of LabView falls out of support and you have new requirements or a critical problem to resolve and your only machine with LabView has died a horrible death taking your hard drives with it.

    Or better yet, developed test programs using VB 6.0, and woke up in a new millennium where your application no longer works on a Windows 2016 machine. What to do, Bunkie?

    ---

    Do you REALLY want to have a George Jetson job making sprockets with your one red button? Steve Jobs said YES and created the iPod.

  309. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Mike, I agreed with you until I read the rest of that comment The idea is with a simple interface the complex details are hidden, hence the reason you don't find many quality apps written in Visual Basic and even then it has a text based file to tweak the details theG UI can't quiet get right (forgive me if I messed up the details, I haven't used VB since version 6), but the same applies to the visual editors for C/C++/java, they have a text file to edit with GUI tools to rough out .

    Now I fell like a GUI is a bulldozer to make sweeping changes, and the source code is a scalpel for the fine detail work.

    #getoffmylawn #fuckbeta

  310. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    "The reason programming languages are still as they are is for a simple reason, because you can't produce something complex with something simple,"

    Generally speaking, in thin universe, you are utterly wrong.
    ALL thins are made of simpler things.
    The only way to make something more complex is to make some simpler things interact.

  311. We've mostly got the tools we need ... by SpinyNorman · · Score: 1

    I think part of what your missing is based on your own self-described lack of experience.. that you can write simple programs but get bogged down writing more complex stuff. Professional programmers don't really have this problem (or at least the experienced ones don't - there is a learning curve as in any field).

    The main "trick" to designing/writing complex programs is to be able to think at many different levels of abstraction and therefore to "divide and conquor" the complexity. At each level of your program (think of it as a layered onion from the highest level on the outside down to the low level stuff of simple programs on the inside) you're going to be implementing one level of complexity/capability by using software components that are essentially only ONE level lower in capability than the level you're at... ditto for the next lower level, etc, all the way down. Designed this way, it's no harder to write the highest levels of the program than it is to write the lowest levels that you are familiar with.

    Note though that the software components you're using at any level of your design are going to be domain-specific components that you've designed yourself to make the job easy - they are not going to be 100% off-the-shelf components (other than company internal re-use), other than at the bottom most layer of the design. It's having the right components that makes the job of implementing the next layer up easy (like the idea of the adjacent possible - without having "adjacent" components the corresponding "adjacent possible" is NOT possible, or at least is way more difficult). So, the real issue is not whether one is using a visual vs text-based method of composition but rather in having (creating) the right components at each level.

    It's also worth noting that since programmers are the ones with the skills to create programming tools that we therefore necessarily have pretty much the tools we need. Good programmers are lazy (strive for minimalism), and arn't going to fight the same battles every day if they can build a tool to make their lives easier. Of course there's always a bleeding edge of new technology where the tools havn't yet matured (e.g. now that clock speeds are topping out and parallelism is replacing it, there's more need for better tools to deal with parallelism), but basically we DO have the tools we need.

  312. You make an interesting point by Rambo+Tribble · · Score: 1

    Why should programming require a better command of logical constructs and clear thinking than being a member of the U. S. Congress does?

  313. Re:if you "get coding" so well, why arent you codi by sonamchauhan · · Score: 1

    Yes, there are benefits unique to text representation.

    But if you look at the context, I'm not arguing against the written word (see note here: "Perhaps, a printed executive summary of bullet points in your hand.")

    I'm saying is text is just _one_ mode of interaction - it shouldn't be the only one. Effective multi-mode interaction is always better than single mode. We are full-spectrum creatures.

  314. Re:if you "get coding" so well, why arent you codi by sonamchauhan · · Score: 1

    And people had been trying to build better buildings, keep secrets more secure, create deadlier weapons, for millennia, not just 60 years. There are have been a bunch of great and beautiful (and ugly) solutions found all through this time.

  315. I've pondered this as well ... by DaChesserCat · · Score: 1

    ... and posted a Journal article about it a couple months back. Yes, folks, it IS possible to create a general-purpose programming language which can be represented, and written, graphically. As more and more devices sport touch-based interfaces, this will work even better. The main reason we're still writing code with text is because programming involves a lot of complex, inter-related data input. And, for now, the fastest, most efficient mechanism we have for putting lots of complex inter-related data into a computer is ... text.

    --
    ... by the Dew of Mountains the thoughts acquire speed, the hands acquire shakes, the shakes become a warning
  316. Prograph by Anonymous Coward · · Score: 0

    Prograph, anyone?
    http://en.wikipedia.org/wiki/Prograph

  317. Visual isn't easier by Michael+Snoswell · · Score: 1

    Most non-trivial programs can be drawn as diagrams at a conceptual level, which is probably the level you're talking about when you say you "think about algorithms but don't program" (I'm paraphrasing). Sounds like you're looking for an excuse not to learn programming. As soon as you do the answer to your question will be obvious: there's so much detail and complexity in a real program that a picture can't capture the information in a succinct way.

    Sure, you can actually describe every variable and data structure and nuance of any program as a diagram, but it's going to be very complex and unmaintainable (ie very messy to debug) and have a lot of text in it to describe exactly what you want.

    Some programming languages can be very good at simply defining certain types of programs - APL can do some awesome matrix and vector calculations in a few lines, or Perl can describe some very complex data manipulation in a few lines. In both cases you'd spend much, much longer describing it in a diagram that includes every nuance of the program, or trying to describe them in sentences.

    All these things are self evident to programmers. They know there's fiddly detailed things you have to do in C or Assembler sometimes, or graphics that easier/faster done in Python/Tk or text manipulation best done in Awk or Perl or symbolic manipulation best done in Lisp or whatever. And to those programmers those programs ARE the most efficient way to encode ("draw") the problem. Furthermore other programmers look at well written code and quickly build an understanding of what code is doing. Comments help her a lot, depending on the familiarity of the programmer with the kind of code. (eg a programmer specialising in interrupt driven driver writing for a living is going to have trouble understanding a program with simulates sonar echoes in water).

    Again, bite the bullet, learn how to program in a few languages and all this is obvious.

    Then there's complex systems that can be described AT A HIGH LEVEL in diagrams, but the caveats and exceptions and nuances to describe it fully might cover 1000s of pages, or much more, of design documents. In many cases the final programs of hundreds of megabytes of definition documents (like an autopilot system I worked on for an air force jet) ends up much bigger than the final source code (and then the final programs are way smaller again).

    Stop pussy footing around though, teach yourself to code and write some substantial programs (at least a few 1000 lines, but probably a fews 10k lines) and do that a few times, then in a few languages and you'll understand coding these days is pretty efficient. I'm sure it'll be improved upon but for now you'll get insight into why your question so obviously shows you just need to learn how to program.

    --
    pithy comment
  318. My experience by MadShark · · Score: 1

    I mostly write C and C++ code these days, but I've worked a lot with guys using Simulink and Labview. Both are good tools, but like any "programming" language, there are issues. Some of them stem from the lack of software processes being used by people who have never been exposed to a typical software development process. Simple things like version control, or "code" reviews. My experience with Labview in particular, is that the ease of changing the graphical representation encourages people to quickly tweak something to make it work. I've ended up in the situation where I asked what they changed to make it work, and they can't tell me. This is as much a lack of rigor in the process as it is in the people using the tool. They can often do amazing things, and quickly, but they tend to be difficult to maintain.

    My experience with Simulink is a little different. The guys working with Simulink tend to be domain experts, often with PhDs. They really know their stuff. When they can generate a good model of the system they can do AMAZING things. The downside is you can spend millions of dollars developing and validating the system models. It is why you see Simulink used in projects with tough control systems problems, which coincidentally often have large budgets, like the automotive world.
    Sometimes, the code generated by SImulink isn't efficient, which can drive up memory/CPU costs. When you are shipping hundreds of thousands or millions of a product a year, adding a few cents per unit really adds up. Sometimes the cost of spending an extra million or two writing the code in C(or optimizing the Simulink after the fact) is worth the expense. My opinion is that tools like Simulink will eventually take over the control systems market.

    Another reason is cost. You can get a C compiler for free. Matlab/Simulink is a 6-figure expense per developer. Labview isn't that expensive, but it is still not cheap.

  319. Re:The more simple you make it the less complex it by SpinyNorman · · Score: 1

    In practice, I believe that the present text-based programming paradigm artificially restricts programming to a much simpler logical structure compared to those commonly accepted and used by EEs. For example, I used to say "structured programming" is essentially restricting your flow chart to what can be drawn in two dimensions with no crossing lines. That's not strictly true, but it is close. Since the late 1970s, I've remarked that software is the only engineering discipline that still depends on prose designs.

    You appear to be thinking about a very limited subset of software where the essence is captured by the "two dimensional" control flow.

    As Fred Brooks famously wrote: "Show me your [code] and conceal your [data structures], and I shall continue to be mystified. Show me your [data structures], and I won't usually need your [code]; it'll be obvious.''

    Nowadays he probably would have updated that pithy formulation to include mention of your threading model as well as data structures.

    If you start trying to visualize the dynamic behavior of complex synchronization-heavy multi-threaded programs or ones with significant non-trivial shared data structures, then I can assure you there'll be plenty of crossed lines!

    The time when most programs could be described by flowcharts was probably 40 years ago. We've moved on a bit since then!

  320. Are Pictures/Graphics Superior for Coding? by Anonymous Coward · · Score: 0

    B'eta is more than cosmetics or aesthetics. The new design ruins the one thing that makes /. what it is -- the commenting system. I only come here for the comments, not the 2-day old articles nor the erroneous summaries.

    I do not see the changes of B'eta as improvements. What is wrong with Slashdot that demands breaking its foundations? This is not change for the sake of change, but, as others have commented, an attempt to monetize /. at any any cost, and its users be damned.

    Our complaints have fallen on deaf ears, and will continue to do so. Dice intends to dispose of Classic in favor of B'eta, whether we like it or not. Do you know how to tell whether an executive really cares about feedback? If her CV doesn't already proclaim these changes to be a success even before fully implementing them:

    Proven track record innovating and improving iconic websites (CNET.com, Dice.com, Slashdot.org, Sourceforge.net) while protecting their voice and brand integrity

    Correct me if I'm wrong, but apart from an almost universally hated B'eta version, how can anyone claim in good faith that /. has undergone any change at all so far?

  321. Not this again... by Anonymous Coward · · Score: 0

    Will the trolling never end?

    This is for the Internet n00bs out there (the 99%) who don't know that trolling has nothing to do with trolls...
    https://en.wikipedia.org/wiki/Trolling_%28fishing%29
    Fishing for comments or a response to make OP feel important.. which is exactly what this /. article is all about.

  322. I've done programming via flow chart and it's ridi by Anonymous Coward · · Score: 0

    There's a platform out there called Mendix. The management a work decided to use it, and paid millions to do so, prior any programmer being out in the project. It's a quick hit application platform where almost everything is done visually. (Think flow charts with some conditional expressions). It's horrendous. It takes at least 4 times as long to get something done in it. Basically it 'a all graphical. I found the person that trained me knew nothing about actually programming languages. Wasn't even familiar with CSS. All I know is the more layers we dump on top of things, the less anyone is going to actually know how it works at the bottom. That to me is scary.

  323. Please post your question in the form of a stick by Sloppy · · Score: 1

    Maybe I lack patience, but really, why are we still writing text based code?

    Why did you submit your question as written sentences? Surely you could have expressed whatever you're asking, by carving a few notches on a stick, taking a picture and posting to imgur.

    I lack the patience to try to figure out what you're trying to say, as text. Ask again, in stick, where we can communicate more efficiently.

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  324. Thats a dodo's opinion by a4r6 · · Score: 1

    The reason you havent met anyone who prefers editing code graphically is because there isn't a good graphical code editor. The reason there isn't a good graphical code editor is that programming is an immature profession, as are most that deal with high technology, and that minds change slowly. I guarantee you we can get more, better code into the computer with less chance of error by representing the code in more elegant ways. That is to say, representing it in ways that are more easily processed visually, that convey more infomation with less noise -- with more easily identifiable patterns. IDEs already do this. They bring the code to life with interactive menus and highlighting. There is no reason that the info represented there always has to have an ASCII, syntactically complex equivalent.

  325. Coding is a language. by Anonymous Coward · · Score: 0

    Likewise, you use words to form a sentence to accurately describe an object (var) or order it to perform an action (function).

    What you're proposing is for coders to use emoticons to create programs. Those are unreliable, and generally speaking, every receiver will have a different interpretation to a winking smiley face.

    That will take us back to spaghetti code and duct-tape problem solving instead of concise precision.

    In short, let's no go back to the time when surgery was performed out in the field with hacksaws and a bottle of liquor.

  326. Warcraft/Starcraft scripting does something like t by Anonymous Coward · · Score: 0

    Blizzard's RTS games come with a level editor that supports advanced scripting. You can use the GUI to make scripts without actually typing anything. It's nice for simple things, but it's really just dressed up text. Once you have a bigger function or need to do refactoring, you really want to edit the underlying text. Somehow I have a hard time imagining a graphical paradigm that would give the flexibility for editing that text does, and I think visualization of code is better as a debugging tool, not a writing tool.

  327. Domain specific languages by erikmartino477 · · Score: 1

    It makes sence for some domain specific languages. Spreadsheets, GUI builders, and Flash builder are great examples. In general, imperative languages are difficult however declarative non Turing complete languages works better. An aspect to consider is tooling and collaboration, how to handle merge coflicts etc.

  328. Why are we still using symbolic mathematics? by Anonymous Coward · · Score: 0

    Why do we still use letters, punctuation symbols, the Greek alphabet, and upside down A and E in mathematics? Some things are abstract, and symbols are the best way to express them. Look at some geometry, which is so abstract it can't be visualized using a drawing. People resort to the symbolism of category theory and set theory to express non-visual geometrical concepts.

    Then again there's Query By Example, the Borland Paradox abomination from the 90s - when was the last time you heard about it?

  329. Re:The more simple you make it the less complex it by Chalnoth · · Score: 1

    It's certainly possible to do. But I don't think it works very well. The problem is that in introducing a graphical design, you introduce additional constraints on the design that are extremely artificial and are only due to the schematic nature. When designing circuits this isn't an extra constraint, because the final product has those exact same constraints.

    I've also found graphical UI's for generating programs or parts of programs to be much more cumbersome and slower to work with than scripting languages.

  330. Text is an elaborate symbol system by Anonymous Coward · · Score: 0

    IMO, what the original poster wants is something like object oriented programing of some type, which is, as several have pointed out is much more restrictive than liberating. Think back to HyperCard/HyperStudio - this environment was supposed to allow everyone and their dog to create "stacks" of cards and open programming to the masses. It soon showed itself to have crippling limitations that real coders tried to expand by creating shims and add-ons that allowed for more capabilities, but again, the environment was always a poor shadow of what could be accomplished by a real programmer.

    To accomplish what the original post wants would take almost a savant understanding of the state of all the registers of the processor in question at all times in a process - so the 'programmer' could create a sequence of commands to control each component and "break the rules" of structured programming when needed - but the issue with "breaking the rules" is - you might invalidate the algorithm if you don't 100% understand what you are doing. Programming would turn in to: enter data, some magic happens, and the result may be valid or not. Structured programming helps verify results keeps us from breaking the rules and allows computers to be trusted to manage and process our data.

    As far as the limitation of text - as many replies here have pointed out. The English language gives us the complete works of Shakespeare, the complete works of the Beatles, and yes even the tripe of Brittney Spears and Lady Gaga. It is a massively complex symbol system that is capable of wonderful nuance and can be combined in endless ways (although Hollywood seems to be lacking in original ideas - as remakes of the Beverly Hillbillies and Brady Bunch illustrate, but back to the point). I learned to program and when one language would not do, I went to assembly code and even hand coded in machine language when needed. Choosing to resolve a programming problem with a menu of pretty pictures would have been more limiting, not more liberating, as it would just call libraries of some other programmer's code that had no clue what frontier I was trying to explore.

    Anyway, back to the point. I find programming with text based programming languages quite satisfactory and augment it with the snippets of code created with tools closer to the processor, not further away and more abstract.

    I used to think since I could program everyone could, if taught correctly. I used to think everyone could be creative and solve problems in new ways (this is where the assembly code typically came in), but I eventually learned this is not true, either. Great programmers are creative masters of their art (such as Shakespeare or Mozart) and regularly see elegant relationships and solutions mere mortals may only glimpse once or twice in their lifetimes. One cannot package such greatness into libraries and OOP icons.

    I remember the first time I was able to reimagine a programming solution in such a way that eliminated hundreds of operations into just a dozen or so. Such a feeling to have such an epiphany! But unfortunately I am one of the many who get lucky and can emulate the great ones once in a while - so programming stays my playground, not my field of work. It does help me appreciate the work of the masters when it occasionally appears.

  331. You consider wongly. by Anonymous Coward · · Score: 0

    " "I consider myself someone who 'gets code,' but I'm not a programmer. "

    You are half correct.

  332. translate? by Anonymous Coward · · Score: 0

    i'm no programmer, but doesn't the compiler translate the high level code to machine code so that the CPU can understand?? and the high-level code written in C++, Visual basic.net is text-based code? Visual studio compiles the code in intermediate language, then the dot net runtime runs the IL. I must be missing something

  333. If you have to ask this... by 2fuf · · Score: 1

    ...then you don't know enough about programming http://en.wikipedia.org/wiki/D... . For your own sake and sense of satisfaction I suggest you pick a new hobby or allow yourself some time (>10 years) to fully get acquainted with the subject.

  334. Re:Because text is the only medium that's varied e by EtaCarinae · · Score: 1

    This. Artifacts that can be edited an put in a repo by any serious project need to be in a format understandable by quality diff and 3-way merge tools. Some automatic conflict resolution of trivial but unrelated changes in an artifact is also highly needed. IBM RSA (UML) has come some way here, don't know about LabView - guess there's some diff at least, but 3-way merge? Doubt it.
    Never mind code generation, I would be glad/surprised if there was a structured graphics format with good diff/merge support! (not counting the language-based ones such as TeX/pic then...)

  335. It's not text vs. visual by Anonymous Coward · · Score: 0

    The problem isn't one of how the language is presented to the user/programmer. It is how they interact with it. We need languages that can allow the programmer/user to tell the system what they want in simple human terms. IE, put this thing there, link these things together, and put them therer. When once selects a and links it to b, then do the right thing! FWIW, I have a patent on some of this - adaptive systems. You tell the system what you want. It figures out how to do it. No programming required!

  336. Re:The more simple you make it the less complex it by camperdave · · Score: 1

    Apparently the GP only ever learned the C major scale. That's surprising for a programming-aware individual who should have at least heard of C#.

    It's not accidental. The definitive work on the concept specifies eight notes. However, regardless of the specifics, the point remains: You can build highly complex constructs out of a small number of simple components.

    --
    When our name is on the back of your car, we're behind you all the way!
  337. Re:The more simple you make it the less complex it by chthon · · Score: 1

    Hardware is relatively simple: there is only one kind of signal, a boolean. All properties of electronics, in relationship with this, are more or less known.

    Now, most programs do not process simple boolean values, but characters, numbers, strings and combinations thereof. The way these things are processed, depends on their semantic values, something that must first be put into the computer before it becomes possible to even try to build a program generator (because that is what is done by graphical environments).

    I have worked with different environments which generate code, and they are good for starting, but not good for building everything.

    In code, the main mantra is: one fool can raise more questions than a thousand wise men can answer.

    Software is limited by GÃdel's theorem: with one kind of consistent program it is possible to do what you want, but there will always be some wetware which asks something which cannot be implemented by such a program.

  338. That is why I have build a code generator by Anonymous Coward · · Score: 0

    Well, I have tried to avoid coding from long time. We have worked on a code generator for building business applications. You can check it at http://ecgine.com We have build complicated business applications with it. It will be in continues development.

    Now my problem is, I don't to write code for code generator also. I want to go one level above it. Now I am looking for some reasoning system where it will know how to write code and I will ask it to write. I am looking at some AI system for it. I know I will do it, not sure how long you have to wait for it.

  339. No by Anonymous Coward · · Score: 0

    As a professional software developer, I would never use something graphical over text because its just more efficient. Try teaching someone to program visually _using a keyboard_, since you know, one handed programming with a mouse is clearly so efficient.

  340. And while we are at it... by rumpsummoner · · Score: 1

    I think we should get rid of all writing. With all of those spelling and grammar issues to contend with, I think writing is too hard and too error prone. Since I suck at writing, I can't imagine that anyone else finds it useful at all. We should move to pictures and video for everything. With technology being what it is, what's the point of words anymore?

    -Suck my DIckens

  341. Three problems by TVmisGuided · · Score: 1

    I see three problems with automatically presuming that any meaningful code for a compiled program will include a graphical interface.

    • Adding code to produce a graphical interface immediately quadruples the amount of code required for a given program, and at least triples the size of the executable.
    • Trying to design a usable and logical graphical interface for a program is frequently more complicated than devising the base program itself.
    • Ask any two programmers to choose a standard library for developing a graphical interface, and you'll likely get three answers.

    That said, programs that I write for my workplace perform 100% in the background, and do all their work on large data files. What needs to be graphical about that? Would it really be that useful to quadruple the size of the code base for a program just to add selector boxes for input and output files, and a status bar?

    That's as far as I go.

    --
    All the world's an analog stage, and digital circuits play only bit parts.
  342. Fast vs precise by ajyand · · Score: 1

    Fast vs precise vs versatile

    You can hum a tune and record it on your phone.
    Why do we need musical notation then?
    The answer is ... precision.

    I like the Python/Ruby approach: do more with less code. That's the best it can get.

    And if you really really want to code using fancy blocks and rectangles (like those in flowcharts), imagine the nightmare those malformed graphics elements arranged in ever increasing network like layout with exponentially increasing connections will cause when much easier things like syntax highlighting sometimes sucks.

    Code visualization and visual coding may be used as a secondary aid.

  343. Re:The more simple you make it the less complex it by KramberryKoncerto · · Score: 1

    Mainstream languages do something like this: uniq ( sort( grep ("foo" , cat file) ) ).

  344. Quality Assurance ? NOT! by Anonymous Coward · · Score: 0

    AS the 'responsible engineer' for nuclear safety systems.
    Fuck digital, fuck code.

  345. Might be like a functional language by fozzmeister · · Score: 1

    I think you'd end up creating a graphical functional language, at least all the "primatives" would be similar, map, filter, let decomposition etc.

  346. What is the point? by Anonymous Coward · · Score: 0

    If you switch text commands for pictures then instead of memorizing syntax you will have to memorize pictures and combinations of pictures to achieve certain results. In the end you are left with the same.

  347. It's not Beta, it's YOU! by Anonymous Coward · · Score: 0

    It's not Beta fucking up Slashdot, it's you fucktards trying to hijack every story that are ruining it all for everyone else.

  348. You can't produce som'n complex with som'n simple by Anonymous Coward · · Score: 0

    The above statement is obviously wrong. You can write poetry, law, philosophy, religion, and software with a piece of charcoal and a stack of paper or other means.

    If we are using text-based tools, that must be because all the available tools are text-based. By any means develop your systems graphically in UML or whatever, and then maybe 'compile' this yourself into a regular programming language.

    On the other hand, you would not want to code in 'Visio Basic', where you painstakingly have to draw flow-chart symbols for various control statements, which are compiled into old-style BASIC afterwards.

  349. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    For problem-domain-specific programming languages, it's fine.

    I worked with an HVAC control system that used a graphical language. Here's the marketing brochure for it. If you look at that brochure, it shows a graphical program, then it shows an equivalent program in pseudo-BASIC. And if you notice, the best part is that everything is a watch variable when the program is running and you're monitoring a live system. That's why each "microblock" has little yellow numbers or words next to it. That's the current value coming out of that part of the program.

    It's a very well-thought-out system for the specific problem-domain it's in. And I think that could be true of a great many other problem-domains. This is where graphical programming can really shine.

    But general purpose programming is always going to require more rudimentary, low-level tools than that due to its nature. Think of it this way: Somebody had to use a low-level language to program that graphical language. It will always be that way. You can't build a house without digging a hole. Somewhere, someone has to work in the dirt to build a house. Somewhere, someone has to work in machine language to build a software program. Thankfully, we have compiler authors. They're the earthmover operators of the software world. Nothing gets done without them, what they do underlies everything we build, and if they mess up, then everything we build is unstable.

  350. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Mozart had the Chromatic scale.

  351. hmph by Anonymous Coward · · Score: 0

    "... but I get bogged down in more complex code..."

    It sounds like what you're saying is, "I don't like the rules of this game so can we change the rules?"

  352. it already is graphical by Anonymous Coward · · Score: 0

    curly braces { }, indentation, carriage returns, and a good imagination

  353. Information density by Anonymous Coward · · Score: 0

    For the same reason we write novels and text books in English.

    Information density is much higher with text.

    Mike

  354. Re:Because text is the only medium that's varied e by Anonymous Coward · · Score: 0

    Now, one system that I absolutely loved working with had an IDE (text-based) where you deal in layers. When you click on the function name, the function itself comes up in different windows. I found that paradigm encouraged small, tight functions. Furthermore, the underlying "compiler" would in-line functions that were defined only once automatically. (You could request a function be in-lined in all cases, like in C, if you needed speed over code size.)

    Was that a Smalltalk IDE? From the description, it sounds a lot like one...

  355. Re:The more simple you make it the less complex it by Crudely_Indecent · · Score: 1

    The more simple you make it the less complex it is

    Did you come up with that all by yourself?

    What's wisdom will you bestow next? here are some suggestions off the top of my head:

    "the more warm something gets, the less cold it is",
    "more light leads to less darkness",
    "as something dies, it becomes less alive" or
    "as things speed up, they move less slowly"

    Thank you, Captain FormulAiC.

    --


    "Lame" - Galaxar
  356. Why not program using sheet music? by Anonymous Coward · · Score: 0

    http://www.youtube.com/watch?v=n4LDVrnAQeo

  357. If I had to guess? by Anonymous Coward · · Score: 0

    Probably the same reason we're still writing text-based novels.

  358. Re: The more simple you make it the less complex i by adiposity · · Score: 1

    system("...")

    What you are describing is using a bunch of shell programs to achieve a simple task. Up to a certain level of complexity, these prewritten programs are the best way to accomplish such tasks. Thankfully, most programming languages both have many such predefined functions, as well as being able to call the system shell.

    But yes, the shell is an environment where it is easy to get certain things done without the overhead of most languages. Heck, it is easier to write your script at the command line than to save it as a shell script (a type of programming language). Does that mean anything?

    Use the right tool for the job. A hammer is simpler than a jackhammer. It can't easily accomplish what the other can, though. If you want to write a "program" that does the above sort, write it in sh, or bash. Oh wait, you already did!

  359. Why do we still use words to communicate? by stupendou · · Score: 1

    Why do we still use words to communicate? For the same reason we program in a text-based language. We demand as much nuance in everyday communication as we do in software development.

    1. Re:Why do we still use words to communicate? by Anonymous Coward · · Score: 0

      Because we can't speak pictures, and we can't communicate thoughts telepathically.

  360. Re:The more simple you make it the less complex it by grumbel · · Score: 2

    Yes and that is far inferior to the shell version. If I have a file that's a few GB or TB in size, the shell version will run just fine (assuming the grep cut's down enough of the data), while your example will crash with out of memory. The "cat" program on the shell never needs to read the whole file at once, as what you are doing on the shell is setting up a filter pipeline, not just handing data from one function to another. Your average programming language doesn't have an easy way to do.

    But that aside shell has many more benefits, such as isolated processes for example. If a program crashes on the shell, no big deal, you can just start another. If a function crashes in your favorite programming language, the whole program is toast. Your average programming language doesn't really have much in a way to isolate a function call from the next. Shell can also kill running processes, meanwhile you can't kill a thread safely.

    Anyway, the point being here is that your Shell in combination with the OS provides you with tools that you cannot replicate within the realm of your programming language. Having a language graphical or not doesn't make that big of a difference when even such 30 year old fundamental tools aren't available to the programmer in the programming language. Programming language design is extremely stagnate and outside of syntax twiddling little has changed in a long long while.

  361. Because I have 10 fingers, not one. by Kazoo+the+Clown · · Score: 1

    And I know how to use them. I hade coding with a mouse. In fact, I hate text editing with a mouse. I'm a touch typist and every moment my fingers are not on the home position is an inefficiency.

  362. Re:The more simple you make it the less complex it by AK+Marc · · Score: 1

    I've used a modeling/simulation language that looked to be an Excel replacement. Fro Excel, you can emulate, say, traffic patterns with cars in, cars out, and such, generating a text-only input and text-only output. For roughly the same complexity, I could draw it out, and come to the same results, but in a manner that makes it much easier to explain to non-programmers and quicker to make small changes to inputs and equations and see the results.

    Given that the visual manner doesn't do anything you can't do elsewhere and only makes it more visually interesting, it's shunned by they technical people in favor of the text-based methods.

  363. Re: The more simple you make it the less complex i by grumbel · · Score: 1

    What you are describing is using a bunch of shell programs to achieve a simple task.

    The task is very complex, it's just that the shell offers a very simple way to express it. As said, try to replicate shell behavior in your favorite programming language and you'll see that it is not simple.

    Thankfully, most programming languages both have many such predefined functions

    Calling cat, uniq and friends starts process, it's not just a function call. Processes unlike functions run in parallel. That's a huge difference.

    Use the right tool for the job. Use the right tool for the job.

    That to me is an excuse for shitty tools. There is no fundamental reason why a programming language couldn't offer constructs as powerful or even more powerful then what the shell has, yet they don't, as it apparently falls outside of the box in which programming language designers are stuck (aside from those Erlang guys).

  364. Re:The more simple you make it the less complex it by next_ghost · · Score: 1

    Have you ever tried to actually visualize a data model that is from a real-world application, where you soon find that you need to draw hundreds of arrows all across the model? The technique that works well and gives you a really nice view for, say, a simple blog application or whatever the current tutorial app beyond "hello world" is, breaks down horrible when you're dealing with real-world complexity.

    Here's a link to a few nice real world examples.

  365. bullshit by Anonymous Coward · · Score: 0

    This is total bullshit. I've spent half of my career as a physical designer and the other half doing software engineering.

    When you are doing layout, your primary concern is not functionality. You or someone else has already made the design in schematic mode and now you are just laying down the metal to match that schematic mode. No one doing layout is doing logical design when they are doing layout. You are more concerned that the logical design can be achieved physically.

    Using text does not preclude you from working with black boxes that has input and output pins. What do you think a function is for? What do you think input parameters and return values are for? When I am writing code, I can wield the power of billions of transistors in one line. I can also go down to very low level register level programming and wield less transistors when I need to program CSRs or GPIOs.

    Visual is not always higher level than textual.

  366. Super-literate programming. . . . by galaxybeing · · Score: 1

    What's really needed is a super-literate programming, i.e., programming that can most of the time be just like talking or writing. A very crude example is of course SQL. But in some future it should be like in Star Trek where you go "Computer, I want a list of . . ." That's basically a literate programming on steroids. Today, we have highly productive coders, mainly because the languages they program in have tremendous module/api/object/function libraries. But of course the coder has to be the glue-meister who knows the right library and can stick it all together. But then imagine a super-auto-complete where some of that coder-guruism is done by the software. Then imagine a literate dialog where the software tries to be the gluer entirely. That's the evolution of computing, IMHO. I'm sure you could call WolframAlpha a good example of this trend.

  367. Programming in Trinary! by Anonymous Coward · · Score: 0

    I'm pretty sure they were just manually writing code out in trinary (because the writers would never use something so mundane as binary).

  368. Because by Anonymous Coward · · Score: 0

    you're a dumb fuck who never bothered RTMF?

  369. Re:The more simple you make it the less complex it by next_ghost · · Score: 1

    I think the real issue is in large part a chicken-and-egg problem. Since there are no libraries of 'components' that can be easily used, it's a lot of work to build everything yourself. And since there is no well-accepted tool, nobody builds the function libraries.

    Lack of libraries is a secondary problem at best. The single biggest problem of all non-plain text programming "languages" is lack of advanced development tools. When you program in a good old text, no matter which specific language you use, you have a hundred different editors to choose from, a dozen diff tools, a dozen version control systems, a hundred different ways to search through your code for whatever you need to find and writing a code generator is trivial. None of those tools need to make sense of the code because it's all just human-readable plain text.

    But when you use a programming "language" which stores code in some weird structured format (even XML qualifies if the code structure is complex enough), every single tool you use needs to understand the format. You can't use Vim, Emacs, Eclipse, Gedit or whatever to write the code, you need a special editor made specifically for the language. You can't use GNU Diffutils to diff your code, you need special diff tool made specifically for the language. You can use most of the version control systems out there but you won't be able to compare changes between revisions, unless you use a VCS made specifically for the language. You can't just grep your sources, you need special search tool made specifically for the language. And you can probably forget outright about generating any code automatically.

    Maintaining code is much more important in the real world than simply writing it. Most of the problems related to maintaining code have already been solved by general-purpose tools which work with any human-readable plain text programming language. Every new non-text code format requires solving those problems again from scratch and usually makes solving them much more difficult.

    In practice, I believe that the present text-based programming paradigm artificially restricts programming to a much simpler logical structure compared to those commonly accepted and used by EEs. For example, I used to say "structured programming" is essentially restricting your flow chart to what can be drawn in two dimensions with no crossing lines. That's not strictly true, but it is close. Since the late 1970s, I've remarked that software is the only engineering discipline that still depends on prose designs.

    Any sufficiently complex software with event loop or multiple threads most likely contains K5 or K3,3. BTW, plain C pretty much allows you to work with full OOP objects, including simple class inheritance and virtual methods. The only limitation is that all members are always public and you have to call destructors manually.

  370. EE vs CompSci by Anonymous Coward · · Score: 0

    Visual design methods don't exist for software because there's literally no benefit to designing software components. You can't sell them because no one is buying them. The best efforts we have at re-usable components are libraries. C++ has Boost and Qt. Perl has CPAN. None of those "components" cost a dime unless you want support for them.

    Hardware components have to be manufactured, which means there is economic cost involved with their use. Software components are virtual. If I download a faulty XML library and it doesn't work I'm only out labor costs for repair. There's no hardware recall and no penalty for switching to a better library. I just have to convince people to upgrade, which is basically free with distribution over the Internet.

    This effect destroys the economy for re-usable software components. Without a strong market for components, visual design can't succeed.

  371. Re:if you "get coding" so well, why arent you codi by Anonymous Coward · · Score: 0

    Nah, I'm actually with the poster. I get text-based traditional coding too, but find the ROI (time and effort) quite poor and the work dreary. You have to be either well disciplined, or get the sort of joy banging out code that running get when pushing their body through the next mile.

    So one can get 'coding', or get 'running', but find themselves searching for something better. (visual coding/visual abstractions swimming)

    Programming is mathematics.

    Call me when mathematicians start doing proofs and writing functions by drawing pictures instead of writing symbolic equations.

  372. zewsk by Anonymous Coward · · Score: 0

    You are correct. The heart of the matter is that text is succinct. Words (variable and function names, various operators) are compact and convey tons of information for the space they take up vs. visual representations. Also, you can jump from one thing to another in text (source code) very quickly. All these arguments were already fought between the command line and the GUI. Textual source code has a high "information density". If nobody has said that before I'm going to trademark it ... back off.
    I doubt very much there is a better way.

  373. Re:The more simple you make it the less complex it by Mike+Buddha · · Score: 1

    I don't think it's the lack of complexity that makes Visual Basic applications so lousy, in general. I think that it's the ease of use of Visual Basic that facilitates all sorts of people with no training or core programming competency building complex applications. Don't blame the tools, blame the makers. It is possible to write solid application code in Visual Basic. Easier to use, accessible tools make for worse programmers making programs. It's not the simplicity of the tools so much as their ease of use. The same goes for Access.

    --
    by Mike Buddha -- Someday the mountain might get him, but the law never will.
  374. Re:It is a symptom of the industry and human natur by purpledinoz · · Score: 1

    Exactly. No matter how easy and user-friendly you make graphical programming, you still need to implement complicated logic. You still need someone who can think logically, think of the corner cases, implement error handling properly, and debug unexpected problems. I think a lot of management people are fooled into thinking they can shortcut "expensive" developers, and have non-technical people implement everything. In reality, it is the developers who are taking care of the dirty work of handling those corner cases and error scenarios.

  375. I digress by wideglide · · Score: 1

    Code is language. Language is a vehicle for thought. Thought is the solution to the underlying problem. QED. Been doing that for over almost 30 years, be it assembly, C, C++, Ruby, SAS .. you name it. Code is the machine-understandable expression of human thought. Now - what was the question ?

    --
    The sum of intelligence on a planet is constant. Nowadays we have more people. When classic goes away, so do I. Copy
  376. Re:The more simple you make it the less complex it by crutchy · · Score: 1

    But when you go making black boxes, you are hiding the exact details that you would benefit from visualising.

    this:

    $variable = somefunction($some_parameter);

    is also a black box... it doesn't tell you any more about what goes on inside somefunction that a flow chart rectangle.

    i think we're sort of on the same wavelength though. you don't seem to value flowcharts for programs (i'm the same) but you see their value in data structures (as i also do). i guess i'm just trying to expand the argument a bit by suggesting that if we had an efficient input method (nobody could pay me enough to program graphically with a mouse) and there was a visual language that was well defined and as flexible as Pascal or C, then I might give it a shot. i think one possible advatage that can't be overlooked is that a lot of humans analyze simple images easier than a bunch of symbols (which is basically a more complex image), and someone trained in developing software using flowcharts may be able to spot bugs more efficiently than debugging text. not saying this is true, but it may be a possibility in future. again, i think the biggest setback to any visual flowchart type programming language is the reliance on the mouse, which for most people would be much less efficient than using a keyboard. who knows, maybe down the track we will be able to program a flowchart type language using our thoughts?
    the future is both exciting and scary, and anyone who ignores it is destined to be left behind.

  377. Why... by Anonymous Coward · · Score: 0

    ... are we still reading text based news?

    Next dumb question plz.

  378. Dreamweaver by rizole · · Score: 1

    Dreamweaver produces crappy, bloated, redundant HTML (I know, I know, it's not programming) and I stopped using it years ago and do it all by hand now. You want to do something more complex than HTML graphically? Oh and fuck beta ^c^

  379. Nobody wants to talk about Snap! ?? by Desert_Scarecrow · · Score: 1

    SNAP! is a visual editor that can put together some simple-to-moderately-complex programs. I'm surprised no one has cited it as an example of the convenience / drawbacks of a visual editor. It can be hooked up to all kinds of things, including mindstorms, wiimotes, and Arduino. I've only seen it used standalone for intro-level CS instruction, but it does seem to have some interesting uses. I don't think this is a real problem though -- the text of actual code isn't a barrier to actual coders...

  380. But we can draw pictures. Guess you missed that op by stupendou · · Score: 1

    But we can draw pictures. Guess you missed that option.

  381. Because it works by Anonymous Coward · · Score: 0

    A text based syntax is an easy mechanism to implement a wide variety of language semantics, including abstractions of greater or lesser richness.

    Typically, the point of visual languages is to make the control or data flow explicit in a diagrammatic form. This is (to some extent) antithetical to the concept of abstraction. Visual languages are quite common in some circles (for example ETL, workflow or rule engine systems). The explicit nature of the languages means they scale poorly with the complexity of the computation in practice.

    This makes them clumsy for large scale software construction in practice - they do not do a very good job of handling abstraction and a non-trivial computation quickly becomes diagrammatically very complex. I have yet to see a visual language in practice that incorporates a solution to this problem.

    Many textual languages have more or less elegant, straightforward primitives for abstraction (macros, higher-order functions, inheritance etc.) and this technology is proven and works well. Visual language technology has yet to catch-up, or even demonstrate that this can be done at all.

    Thus, while they can be used effectively in certain domains (just as textual domain-specific languages can) visual languages as a technology have not yet demonstrated a capability to support productive large-scale software engineering.

  382. Re: The more simple you make it the less complex i by ShieldW0lf · · Score: 1

    Don't know if you've been failing to pay attention, but between X-Box and it's game pads and the various touch screen devices out there, the keyboard itself is on it's way towards niche status....

    --
    -1 Uncomfortable Truth
  383. Lego Mindstorms EV3 sucks too by Anonymous Coward · · Score: 0

    The crappy software is block based and does not run on Linux, even though the brick is running Linux. We have added wireless cards and microSD cards, enabled SSH, loaded BrickX, and are experimenting with LEJOS.

    BrickX lets us use MindSensors components, multitask, and access extra motors and sensors through splitters.

  384. Re:Because text is the only medium that's varied e by losfromla · · Score: 1

    Piece of cake in labview

    --
    Only I can judge you.
  385. Re:The more simple you make it the less complex it by mdielmann · · Score: 1

    Yes, and you could reasonably make a graphical interface for assembly language. Very simple tools with very simple connectors, mapping onto the real world (transistors, pins, registers, leads). The more abstract you get, the more explicit your instructions need to be to get reliable, reproducible, complex results. It's really hard to do that with predefined building blocks, unless part of your building block is a big chunk of very specific text, which sounds remarkably like code.

    Another similar thing would be comparing movies to books. The richness, detail, and depth of a book just can't be done in film, in part because we don't want to sit there that long. But also, look at all the versions of a specific book that was done, each of which was done with the goal of being at least as good as the book, and how differently they turned out. This is something we don't want to have when we write code - we want the same results every time, with no limit to expression within the capabilities of the language/compiler/hardware/etc.

    Another great example is language and writing itself. There's a reason the vast majority of the world went away from using pictures to describe concepts (words) - after a while you had a huge collection of pictures, and were still limited to doing more basic writing if you didn't have a clear idea of which picture referred to which concept. And so there was a decoupling between the concept (word) and the presentation of it (writing). C-A-T spells cat, but none of those parts have anything to do with the furry critter with pointy ears, whiskers, and a love for sleeping and chasing mice.

    It's not that I think it would be impossible to make a visually mapped programming language, but the more abstract elements, particularly non-interface elements, would be just as difficult as they are today simply because they are abstract, difficult concepts.

    --
    Sure I'm paranoid, but am I paranoid enough?
  386. Programming-by-Example by Anonymous Coward · · Score: 0

    If I provide
    input : [1,3,2,-11,5]
    output : [-11,1,2,3,5]
    then PBE generator can find the right sorting algorithm. Of course it won't be exactly quicksort algorithm, but how many programmers would really care?

  387. i like your analogy. by Anonymous Coward · · Score: 0

    very effective.

  388. Re: The more simple you make it the less complex i by RightwingNutjob · · Score: 1

    Motion control is a fairly restricted area of application where most of the thinking goes into the application of very mature mathematics derived from the solution of a small set of continuous differential equations. Add a small number of ifs and whiles to interlock the thing to behave safely and you're done. The information content of the resulting code is low compared to, say, a word processor, or an operating system, or a low-level device driver.

    Likewise, PLCs tend to control fairly simple individual things for which ladders are as good a paradigm for as independent lines or small numbers of lines of code in a procedural language, with very little program-spanning complexity.

    If you want your motion controller or automation system to do something special based complex transformations to other external inputs, that kind of logic is usually done outside the graphical programming language and feeds a single input block or pad or pin in the graphical paradigm, but has tens to hundreds of thousands of lines of C code behind it.

    The example I've got in my head is something like an aircraft's autopilot:
    Moving the control surfaces in response to the pilot's control input and the attitude gyro is something that can (and probably should) be coded up in a graphical language, both to provide checkability against the control theory math used in the design and to eliminate a possible point of coding error in the most critical inner loop of the code.
    Feeding the autopilot with a trajectory based on GPS, airspeed, navigation waypoints, weather radar, etc, should be done in a procedural language because the complexity (both lenght and interconnectedness) of the algorithms makes it very painful to implement them graphically rather than procedurally.

  389. body **language** by globaljustin · · Score: 1

    body language, pheremones, other smells, vocal cues....these are all symbols & no different essentially from words

    oh yeah, throw choice of clothing and hair style in there as well

    all of these are ways of communicating meaning, none being more 'essential' than the other b/c they all evolved together

    there is no 'OTOH' kind of school...just Kurzweil-style AI fanbois

    --
    Thank you Dave Raggett
  390. Sounds like a PHB by Anonymous Coward · · Score: 0

    Maybe OP is a "big picture thinker", and being a "big picture thinker", can't conceive of why people with tangible, productive, technical skills can actually do something he cannot.

  391. Re:if you "get coding" so well, why arent you codi by martin-boundary · · Score: 1

    Agreed.

  392. others tracks: Pure data, unicode, ...? by Anonymous Coward · · Score: 0

    I think this is not a problem of CLI or GUI specificly, but a problem of alphabet perhaps. We should improve the use of unicode symbols to reduce the size of code and not the meaning of it.
    In a GUI case (or Text mode a day perhaps) i think Pure Data make the understand of code more efficient even if in our programming standards it could appear to be limited, we shouldn't forget that the meaning of our programs is defined by his text.

  393. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    because you can't produce something complex with something simple.

    I recently read 'A new kind of Science' by Stephen Wolfram. One of the main points he demonstrates is that you can make something complex from a simple set of rules.

  394. block indenting = visual by kisrael · · Score: 1

    I'm probably coming at this too little too late, but:

    for C-looking languages (C, Java, Javascript) etc that use curly braces and block, there's usually a strong visual element: no one wants to look at code that's not "properly formatted". So while language is super awesome and powerful (almost any programmer is going to have a hard time expressing himself or herself in, like, that block language that came w/ the original Lego Mindstorms), the graphical element is still present

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  395. Re:The more simple you make it the less complex it by mikael · · Score: 1

    These editors do require more than just placing blocks on the screen. They require inter-connections to be made between the data inputs and outputs (for an image processing pipeline). For the Qt editor you need to define link widgets together to define them as "buddies" (if the slider moves, then that sends a message to the text display as well as the color box). Each widget also has to send messages to parents, children and buddies for resize, open, close, value changed, button pressed/released, slider moved. So there are all these interconnect lines that show what goes to where, and it can get messy.

    Blender: http://blackspike.com/blender-...

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  396. The most fundamental example by Anonymous Coward · · Score: 0

    Math. A specialized, text-based syntax is consistently faster to write and denser visually. The learning curve is steeper, but it's better once learned.

    Also, to develop a non-language-specific syntax, would require development of a universal coding language translator. Clearly, not an easy task.

  397. Re:The more simple you make it the less complex it by Tom · · Score: 1

    These editors do require more than just placing blocks on the screen.

    Errr... yes? I wrote about connections between boxes in the very comment you replied to? *puzzled look*

    --
    Assorted stuff I do sometimes: Lemuria.org
  398. Yes we are. There are processes .. by jerryjnormandin · · Score: 1

    There are plenty of processes that don't require graphics. Data batch processes, 3D rendering batch processes, network diagnostics, the list goes on and on. The only gui intensive application are end user desktop. There's much more to coding than just desktop applications.

  399. labview by Anonymous Coward · · Score: 0

    is a tool where you can program graphically.

  400. We have graphical code generators by Anonymous Coward · · Score: 0

    But after Beta came out everyone is too angry to talk about them

  401. Text is more expressive and versatile than picture by obelia · · Score: 1

    There's a reason writing systems evolved from pictographic/ideographic to logographic and phonographic systems, and that is that these later systems are more expressive than the former. The same is true of formal, engineered writing systems: text based languages are more expressive and efficient than picture or diagram based languages. Text based languages can describe complex things more compactly than non-text based languages.

    Hundreds of non-text based (AKA "visual") programming languages have been developed and have proven to be generally more limited than text based languages. When the description of a program reaches a certain level of complexity (which isn't very high) it's diagrammatic specification becomes much harder to comprehend than it's textual specification. I've seen visual programs that look like an incomprehensible mass of tangled wires that can be expressed in a couple pages of text.

    However, programs of lower complexity can be specified by a comprehendible diagram, and in many cases that diagram is easier to understand by non-programmers than the corresponding text. Visual languages, when restricted to a specific, limited, domain, can be easier to understand by some.

    But for general purpose programming, or moderate complexity of more, text is a much more efficient medium.

  402. Why are we still writing text-based text? by dradler · · Score: 1

    Like everything here ...

  403. Re:There is one hugely successful visual programmi by MooseMiester · · Score: 1

    I spent a year working on a project that replicated ladder logic in flowcharts, using a Visio like design surface, that output the PLC code. It was much more elegant than ladder. After the product was released, we were required to build a "ladder interface" because many engineers refused to use anything else. This proves that ladder and flowchart are really equal.

    PLC's are based a defined set of analog and digital inputs and outputs. Programs that humans interact with, on the other hand, such as Windows, Web Sites, browsers, etc. deal with an input stream that is not always predictable. It would be very complicated to express even a simple form in flowchart or ladder logic because it's a set of asynchronous islands of code.

    In other words, while everything in life could be expressed as a flowchart or ladder, simple human interfaces would be overly complicated by trying to do so.

    --
    Murphy was an optimist
  404. Been there, done that. See: APL by Anonymous Coward · · Score: 0

    Been there, done that. See: APL

  405. Has a point... by servant · · Score: 1
    I can see this guy has a point, but it is the point of the un-initiated. After you have built your first few 'complex' systems, graphical languages obfuscate the works more than even OO text based languages.

    Yes, I have done, machine language programming, and assembler, and 'higher level' languages on many platforms over time. Each time we add another 'level' we obfuscate what is happening from the programmer. Sometimes this is a 'good thing', sometimes it gets in the way of getting things done.

    We do have applications programming graphical languages (check out CAD/CAM systems, where the 'object code' is g-code (pretty much assembler language), and implemented on the machines by the 'hardware' and controllers. (Yes, sometimes these are rolled together into more or less monolithic systems). Also some companies like shopbottools.com replace g-code with their own but they sell the controllers that understand it.

    In many ways the new generations of graphic 3-D programming systems that allow building virtual worlds is what I think Timothy is addressing. Still, I doubt you are going to see it in hard-core real-time applications and control systems for quite a while.

    The computing industry is under 100 years old as an industry. It is still changing. One day we all may have the TV and Movie technologies we see in the media, but in the mean time, I still use vi as my current text editor to change config files, generate web pages, and write programs.

    The need for computer power is also limiting much of this kind of new languages. We don't have un-limited computing power, no un-limited bandwidth, no un-limited storage, available everywhere to everyone for 'free'. The prices of all of these resources has come down, and become higher limits than we have had in the past, but it still isn't 'free enough' to allow using super-high-level-languages that keep programmers from being even interested in register vs 3-rd level memory, vs cache-access for intense needs.

    I hope we see some more and better visual programming languages, but not to obfuscate the resources used but to better manage them, reduce overhaead, and add to overall productivity. ... Now back to my vi session (I never learned emacs, it always seemed to complicated :) )

    --
    ... "When you pry the source from my cold dead hands."
  406. Re:The more simple you make it the less complex it by angel'o'sphere · · Score: 1

    Lutz? Is that you?

    (Luz Prechelt, a german language researcher and Ph.D. in Software engineering had this line of text as his signature in his emails)

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  407. Re:Labview - Also SQL/ graphic query designer by angel'o'sphere · · Score: 1

    You do know that you can access Excel sheets via ODBC/SQL? There is even an Apache library for JDBC that transforms multiple Excel sheets into a data base of multiple tables.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  408. Re:The more simple you make it the less complex it by romons · · Score: 1

    The reason programming languages are still as they are is for a simple reason, because you can't produce something complex with something simple, I.E. the more you simplify something the less control you have of it. Can a programming language be made that is not text based? Sure, but I highly doubt you are going to get the flexibility to do a lot of things. Even assembly is still required sometimes.

    The assertion that complexity cannot come from simplicity is patently false. There are far too many examples to list.

    Graphical tools for hardware and chip design are mainly for replicating patterns over and over, and testing their connections.

    The real reason is that programming these days is a sequential process (mostly). As such, you need one dimension, rather than 2 or 3. So, visual paradigms make little sense. Nobody uses flow charts anymore for good reason. Most visual coding paradigms are ways to input flow charts.

    Programs are a linear narrative, because that is how the CPU sees it. So, it is treated like that. Once we have thousands or tens of thousands of interconnected CPUs working together, 2d programming paradigms will make more sense.

    --
    Go to Heaven for the climate, Hell for the company -- Mark Twain
  409. i tried this with gf, by Anonymous Coward · · Score: 0

    but she still wants to hear all the bs

  410. Vid by Anonymous Coward · · Score: 0

    Why didn't you post this comment as a video rather than the old-school text based interface?

  411. Visual Programming is Fail by Anonymous Coward · · Score: 0

    The industry experience with visual programming (LabView and VEE) is that it produces THE MOST unsupportable code ever created. They are easy to use at the beginning but they produce code that increases to unsupportable complexity very quickly.

    They usually are WRITE-ONLY languages - once written even the coder doesn't know how they work and subsequent programmers usually can't make heads or tails. My company has been paid 7-figure amounts to "recover/rescue and rewrite" LabView programs that have threatened operations of Fortune 500 companies. The damage created by visual programming is that dire. And our margins aren't always as good as that would suggest because it's not trivial to reverse engineer these nightmares.

    This doesn't mean that someone couldn't crack the nut of how to do a visual language well; but no one has yet, and there may be dimensional/geometric/information reasons why you can not. In general, I'd am highly skeptical of visual programming to represent complex computing solutions - the visual metaphor simply doesn't allow such things to be represented clearly or succinctly.

  412. The language of mathematics by mathenge · · Score: 1

    An interesting question, one which many have thought of, not only you. We've come a long way from punch cards to almost English-like scripting and query languages. Once the domain of only professional programmers, building programs is now a hobby for many with little or no formal training in programming. That said, there's a huge difference between building controller firmware and code to transfer money from one account to another. But I digress, the original question had to do with programming languages, and there I must agree with a lot of what's being said, in that, so long as it remains the domain of mathematics, it's unlikely that it will become too abstracted from text based methods. I come from the Assembly and C world, and the new 4GL languages aren't that exciting for me. But that's me, and I'm pretty much on my way out.

  413. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    > Yes, and you could reasonably make a graphical interface for assembly language.

    I soooooo want to have this! Build a module from data types and instructions. Build loops and conditionals from macros. Wire up inputs and outpus. If you've ever used Reaktor, it's a fantastic way of structuring code into "black box" modules where you only have to know the the interface to use it. Open it up, and you can see how it's built. If I could have something bridging the interfaces of Interface Builder, ResEdit, MS Access, Flash, Reaktor...

    I can see it in my head, but no idea how to build it!

  414. Re:Text Programming vs. graphics tokens. by bbsalem · · Score: 1

    The GTK GUI illustrates the problem well. You do get this visual interface to writing GUI componants, but at some point, around the edges, you still have to understand what the objects and their methods do, so you have to go read documentation and eventually, the code. This is especially true if the thing you've made needs debugging, then you are quickly thrust back into the world of the programming language.

    Even IDES like Eclipse and Netbeans and others that give you prototype hints don't give you a full enough story. I guess these aid productivity if you already know the libraries, but to do that you have to at least read the list of objects and methods, which is where the real complexity of OOL gets obfiscatted, and Java in particular is very bad in this regrad because of its history. The greater the complexity and the poorer the documentation the faster you are thrust into having the read the code and even the source for the libraries. One thing abstraction does is to invert the logic of inheritance so you are forced to read code in a bottom up fashion, which is much harder to figure out what it does. So, OOD fails if the methods aren't done correctly and even more if the developer hasn't put sufficient effort into documenting in your native language. So poor English can become a major impediment to the whole effort if the developer speaks a language far less used than English, e.g.

    Development efforts fail or get unused for the same human factors they always did, going back to the days of COBOL and FORTRAN. The way they fail has just changed and looking for a simple interface does not solve this problem.

    By analogy, file managers are supposed to reduce the complexity of finding files and directory structures, and they do, but you still need to know a CLI and a shell to solve practical problems finding files, better that you can write a shell script to automate a task, so the shell isn't going away any time soon, even with file managers, and so text-based programming isn't going away soon because of IDEs. I still code HTML and CSS with emacs because I can't be sure of the garbage most WYSIWYG web page editors put in the code. I can code more concise and cleaner HTML by hand than most of these,

  415. The simpleness is text by SivDotnet · · Score: 1

    I think the the original question has it arse about face. By abstracting to higher level non textual objects you are removing yourself further from the simplest things. The simplest things are the binary ones and zeros that the computer works with. That would be the simplest thing to use and yes that would be like building ships with matchsticks and not easy for humans to follow easily. We don't think in pictures we think in words and that is why once we got beyond programming using binary switches which is too near the bare metal (but _the_ most simple set of instructions to do programming with that gives you ultimate flexibility) we went to assembly language. By doing that the the programs could be read easily and understood and more importantly we could work out where the bug was, but it was still a bit too near the bare metal for mere mortals who need to the vast majority of day to day programming. So we stepped one step further away from the simplest thing to something that you can read and learn like a human language. Admittedly it is more complicated because there are more syntactical words to use to achieve some of what you can do with machine code. But once you have learned the language like you would English or German and can speak it fluently and as some programmers will tell you they "think" in C or VB or whatever language suits them best they can be the most productive with a computer producing the amazing things we do for the betterment of our fellow man. The more you go beyond what we think in i.e. a language like C, VB, C#, F#, Lisp, Java, Pascal or whatever, you necessarily lose even more fine control and are stuck with whatever the graphical representation limits you to. As soon as you want to do something more complex than the designer of the graphical programming language thought of, you are stuck down a blind alley. So what you want is the best compromise a programming language that matches how we think in words that has enough simple building blocks that can be put together to create anything we can think of to access all the capabilities of the platform we are writing the code for. Which is pretty much where languages like C and C++ put you. I am a VB programmer and accept that I rely on C++ programmers to reduce the complexity for me a little bit by writing the VB language and Visual Studio as I am unlikely to ever want to rewrite Windows or create device drivers I just want a language that I can think in that allows me to produce database applications that my clients use day in and out to manage their businesses. If you tried to make a Visual programming language that the OP is asking for it would be easy for him/her to use but wouldn't be very capable. If you could make one that was more capable and used smaller building blocks it would be too unwieldy and it would be far easier to use text to achieve the same things in much simpler words. Hence that is why we are where we are. Siv

    --
    Martley, Near Worcester UK.
  416. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    You really are a Crudely Indecent bastard aren't you? Cpt Obvious strikes again!

    Fuck you and FUCK BETA!

  417. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Visual programming environments exist now. The two that I can name off the top of my head are the Lego educational ‘programming’ software for kids, and the Virtools Development Environment by Dassault Systemes. Which was designed to produce games and other realtime 3D simulations.

    Having done quite a bit of work in Virtools years ago, I can say that the biggest downside of visual programming is the time that it takes to get anything done.

    Let’s say that I want to add the numbers 1 to 10, and show it to the user.

    In less than 30 seconds, I can type the following:

    int i;
    int c = 0;

    For (i = 1; i = 10; i++)
    (
            c = c + i;
    )
    cout c;

    To do that visually, imagine digging through a hierarchical menu of 100+ widgets for the ones you want. You need at least 3. Then you dig through another menu for a couple of variables. This takes at least 30 seconds all by itself.

    Then you drag paths from the pins on each widget to your variables and your other widgets. Mid-way, you realize that you need another widget to hold the count state. Because the loop and addition widgets don’t hold data, they just process it. This takes from 2-5 minutes to completely work out as you follow lines around in circles checking the logic.

    Then, you’ll spend another 1-2 minutes “cleaning up” your widget layout so that it’s “readable”. Because if you let the dev environment do it, it will turn into wire-line spaghetti. Oh, and if you decide to add anything to the program, you’ll have to clean up that layout AGAIN, and AGAIN, and that’s when you really start to hate visual programming.

    Now contemplate doing anything even moderately complex in that system and you’ll see the problem. Oh, and if you need a widget that does anything out of the ordinary, you’ll be coding it in a text-based scripting language or C anyway. So why are you torturing yourself?

    Like GUIs vs. command lines, visual programming is easier when you’re doing something simple and don’t know the system by heart. But for anything complex, you’ll get your work done FAR faster by typing the commands.

  418. Clean Code. by cviniciusm · · Score: 1

    "The Robert C. Martin Clean Code Collection (Collection) (Robert C. Martin Series)", ASIN: B00666M59G, ISBN-10: 0-13-291122-1, chapter 1 "Clean Code", topic "There Will be Code". This topic is very enlightening, unfortunately, I think I don't have the copyright permission to show this topic.

    1. Re:Clean Code. by cviniciusm · · Score: 1

      "The Robert C. Martin Clean Code Collection (Collection) (Robert C. Martin Series)", ASIN: B00666M59G, ISBN-10: 0-13-291122-1, chapter 1 "Clean Code", topic "There Will be Code". This topic is very enlightening, unfortunately, I think I don't have the copyright permission to show this topic.

      In my words: a computer read and write eletrical voltage, translated to binary form "0" and "1", that are grouped on bytes and words, that are translated to instructions to be executed by the computer, this is the machine code that computer understands. Someone will have to translate your graphical code generator to machine code at least. So, "there will be code".

  419. Why... by niftymitch · · Score: 1

    Well, all the current solutions just squeak or make me scratch.

    --
    Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
  420. Been there, done that! in 1992 by david.beberman · · Score: 1

    Built and marketed a drag-n-drop application builder, with both GUI and non-GUI components. Eliminated a developer needing to ever write an application. Instead, just put the components together and save the result. Works well for taking existing components and wiring them together in some sort of relationship, but doesn't come close to getting rid of text code. Underlying the system for each component had to be lots of code. Further, needed lots of code to manage how the relationships between the components worked. Although it was conceivable to do flowgraph components to represent the control structures, when looking at the density of information that you can get on a screen at one time, the graphical approach was a non-starter. At the time UML was not there, but the concepts from the "3-amigos" was. What I wanted for the tool was that it would include enough API information such that it would be intelligent about how components would be connected together, kind of like the copy&paste clipboard types we take for granted copying data between programs. It worked very well. Had a pretty good following. A certain company in the US northwest, squashed the competing OS that it was written for. Dejected after 3 years of work, moved on to network protocols and other things.

  421. Lots of stuff already does this. by arthur01 · · Score: 1

    We already have languages that non-programmers can us to assemble code. However, it is unlikely that these were written in such languages themselves. cf Excel. Even Data base languages force you to design your program (and screens) in the way that the "expert" thought it should be done. No flexibility and, often, insufficient scalability. The other issue is efficiency. The less control you have over the code, generally, the less efficiently you can write it to be.

  422. Re: The more simple you make it the less complex i by LinuxIsGarbage · · Score: 1

    National Instruments does graphical programming in their motion control systems and it makes some sense, though it kind of sucks. Also PLCs are often written in ladder not text, unless your programmer has lost the plot a bit and thinks statement list is appropriate for everything (hint, it isn't).

    I'm familiar with AB's PLC line (5 and ControlLogix), and it's interesting to see how electricians have no problem dealing with ladder logic, but really struggle with "Structured text". Yet lines of ladder can be represented (or directly entered) as text. Eg: using XIC OTE). Of course all new automation comes from our company's motherland, written in structure text in a foreign language, with foreign comments, making it a disaster to troubleshoot.

    AB also has "Sequential Function Chart" which is more graphical.

  423. Because everything else just fucking sucks by Anonymous Coward · · Score: 0

    How the fuck did this post get published?

    "Why have graphical code generators that could seemingly open coding to the masses gone nowhere?"

    Because the concept just doesn't work. There's a reason why picture books are rare compared to text-based books: text is pure information.
    Coding is information. It's concrete, not abstract. Graphics just don't fit.

  424. Unix vs the world by Douglas+Goodall · · Score: 1

    A fairly important comparison can be made between operating systems such as Unix that have text based configuration files, as opposed to Windows that has many binary configuration files that cannot be easily examined or understood. GUI programming might be nice, but until the GUI is up, there won't be any of that. As a career "Systems Programmer", I have chosen to stay close to the bare metal, and unless you are very skillful at expressing high level code such that it generates exactly the machine code you emanated, bare metal programming is still best done in assembly or a C derivative. Programming languages such as Visual Basic that ere supposed to allow non-programmers to write programs are the root of a problem today that people capable of making programs using high level tools often don't have the experience or training to write safe, reliable, efficient code, maintainable and documented. Siri, please write a complete memory manager and interrupt system for my new microprocessor, so I can begin programming in tenth generation languages right away...

  425. Visual programming - look at Prograph by rolandw · · Score: 1

    Visual representation of source code does not and will not work effectively. Equally, visual representation of the written word will not work effectively. Where images and text go together, either the text is used to explain the image or the image is just an illustration to go with the text, not a real representation.

    This all changes when the code is visual, when the programmer programmes visually and there is no text involved other than for labels, names and attributes. This was what Phil Cox and colleagues realised when they produced Prograph, a visual, object orientated data flow language. Prograph was directly compiled into an executable - it was no pseudo coding system that merely generated C or Java, yet it could run interpreted (making it a dream to debug). In comparisons, clean Prograph code could be produced in about 20% of the time taken to produce the equivalent in C++ but ran only 5% slower. Isn't that what we are always looking for?

    Sadly, the commercial exploitation of Prograph was not as successful (isn't it ever thus?) but the concept still lives on as Marten. http://www.andescotia.com/

    Thank you Jack.

  426. Re: The more simple you make it the less complex i by inasity_rules · · Score: 1

    SFC is really useful for a small set of problems. The major advantage of ladder, is it makes following whats going on in live system easy.

    --
    I have determined that my sig is indeterminate.
  427. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Actually I think the reason for still using text is because the most successful programming languages are imperative i.e. if functional programming had more influence by now we would've tools and standards that would have made graphical programming more useful.

  428. It's not that simple! by rhalstead · · Score: 1

    Text based is about as simple as you can get for the programmer. Machine code is as simple as you can get for the CPU. Then we have assembly code using mnemonics, but today’s CPUs unlike the old 6502s and 8086s have a huge number of mnemonics and individual machine code instructions. We either “compile” text into machine code, or text is “translated” at run time as in BASIC. Translators are not very efficient, while a compiler can be quite complex. To write out an algorithm, convert it to a Nassi Schneidernan flow chart, and then write the source code to be compiled is complex, but it's about as simple as you ate going to get. As already mentioned, To simplify the job for the programmer gets very complex. The simpler you make the job, the more complicated the compiler becomes. Like writing a program to be user friendly gets complicated ...fast! If you have a degree in CS or CIS, try unraveling the code written by a EE or Chem-E. It's not that their code is bad (many would argue that point) but they think differently than we do and approach problems differently. From the question, I take it, you have learned to write code, but programming, is problem solving and CS is being able to analyze code for the fastest and most efficient code to do a job. One of the first graduate courses is the design and analysis of algorithms. You start out with 5 different sorts. Using a random number generator, you generate strings of 10, 100, 1,000, 10,000 in lengths. You also have the same lengths in order and reverse order. The goal is to determine which sort is the fastest for each of the strings that are in order, reverse order and random, mathematically. Then you write and run the sorts on the strings to prove the math. You basically end up with a 5 level simultaneous equations which is relatively simple. You quickly learn there is a lot more to programming than just being able to write code. It varies with companies, but I typically had people come in and ask for a program to do something. It was up to me to write the algorithm, have them tell me if that was truly what they wanted (it often wasn't), and work out the details. Some areas work in teams on large projects, others may have a programmer or two work on a project. I became a project manager in about 2 to 2.5 years. Generally speaking CS is highly math oriented, where CIS is more writing programs. With CS I only had to take two more courses to earn a minor in Math. Generally speaking you need a pretty good background to get a job as a programmer.(and good grades) The Type and size of programs as well a jobs varies significantly as do the languages used. You may take all that math and never use it once out of college, or you may spend a substantial portion of your Time analyzing programs.

  429. Drag n drop programming, now why didn't that take by Anonymous Coward · · Score: 0

    Drag n drop programming, now why didn't that take off?

  430. AppInventor by Anonymous Coward · · Score: 0

    Dear OP --

    It seems to me that yours is a good question. The answer is that such graphical tools are coming but they are long way off. Below I cite a few resources for more study. It will get there, but it is not there yet. That type of development tool is in its infancy. Even mature text-based IDEs such as Visual Studio and Eclipse, have a lot of work needed before they become streamlined. Such tools are plagued with slow compile time, crashes, complex configuration, and etc. It needs to come a long way yet. That said, the syntax is not that hard. C# is pretty simple once you try it for a month or so.

    Hope these links help you start thinking about such matters...

    AppInventor

    http://appinventor.mit.edu/explore/

    Model-driven architecture

    http://en.wikipedia.org/wiki/Model-driven_architecture

    MDA Tool for Model Driven Architecture

    http://www.sparxsystems.com/platforms/mda_tool.html

    Executable UML

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

    AndroMDA

    http://www.andromda.org/index.html

      9 Hand-picked MDA Tools

    http://www.software-pointers.com/en-mda-tools.html

  431. Text Based Code has its place. by lsatenstein · · Score: 1

    If I had to read through or process a few million transactions in hours, and it is done repetitively, text code, and probably C language or C++ would be used.
    Doing the visual programming shtick would work, but the overheads of interpretation and correct but inefficient solutions would mean that the overnight jobs could not get done.
    Many banks do statements and are typical of the organizations doing millions of transactions per day. Close to them is the government, and the online stores.
    Two counterexamples of why one method is still being deployed.

    --
    Leslie Satenstein Montreal Quebec Canada
  432. Chiron by Anonymous Coward · · Score: 0

    Hard to comment: LabVIEW have a built comment engine, which can be used to generate documentation (dozens of formats). Also, there's a place to write descriptions in SubVIs and on the block diagram.

    Very easy to write bad code: This happens on every language. Just learn the good pratices.

    Version Control is awkward: LabVIEW is compatible with SVN and there's another tools like the VI comparison, snippet and so on.

    Clunky to debug because programs are hard to follow: Only your program design is poor. LabVIEW have amazing debug tools.

    Coding becomes an exercis..... : Quick Drop tool wins.

    As a beginner you waste lots of time...: What? C programmers would have to take care about write archaic routines to deal with memory management, portability and so on. Project time is not time to "learn how to program"

    Hard to learn from a book or even from reading somebody else code: So, you haven't learn LabVIEW

    The graphical approach is orders of magnitude better to solve problems: That why's engineers and scientists use LabVIEW, both of them have REAL COMPLEX PROBLEMS (and not stupid ones like the most of "real developers" are able to solve...). Remember: The graphic contain the word, but not the opposite

    LabVIEW is the future. Period

  433. Language, Not Text by Millennium · · Score: 1

    Visual programming environments will never succeed, as long as the goal is to be "better than text". In the current attempts, one writes code with shapes and connecting lines instead of with letters and punctuation, but the linguistic concepts behind the code are still recognizable and readable. The catch is that this turns out to be a far less efficient way to encode language than text is: it's harder to write, and it's harder to read, so people inevitably gravitate back toward text, and the visual aspect is forgotten.

    Does this mean visual programming is doomed? Not necessarily, but it needs to refocus its goal on something much more radical than attempts to date have really done. Current attempts try to be "better than text," and even the article here seems to advocate this approach. Instead, they need to focus on being better than language. This is where visual programming really has potential: rather than trying to replicate what text can do, it needs to focus on what text can't do.

    How would something like this work? I haven't the faintest idea. I literally cannot imagine what it would be like to code without language. But a lot of concepts have emerged, even just during my own lifetime, that I could not have imagined before seeing them. Perhaps this is the same.

    So there's my challenge to the "visual programming" folks. Express to me the nature of (and a possible solution to) some moderately complex problem, without using language of any sort. Manage this, and your task is largely finished: all that remains is to come up with a visual editor for encoding information in your chosen method. Do this, and you will have your revolution.

  434. Labview Dev-hell by Anonymous Coward · · Score: 0

    Labview is great for designing software that interacts with NI hardware for basic data acquisition. However, for everyday programming of desktop applications, I would much prefer C#, C, C++, or Java. The block diagram can become incredibly busy and hard to follow when developing complex applications (my current project has about 20 subVI's and the main front panel's block diagram is still absolutely nuts). Traditional, text-based code is, IMO, a lot more easy to manage when dealing with larger-scale projects that require more than just handling basic analog/digital IO.

  435. Re:Labview - Also SQL/ graphic query designer by igny · · Score: 1

    Yeah, Excel 2013 and PowerPivot can even create relational data models out of them. That vendor was not aware of that either. To him, any spreadsheet = a table in SQL Server, no difference.

    --
    In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
  436. multimedia fusion!!! by Anonymous Coward · · Score: 0

    When I was a kid in computer camp we used this game design tool called Multimedia Fusion. It used a graphical programming interface which, as a kid, helped a ton with programming some intuitive games in short time. Didn't do the flash after getting spoiled on the visual programming though.

  437. Re: The more simple you make it the less complex i by Skreems · · Score: 1

    There's a very specific set of concepts that's easier to express on the command line than in traditional programming languages, and it's pretty much entirely limited to processing streams of text. Which is nice, and it's great that this is easy to do. For what it's worth, a lot of programming languages have string buffers that can operate much like pipes to let you code in the same style internally.

    However, text streams as a foundation for coding break down really quickly. Command line pipe "programs" basically require that all the data you care about be represented as a series of lines of text at every point along the way, and while that representation is very powerful for things that fit the model, it becomes a giant pain in the ass to use it to write logic that doesn't fit well.

    Some newer languages are adding things like lambdas and comprehensions to move closer to this style in certain cases. And while they're nice, they're really just syntactic sugar. The fact remains that programming needs to be able to operate on variables and objects in ways that stream processing just can't do. The Unix command line paradigm is a specialized tool, while procedural/functional/OO/aspected programming is a much more general purpose one.

    --
    Slashdot needs a "-1, Wrong" moderation option.
    The Urban Hippie
  438. Re:if you "get coding" so well, why arent you codi by sonamchauhan · · Score: 1

    Thanks!

  439. As a common saying is stating: by andreas.hummelbrunne · · Score: 1

    With only one layer of abstraction more, I can CONQUER THE WORLD!

  440. Re:This Ask Slashdot must be from the /. Beta Team by mcgrew · · Score: 1

    Before I get a little offtopic I want to address the submitter's question: he's asking for COBOL or BASIC. If you can't figure those simple languages out, you'll never be a programmer.

    That said, a lot of today's high level languages are poorly designed, with a lot of roadblocks that should be unnecessary. And programmers should know boolean logic, binary math, and how computers work down to the individual transistors.

    As to Beta, the problems are many but they don't stem from bad programming. They stem from bad design and poor testing and debugging (but 99% bad design). Releasing alpha-quality code to beta was their biggest mistake.

  441. My Take by mearvk · · Score: 1

    Truth is that there is definitely an upside to having graphically driven development. That is if you know your program can be broken down into 55 reuseable components and you know the mapping between function and name (widget 103 links into the network widget 12 to form Voltron let's pretend) then you can save a ton of time and money by literally dragging and dropping. The problem as others rightly point out is that there are probably tens of thousands of widgets that could be created and then you'd have to memorize at least 200 to have any value. Where code can be pressed into hierarchy and reusability it usually has been done so; so whether it's graphical or text based you'll still have the implementation methods to complete which may not be trivial. Google code reusability movements really because that's a significant part of graphical drag and drop programming.

  442. Re:This Ask Slashdot must be from the /. Beta Team by Anonymous Coward · · Score: 0

    And here you elucidate the problem with graphical coding. Graphics are good at representing state, and fair to middling at representing data. Sometimes they can be used to represent transformation but the contexts where a graphic can represent a transformation are only a very small subset of the range of transformations applied every day. There are a limited set of situations where graphical representation is more informative than text, mostly where a formal graphical language has been developed for the purpose such as state machine diagrams.

  443. Lumpy how'd "eating your words" taste? by Anonymous Coward · · Score: 0

    You're no coder Chumpy: ROTFLMAO @ U -> http://yro.slashdot.org/commen...

    (You sure "talk a good game" -> http://games.slashdot.org/comm... but you can't even produce a MERE SCRIPT!, windbag...)

    You aren't even on the level of a "script kiddie", & full of HOT AIR!

    You certainly won't reply there in that 2nd link I posted either, as that would remove your downmods to my posts like this one you can't validly disprove or justify your downmod on -> http://games.slashdot.org/comm...

    Oh, I suspect that IS the case here (simply logging out of a registered account & trolling by ac is a common troll trick around here OR using alternate registered 'luser' accounts sockpuppets to do the job will also, & Lumpy is LOADED with those & trolling - which doesn't matter: He PROVES he's all talk, no action (or skills, OR brains, lol))

    (You're all TALK, & NO action "CHUMPY!)

    * :)

    (You know it, I know it, & so does anyone reading AND laughing their asses off @ you now... lol!)

    APK

    P.S.=> Answer the question in the subject-line Lumpy - since you had to "eat your wrods" in the 1st link above flavored with your FOOT IN YOUR MOUTH + the "bitter taste of SELF-defeat", lol...

    ... apk

  444. Lumpy how'd "eating your words" taste? by Anonymous Coward · · Score: 0

    ROTFLMAO @ "Chumpy" -> http://yro.slashdot.org/commen...

    (You sure "talk a good game" -> http://games.slashdot.org/comm... but you can't even produce a MERE SCRIPT!, windbag...)

    You aren't even on the level of a "script kiddie", & full of HOT AIR!

    You certainly won't reply there in that 2nd link I posted either, as that would remove your downmods to my posts like this one you can't validly disprove or justify your downmod on -> http://games.slashdot.org/comm...

    Oh, I suspect that IS the case here (simply logging out of a registered account & trolling by ac is a common troll trick around here OR using alternate registered 'luser' accounts sockpuppets to do the job will also, & Lumpy is LOADED with those & trolling - which doesn't matter: He PROVES he's all talk, no action (or skills, OR brains, lol))

    (You're all TALK, & NO action "CHUMPY!)

    * :)

    (You know it, I know it, & so does anyone reading AND laughing their asses off @ you now... lol!)

    APK

    P.S.=> Answer the question in the subject-line Lumpy - since you had to "eat your wrods" in the 1st link above flavored with your FOOT IN YOUR MOUTH + the "bitter taste of SELF-defeat", lol...

    ... apk

  445. Re:The more simple you make it the less complex it by Anonymous Coward · · Score: 0

    Already happens today. Have you ever seen a pacemaker/defibrillator with a disclaimer?

  446. Re:The more simple you make it the less complex it by sfcat · · Score: 1

    Another place is the composition editor of Blender where you can place and connect processing nodes to do image processing and lighting. Once again that still requires the data flow to be connected up manually.

    And even in this case, almost nobody uses that composition editor and when they do, its easier to fall back to full code as the composition nodes are so horribly complicated that if you do understand how they work its just easier to write code and do it that way instead. Basically, visual representations of logic and formal language are so poorly suited to the task that they are never used even when you try to find an isolated use case for them. Until visual representation can represent formal language as well formal language, this is a waste of time. The only use is for laying out GUI widgets and that's because GUI widgets are already a visual language. And even then it takes mountains of code to make the widgets, and hook them up to actions on the data model (and whatever else the application does).

    --
    "Those that start by burning books, will end by burning men."
  447. Intentional Programming and Concept Programming by descubes · · Score: 1

    Charles Simonyi, one of the creators of Microsoft Word, went on a crusade to enable "intentional programming", which is to programming what the WYSIWYG word processor was to LaTeX. You can see what he does here. This is a VERY hard problem to solve. Simonyi is a good programmer, has tons of money, yet this is not a battle that he has clearly won yet.

    I once received a phone call at work from a Forbes journalist, saying that Simonyi had described my own pet project, XL (http://xlr.sf.net), and the associated "Concept Programming" ideas as one of the only competitors to Intentional Programming. That was interesting, because it shows that Simonyi had "groked" what I wanted to do, despite the total lack of polish of this little project. (As an aside, if you are curious, you can see XL in action in Taodyne's software to create interactive 3D documents)

    But what Simonyi saw (I believe) is that the general questioning was similar. How do we transform ideas into code. For Simonyi, this can be done with graphical tools. For XL, this can be done with simple transformations on text (more precisely, on a Lisp-like parse tree generated from the text). For example, with XL, you can implement the "if-then-else" concept using the "->" (transforms into) operator as follows:

    if true then X else Y -> X
    if false then X else Y -> Y

    With this approach, it is possible to use nice notations for arbitrary concepts. In Taodyne's products, for example, a slide is described by something like:

    slide "Hello world",
            * "This is a bullet point"
            * "This is another one"

    This pseudo-markup language is then rewritten recursively until we reach "primitive" operations, e.g. 3D graphics rendering or basic computations.

    XL is based on text because a) it's easier to do than Simonyi's approach, and b) I think it is generally easier to read and write "globally". If you have a "picture" in a document, of course showing the picture tells you more than just its name. But knowing that there is a picture in a document is easy with something like image "Woman.jpg" or (in HTML) a img tag.

    As the experience with HTML or Postscript demonstrated, text or graphical does not matter much anyway. It's possible to have a text-based representation of the code that most people manipulate graphically and never need to be aware of. You can generate your HTML with Word, never need to know anything about it. It's likely the same thing is slowly happening with code as well: IDEs tend to give you more and more meta-data which is "behind" the text and helps you navigate it or code faster.

    --
    -- Did you try Tao3D? http://tao3d.sourceforge.net
  448. Interesting. by daniel142005 · · Score: 1

    I mean, as computers have gotten more advanced so has programming. There are multiple "layers" to it, some examples in order from low level to high level: assembly, c, c#/java/etc., html5/javascript/css. That doesn't even count the advancements in the IDEs that have come about because of it. So what's the next logical step? Javascript can already interpret other programming languages, like LUA... it's an endless cycle.

    Text-to-speech and gesture recognition are still too slow, and drag-n-drop with shapes is still too inefficient and gets incredibly complex. Drawing on the other hand, probably mostly thanks to OCR and the endless desire for people to try to break CAPTCHAs, can be interpreted fairly well. It would give programming languages an entirely new form and be similar to drawing schematics.

    Not saying it would be easy, but by using a digital pen pad or tablet the IDE could simplify it with reminders and yes, even auto-complete. It's digital. It's also not going to be for everyone. I personally would prefer to type.. but only because it's how I learned. I'd make a simple application out of it to try it, but that's probably as far as it'd get.