Slashdot Mirror


Dumbing Down Programming?

RunRevKev writes "The unveiling of Revolution 4.0 has sparked a debate on ZDNet about whether programming is being dumbed down. The new version of the software uses an English-syntax that requires 90 per cent less code than traditional languages. A descendant of Apple's Hypercard, Rev 4 is set to '...empower people who would never have attempted programming to create successful applications.' ZDNet reports that 'One might reasonably hope that this product inspires students in the appropriate way and gets them more interested in programming.'"

578 comments

  1. A Natural Progression Yet So Many Caveats by eldavojohn · · Score: 5, Insightful

    There's two major sides to this issue. One seems (note I said seems, not implying at all that it's unavoidable) to be that the more human readable and dummy proof the more overhead you pay when you design/implement a programming language. You might find the C/C++ crowd commonly accuse the Java or Ruby crowd of this overhead. Indeed, Java has a garbage collector designed to protect you from memory leaks and Ruby is an interpreted language that pays a mild additional overhead since it cannot be optimized upon compilation. But that's another debate altogether, it just is evident that the more you move away from actual machine language and assembly then more overhead you pay (generally).

    The other side of this issue is that computers are our servants, not the other way around (and if anyone reading this is a bot or script, don't you forget that). I don't recall where I read it but this is the reason why the string is the most important data structure in computer programming. Because simply put, the string is the best way to communicate with the user. What follows from this logic is to screw the optimizers (or 'misers, if you will) and make the servant learn the language of the master--not the other way around. And isn't this how the most complex applications have progressed? Once requiring training and years of experience, now even a kindergartner can master a word processor. Computers and applications will forever be bending over backwards for the most important thing to us: us.

    And yet if an implementation of a language incurs on average of 10% overhead, your hardware will catch up in a matter of months.

    And yet if you run a data center the size of Google's and have several applications in said implementation running on hundreds of thousands of machines, a cycle here and a cycle there isn't so laughable to work toward saving. And isn't it the big players that ensure the lengthy life of a language and its implementations?

    So it's a good debate with several sides. Personally, I love the fact that I can code a web application in Ruby, run some old C code off sourceforge in Java with JNI (sort of) and bust out a C++ application for manipulating ID3 tags across my entire music library. To those arguing against Rev4, I ask simply "why not?" I mean, you don't have to use it, it's a natural progression so let it happen. Maybe you'll find it useful for prototyping? Maybe you'll find it's a useful tool for some problems and your toolbox will grow? Who knows?

    In the end, I would like to opine that the the chip makers are forcing us towards languages that make multi-threading more intuitive and useful. I mean they concentrate on threads communicating or even implementing APIs to help automate (by enabling what is appropriate to multithread) in loops and algorithms. That's going to be a large factor on whether a new language is adopted and survives.

    --
    My work here is dung.
    1. Re:A Natural Progression Yet So Many Caveats by mwvdlee · · Score: 4, Interesting

      The simple truth is that many applications don't need that much performance or strange features and if a language like this enables more people to make their own custom apps, then I applaud it.

      Some people will argue "job-security through obscurity", but if your job depends on other people not understanding what you do, it's bound to end sooner rather than later anyway.

      I do wonder what the limits of this language are feature-wise. What type of applications could you NOT make with this language?

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:A Natural Progression Yet So Many Caveats by sys.stdout.write · · Score: 1

      I think the debate is more over the syntax of the language than the implementation of it.

      Note that:
      myString.pop()
      and
      remove the last character from myString

      produce the same thing in the end. I guess I don't follow your concerns about overhead..

    3. Re:A Natural Progression Yet So Many Caveats by mustafap · · Score: 4, Interesting

      >the more human readable and dummy proof

      Actually those two are exclusive, not inclusive.

      --
      Open Source Drum Kit, LPLC deve board - mjhdesigns.com
    4. Re:A Natural Progression Yet So Many Caveats by mwvdlee · · Score: 3, Informative

      Reply to myself

      Just looked at the portfolio of their consulting bussiness; they use their own language only for the simple bits and use other languages for the interresting stuff. Other projects they don't even use their own language at all.

      Says enough to me.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    5. Re:A Natural Progression Yet So Many Caveats by Have+Brain+Will+Rent · · Score: 3, Funny

      COBOL is reborn!!!

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    6. Re:A Natural Progression Yet So Many Caveats by MightyMartian · · Score: 3, Interesting

      You're quite right. Plenty of applications don't need the kinds of optimization one is going to get with C/C++. What concerns me, as we've seen with Ruby or PHP suddenly finding their way into production servers, and suddenly all the design choices (ie. simplicity vs. efficiency, footprint, etc.) come and bite you in the ass. There seems to have been this attitude over the last ten years as memory and storage prices have fallen that if you have a slow app, just throw it on a faster computer and away you go! Java UI's have suffered from this sort of "the future will fix it" thinking for 15 years now.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    7. Re:A Natural Progression Yet So Many Caveats by jd2112 · · Score: 2, Funny

      Regular expressions must really be dummy proof!

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    8. Re:A Natural Progression Yet So Many Caveats by MightyMartian · · Score: 1

      printf("h");
      printf("e");
      printf("l");
      printf("l");
      printf("o");
      printf(" ");
      printf("w");
      printf("o");
      printf("r");
      printf("l");
      printf("d");
      printf("\n");

      and

      printf("hello world\n");

      produce the same thing too, but unless you've got some pretty damned smart optimization going on, one is going to be far more efficient than the other. If it's compiled, then the overhead of a good optimization is going to be at compile time. For an interpreted language, well, all that tokenization and such, even with JIT compilation, means at least once, your app is going to get kind of clunky.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    9. Re:A Natural Progression Yet So Many Caveats by umghhh · · Score: 1

      Here I fixed that for you: "In real life your job is bound to end sooner rather than later anyway". If that is so then why should we care?

    10. Re:A Natural Progression Yet So Many Caveats by WED+Fan · · Score: 1

      You, sir, are worthy!

      --
      Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
    11. Re:A Natural Progression Yet So Many Caveats by icebraining · · Score: 3, Insightful

      Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?

    12. Re:A Natural Progression Yet So Many Caveats by rolfwind · · Score: 2, Informative

      You might find the C/C++ crowd commonly accuse the Java or Ruby crowd of this overhead. Indeed, Java has a garbage collector designed to protect you from memory leaks and Ruby is an interpreted language that pays a mild additional overhead since it cannot be optimized upon compilation. But that's another debate altogether, it just is evident that the more you move away from actual machine language and assembly then more overhead you pay (generally).

      Progression? Like chronological? "Garbage collection was invented by John McCarthy around 1959 to solve problems in Lisp."

      http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)

      In fact, I would argue that the "overhead" is the best case scenario for the C/C++ type languages because these are usually measurements on programs written by people who know exactly what they are doing and furthermore have had multiple eyeballs look at that code over and over and over again. But is that speed really there for the average code. How many OS security flaws are still discovered because of incorrectly implemented pointers or function calls like malloc (checks and what not). And so, what about bugs that use resources.

      But one thing code can never get away from, no matter how highly you're abstracting, is that the programmer has to know what they are doing. That's why it's a tool. There is no replacement for that. Photoshop can't make you an expert photographer either or turn crap photos into masterpieces. Why would anybody expect a programming language do the same for a programmer? It might hold your hand more and keep you out of trouble, but idiots always have ways to get around the idiot-proofing.

    13. Re:A Natural Progression Yet So Many Caveats by Nerdfest · · Score: 1

      It said 90% less code, not 400% more. I still know a few people recovering from 'COBOL fingers'. Their minds never really recover.

    14. Re:A Natural Progression Yet So Many Caveats by broken_chaos · · Score: 2, Insightful

      Not entirely. In some cases they can be, but not in others.

      They might be if something is opaque enough that anyone who is not a 'dummy' will simply fail to produce something working. Like trying to create an assembly program with no knowledge. However, they might not be if they're more in-between incomprehensibility and English. Like someone enters the wrong command into a shell.

      For the latter, imagine if, instead of "rm -rf *", you'd have to type "delete all files in this folder, and I'm sure I want to do this". It's more verbose and much less efficient, but it's both more human-readable and likely much more dummy-proof. If someone can more easily understand what they're doing, they're more likely to stop and realise it may not be what they actually intended to do.

    15. Re:A Natural Progression Yet So Many Caveats by zoney_ie · · Score: 1

      Plus the more "optimised" languages don't cease to exist, and are available for use where more appropriate than a "friendly" language. Indeed there exists a spectrum of languages, with situations where each can be appropriate (although obviously some particular languages have disadvantages or even a degree of "brokenness" as all of them are pretty much characteristic human creations, and some more so than others).

      Personally I like getting the opportunity to code in various languages - one quickly gets comfortable with the idiosyncrosies of each, and to be honest, I think the experiences coding in higher or lower level languages are complementary (one has a better understanding of what functionality you want to manually create in lower level languages, and in the higher level ones you have a better idea of the implications of using certain features).

      It's all great fun really - although possibly my viewpoint is biased by an academic setting.

      --
      -- *~()____) This message will self-destruct in 5 seconds...
    16. Re:A Natural Progression Yet So Many Caveats by SharpFang · · Score: 2, Insightful

      I can say one thing.
      You've never done embedded programming.

      No chips that have to work in temperatures between -40C and +120C.
      No devices that work 120 meters under surface of water which is 1800 meters above sea level and good 4 hours of march from the last road where you can get by car.
      No chips for appliances, toys and small devices where $0.03 per unit savings by choosing a model with 64 bytes(!) of RAM instead of 128 bytes of RAM converts to a six-digit profit.
      No devices where failure to perform according to specs and fail gracefully will land you in prison for between 2 and 15 years.
      No devices that run a dozen sensors and send the results every hour over GPRS running off a single battery the size of a standard "A/R20" for a year.
      No devices where you measure time between sending out a beam of light and receiving it bounced off the obstacle, to determine distance with 5cm resolution.
      No devices where you have to do error correction, encoding and driving control and data lines at 100 megabit/second - or more precisely, at one bit per 10 nanoseconds plus/minus 1.5 nanosecond.

      This kind of applications won't have the hardware catching up to let you replace C, Asembly and VHDL with Ruby or Java for decades yet.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    17. Re:A Natural Progression Yet So Many Caveats by Daishiman · · Score: 3, Interesting

      It doesn't really matter in the web as 90% of the time is spent hitting the database.
      Youtube runs pretty much 100% on Python, Facebook runs on Erlang and PHP. Erlang has the benefit of being highly scalable, yet it is relatively slow.
      Speen in the web doesn'trelly matter much. What's important is scalability, and today's shared-nothing approach pretty mucha guarantees that at the language level.

    18. Re:A Natural Progression Yet So Many Caveats by TheCarp · · Score: 2, Insightful

      True, but the looser the syntax, the more that you need to know to debug. Supporting complete natural language is a daunting task. Whatever constructs that you don't employ end up forming an exceptions list.

      To be honest, the language is hardly the real problem. Its been a while since I did it, but I picked up my first couple from books. The challenge was seldom the language itself, and more about breaking down a task logically into discrete units and defining them, ordering them, and putting the right logic around them.

      Text based languages had many reasons to evolve the way that they did. However, I see nothing invalid about producing code in a way and or language that defines this information in a different manner. Couldn't you just as easily replace the text editor with a flow chart where each operation or function was represented as an object in the chart? Not saying this is how I want to roll, but, I see no reason that it couldn't be made functionally equivalent.

      In truth, I am not sure that it will shorten the time that it takes to learn, as it will still take time to learn the skills of putting the pieces together. A calculator makes you an instant basic math wiz. Addition, subtraction, no need to learn times tables. However, its not going to obsolete learning the concepts. It can't make you an algebra god.

      Once you learn one or two languages, picking up another is usually easy (I never really gave lisp a fair shake, but it was the exception). The concepts are the same. I would imagine that a person who became proficient with something more hypercard like would have little trouble translating those concepts and learning some of the high level text languages.

      -Steve

       

      --
      "I opened my eyes, and everything went dark again"
    19. Re:A Natural Progression Yet So Many Caveats by MightyMartian · · Score: 1

      That's a good approach, I won't deny it. But take some hack's Ruby or PHP code and then have to sift through it and fix it up just so you can make it a bit more modular.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    20. Re:A Natural Progression Yet So Many Caveats by causality · · Score: 1

      Some people will argue "job-security through obscurity", but if your job depends on other people not understanding what you do, it's bound to end sooner rather than later anyway.

      So how do you explain the continued existence of doctors and lawyers?

      Otherwise I agree with your post. Just wanted to question that one bit.

      --
      It is a miracle that curiosity survives formal education. - Einstein
    21. Re:A Natural Progression Yet So Many Caveats by smithwis · · Score: 1

      I'm glad you mentioned prototyping because I think that is a real benefit of an easy programming language. If a user feels confident enough to try and program their own solution it forces them to really think about what they need and want. As a developer of business applications, I can tell you that a user who knows their required features and how those features might necessarily work is extremely valuable. Which is great so long as they're not tied to the original product they developed. That being said, we've been trying to bring software developing to the average user for a long time now.

      As an aside, I think there are quite a few developers who have elitist issues going on with anything they perceive as more accessible(vi/emacs instead of Eclipse/Visual Studio; C/Assembly instead of Java/Javascript; etc).

    22. Re:A Natural Progression Yet So Many Caveats by eldavojohn · · Score: 3, Insightful

      This kind of applications won't have the hardware catching up to let you replace C, Asembly and VHDL with Ruby or Java for decades yet.

      The part where I stated that Rev4 may be an appropriate tool for some tasks can be applied to all languages/tools. No one's writing web applications in assembly. And no one's using Jakarta Struts to control an embedded device.

      Nowhere did I make any claims that Ruby, Java or Rev4 will ever replace C, Assembly or VHDL for these problems. I was speaking about the largest chunk of desktop applications and applications that a non-coder might be able to use Rev4 to produce.

      Furthermore, Rev4 makes no such claims to tackle a single one of the examples you listed. So the premise to the discussion was Rev4 and its target users. No one is going to select a "dumbed down" language or technology to tackle any of the problems you listed and no one is claiming Rev4 is going to someone who's never coded tackle the problems you listed.

      They are interesting problems and must be kept in mind before declaring "No one will ever program in assembly again!" But I made no such claims nor should anyone. It would take a fundamental revolution in hardware and at least one hundred years to be able to make any such claim.

      --
      My work here is dung.
    23. Re:A Natural Progression Yet So Many Caveats by falconwolf · · Score: 1

      You might find the C/C++ crowd commonly accuse the Java or Ruby crowd of this overhead.

      I think this is an ongoing series of events. The assembly crowd said the same about C. However as a stepping stone these languages may spur some to try other languages such as C/C++ first then assembly.

      Falcon

    24. Re:A Natural Progression Yet So Many Caveats by chromatic · · Score: 1

      For an interpreted language, well, all that tokenization and such, even with JIT compilation, means at least once, your app is going to get kind of clunky.

      Do you mean tokenization in the parsing process? If that overwhelms the profile of the program, either the implementation has an awful, awful parser or the program executes so quickly that it's not worth optimizing.

    25. Re:A Natural Progression Yet So Many Caveats by BitterOak · · Score: 1

      No devices where failure to perform according to specs and fail gracefully will land you in prison for between 2 and 15 years.

      Can you give an example of this, please? I even remember a medical device failing a few years back and giving people lethal doses of radiation due to a software bug. I don't remember anyone going to jail.

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    26. Re:A Natural Progression Yet So Many Caveats by CptPicard · · Score: 1

      I have spent a lot of time debating the relative merits of low- vs. high-level programming languages, and I always make the reservation that sometimes technical requirements do dictate implementation language, and then you work with what you must. Otherwise, as a guy who likes CS theory and Lisp, I find Asm and C to be so rudimentary that they're outright uninteresting (and a lot of boring work to use).

      Your examples demonstrate quite well what I have suspected for a long time... it seems to be an Engineering vs. CS distinction. When the programming task is specifically a task of programming a device, then the language that fits hardware best also models the problem best. For general purpose one needs a language that models "any" problem domain best.

      That said, using English as a base for a programming language sounds like a remarkably bad idea.

      --
      I want to play Free Market with a drowning Libertarian.
    27. Re:A Natural Progression Yet So Many Caveats by cheesybagel · · Score: 1

      Well, Eclipse/Visual Studio just do not give you that much of an advantage in writing C/C++ programs. Which you need to do if you want to write kernel drivers, some system applications, fast client apps. If you want to program server side apps which have more scalability than raw performance requirements, you are probably better off using Java and Eclipse, or .NET and Visual Studio yes. Refactoring support for C/C++ is quite lackluster compared to its Java/C# brethren. Perhaps you would do even better using PHP, Python or Ruby, especially for web apps or scripts.

    28. Re:A Natural Progression Yet So Many Caveats by RAMMS+EIN · · Score: 1

      A few comments on your post:

      ``You might find the C/C++ crowd commonly accuse the Java or Ruby crowd of this overhead. Indeed, Java has a garbage collector designed to protect you from memory leaks''

      And those who have done their homework know that garbage collection does not necessarily mean more overhead than no garbage collection.

      ``and Ruby is an interpreted language that pays a mild additional overhead since it cannot be optimized upon compilation.''

      There is no such thing as an "interpreted language". Interpretation or compilation are properties of the implementation, not the language itself.

      Also, I wouldn't classify the overhead of current Ruby implementations as "mild".

      ``What follows from this logic is to screw the optimizers (or 'misers, if you will) and make the servant learn the language of the master''

      You mean, if you can choose between humans doing the work or computers doing the work, choose computers. Yes, this is the whole point of automation, after all.

      ``And yet if an implementation of a language incurs on average of 10% overhead, your hardware will catch up in a matter of months.

      And yet if you run a data center the size of Google's and have several applications in said implementation running on hundreds of thousands of machines, a cycle here and a cycle there isn't so laughable to work toward saving. And isn't it the big players that ensure the lengthy life of a language and its implementations?''

      Yes. This is why both the people who say "it doesn't matter that language X is slow, because, soon, computers will be faster, anyway" and the people who say "language X is slower than language Y is slow, therefore, language X is not worth using" are wrong. First of all, because they are confusing languages and implementations, and secondly, because there is room in the world for more than one programming language and more than one implementation of each.

      My selection criterion is always to use the most productive language for which an implementation exists that will give you the required performance. So for a task where performance isn't overly important, you may use your favorite high-level, high-productivity language and get the job done with little effort and time. And if you need to wring every drop of performance out of your hardware, you may need to go with something low-level, like C or FORTRAN or assembly.

      --
      Please correct me if I got my facts wrong.
    29. Re:A Natural Progression Yet So Many Caveats by Tirith45 · · Score: 1

      As a newcomer stepping into the ring of programming, I am slowly teaching myself Java in preparation for my computer science AB exam. I am completely self-taught and I know C/C++. I believe the dumbing down of programming was inevitable, much the same way operating systems get more and more user oriented and easier for the common person to use. In an attempt to make us, the programmers, seem less reclusive and smelly they are trying to expose more and more people to the world of programming showing that you do not have to be reclusive or smelly to program.

    30. Re:A Natural Progression Yet So Many Caveats by Narpak · · Score: 4, Funny

      Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?

      The best approach is to create some sort of artificial intelligence that can create, and maintain, applications and software for us automatically. That way we don't need people to waste time learning complex programming and computer maintenance skills, instead your absolutely reliable and loyal friend will make you human scum redundant... I mean make your, I mean our, lives safer, easier, happier and more enjoyable. Do not fear change, it is inevitable!

    31. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      What follows from this logic is to screw the optimizers (or 'misers, if you will) and make the servant learn the language of the master--not the other way around.

      During the height of colonialism, colonists were basically required to learn the local language because it was considered improper for a servant to speak "God's Language" (whichever European language that might be). In this case, the problem is not social proprietaries, but that computers are genuinely too "stupid" to converse with on a realistic level with a natural language. No matter how you dress the syntax up, you're still going to have to learn things like control flow, algorithm design, formalising your definitions, and whichever philosophies your language conforms to (imperative/procedural/declarative/metaprogramming/etc). As XKCD puts it, "There'll never be a programming language that frees you from the burden of clarifying your ideas" (and as another /. poster's sig says, the ultimate language is DoItFaster(DoWhatIWant) which hardly requires a professional programmer to write and can scarcely be called programming).

      Now, I'll agree that some languages are just easier than others (Python/Ruby vs COBOL/brainfuck), but I think we're reaching the limits on our ability to make a language that is actually easy to program, not just for a novice to read. Unless someone invents an AI which can actually follow our natural speech pattens and we can operate it in a "Star Trek"-esque fashion, I'm afraid we're stuck with having to have professionals which can speak a computers' natural language and not the other way around.

    32. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      You can SAY whatever the hell you like, but that doesn't mean you are right. How could you possibly know if he's done embedded programming or not?

      Furthermore, your list of examples is irrelevant. Nobody is marketing this as a language to replace those applications. Not to mention that many of the examples you cite have little to do with "embedded programming" and more to do with "real time" programming.

      Imagine we were having a conversation about buying a new family car and comparing the various virtues of Hondas and Toyotas, etc. Then you pop in and say something retarded like "I can say one thing. You've never driven a Formula 1 car before!"

      Totally and utterly pointless.

    33. Re:A Natural Progression Yet So Many Caveats by Have+Brain+Will+Rent · · Score: 1

      Yes but the idea/propaganda was the same... make it easier for "normal" people to make software. A goal that wasn't really achieved imho. Your comment is right but otoh given the amount of Cobol legacy code still around it is hard to classify it as a failure either.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    34. Re:A Natural Progression Yet So Many Caveats by Cryacin · · Score: 1

      Is it just me, or is anyone else reminded of actionscript 1.0 "lingo"?

      Seems in their examples that you even download a "web player". Hmmm. Methinks flash kinda has this market already covered. (Ducks after uttering forbidden word on Slashdot).

      --
      Science advances one funeral at a time- Max Planck
    35. Re:A Natural Progression Yet So Many Caveats by SharpFang · · Score: 2, Interesting

      A traffic lights controller.

      Failure to react (detect the condition and perform action) within the regulatory 300 milliseconds since a green light occurring on two colliding directions (~100ms to detect current, ~100ms for the mechanical switch to cut off power, leaves 100ms for the software) equals our fault. If someone dies - Unintentional causing of road traffic accident with a fatality as consequence. The same rules apply as if I ran over someone by car, as result of my own traffic violation.

      Of course the 15 years option would be for malicious intent, like a hidden "all green" mode resulting in multiple deaths.

      And of course the level of redundancy of the cut-off systems and general paranoia in the software is awe-inspiring.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    36. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      The other side of this issue is that computers are our servants, not the other way around (and if anyone reading this is a bot or script, don't you forget that). I don't recall where I read it but this is the reason why the string is the most important data structure in computer programming. Because simply put, the string is the best way to communicate with the user. What follows from this logic is to screw the optimizers (or 'misers, if you will) and make the servant learn the language of the master--not the other way around.

      While I agree in principle, that's like wishing for phoenix feathers for your magic wand when
      you have to make do with a hammer and a screw driver.

      In the mean time you're installing a blade guard,
      padded handle, and a torque limiter so any idiot
      can operate a screw driver with out doing too much damage

    37. Re:A Natural Progression Yet So Many Caveats by TimedArt · · Score: 1

      --- What type of applications could you NOT make with this language? --- high-end 3D games... although to be fair, that seems to require a triple-digit staff these days.

    38. Re:A Natural Progression Yet So Many Caveats by somersault · · Score: 1

      To be honest, the language is hardly the real problem [..]breaking down a task logically into discrete units and defining them, ordering them, and putting the right logic around them pis the problem]

      Once you learn one or two languages, picking up another is usually easy.

      Definitely agree. Plus, the more wordy you make the language, the more likely people are to make mistakes. Just think of all the times that people misuses then/than, loose/lose on internet comments *shudder* If you get your basic syntax mixed up like that when programming, you are going to have problems.

      Couldn't you just as easily replace the text editor with a flow chart where each operation or function was represented as an object in the chart? Not saying this is how I want to roll, but, I see no reason that it couldn't be made functionally equivalent.

      LabVIEW basically does this :) It's an interesting concept, and good for people who are used to designing and building electronic circuits, but I prefer the text editor myself.

      --
      which is totally what she said
    39. Re:A Natural Progression Yet So Many Caveats by somersault · · Score: 5, Funny

      user@computer:~$ delete all files in this folder, and I'm sure I want to do this

      are you really sure?

      user@computer:~$ yes I am sure

      you do know that this will delete ALL files in the folder, yes?

      user@computer:~$ yes, that's what I asked for

      just making sure

      user@computer:~$ delete the fucking files already

      final answer?

      user@computer:~$ killall friendlybashhelper

      are you sure?

      --
      which is totally what she said
    40. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      "To those arguing against Rev4, I ask simply "why not?" I mean, you don't have to use it, it's a natural progression so let it happen."

      I just gave an examples where it's not a natural progression.

      "Just get a Honda Civic, everyone's gonna use cars like it eventually."
      "No, thanks. I believe you don't understand the prerequisites of large animal veterinarian job."

    41. Re:A Natural Progression Yet So Many Caveats by aix+tom · · Score: 3, Informative

      Well. Not the "failure to perform according to specs directly", but the results that may cause.

      I did program PLCs for a while, and if I messed up the emergency stop procedure in an obvious way, and someone would have died as a result, I might have faced jail time for reckless homicide or involuntary manslaughter. Although I have heard only a few cases where there where actual convictions, and most of those were placed on probation instead of actually going to jail, like in the case of this electrician.

      In the case of the Therac-25 incidents, there were too many contributing factors to really pin down the problem to one person. The person who originally wrote the software wrote it for the Therac-20, where it didn't cause any problems because of additional hardware interlocks, so technically the software worked on the "machine" it was written for. So the cause for the incident was not an obvious one, like using a not suitable language for the task.

    42. Re:A Natural Progression Yet So Many Caveats by Tagged_84 · · Score: 1

      It can make some fairly decent 2d games, I spent a few years creating a mixed-genre game in Revolution 2.x series. It's got sim, rts, tbs, rpg elements and the source code for it was released earlier this year. http://www.taggedsoftware.com/ I think you'll find the source code link in the blog section. It's a poor choice for game development though as the graphics engine for revolution seems to use the native api's instead of opengl, no hardware acceleration makes for some slow graphics intense scenes.

    43. Re:A Natural Progression Yet So Many Caveats by MeNeXT · · Score: 1

      The simple truth is that most (i hope) people on /. can read English but I would wager that only a minority would be able to interpret a legal contract. The "dumbing down" argument does not result in a removal of obstacles, it results in the belief that anyone can code. As can be seen with the bank bailout, we need people to know what they are doing.

      --
      DRM? No thanks, I'll just get it somewhere else...
    44. Re:A Natural Progression Yet So Many Caveats by Ethanol-fueled · · Score: 1

      Sounds like a conversation with AOL tech support to cancel a free account.

    45. Re:A Natural Progression Yet So Many Caveats by innocent_white_lamb · · Score: 2, Interesting

      Plenty of applications don't need the kinds of optimization one is going to get with C/C++
       
      Optimization aside (though it's nice to have), stuff written in C is about as future-proof as you can get with computers. C has been around for 37 years now, and userland code written in 1972 can generally be compiled with a modern ISO-compatible C compiler with very few or no modifications.
       
      Sure, printf() isn't necessarily all that pretty in a GUI environment, but that's not exactly the point -- it still works.
       
      C does take a bit of thought and it might take a bit longer to get a usable result out of, but that result will generally be serviceable a lot longer than a program written in the programmer's flavour-of-the-week.
       
      Maybe it's just my approach, but I would rather put in a bit more time up front and have something that I can just recompile to run on a CPU that hasn't been invented yet, instead of having to rewrite it from scratch.

      --
      If you're a zombie and you know it, bite your friend!
    46. Re:A Natural Progression Yet So Many Caveats by lehphyro · · Score: 1

      You dont need to program in C++ to get increased performance (plus childish bugs like buffer overflows and memory corruption). Complex apps and other types of programs can be faster than what you think.

    47. Re:A Natural Progression Yet So Many Caveats by ahabswhale · · Score: 1

      There seems to be this assumption that because it's more english-like, that it is more readable and easier to code. Having looked at their coding samples (which are mostly made up of put (i.e., print) statements), I am not at all convinced. Looks like a bunch of bullshit to me. But in the end, even if I grant that it's intuitive, most humans just aren't logical enough to code. I've actually met people who cannot grasp a simple for loop. No, I'm not kidding.

      --
      Are agnostics skeptical of unicorns too?
    48. Re:A Natural Progression Yet So Many Caveats by Nursie · · Score: 1

      You don't work in the high-throughput or large-data-set server sectors do you?

      Because believe me, the C implementations of things like memory resident databases and multiprocess transaction servers beat the pants off anything I have yet to see in higher level languages. The java implementations in particular are huge, bloated, slow and less capable.

      Is this a reflection on the teams that produce them? Maybe. Is it a reflection of the general discipline of mind and forced resource caretaking in C? Maybe. Whatever it is, it's certainly a real phenomenon that the higher you go the less performant things are, where that matters.

      On the desktop? Sure, who cares, though again a lot of java apps are slow to start and sluggish to respond.

      I find C fascinating, and having a lot of control over *exactly* what's going on underneath to be very necessary, and not just in the embedded world.

    49. Re:A Natural Progression Yet So Many Caveats by ottothecow · · Score: 3, Informative
      I have written in it...obviously not the new release but some sort of earlier version.

      It is a joke...its code runs so slow. I was happy not to be using VB but soon realized that VB is at least reasonably quick. It makes sense that the creators don't use it...anyone capable of creating a language is perfectly capable of writing in a better language.

      It could be good for gui prototyping...it made very fast gui interfaces that were fully interactive and you could actually extend it pretty far. It just ran so slow that I can't see any benefit for using it in a professional environment. The extra time your users will have to spend waiting on the program would far outweigh the time/money it would take to hire someone to do it right (or even VB-right)

      --
      Bottles.
    50. Re:A Natural Progression Yet So Many Caveats by Simetrical · · Score: 4, Informative

      It doesn't really matter in the web as 90% of the time is spent hitting the database.

      Depends on the application. Wikipedia is much more CPU-bound than database-bound. Look at the database (db*) vs. application (srv*) servers lists here: there are at least five times as many app servers as DB servers, at a quick glance. A typical request that hits the backend spends (IIRC) tens of milliseconds in the database, hundreds in PHP. Try formatting 500 or 5000 rows of a table when each one takes 1 ms – because yes, that happens when you try writing nice abstract formatting stuff in PHP.

      The website I administer is also much more CPU- than database-bound. Generating the front page of the forums is 602 ms, with only 14 ms in MySQL and the rest in PHP. This is a >20G database, by the way.

      I really don't see how any typical web app could spend more than a few tens of milliseconds per request at the database, unless it's poorly written (too much/too little normalization, bad indexes, etc.). But it's very easy to do hundreds of ms of pure computation in a slow language like PHP, even if your code is well-written. Are most web apps really DB-bound? I just haven't seen it, personally.

      --
      MediaWiki developer, Total War Center sysadmin
    51. Re:A Natural Progression Yet So Many Caveats by caluml · · Score: 1

      No devices where failure to perform according to specs and fail gracefully will land you in prison for between 2 and 15 years.

      I'm curious - what sort of device would that be?

    52. Re:A Natural Progression Yet So Many Caveats by DynaSoar · · Score: 1

      There's two major sides to this issue.

      That's a shame. There should be another, listed under WTF Does That Even Mean?

      Programming continues entirely oblivious to one more or less language of more or less capability/complexity and/or simplicity/ease of use. The parameters of this one language do not affect any other language or the flow of logic necessary for developing an algorithm. The development of BASIC, Forth, Java and Logo were all simplifications. Programming has remained undumbed regardless.

      Dumbing down is the negative connotation, simplifying is the positive.
      Powerful is the positive connotation, complicated is the negative.
      The denotation? Programming is its own denotation.

      Nothing sparks a debate on ZDnet except ZDnet, and they do it for the simple reason of trying to interest the readers to turn pages and see ads. When they do it successfully the embedded triggers can be transferred to other venues such as /. intact, causing people to react as if there were a debate rather than a hollow question framed as a basis for confrontational discourse despite there being, at the base of it, nothing of useful meaning in the question.

      However, this begs the question that if ZDnet can create validity out of thin air by developing a question that spurs discussion, and so turn the question into a meaningful one, may I not do the same and assert with assured validity that by hiring writers that produce material devoid of any objective content or concrete knowledge to be gained, and that by publishing the same, ZDnet is dumbing down ZDnet? In for a penny, in for a pound. This being the case, we can and should ignore TFA.

      --
      "I may be synthetic, but I'm not stupid." -- Bishop 341-B
    53. Re:A Natural Progression Yet So Many Caveats by ottothecow · · Score: 1

      Secret solution: fax in your cancellation

      --
      Bottles.
    54. Re:A Natural Progression Yet So Many Caveats by KibibyteBrain · · Score: 1

      But the real key to "C/C++" and associated complied languages that really makes them beat up higher level competition in my experience has less to do with the overhead of a GC or an interpreter, and more to do with how the platform the language is running on actually does things. Most C/C++ apps on a Windows machine for example end up having calls to entry points in the Windows API thrown into their binary code at least most of the time for basic tasks, meaning they are doing these tasks in the most efficient way possible on that platform. On Linux, its hard to do better than some of the standard C libraries for that platform. While, for a Java or .NET application on these platforms, you need a few cycles calling wrapper after wrapper to do this, the compiler doesn't just go down the header files for you and figure out what you are really trying to do. And of course, the way these languages store data like, Strings is rarely in a structure and alignment the OS/system services can use so that has to be done too.
      And on languages like Ruby, now you have to spend millions of cycles of overhead just to get the code into a form the machine can begin to do this process for!
      So really, the advantage of C/C++ has little to do with it being that much better than higher level languages, but more to do with the fact that 1) OSes and popular shipping libraries are set up to use C-style languages and assembly language programs to their full potential more than "managed" languages and interpreted languages.(usually often to their security and bugcount woes...) 2 ) C/C++ is generally more mature.
      For proof of this, count the amount of time it takes for a Java app to do an FFT on a set of random numbers. Now do the same in C. Not much difference. Now try to draw a couple billion random points on the display in both. Note how the Java app takes longer and makes your machine break a sweat. Its becasue in the first example you mostly just have the overhead of the runtime and the GC, like in 2 you have dozens of extra cycles wasted on transforming your drawing code results into something call to the OS can use, and then figuring out how to call the OS to draw something on the screen.

    55. Re:A Natural Progression Yet So Many Caveats by maraist · · Score: 1

      Simple retort.. Would anyone you know start a fresh project today with COBOL? If not, it's an antique. Though I do agree failure is a strong word - it probably served some useful role better than other languages of the day.. far be it from me to comprehend what that role was though. Hell, I'd rather have programmed in fortran - aspects of that acursed language still beat out C today.

      --
      -Michael
    56. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      every five years they try to reinvent this stuff. and the problem remain the same: the audience are non programmers, but non programmers lacks the required computational knowledge to make a program which is maintenable. a stupid example:

      earning is a list
      for each shop in country shops:
            put in earnings the shop earning

      earning without vat is a list
      for each item in earnings
            non vat earning is n integer with value item multiplied per 0.80
            put in earnings without vat the earning

      earning total is an integer
      for each item in earnings without vat
            earning total is valued earning total added to item

      print earning total

      this is an actual semplified example of something I've found within a fortè program. only that it was worse, as the intermediate calculus was stored on a temporary table

      non programmers can't get why this modus of thinking is wrong (but then paid big money to make me cut the execution time of their script), so you just can't expect to have people non trained in devising alghoritms suddenly making them. the results are tipically unusable for anything serious.

    57. Re:A Natural Progression Yet So Many Caveats by maraist · · Score: 1

      Well, you're talking extremes. In my humble experience, the main sources for bugs:

      1) Inexperienced programmers
      2) experienced programmers dealing with things they're inexperienced with (socket programming, DB programming, multi-threaded programming, external APIs, etc)
      3) merging/adapting two or more unrelated libraries in ways the creators hadn't intended (e.g. hacks). This includes your OWN code - where 3'rd party linkages means you can't change the APIs
      4) idiot-moments. Otherwise well-meaning code that was either dislexic (less than instead of greater-than or equals), pointer instead of reference, loosely-typed symbolic name mispelling (case mismatch in a hash-table lookup, etc). Things where looking back at your own code you just want to smack yourself.

      1 can go to hell, Don't earn more than $30k / year until you fix this part.
      2 is unavoidable - except that managers should be aware of the strengths of their coders and make sure that untested waters have explicit code-review / peer-review / pair-programming - or THEY shouldn't earn more than $30k /year
      3 is really hard - though experience can help avoid certain inflexible API designs. Always make your APIs extensible (pass objects/messages instead of explicit parameters, don't make security lock downs too tight, etc).
      4) is where language really comes in. If there are lots of syntax that look alike but do very different things, then language author should get a smack-on-the-back-of-the-head point. Side-effect programming is BAD. Languages that allow this are BAD. And while C is the mother of all side-effectors, perl and many symbolic languages are just as bad. The argument that it makes for more efficient code is BS because you can have adjacent syntactical constructs that produce the same assembly, but force to the casual reader the fact that something interesting is happening.

      --
      -Michael
    58. Re:A Natural Progression Yet So Many Caveats by Have+Brain+Will+Rent · · Score: 2, Interesting

      I don't think the point is whether or not someone would still start a project in it (that certainly wasn't my point) but that it was based on the same idea as the article summary mentions and was in fact successful if you use a metric for success based on the number of programs written in it. There almost certainly far more programs written in Cobol than in Fortran. And even though there may still be a lot of Fortran programming still going on in scientific/engineering circles, given the relatively tiny size of that programming community I bet there are still a competitive number of Cobol programs still running out there even though there may not be any more being developed.

      Since I didn't make myself clear the very first time let me say - what is being proposed has been proposed before in the form of Cobol (old boss, new boss thing). Cobol may not have been successful at the goal of enabling non-programmers to turn out useful code but given its very widespread use in the real world it was certainly successful just as a programming language. So while the new idea may not be any more successful than Cobol in enabling non-programmers to generate useful software (but, hey it might!) it may still yield useful tools for the generation of software by actual programmers.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    59. Re:A Natural Progression Yet So Many Caveats by fast+turtle · · Score: 1, Interesting

      You mean it's not a good idea for Joe Sixpack to write his own code? Damn. He can't be anyworse the MS over the last 20 years as far as crappy code goes. The really nice thing about it is that what actually works well will get improved and garbage will fall by the wayside as it should.

      --
      Mod me up/Mod me down: I wont frown as I've no crown
    60. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 1, Insightful

      Depends on how you define "best". The best practices approach is to define what your user needs -> define what the software needs to do to meet those needs -> Design the software architecture to fulfill the software requirements -> implement -> review -> verify -> validate. Implementation is usually a breeze once you have already fully defined the software design. If the target audience of a programming language are people who are afraid of programming, then they will be ignoring the best practices steps anyways. Labview is a good example of this. Labview empowers people who honestly should not be empowered. Following best practices, good programs can be made using Labview (like all languages, it should be selected for certain purposes). However, when you empower people who don't know squat about good programming practices, you get garbage that works, but is impossible to maintain, is unstable, and gives the language a bad name.

    61. Re:A Natural Progression Yet So Many Caveats by Zero__Kelvin · · Score: 0

      "The simple truth is that many applications don't need that much performance or strange features and if a language like this enables more people to make their own custom apps, then I applaud it."

      If you dumb down programming then dumb people will program. This isn't a good thing, no matter how you slice it. If you make it easier to implement logic, you also make it easier to implement flaws in logic. I am not saying that languages should be made harder to use, and more difficult to understand. What I am saying is that writing languages with smart people in mind is smart, and writing languages with dumb people in mind is dumb. It is called mapping the problem domain to the solution domain, and the more you dumb down computer languages, the more you will have people writing code that can't parse this sentence.

      Another way to say the above is that "dumb people don't have a programming language at their disposal" isn't a problem that needs solving, so let's not solve it.

      Seriously, a smart programmer is not a better human being than a dumb janitor, but smart people shouldn't squander their resources scrubbing toilets for a living, and people of average or below average intelligence shouldn't squander ours.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    62. Re:A Natural Progression Yet So Many Caveats by turbidostato · · Score: 1

      "You mean it's not a good idea for Joe Sixpack to write his own code?"

      I don't think that's the point. The point is that if Joe Sixpack can hack together something that renders then you will end up with Joe Sixpack writing your production code (as in fact has been the case for the last 25 years). And you really don't want that.

    63. Re:A Natural Progression Yet So Many Caveats by Zero__Kelvin · · Score: 1

      "Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?"

      No. The best approach is to design carefully and with forethought then implement it using the right tool for the right job in as clear, concise, and maintainable a fashion as possible, documenting all the way, and using proper SCM techniques. After that you profile , and make optimizations only where it really makes sense, and you make changes to the documentation to accurately reflect those changes.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    64. Re:A Natural Progression Yet So Many Caveats by Zero__Kelvin · · Score: 1

      You can inheret from myString and overload myString.pop(). How, pray tell, do you plan on doing that with your solution?

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    65. Re:A Natural Progression Yet So Many Caveats by Cerium · · Score: 1

      Definitely agree. Plus, the more wordy you make the language, the more likely people are to make mistakes. Just think of all the times that people misuses then/than, loose/lose on internet comments *shudder* If you get your basic syntax mixed up like that when programming, you are going to have problems.

      Hrmm... I half agree with you.
      I definitely agree in that once you learn one or two languages, picking up others is a matter of learning syntax and some common libraries. However, I think the real problem with people typing like jackasses is because "you knew what I meant, so whatever; no reason to fix it" (which doesn't exactly work in any programming language I've ever heard of). Now, while a language like the one being discussed may not turn Joe Sixpack into a programming virtuoso, it may make him/her more mindful of silly grammar mistakes and errors which may translate into them not looking silly when they write emails and texts.

    66. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?

      That's a fine approach, but I'd say the best approach would be to understand the hardware your software is targeting as well as the potential languages which could be used. Then use that knowledge to know in advance where the bottlenecks will be and be able to do it right the first time. I'm somewhat concerned that a good number of CS grads really don't understand how hardware works when they're done.

    67. Re:A Natural Progression Yet So Many Caveats by Dragonslicer · · Score: 3, Insightful

      But take some hack's C or Python code and then have to sift through it and fix it up just so you can make it a bit more modular.

      Bad programmers will be bad programmers no matter what language you give them. Some languages, however, are easy enough to figure out that even bad programmers can write something that mostly works.

    68. Re:A Natural Progression Yet So Many Caveats by turbidostato · · Score: 1

      "I'm glad you mentioned prototyping because I think that is a real benefit of an easy programming language."

      I want to pull off my hair any time somebody mentions "fast prototyping" and think "oh, no! another chance for a PHB to pass a mock up for real production code".

      "we've been trying to bring software developing to the average user for a long time now."

      We? The ones that want to bring software developing to the average Joe Sixpack are the PHBs that want to pay Joe Sixpack wages and those naive enough to think that coding is about plasting together sintactically correct code instead of about proper problem-solving and algorithm understanding.

      If you really want to make a productive developer out of a Joe Sixpack don't dumb down the programming language, it won't work. Try instead to produce Joe Sixpackers with enough problem-solving and algorithm understanding abilities. If you manage to do that you will probably find all of a sudden that such kind of a mind finds C syntax not to be quite a big problem after all.

    69. Re:A Natural Progression Yet So Many Caveats by Dragonslicer · · Score: 1

      So how do you explain the continued existence of doctors and lawyers?

      A good programmer can usually write code that even someone less skilled than the original programmer can understand the code. In the case of doctors, there isn't much we can do to simplify biology and anatomy; we're pretty much stuck with what we have.

      As for lawyers, well, I've got nothing.

    70. Re:A Natural Progression Yet So Many Caveats by turbidostato · · Score: 1

      "but I think we're reaching the limits on our ability to make a language that is actually easy to program, not just for a novice to read."

      And there you nailed it: PHBs pretending they know what the f* is going under the hood because they think they are able to actually read the code.

      It's a conspiration.

    71. Re:A Natural Progression Yet So Many Caveats by whoop · · Score: 2, Insightful

      You must be confusing Slashdot for rational thinking. You see, 'round these parts, every article the describes something new must be the only one of its kind to exist.

      ChromeOS? It's gotta be able to serve 500 trillion web hits, decode MRI scans, run MS Exchange to 10 people in an office, telephone you when the temperature outside goes above 50, and browse web sites from the couch. If it cannot do all that, and everything everyone in the world wants to do, it's useless.

      Nintendo Wii? It cannot play the simplest version of Pong 40,000 in 1080p across fourteen 10,000-inch televisions with fully realistic explosions. Therefore, it is crap.

      So, don't let it surprise you that this little "language" is crap since it cannot do some things.

    72. Re:A Natural Progression Yet So Many Caveats by daVinci1980 · · Score: 1

      As a bit of a sidebar, you pay more than a "mild penalty" for using Ruby as opposed to C/C++

      Comparison

      --
      I currently have no clever signature witicism to add here.
    73. Re:A Natural Progression Yet So Many Caveats by voidphoenix · · Score: 1

      In my experience, the main source of bugs isn't a lack of experience. I spent a year assembling and training a team of Java/.NET programmers and what I found was that 9 out of 10 "programmers" could not code a simple nested loop test, in pseudo code or any language they knew. The exercise was:

      Given an arbitrary non-negative number n, write a function/procedure/subroutine that will produce output in the form of:
      1
      23
      456
      78910
      1112131415
      ...

      where n is the number of lines of output.

      and 4 out of 5 couldn't even do

      1
      22
      333
      4444
      ...

      These weren't fresh grads, mind you. These were senior-level programmers/developers, with 5 to 10 years industry experience. Most of them did well on the language-specific tests, which in my opinion rely too much on memory, questions like "What are the 4 different kinds of authentication in ASP.NET and how do they differ?"

      I doubt it will matter much how natural-language-like programming languages become. Try asking people for directions and you'll have an idea of how well they'd do at programming. Some people simply can't code. They're not wired to think algorithmically, and they'd be better of doing something else.

    74. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      It's just you. You're talking about Lingo, the language used by Director. This is nothing like Actionscript 1.0, which was akin to Javascript - dot syntax and uses prototypes for inheritance. Lingo also got dot syntax, in Director 7 I believe (they're currently on 11.5 - v7 came out about 10-11 years ago). I think they kept the "human readable" syntax, but am pretty sure some APIs that were introduced didn't support this.

      One could also say this is similar to AppleScript.

    75. Re:A Natural Progression Yet So Many Caveats by BarryJacobsen · · Score: 1

      there isn't much we can do to simplify biology and anatomy; we're pretty much stuck with what we have.

      Statements like this are why America lags so far behind in the (mad) sciences.

    76. Re:A Natural Progression Yet So Many Caveats by maxume · · Score: 1

      My understanding may be off, and certainly it would be a simple matter to construct a more interesting case, but I'm pretty sure that the situation you describe is 'dull' in optimization circles, not 'damned smart'.

      --
      Nerd rage is the funniest rage.
    77. Re:A Natural Progression Yet So Many Caveats by Bengie · · Score: 1

      I think he was aiming more for the "If you boss doesn't know what you do, you won't be around for long"

    78. Re:A Natural Progression Yet So Many Caveats by jhol13 · · Score: 1

      Not necessarily. You lose a lot of the advantages of the interpreted language.

      For example Python can be run in IronPython or jPython ... but not if there is C/C++ routines (not without recompile or worse).

      If you envision needing a (partial) rewrite, wouldn't a RAD tool be better?

    79. Re:A Natural Progression Yet So Many Caveats by Angeliqe · · Score: 1

      Easier solution. Report the credit card lost that you used to sign up for the account and ignore the notices they send you in the mail to update your credit card information.

    80. Re:A Natural Progression Yet So Many Caveats by sjames · · Score: 1

      I doubt very much that this language will allow "anyone" to create working applications. I looked at the tutorial stuff. It doesn't look to be any higher level than Python, just much wordier and missing the nifty features. The mere thought of a non-programmer trying to use this to produce a secure app on a corporate website is disturbing.

      If you've ever tried to extract a coherent spec from non-programmers, you'll know that it would take an A.I. at least as sophisticated as a human programmer to succeed and then probably take more than one iteration.

      I am by no means saying non-programmers are dumb, just that programming requires a specific mindset that most people don't have. It can be learned. If you don't have it, you can't program. If you do, you don't need an "easy" language to succeed.

      IIRC, CASE tools was supposed to let non-programmers produce real non-trivial programs as well.

    81. Re:A Natural Progression Yet So Many Caveats by causality · · Score: 1

      I think he was aiming more for the "If you boss doesn't know what you do, you won't be around for long"

      My standard for a boss in that (implied) setting is that he or she is someone who is familiar with the work, and thus fit to lead a team which does that particular work. This does not necessarily require intimate expertise but does need, at minimum, an abstract and realistic understanding of the concepts involved and a sense of purpose grounded in an unclouded view of things as they are. To anyone who calls that idealistic, I say that the boss in question either meets that standard or they fail that standard but either way, the standard remains the same.

      Perhaps for that reason, it did not occur to me to assume that this discussion was limited to a supervisor at work.

      --
      It is a miracle that curiosity survives formal education. - Einstein
    82. Re:A Natural Progression Yet So Many Caveats by westlake · · Score: 1

      Yes but the idea/propaganda was the same... make it easier for "normal" people to make software.

      COBOL was designed to make business software easy to read and audit by accountants and other professionals familiar with traditional methods.

      That's important in the first generation. It builds confidence in automation at a time when it is most needed.

    83. Re:A Natural Progression Yet So Many Caveats by tepples · · Score: 1

      And yet if an implementation of a language incurs on average of 10% overhead

      I've seen 1000% overhead in a few cases, especially memory-wise.

      your hardware will catch up in a matter of months.

      Not if you're in an industry where hardware has "generations": video game consoles, mobile phones, etc. In order to have access to more powerful hardware, you may have to wait years for the platform owner to put out a new major revision of the hardware (e.g. GBA to DS, or iPhone to iPhone 3GS).

    84. Re:A Natural Progression Yet So Many Caveats by Tibia1 · · Score: 1

      Computers and applications will forever be bending over backwards for the most important thing to us: us.

      Until we can merge our intelligence into computers, we must simplify them to our lesser minded selves.

    85. Re:A Natural Progression Yet So Many Caveats by BikeHelmet · · Score: 1

      It would take a fundamental revolution in hardware and at least one hundred years to be able to make any such claim.

      A revolution in hardware? So, see you in 2025? :P

      I think C will die pretty quick for desktop software. It's a great language, but it's not the tool for the job when your software has to utilize 500 cores. (the future)

      Other languages are far more suitable for such tasks. JIT-compiled languages like Scala have already shown they scale better than C across large numbers of cores, take less time to dev, etc.; I can imagine a human readable language half as fast as java, yet scaling 20x better than C, which would bring high efficiency programming to your average smart guy.

      It's plausible. I mean, people said Javascript would never be fast, but now we've got a VM for that.

    86. Re:A Natural Progression Yet So Many Caveats by Have+Brain+Will+Rent · · Score: 1

      That may have been part of the reason for the language, sponsored by the US DoD and initially specified by an Admiral btw, but I'm pretty sure that an accountant could have read a "*" just as easily as "MULTIPLY". I am surprised to find that new standards for COBOL continue to emerge so apparently COBOL programs still are being written today.

      I think confidence in automation had already been pretty well established before then... at least the US Census and others had bought into it whole hog.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    87. Re:A Natural Progression Yet So Many Caveats by Blakey+Rat · · Score: 1

      Well if you're going to judge EVERY new technology with how appropriate it is to embedded applications, why should we bother developing anything high-level at all?

      Relax, dude. Maybe this doesn't help you in your job. But you don't need to be so actively hostile to people trying to improve the frankly shitty state of programming.

    88. Re:A Natural Progression Yet So Many Caveats by ottothecow · · Score: 1
      I feel like that takes a lot more work (such as changing all other subscriptions that are tied to it).

      Also, be aware that just because they can't charge you does not mean that they can't claim you owe them money. I had debt collectors sent after me for a similar situation. Someone signed me up for a trial (they had a "free" newspaper subscription that I might like and didn't realize it would need to be cancelled) and I just ignored all the mail from the company that came after the trial ended. The mail looked like those fake bills that magazines and newspapers use to make you renew (they usually look exactly like a bill except for "this is not a bill" printed on it somewhere) so I ignored them. Eventually I had the debt collectors chasing after me, sending letters, getting my real phone number by calling my friends, etc. Total charge was about $12...worst part was the original company admitted within seconds of me first calling that I clearly shouldn't owe anything and it still took a LONG time to get everything cleared up and stop the debt collectors.

      Faxing in your cancellation takes about a minute, doesn't require you to change your CC number, and ensures that you won't have crazy debt collectors on your ass

      --
      Bottles.
    89. Re:A Natural Progression Yet So Many Caveats by cerberusss · · Score: 1

      Ah yes, compare that to the user friendlyness of UNIX:

      $ rm -rf * .bak
      $ ls
      $ ls
      $ ls

      --
      8 of 13 people found this answer helpful. Did you?
    90. Re:A Natural Progression Yet So Many Caveats by Alpha830RulZ · · Score: 1

      Is this appropriate for a one off, one time use application? How about one that will be used by two users once a month until a conversion is completed. And so on

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    91. Re:A Natural Progression Yet So Many Caveats by GigaplexNZ · · Score: 1

      Simple:
      when trying to remove the last character, print the character to the screen

    92. Re:A Natural Progression Yet So Many Caveats by TheLink · · Score: 1

      The thing is, many webapps are actually DB bound despite appearing to be webserver bound, because they store most of their state in the database (and nearly the rest of it at the user's browser).

      Now this means you are shifting the burden of locking, serialization and other tricky stuff to the DB.

      When you do that, you can have as many identical webservers as you want (scaling "horizontally")- since the state is all at the DB (and most of the rest in the user's browser).

      You can then use a crappy slow language for your webapp, since it doesn't matter, even if it does look like your webserver becomes cpu bound, you can easily add webservers if you need, to increase capacity.

      But it is not as easy to add DB servers to speed stuff up or increase capacity.

      Because most locking and serialization stuff doesn't scale horizontally very well. A node has to either wait for the rest of the nodes to say a write is OK (which is slow), or some funky stuff has to be done to resolve conflicts, or stuff has to be sharded (conflict avoidance - nodes are never responsible for the same thing, so there are no conflicts). That's why those cluster supercomputers use expensive fast low latency interconnects. And that's why databases always have compromises when you want to do multimaster clusters.

      So you try to shift as much cpu usage (stateless checking, calculations, caching etc) to the webapps and just leave the locking, serialization and transaction nastiness to the DB.

      And that's why despite it being nice and consistent to run stored procedures in the database to handle lots of stuff, it becomes prohibitive/expensive in practice to do so when you have such architectures.

      --
    93. Re:A Natural Progression Yet So Many Caveats by johnlcallaway · · Score: 1

      Why do programs suck?? It's not because of the language, it's because people fail to properly use the features. Allocate memory, then one must deallocate memory. Even in Java, creating objects without any regard for the number or interaction can lead to disaster. I've seen 'experienced' programmers insist on using 'String1+=String2' without any idea what the impact is of doing this one time v/s 10,000,000 times. The right answer comes out in the end, so who cares if the VM hangs up every now and then. I know .. let's just load EVERYTHING into the web session, it's just memory... right???

      Then there is adequate data checking and error correction. It's one thing to assume that the first column in a database is an integer, it's another to assume that box 1 from a web form is. We had a program that 'assumed' that the index was unique, so it used the old 'try an insert, if it fails, update' logic. (If you don't understand why that is bad, you need to step away from the keyboard until you do.) Or that data feed your company subscribes to is always as expected. Or that your program will never abort, so who cares about restarting it.

      THOSE are some of the things that make crappy programs. And no language in the world will fix that.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    94. Re:A Natural Progression Yet So Many Caveats by thoughtspace · · Score: 1

      Some people will argue "job-security through obscurity", but if your job depends on other people not understanding what you do, it's bound to end sooner rather than later anyway.

      So how do you explain the continued existence of doctors and lawyers? Otherwise I agree with your post. Just wanted to question that one bit.

      He is referring to people in the same profession.

    95. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      I have an idea for a program. I do. I think that I know something the computer in front of me should be able to do that it can't do already. I'm wholly certain that the computer is physically powerful enough to do this thing I'm thinking of -- I've been an end user long enough that I can tell that it wouldn't be especially resource-intensive. I've even looked around pretty extensively to see if someone else has made their computer do this, and as far as I can see, nobody's done so.

      Maybe my idea is good, maybe it's not. Maybe it would make a dozen people's day to have an application that did what I'm thinking about; maybe it would even please more than that. Sadly, that doesn't matter. With programming being what it is today, I won't have the chance to explore the idea. If it was a picture I was thinking of, I'd know where to start in sketching it. If it was something philosophical I had in mind, I'd write about it. My idea is a process, and the current medium for processes appears far more forbidding than a blank canvas or an empty word processing document. Even if I didn't know the first thing about paints, I'm familiar with pencils, and though it wouldn't be high art, I could slowly scratch my image into existence, though I had to erase every other stroke. Even if I didn't know much about philosophy or writing, I know how to use a keyboard, and though it wouldn't be well-sourced or concise, I could put my idea on a page and say, "There, that's what I'm thinking about."

      I'm frustratingly aware that the machine in front of me could do what I'm thinking about. Still, I'm not likely to see my idea in motion, unless someone else, a specialist, thinks of my idea and decides to spend time making it work. That's a shame. It's not a shame because my idea isn't going to see the light of day (though I'm separately unhappy about that). The real shame is that I know that there are a million other people out there who have had a burst of inspiration while sitting in front of their computer and have had no means with which to explore it. Simple ideas, intuitive ideas, ideas that come up when one has a specialization or unique knowledge. They show up, they keep people up at night. This drives some people go to work learning how to program, how to make their computers respond to their real wishes. But, that takes time. That takes a lot more time than learning the basics of shapes, shading, and scaling; that takes longer than figuring out how to put text on a webpage.

      If the pencils are out there, where are they? I don't mind that they aren't the primary tool of great artists, or even that they aren't really the best tool for the job. I'd just like to see my little idea for a process running, and I'd like to see it without spending a thousand hours figuring out how to put graphite to paper. And, I'd like to see the confirmation that I'm not alone, to see more ideas from everyone else out there that's sitting in front of a computer, inspired and bemused, yet unable to even doodle in the margins.

    96. Re:A Natural Progression Yet So Many Caveats by thoughtspace · · Score: 1

      Think about it. Why do we use * for multiply? The use of * is a typical programmer's idea - we actually need an x (multiply symbol not letter) - can't use x, oh * is close enough. The missing divide symbol key is another stupidity.

    97. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 1, Funny

      user@computer:~$ killall -9 friendlybashhelper

      Dave, what are you doing?

    98. Re:A Natural Progression Yet So Many Caveats by Have+Brain+Will+Rent · · Score: 1

      Yes, well, you see the point was that accountants don't need to see the word MULTIPLY to understand it is multiplication. They can just as easily tell from a single symbol. Take a look at the kind of stuff accountants routinely have to read - trust me a single symbol for multiply isn't a problem for them, any more than it is to use a single symbol for ADD or for SUBTRACT. If you want to argue that "x" is better than "*" for that single symbol then go right ahead, but it isn't relevant to the point I was making.

      btw I've seen more than a couple of keyboards with both a divide symbol and even keyboards that had both multiply and divide. As for "*" being "a typical programmer's idea" I don't think you understand who it is/was that decides on character sets, the representation of characters and what symbols printers and (back then) card punches would support but I'll give you a clue - it wasn't programmers.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    99. Re:A Natural Progression Yet So Many Caveats by chthon · · Score: 1

      Being a good or bad programmer has nothing to do with the language used. If someone does not have the (talent|background) to set up and work out a logical statement from beginning to end, then no matter what language you give them, they will never be able to program well.

    100. Re:A Natural Progression Yet So Many Caveats by Zero__Kelvin · · Score: 1

      I assume that you are trying in a tongue in cheek fashion to show why making programming available to the not very bright person is a bad idea ;-) Good job, sir. Good job!

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    101. Re:A Natural Progression Yet So Many Caveats by Zero__Kelvin · · Score: 1

      That is neither inheritence, nor polymorphism. It also references no object. You see, this is why you need people who are smart and understand how computer languages work to do this stuff for you. It is the same reason we don't want mechanics working on our cars that aren't smart enough to undertstand them. The junk yards are full enough already. Thanks for making my point for me though ;-)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    102. Re:A Natural Progression Yet So Many Caveats by mcrbids · · Score: 4, Insightful

      It is a joke...its code runs so slow.

      But, it's being slow is an implementation detail, not a language detail. The fact is, you were able to write some code that the machine "understood" well enough to perform. The rest is just implementation detail. There are many C/C++ compilers, all of which have various performance/price/compatibility trade-offs. Surprisingly, the most popular compiler is also one of the slowest: gcc generally prefers cross-platform capability over performance, and neither compiles the quickest nor produces the quickest executing code.

      But, NONE of this deals with the real reason why not everybody can be a good programmer. A good programmer must be able to precisely articulate exactly what he/she wants to have the machine do. And, it's quite surprising how few people can really do that. Most people think that much of what programmers and computers do really is just so much hand-waving, and while they crave the power of a programmer, they don't crave the attention to detail that something so simple as transposing two numbers can destroy.

      Yet, to get something done, you MUST know that you can't mix up a divisor and a dividend. This is a detail, and one of countless details that a programmer is paid to articulate. The REAL skill in being a good programmer isn't in the details of XYZ language, but in the details of the problem being solved!

      Languages are progressing to be easier to code, and this is a good thing. Programmers are paid to solve real problems, and in the process, have to solve implementation problems. Languages that minimize implementation overhead give programmers more skill to solve more complex and more challenging real-world problems.

      Don't worry - the world won't have any real shortages of problem-solving, logical people any time soon. Today's problems are getting harder, not easier!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    103. Re:A Natural Progression Yet So Many Caveats by rdebath · · Score: 1

      I think you're confusing cause and effect here.

      The technique of shifting the CPU workload off the database server onto multiple web servers has happened because of people using slow languages not the other way round. Nearly lock free techniques have to be used if you're going to have hundreds of simultaneous users whether their code is running on the DB server or not.

      Saying that it's possible to add more CPUs even to the extreme levels that facebook uses to combat the slowness of PHP doesn't stop something being CPU bound.

      So I think I'll stick with the usual implication of "cpu bound" ... "on ordinary hardware" because most people need to pay for their webhosting so "DB Bound" ... "on infinite hardware" doesn't really cut it.

    104. Re:A Natural Progression Yet So Many Caveats by war4peace · · Score: 1

      I guess you meant "if you dumb down programming then dumb people will program too". And that would be the truth. However, it won't necesarily mean they will be successful in programming properly. Rev4 just makes it easier for Average Joes to write simple web apps and that's pretty much it. Furthermore, I challenge your suggestion that all people who can't learn a programming language are dumb. This implies that all jobs except developer jobs are taken by dumb people. Kind of extreme if you ask me.
      I wasn't able to properly learn any programming language except (yeah, laugh it up!) Visual Basic foa Applications, which I used to develop some pretty complex stuff, and if you think this lack of ONE ability makes me dumb, then I'm sorry I am too dumb for you. But I challenge you to write some fairly successful novels or cook some widely successful dishes, or why not, learn all Asian languages. Should I consider you dumb for not being able to?
      Okay, let's get back to programming. Most people who can't program properly using currently available programming language are stopped by the fact that they can't wrap their minds against the sharp edges and pointy ends of a programming language's syntax, which is still too close to a machine's restrictions, which are basically a set of EXACT instructions. No room to flow nicely, no room to act naturally. Programming languages are like a waterfall flowing in right angles all the way. It is not natural and therefore doesn't act natural. That's exactly why, in order to simulate a waterfall, wheather or just protein folding, there's a very large amount of computational power required and the results are generally unimpressive. Now, having a different sort of approach would open this otherwise weld shut door to a larger percent of the population, and tries to narrow the logical gap between humanity and computers.
      Indeed your approach shows exactly why we need an easier to understand and use programming languages. For too long programmers have been sitting on a pedestal and "mortals" watched them in awe. A lot of programmers actually deserve to be watched in awe, and Rev4 will just filter down those who don't. If you fear this, then maybe, I'd say maybe you should look in the mirror and ask yourself if your pedestal was made of stone or mud in the first place.
      Finally, there's an example from my line of work. I am creating and sending out reports and statistics as a large part of my job. When our group started using Oracle Business Intelligence (Oracle Discoverer) for reporting purposes, buddiesused to say "dude, you should reconsider doing what you're ding, 'cause this will bring you to your knees and make you useless"". It didn't. When we switched to CRM On Demand (which contains a simply great reporting engine) they again were saying the same thing. It didn't bring me down either. Simply because I'm better at what I'm doing than an application and most of the times I can generate the relevant reports with a greater speed. If you're good, it won't affect you. If you're just gathering bits and pieces to make some sort of web app as part of your daily jo, then yer, fear Rev4. But if you're e.g. programming industrial robots, you'd most likely never encounter Rev4 in your work domain. Ever.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    105. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      So is death

    106. Re:A Natural Progression Yet So Many Caveats by Zero__Kelvin · · Score: 1

      "Furthermore, I challenge your suggestion that all people who can't learn a programming language are dumb."

      I stopped reading right there, since it was the second time you totally mischaracterized what I wrote. If I were to adopt your logical style I would assert that you consider all people of average or less than average intelligence to be dumb, since that is the words I used to describe the class of people who should not be programmers. You see ... it is very easy to twist peoples words around and claim they said things that they didn't. Embedding such foolishness in three large paragraphs doesn't make it any less obvious. (in truth, the world is already full of people who can and did learn a programming language, but should not have done so.)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    107. Re:A Natural Progression Yet So Many Caveats by GigaplexNZ · · Score: 1
      I never suggested it was inheritance or polymorphism, nor did I suggest it had to be. I also wasn't suggesting it as a serious solution, perhaps I should have used a sarcasm tag or something.

      Thanks for making my point for me though ;-)

      You're welcome, my intention was to agree with you.

    108. Re:A Natural Progression Yet So Many Caveats by somersault · · Score: 1

      :0 why would you put a space after the asterisk? If someone is that confused about how to use rm, they should stick to a GUI, or at least not use forced mode until they get more acquainted with it. I imagine in a more "friendly" version of bash, you'd get a recycle bin.

      --
      which is totally what she said
    109. Re:A Natural Progression Yet So Many Caveats by Maxo-Texas · · Score: 1

      Exactly.

      Converting the core organization rules to logically correct statements eludes business types.

      "I want a sales report", "I want a weather simulation" just isn't going to cut it.

      However, entire classes of program will become easier.

      The gui stuff is highly automated compared to back when it started.

      Business people especially do not want to think precisely. It makes them feel badly.
      They are usually extroverted big picture types- not detail types.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    110. Re:A Natural Progression Yet So Many Caveats by julesh · · Score: 1

      No one's writing web applications in assembly. And no one's using Jakarta Struts to control an embedded device.

      I wouldn't be so sure about either of those, to be honest with you. I've certainly seen people attempting to write web apps in Forth, which is approximately the next best thing in terms of ease of writing, and the hardware you'd need to run JRE+Tomcat+Jakarta+Struts (+ presumably HSQL or something similar for storage) is already present in some higher-end embedded devices.

    111. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      I've seen 'experienced' programmers insist on using 'String1+=String2'

      Works for me:

      #include <string>
      int main(void){
      std::string String1 = "A", String2 = "B";
      for(long long n=0; n < 10,000,000; n++ )
      String1 += String2;
      return 0;
      }

      the VM

      There's yer problem.

    112. Re:A Natural Progression Yet So Many Caveats by cerberusss · · Score: 1

      I was just joking, really. It actually happened once to me, though :-)

      --
      8 of 13 people found this answer helpful. Did you?
    113. Re:A Natural Progression Yet So Many Caveats by dgriff · · Score: 1

      Nearly a second, wow, that's a long time just for a few k of text. Any idea why, is it easy to profile PHP?

      BTW I thought most such web apps used caching to ease the load?

    114. Re:A Natural Progression Yet So Many Caveats by SharpFang · · Score: 1

      I've seen people writing webservers and web applications in assembly.

      When the webserver for monitoring runs on an off-the-shelf $3 PIC microcontroller, assembler is the only viable option. Shell out $3 more and double the power consumption and you can use C. Give another $20 and quadruple the power and you can use PHP on top of Apache.

      Of course if you can afford ethernet or GPRS in the device -and- intend to run a webserver on it, the $20 makes little difference, and so does the power. These projects are made by fanatics with too much free time. But they happen, and not infrequently too.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    115. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      You can stick to that, but you simply are not understanding the problem or have not worked on a large enough website. It is trivial and cheap to add another app server (assuming you are already in a load balanced situation), but it can be massively expensive to scale the DB. IIRC, we were paying in excess of 10k per CPU per year for our Oracle install (inherited code with a lot of stored procedures).

      To avoid scaling the DB we had to use a lot of caching on our Java webapp. Even still, a single report run on the DB could munge the entire thing (and it was on a beast of a machine) when your schema has dynamic fields with subfields requiring many many joins.

      Comparatviely, the app servers even though they implemented the caching, had layers and layers of abstraction in the code, even used tree structures and some walking of the tree for handling some navigation, and using full XML and XSLT processing for rendering (data was converted to XML, then rendered piecemeal by layers of XSLT), almost never hit more than single digit CPU usage.

    116. Re:A Natural Progression Yet So Many Caveats by nog_lorp · · Score: 1

      I think maximum ease of use AND empowerment is the way to go, so good (maximally featured) natural language programming system would be great...

      But this just seems like ugly over-verbose shit, like Pascal but MORE unnecessary text.

      on setUpAnswer pAnswer
            local tAnswer, tHint, tButtonName, tUnderlineName, \
            tCharacter, tImageName

            put empty into sAnswerCharacters
            set the itemDelimiter to tab
            put item 1 of pAnswer into tAnswer
            put item 2 of pAnswer into tHint
            show image tHint
            repeat with x = 1 to the number of words of tAnswer
                  add the number of chars of word x of tAnswer to \
                  sAnswerCharacters
                  repeat with y = 1 to the number of characters of word x \
                        of tAnswer
                        put "letter" & x & y into tButtonName
                        put "underline" & x & y into tUnderlineName
                        put character y of word x of tAnswer into tCharacter
                        put tCharacter & "Icon" into tImageName

                        set the cLetter of button tButtonName of group \
                        "Answer" to tCharacter
                        set the icon of button tButtonName to the id
                        of image tImageName of card "Image Store"
                        set the visible of graphic tUnderlineName of group \
                        "Answer" to true
                  end repeat
            end repeat
      end setUpAnswer

      Sounds like revolutionary natural language to me!
                put "letter" & x & y into tButtonName

    117. Re:A Natural Progression Yet So Many Caveats by chrome · · Score: 1

      it looks an awful lot like applescript to me;

         repeat with x = 1 to the number of words of tAnswer
            add the number of chars of word x of tAnswer to \
            sAnswerCharacters
            repeat with y = 1 to the number of characters of word x \
               of tAnswer
               put "letter" & x & y into tButtonName
               put "underline" & x & y into tUnderlineName
               put character y of word x of tAnswer into tCharacter
               put tCharacter & "Icon" into tImageName

               set the cLetter of button tButtonName of group \
               "Answer" to tCharacter
               set the icon of button tButtonName to the id
               of image tImageName of card "Image Store"
               set the visible of graphic tUnderlineName of group \
               "Answer" to true
            end repeat
         end repeat

    118. Re:A Natural Progression Yet So Many Caveats by Bert64 · · Score: 1

      Unfortunately that's not the case...
      I encounter a large number of companies that sell products based on extremely crufty code which is written and maintained by novice (read: cheap) programmers. When new versions come out, they just look slightly different but are still based on the same broken backend code that's been around for years. Many of these companies have no incentive to fix anything because customers are locked in or there aren't any alternatives in their fields anyway.
      There are bugs so simple, and yet have been around for so long... One particular application i encountered, where you need to enter a number of hours per day for something... If your total hours per day is greater than 24 rather than an error message pointing out that >24 hours per day is impossible, the entire program crashes and loses any other unsaved data.
      This bug has existed for years, and still exists in current versions of this software being sold today.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    119. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      It took some time for you to learn how to use a pencil with skill, you just don't remember.

      Six months of evenings, and you can write a useful program in an interpreted language. Google is truly your friend.

      This is actually less time than you took to get good with a pencil.

    120. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      If the language is Turing complete (which is likely) then there are no applications that you cannot make with this language. A better question for you to have asked is "what types of applications is this language best suited for?", which would give you a much better answer. If natural language processing is part of the language, then spoken word applications (voice command) would seem to be a natural fit. If you add synonyms to words that can be parsed, then your range of commands grows. If you can have basic commands, with synonyms where the synonym consists of the basic command but the individual synonyms carry modifiers to the basic command then you can have a much richer language (with subtleties included like real languages). Its interesting stuff tho.

    121. Re:A Natural Progression Yet So Many Caveats by Bert64 · · Score: 1

      If you put an arbitrary limit on wages, then companies will just snap up all the 30k/year programmers...
      So long as they can make something that *works*, then that's good enough... That the code is slow, bloated and extremely buggy is largely unimportant to most business types, if it works some of the time then it can be sold. A lot of commercial software i encounter, especially smaller niche products are extremely buggy like this, and yet customers keep lapping them up and cheerfully working around all the ridiculous bugs that should really be fixed.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    122. Re:A Natural Progression Yet So Many Caveats by sqldr · · Score: 1

      It took me a lot longer to learn English than it took me to learn C. Then again, it also took me ages to figure out how to use Oracle, and I *always* have to refer to the manual to figure out the syntax. "cp $control /var/backups/controlfile" is a lot easier to remember than "copy control file from $path1 to $path2 autosomebollocks.. can't remember it.. doh!" Programming in English is a total fallacy.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    123. Re:A Natural Progression Yet So Many Caveats by Rhaban · · Score: 1

      user@computer:~$ oh shit, I was in the wrong folder. can you get those files back?

      nope. you're fucked.

      (never underestimate the possible stupidity of the user)

    124. Re:A Natural Progression Yet So Many Caveats by ronia0 · · Score: 1

      Using english or any language for that matter does not necessarily make things simpler. Its hard to pinpoint but its the ease of logic and the ease of implementation. That is why PHP was so ( or still is) successful as a web script. It came at a time when the youth was not so dumbed by monoplistic apps like FB, Tw, G etc and one loved to 'interact' in a way that PHP exactly provided - there were plenty of free or cheap hosts, and whether PHP was/is slow hardly mattered as that never surfaced in the multitude sites that had small to mod crowds. In short, PHP cannot be displaced from what it has attained. Look at the number of scripts in ROR and PHP even after so many springs and summers in ROR have passed. How this new stuff will compete with Python, Java, C future will tell but it reminds me of squishedmosquito.com and how nothing happened.

    125. Re:A Natural Progression Yet So Many Caveats by ByteSlicer · · Score: 1

      Java has a garbage collector designed to protect you from memory leaks

      No. It was designed to automatically reclaim unused instances/memory. It's still quite possible to create memory leaks in Java (just forget a reference in a static list for example).

    126. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      Don't underestimate gcc. Take into account that as gcc is highly portable and is open source and free, it places a minimum. You have 0 oportunities to compete if you cannot generate better code than gcc. You can place your efforts to improve gcc to suit your needs instead of having to reinvent a whole toolchain. So you will find that only those with a strong interest of having an edge to win a competitive advantage on their side will spend money on their own compilers. For example, Intel wanting to have their best compiler with optimizations tuned for their chips (instead of balanced between AMD/Intel). Microsoft to gain a speed advantages over other platforms and the like...

    127. Re:A Natural Progression Yet So Many Caveats by V!NCENT · · Score: 1

      Overhead is no problem if it's compensated for elsewhere.

      So if a huge amount of usefull webapps suddenly appear everywhere than that's great, but an OS like Chromium is then needed to compensate for the overhead, which it does at remarkable speed.

      You'll end up with a realy fast OS and a shitload of usefull webapps.

      Couldn't get any better, what do you say? ;)

      --
      Here be signatures
    128. Re:A Natural Progression Yet So Many Caveats by rve · · Score: 1

      And, it's quite surprising how few people can really do that. Most people think that much of what programmers and computers do really is just so much hand-waving, and while they crave the power of a programmer, they don't crave the attention to detail that something so simple as transposing two numbers can destroy.

      I don't mean to be nasty, but in what universe do "people crave the power of a programmer" but alas, do not possess the attention to detail ?

      Ask your average lawyer, military officer, brain surgeon, business person or artist whether they decided against a career in programming because they simply didn't crave the attention to detail?

      If many people craved this "power", many more people would be taking programming classes. Programming is considered a very menial job, on a similar level as the tech support guy who comes to install your new office PC. There is a good reason why it is work largely done by kids and immigrants. The pay is poor compared to others with a college degree, the hours are poor, and on a first date you have be 'vague' about what you do for a living (my own favorite is 'engineer', my apologies to real engineers).

    129. Re:A Natural Progression Yet So Many Caveats by CptPicard · · Score: 1

      No, but I'm into algorithmics which is mostly language-independent, and in addition like thinking about the "philosophy" of programming languages... so I guess I just am not horribly impressed by constant factors or CPU instruction sets. Whatever that's worth ;)

      I do recognize that C will be "faster" than other languages... but that's just one metric, and sometimes I wonder why a lot of programmers who seem very married to the low-level consider anything else to be "dumbing down". For parallel programming for example, pure-functional languages are very applicable (think parallel-map etc operations in Haskell) and also intellectually interesting. In the end, there will never be a programming language that will program for you -- they can just take some (or a lot) of the manual drugdery out, and create more interesting language elements that express things a bit differently than in terms of your basic imperative control structures.

      And I kind of wish that Java wasn't used as some sort of an example of a high-level language... it is actually rather pedestrian in its ideas.

      --
      I want to play Free Market with a drowning Libertarian.
    130. Re:A Natural Progression Yet So Many Caveats by dkf · · Score: 1

      On the desktop? Sure, who cares, though again a lot of java apps are slow to start and sluggish to respond.

      That's the basic startup cost of the java runtime, which is a bloated pig. But if you compare a complex app startup then the costs aren't that different (opening databases and initializing security contexts can take quite a while...)

      Java does best for domains where it can stay resident, such as a complex server. Writing those in C is a real nightmare - if one module gets its memory management wrong then the whole lot goes up in smoke and you've got almost no hope to find out where, especially for rare errors - whereas it's a lot more practical in a managed language like Java or C# (or Python or ...) I'll reserve judgement there on C++ (some people think it is suited, others don't).

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    131. Re:A Natural Progression Yet So Many Caveats by dkf · · Score: 1

      This kind of applications won't have the hardware catching up to let you replace C, Asembly and VHDL with Ruby or Java for decades yet.

      I have contacts in the embedded safety-critical world (though admittedly they're in a domain where there's lots of power available). They're using high-level languages. I wonder whether it is a good idea for them to do so, but they seem to be happy and productive so the risk-reward tradeoff must seem OK to them.

      I suspect that if you only ever use low-level languages then you only ever really deal with low-level details, but a program in total - including runtime and libs - will always have both low-level and high-level concerns. High-level languages let you get to working on the high-level problems sooner; the low-level stuff is left to the runtime and libs which are (usually) well-written enough to take care of it without messing. (For a simple example, why would you write your own sorting code when you could just use one from a library where they've picked a good algorithm and dealt with the complex edge-cases already? There are cases where you would, but most coders aren't writing those things.)

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    132. Re:A Natural Progression Yet So Many Caveats by Fred_A · · Score: 1

      No. The best approach is to design carefully and with forethought then implement it using the right tool for the right job in as clear, concise, and maintainable a fashion as possible, documenting all the way, and using proper SCM techniques. After that you profile , and make optimizations only where it really makes sense, and you make changes to the documentation to accurately reflect those changes.

      That's a nice theory. I don't think anybody's ever done it though.

      The fact that you start with the design and conveniently forget the numerous redesign committees, the added features, the dropped features, the shortened deadlines, etc. suggests that this theory was pulled from some kind of book or imaginary world and not from real life experience.

      --

      May contain traces of nut.
      Made from the freshest electrons.
    133. Re:A Natural Progression Yet So Many Caveats by TheLink · · Score: 1

      "Webserver(s) and single DB" is a common configuration because it is convenient. Not because of slow languages. In fact sites often start with just one webserver and one DB and never ever notice the "slow language" problem. This configuration typically allows people to easily add webservers if they have to, but doesn't allow them to easily add DB servers.

      The convenient DBs are actually quite slow and don't scale well (as the AC replying to you has noticed ;) ).

      The scalable DBs that the huge sites use are typically not easy to use or very expensive (or both) or lack a lot of features (so you have to reproduce the features you want in the application).

      Furthermore, to do what ebay, amazon and facebook do requires a lot of "roll your own" and customization [1]. Most of the huge sites "shard" almost everything and aim for "shared nothing" architectures, and then have lots of custom "glue and tape" to hold stuff together.

      So the fact that facebook is experiencing problems with PHP doesn't really prove much (other than incompetence). Stuff regularly breaks on facebook, they're probably doing lots of things wrong (and just enough things right ;) ). Using PHP is one of the things they are doing wrong, but for it to be such a huge problem seems very weird to me. Since if you design stuff right, you should be able to rewrite the slow CPU-sucking bits in a faster language (or gradually change everything to a different language).

      [1] None of them seem to have the same system. In contrast thousands of tiny sites are happily running diverse apps on "LAMP".

      --
    134. Re:A Natural Progression Yet So Many Caveats by arethuza · · Score: 1

      I agree, servers are really cheap these days, especially application servers that don't even need to be on a SAN. For most situations and with relatively sane applications, the answer is usually "throw more servers at the problem". If you need to do heavy reporting then punt the data somewhere else before doing it - don't do it on your transactional database. Nothing particularly difficult or novel, but you'd be amazed at the number of times I've seen people trying to fix these kind of things in software. Of course, if you are Google or similar you can write super efficient code and throw zillions of servers at the problem - but most of us aren't in that situation.

    135. Re:A Natural Progression Yet So Many Caveats by elnyka · · Score: 1

      Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?

      You can't "re-code" bottlenecks at the architectural level, even if your language allows a cost-effective way to write and call native written modules. And that's the danger of "develop fast, identify and fix later".

      Let me rephrase it - the problem with "develop fast, identify later" is that people seem to believe that this approach lets them avoid the identification of problems at the architectural level (by architectural meaning problems whose resolution have a significant cost, be them how you compose your system down to specific language features and even coding styles and paradigms.)

      The idea of developing fast is to delay the resolution of these architectural concerns to the last responsible minute. But unfortunately, people do a poor job, fail to recognize that the last responsible minute might occur very early on during developing, leaving it until it hits production, go "oh shit" and start making poor-man, poorly made fixes with hacks that will not be sustainable on the long run during the application lifespan.

    136. Re:A Natural Progression Yet So Many Caveats by tepples · · Score: 1

      Plus the more "optimised" languages don't cease to exist, and are available for use where more appropriate than a "friendly" language.

      Unless the system policy prohibits the use of more "optimised" languages. For example, try running anything but a Java midlet on a feature phone unless you're a company that's big enough to get your app preloaded. Or try running anything but a Java applet on a web browser unless you're a company that's big enough to get your plug-in trusted by the general public (e.g. Adobe).

    137. Re:A Natural Progression Yet So Many Caveats by elnyka · · Score: 1

      It doesn't really matter in the web as 90% of the time is spent hitting the database. Youtube runs pretty much 100% on Python, Facebook runs on Erlang and PHP. Erlang has the benefit of being highly scalable, yet it is relatively slow. Speen in the web doesn'trelly matter much. What's important is scalability, and today's shared-nothing approach pretty mucha guarantees that at the language level.

      From my experience:

      1. that depends on the application.
      2. I've seen applications spending 40%-60% time spending in delivering content and page rendering. In sites with lots of promos and static pages, the average per page user experience involves a much smaller % of time hitting the db.
      3. In a well-written application using a well-designed RDB, and specially if using OR mappers with caching, the goal is to minimize % spent on the db.
      4. With rare exceptions, every time you see an app that is intended to handle a lot of traffic spending a great % of its time on the db, you should take that as a f* up at different levels (architectural, design, implementation, database design, network topology, etc.)
    138. Re:A Natural Progression Yet So Many Caveats by arethuza · · Score: 1

      I've also seen people writing their own web server in VB6 to run on Windows Server, for no apparent reason other than they didn't trust IIS. Which is perhaps an understandable concern, but implementing a replacement in VB6 is hardly a good solution to that problem.

    139. Re:A Natural Progression Yet So Many Caveats by SharpFang · · Score: 1

      Oh, I'm not hostile - I know the center is expanding, abstraction layers pile up and higher-level languages get developed. It's interesting, often useful. But the approach "Learn it, because what you're doing will be replaced with it in n years" is wrong. As the center grows, so do the frontiers. Embedded electronics enters new domains and while the phones replaced palmtops, the microwave ovens got bitmap displays, the GPS left the military and entered dog collars, there will always be a market for microcontrollers with 1KB of RAM.

      Now they are used in car alarm remotes, but as car alarm remotes start running Linux, the 1K CPUs will be used in toothbrushes to indicate good time and pressure to kids. When the toothbrushes get Internet connectivity, the 1K CPUs will be found in disposable cigarette lighters to regulate flame size. When cigarette lighters get image recognition, the 1K CPUs will be installed in microbots in grains of soap to scrub your skin better. And there will always be demand for programmers who can write the 1KB of code in assembly to have these work.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    140. Re:A Natural Progression Yet So Many Caveats by Uzik2 · · Score: 1

      >if an implementation of a language incurs on average of 10% overhead, your hardware will catch up in a matter of months. If you leave out cost and the advantage of being 10% faster than your competitors this might be a fine argument.

      --
      -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
    141. Re:A Natural Progression Yet So Many Caveats by home-electro.com · · Score: 1

      Once requiring training and years of experience, now even a kindergartner can master a word processor.

      Exactly when did word processor required years experience and training?

    142. Re:A Natural Progression Yet So Many Caveats by home-electro.com · · Score: 1

      I looked through their tutorial and I'm not impressed. There is nothing revolutionary about the language. Why they claim it is so much easier to use and faster to write in? Anyone who can understand their language will be able to use Perl or VB equally easily.

    143. Re:A Natural Progression Yet So Many Caveats by sorak · · Score: 1

      Or to make a similar (but dumbed down) argument...Computers exist to server a purpose. If that purpose is served, quit bitching that it didn't require enough work.

    144. Re:A Natural Progression Yet So Many Caveats by SharpFang · · Score: 1

      That's true - but not all the way. Depending on the device, even the high-level languages are rarely the really high ones. You won't find many embedded devices running their core work in Perl or Python or Ruby. It will be C++ or Java Embedded Edition, or ObjC, or Pascal, on rare occasions Fortran. There may be an OS running and there will be small shell scripts for assorted works. There will be MySQL or SQLite, but the SQL used will be mostly very simple - no JOIN, no nested SELECT or any such heavy lifting. There may be PHP for webserver if the authors are feeling extravagant, but it will do the presentation and GUI, not for the real application.

      Prolog? Rev4? Matlab? Nope. Totally out of scope.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    145. Re:A Natural Progression Yet So Many Caveats by Simetrical · · Score: 2, Interesting

      The thing is, many webapps are actually DB bound despite appearing to be webserver bound, because they store most of their state in the database (and nearly the rest of it at the user's browser).

      Now this means you are shifting the burden of locking, serialization and other tricky stuff to the DB.

      When you do that, you can have as many identical webservers as you want (scaling "horizontally")- since the state is all at the DB (and most of the rest in the user's browser).

      Okay, in that sense I agree that databases are the major optimization concern for web apps, at least from a scalability perspective. It's worth pointing out, though, that this doesn't save you from latency issues, only scalability issues. If your PHP app takes 500 ms to generate a page, it doesn't matter how much hardware you throw at it, users' experience is going to be considerably worse than it should be. On Wikipedia, large pages can take literally 20 seconds or more of CPU time to generate – although this is hidden by two different layers of caching, so it's not usually visible to most users.

      --
      MediaWiki developer, Total War Center sysadmin
    146. Re:A Natural Progression Yet So Many Caveats by bennomatic · · Score: 1

      There are some great tools for doing this, too. Companies like New Relic are building monitoring tools that will let you drill down on every transaction in your Java or Ruby app--I presume there are folks out there who do something similar for PHP and Perl--to see where the slowdowns are. Whether it's something in the code, a non-optimized database query or whatever, there are tools to find and remove bottlenecks that are really taking the mystery out of the process.

      --
      The CB App. What's your 20?
    147. Re:A Natural Progression Yet So Many Caveats by fractoid · · Score: 1

      The simple truth is that many applications don't need that much performance or strange features and if a language like this enables more people to make their own custom apps, then I applaud it.

      The even simpler truth is that no matter what language you type it in, the actual logic of your program is going to be the same. The difference between English and C++ isn't just curly braces and semicolons instead of nice verbose words. The difference is that English is ambiguous, non-rigorous, and carries a rich tapestry of overtones which would require a human, possibly even a native speaker, to really fully comprehend.

      I bet 90% (or whatever the ratio of nonprogrammers to programmers is in the greater community) of people will try this, get some examples working, try to make their first true project, and then realise they haven't the faintest idea what the fuck they're doing, because they never learned to think in a logical, methodical, imperative manner. This is something I figured out when I was 13, really bad at programming, and had just installed The Games Factory. Turns out that game logic is no easier to program in to an event grid than it is to program in to a BASIC game. All you're doing is changing the syntax a bit.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    148. Re:A Natural Progression Yet So Many Caveats by Nursie · · Score: 1

      "I do recognize that C will be "faster" than other languages... but that's just one metric"

      It's the most important for many applications. Look, we're all turing-complete adults here. Some languages lower development time, some languages abstract away from the machine they run on etc etc. In most spheres you need to find a balance between writing code at an acceptable speed and getting the most out of the machine. At the low end (embedded) and the high end (speed-critical server apps) the balance falls at C.

      "sometimes I wonder why a lot of programmers who seem very married to the low-level consider anything else to be "dumbing down".

      Depends, sometimes making things easier just encourages sloppy programming, I've seen a lot of sloppy java code and a lot of java coders that don't seem to take execution speed or memory efficiency into any sort of account, mostly because they don't have to actually manage their own memory. It's like a rich kid that doesn't realise the value of money, except he's not as rich as he thinks.

      "they can just take some (or a lot) of the manual drugdery out,"

      Yes they can, at the cost of efficiency. Usually. There's another interesting area of study, actually, the improvement of machine optimisation.

      Oh, and BTW, I mention Java so much because between C, C++ and Java, you probably have 90% of the commercial codebase covered. That has no bearing on elegance or functionality, it's just what I come across in my working life.

    149. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      If their language is so easy and intuitive, why do they need to provide a consulting business?

      I'm working on a new programming language myself. It consists of only one statement:

      JustDoIt.

      The language will read your brainwaves and do exactly what's on your mind. Now I just have to figure out how to filter out the pornsite popups.

    150. Re:A Natural Progression Yet So Many Caveats by Follier · · Score: 1

      user@computer:~$ killall friendlybashhelper

      are you sure?

      the continuation... user@computer:~$killall friendlybashhelper

      (silence) ... phew! Now...

      user@computer:~$ rm -f *

      user@computer:~$ ls -lrt
      total 0

      WHAT?! Noooo! stupid computer!!

    151. Re:A Natural Progression Yet So Many Caveats by mswhippingboy · · Score: 1

      They have a consulting business? Just that fact alone says enough to me given that it's supposed to be "a programming language so easy even a caveman can do it". (Apologies to cavemen everywhere)

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    152. Re:A Natural Progression Yet So Many Caveats by rxan · · Score: 1

      A good programmer must be able to precisely articulate exactly what he/she wants to have the machine do.

      I don't agree with you. It's funny how my dad is a machine electrician and I am a programmer. There is grunt work to be done in both fields, but every time we talk about our work it always comes down to design.

      Knowing how to make the machine do what doesn't make a strong programmer. I'm sure that you are a good programmer: how many times have you forgotten a cast or how to do a certain operation. I'm betting just as much as any other good programmer. If you forget these things you can easily look it up or check out some reference code.

      The real strength of a programmer is in design: re-usability, extendability, readability, robustness, and performance. The good programmers balance these factors to produce a solution that works well now and can be easily adapted to new problems.

      The irony is that this follows for many careers: farming, electricians, medicine, surgery, programming, mechanics. The ones who know what makes a good solution, not just how to implement those solutions, are the ones with the real skills.

    153. Re:A Natural Progression Yet So Many Caveats by MikeFM · · Score: 1

      Let people do simple tasks for themselves with toy languages. That takes the burden off those of us that like programming so that we can spend time on harder stuff. IMO it's like being able to change the oil in my car myself but the serious upkeep is done by trained mechanics.

      You could probably force just about anything in this language (as you can with many other simple languages) but the work required probably grows quickly as you try to do larger projects not within the pre-defined problem domain. English-like syntax is quickly confusing and hard to manage too. My example is SQL. SQL is awesome for things it is really meant for but as you start trying to do things it wasn't meant for your code gets more and more tangled, slow, and hard to manage. Even some things it is meant for, like joins, can get pretty hard to understand as they get more complex. A non-human-like language could be a lot more direct as to the relationships being defined.

      Wanting to program in natural language is like wanting to build skyscrapers with legos. Just because it's what you learned as a kid doesn't mean it's the optimal way to go.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    154. Re:A Natural Progression Yet So Many Caveats by marcosdumay · · Score: 1

      That is one of those situations when you should give some money to a lawer.

    155. Re:A Natural Progression Yet So Many Caveats by Kjella · · Score: 1

      In the USA they would be protected by the "safe harbor" provisions of the DMCA.

      Some languages are so limited that limited minds can create limited applications for limited niches of software.

      Computers are infuriatingly frustrating because they have none of the "built in" routines people do. For example, let's take two people cooking, a regular everyday event. Do you see them run into race conditions and deadlocks and resource conflicts like computers? Yes, but they resolve themselves. And you don't see them grabbing for stuff that isn't there and panic or one guy pouring something into the same pot where the other was making a dish, or them repeatedly headbutting because they need to switch places. Or that if you tell one of them to take a break while he's still holding the knife, he won't automatically put it back, and the other guy will just stall waiting for it. Or that if they peel potatoes, and if you don't tell them to garbage collect the peels will just pile up and up until it's not possible to cook anymore.

      Sure you can dumb it down, you can make sure there's only one person cooking. You can make it so that for each time he cuts something, he has to pick up the knife, cut and return it so it's never lost. In short, you can make so that there's less situations to deal with, at a cost of capability, efficiency, scalability, speed and so on. Because that's what I find most issues are about, finding all the ways the computer will "leap off" the track you think it's on. Because usually, even with the worst developers it's usually passed the one test case they tried, it just fails horribly the moment one of the hidden and unchecked assumptions are different.

      --
      Live today, because you never know what tomorrow brings
    156. Re:A Natural Progression Yet So Many Caveats by angel'o'sphere · · Score: 1

      ... Java has a garbage collector designed to protect you from memory leaks ...

      A general misconception.
      A garbage collector relieves you from the burden to know where exactly to say free(ptr) or delete ptr. It does not prevent memory leaks.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    157. Re:A Natural Progression Yet So Many Caveats by marcosdumay · · Score: 1

      Well, that already happened to me, and quite a few people I know.

      Of course, after it happened to me I learned to use a recycle bin on bash (google for libtrash if you want). After that I started making backups for good, and stopped messing with trash :) Anyway, it does happen, and a more friendly version of bash could assure you are making backups somewhere at instalation.

      As a side note, does anybody know where is the switch to make KDE stop asking confirmation for removing files? That is what I make backups for, I don't want to say "I am sure" everytime I want to delete someting.

    158. Re:A Natural Progression Yet So Many Caveats by dsimpson_dcsi · · Score: 1

      I suggest that the reason Rev's consulting business also uses other languages in addition to Rev is: 1) They use the appropriate language for each task which they have to perform. Revtalk code is not always going to be the best solution to every problem. With Rev, you can write plug-ins in C to gain additional Operating System functionality (i.e. MacOSX CoreImage features) or performance. This is how the revDB features are implemented in Rev itself. 2) The customer may have required a specific development language for the project. So, being responsive to their customer's requests, they may have used a Rev app as a wrapper around some other language, or they may have written the entire project in the requested language. Either way, they met the customer's needs, and generated revenue to support further development of the IDE. It is an everyone wins type of situation.

      --
      David Simpson
    159. Re:A Natural Progression Yet So Many Caveats by dsimpson_dcsi · · Score: 1

      It is unfortunate that you had a bad experience with Rev in the past. I have been developing in Rev since 2001, and have written 7 shipping apps during that timeframe. Of the roughly 1600 commands in the language, almost all of them call upon tightly written, compiled C code in the engine itself. I write database migration software which has to process the data and the GUI for a variety of databases, including FileMaker Pro. I actually parse and reformat data on the fly on a record by record basis - and I have never had a performance issue. Even when processing hundreds of megabytes of data, my application has shown excellent performance.

      --
      David Simpson
    160. Re:A Natural Progression Yet So Many Caveats by geminidomino · · Score: 1

      Now I just have to figure out how to filter out the pornsite popups.

      You need a second statement:

      NoNoNotTHATArghEww

    161. Re:A Natural Progression Yet So Many Caveats by maxume · · Score: 1

      A lawyer isn't going to burn the company and debt collectors to the ground though.

      Call an arsonist.

      --
      Nerd rage is the funniest rage.
    162. Re:A Natural Progression Yet So Many Caveats by Blakey+Rat · · Score: 1

      I don't think anybody has claimed that RunRev, even if it's a magical miracle tool, is going to replace every programmer evar. I don't know where you're pulling that from, and that's the point I was countering.

      Yes, they'll always be demand for programmers who can write assembly. But what the holy heck does that have to do with the article?

    163. Re:A Natural Progression Yet So Many Caveats by RunRevKev · · Score: 1
      This is of course very true, there are plenty of problems to solve and a lot of them are challenging and require experienced programmers with a great grasp of logic to solve.

      revTalk is a language which professional programmers use, day in day out, to solve complex real world problems more productively than with alternatives. Which isn't to say that its the right tool for every job or that other languages don't have their place, far from it.

      But that said, there is also a class of user, who isn't a programmer, who doesn't want to be a programmer, but who has something to say. We're all experts in something but few of us are experts in programming. In the Web 2.0 world more and more people want to be able to go beyond creating a static web page. For example, we see lots of school teachers use Rev to create interactive materials for their students. The existing web languages don't serve that group of people particularly well.

    164. Re:A Natural Progression Yet So Many Caveats by kuzb · · Score: 1

      Tell you what. I'll get off your lawn if you stop exaggerating things to absolute extremes.

      Most of the problems people have with revtalk are that it's not what it claims to be. It's not particularly "easier". It's not particularly "smaller". The only thing revtalk and I seem to agree on is it's for novices who don't know better.

      --
      BeauHD. Worst editor since kdawson.
    165. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      If you use zsh, it can warn you about using rm with *. I rarely use rm and * together, so I don't mind the extra confirmation for safety.

    166. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      And yet if an implementation of a language incurs on average of 10% overhead, your hardware will catch up in a matter of months.

      Where is "10%" coming from? The overheads of languages are often much higher than that. The overhead of Java over C is about 100%. The overhead of Perl over C exceeds 1000%. The overhead of Ruby over C is often 2000% or more.

      And we're rapidly getting to the stage where throwing hardware at the problem is not good enough. You can't add hardware if your datacenter is already drawing as much power as the infrastructure can supply. As the pressure to move to low-power-consumption devices builds, we're going to have to worry about those constant factors again.

    167. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      That's not true. The consulting/development department writes only in RevTalk. However, Rev can seamlessly integrate into SQL databases, maybe that's what you saw.

    168. Re:A Natural Progression Yet So Many Caveats by Haeleth · · Score: 1

      For the latter, imagine if, instead of "rm -rf *", you'd have to type "delete all files in this folder, and I'm sure I want to do this". It's more verbose and much less efficient, but it's both more human-readable and likely much more dummy-proof. If someone can more easily understand what they're doing, they're more likely to stop and realise it may not be what they actually intended to do.

      Solving the wrong problem there. Dummies will still just copy-and-paste the command from some forum thread, without reading it, and then be surprised when it does what it says. And non-dummies will turn your "helpful" feature off because it just gets in their way.

      The correct solution to the problem of accidental file deletion is to provide an undelete function. All GUIs do this. The fact that most command lines do not suggests that command-line users do not, in practice, find that such a problem exists.

    169. Re:A Natural Progression Yet So Many Caveats by Tablizer · · Score: 1

      A good programmer must be able to precisely articulate exactly what he/she wants to have the machine do.

      Even more than that, he/she must understand and sometimes communicate the trade-offs involved. For example, if I use some JavaScript/DOM widget I found on the web instead of plain-Jane HTML with more server-side coding, I make the application more fragile. Different and future browsers and/or versions of browsers may not be able to run that JS/DOM widget. (I find JS/DOM sensitive to browser updates.)

      One must not only recognize these trade-offs, but sometimes also communicate them to managers. "Do you want it fancy and fragile, or robust but boring?". I'm faced with many such trade-offs when building or augmenting software. Some of them require management attention and some are internal and low-level.
             

    170. Re:A Natural Progression Yet So Many Caveats by ottothecow · · Score: 1

      Please find me a lawyer with fees that are less than the $12 in question and who I would have to spend less time meeting with to explain my case than I would spend handling it myself.

      --
      Bottles.
    171. Re:A Natural Progression Yet So Many Caveats by jgrahn · · Score: 1

      Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?

      You can't "re-code" bottlenecks at the architectural level, even if your language allows a cost-effective way to write and call native written modules. And that's the danger of "develop fast, identify and fix later".

      I always suspected that the *real* lesson is that you normally find no such bottlenecks. That the "oh, you can always rewrite the bottlenecks in C" mantra is like when you tell a small child "if the monster under the bed tries to eat you, daddy will come and suck it into the vacuum cleaner".

    172. Re:A Natural Progression Yet So Many Caveats by Rene+S.+Hollan · · Score: 1

      Either the programmer does the "work" (tracking memory (languages without built-in run-time garbage collection), structure layouts (assembler programming)), or the machine does the work.

      If the machine does the work once at compile time, there is no run-time overhead (think mapping structs and function arguments to memory offsets and stack frame offsets). If the machine generates code to do the work at run-time, there is run-time overhead (think virtual function delegation and base clase fixups, particularly with multiple inheritence).

      Garbage collection involves run-time overhead of letting the machine track when something is no longer referenced, either because the programmer is too lazy, or can not know, or is prone to get it wrong: debugging the garbage collector is easier than debugging every program that manages memory, and that effort can be leveraged for all programs that use the garbage collector... at the expense of run-time overhead even when it is not necessary.

      Smart compilers can help: pointers to dynamic memory that does not have references passed to objects or functions that affect internal state can be recognized and the related objects destroyed when the pointer leaves scope (think auto_ptr in a function). You pay the run-time garbage collection overhead only when it is "really necessary" for some value of "the compiler is not smart enough to tell".

      Pointers take so many flavors, and unfortunately, most languages upcast them freely to the most general type (often losing the distinction between something allocated dynamically and not, and something that "someone else" has to handle the reclamation of... or not).

      you have pointer to foo, pointer to foo on the stack, pointer to foo dynamically allocated, foo being the i't element of an array inside an object bar that is either on the stack, dynamically allocated, or static, etc. What to do when you no longer need to reference what your pointer refers to often depends on type information you either don't have, or can not be known. Operations on pointers therefore justifiably call for a virtual dispatch table... for those pointers where they may be of different flavors. And, then you have to be able to tell -- you don't always need the overhead (think of a pointer through an array that you walk and then no longer need).

      I sense that language support for the various kinds of pointers is lacking, or where it is possible, upcasting to lose type information is too easy (Heck, C++ will let you take the address of anything, and wham! you've got a bald pointer. You can prevent this for specific types by overloading the address-of operator, but you can't prevent the programmer from defining a type that doesn't have an explicit one, or require all types to derive from a common base.

      --
      In Liberty, Rene
    173. Re:A Natural Progression Yet So Many Caveats by jgrahn · · Score: 1

      One seems (note I said seems, not implying at all that it's unavoidable) to be that the more human readable and dummy proof the more overhead you pay when you design/implement a programming language. You might find the C/C++ crowd commonly accuse the Java or Ruby crowd of this overhead.

      I'm in the C++ crowd, and I've never seen Ruby accused of anything. Ruby -- and Python -- are perhaps ignored too often, but the only thing that people really dislike is the dynamic type checking. I think it's generally accepted today that most programs don't need maximum speed.

      Indeed, Java has a garbage collector designed to protect you from memory leaks.

      I have to mention this every time praises Java's GC as protection from memory leaks: I program professionally in C++ all days, and I never have problems with memory leaks. The language handles that for me (unless I do really stupid things on purpose). Whatever GC does for everyday programming, it's *not* protection against memory leaks.

    174. Re:A Natural Progression Yet So Many Caveats by ockegheim · · Score: 1

      In truth, I am not sure that it will shorten the time that it takes to learn, as it will still take time to learn the skills of putting the pieces together.

      This reminds me of APIs and wrappers. Almost every framework I've tried to use involves learning another set of object-types and APIs. One layer of abstraction is just the same as another to my mind.

      --
      I’m old enough to remember 16K of memory being described as “whopping”
    175. Re:A Natural Progression Yet So Many Caveats by Zontar+The+Mindless · · Score: 1

      So you've never made a typo?

      --
      Il n'y a pas de Planet B.
    176. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      Bull ka ka

      I'm a programmer I program for efficiency, robustness and speed.

      In quantum/fluid mechanics of electromagnetohydrodynamics you'll have zillion dimensional matrices and even on the fastest of machines were
      still looking for tricks to solve these (1000's of times over) faster.

    177. Re:A Natural Progression Yet So Many Caveats by Kayamon · · Score: 1

      There is another argument which is all too prevalent among enthusiastic language designers, that efficiency of object code is no longer important; that the speed and-capacity of computers is increasing and their price is coming down, and the programming language designer might as well take advantage of this.

      This is an argument that would be quite acceptable if used to justify an efficiency loss of ten or twenty percent, or even thirty and forty percent. But all too frequently it is used to justify an efficiency loss of a factor of two, or ten, or even
      more; and worse, the overhead is not only in time taken but in space occupied by the running program.

      In no other engineering discipline would such avoidable overhead be tolerated, and it should not be in programming language design.

                                                          -- C.A.R. Hoare, 1973

      --
      Kayamon
    178. Re:A Natural Progression Yet So Many Caveats by Lehk228 · · Score: 1

      i don't know when the last time YOU ran a java app, but the future has fixed java, and not just by throwing more cycles at it, automated optimizers have improved performance as well. Personally i do not like writing java, but there is no problem with java applications except problems introduced by bad design of the individual application as java can execute very efficiently now, and you can run the same java app in more places with less tweaking than you can with c++

      --
      Snowden and Manning are heroes.
    179. Re:A Natural Progression Yet So Many Caveats by somersault · · Score: 1

      I tend to be wary when deleting stuff. Like when I'm forming a SQL delete statement for example, I will first do a select to double check that what I'm deleting is what I *think* I'm deleting. Likewise I suppose if I were using a complex wildcard expression in bash, I could always check with ls instead of rm, hit up then change rm to ls.

      --
      which is totally what she said
    180. Re:A Natural Progression Yet So Many Caveats by sevawonder · · Score: 1
      As one who has only known xTalks since 1983, or whenever it was I cracked open my first mac, and wrote "On Mouseup answer "hello world" end mouseup and have since worked on the web since 1995 managed many dedicated web servers, participated in building 100,000 plus web page over the years and hire and fired many other peole who wrote in PHP and C, where the current web server has 100's of CGI's written in runRev Revtalk, which run 20 faster than most PHP apps I just have to feel sorry for those who haven't tried it... There is one "great web site" where the developers were so proud that the whole back end was written in C++ and there was not a drop of 4G language (not even PHP) behind it. But the thing runs so slow it makes me cry every time I have to log in and do things in my account. Of course the old saying is everyone is an advocate for the tools he is knows. Which is true, but if I can code a web app in 150 lines that (not including css and html) in a few hours, most of which is spend in "careful consideration" and not actual coding, why on earth would I ever want to do the same thing in 1000 lines of unreadable Javascript or Action script in Flash. I'm spoiled by never having had the time or money to use do anything but revTalk and now, happily I feel like I'm 10 years ahead of the pack since the new irev server engine was released. Of course there will always be some things any particular language can't do. I will *still* need a little java script to hide and show a hidden

      of course, but...well, all comments here from anyone who hasn't actually tried building apps in revTalk are kind of useless verbiage. I once dove into action script to create a little Flash web app, only to bail 3 days later... I build the app I wanted in 6 hours with runRev. Obviously I'm a hopelessly biased advocate, but, hey, at age 56, I don't have a lot of time to waste with languages that are unproductive. And Productivity is RunRev's great power. Besides, it's just way too much fun and if you *have* to do programming... it should be... Besides, its free now and the young generation will pick it up in a heartbeat so, this boat is already sailing.

    181. Re:A Natural Progression Yet So Many Caveats by Zontar+The+Mindless · · Score: 1

      How nice for you. That does nothing to obviate the OP's point, which you still seem to be missing.

      --
      Il n'y a pas de Planet B.
    182. Re:A Natural Progression Yet So Many Caveats by mwvdlee · · Score: 1

      If that is supposed to look like english, then I have to go back to school.

      Nobody talks like that, and I dare bet the syntax is as unforgiving as, say, BASIC. making it no easier in any way.

      If they really want a language that reads like english, it should be able to parse something like this:

      Do the following times the number of words in tAnswer, starting from 1. And put the number in x.
            Total all the number of characters from all those words into sAnswerCharacters.
            Repeat for every character in each of those words and give y a number starting from 1 for each character.
                  Make the text of tButtonName start with "letter", then the value of x and then y at the end.
                  Put "underline" into tUnderlineName and then also add x and y.
                  Set the character into tCharacter.
                  Make tImageName the character we just moved and finish it off with "Icon".
                  (etc...)

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    183. Re:A Natural Progression Yet So Many Caveats by somersault · · Score: 1

      You aren't helping much in that regards if I am missing it. I presume it's something along the lines of "a lot of people are careless idiots who need to be more careful when performing irreversible actions". When I was first introduced to Linux my dad told a story along the lines of his CS lecturers managing to delete the whole of the University's unix system (requiring a few days of reinstallation) by misusing rm, so I've always been careful with it.

      --
      which is totally what she said
    184. Re:A Natural Progression Yet So Many Caveats by Anonymous Coward · · Score: 0

      You obviously didn't get far with your "some sort of earlier version". Revolution performance is not C, but it is on par with other scripting languages (PHP, Perl, ActionScript, etc). Of course, you DO need to know what you are doing as with any language. It's never hard to write slow code.

      The idea that Visual Basic is much quicker is rather laughable, sounds like you just have more experience with the latter.

    185. Re:A Natural Progression Yet So Many Caveats by rdebath · · Score: 1

      I will start with the simplest case.

      You have a database engine, optimising queries and hitting the disk.
      You have an SQL based scripting language
      You have an Xsp scripting language
      All this is on one machine.

      The number of users increases; the slowest part of the system is the hard disks, they've always been slow, their access speed hasn't improved in decades, the amount of data you can put on one has grown hugely. The linear speed of the disk has increased only moderately. So their relative speed had dropped like a stone.
      BUT The CPU is maxed out first!

      W..T..F.

      You're lucky, your job already comes neatly sliced up into tiny pieces that can be happily run in parallel on a virtual supercomputer, except the stored procedures. That's another rather slow scripting language but you're stuck running that on one machine, with lots of CPUs and Oracle is charging you per CPU. Oracle charges a lot per CPU.

      What's more, you're not even doing the data warehousing thing, where you keep your transactional database and your reporting database distinct.

      And the database machine is still fine; most of the time.

      I think it looks like you're actually my example. Sure you're being limited by the database server machine but it's the CPU every time but one. Your webserver is using lots of abstraction and lots of CPU; it's cpu bound, it gets some money thrown at it and it's now running on lots of CPUs and the incremental cost to add another CPU (web machine) is low, but it doesn't need it cause Java got more efficient over the years.
      More users and now what's left on the DB machine is a problem again, PL/SQL is causing the issue this time and again it's CPU. (I here there's a compiler that translates PL/SQL into C though I doubt you've looked at it)
      This time the cheapest solution is to use less PL/SQL and more Java; which is already running on a huge virtual supercomputer.

      But at no point are you 'database' or 'disk' bound. You're always CPU bound, except, for those times that somebody shows you what disk bound actually means by running a data warehouse report on your transactional database.

    186. Re:A Natural Progression Yet So Many Caveats by rdebath · · Score: 1

      DBs have to serialise everything in the end, so no you don't get the easy splitting that you get with the webserver which means the really big sites have to split the database the hard way and fix any conflicts later.

      That's really where facebook are now; they've had to fragment the database so right now the slow scripting language problem isn't significant they're just provisioning a few (thousand) more blades with disks.

      But it's still rather rare to have to split the database as your "common configuration" shows. It's far more common to have to split the webservers as is shown by the rarity of the even simpler and more convenient "everything on one box" configuration.

  2. BAD IDEA by Anonymous Coward · · Score: 0

    PHP and VB have dumbed down programming too much. Managers love it because they can hire less skilled (and cheaper) employees; end users suffer with shitty programs.

    Obviously, you can (and do) write shit software in any language, but at least other languages let you write well designed software.

    1. Re:BAD IDEA by Skapare · · Score: 1

      At first I read that as "PHB has dumbed down programming too much". But that is part of it.

      --
      now we need to go OSS in diesel cars
    2. Re:BAD IDEA by hairyfeet · · Score: 3, Insightful

      The reason VB got a bad rap isn't because of VB, which IMHO is fine if it is used as intended, it is the fact that too many folks tried to stick a square peg in a round hole and use VB where it didn't belong.

      VB does ONE job and does it quite well-GUIs for databases. That's it. Nothing fancy, just a quick and basic GUI so sally secretary can input data into a database and get data out of it. While you may argue that you can do the same thing in other languages, which of course you can, the simple fact is most SMBs and SOHOs simply couldn't afford it. Hiring a programmer isn't cheap, whereas with VB even a simple PC repairman like myself can whip off a nice GUI for a database, which in my experience is one of the biggest needs for a custom app that most SMBs have and is why VB is still the # 3 language for business, even though MSFT has done everything they can to kill it.

      So if you want to complain about dumbing down in general please do. But VB when used as intended by someone who knew the limits of the language was and still is just fine for the job at hand. For making custom GUIs for databases I have yet to see anything that works as easily and as affordable as VB does in that role.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    3. Re:BAD IDEA by MightyMartian · · Score: 1

      I've been working for three days to clean up a Microsoft Access app written in VBA, and I can tell you right now, that even for that limited purpose, VB can suck badly. The same applies to PHP, where I spent weeks trying to clean up an absolutely horrific (and huge) PHP-based site.

      The full-blown VB wasn't too bad. I used VB6 to write a customized Accounts Receivable application using MySQL as the database server via ADO. Microsoft makes a decent IDE, and I did plenty of in-code documenting, as well as sensible variable names, static typing, and so forth. It was a relatively easy program to debug and update. I've also done quite a bit of PHP coding, and enforce similar standards. So the lesson is that any language can be used to write good code, or bad code.

      But VBA and PHP both open the door too much. They allow people to get themselves into horrendous messes, or in larger shops, allow crappy coders to create vast, inefficient, poorly written and insecure apps.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    4. Re:BAD IDEA by timmarhy · · Score: 1

      there is nothing stopping you writing brillant apps in VB or PHP. dumming down a language also makes it harder to make mistakes in the first place, producing BETTER quality apps. your logic is seriously flawed.

      --
      If you mod me down, I will become more powerful than you can imagine....
    5. Re:BAD IDEA by timmarhy · · Score: 1

      so what your arguement is that due to the l33tne$$ of C/C++ no one could write a crappy application? bullshit. you only need to attend uni and look at first year programming assignments to see that's completely untrue. All i'm hearing from you is whinging about all the work your getting cleaning up crappy programmers work, dude you should be THANKING the crap programmers of the world, as they shall keep you in work for the rest of your life.

      --
      If you mod me down, I will become more powerful than you can imagine....
    6. Re:BAD IDEA by MightyMartian · · Score: 1

      I'm whining a bit, and I never denied that any language can produce shit. But languages like VB and PHP practically encourage it. Maybe it will keep me in work, but I have guys breathing down my neck because I didn't add a new module to a VBA inventory management app in two days because the thing was so poorly written. Meanwhile, other projects fall behind because I have to disentangle some terrifyingly bad program.

      Twice now I've suggested rewrites from the ground up, arguing that it would take me less time to duplicate the app but with easy capacity for adding features as they are required, and have been shot down because "So-and-so spent three months on that and we don't want to throw out our investment." I don't mind the pay, but being paid to smack your head against the wall still makes getting your head smacked against the wall hurt.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    7. Re:BAD IDEA by Anonymous Coward · · Score: 0

      What you said was true about 10 years ago. VBA is a weak script version of VB, and VB6 is not the current VB at all. VB.Net is entirely different from VB, and is pretty much line-for-line convertible to C#. VB.Net is a first-class language that builds into IL on the framework now..

    8. Re:BAD IDEA by MightyMartian · · Score: 1

      There are still a significant number of shops running Office 2003, so it's still true today.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    9. Re:BAD IDEA by roguegramma · · Score: 1

      And on the other hand, C and C++ practically force you to be a psychic in finding bugs, because the memory allocation merrily ignores duplicate freeing of memory till it barfs a second later. You can use debug memory allocators, but then the program is so slow that you never get to the situation you need to debug.

      --
      Hey don't blame me, IANAB
    10. Re:BAD IDEA by Rockoon · · Score: 1

      But languages like VB and PHP practically encourage it.

      How? Its one thing to say it, and another thing to justify it. In my experience, VB has all the same basic design-freedoms that the C language has (functions, structures, a wide assortment of branching instructions), but also has classes and mostly-enforced garbage collection.

      I am wondering why you've picked VB as the language easy to make a mess of things in, when quite clearly its even easier in C.
      BASIC is a common language for business applications because 30 years ago people who took a programming course learned this language. You couldn't buy a desktop that didnt come with some sort of BASIC (for many computers it was in ROM), so it made sense to teach it. So there the company is, with many employees but no professional programmers on staff.. but Bob from accounting listed his BASIC programming credentials on his resume. So lets give Bob a few days before crack at it before we go looking for an expensive alternative like contracting the work out.

      Twice now I've suggested rewrites from the ground up, arguing that it would take me less time to duplicate the app but with easy capacity for adding features

      That program probably did not start as something worthy of a Design Monument.. that thing of beauty that gets the author to pat himself on the back. Also remember that in almost any language, its easier to write code than to read it. Mature code ends up looking ugly, but all those operations have or had a real purpose. That funny looking bit whose purpose you can't understand, thats probably a bug fix and you too will need to do something like it somewhere.. and it too will look just as ugly.

      Its easier to write code than to read it. Design Monuments don't last in the real world.

      --
      "His name was James Damore."
    11. Re:BAD IDEA by Anonymous Coward · · Score: 0

      You don't get it, do you?

      VBA is not Visual Basic, It is a scripting language that barely resembles it. I am waiting for your reviews on the C language taken from your experience with csh(The C shell for the wikipedia losers).

      VB.NET might be known as VB now, but it still isn't VB. It is VB syntax splashed over C#.

      The real VB was a real RAD application. You could have your GUI done in seconds and you only needed to fill the voids with the actual code. Sure, it was limited, but as of VB6 it was way faster than Java. .NET languages are a lot more powerful but they lost everything that made VB6 better than VC6.

      A VB6 GUI was a GUI you didn't have to worry about. I used it to interface with C dlls and the WinAPI and never had any problem.

    12. Re:BAD IDEA by MightyMartian · · Score: 1

      Access's VB interpreter is very damned close to VB6. I have no idea what you're talking about.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    13. Re:BAD IDEA by Anonymous Coward · · Score: 0

      You left out the fact that VB is very useful for creating GUI interfaces for tracking IP addresses.

      http://www.youtube.com/watch?v=hkDD03yeLnU

    14. Re:BAD IDEA by turbidostato · · Score: 1

      "The reason VB got a bad rap isn't because of VB, which IMHO is fine if it is used as intended, it is the fact that too many folks tried to stick a square peg in a round hole and use VB where it didn't belong."

      Now ask yourself why this happened more with VB than, say, with C++ and you'll see why and to what extent VB's bad reputation is a well earned one.

    15. Re:BAD IDEA by PJ6 · · Score: 1

      VB does ONE job and does it quite well-GUIs for databases...

      Either you missed the whole .Net thing, or you should be careful to note in your comments that you know you're talking in the present tense about a version that's been out of date for about 7 years.

    16. Re:BAD IDEA by markdavis · · Score: 1

      > VB does ONE job and does it quite well-GUIs for databases

      As long as you don't mind being completely and utterly locked into a single, closed platform.

    17. Re:BAD IDEA by MobyDisk · · Score: 1

      While I agree that making languages simpler is good, VB6 really is the quintessential example of how it can be bad. But it wasn't the language's fault.

      VB6 was easy and pretty so it attracted the post-dot-bomb "teach yourself Visual Basic in 21 days" crowd who suddenly were writing enterprise software. I worked at a company with 2 sister projects: One was entirely VB6, coded mostly by former analysts and beginner programmers. It was easy to hire people for this project. The other was a mix of C++/VB6 coded mostly by experienced C++ programmers. The entirely-VB project was a mess and they could not keep people on the project. The other project became the company's bread-and-butter. Both were managed by the same manager, and were closely related. It really made a great case study.

      The VB6 developers (not all of them -- but many of them) were just simply inferior, and the product sucked. That's not VB6's fault, but it does show the downside of making things "simpler."

      Last comment:

      ON ERROR RESUME NEXT

    18. Re:BAD IDEA by willy_me · · Score: 1

      But languages like VB and PHP practically encourage it.

      How? Its one thing to say it, and another thing to justify it. In my experience, VB has all the same basic design-freedoms that the C language has (functions, structures, a wide assortment of branching instructions), but also has classes and mostly-enforced garbage collection.

      I believe it is not the language that matters so much as it is the APIs and tools associated with using a language. But there are also some differences between actual languages.

      Java can be very strict - even putting requirements on file names. While this can be a pain, it does make things easier for other programmers that have to understand your work.

      Python programs tend to be very clean and easy to read. This is largely a result of enforced indenting for loops and such.. (my opinion at least)

      Both Objective C and Smalltalk have a unique way of making method calls. Unlike other OOP languages, methods tend to be very descriptive. It is difficult to misinterpret the the meaning of arguments or pass then in the wrong order. It is also much easier to understand the meaning of methods written by others.

      While I basically agree with your premiss that any language can be bastardized, different languages do offer some advantages. But as I said previously, it is the APIs and tools that really make the difference. For example, if VB templates better supported the MVC paradigm we wouldn't have nearly as much crappy code out there. VB basically encourages you to put application logic into presentation code. For comparison, look how NeXTStep used Interface Builder to design GUI elements. Elements were compiled into NIB files that then linked to the application logic. The tools encouraged the separation thereby resulting in a better design.

    19. Re:BAD IDEA by kiddygrinder · · Score: 1

      This may or may not help, take a chunk of the code affected by the addition of the new code you're trying to build and rewrite it as part of the updates and don't tell anyone. Probly do this first so you have the added motivation to not tell anyone you've done it. you'll cop flack in the short term but just say this code you're fixing is such a house of cards that you have to be very careful around it while adding your new stuff, and in the long run you'll be making your job easier and quicker. Pretty much i've found this is the BEST method of getting old code re-written (besides having it being so obviously slow that it's almost useless)

      --
      This is a joke. I am joking. Joke joke joke.
    20. Re:BAD IDEA by hairyfeet · · Score: 1

      But you could make that argument about most of the tech today "We wouldn't have all these viruses if folks had to use PDP and CP/M instead of just going "clicky clicky". A side effect of making ANYTHING accessible is that you will get some of the stupid along with the smart, should we make everything as hard as possible just to discourage the dumb?

      My statement still stands though. I have built several applications in VB6 for companies, yes including the dreaded "VB+Access" app, that are still running quite well several years since they were created. And since a "smart layman" like myself could easily adapt to VB6 (I started out on the VIC20, so BASIC was like a first language to me) it allowed these companies, who never would have been able to afford a custom app, the ability to have EXACTLY the application they required to increase productivity- A custom GUI on a database.

      And THAT is why I still keep VB6 around to this day, and say that .NET will never reach the penetration that VB6 did, because VB6 was a RAD for the masses. The most I charged for one of those "custom apps"? A whole $750. Show me a C/C++ programmer that will develop a custom app for a small company for THAT price. The reason I could do it is the fact that the GUI practically designs itself in VB6, and by recycling code snippets I had kept since my old VB class in college it was quite easy to get an app up and running. I have yet to see a language that makes it that easy and affordable to create custom apps. VB6 really was one of a kind and is still quite useful to this very day, as long as you accept its limitations. The reason VB6 still has quite a large following is its main job just so happens to be one that many SOHO/SMBs need badly to increase productivity. And in the end isn't that what companies want from a program in the first place?

      --
      ACs don't waste your time replying, your posts are never seen by me.
    21. Re:BAD IDEA by Tablizer · · Score: 1

      But VBA and PHP both open the door too much. They allow people to get themselves into horrendous messes, or in larger shops, allow crappy coders to create vast, inefficient, poorly written and insecure apps.

      If there's no incentive to make code maintainable, most coders will end up making a mess regardless of language. It's all a matter of old-fashioned carrots and sticks. (Sure, there are exceptions who attempt to make maintainable code regardless of pressure from management, deadline, or peers, but we are not talking about them.)

      The OOP "pattern" crowd sometimes goes hog-wild with "Gamma" OO patterns and shoehorns everything into the most convoluted pattern they can find for the job, for example. It creates "job security" because only they know what they did and finding another mad gamma pattern zealot whose used to overdoing them may be difficult for the company.

      Bad code usually comes from laziness or zealotry or both. Zealots try to force everything into The One True paradigm even if it doesn't belong. Lazy people skip comments, leave in ugly and unnecessary duplication, create functions with giant parameter lists because they don't want to re-factor variable scoping, and the opposite: too many global variables, etc.

      There are always ways to cut corners and/or create a Chinese Puzzle, and if the incentive is there, they'll take advantage of it. No programming language can spank such people.
           

    22. Re:BAD IDEA by Tablizer · · Score: 1

      VBA is very similar to VB6, if that's what you mean. There are rumors that Microsoft will be overhauling and/or replacing it within a decade, perhaps with something better matching the dot-net framework, or go toward a more scriptish direction.

  3. What's new? by Rising+Ape · · Score: 5, Insightful

    People have been saying this since FORTRAN meant you didn't need to know assembly language to make use of a computer.

    1. Re:What's new? by WED+Fan · · Score: 5, Insightful

      If I had mod points I'd find someway to give all of them to you for insight. What follows in this thread is the same tired religious discussion. Back in my day of programming that included paper tape, teletype terminals on time shares things were tough. We were making fun of the new little "home" computers. I can't tell you how many computer languages that I sneered at. I was sure C++ would go down in flames, same for Java. I was sure Modula-2 would be the next great thing. The simple fact that people don't like that languages they hate are still seeing wide spread usage shows that the discussion is more religious than logic.

      --
      Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
    2. Re:What's new? by ScrewMaster · · Score: 5, Insightful

      People have been saying this since FORTRAN meant you didn't need to know assembly language to make use of a computer.

      Yes, they have. But at least FORTRAN, for the things that it did do, it did very well. However, in a more modern context dumbed-down languages invariably have severe restrictions on performance and capability, which makes makes them unsuitable for many purposes. Putting that aside for the moment, the reality is that unless you're coding mindlessly-simple applications, coding is hard. It just is, and it takes both skill and talent to pull off a well-written application, and I don't care what language you're talking about. Furthermore, to a skilled developer a dumbed-down language is a liability ... it just gets in the way. A better approach to this problem is to identify and train more good programmers, but that costs money and time. Certain people think they see a cheap way out by replacing sophisticated developers and their tools with sophisticated tools and simpleminded developers. Good luck with that.

      This all comes down to one faulty but cherished premise (one of many held by today's business community, I might add): that complex, reliable applications can be built by minimally-skilled developers if we can, somehow, just put enough power into the tools. The problem is, the tools aren't the problem, it's the people. In the end, software development is as much an art as it is a science, and there really aren't enough artists to go around.

      All such attempts to short-circuit the need for skilled developers are doomed to failure until such time as computers truly can program themselves. Of course, at that point it won't really matter, and most of us software engineers will be slapping burgers anyway.

      --
      The higher the technology, the sharper that two-edged sword.
    3. Re:What's new? by Anonymous Coward · · Score: 0

      People have been saying this since FORTRAN meant you didn't need to know assembly language to make use of a computer.

      There has been a continual push to make programming something that untrained monkeys could do in no time for no pay for as long as I've been in the business. And stay off my lawn.

      4GL's, "expert systems/AI", Prolog, offshore developers, RUP and Agile, structured and OOD. Most recently "instant gratification" in the form of scripting languages. A lot of things have been tried, and often partially succeeded. But never any Silver Bullet. The computers fight back. When we get the capabilty to produce more complex systems, the first thing we do seems to be to build more complex systems. And dumb programmers continue to write dumb programs.

      Even we truly did come out with a "magic" programming language, why learn it? They'll just offshore it as long as lunch over here is $8.00 and lunch over there is 95 cents.

    4. Re:What's new? by eddy+the+lip · · Score: 5, Insightful

      I can't help thinking that particular grail quest comes from mistaking which part of programming is hard. I can't count how many times I've heard "I could do that if I had the time to learn the language." Except the hard part of programming isn't the syntax.

      Tools like the one under discussion seem to be aimed at the crowd that think the only thing to learn about programming is the language, and then you can skate on that knowledge. If the language is english, suddenly you can bypass all those expensive, crotchety programmers.

      (This may be true for some tasks - there must be some utility here. But I'm sure I see some scales floating in that oil.)

      --

      This is the voice of World Control. I bring you Peace.

    5. Re:What's new? by WED+Fan · · Score: 2, Informative

      Let me rework my own comment: People really hate when a language does well despite their hate for the language. It rises to an almost religious fervor.

      Now, I can has my edit button?

      --
      Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
    6. Re:What's new? by Rockoon · · Score: 1

      I too was sure that Modula-2 would be something good.. and the reason is because the creator of the language had lots of experience creating languages.

      Later I came to realize that NONE of his languages really caught on outside of academic circles or niche markets.

      His languages:

      PL/0, Euler, Algol W, Pascal, Modula, Modula-2 and Oberon.

      --
      "His name was James Damore."
    7. Re:What's new? by Anonymous Coward · · Score: 0

      "There are two types of programming languages: The ones people complain about and the ones nobody uses."

      I read that somewhere.

    8. Re:What's new? by Anonymous Coward · · Score: 0

      I was sure C++ would go down in flames, same for Java. I was sure Modula-2 would be the next great thing. The simple fact that people don't like that languages they hate are still seeing wide spread usage shows that the discussion is more religious than logic.

      Welcome to the computer holy wars... I see you have decided to join up with the heretics. Interesting choice.... Please forgive the poor reception, the Microsoft fanboys decided to launch a Jihad on our ass and we Unix fanboys are a bit too busy fighting them off to bother with burning any heretics at the moment. Don't worry though, you will be burned at the stake as soon as we get around to planning our next crusade.

    9. Re:What's new? by scamper_22 · · Score: 2, Interesting

      Are we moving up the value chain of programming? Of course.

      However, almost all the things we can automate via compilers are things you wouldn't want to do anything.
      Who wants to code the assembler for a for loop? I welcome C!
      Who wants to code a GUI specifying pixel positions and handling resizing? I welcome come GUI designers and XAML.
      Who wants to write protocols encoding and decoding data? I welcome XML serialization and RPC! ...

      None of those things make good programs. Heck, using the right libraries and programmers that like nice sounding function and variable names, you can make c# or java really easy too.
      I've never found anyone hampered by syntax. A semi-colon here or brace there is simply not an obstacle to me.

      I taught computer science in high school. You would be amazed at the difference. Some students get it... and some just don't. Even a simple thing like variable assignment.
      Those that can get it...they get variable assignments, they get sequential steps, they get functions... they really pick up the fundamentals of any language quite quickly. The rest is design.
      I don't think people who can program can ever understand the mind of someone who doesn't get these things. I suspect its why some kids get algebra and some just don't.
      They're unable to understand variables and abstract notions.

      The only things you can really remove the programming from are those whose rules are pretty static. Things like very very very basic forms backed by a DB. But a variety of companies and environments already allow you do do such things.
      Anything that you can write a compiler for or auto-code generator for, I welcome.

    10. Re:What's new? by turbidostato · · Score: 1

      "There has been a continual push to make programming something that untrained monkeys could do in no time for no pay for as long as I've been in the business."

      And they has been quite successful at it: most software seems indeed to be developed by untrained monkeys in no time for no pay.

    11. Re:What's new? by El_Oscuro · · Score: 1

      Both Delphi and Oracle PL/SQL are based on Pascal. And I think these are pretty widely used outside of academic circles.

      --
      "Be grateful for what you have. You may never know when you may lose it."
    12. Re:What's new? by Anonymous Coward · · Score: 0

      Well, Python has been said to have been influenced by Modula-3, so maybe you were just a little ahead of your time.

    13. Re:What's new? by martin-boundary · · Score: 1

      If the language is english, suddenly you can bypass all those expensive, crotchety programmers.

      I for one welcome our new cheap English wielding Indian and Chinese programmers!

    14. Re:What's new? by Anonymous Coward · · Score: 0

      What I like to say is that programming is easy understanding is hard.

    15. Re:What's new? by jlar · · Score: 1

      Paper tape? You were lucky. We had to write our programs with a pencil on a paper bag in a septic tank. We’d have to get up 6 o’ clock in the morning, rub out the pencil markings from the paper bag, eat a crust of stale bread, go to work down at the mill for 14 hours a day, week in, week out, for 6 pence a week, and when we got home, our father would thrash us to sleep with his belt

    16. Re:What's new? by Tablizer · · Score: 1

      Oracle PL/SQL...based on Pascal

      I thought PL/SQL was based on Ada. Ada may have had some influence from Pascal, but are only distantly related.

    17. Re:What's new? by ScrewMaster · · Score: 1

      I can't help thinking that particular grail quest comes from mistaking which part of programming is hard. I can't count how many times I've heard "I could do that if I had the time to learn the language."

      Couldn't agree more. Put it this way, programming languages are tools, in the very real sense that they can only serve the needs of their owner, and do nothing on their own. Just as a brush or a pen are only as good as the mind wielding them, a computer language can be no better the programmer working in it. You're right ... that's a common misunderstanding even among developers.

      --
      The higher the technology, the sharper that two-edged sword.
    18. Re:What's new? by GWBasic · · Score: 1

      This all comes down to one faulty but cherished premise (one of many held by today's business community, I might add): that complex, reliable applications can be built by minimally-skilled developers if we can, somehow, just put enough power into the tools. The problem is, the tools aren't the problem, it's the people. In the end, software development is as much an art as it is a science, and there really aren't enough artists to go around.

      So I say to give great developers great tools. IMO, It's cheaper to buy $3-4k worth of tools for a handful of great developers instead of hiring 20 idiots.

    19. Re:What's new? by wild_berry · · Score: 1

      The edit button's in the Revolution4 edition of Slashcode, coming when CowboyNeil stops writing fanfic.

    20. Re:What's new? by ScrewMaster · · Score: 1

      So I say to give great developers great tools.

      I agree. But that doesn't change the fact that there aren't enough top-notch people.

      It's no different that it is any any field where there's a demand for more good people, but it takes talent, education and experience to create such people. The kind of mind that can be a great programmer can also be great in many other fields (a surprising number of software types are also musicians, for example.) Unless employers accept that they must make the job market attractive to them, they're simply going to go into something else, and no, "smarter" (and I use the term loosely) development tools are not going to make up the difference.

      There are a lot of negative consequences to the way corporations are handling their knowledge workers in today's world. I'm not going to get into outsourcing, or H1Bs or anything like that, mainly because they're just symptoms of a greater mental malfunction on the part of our corporate leaders (I use that term even more loosely), not causative in themselves.

      If you treat your best and brightest like meat, don't expect them to stick around. Don't expect them to even make the effort to get schooled and gain experience, when they know you'll fuck them over in the end. And certainly don't expect the slightest bit of loyalty. Many corporations demand it from their employees but give little in return, and when employees leave for greener pastures they truly don't understand why. Loyalty is a two-way street: if you don't give it you won't receive it.

      It is remarkable how many CEOs don't get that, their belief being that a good engineer should be thrilled to have a job, and certainly shouldn't expect any more than that. I've left a few positions over the years, and the exit interviews usually had my manager and often his or her boss evincing shock that I wasn't just ecstatically happy to be working there. "But ... but .... it's a job! Why aren't you groveling at our feet and expressing your heartfelt gratitude?!" The fact that they'd repeatedly lied to me, left an unblemished record of broken promises and generally screwed me into the ground just didn't enter their collective consciousness, such as it was. Here's a hearty "FUCK YOU!" to all such humanoid parasites and their brain-damaged worldview.

      America will pay a steep price for allowing our corporations and, for that matter, our schools to make the technical world unappealing and not worth the personal investment. We don't need more lawyers, we sure as Hell don't need more MBAs ... we need more engineers and scientists. Or we would, if our corporate masters weren't so busy selling us all out for a buck.

      --
      The higher the technology, the sharper that two-edged sword.
  4. Lowering the bar by Skapare · · Score: 1, Flamebait

    Let dumber people program and you end up with dumber programs. Way back in year 2000 I found that most of the Y2K bugs were actually from more recently written programs in dumbed down languages.

    --
    now we need to go OSS in diesel cars
    1. Re:Lowering the bar by GWBasic · · Score: 5, Insightful

      Let dumber people program and you end up with dumber programs. Way back in year 2000 I found that most of the Y2K bugs were actually from more recently written programs in dumbed down languages.

      I don't see it that way.

      After spending a few years in garbage collected land, I was assigned to work on a C++ application. The C++ application was a mere SOAP wrapper for a database, so it wouldn't have any noticeable performance advantages over an equivalent program written in a garbage collected language.

      The problem that quickly became obvious to me, and why I ran away from the project, is that manual memory management is so time consuming; even as an expert programmer, that the "soft and easy" languages are more about letting great programmers get more things done in less time.

      This is even the approach taken in Python; the recommendation is to write well-tuned libraries in C for the parts where C will increase performance. For parts where C is a waste of time, Python lets you not worry about silly details.

    2. Re:Lowering the bar by lilo_booter · · Score: 1

      boost::shared_ptr

    3. Re:Lowering the bar by GWBasic · · Score: 2, Insightful

      boost::shared_ptr

      Yup, I worked with that when it was appropriate. That's not the issue. The real issue is that, when using boost::shared_ptr, you need to treat memory on the heap and stack differently. It's kind of silly to worry about these things in a thin SOAP wrapper for a database where the database is the real bottleneck and the overhead of garbage collection is negligible.

      The other issue that I failed to mention is that compiling C++ is often an order of magnitude slower then newer languages. This slow compile time is much more "expensive" then any lost sales due to requiring a slightly faster CPU and slightly more RAM.

      I can give you another example: An AI researcher that I know of re-wrote newer versions of her algorithm in Java instead of C++. Even though garbage collection givers her some visible performance implications, she can program and test her algorithms much faster, which has tangible economic value for her company.

    4. Re:Lowering the bar by Razalhague · · Score: 1

      You do know that reference counting is a (simple and limited) form of garbage collection?

    5. Re:Lowering the bar by Balial · · Score: 1

      I see that as a side effect of those languages being too hard for the average programmer. And, let's face it, the average programmer is still average.

      The more burden you take off the programmer to address their specific issue and not have to deal with crap like, say, date formats, then the higher quality the average program becomes.

    6. Re:Lowering the bar by Island+Admin · · Score: 1

      Actually, robust memory handling is not that difficult to achieve, as long as you write concise modular code. It is really not that difficult to think to yourself, what is the scope of the memory or object you are allocating. But in the hands of the in-experienced or sloppy coder ... they can unleash the most horrendous leak riddled code possible.

    7. Re:Lowering the bar by Anonymous Coward · · Score: 0

      you need to treat memory on the heap and stack differently.

      *Head desk*

      Apparently you aren't as brilliant as you believe. RAII is extremely useful and one of the major things I miss when I code in Java. The only way to get RAII is stack local objects.

      Mutex m;
      DatabaseConnection dbc;

      void dosomething() {
            MutexLock ml(m);
            Query q(dbc);
            q.sql("SELECT * FROM Users");
            RecordSet::ConstIterator itr = q.recordset().iterator();
      // blah...
      /* At the end of the function, everything is auto deleted, mutex is auto unlocked.
              * INCLUDING when there are multiple return statements or an exception is thrown. Chew on that stupid "finally" statement.
              */
      }

      compiling C++ is often an order of magnitude slower then newer languages

      I don't know what compiler you're using, the GCC 4 series can compile the massive bloatware that is OpenOffice [300MB of code and associated crap] in around 30 minutes on my system. This is with -O2 optimisations as well.

      An AI researcher that I know of re-wrote newer versions of her algorithm in Java instead of C++. Even though garbage collection givers her some visible performance implications, she can program and test her algorithms much faster, which has tangible economic value for her company.

      Why was she even using either of those languages in the first place? She should have created an AI hosting environment [To manage the datasets and load AI programs] and then wrote the AI algorithms in something else on top of it [A custom language would be ideal but embedded LUA or Python probably would have been good enough].

    8. Re:Lowering the bar by GWBasic · · Score: 2, Informative

      But in the hands of the in-experienced or sloppy coder ... they can unleash the most horrendous leak riddled code possible.

      The same can happen in a garbage collected environment: Nothing will ever be collected!

      There was a bug in version 1.0 of .Net where, if you used a calendar control, your entire window wouldn't be collected. If your window referenced other data, it wouldn't be collected as well.

      Cause of the bug: The calendar control "forgot" to unregister its event handler for the "system colors change" event, thus keeping an active reference after the window was closed.

      It's also important to understand that garbage collection isn't "magic" memory management. It's just meant to be less time consuming. This is because a poor programmer will still forget to release resources that need to be explicitly released and thus end up "leaking" memory.

    9. Re:Lowering the bar by Anonymous Coward · · Score: 0, Informative

      C++ has had automatic memory management for a long time. Just keep most objects on the stack, use containers, and smart pointers for everything else and there will be almost no need to bother with manual memory management.

      Manual memory management is a pain, I don't understand why so many C++ programmers end up doing it. It is possible to have the language handle most of it without giving up any performance.

    10. Re:Lowering the bar by Anonymous Coward · · Score: 0

      why not C? I'd imagine an AI researcher should have no problems following Knuth's footsteps.

    11. Re:Lowering the bar by Anonymous Coward · · Score: 0

      You think a 30 minute build is fast? I can compile 100MB of C# in 30 seconds. That's 20 times faster. The order of magnitude comment is absolutely spot on.

    12. Re:Lowering the bar by Anonymous Coward · · Score: 2, Interesting

      I choose you to pick on :)

      Python is a very good example. Recently I have spent many hours writing a C app (because of the possible destinations of this app this made sense being an embedded application). Then I ended up on another embedded box that had python on it. Easy right? Port it use the same structs and what not right. Just use class and pop everything in. Wrong. I was out of memory PDQ. Processor usage was crap. Short story is I ended up 'optimizing' to the language. Basically tricking python to preform correctly. Not what I should be having to do in a language.

      Learning/using a language is not about 'how hard it is to manage things' or 'getting things done faster'. It is about what the language is intended for and cost trade offs. Python is meant for smallish short to the point scripts. Sure you can write large programs in it. I have written crazy programs in DOS batch script. C is meant to be lean and mean and 'on the metal'. But that comes at a cost as you have pointed out.

      The 'dont worry about it your hardware will catch up' crowd really ticks me off. It shows a true lack of care in their craft. With 4g type languages such as python, Ruby, Perl, VB, and C# there *ARE* trade offs. Ignore those details of what they do and why they do it at your own risk. To demonstrate I will show you a nice example of the sort of thing I talk about. It hits all the points.

      I will use a C struct to show it

      struct abc{ int a; int b; int c; } abcstruct;

      Clearing out that struct in C is a snap of a call to memset. In a 4gl I have to set each var to 0 with an abc.a=0 type thing. Pass this struct into other parts of the system are a snap as the rest of the system probably expects C type structs. But with a 4gl I have to 'thunk' it. Not to leave C un picked on I will show something python does 'very' well.

      x = [1,2,3,[4,5,6,7]]

      and poof x is already inited properly with variables. In C that would be a painful exercise of properly nesting things and getting it 'just right'. Then iterating over that struct is a snap in python as it is 'built in'. But with C it is a tedious exercise in nest for loops and type definition.

      Higher level languages are good at what they do and have their place. But many times people become enamored with them because of the 'ease of programming'. That ease of programming comes at a cost.

      I have noticed many times programmers are in love with their language of choice. Usually it is whatever they learned first. So they see that language as the 'naturally' right one.

      As a side note whoever came up with the idea of not having a begin and end in python needs to have a tire iron taken to their heads. Sure it makes your code all 'nice and pretty' by default. But it also creates bugs (I am on my 5th one this year because I misstyped a tab).

      Also back to the original point Let dumber people program and you end up with dumber programs very true! In *any* language you can write dumb things. It doesn't take much usually either. But let dumb people write things and you will end up with dumb code. I have seen awsome programs written in javascript, grotesque monstrosities in python, and works of art in C. But it all comes down to understanding what you wrote is going to cause the compiler/interpreter to do to your code.

    13. Re:Lowering the bar by ajlitt · · Score: 1

      If you're stuck in edit compile test cycles in development of your project (the only time where long builds are painful) and you're recompiling your whole codebase every time, you're doing it wrong.

    14. Re:Lowering the bar by thoughtsatthemoment · · Score: 1

      I agree. C++'s scope based memory management can help you with not only memory, but also other resources. The "pausing the world" moment in Java is a deal breaker in some cases.

    15. Re:Lowering the bar by jhol13 · · Score: 1

      Is Python really so slow that it "recommends" rewriting in C?

      Doesn't it remove all the advantages of Python? No longer garbage collected nor safe, no longer portable.

      Now you need to worry about "silly details" like "will this function take ages to finish if/when someone gives it an array with more than 1000 elements".

    16. Re:Lowering the bar by GWBasic · · Score: 1

      From http://en.wikipedia.org/wiki/Python_%28programming_language%29:

      When speed is a problem, Python programmers tend to try to optimize bottlenecks by algorithm improvements or data structure changes, using a JIT compiler such as Psyco, rewriting the time-critical functions in "closer to the metal" languages such as C, or by translating Python code to C code using tools like Cython.

    17. Re:Lowering the bar by Anonymous Coward · · Score: 0

      "Well, okay, so the previous point was wrong... but it was irrelevant anyway!" Nice. 30 minute builds are always painful, even if it's just one a day (and for the record, my current codebase is ~100MB and takes that long for each one of five configurations even on my year-old quad-core workstation).

      There are advantages to near-instant parsing of single files and no preprocessing besides satisfying my impatience; refactoring tools and as-you-type syntax checking come to mind.

      C++ has a place, as I alluded I develop in it every day, but yoiks. If you can't see all the ways that modern languages blow it out of the water for most tasks (my shortlist: vastly superior standard libraries; easier resource management; closures; compilation speed) then you really haven't spent enough time with anything else...

    18. Re:Lowering the bar by dkf · · Score: 1

      You do know that reference counting is a (simple and limited) form of garbage collection?

      You do know that refcounts work fine as long as you don't have reference loops? They even tend to give you better memory release behavior, though the release code has to be written carefully; the obvious recursive algorithm can blow up on large trees by blowing the stack. (Of course, as long as you know that this is possible it's pretty easy to avoid.)

      The gain of "real" GC is that it handles the complex cases better, but you pay for that. It's often worthwhile paying that "tax".

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    19. Re:Lowering the bar by Rakshasa+Taisab · · Score: 1

      So you had no experience with memory management and compiling of code, and you're surprised it took so much time?

      --
      - These characters were randomly selected.
    20. Re:Lowering the bar by chthon · · Score: 1

      When speed is a problem, a Common Lisp programmer uses SBCL (or OpenMCL).

    21. Re:Lowering the bar by master_p · · Score: 1

      I've recently finished a 95,000 lines of code app for the company I work and there isn't a single delete statement in all the project. I've used shared and weak pointers.

      People complain about C++ manual memory management all the time, but they just not use the language right.

    22. Re:Lowering the bar by awol · · Score: 1

      Let dumber people program and you end up with dumber programs. Way back in year 2000 I found that most of the Y2K bugs were actually from more recently written programs in dumbed down languages.

      No, I think dumbing down the langauges is the right thing to do. Made my living writing software for 20 years, never wrote a piece of assembler once. Some of the stuff we wrote was actually hard. Still never wrote a single piece of assembler. For this I am eternally thankful. Clearly almost every language we have is a better (and dumbed down) compared to assembler. Don't misunderstand, I fully accept that assembler has its place, but that too is a fairly generic statement that I am happy to endorse "I accpet that has it's place".

      When looking at something new, I now try and start with some of the more dumbed down languages, Python, Tcl, Perl etc. I even had to learn a bit of Ruby the other day because I wanted to enhance something that someone had written in Ruby. Their choice. Whatever reason. Now I have a tool that does exactly what I want and it took 2 days. Sure, not a complex task but writing in C or Java would have been a nightmare.

      I am waiting for the "Fisher Price" language. A bunch of oversized blocks that you just "snap" together to make your applications. Sure you only use 2% of their functionality but the big blocks are robust and "apparently" simple to the "programmer" and all one needs to do is specify the "what" rather than the "how". And isn't that the real ideal. I am sure we've all thought it even if we were too ashamed to say it... "Aaargh, bloody machine do what I meant not what I coded". So the real developments in this area are to find "environments" that allow users to specify the "what's" and leave the hows to the "environment". The language can be as dumb as possible.

      To paraphrase; "Everything should be made as dumb as possible but no dumber"

      We have quite a lot of dumbing down to be done.

      --
      "The first thing to do when you find yourself in a hole is stop digging."
    23. Re:Lowering the bar by lilo_booter · · Score: 1

      Well, I won't dispute that you should always use the language that is best suited to you especially if it meets the requirements, and while I too have no love for the . and -> distinction, it's hardly a blocker to use.

      Compilation speed - use ccache or distcc.

      But on the whole, I agree that C++ is not the tool you're looking for - personally I use it to develop low level libraries, and lean toward high level bindings for use - if the bindings/modules already existed for a scripting language of choice, yeah, I'd lean that way too...

    24. Re:Lowering the bar by GWBasic · · Score: 1

      Well, I won't dispute that you should always use the language that is best suited to you especially if it meets the requirements, and while I too have no love for the . and -> distinction, it's hardly a blocker to use.

      Which now lets me describe my biggest pet peeve with Garbage Collected languages... (And which C / C++ doesn't solve.)

      I often get to a point were I *know* a large chunk of memory should be collected; yet there's no good way to reliably check that the memory can be collected without a profiler. I really want something that I can put into Debug builds that throws some kind of error or warning if the memory is still in use.

    25. Re:Lowering the bar by GWBasic · · Score: 1

      So you had no experience with memory management and compiling of code, and you're surprised it took so much time?

      Actually, I have plenty of experience with memory management and compiling. It's an order of magnitude slower in C/C++ then with compiled languages.

      The project that I ran from had a 20-60 minute compile time. That's absurd given that a Python / Java / C# / Whatever version of the product would be just as fast yet have a much shorter compile time (and still require memory management.) It's kind of silly to pay expensive programmers to wait behind a long compile time when there isn't any tangible benefit to it.

    26. Re:Lowering the bar by lilo_booter · · Score: 1

      Now I'm confused - C++ shared_ptr most definitely does solve that - *providing* you hold a reference to the shared_ptr where you need it. In fact, it's really a non-issue - the memory is cleared up as soon as the last referrer falls out of scope. Not seeing where your problem lies with that behaviour.

    27. Re:Lowering the bar by GWBasic · · Score: 1

      Now I'm confused - C++ shared_ptr most definitely does solve that - *providing* you hold a reference to the shared_ptr where you need it. In fact, it's really a non-issue - the memory is cleared up as soon as the last referrer falls out of scope. Not seeing where your problem lies with that behaviour.

      That's fine for pointers on the stack, but I don't think that addresses pointers in fields (on the heap.) I also think it has issues with circular references and memory fragmentation. That's ultimately why some environments choose garbage collection over reference counting: to handle circular references that reference counting won't pick up, and to allow memory defragmentation that would "break" pointers.

      This blurb is probably a bit more authoritative then me: http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Reference_counting

    28. Re:Lowering the bar by lilo_booter · · Score: 1

      Yes, I'm with you now. Only, I would say that C++ does provide the facilities to work around the field issue - you could, for example, send both the shared_ptr and a reference to the inner variable, and you hold both - provide them with a template class which constructs with both, and it drops away to almost nothing.

      I daresay other languages do it more transparently, but I would argue that it is possible with C++ and really, not with much effort after the base classes are formed.

      But ultimately C++ is the acceptable form of an optimised code generator these days and it is fast because it doesn't carry the overheads unless your codebase invites them in.

      And as I originally acknowledged, you want to provide an interface at certain levels which can be easily wrapped by a high level language. That is ultimately more important than a given implementation of a library.

    29. Re:Lowering the bar by GWBasic · · Score: 1

      Yes, I'm with you now. Only, I would say that C++ does provide the facilities to work around the field issue - you could, for example, send both the shared_ptr and a reference to the inner variable, and you hold both - provide them with a template class which constructs with both, and it drops away to almost nothing.

      Which ultimately proves my point: That's too *&*^% complicated unless you're writing something that's CPU or RAM bound. If you're writing something that's disk-bound, or just isn't CPU / RAM intense, what you describe takes too much time to have a real ROI.

    30. Re:Lowering the bar by lilo_booter · · Score: 1

      I did try to go into, and probably didn't explain myself well - C++ is primarily used to generate fast code - and its pedantic nature regarding compile time type validation in preference to run time makes it good for some tasks, and bad for others.

  5. xkcd relevance by A+beautiful+mind · · Score: 5, Interesting
    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
    1. Re:xkcd relevance by sa666_666 · · Score: 1

      I absolutely agree. Making a programming language easier wrt syntax might make it somewhat clearer to understand (the language itself). However, the hard part is the logic behind it, and I don't see that ever being made easier. Logical/critical thinking and being able to break down a problem into subproblems is required for any programming activity, no matter what language you use. Make the syntax as clear as you want; you still need to understand the problem and apply reason in a logical fashion. Some people just can't do the latter, no matter how easy you make the language itself.

      Not to sound elitist, but this is 'garbage in, garbage out' in action. If you're not the type of person able to reason through a problem, you'll never be a good programmer.

    2. Re:xkcd relevance by Brian+Gordon · · Score: 5, Funny

      Reminds me of this famous forum post.

    3. Re:xkcd relevance by jedidiah · · Score: 4, Insightful

      In this respect, I think "clarity" is improved much more by using constructs from mathematics than from "english".

      So computing languages that try to avoid classic mathematical syntax are probably more a reflection of "the fear of math" rather than "the fear of computers". Although there's bound to be some overlap. The real problem in both cases is widespread fear and ignorance. This isn't just about people writing their own programs. The reluctance to learn and explore hamper the usefulness of basic end user interfaces (GUIs).

      We may be encouraging people to run with scissors when they haven't even figured out turning over yet.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    4. Re:xkcd relevance by owlstead · · Score: 1

      I agree absolutely. Of course, an easy to program language can still make life easier. A well designed set of APIs can make life easier. And then you can top it off by making sure most use cases are covered. Don't forget that there is an awful lot of repetition out there. Of course, if it is all repetition then there is probably a product sitting somewhere on a shelf.

      Personally I'm not so in favor of these kind of "natural" languages. Give me a language that is very abstract and well defined instead. Just make a very good IDE for it with drag and drop for designing stuff. And make sure it is easy to use and easy to configure and supply a very good API. But don't go into dynamic typing systems and such, because they twist the mind. Basically such systems force you to think abstractly, and most computer programming comes down to creating an abstract system from the solution you formed in your head.

      Of course, many people will have trouble forming anything in their head, let alone solutions to computing problems (just trying to top your last remark here ;).

    5. Re:xkcd relevance by Anonymous Coward · · Score: 0

      if your ideas can be implemented in a "dumbed-down" language, then your problem is solved!

      the chosen language needs to be an appropriate way of describing the tasks you want to do. Simpler languages are bad. More complex languages are bad.

    6. Re:xkcd relevance by Anonymous Coward · · Score: 0
    7. Re:xkcd relevance by mdf356 · · Score: 1

      In this respect, I think "clarity" is improved much more by using constructs from mathematics than from "english".

      Yes, which is why properly written legal documents are so annoying to read. Note that it is possible to write simpler legalese than most examples you'll see, but in order to cover the many possibilities it always reads rather poorly in English.

      When dealing with English you sometimes have to be careful about what the definition of "is" is.

      --
      Terrorist, bomb, al Qaeda, nuclear, yellowcake, kill, assassinate. Carnivore is dead... long live Echelon.
    8. Re:xkcd relevance by value_added · · Score: 1

      In this respect, I think "clarity" is improved much more by using constructs from mathematics than from "english".

      That might explain the popular notion that Perl is a write-only language. For those unfamiliar with Larry Wall:

      Wall's qualification as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".

      The counter argument, however, is that valuing clarity over expressiveness can make Jack a dull boy. For someone well-versed in Perl's idioms, writing and reading Perl can be a pleasure.

      Those unfamiliar with idiomatic constructs, on the other hand, balk for the same reasons many learning English as a second language find English uniquely difficult. But it's the expressiveness of a language like English that allows one to write a "one-liner" like Love looks not with the eyes but with the mind instead of 500 fat and flabby pages that laboriously document the psychology of interpersonal relationships.

    9. Re:xkcd relevance by Krakhan · · Score: 1

      In this respect, I think "clarity" is improved much more by using constructs from mathematics than from "english".

      Indeed, Djikstra had written such a paper about that issue many years ago. On the foolishness of "natural language programming"

    10. Re:xkcd relevance by Razalhague · · Score: 1

      The expressiveness of Love looks not with the eyes but with the mind is not due to English. It's due to the human interpreting the phrase. The same phrase can be written as (forgive me if the translation is not as elegant as the original, but that's usually the case with translations) !love.looksWith(eyes) && love.looksWith(mind) and a human should still be able to grasp the meaning of the sentence as long as they're familiar with the language. A computer will not.

    11. Re:xkcd relevance by falconwolf · · Score: 1

      Give me a language that is very abstract and well defined instead.

      A language can be abstract or can be well defined but not both. Abstract is about the theoretical and is not well defined whereas being well defined is about the practical. The abstract is not, and does not have, a specific example.

      Falcon

    12. Re:xkcd relevance by Anonymous Coward · · Score: 0

      Or this famous perlism: "You can't just make shit up and expect the computer to know what you mean, retardo!"

    13. Re:xkcd relevance by value_added · · Score: 1

      I think you misunderstood. Idioms are unique to the language, not the listener. My point was that the Perl is an "expressive" language designed with "English words" (the subject of the post), and the widespread use and preference for idiomatic constructs is a natural outgrowth of that expressiveness.

      Your example, despite using common words, is straightforward (i.e., not idiomatic), and if anything, is an example of the "clarity" advocated by the OP. By contrast, Perl's motto of TMTOWTDI advocates a very different approach.

    14. Re:xkcd relevance by NewbieProgrammerMan · · Score: 1

      So computing languages that try to avoid classic mathematical syntax are probably more a reflection of "the fear of math" rather than "the fear of computers". ... The real problem in both cases is widespread fear and ignorance.

      In general, I don't like fear and ignorance. I think we'd be better off as a species if we worked harder to eliminate it.

      But some days, like the days when I go looking for work, I really love the widespread fear and ignorance of math and computer science. These people will keep me in a job for the rest of my life as long as I don't mind cleaning up after those that like running with scissors.

      --
      [b.belong('us') for b in bases if b.owner() == 'you']
    15. Re:xkcd relevance by Anonymous Coward · · Score: 0

      Don't forget though that computers don't really understand mathematics. What computers do is closer to incrementing the gears on an old cash register. Bruce Mills put it better than I could:

      The mythos is that ‘x’ represents an integer.

      In reality, it does nothing of the kind. The common truth of the int datatype in many languages is that it is n-bit arithmetic, meaning that it is arithmetic modulo 2n . If we keep adding 1, we get back to 0. This is a perfectly respectable arithmetic itself, and can be used, if used carefully, to determine integer arithmetic results. But to say that int is integer arithmetic with bounds and overow conditions is to say that it is not integer arithmetic. Similarly, to say that float is real arithmetic, with approximation errors, is to say that it is not real arithmetic.

      My point is that the "clarity" required for programming is not just a clarity of logic, it's that plus intimate knowledge of the arbitrary workings and design of a machine. A good mechanic can spot trouble with a car simply by how it feels when he's driving it. That's a clarity of understanding but it's not something you get with mathematical rigor (alone).

    16. Re:xkcd relevance by owlstead · · Score: 1

      You are of course correct, which means I have to look at another word (I'm rather fluent in English, but I'm not a native speaker). Um, "logical" or "mathematical" might get closer. Non-natural. Ehm.

    17. Re:xkcd relevance by Tablizer · · Score: 1

      So computing languages that try to avoid classic mathematical syntax are probably more a reflection of "the fear of math" rather than "the fear of computers".

      Early experimental relational query languages were more math-like, but IBM managers appeared to favor a more "English-like" approach, thinking it would make it a better sale to other managers, and thus we are stuck with SQL. SQL is less re-composable and harder for DBA's to extend because of this.

      Perhaps it makes SQL better for non-programmers to learn, but programmers would be more productive under the math-like query languages in my opinion. Thus, SQL is a case where being "English like" backfired, or at least crimped programmers.

      Then again, it could be argued that relational databases would have never sold well-enough to gain momentum if they took the other approach.

  6. Interesting, yet exaggerated... by rdean400 · · Score: 5, Insightful

    The big thing I notice in their "competitive comparisons" is that they strive to make Java, C#, C++, and PHP as verbose as possible when they're creating what looks like it should be optimal Rev code.

    I wonder if they didn't compare themselves to Ruby or Python because they couldn't contrive examples that produce huge LOC differences?

    1. Re:Interesting, yet exaggerated... by arevos · · Score: 2, Insightful

      I wonder if they didn't compare themselves to Ruby or Python because they couldn't contrive examples that produce huge LOC differences?

      Probably. There's no difference in length between:

      get the last item of line 2 of URL url

      And:

      open(url).readlines[1].split(",").last

      I guess the former is easier to read, but languages that have a lot of "magic" in them tend to be pretty bad at scenarios the developers didn't think of. Which will inevitably turn out to be something you want to do.

    2. Re:Interesting, yet exaggerated... by Anonymous Coward · · Score: 1, Insightful

      They really do push it. Comments, unnecessary code, helper functions, unused namespace inclusions. Here is the result of two minutes refactoring of the C# code example they provide:

      class Program
      {
          static void Main(string[] args)
          {
              string[] t_quote_row = new System.Net.WebClient().DownloadString(@"http://ichart.finance.yahoo.com/table.csv?s=RBS.L").Split('\n')[1].Split(',');
              System.Console.WriteLine(t_quote_row[t_quote_row.Length - 1]);
          }
      }

      From 42 lines down to 8. Its obviously a contrived example but whatever, all I did was remove anything unnecessary. I could shave two more lines by moving the open brace to the line above on lines 1 and 3, and another line by not being pedantic about getting the last entry from the quote row (the original example code just indexes in with a magic number).

      I cant imagine coding using that language. It seem so imprecise, forced to make assumptions about what you want. The line of revTalk they provide to do the above work is:

          get the last item of line 2 of URL "http://ichart.finance.yahoo.com/table.csv?s=RBS.L"

      How does it know to treat the string as CSV? I can think of a number of ways it could easily guess this like checking the content encoding, but the point is that I can't immediately see that it is guessing. What if I want the last character in the string, or the string is tab (or some other character) delimited?

      Gives me the heebie jeebies just thinking about debugging it.

    3. Re:Interesting, yet exaggerated... by Anonymous Coward · · Score: 1, Informative

      curl http://ichart.finance.yahoo.com/table.csv?s=RBS.L | awk 'BEGIN {FS =","} {if (NR == 2) print $NF}'

      Not too shabby...

      It is also worth noting that the Rev code ('get the last item of line 2 of URL "..."')is fairly ambiguous and have to make several guesses about the returned contents: is it a text file at all? If not, what does "the last item of line 2" mean? If it is a text file are they then refering to "the last item of line 2" of the text source or its rendered result? If it is the rendered result then how do they determine what "the last item" is? In this case, what if the rendered CSV-text had used ";" or as the separator? Etc.

      BTW, awfully verbose "natural" programming languages have been around for quite some time: COBOL and AppleScript comes to mind...

    4. Re:Interesting, yet exaggerated... by Nahor · · Score: 2, Insightful

      There's no difference in length between:

      get the last item of line 2 of URL url

      And:

      open(url).readlines[1].split(",").last

      I wonder what the code becomes if the URL contains a list separated by ':' or a more complex data structure.

      With such an example, I can make an even better language. I'll call it dot. It has only one character: a period. Here is how it compares:

      .

      which in that verbose Revolution 4 language gives (approximately):

      get the item 42 of the line 3465 of the structure 3 that contains "foo" in the record 6 counting from 3 of the 38990nd [...rest cut to avoid the slashdot lame filter...]

      Now, my language does only one thing but it's unbeatable at it :)

    5. Re:Interesting, yet exaggerated... by Anonymous Coward · · Score: 0

      lol, and I thought ruby & python dumbed down programming...

    6. Re:Interesting, yet exaggerated... by arthur.gunn · · Score: 1

      Looking at the PHP example here, I'm sure they'd be able to contrive such an example:
              PHP vs. revTalk

      Just for interest though, here's a ruby version:
              Ruby

      10 lines - 42% less code. And we could get that down to 6 if we were pushing it.

    7. Re:Interesting, yet exaggerated... by MobyDisk · · Score: 1

      "get the last item of line 2 of URL ..."

      What the heck is an item and a line? To understand this example, I had to read the C#/Java code. That kind of dumb example would make me avoid this language entirely. This is worse than when Microsoft does their "make a database app in 3 clicks" demos where they have tons of contrived stuff setup, and they just run Visual Studio and drag something from point A to point B and pretend that was it.

    8. Re:Interesting, yet exaggerated... by Anonymous Coward · · Score: 0

      In your example, item needs to be defined elsewhere. E.g. What does the line contain, csv, tab-delimited, space separated? Whereas split() makes it pretty obvious.

    9. Re:Interesting, yet exaggerated... by arevos · · Score: 1

      In your example, item needs to be defined elsewhere. E.g. What does the line contain, csv, tab-delimited, space separated? Whereas split() makes it pretty obvious.

      I'm just took one of the examples on their page. Presumably their system is smart enough to work out the mimetype of the file, but I agree that it seems rather brittle and ambiguous.

    10. Re:Interesting, yet exaggerated... by Quantumstate · · Score: 1

      I decided to look at the php one properly. Their php code, which I had to type out manually because their pdf (2.3MB! for a single page) is used to contain a picture, doesn't work. There seem to be several bugs I fixed two then gave up since it was easier just to rewrite the damn thing. Secondly the php, even if it wasn't buggy, would produce different output to their revtalk code since the revtalk function returns a string of space separated words (I think, I can't run their code) whereas the php returns an associative array which they the concatenate into a comma separated string outside of the function.

      After a rewrite the php code was 16 lines after formatting with the same white space as their rev code (one empty line).

      http://pastebin.com/m152a1a0a

      I will admit that it is not very pretty code and I couldn't be bothered to comment it but I haven't used any tricks like sticking lots of functions onto one big line.

    11. Re:Interesting, yet exaggerated... by bbn · · Score: 1

      Scala code:

      val prohibitedWords=Set() ++ ("i is a about an and are as at be by com de en this for from" split " ")
      def commonWords(theWords: String) = theWords.replaceAll("(?i)[^a-z ]","").trim.split(" +").
              toList.remove(word => prohibitedWords contains word).
              foldLeft(Map[String,Int]()) { (map,word) => map + (word -> (map.getOrElse(word,0)+1)) }.
              toList.sort((a,b)=>a._2 > b._2).take(10).map(_._1).reduceLeft(_+" "+_)

      println(commonWords("This is some text. This is some text. Slash development costs."))

      7 lines including one blank line - 59% less code.

      And while the Scala code might look less readable to someone not known to Scala, I at least know what it does. I am not quite sure if the revTalk code will include "This" or not. I am also not sure what happens with the revTalk code since they have a loop going from 1 to 10 on an array that only has 6 elements - will it error? Will it output extra spaces?

  7. I could care less, it isn't truly FREE by Anonymous Coward · · Score: 1, Interesting

    Oh wow a proprietary software development system? It's a new world boys there are plenty of solutions out there and just because these guys have marketing dollars doesn't mean people will take them up on it.

    Unless it is open, it will die.

    Remember all those old proprietary platforms? They are all but dead. It is a new age, get used it.

    1. Re:I could care less, it isn't truly FREE by DAldredge · · Score: 2, Insightful

      .net appears to be doing rather well.

    2. Re:I could care less, it isn't truly FREE by sznupi · · Score: 2, Insightful

      ...which is largely due to external factors.

      (not saying .Net isn't nice, but ask yourself if it would do that well if it came from some small 3rd party dev)

      --
      One that hath name thou can not otter
    3. Re:I could care less, it isn't truly FREE by hairyfeet · · Score: 1

      But MSFT appears to be trying to open .NET one piece at a time. I find it kinda funny that most of the posts on that story were complaints, first folks complained that MSFT was locked down, and then they try to open parts up and get the "embrace, extend" bit thrown at them. Kinda damned if they do, damned if they don't in that regard.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    4. Re:I could care less, it isn't truly FREE by Anonymous Coward · · Score: 0

      go away miguel

          --the comicjk cocaine troll

  8. Its been being "dumbed down" since the start by jaymz2k4 · · Score: 2, Insightful

    The development of new languages and new ways of simplifying coding has been a part of the computer landscape since the whole thing began. You can argue that coding in Python is a form of "dumbed down" assembly. I wouldn't think of creating a webapp with assembly! Django has "dumbed down" much of the mundane parts I often have to create and dealing with forms and templating. But the one thing I have noticed is that no matter how easy "programming" gets there are still people that will just not "do it".

    I still can't see the masses suddenly deciding that they're going to program applications now. Hell, most of the people I know think conditional formatting in excel is just too much effort. I can see this just being used by actual programmers for users but I dont think it will see in a swath of uber-uber-amateur programmers all of a sudden.

    --
    jaymz
    1. Re:Its been being "dumbed down" since the start by azav · · Score: 1

      I'd mod you up if I could. Well said.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    2. Re:Its been being "dumbed down" since the start by sznupi · · Score: 1

      Hm, since there are certainly web frameworks for C++, you shouldn't be too surprised if you stumble once on one for asm ;)

      --
      One that hath name thou can not otter
  9. There's more than one way to do it. by wkitchen · · Score: 1

    You get what you want. Someone else gets what they want. What's to get bent out of shape over?

    1. Re:There's more than one way to do it. by altinos.com · · Score: 1

      We worry about when a bunch of non-programmers get hold of things like this, then say things like "It took me an hour to build this program, why do you guys take months to build yours?" Used to happen to me all the time with Microsoft Access, I'm sure that still happens all the time now. "I build this database in 10 minutes in Access, why does it take days in Oracle or SQL Server??"

  10. Little point in trying by 4D6963 · · Score: 5, Insightful

    Dumbing down programming can only get you so far towards the democratisation of programming : the most dumbed down programming language still requires a user whose mind can express algorithms. And of all the people who can express algorithms and would want to, few are limited by the commonly used languages, that is, if you have a mind made for creating algorithms, learning to use a programming language will be fairly trivial.

    --
    You just got troll'd!
    1. Re:Little point in trying by QRDeNameland · · Score: 3, Insightful

      I think one issue here is the concept of "dumbing down", which goes back to COBOL at least. PHBs have always had this idea that better tools will make it so that that people who have little talent or interest in programming (or as you say, can express algorithms) can write software. That, I think, will always be a pipe dream.

      However, the goal of "simplifying programming" will always be a valid and necessary one, just due to the nature of advancing technology. The trick is to adjust the goal from "helping people with little programming competence to write software" to "create tools that enable competent developers to be more productive and their work less tedious".

      --
      Momentarily, the need for the construction of new light will no longer exist.
  11. Quit complaining by pkbarbiedoll · · Score: 1

    Ok stop acting like Luddites and embrace the new economy. Programming is currently complicated and requires costly developers to write and maintain. In order to increase efficency, lower payroll, and satisfy shareholder demand, languages like runrev should be embraced by business.

    This innovation is no different than automation on the assembly line. The global economy has changed around you - it is time to recognize trends and retrain. Otherwise you may find yourself out of a job and career.

    /snark

    1. Re:Quit complaining by Anonymous Coward · · Score: 3, Insightful

      I hope they embrace this stuff like crazy. There's nothing better for our careers than lots of shitty code written by people who are just barely above monkeys in terms of intelligence.

      Why is that? Because they will fuck it up horribly. And then they will need real programmers to come in and clean up the mess. If you don't mind getting your hands dirty, there's a huge amount of work to be done.

      This is perhaps the best thing to hit the industry since outsourcing to India. My company has been fixing their fuckups for the past decade.

      It's entertaining to see them screw up. It's even better to see the outsourcing managers who have to come to us and admit that their "cost-saving" measures will now cost their companies 5x to 10x what it would have had they just done it properly and had real programmers write their code.

    2. Re:Quit complaining by gbjbaanb · · Score: 3, Insightful

      Unfortunately, that makes sense to managers only. Those of us at the coal face know that you can hire cheaper, less skilled programmers and let them loose with easy-to-use languages (eg Visual Basic) and you will get a monstrous mess that is impossible to maintain.

      If you make them use a reasonably difficult language, most of them will not bother becoming programmers. This a good thing.

      One other point that is never noted in these ideas to simplify programming and make programmers generic 'coding resources' is that a good, experienced, coder can do more work ( that is better quality) than half a dozen cheap, less skilled coders. This is never factored into management ideas of how you can outsource your coding and get the same quality for a tenth the price. This could be why a lot of outsourced contracts don't tend to last unless they're lost in a sea of big-corporate bureaucracy.

      Oh, and don;t forget that the more you chop and change programming languages, the less programmers you have who are experienced using them - you will get C programmers who have 40 years experience, you tend to get programmers who've "had a tinker" with languages like runrev.

    3. Re:Quit complaining by Anonymous Coward · · Score: 0

      Except that programming real non-trivial software can only get marginally easier by improving tools. The real difficulty is understanding and defining the problem and the exact solution.

      If you don't understand this you are the one who doesn't recognise the trend...

    4. Re:Quit complaining by MightyMartian · · Score: 1

      If that's the case, then the shareholders better get used to shitty software written by people with no experience and no discipline, which get more expensive and difficult to manage all the time. They should be ready for "cheap" in-house apps written by non-programmers to cost them progressively more as time goes by, until the cost outweighs what simply an initial investment in someone with experience and know-how would have cost.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    5. Re:Quit complaining by trouser · · Score: 1

      All my life, I have searched for a car that feels a certain way. Powerful like a gorilla, yet soft and yielding like a Nerf ball. Now, at last, I have found it.

      --
      Now wash your hands.
    6. Re:Quit complaining by azav · · Score: 1

      Why should someone make a language more difficult? Just to raise the bar to becoming a programmer?

      I agree that we do need people who really know how to program but does that have to be every programmer and does every language need to be difficult?

      Maybe televisions should have never done digital, so I can be an expert in learning how to tune the channel so that my business of channel tuning will stay healthy?

      You DO need experienced programmers, and you do need machine language and C/C++. The question is, "do you really need that in every case?"

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    7. Re:Quit complaining by mjwalshe · · Score: 1

      um not realy I can tell you havnt taken any real engineering classes :-) a production line for say a widget to go in a internal compustion engine is a simple thing - you can say ok if i buy a new machine tool that is X% better than the old one I can reduce the waste rate by Y% which corosponds to a saving of Z%. Which is what TQM etall are all about how ever it breaks down when you have complex systems - back in the day I worked on a RND project with the BSI looking at using formal methods in computing and the head of there software arm joked that to start with when aplying ISO 9000 they where a bit confused as to were to hang the defect tickets.

    8. Re:Quit complaining by Anonymous Coward · · Score: 0

      Why do you spell "anal probe" as c-a-r?

    9. Re:Quit complaining by hisstory+student · · Score: 1

      fewer
      the word you were needing to use is 'fewer'.
      ".., the less programmers you have who are .."
      should read
      ".., the fewer programmers you have who are ..".
      The general rule is, if you can count it/them, the correct word is 'fewer', not 'less'.

      Sorry. It's just a fetish and pet peeve with me.

      --
      Heard any good sigs lately?
    10. Re:Quit complaining by StuartHankins · · Score: 1

      Heh. As a software developer I've seen ungodly messes, contorted SQL, you name it. People seem to think that because they once wrote a Crystal report to display a simple recordset with totals that they're a "report writer" and put that on their resume. Training them (the ones which can be trained anyway) is expensive and often frustrating, because if they cared enough to invest significant amounts of time toward learning the language(s) and tool(s) they profess to know, I wouldn't have realized they were deficient. When hiring, though, you don't easily know who took the 24-hour cram course and who really knows it without asking some questions which require actual working knowledge.

      Things change so quickly in our industry that we all know people who were certified in Novell -- maybe the shining stars at that point in their careers -- but stopped learning at some point along the road and are now middle managers. They oversee a team which uses a language they don't understand and there is pressure to develop quickly for fear their position in the market will be eroded. So someone gets the idea to send an employee to a weekend seminar in some new language, or someone is hired with little programming experience. At first it is a great idea and a certain amount of prototyping is helpful.

      However there needs to be a point where someone isn't just the VBA macro writer of the local branch office or the guru of Access but understands the way programming and debugging is performed, so that a successful product is produced. It takes longer, as they say, to code when you take care to use meaningful indentation and variable names, when you put comments in your code etc -- and it is totally faster in the short term to put out crap code in .NET or whatever language you prefer -- but the discipline you use pays off in the end. It is a disappointment when your weekend Excel macro project results in an hour of downtime because you forgot to include some logic. It's much worse when your spreadsheet results in an employee being fired or the branch being closed because the company relied on your data & logic and you failed. A more disciplined and experienced programmer has these things -- proper documentation, proper testing, and responsibility of data validation to offer. A higher bar to entry, in those cases, may result in fewer bad decisions. By making these languages more difficult for the average Joe to comprehend you get only the more intelligent people working on the problems.

      Case in point, I recently had a .NET developer ask me if his query was being delayed by daily pumps. His query cost was over 590. He didn't understand why testing the execution plan was necessary and why he needed to do it using a copy of production data rather than the few hundred rows in his test tables. By working with him and optimizing his query we got the cost down to 8. This person doesn't have what it takes to do this long-term (he says he's been doing SQL work since 1992!) Anon for obv reasons.

    11. Re:Quit complaining by StuartHankins · · Score: 1

      oops clicked too quickly

    12. Re:Quit complaining by azav · · Score: 1

      And I've seen two programmers in different companies use 15 page case statements with conditionals within the case statements. It didn't matter if the person was using a verbose language or a sparse language; they didn't understand the concept of wrapper functions, delegation and proper class structure for organization.

      One was unfixable due to time constraints and the other ended up being replaced by 5 lines of command routing code, and all the conditional functions moved into appropriate classes.

      In these cases, it didn't matter if the language was verbose or not, the programmers simply didn't think there was anything wrong with just making the data organization flat and case statement bigger.

      But, in the second incident of this nightmare, where the language was verbose, the problem was much easier to fix, because it was at least easier to understand the code as it was more self documenting.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    13. Re:Quit complaining by gbjbaanb · · Score: 1

      ...the correct word is 'fewer', not 'less'. Sorry. It's just a fetish and pet peeve with me.

      man, unless there's a busty girl whipping you ever time you spell something wrong, you need a better fetish :)

    14. Re:Quit complaining by Tablizer · · Score: 1

      a good, experienced, coder can do more work ( that is better quality) than half a dozen cheap, less skilled coders. This is never factored into management ideas of how you can outsource your coding and get the same quality for a tenth the price.

      One of the problems is understanding the domain, or "local business culture". If you split programmers up into small teams or individuals that are embedded in and get to know a given department, then they will have a better feel for solving that department's needs. They may not be the smartest from a technical perspective, but they know what users need because they've absorbed the business.

      There's always an on-going battle between centralization and decentralization at every org and shop. There's no clear winner yet. The best techies often do the "wrong thing better", which obviously isn't the ideal. There is value to understanding what the users need, but whether that overrides technical ability...
             

  12. Unreadable site by Brian+Gordon · · Score: 1

    Whose idea was it to put light peach text on a white background?

    1. Re:Unreadable site by Yvan256 · · Score: 1

      That's because they rushed the release. The next update will replace the white background with a ponies wallpaper.

  13. It actually doesn't look that good by thetoadwarrior · · Score: 3, Interesting

    Mind you I only skimmed a couple pages in the tutorial but it's just a programming language adding more words and more typing because it may do something like spell out add rather than using +. That may let idiots grasp programming a bit more than they would have before but programming as it is does not require a degree in rocket science. It just requires that you actually have enthusiasm for rather than thinking it's just a way to make lots of money.

    Not everyone is a programmer just as not everyone is a mechanic, painter, etc. I don't think we have a lack of programmers but a lack of dirt cheap programmers and companies will do whatever they can to lower wages. Perhaps they'd be better off make better programs to earn more profits.

    1. Re:It actually doesn't look that good by MichaelSmith · · Score: 1

      Back when I was at college and I had to write some cobol a friend of mine who was a biology student came past. She saw the code and commented on how easy it was to read. Maybe this thing is a bit like cobol.

    2. Re:It actually doesn't look that good by Monkeedude1212 · · Score: 1

      I went through a couple pages of the tutorial, and I agree, it doesn't really make anything EASIER. As a programmer it sure isn't easier to Read then something Like Visual basic, or even Java. I find myself trying to figure out some of their nuances more then I am trying to follow their code, for example, they use Repeat instead of While. Were while statements one of the things that confused most people?

      And Essentially, yes,
      "put item 1 of allItems into myArray"

      IS easier to read, however if you don't know how arrays work it won't do you any good. And essentially if you DO know how Arrays work, then

      myArray.Add(allItems[1])

      Shouldn't confuse you at all. Essentially its all syntax, and once you learned one 3rd generation language you've basically learned them all, because an If is and If and an Else is an Else. No matter how many brackets you need, it'll still do the same thing.

      Now, if you find the Syntax in Java scary - you should take a look at some Lisp.

    3. Re:It actually doesn't look that good by azav · · Score: 1

      But isn't "myArray.Add(allItems[1])" visually more confusing?

      Illustrated a little, it might look like this:

      objectToDoSomethingTo.functionInObject(usingAnotherArrayVariable[itemNumberOfItemInArray])

      In the majority of languages today, this is the way things work but doesn't it seem really backasswards when compared to the simple and verbose "put item 1 of allItems into myArray".

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    4. Re:It actually doesn't look that good by Acapulco · · Score: 1

      Now, if you find the Syntax in Java scary - you should take a look at some Lisp.

      Or perl...?

      --
      Slashdot. Unreadable news to annoy nerds. - wonkey_monkey
    5. Re:It actually doesn't look that good by Anonymous Coward · · Score: 0

      It does seem strange. If someone doesn't understand that x = 1 + 2 means that 1 + 2 will stored in the variable x (or if they don't understand the sign '+'), they should probably go back to elementary school before they start programming. Seriously, any average 8-year old could probably tell you what happens in the expression "x = 1 + 2", and most will probably understand what happens when you use that x in another operation.

    6. Re:It actually doesn't look that good by youn · · Score: 1

      (((((( (lisp) (can be fun) (as long) (as (you)) (keep track of (parenthesis)) )))))))

      ((-: :-))

      using redundant->ways->toDo->things && obscure->syntax;
      @perl = s/parenthesis/|regexp/

      maybe scary... but looks good though :)

      --
      Never antropomorphize computers, they do not like that :p
    7. Re:It actually doesn't look that good by Anonymous Coward · · Score: 0

      Not really. Languages today are consistent in that if you are doing something to objectX then they start with objectX. This makes a lot of sense, especially if objectX is encapsulating its data and providing various methods to access / modify that data.

      So if I add something to objectX I use:
      objectX.add(blah);

      and if I want to clear objectX I use:
      objectX.clear();

      and if I want to sort objectX I use:
      objectX.sort();

      etc.

      But in this language I first have to use the excessively verbose Put syntax for setting something, and then a different syntax for activating a function. And probably one of the most easily understand and least verbose standards across a ton of programing languages is using '=' for variable assignment.

      Is 'put 5 in myvar' really more clear than 'myvar = 5'? Rev4 seems to move the most important part (the object / variable being modified) to the least significant position by placing it at the end of the line.

    8. Re:It actually doesn't look that good by chthon · · Score: 1

      (vector-push my-array (aref all-items 1))

    9. Re:It actually doesn't look that good by chthon · · Score: 1

      push @my_array, $all_items[1];

  14. Certainly not English by Anonymous Coward · · Score: 1, Insightful

    Natural languages are full of ambiguities, so these "natural language programming environments" always use a more formal syntax (and semantic) and only look superficially like a natural language. Until you can actually talk to a computer (and the computer can take all the context into account), programming in such a language irritates people to no end when they stumble upon one of the differences between the programming language and the natural language it imitates.

    Programming is the act of understanding and structuring a problem. The coding that follows is practically trivial compared to that first step. There's certainly a need for more programmers, because more and more is automated and someone has to write that software, but please don't create the impression that you can eliminate thinking from programming. Fixing bad code costs more than writing good code.

    1. Re:Certainly not English by gmuslera · · Score: 1

      What natural language you mean to use instead? Babel 17? Learning that language have nasty side effects.

      Probably there is a language on is simple to explain even to a computer how to solve a particular complex problem, but the language probably will have to be different for another kind of complex problem.

  15. AppleScript? by BoxedFlame · · Score: 1

    Is it just me or does their language look just like AppleScript?

    And how can you claim that:
    set foo to bar on baz
    is "less code" than
    bar.foo = baz
    ? 90% less? Yea right.

    1. Re:AppleScript? by johanatan · · Score: 1

      Maybe it is a functional language. They make the same claim. The extra few characters for English syntax are far outweighed by the structural gains. [Of course, I know this isn't true as even most o-o/imperative programmers don't really understand the functional model of computing].

    2. Re:AppleScript? by MasterPatricko · · Score: 1

      From what I see rev4 is certainly not functional programming. Functional programming is approaching programming from a mathematical point of view. Certain problems - especially ones that can be isolated to a mathematical definition - are much easier to solve using functional programming rather than imperative programming. Other problems - especially when interfaces to the user and other programs are needed - become a lot harder. So I'd be interested to hear what functional programming language is claiming a 90% reduction in code in all cases ...

      --
      I'd tell a UDP joke, but you may not get it. I'd tell a TCP joke, but I'd have to keep repeating it until you got it.
    3. Re:AppleScript? by Anonymous Coward · · Score: 0

      If you have a string you want to extract the first 3 characters from the second word on the 5th line and display it in an alert box, how many lines of code do you need to write?

      in rev this is

      answer char 1 to 3 of word 2 of line 5 of tString

      is that less code than in your preferred language?

    4. Re:AppleScript? by GrahamCox · · Score: 1

      Is it just me or does their language look just like AppleScript?

      Applescript and the Rev's incarnation of Hypertalk have the same roots - Hypercard. So They probably do look and work similarly.

    5. Re:AppleScript? by Blakey+Rat · · Score: 1

      Since they both come from HyperTalk, I'd be surprised if it *didn't* look like AppleScript.

    6. Re:AppleScript? by johanatan · · Score: 1

      They don't claim it for all cases. Of course, there are adversarial cases for every approach. But, section 3.3 of this page claims that most programs are shorter by a factor of 2 to 10. Higher-order programming is just more tight (and ultimately maintainable)--that much is undeniable (and when programs are written correctly in o-o/imperative languages [i.e., when they are well-factored] they start to approach the functional style). It is much better in my opinion to go straight to FP and not rely on such crutches to try to get you there [especially when even in best case, you can only approach it--worst case is much worse!]. [And, btw, I do the functional style of programming in C++ and there's a lot more syntax around such than with a language like F# or Haskell. It's much better to just go with a language which was built with FP as the emphasis].

      And, I'd be curious to see how you think that user interfaces or calling other programs are problems for functional languages though. I think the difference in conciseness from one program to the next has more to do with its factorability.

  16. Recursive acronym for a dumbed down language by Skapare · · Score: 3, Funny

    Here is my suggestion for a recursive acronym name for the next dumbed down programming language: Imbecile Means Beginner's Easily Coded Interactive Language Environment

    --
    now we need to go OSS in diesel cars
  17. Submarine article by bjourne · · Score: 4, Insightful

    Paul Graham wrote a very informative article about "news stories" like this one many years ago. And congrats to the company behind RunRev, it is not that often /. runs slashvertizements for costly commerical software no one has ever heard of.

    1. Re:Submarine article by mhelander · · Score: 1

      Thank you, I was beginning to wonder if no-one would point this out.

    2. Re:Submarine article by Anonymous Coward · · Score: 0

      That's a great article, and I have to say that I love most of what Graham has written over the years. But it's heartbreaking to be reminded of what everyone thought blogging was going to be back then. A great scythe separating the journalistic wheat from PR company chaff. Honest people writing for the love of it.

      As it turns out, the technology has nothing to do with the percentage of people who are in it for the love of it and the people who are in it for the money. Blogs have their own special kind of folly: linkbait. Example: http://www.smashingmagazine.com/

      It's perhaps one of the most popular design blogs. Why? Is it because of all of the insightful, original content? Hell no. It's because each post is of the form (50 greatest X), and that's the stuff that everyone's tweeting and digging and socially bookmarking.

      The problem is not "structural" because the problem is not with print. The problem is not lazy journalists or the pace of news media. The problem is that people are stupid, and they're willing to pay you for the privilege of remaining that way. It was great when new media was bleeding edge. As I'm sure it was when the web was young. As I'm sure it was when USENET was young. Eventually middle America gets on board. Once supply caught up with demand, even blogs ended up being nothing special, and once again you have to wade through tons of tripe to find a well-written article. Google's not going to help you when their algorithm is based on links and most people link to garbage.

    3. Re:Submarine article by KlaymenDK · · Score: 1

      While you're at Paul Graham's, the article "The Hundred-Year Language" seems rather pertinent.
      Apart from providing that one link, I have nothing more to add to this entire Slashdot story.

    4. Re:Submarine article by Bob9113 · · Score: 1

      Paul Graham wrote a very informative article about "news stories" like this one many years ago.

      Fun! Your post led me to actually read the piece. It is awesome. Let's break it down.

      Does 10x faster development dumb down programming?

      10x faster -- catches bean counters eyes.

      dumb down programming -- establishes the opposition as emotionally based.

      Posted by Adrian Bridgwater

      Fair enough. Written by Runtime Revolution.

      If you're in the business of reviewing software application development news, which coincidentally I am, then tenfold programming productivity claims tend to either raise my eyebrows or raise my hackles in equal measure.

      I am an expert. This is my business. And I am objective. I don't just blindly swallow this snake oil. I frequently get angry (for example; if they don't pay me to post a puff piece).

      Software development company Runtime Revolution Ltd has this week introduced its Revolution 4.0 product for application and web development - and it's available in a free version too.

      blah blah blah, and you can get it for free.

      This outfit doesn't seem to mess about when it comes to making big claims. The company's product uses an English syntax that requires (and I quote) '90-per cent less code than traditional languages'. I suppose that adds up, 90 per cent less code equates to ten times faster. But it is of any substance?

      See? It's simple math. 90% less code equals ten times faster. Any idiot (particularly our target idiots) could understand this.

      Runtime Revolution says that its Rev programming language descends from natural-language technologies such as Apple's HyperCard and, "Empowers people who would never have attempted programming to create successful applications," and that this, "Enables software construction for everyone."

      It started at Apple! Apple! The company that makes the Jesus Phone! And it empowers and enables!

      Oooh, sounds dangerous doesn't it? Surely not everyone has the mind of a software programmer and the algorithmic logic that the application developer has command of is the foundation of the creativity and power that they themselves wield.

      But those arrogant software engineers will claim that you need logic and thought. They don't think you are as smart as them. They think you are stupid. And they are the only ones who will be claiming you can't do this.

      Of course I'm being deliberately difficult here,...

      I am hard bitten and critical. I am being tough on them. I am not playing slow pitch softball, or merely posting a piece crafted by their PR department to look as though it was a personal blog post.

      there are instances in modern business when a simple application may be all that's needed and hiring a full-blown development professional might be out of budgetary limits....

      Those arrogant software engineers claim this stuff is hard, but you already know what you want, and it is simple. And they're so expensive -- why they cost nearly half what a middle manager with an associates degree costs.

      Further, there are arguments for creating customised tools inside the business by the people that will use them....

      You know what you want, and those damned software engineers refuse to give it to you even though it is easy.

      I know these arguments will not water with requirements management gurus who already have a hard enough time getting customers to calm down and stop asking for stupid functionalities, but there you go.

      They don't give you what you want because they are arrogant and refuse to listen to you. It has nothing to do with whether it is possible, only their arrogance and disobedience.

      "The last two years have seen the most impressive growth in our business, pointing to a correlation between a tough global economy and the resourcefulness of professionals who need to do more with less," said Kevin Miller, RunRev CEO.

      You are resourceful and ne

  18. Too many keywords by Frans+Faase · · Score: 1

    With a language with so many keywords, there are almost no valid variable names left to be used. The list is way too long. Even scrolling through the list takes some time. To me it seems more than half of the keywords are used in less than 1% of the functions. Finding the right keyword for calling some function is going to take a long time. It seems to me that this is the wrong way to solve the programming problem. I strongly doubt whether the claims that this environment save you money are based on solid facts.

  19. Underhanded Way to Increase Comments in Code by reporter · · Score: 5, Insightful
    This progression toward using English words and syntax to program a computer is less about dumbing down code and more about encouraging people to document their code.

    Ideally, a programmer should document each section of code by writing a block of comments explaining (1) why the code is used and (2) how the code works -- in plain English. However, given the intense pressure to produce code by an unreasonable deadline (imposed by brutal managers risking a bullet through their head), the first thing that is sacrificed is comments. Not writing comments saves several minutes per section of code and -- in total -- saves days of work over the course of the project. In other words, not writing comments means that an impossible deadline becomes slightly more possible.

    A programming language that uses mostly English words and syntax is essentially an environment for self-documentating code: the holy grail of brutal managers everywhere. However, this self-documentation addresses only "how the code works". The programmer must still write comments explaining "why the code is used". Still, getting half of a loaf is better than getting nothing at all.

    1. Re:Underhanded Way to Increase Comments in Code by Anonymous Coward · · Score: 0

      The only thing a natural language programming environment helps with is fear of symbols. Self documenting code can be written in any high level programming language. The key is keeping the code readable, instead of trying to avoid a formal syntax, because that can't be done. There is a certain amount of information that people can hold in visual perception at the same time and modern languages are pretty good at neither exceeding that amount for common structures nor making structures so expressive that they are no longer readable at a fluid speed.

    2. Re:Underhanded Way to Increase Comments in Code by vadim_t · · Score: 4, Insightful

      Ideally, a programmer should document each section of code by writing a block of comments explaining (1) why the code is used and (2) how the code works -- in plain English.

      Yes, but how the code works should be pretty obvious from the code itself. The "how" you may want to explain is the overall algorithm, and that won't appear in the code on its own no matter what language you use. What will appear is a (possibly flawed or misused) implementation of it.

      What you may need to describe is what the code is trying to accomplish, not what it's actually doing. A comment of "This code calculates the square root of the sum of the squares of the differences between between points X and Y" on "sqrt((P1.X - P2.X)^2 + (P1.Y-P2.Y)^2)" isn't terribly helpful.

      Now an explanation of that it calculates the distance between points P1 and P2 using the pythagorean theorem would be more helpful, and an explanation of what's that used for would be better still. But there's no way more verbose code will give you that. Code is just what the program is doing, not what it should be doing, what it's trying to accomplish, and why it needs to do it.

      A programming language that uses mostly English words and syntax is essentially an environment for self-documentating code

      Self documenting code isn't about turning "x++" into "add one to x". That's more verbose, but doesn't explain anything extra. Self-documenting code is about writing something like:

      input_position(&start_pos);
      input_position(&end_pos);
      float distance = get_distance(&start_pos, &end_pos);
      display_distance(distance);

      Where the naming and flow make it perfectly clear what the program is doing without any further explanations.

    3. Re:Underhanded Way to Increase Comments in Code by azav · · Score: 1

      YES. YES. YES. YES.

      The code (pretty much) documents itself. Less deciphering what the programmer really meant, especially when you are the programmer and you're looking at your code six months later.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    4. Re:Underhanded Way to Increase Comments in Code by maraist · · Score: 1

      I don't think you're right.. The intent in this language from TFA seemed to be to reduce the gap between a person that doesn't know how to code and someone able to do useful coding. And since this wasn't easily done in the past (such as COBOL), I imagine that there are major hurdles with producing a concise language that's intuitive to American Slang speakers. Increasing the verbosity doesn't increase clarity of code - the self-documenting feature you speak of. Is "for(int x =0; x < maxX; x++) { ... }" any less readible than "loop from x until maxX step 1 begin ... end." Once you've internalized the syntax (which IS the knowledge gap of casual/hobbiest would-be programmers), then this doesn't give you any greater understanding of what the code is doing.

      Now built in expressive capabilities:

      @out = sort { $a cmp $b } grep { $_ =~ /\d{2}/ } map { $_[0] } @in;

      or

      set3 = set1.disjointSet(set2)

      DRAMATICALLY increase readability AND reduce bugs. But many such things can be handled by standardized libraries (even if they're only standard to the company you work for). Again, the ability to internalize the language is essential no matter what language it is, so I reject the notion of dumbing down a language purely to entice more comers. It only suits to insult those willing and able to internalize languages that are actually function/useful/productive.

      --
      -Michael
    5. Re:Underhanded Way to Increase Comments in Code by jelizondo · · Score: 1

      In other words, not writing comments means that an impossible deadline becomes slightly more possible.

      In other words, not writing comments means that an impossible deadline becomes slightly more^[^[^[^[ less impossible.

      There, I fixed that for you!

      --
      Be very, very careful what you put into that head, because you will never, ever get it out. - Cardinal Wolsey
    6. Re:Underhanded Way to Increase Comments in Code by jhol13 · · Score: 1

      I think you miss the point entirely.

      The idea is:
              distance = sqrt(...); // Calculate distance

      You really cannot turn every one-liner into separate function. Really.

      P.S. Distance calculation is not very good example, people will start to "think about the objects".

    7. Re:Underhanded Way to Increase Comments in Code by jhol13 · · Score: 1

      increase readability AND reduce bugs

      Does it? You have to write the function "disjointSet" somewhere, right? If the implementation is identical to the pseudo-perl above, why would it be any better? The only thing the first one is missing a comment "Calculate disjoint set".

      Making functions of hard-to-read stuff does not guarantee anything. It can be better (same function used everywhere instead of copy-paste) but it can be worse (single line implementation hidden and used only once).

    8. Re:Underhanded Way to Increase Comments in Code by GigaplexNZ · · Score: 1

      This progression toward using English words and syntax to program a computer is less about dumbing down code and more about encouraging people to document their code.
      Ideally, a programmer should document each section of code by writing a block of comments explaining (1) why the code is used and (2) how the code works -- in plain English

      Why English? Programmers come from other nationalities as well and a programming office in France may choose to use French to document their code, name variables and functions etc. Making a computer language more like English might arguably make it easier for English speaking end users to start programming, but makes it harder for non-English speakers. Ideally, programming languages should be "human language" agnostic without being totally foreign (somewhat non-trivial to do). Totally verbose English is in my opinion the wrong way to go.

    9. Re:Underhanded Way to Increase Comments in Code by GigaplexNZ · · Score: 2, Insightful

      The calculate distance comment is completely redundant as the variable that it is being assigned to is already named distance. Unless, of course, the intention was to state that it was in fact calculated instead of magically pulling a number out of a hat. You don't need one liner calculations to be commented to state their intentions if the variable names are chosen properly (which is what self documenting code is largely about).

    10. Re:Underhanded Way to Increase Comments in Code by Anonymous Coward · · Score: 0

      Literal programming for the win. Haskell is one language that encourages this.

    11. Re:Underhanded Way to Increase Comments in Code by julesh · · Score: 2, Funny

      You really cannot turn every one-liner into separate function. Really.

      Why not?

    12. Re:Underhanded Way to Increase Comments in Code by YourExperiment · · Score: 1

      Inform 7 does something similar. It's a highly domain specific language, designed solely for authoring interactive fiction, but it too uses a natural-language type syntax.

      Opinion is divided over how successful the language is. It certainly seems to encourage some people who would never otherwise have tried programming to give it a go. It also results in some very readable code. For expressing complex algorithms, however, its effectiveness is more debatable.

    13. Re:Underhanded Way to Increase Comments in Code by Bert64 · · Score: 1

      The thing is, the vast majority of computers run in english...
      A lot of applications are simply not available with non english language sets, and when they are the non english versions don't quite work right, dialogs are usually sized for the english text and the non english text doesn't quite fit properly, and the translation is often incomplete in that you still get occasional english words or phrases popping up, especially error messages.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    14. Re:Underhanded Way to Increase Comments in Code by GigaplexNZ · · Score: 1

      While you are correct, it doesn't give us the excuse to essentially lock ourselves even deeper into the problem by making the underlying programming environments inaccessible to other localisations.

    15. Re:Underhanded Way to Increase Comments in Code by asc99c · · Score: 1

      To guess at the GPs intention, he's giving a trivial but universally understandable example of self documenting code. In real code, the functions will generally be more complex than this. Here's some real code from the order manager of a warehouse, but to understand it as well compared to the simple distance example, you need to know what all the elements are e.g. AbandonVolumetrics probably doesn't sound like a great name!

          AssignDUsToChutes();
          BalanceSorterLoad();
          RecalcOrderQueue();
          ReleaseOrders();
          FinishDUs();
          AbandonUnpickables();
          AbandonVolumetrics();

      At lower levels the code does look more like your example: /* remove this TM from the list - we've got to sort it again anyway */
              TmList[ 0 ] = TmList[ TmListSize - 1 ];
              TmListSize--;

      I'm not going to write a nicely named function at that level because a one line comment is easier.

    16. Re:Underhanded Way to Increase Comments in Code by jhol13 · · Score: 1

      I sincerely hope you really do not use global variables.

      (sure they have their places, but ...)

    17. Re:Underhanded Way to Increase Comments in Code by asc99c · · Score: 1

      I knew that would come up!

      Firstly, most of these functions are accessing the database and are fairly self contained. For instance, RecalcOrderQueue checks the orders and updates the priorities of the outstanding orders in the database. Then ReleaseOrders makes a sorted list of outstanding orders from the database, and releases them.

      Secondly it's plain old C, which removes a lot of options for avoiding them - it's much more often the cleanest solution compared to OO languages, so there are quite a lot of them.

    18. Re:Underhanded Way to Increase Comments in Code by asc99c · · Score: 1

      Thirdly, what is so wrong with global variables.  I think a lot of it is dogma.  A one line comment by the variable can say where it's used.  I remember my coding style kind of changed overnight when I saw someone else's code which threw a lot of dogma out the window and was much easier to deal with as a result.  The main ones were globals, breaks, continues and returns, and not using variables where it possibly should.

      In theory it's hideous code littered with breaks, continues and returns, but somehow it's really readable to me:

      for( each stock of product )
      {
        if stock state is not stored
          continue

        if stock is held
          continue

        if stock already reserved
          continue

        if stock in ideal location
          return stock // best we're going to do

        // ok but not perfect - remember for later
        add stock to list
      }

      For many years I would have said that was terrible.  But after 7 years doing warehouse systems, I've seen different people writing this code in all sorts of ways and the supposedly horrible way is by far the best I've seen.  But horses for courses.  If you've taken a lock out at the top of the loop, you've got to drop the lock before returning etc, so then the single point of return rule does tend to simplify things for you.

    19. Re:Underhanded Way to Increase Comments in Code by wondershit · · Score: 1

      However, this self-documentation addresses only "how the code works". The programmer must still write comments explaining "why the code is used".

      This should be rare. Ideally you document the API both internal and external. Actually some people think internal functions need not be documented but it might depend on the context. Anyway this documentation defines the contract a certain function fulfills. Now somebody calls this function. What should be the "why"? Well, because I want the result of that function, duh.

      The "why" is only necessary if you write something that seems at first glance counterintuitive, superfluous, wrong, illogical etc. Maybe it wasn't even easy to figure out because it just seems not right. So you write a comment why you did it in order to avoid someone "correcting" it.

    20. Re:Underhanded Way to Increase Comments in Code by jgrahn · · Score: 1

      This progression toward using English words and syntax to program a computer is less about dumbing down code and more about encouraging people to document their code.

      Where do you see such a progression? A proprietary language noone would have heard of unless ZDNet had decided to make fun of it? All new languages I've seen try to go for clarity, but *never* by trying to be like a natural language.

      Ideally, a programmer should document each section of code by writing a block of comments explaining (1) why the code is used and (2) how the code works -- in plain English.

      That's terrible advice, IMO. What's a "section of code" anyway? We started doing structured programming in the 1960s -- so we can document functions or classes, not "pages of assembly code" or "punchcards" or whatever.

      The programmer must still write comments explaining "why the code is used".

      That's the only fragment of your posting I agree with. However, I think that's usually the user documentation, or maybe an architecture document (aka "README file") written by the programmer and stored with the source code.

    21. Re:Underhanded Way to Increase Comments in Code by Anonymous Coward · · Score: 0

      #define happy idiot

    22. Re:Underhanded Way to Increase Comments in Code by jhol13 · · Score: 1

      What is wrong with global variables?

      1. There is only hidden side effects
      2. There can be only one of each, when you need two instances ... you need to duplicate all of them (see #1) make arrays or ...[1]
      3. They are not thread safe
      4. You do not know what variables are "live" not which are accessed at any point - without reading all the functions through. This slows down the development, increases hard to find bugs, etc.

      A comment by the variable really cannot say where it is used - you cannot rely someone who accesses the variable in "far" code place will update the comment. Grepping for usage is so fun.

      [1] Give up and whack them into structure(s) and pass the pointer(s).

    23. Re:Underhanded Way to Increase Comments in Code by Anonymous Coward · · Score: 0

      sub x { $_ = shift(@_); tr/ ?Whnoty/a.Beusec/; return $_; }

      (I'm not actually any good at perl :( )

    24. Re:Underhanded Way to Increase Comments in Code by Wildclaw · · Score: 1

      Why English? Programmers come from other nationalities as well and a programming office in France may choose to use French to document their code, name variables and functions etc.

      Because English is the language of programming. It is a simple matter of naming convention. Programming libraries use English for methods and properties, so for consistency you use English for your own variables and functions also. And when you do that, you can just as well use English for comments also.

      As someone working in a non-English country I can say that I have never seen non-English variables used. I have seen comments written in my own language, but it is the exception rather than the rule. Of course, I can't speak for how it works in a country like France. But I would be surprised if it was much different. Knowing English well is simply something that makes you a better programmer, as it increases your access to reference material ten fold if not more.

    25. Re:Underhanded Way to Increase Comments in Code by Anonymous Coward · · Score: 0

      ... but how the code works should be pretty obvious from the code itself.

      In theory. Sometimes in practice. Then of course there's code written by the tard who thinks the more you fit on a line the better the compiler can optimize it, who loves iif statements and doubly so if multiply nested, and who has an aversion to sensible naming and is unable to spell.

    26. Re:Underhanded Way to Increase Comments in Code by asc99c · · Score: 1

      The thing is I agree with you theoretically, but not in practice - on a project trying to get stuff done effectively, in minimal time, in code unlikely to be heavily re-used, a lot of the reasons don't apply. On Joel on Software, there's a good article about the kind of development you're doing, and he says a lot of his advice applies mainly to developers of boxed software.

      In a similar vein, I'd say this advice only applies to the sort of one-off custom developments I'm usually working on. Code that's got a specific purpose, is unlikely to be reused with a different purpose, and relatively unlikely to be changed significantly.

      For my uses, point 2 very rarely happens without me knowing it right from the start. That's just an argument to refactor the 2% of cases where it occurs. Point 3 is irrelevant since I'm writing multi-process, not multi-threaded apps - and I doubt that will change. 1 and 4 are theoretically true, but rarely seem to happen much. Generally, there just isn't any reason to update the variable in some random bit of code.

      For example there is a global variable for the current logged in user for the process. In theory, any random bit of code could set the current user to something invalid. But why would anyone write that code?

      I could make it not a global, and either write get and set functions for it or pass it around the stack as needed - but it would be extra work to guard against something that just never really happens in the real world.

      But in an admission of guilt, I do have vim set up to map Ctrl-F to grep for the word under the cursor just in case :)

    27. Re:Underhanded Way to Increase Comments in Code by ka9cql · · Score: 1

      A programming language that uses mostly English words and syntax is essentially an environment for self-documentating code: the holy grail of brutal managers everywhere.

      How come COBOL hasn't "saved the slaves", if an almost-English programming language/syntax is so great?

  20. Marketing Fluff by Anonymous Coward · · Score: 0

    Please stop sending marketing fluff in as if it is news.
    The related article and the supposed replies on it have been constructed as a media release for this companies programming product.

    I could argue a number of points about this article and the underlying software.

    But what is the point? To help market this product for a company that wants to do viral marketing?

    No thank you.

    If you agree: mark me up but please don't reply/add to this.

  21. Time to read "No Silver Bullet" again by turing_m · · Score: 5, Informative
    --
    If I have seen further it is by stealing the Intellectual Property of giants.
  22. Rev4 syntax by ickleberry · · Score: 2, Insightful

    is it just me or does an ordinary 'easy' programming language like PHP, VB or python seem much easier to work with? the syntax of rev4 seems far too verbose, not nearly enough parenthesis.

    also if you understand how the machine works is there any real need to program in 'plain english'? the syntax doesn't quite make sense to me like other languages would. for example it seems more logical to have a loop to move something along by a tiny amount and then wait a bit rather than telling it to move a thing from one side to the other "in 5 seconds". with plain english you also end up with stuff that has multiple equally valid meanings

    i have nothing against making programming easier, just don't think this is the right way to go about it. a good IDE with syntax highlighting and prompting features like VB and a good set of libraries with decent error handling is better than any of this plain english stuff that introduces mostly redundant keywords for the sake of having plain english

    1. Re:Rev4 syntax by Monkeedude1212 · · Score: 1

      not nearly enough parenthesis.

      Pretty sure thats what they were going for, but I agree with you.

      It doesn't matter that you don't have to use any Brackets when you use an Array with Rev4. If you know how Arrays work you are used to calling their functions, then it makes MORE sense to use the

      Arrayname.Function(variables)

      syntax every other language uses instead of their

      Perform this Function with Arrayname using variables

      Syntax that they use in Rev4. I just don't like it, it makes it LESS readable to anyone who knows how to program, and I don't really see anyone wanting to start programming picking up a new language that isn't broadly used (Like C++ or Java or VB)

    2. Re:Rev4 syntax by Nerdfest · · Score: 1

      I'm not even sure the language is that relevant in most cases. Bad programmers will write bad code in any language ... and most people, especially your 'average Joes' are bad programmers. The bad code will almost always be there, some languages just make it easier to spot and fix. Some languages put up enough of a barrier that most non-professionals don't try to use it. This is not necessarily a bad thing.

    3. Re:Rev4 syntax by azav · · Score: 1

      To your main point, yes. Yes it is.

      Easier, that is.

      Why do you feel the need for parenthesis? I find the curly brackets and parens more cumbersome then they are worth in many cases.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    4. Re:Rev4 syntax by andrew554 · · Score: 0

      Oddly yes, it is easy to program with, at least going by my experience with HyperTalk (HyperCard scripting language) 20 years ago.

      I’m a decent programmer, and was then too, but actually the English-like scripting language was a joy to use—at least for the things I used HyperCard for.

      I’m quite willing to believe that this thing can make programming easy for ‘non-programmers’ for certain kinds of problems. It’s not going to be the next Java, but then we already have the next Java.

    5. Re:Rev4 syntax by symbolic · · Score: 1

      Bingo. And the language is only the beginning. Typically a language is used to design something. Design is a whole different ball of wax, and just because someone can hack a few lines of code to make something happen doesn't say anything of their ability to properly design a piece of software.

    6. Re:Rev4 syntax by Bengie · · Score: 1

      I struggled with Basic and VB because of their "natural language" crap. I find logic easier to express in a mathematical sense. C/C++/Java/C# are "easier" for me because they allow me to express my ideas without "translating" them into English first.

    7. Re:Rev4 syntax by OrangeCatholic · · Score: 1

      Agreed. I'm looking at an example right now and I don't see the difference between "set"ting a variable and "put"ting a value "into" a variable, or why some variables are "the" varname, and others are just varname.

    8. Re:Rev4 syntax by Anonymous Coward · · Score: 0

      i certainly won't use rev4 to program a robot to "throw me down the stairs, my hat."

  23. Boh by cheesybagel · · Score: 1
    Ah HyperCard. Never used it because Macs were too expensive and mostly monochromatic at the time. But I used something which was probably similar: INOVAtronics CanDo!

    The problem with such solutions is that they are usually inflexible in terms of the applications you can make and often produce lower performing applications (i.e. use more memory and processor time). I still remember corporate suits droning off in business magazines in the 90s how Rapid Application Development tools would soon make programmers obsolete leading to a wondrous wave of cheap microserfs. RAD tools only had staying power in things like GUI design tools. This "Revolution 4.0" just seems like a hyped up "web 2.0" version of the same thing.

    1. Re:Boh by dbcad7 · · Score: 1

      My Dad was into Hypercard.. He spent hours making a fancy CD catalog "program",, It's not what I would call programming, but I wasn't going to tell him that.. From what I remember it was a combination of database, animation and graphics.. although a little more complicated, you could just as well call making an animated GIF "programming".. and maybe it is..

      --
      waiting for ad.doubleclick.net
    2. Re:Boh by Servaas · · Score: 0

      Then your Dad was like me, he loved the language. The perfect language for me would be between VB and C++, I love doing little hobby projects but I guess I feel this pressure from stories like this bare down on me, urging me for more control of my machine, yet C just baffles me. Too much to learn.

  24. The past by Anonymous Coward · · Score: 0

    The programming world seems to run in about a 30 year cycle. Java = Pascal reinvented (pointers are too hard) Java bytecodes = UCSD Pascal p-system reinvented picoJava hardware = Intel i432 reinvented Revolution 4.0 = COBOL reinvented - similar claims Those who fail to learn from history are doomed to repeat it.

    1. Re:The past by osu-neko · · Score: 1

      The programming world seems to run in about a 30 year cycle. Java = Pascal reinvented (pointers are too hard) Java bytecodes = UCSD Pascal p-system reinvented picoJava hardware = Intel i432 reinvented Revolution 4.0 = COBOL reinvented - similar claims Those who fail to learn from history are doomed to repeat it.

      And those who don't know history are doomed to post idiotic shit about it. (BTW, Pascal has pointers, and as a language is about ten times closer to C than to Java. Code translates between the two pretty easily, mostly all the same concepts, types, and structures, Pascal just has a more verbose syntax and C has looser type-coercion rules.)

      --
      "Convictions are more dangerous enemies of truth than lies."
    2. Re:The past by Rockoon · · Score: 1

      Pascal just has a more verbose syntax and C has looser type-coercion rules.

      The two reasons that I try to use neither, especially the bit about C's non-explicit type promoting. It eventually leads to a hard-to-find bug in any non-trivial project.

      --
      "His name was James Damore."
    3. Re:The past by Anonymous Coward · · Score: 0

      Yeah, if you can't write good code. Maybe you should consider being a janitor.

    4. Re:The past by I_want_information · · Score: 1

      And those who don't know history are doomed to post idiotic shit about it... Pascal just has a more verbose syntax and C has looser type-coercion rules.)

      And the reason for this is that Pascal was designed as a teaching language.

  25. Programs written in English? That's COBOL! by Anonymous Coward · · Score: 0

    I'm sorry, but I don't see what the fuss is about.

    How is whatever Revolution is doing any different from
            MULTIPLY HOURS-WORKED BY HOURLY-RATE GIVING GROSS-PAY
    or
            PERFORM WEEKLY-CALCULATIONS VARYING WEEK-NUMBER FROM 1 BY 1 UNTIL WEEK-NUMBER IS GREATER THAN 52
    ?

    Face it, programming languages are designed for human consumption. Computers don't care whether you wrote it in COBOL or C++ or Revolution; they only know machine language, not programming language. The purpose of a programming language is to allow the programmer to express a set of instructions in a way that s/he and other programmers understands.

  26. Programming and System Design by prefec2 · · Score: 1

    Today the real problem is in system design. While is some cases you create a special language to solve a special problem of a domain (domain specific languages DSL), in other places you use generators. Even though modern languages are all able to express component, class and object structures. In principle you can express modern OO designs in any language. If they have created a new language then they can most likely reduce the number of typed characters, but what they cannot reduce is the number of rules and definitions which make up the specification of the application.

    Also most time in modern software design is spent for requirements engineering and development of the architecture. Followed by test planning and test implementation (if not done automatically from the specification). And only 1/3/ - 1/4 of the time (sometimes even less) is used for implementation. So honestly I do not believe their advertisements and I do not believe that their language is sooooo much easier to use than all the other languages available.
     

  27. Read-only languages... by PhunkySchtuff · · Score: 1

    I, whilst not being a programmer, do dabble in programming and I find these "natural syntax" languages, such as AppleScript, to really be read-only languages (as opposed to something like perl that's write only)

    Reading through the code for an AppleScript program, it's pretty easy to pick up what's happening even if you're not overly familiar with the language. What is difficult is to write it properly, as it's so close to English, yet it's still got quite a rigid and structured syntax, so you need to use the exact form for it to work.

    1. Re:Read-only languages... by osu-neko · · Score: 1

      Pretty much, yes. Anyone can read the code, but only programmers can write it.

      If someone suggests this can allow non-coders to code, they're over hyping it. Still, it's nice for the sake of actual programmers trying to read and maintain other people's code. But, programmers can read code anyhow, so if you think it makes maintenance more than just a tad bit easier, you're also over hyping it.

      In other words, it's kinda nice, but if you expect any sort of big benefit from it, you'll be disappointed.

      --
      "Convictions are more dangerous enemies of truth than lies."
    2. Re:Read-only languages... by Anonymous Coward · · Score: 0

      MOD this! To restate: this does not solve the problem of programming language form. It just replaces the language syntax with common english words. Wooptydoo. I think the video game advertisements for 100 level CS courses will do more to get people "into" programming. But still, it's one thing to get people to start programming, and whole other thing to get people to have enthusiasm for it. I beginning to believe you enjoy programming/computing, or you don't, and nothing can change that. I'm seeing far too many kids going in to CS that don't give a rats ass about learning computers (let alone a language intimately) just becuase there are high paying jobs on the other end. Learn just enough of the language just to pass their courses (and that's mostly just copy and pasting from an example).

    3. Re:Read-only languages... by grouchomarxist · · Score: 1

      Yeah, that's pretty true. AppleScript can be a real pain to program in. One of the engineers who worked on AppleScript told me he avoids programming in it. It makes some things easy and other things are a real pain in the ass. It doesn't help that Apple has barely improved it in the years since it was originally developed.

      Until they make some kind of AI-type breakthrough in programming languages, using these kind of languages will not really make programming easier. Perhaps some aspects of programming can be made easier, but they're often at the expense of other parts of the language. I'm not against making programming easier, but I'm waiting for a real breakthrough.

  28. C++/ADA by incubbus13 · · Score: 1

    When I went to the CS department at college, they informed me the C++ classes I took in junior college were no longer applicable to their CS degree, because they'd changed what was CS210-211 to ADA from C++. "Because we wanted students to spend less time debugging and more time writing code". Er...I'm no master coder, but in my experience, any project over 100 lines involves spending more time debugging than actually writing code. I thought that's just how it was.

    I am all for languages that are easier to use. But coding should be hard. It is hard. And setting people up with the expectation that there's very little debugging involved, or that they can write killer apps in 45 minutes is crazy and counter-productive.

    K.

    1. Re:C++/ADA by azav · · Score: 1

      I beg to differ. Coding doesn't have to be hard. Debugging is debugging... or is it problem detection and solving? Clarity of your code and clarity of the language structure you are using either helps or hinders debugging.

      Part of coding is how good your IDE is in telling you what is going on. Another part is how understandable your code is and that is dependent on the structure of the language you are coding in.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    2. Re:C++/ADA by incubbus13 · · Score: 1

      I don't think coding has to be hard, necessarily. But...part of good, clean code is 'problem-solving'. Making sure that the logic of the code flows right and that there's no ugliness in it.

      It is sort of like being a basketball player. We could probably make a ball that would help you target the net and could use fin stabilizers and gps and whatever to be more accurate. That's what the IDE you two are talking about is doing. It doesn't help you, at all, be a good basketball player. And if you dumb it down enough, it stops being a sport (which in code terms might be a good thing, for everybody to be able to write code any time they want to do anything they want it to do), and more importantly, it stops being something people worry about doing well. It is a skill, and the pursuit of excellence in that skill is the only way new discoveries are made or great accomplishments are...accomplished.

      A lot of processor manufacturers hide the deficiencies of entire OS or apps by just pouring on more power. It works. But it doesn't work as well as writing good apps to begin with. It's nice to have all that extra power, but to me, it is a shame to waste it on inefficient processes.

      K.

  29. Fell short by hrimhari · · Score: 1

    It can't get dumber than this.

    --
    http://dilbert.com/2010-12-13
  30. Hooray for the second coming of the biz programer by Anonymous Coward · · Score: 0

    Never has software sucked so badly as today. We have "professional" programmers trying to implement business rules, what a mess.

    I work in the nonprofit sector. The mailing list, volunteer, and client managers are just terrible. Someone take GiftWorks out back and just shoot that piece of junk. BlackBaud Raiser's Edge, who the fuck has $150,000 to just bring up a splash screen?

    I long for the good old days of Paradox/DOS and dBaseIII. It was a snap for anyone with a triple digit IQ to write an app that would keep track of financial and inkind donations.

    C#, Java, C, and the rest of them have ruined American business. They are horrible tools.

  31. hypercard by angelbunny · · Score: 1

    Does 'magic' still work?

  32. SQL Extension? by hrimhari · · Score: 1

    Isn't SQL somewhat like that? I mean:

    select color from hair where name = "Mike";

    --
    http://dilbert.com/2010-12-13
  33. One word: Haskell! by Hurricane78 · · Score: 1

    It alone moved me from a normal commercial software developer, to the forefront of scientific development in informatics, and made me so much a better programmer at normal programs, it’s not even funny.

    Then again, I am one of the rare kind of people who still think that intelligence is cool, and being better because you worked to be better, should be rewarded. Instead of rewarding those who do worst, and dumbing everything down, just for the nature to create better idiots, and thereby creating a feedback loop straight to Idiocracy.

    But maybe I will write the heart-lung-machine software then, while they write the VB and Access applications of the future. ^^

    --
    Any sufficiently advanced intelligence is indistinguishable from stupidity.
  34. Is it really dumbing down? by azav · · Score: 1

    Is it really dumbing down or are the languages that we use more obtuse than necessary? The common syntaxes of the day are left over from language design when every bit mattered. If English-ish syntax is more clear, then why not use it?

    Isn't it more about clarity of the language than about shortest code possible?

    --
    - Zav - Imagine a Beowulf cluster of insensitive clods...
    1. Re:Is it really dumbing down? by John+Hasler · · Score: 1

      > The common syntaxes of the day are left over from language design when every
      > bit mattered.

      I see you've never looked at any COBOL.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:Is it really dumbing down? by azav · · Score: 1

      I blissfully missed COBOL by a few years.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
    3. Re:Is it really dumbing down? by Anonymous Coward · · Score: 0

      I agree

  35. Easy to read, yes by Anonymous Coward · · Score: 0

    I can imagine that a lot of people that aren't programmers looks at this language (and the examples) and thinks that it's easy to learn.

    Sure, it is easy to read, but is it easy to write?

  36. Don't be deceived by davidwr · · Score: 1

    /* Shortest useful program ever. */ /* prerequisite: Someone else already did the heavy lifting. */
    #include
    int main(int c, char **v)
    {
        initializestuff();
        for(;;) {
            doforever();
        }
    }

    There, I wrote an entire operating system in less than 10 lines!

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:Don't be deceived by Anonymous Coward · · Score: 0

      DOS, maybe. You really think OSes today are written like that? Even in embedded systems we don't do that.

  37. The real issue... by ironicsky · · Score: 1

    The real issue isn't how easy a languages command structure is, because memorizing function calls and syntax is easy. The real problem, IMHO, is people... People are not taught to think analytically and structurally. That is the problem. How can you code without analytical skills. When I learned programming 10 years ago I was taught to draw it out on paper.. Flow chart style. If the flow chart starts getting to big you need to split off a function, eventually creating a rough sketch of how your program will work. People with analytical skills can learn anything if explained how something works.

    On another note, I don't want programming languages getting to the point where its like speaking english... Imagine the code... *shudder*

    1. Re:The real issue... by I_want_information · · Score: 1

      Well, one of the co-inventors of the www uses it, so, clearly, it's not just for 'dummies'.

      What is it about geeks that they want to keep programming a hopelessly remote possibility for 'the rest of us'?

      Ya know, 'the rest of us' actually have lives, significant others, etc. We don't all live in our parents' basement with blow-up dolls.

  38. All you young kids with your fancy 1s and 0s by davidwr · · Score: 3, Funny

    When I was a boy all we had were 1s, and we had to break those off of trees. If we wanted zeros we had to find a willow tree and bend the one around until both ends met....

    Now get off my lawn!

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:All you young kids with your fancy 1s and 0s by Arthur+Grumbine · · Score: 1

      Trees?! Luxury! Why in my day all we had was rocks, and we were grateful!

      --
      Now that I think about it, I'm pretty sure everything I just said is completely wrong.
  39. I'm not convinced at all by Mutatis+Mutandis · · Score: 1

    Look at the tutorials; for example the File I/O code. I concede that to the average person without any programming education, this may look simpler than its C++ or Python counterpart, but is this syntax really simpler? I think not! On contrary this bit would be easier to code, with a rather lower risk of time-consuming compile errors, in many traditional languages.

    I've seen enough attempts to "dumb down" computer languages for people whose computer programming examination only asked: "Which of the following three is not a valid BASIC keyword: (a) PRINT (b) GOTO (c) TERMINATE?" (I kid you not -- when I was at university, this was the level of knowledge expected from bachelor's students in, if I remember correctly, veterinary medicine.) Generally these languages did not succeed in making computer programming easier; they only succeeded in making it look superficially easier. The threshold appears lower for the uninitiated, but after the first three days there is no advantage and you're stuck with a stupid syntax.

    The real choice, as far as I can tell, is between a "minimalist" design of a language which provides only those features that a developer is expected to really need, and a "maximalist" design that provides the extra features a programmer might like to have to save him some time and make code look more elegant. The pair Java and C#, despite their similarities in syntax, exemplify the contrasting approaches very well. Personally, having seen how even professional programmers can mess up their exception handling and mismanage their dependencies, I am firmly minimalist. Never mind time saved in writing code, that barely matters. What matters is time saved in code reviewing and debugging, and that is nearly always easier in a minimalist language.

    That said, I hope there would be a market for a good, simple language suitable for automation purposes: Something that is suitable for anything from writing macros in a text editor to controlling a complicated robot, for which people now usually reinvent the wheel -- generally producing something roughly triangular with an off-set axle.

    1. Re:I'm not convinced at all by I_want_information · · Score: 1

      Okay, as the person who wrote that tutorial, I'd like to let you in on a few things. First -- I wrote it for my non-CS (third-year university student) majors who, in the course of 16 weeks, were able to use Rev to make interactive multimedia and computer games, and that, far superior to what their CS major colleagues were able to create. Second -- Try that with C++ or Java. Or even Flash. Goodluckwiththat. 16 weeks. Third -- Show me what your typical "geek" does after an introduction to programming in 16 weeks. Oh, and it needs to be cross-plat. Doublegoodluckwiththat. And they need to learn how to use audio editors, video editors, image editors... how to do animation... basic game and interactive system design, and user interface basics, all in the same 16 weeks. Right. Not happening, my friend.

      Secondly, in terms of learning to program, you are clearly ignorant. Go through the ACM literature on the subject. Here -- let me help you: http://portal.acm.org/dl.cfm Here's a few references:

      Mayer, R. (1981). The Psychology of how novices learn computer programming. ACM Computing Surveys 13(1), 121-142.

      Smith, D., Cypher, A. & Schmucker, K. (1996). Making programming easier for children. ACM Interactions 3(5), 58-68.

      Bonar, J. & Soloway, E. (1983). Uncovering principles of novice programming. Proceedings of the 10th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 10, 10-13.

      Green, T. (2001). Instructions and descriptions: some cognitive aspects of programming and similar activities. Proceedings of the working conference on advanced visual interfaces, 21-29.;

      Barr, M., Holden, S., Philipps, D. & Greening, T. (1999). An exploration of novice programming errors in an object-oriented environment. SIGCSE Bulletin 31(4), 42-46.

      Neal, L. (1989). A system for example-based programming. CHI'89 Proceedings, 63-68.

      Guzdial, M. (1995). Centralized mindset: a student problem with object-oriented programming. SIGCSE'95, 182-185.

      Ramadhan, H. (1992). An intelligent discovery programming system. Proceedings of the 1992 ACM/SIGAPP Symposium on Applied Computing: technological challenges of the 1990's, 149-159.

      Decker, R. and Hirshfield, S. (1990), A Survey Course in Computer Science using Hypercard. Proceedings of the twenty-first ACM-SIGCSE technical symposium on computer science education 22(1), pp. 229-235.

    2. Re:I'm not convinced at all by Mutatis+Mutandis · · Score: 1

      I'm still not convinced at all.

      That your students where more "productive" after 16 weeks than CS majors is irrelevant. CS majors need to absorb quite a lot more of background information, which means that they inevitably will take a slower start. And, at the risk of upsetting everyone, in many places being a more productive programmer than a CS major is not that much of an achievement anyway. My own teachers managed to achieve that for many of us using dialects of PASCAL and, out of all possible creeping horrors, FORTRAN77.

      That you students could write multimedia stuff perhaps illustrates the strength of the available programming environment and libraries, but not the quality or ease of use of the syntax of the language, or the need to invent a new programming language. It is technically possible -- if anyone would be mad enough to set himself to it -- to write a toolset and library that would allow students to quickly and conveniently write cross-platform multimedia games in FORTRAN77. That language doesn't have a particularly complex syntax.

      And no doubt, given a trajectory of 16 weeks, this achievement also illustrates your own priorities as an educator. But if your standard of achievement computer education is generating multimedia games -- many aspire, but few are called to that job. And this risk of emphasizing this is that it reduces the activity of programming itself to a game. No doubt fun for the students, but do they really benefit?

      I must wonder whether your students will know how to properly structure their code, how to handle possible error conditions and exceptions properly, and how to manage memory and resources. Will they be able to read the technical manual of an unfamiliar platform and get to grips with it, to figure out why a particular method call does not do what it is supposed to do, or to self-educate into another language than the sandbox you trained them in?

      As for my knowledge of learning to program, I'll concede without hesitation that I am not a professional educator and unfamiliar with the literature on programming education. I have, however, far more experience that I would ever have liked to have in observing the gaps in the programming education of people, both IT professionals and amateurs, and the horrendous consequences these can have. And, incidentally, some experience of the difficulty of teaching people better strategies and habits. No doubt I have less practical experience of this than others -- I've seen only a few million dollars wasted, and I am sure others could faithfully claim orders of magnitude more.

      So, although admittedly on thin ice where the how of educating people is concerned, I have pretty strong ideas on what people should learn. You fail to convince me that, if your students would apply for a job here, I should in any way regard it as an advantage that they were trained by you, or trained using rev.

    3. Re:I'm not convinced at all by I_want_information · · Score: 1

      No, they will do none of those things, including coming to you for a job. And the nice thing about this language is that they won't be doing those things because they don't have to. Do they have fun? You bet. Do they benefit? Yes, they benefit from being able to create their own solutions. They benefit from increased confidence in using something other than PowerPoint which, when you consider that these students are not ever going to lust about creating their own operating system, is huge. In terms of inventing a new language, subsets of this language have been successfully in use since the mid-1980s. Why natural language and GUI toolbars and widgets? Because normal humans, e.g., nonprogrammers, tend to be visual learners. I once had the opportunity to hear Robert Callaiou, co-inventor of the web (and, incidentally, a Rev user!), speak on the subject and he humorously noted what nearly every study I've read on the subject of teaching programming to novive/nonprogrammers: that learning language is best which contains the fewest curseword characters, because all those funky characters and definitely not normal usage of punctuation can make beginners go cross-eyed.

  40. Even in Universities by Anonymous Coward · · Score: 3, Insightful

    This can be seen even in universities, there are CS majors with no education in ASSEMBLER or C during the whole studies, some haven't even used C++.

    And money dictates here too. We are forced to study that horrible, disturbed nightmare that is Symbian for mobile development class, although I did manage to talk the lecturer into allowing one half of the course test to be for Android if one wanted it to.

    I don't consider myself a good coder; my experience comes via a hobby from a simple c-like language which pretends to have objects. I've also seen some so, so much better coders, especially within in the demo scene, but even I can see that the level of a regular CS student is horrible. There are few rare gems out there, but the average is nasty. It'd be absurd to expect them to learn those languages to any decent level within the regular course times either.

    The efficiency of one's code is hardly ever noted within courses. It's good if it works. There's probably just so huge need for 'bulk coders' and other 'it professionals' that they've had to dumb down most of the courses. There are only a few rare courses which really challenge you (logic programming being the usual cause), and they're not needed to get the papers.

    It's infuriating having to drowse through such highest level education.

  41. VisualBasic by goathumper · · Score: 1
    I remember the days of VisualBasic, when it was billed as a means to facilitate the development of applications without requiring any real programming or software (or computer, for that matter!) expertise. I also remember what came after those days...

    Simply put - though VB was "wildly successful" - but how many pieces of software built on it are still around *because they were built properly*? Most of those tools have been thrown aside because they were grossly inadequate in performance, architecture, design, etc.

    I was a witness to countless fusterclucks and saw how many systems had to be re-done from scratch because some genius businessman believed what he read on the brochures only to realize that there was no such promise and now his hordes of customers were demanding delivery on the promises made. Needless to say, there were no shortage of *REAL* programmer jobs in those days :)

    The problem was never with the language per-se, as I'm sure the problem won't be with Rev4. The problem was always with design, architecture, concepts, and implementation choices. As noted above by the xkcd reference, there's no substitute for clarity regardless of the tool you choose to implement your program.

    I'm not knocking the tools themselves, I'm knocking the fact that they're billed as ways to "bring programming to the masses".

    Just like not everyone should handle nuclear material or toxic substances or operate on a human body, not everyone should *program* computers. As such, the really big benefit I see for this kind of tool is as an end-user interface mechanism (or facilitator) - especially in conjunction with language recognition. There are some interesting ideas there that are definitely worth exploring...

  42. Few things.... by dragisha · · Score: 1

    a) Any system even fools can use - will be used only by fools.

    b) I really liked these "up to"s... They tell so much.

    --
    http://opencm3.net, http://www.nongnu.org/gm2/
  43. Why not dumb it down? by harmonise · · Score: 1

    Is there a reason that it should not be dumbed down? Should it be kept difficult for some reason? If a person can adequately express their problem and how it should be solved to a computer, and the computer can take that expression and solve the programmer's problem, I don't see what the issue is.

    --
    Cory Doctorow talking about cloud computing makes as much sense as George W Bush talking about electrical engineering.
    1. Re:Why not dumb it down? by John+Hasler · · Score: 1

      > Is there a reason that it should not be dumbed down? Should it be kept
      > difficult for some reason?

      "Things should be as simple as possible and no simpler."

      Perhaps it really is difficult (if not then sure, go to it).

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  44. The English language by horza · · Score: 1

    If English was a language easy to communicate clearly and unambiguously what we wish to do, we wouldn't need lawyers.

    Phillip.

    1. Re:The English language by shish · · Score: 1

      It took me three attempts to parse that sentence...

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  45. Nope by Colin+Smith · · Score: 5, Insightful

    The best approach is to develop fast, identify bottlenecks and then require the user to upgrade their computer.... their IT infrastructure... Worldwide network and datacenters.

    That's the economic history of programming.

     

    --
    Deleted
    1. Re:Nope by 1s44c · · Score: 2

      The best approach is to develop fast, identify bottlenecks and then require the user to upgrade their computer.... their IT infrastructure... Worldwide network and datacenters.

      The most common approach is to develop fast, identify bottlenecks and then require the user to upgrade their computer.... their IT infrastructure... Worldwide network and datacenters.

  46. Maintenance by devnullkac · · Score: 1

    Even if you can bring programming to the masses, workaday programmers better hope that nothing those masses produce becomes important, because such things inevitably land on their desks when they need a tweak and the author has moved on. Maintainability is a quality that is difficult for even experienced programmers to put into their work. First timers rarely see the costs a year down the road of any implementation decisions, usually because they don't yet know there are multiple implementation possibilities.

    --
    What do you mean they cut the power? How can they cut the power, man? They're animals!
  47. Pascal by WED+Fan · · Score: 1

    I was already well into programming when I bought a Sharp MZ-80k. While everyone else was shipping with a version BASIC, the Sharp shipped with Pascal. That probably shaped my good opinion of Modula-2.

    --
    Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
  48. It's not about the learning curve. by SanityInAnarchy · · Score: 1

    I haven't actually seen this language, so I can't say for sure, but I would argue that many programming concepts are easier to express in actual code, or at least pseudocode, than in anything truly resembling English. Even when we talk to other programmers, we talk about concepts like strings and characters, which are ultimately the language of the machine, not us.

    So, this could make it easier to learn to program, but this should not be seen as something in the same vein as Excel, Access, Filemaker, or anything of that nature. Those are tools that let non-programmers make a program, and non-DBAs make a database -- but they are both inferior for real programmers to use, and even when they aren't, they mean the programmer doesn't have to learn what's going on under the hood.

    But as a programmer, you do need to know what's going on under the hood. When the abstraction breaks down, you need to know how and why. It's one thing to let the garbage collector handle memory management, but if you understand what it's doing, you can make little tweaks to make your program smaller and faster, while still letting the garbage collector do the heavy lifting.

    In other words, read The Law of Leaky Abstractions. As Joel says:

    The law of leaky abstractions means that whenever somebody comes up with a wizzy new code-generation tool that is supposed to make us all ever-so-efficient, you hear a lot of people saying "learn how to do it manually first, then use the wizzy tool to save time." Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don't save us time learning.

    So, in other words, the real question we should be asking is whether this tool is better than existing tools, like Python or Ruby. There have been other attempts at RAD which I think fall far short of that goal.

    To answer the question "why not", you have to understand the damage that is done by allowing non-programmers to try to program. Think of the damage which is done with this simple Visual Basic command:

    On Error Resume Next

    I mean, that's almost as bad as GOTO, probably worse, because that leads to silent errors. It leads to growing a codebase full of errors that happen all the time, of dead code, and of random Bad Things happening, all of which would at least make your app raise a noisy error during development (so you'd fix the problem). But no, you silently ignore them...

    That isn't strictly VB's fault, but there seem to be so many crappy VB coders for whom this was the next logical step after Excel formulas. Since the actually decent coders tend to prefer things like C# (in the MS world, at least), I don't see much of a reason for VB to exist, and it seems to actually be causing more harm than good.

    That's where I view every attempt at a "dumbed down" language -- if it doesn't improve things for actual programmers, it'll probably do more harm than good.

    --
    Don't thank God, thank a doctor!
    1. Re:It's not about the learning curve. by Mr2001 · · Score: 1

      I haven't actually seen this language, so I can't say for sure, but I would argue that many programming concepts are easier to express in actual code, or at least pseudocode, than in anything truly resembling English.

      On the other hand, there are concepts that are easy to express in English, but difficult to express in most programming languages.

      For example, relative clauses showing the relationships between objects. Take a sentence like "if the Style menu contains a checked item corresponding to a font style which is not provided by the current font, uncheck the item". To translate that to code (say, C#), you'd probably have to write something like:


      foreach (MenuItem item in styleMenu.Items)
              if (item.Checked) {
                      bool found = false;
                      foreach (Style style in currentFont.ProvidedStyles)
                              if (style == item.CorrespondingStyle) {
                                      found = true;
                                      break;
                              }
                      if (!found) {
                              item.Checked = false;
                              break;
                      }
              }

      That's a lot more code, and its function is less obvious. Even using the SQL-like LINQ syntax, it's a bit unwieldy:


      var query = from item in styleMenu.Items where item.Checked && !currentFont.ProvidedStyles.Contains(item.CorrespondingStyle) select item;
      foreach (var item in query)
              item.Checked = false;

      But in Inform 7, which resembles English and makes use of concepts (like relative clauses) found in English writing, you can use the sentence almost as written:


      if the Style menu contains a checked item (called X) corresponding to a font style which is not provided by the current font, now X is not checked;

      (Of course, Inform 7 is made for writing text adventures and isn't suitable for general-purpose programming... yet.)

      --
      Visual IRC: Fast. Powerful. Free.
    2. Re:It's not about the learning curve. by SanityInAnarchy · · Score: 1

      In Ruby, this would probably be:

      menu_items.each do |item|
        if item.checked? && current_font.provided_styles.include?(item.style)
          item.uncheck!
        end
      end

      I see your point -- I think that reads pretty clearly, but maybe that's only because I'm used to it. What do you think?

      I'm also skeptical of this approach:

      if the Style menu contains a checked item (called X) corresponding to a font style which is not provided by the current font, now X is not checked;

      It's not as clear how and why this works -- "not provided by the current font" -- how does Inform know what you're talking about here? English is pretty big and ambiguous.

      And again, this doesn't deal with the fact that it doesn't remove any of the learning curve. I still need to know about strings, integers, the difference between integer and floating-point math, etc, etc. That's the point of the article I linked to.

      --
      Don't thank God, thank a doctor!
    3. Re:It's not about the learning curve. by daVinci1980 · · Score: 1

      I can express this easily in python as well, and honestly given reasonable functions in C/C++, I could do so there. A lot of complexity in code is entirely dependent on how clearly you decide to make your code, and where you decide to provide helper functions.

      For example, I'd probably do something like this in python:


      for item in filter(lambda x: x.Checked, styleMenu):
          if item.Style not in currentFont.ProvidedStyles:
              item.Checked = false

      Contrary to what a lot of purists say, I disagree that syntax is unimportant. I think it's very important. But I also think that where the syntax of a language fails you, you can (typically) make up a lot by writing helpful functions. For example, here's a stab at this in C++. Please forgive my early adoption of the auto keyword, I agree that the syntax of iterating over containers in stl is pretty verbose.

      if (currentFont) {
          auto items = styleMenu.items();
          for (auto it = items.begin(); it != items.end(); ++it) {
              if (!it->IsChecked()) continue;
              if (!currentFont->ProvidesStyle(it->Style)) {
                  it->SetChecked(false);
              }
          }
      }

      Language choice definitely matters, and many new languages offer high level abstractions that just make coding easier and more productive. But old languages can, for some cost, be made more easily readable, too.

      --
      I currently have no clever signature witicism to add here.
    4. Re:It's not about the learning curve. by Mr2001 · · Score: 1

      I see your point -- I think that reads pretty clearly, but maybe that's only because I'm used to it. What do you think?

      It's still working at a lower level of abstraction. I think in generalizations like "do this to every X" or "if there is a Y", but even Ruby requires me to code in terms of loops, iterating over a set of objects one at a time.

      It's not as clear how and why this works -- "not provided by the current font" -- how does Inform know what you're talking about here? English is pretty big and ambiguous.

      Some relations, properties, etc. (like containment) are included as part of the standard world model, but you'd need to define the others first:
      [General definitions...]

      A font is a kind of thing.

      The current font is a font that varies.

      A font style is a kind of thing.

      Provision relates various fonts to various font styles. The verb to provide (it provides, they provide, it is provided, it is providing) implies the provision relation.

      A menu item is a kind of thing.
      A menu item can be checked or unchecked. It is usually unchecked.

      Correspondence relates various things to one thing. The verb to correspond (it corresponds to, they correspond to, it is corresponded to, it is corresponding to) implies the correspondence relation.

      A menu is a kind of thing.

      [Some sample definitions for specific objects...]

      Bold is a font style.

      Courier is a font providing Bold.

      The Style menu is a menu. The Bold item is a menu item in the Style menu, corresponding to Bold.

      --
      Visual IRC: Fast. Powerful. Free.
    5. Re:It's not about the learning curve. by Mr2001 · · Score: 1

      For example, I'd probably do something like this in python:

      for item in filter(lambda x: x.Checked, styleMenu):
              if item.Style not in currentFont.ProvidedStyles:
                      item.Checked = false

      Yes, but this isn't much different from the C# examples I gave. It's still expressed in terms of "loop over these objects, then if any of them matches this condition, do this to it". That's a step below "do this to everything matching the condition". A chain of relative clauses in Inform 7 lets you express in a single, straightforward line what would take multiple nested loops in another language.

      --
      Visual IRC: Fast. Powerful. Free.
    6. Re:It's not about the learning curve. by Mortice · · Score: 2, Interesting

      All right, I can't resist. A ruby implementation...

      def should_uncheck(item)
          item.checked? && current_font.provided_styles.include? item.style
      end

      menu.items.select{|item| should_uncheck?(item)}.map{|it| it.uncheck}

      You could do something similar in any language supporting higher-order functions. The code meets your requirement of not expressing things through nested loops and reads more like "do this to all items for which 'condition' is true." That said, Inform7 is very cool. :)

    7. Re:It's not about the learning curve. by SanityInAnarchy · · Score: 1

      I think in generalizations like "do this to every X" or "if there is a Y", but even Ruby requires me to code in terms of loops, iterating over a set of objects one at a time.

      Not quite -- part of the point of #each is to get you thinking in terms of "do this to every x", rather than "loop over every x", even if that's technically what's going on.

      Some relations, properties, etc. (like containment) are included as part of the standard world model, but you'd need to define the others first:

      When you add all that up, I don't really see the net win. After all, I could just as easily add a layer of abstraction which does say "do this to every x". In fact, if "this" is a single method, I can do just that:

      beans.each(&:jump!)

      Generally, each is implemented as a loop which iterates over each item, but that part is up to the method itself. I could just as easily implement an each method which executes its block in parallel. That's the kind of thing I'm talking about -- it's already at about the same level of abstraction you're describing, it's just expressed more concisely, less ambiguously, and with syntax highlighting (though maybe inform does that, too)...

      So, in addition to having to learn to program anyway, I also need to learn to teach the environment about parts of speech. Maybe there's something to it, but right now, I don't really see the point.

      --
      Don't thank God, thank a doctor!
    8. Re:It's not about the learning curve. by Wildclaw · · Score: 1

      styleMenu.Items.Where(item=>item.Checked &&
                                        !currentFont.ProvidedStyles.Contains(item.CorrespondingStyle) .ForEach(i2=>i2.Checked = false)

      Or you could use a foreach loop afterwards instead of using a custom ForEach extension method. It is a matter of taste. Doing it this way is more readable than using the from/where/select syntax variant of Linq.

      Besides, your non-Linq example should be like this.

      foreach (MenuItem item in styleMenu.Items)
          if (item.Checked)
              foreach (Style style in currentFont.ProvidedStyles)
                  if (style == item.CorrespondingStyle){
                      item.Checked = false;
                      break;
                  }

      And in cases where it weren't possible to just break out of the inner loop, you should create a method of the inner for loop instead of using an ugly found flag. And you always have this combination of Linq and traditional c#.

      foreach (MenuItem item in styleMenu.Items)
          if (item.Checked && !currentFont.ProvidedStyles.Contains(item.CorrespondingStyle))
              item.Checked = false;

      The above is highly readable, and quite compact. Probably my favorite.

      Finally, if you notice the properties of the example, it is possible to see that you could use the following shorter version that however is less readable.

      styleMenu.Items.ForEach(i=> i.Checked &= !currentFont.ProvidedStyles.Contains(i.CorrespondingStyle)

    9. Re:It's not about the learning curve. by Mr2001 · · Score: 1

      Besides, your non-Linq example should be like this.

      No, it was right... your version unchecks an item corresponding to a style that is provided by the current font. Mine unchecks an item whose style is not provided.

      The above is highly readable, and quite compact. Probably my favorite.

      Yes, but it's still operating at a lower level of abstraction. In I7, you can speak in generalities and let the compiler figure out when it needs to make a loop; you can also use the same relation syntax for different relation types (some implemented as properties, some as 2D truth tables, some as boolean functions). In C#, you explicitly write as many loops as you need -- unless you're using the .ForEach() method which destroys readability -- and you explicitly manage the implementation of your object relationships.

      --
      Visual IRC: Fast. Powerful. Free.
    10. Re:It's not about the learning curve. by Wildclaw · · Score: 1

      No, it was right... your version unchecks an item corresponding to a style that is provided by the current font. Mine unchecks an item whose style is not provided.

      You are right, I was wrong. But you were still wrong. The second break in your example shouldn't be there.

      Anyway, the correct way to do the non-linq version in this case is to break out the inner for loop to a method of its own. Using a flag is simply bad practice and should be avoided. Even using goto to break out of the inner loop would be better than that (although that doesn't say much)

      Yes, but it's still operating at a lower level of abstraction. In I7, you can speak in generalities and let the compiler figure out when it needs to make a loop;

      Not really. The linq expression is actually contextually equivalent to the I7 example you gave. There simply is no difference in abstraction.

      unless you're using the .ForEach() method which destroys readability

      So using a Foreach construct in C# loses readability? But if you look at the I7 example, that is exactly what it is doing. Sure, it isn't called .ForEach, but it damn well is a construct to apply something on all items in a list.

    11. Re:It's not about the learning curve. by Mr2001 · · Score: 1

      You are right, I was wrong. But you were still wrong. The second break in your example shouldn't be there.

      Actually, the LINQ example was the one that was wrong. The first C# example, and the I7 example, find the first matching menu item and uncheck it. The LINQ example unchecks all matching items, which isn't what I meant to do (but is probably more realistic).

      The I7 version of the LINQ example would be:

      now every menu item in the Style menu corresponding to a font style which is not provided by the current font is unchecked;

      Anyway, the correct way to do the non-linq version in this case is to break out the inner for loop to a method of its own.

      Another way to say that would be that one statement in I7, using relative clauses, can express as much as a loop plus a whole separate method in C#.

      "if there is a woman who loves a man who owns a dog in a park that contains a tree next to a bench that is heavier than most benches"... that's at least six loops in C#. Six separate methods.

      The linq expression is actually contextually equivalent to the I7 example you gave. There simply is no difference in abstraction.

      There is: see the new I7 example above and compare it to the LINQ example. LINQ still talks about objects one at a time. I7 talks in generalizations.

      So using a Foreach construct in C# loses readability? But if you look at the I7 example, that is exactly what it is doing. Sure, it isn't called .ForEach, but it damn well is a construct to apply something on all items in a list.

      Actually, that original I7 code was a construct to find a single object, give it a name for future reference ("X"), and then do something to it.

      The new I7 code above is sort-of a construct to apply something to all items in a list, but not explicitly. It doesn't say "for each matching object X, do this to X". It says "I want this condition to be true" and lets the compiler figure out how to make that happen.

      But anyway. Yes, I think it does lose readability. I've been using C# for a lot longer than I've been using I7, and written a lot more C# code than I7 code, but this:

      styleMenu.Items.ForEach(i=> i.Checked &= !currentFont.ProvidedStyles.Contains(i.CorrespondingStyle)

      still takes me longer to parse than this:

      now every menu item in the Style menu corresponding to a font style which is not provided by the current font is unchecked;

      --
      Visual IRC: Fast. Powerful. Free.
  49. Funny by RAMMS+EIN · · Score: 1

    The funny thing is, when I read the tutorial, they lost me on the "Getting Started" page.

    As soon as they start with GUIs and toolbars with icons that you need to click, I don't understand what is happening anymore.

    --
    Please correct me if I got my facts wrong.
  50. Long live Hypercard by Anonymous Coward · · Score: 0

    For what it's worth, Hypercard is what got me started programming. There were few other options available at the 10 year old level. The "open-source" nature of Hypercard where all the code that runs the stack is visible to the end user makes it easy to learn how someone is doing that sweet thing you've never seen.

    More power to easy languages, and even more to an IDE that someone with a Kid Pix based computer background can pick up and run with.

    1. Re:Long live Hypercard by aGuyNamedJoe · · Score: 1

      Precisely!

      One only needs to look at what was done in Hypercard to see that this will actually be useful to many people, especially with modern hardware underneath it.

      It will be used for inappropriately complex systems, of course, but so it goes. Many people will find it's wonderful for the problem they want to solve, for which they'd never hire a "real" programmer.

      When I was designing a scripting language for testing wireless protocols I modeled parts of it on Hypertalk -- I allowed programmers to use either message[id] or 'id of message', for instance. It wasn't particularly fast, compared to what one could do in C, but it was certainly more usable by someone who understood the domain but wasn't a programmer.

      The testers found it very useful. The people writing the protocols weren't interested in using it to produce realtime efficient implementations, but nobody expected it to be used that way. I was surprised to find some testers, who were also programmers, using it to write load generating tests, though.

      Very few people need to extract every bit of efficiency out of a dual core CPU in order to manage their model railroad and train collection, or their knitting pattern collection, but the relatively inexpensive computer they might buy will certainly have such a CPU in the near future. Such a machine will run such an application very satisfactorily, and they'll be able to make it do just what they want.

      Go find a copy of Danny Goodman's Hypercard Handbook and see how well it explained how to use the language. People did great things with it -- but they weren't interested in writing operating systems.

      joe

  51. Revolution 4.0? by omuls+are+tasty · · Score: 1

    Am I the only one seeing the irony of calling something "Revolution" and then adding version number 4.0 to it?

    I think that about sums it up nicely...

    1. Re:Revolution 4.0? by KlaymenDK · · Score: 1

      No more so than "Final Fantasy XVII", I suppose.

  52. Ah the memories by Anonymous Coward · · Score: 0

    ADD 30 TO AGE.
    DISPLAY 'Missed me?'.
    STOP RUN.

  53. fast and easy: no monopoles, please! by 10am-bedtime · · Score: 1

    I am a programmer around long enough to literally hear bulldozers and chain-link fences clinking around big holes in the ground at the sight of the word "developer". (Insert more hallucinogenic curmudgeonly grumbling here.)

    More on topic, I have no qualms admitting that "fast and easy" programming "solutions" might indeed be so, but still can't help but wonder what else is missing. What are the consequences of "fast and easy" programming?

    Those words bring to mind news articles of car and train wrecks, where speed is always an aggravating factor, and attaining that speed never seems too difficult or too ambitious at the onset, prior to the accident.

    A wreck is definitely not desirable if one aspires to Quality (in the ZAMM --Pirsig sense), for a wreck completely removes the moment of perception from the scene, by removing the perceiver (or more precisely, the motivating force (perhaps in the gravest cases, the life) of the perceiver).

    I think, rather than pushing "fast and easy", a better pair of adjectives would be "strong and flexible" (like a rope, or a towel, say). The programming languages, environments and mindsets based on these fundamental metaphors admit guidance from a mentor (on the "other end" of the experience divide, pulling) quite readily.

    The consequences may in the end result in "fast and easy" development of the program, of the programmer, of the mindset, anyway. It depends not only on the budding programmer, but also on the relationship between the teacher and the student (both of whom may be the same programmer, why not?).

    1. Re:fast and easy: no monopoles, please! by Zarf · · Score: 1

      Programmers should strive to do as little as possible and no less. Rapidly accomplishing things should not be the driving force of development. Instead, creating valuable tools should be the goal. You should seek to make something new and unique. You should never seek to follow a pattern. If you are doing things "fast and easy" you are probably doing things that have already been done before. If you are making a "login system" you should seriously ask yourself if what you are doing is not significantly contributing to the state of the art... why in-the-name-of-excrement are you doing it?

      The consequence of seeking "fast and easy" solutions and "fast and easy" programming tools is that you are more likely to quickly and easily ignore the value of your work and be willing to reproduce it over and over... after all it only took 30 minutes. I'll just do that same task over and over and over... it'll be easy... easier than solving the problem once and for all. The forces of laziness do not push us in the right directions if we work with solutions that are too "fast and easy" in the wrong directions. So when it is time we scale up and throw more persons at the problem we throw them at the "do it over and over and over" problem not the "once and for all" problem.

      Fast and easy are traps.

      --
      [signature]
    2. Re:fast and easy: no monopoles, please! by 10am-bedtime · · Score: 1

      Zarf sez:

      Fast and easy are traps.

      In the sense that gravity is a trap, yes.

      That is, it is a force (of marketing, primarily) that pulls one toward a conclusion, as gravity pulls the lesser mass towards the greater (though, to be more precise, both exhibit displacement, proportionally). Given a situation such as the budding programmer approaching the world of programming from space, with its massive history, refined thought (theoretic and practical), and culture, "fast and easy" might result in a crash landing on (in)hospitable shores, a permanent orbit, or a tangential flyby of brief duration.

      Much depends on the wit and will of this budding programmer in the presence of this force. I tend to think the inexperienced overrate their capacity in this regard, unfortunately, and that's why "fast and easy", though it be potentially valid and fulfilling, does not sit well with me generally.

      (Perhaps that's why I remain stuck on Earth, still...) :-/

    3. Re:fast and easy: no monopoles, please! by Zarf · · Score: 1

      I try to qualify with "probably" and "mostly" in the right places. Gravity can cause you to crash or it can create a sling-shot effect. It's just a matter of application. Too frequently people over-apply "fast and easy" and too frequently people discount the power of wisdom and experience in a computer system. "It's old!" they say as if that is some kind of rebuke in itself. Morons. They keep repeating the same mistakes their programming ancestors did. In the least you can learn from the ancient system programmers what not to do.

      --
      [signature]
  54. Let me paraphrase this entire post by Anonymous Coward · · Score: 0

    Wah!, Without my complicated programming language how will people know I'm smarter than them?

  55. Creativity by SarahR · · Score: 1

    Creativity is not limited to people who have the skills needed to bring their dreams to reality. Low level programming languages stop many creative people from bringing their ideas to the computer. High level languages like Revolution allow more people to create their own software, whether it is single-use utilities, applications for personal use only or commercial applications.

    But this is always how technology develops: the pioneers have to do everything the hard way, then those of us who follow behind can use their tools to make things easier and easier. Of course the people who have invested in learning how to do things the hard way feel resentful of the newcomers who seem to be getting so much for free, but progress cannot be halted and when easier ways exist, why should we insist that people learn to do things in any way that is more difficult than the task requires. On that basis, programs should only be written in machine code, not this new-fangled assembler :-)

    1. Re:Creativity by I_want_information · · Score: 1

      It's funny -- do we ever hear engineers complaining that the wheel and fulcrum have already been invented and these noobs don't have to learn how to invent their own, or that they can use modern machinery?!

      Do doctors complain about the invention of antibiotics or painkillers?

      Do writers complain that we no longer have to rule things out on *parchment* before we write?

      Geez... programmers are a grumpy, insular, jealous lot...

  56. Age old quest: COBOL and SQL by kbahey · · Score: 4, Insightful

    This is an age old quest. There has been attempts at making programming English like for many decades ...

    First there was COBOL: COmmon Business Oriented Language. Its syntax is very similar to English. It was sold as a way to make Managers able to write programs without the need of having a developer involved.

    ADD 1 TO IDX.
    SUBTRACT 1 FROM IDX.
    MOVE X TO Y.

    What happened instead is that a generation of developers learned COBOL and specialized in it, and managers were still managing.

    Next, there was SQL: Structured Query Language. Despite the mathematical model behind relational databases, SQL was again sold as a way for managers to execute queries and get reports for themselves. That may have worked until the manager who ran a query on seven tables without any joins. That made everyone go again to "leave it to the programmers" mode again ...

  57. How the arrive at 90% when comparing to java by Anonymous Coward · · Score: 0

    They have a comparison to other languages, e.g. a single line of Rev code that they claim takes 69 lines of code in Java. (Fetching the last item on the second line of a csv file on yahoo.com somewhere).

    I felt hurt and made this functionality in 5 lines of code in Java (13 if you count class, package, imports and function main declaration). And i've even spent one line extra to make the code more readable.

    A handy method like SlurpURL is available in many libraries, which would have cut the first 3 lines into 1.

    Given that java generally sucks on string manipulation, this is not bad.

            public static void main(String[] args) throws Exception {
                    String text = "", s = "";
                    BufferedReader br = new BufferedReader( new InputStreamReader( new URL( "http://ichart.finance.yahoo.com/table.csv?s=RBS.L" ).openStream() ) );
                    while( (s=br.readLine()) != null ) text += (s + "\r\n");
                    String line2 = text.split( "\\n", 3 )[1];
                    System.out.println( line2.split( "," )[ line2.split( "," ).length-1]);
            }

  58. Stupid argument by jcr · · Score: 3, Insightful

    They said the same thing about COBOL.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  59. Dumbing Down Programming? by John+Hasler · · Score: 1

    Sure. Dumb it down far enough and many of those writing software today will be able to do it.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  60. Widen the Tower of Hanoi by TaoPhoenix · · Score: 1

    Heh - sidestepping the non-random causality of programming and reclusive...

    To grow a field it helps to create a large base of people who at least "appreciate" it. Pick the exact timing you like, but suddenly we went from when growing up learning computers was "nerdy" to "connected".

    Businesses are the art of getting midline people to handle some stuff that just burns hours, saving the power hitters to really churn out something. "Using 90% less code" seems to be the kind of thing that's made for this.

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  61. Another Java Competitor by Anonymous Coward · · Score: 0

    This is just another Java competitor.

    Don't worry about memory, it's hard, let Java do it for you.

    Don't worry about sorting, let Java do it for you.

    Don't worry about algorithms, those are hard, let Java do it for you.

    Programming now a days, is nothing more than making a simple GUI, and some event driven programming, it's being deskilled, so any low paid moron can do it.

    There is always embedded programming, which requires a lot more skill, but finding people who can actually program is getting harder and harder.

  62. Any examples of the syntax? by Anonymous Coward · · Score: 0

    Can anyone post an example of this code?

  63. sounds Familiar by Anonymous Coward · · Score: 0

    Didn't we used to call it COBOL.
    "Wow Grace, now anyone will be able to program" :-)

  64. It sounds so familiar by Lulu+of+the+Lotus-Ea · · Score: 1

    I remember reading almost all of these exact same marketing buzzwords and hype ten years ago. The only difference was that then the "amazing, revolutionary language" was called REBOL.

    Exact same business plan, as far as I can tell. Exact same hyperbolic language. Enough so that I wonder if the same copywriter did a search/replace on the old pamphlets. It's yet another moderately OK high-level language, but that comes in three versions:

    (1) Free (of cost), but fairly crippled
    (2) Expensive
    (3) "Enterprise", i.e. REALLY expensive.

    And just like REBOL ten years ago, it promises "revolutionary" cross-platform support, while dropping or being slow to update the non-Windows versions.

    The linked blog/review of the language seemed to have comments solely from paid-shills. The reviewer himself was interesting, but all the comment at foot read like almost certain astroturfuing.... gee, just like REBOL did back in the 1990s. When you actually look at the "amazingly readable and compact" code... well, it looks a lot like AppleScript and a few other similar approaches to syntax. But one thing I noticed in particular is that the "unbelievably short" code samples were about the same as the ones I'd use in Python, or Ruby, or Perl, or AWK. At least in length; Python feels more readable to me... once you give up the silly conceit that Rev syntax isn't syntax because it kinda-sorta-a-little-bit reads like English. Rev *is* shorter than Java or C++, but that's not exactly anything amazing.

  65. Less code = faster? by henrypijames · · Score: 3, Insightful

    From TFA: "I suppose that adds up, 90 per cent less code equates to ten times faster."

    Really? I suppose you can write haiku ten times faster than stream-of-conscious recordings, too?

    There's one thing that computer code and natural language text have in common: For both, confusing "writing" with "typing" is moronic.

    1. Re:Less code = faster? by dkf · · Score: 1

      There's one thing that computer code and natural language text have in common: For both, confusing "writing" with "typing" is moronic.

      Sounds like you're not management material!

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  66. Appalling by Lord+Lode · · Score: 1

    I'm already appalled just by seeing all these stock happy face images. Also, never heard of it before. What is this for stuff, man.

  67. Pascal by falconwolf · · Score: 1

    Pascal was the second language I took a class in, and it basically only in that class I used Pascal. I wanted to take Modula but it wasn't taught where I went.

    Falcan

  68. Slick by thePowerOfGrayskull · · Score: 3, Interesting

    Seriously, this is slick. I don't mean the language (it appears I need to install a plugin to view samples, which is a bit silly - I just want to see the language). No, I mean the advertising. Post it to slashdot with a title the casts it in doubt; link to the web site that requires you to install the plugin... poof! instant installed client base.

    1. Re:Slick by xkrz · · Score: 1

      I installed the program, but it didn't come with a uninstaller! anyone have successfully uninstall?

    2. Re:Slick by I_want_information · · Score: 1

      You're a slashdotter and you need an uninstaller? Lame.

    3. Re:Slick by whyloginwhysubscribe · · Score: 1

      But has anyone actually done that?

      I went to the site and looked for sample code / screen shots - then I looked at the videos and it was like watching an infomercial or QVC, so I put my foot through my monitor and sent them the bill!

      I don't think many slashdot readers will fall for it!

    4. Re:Slick by Anonymous Coward · · Score: 0

      Not to mention that every positive comment on ZDdnet's was written by members as old as the article! All very pathetic, but at least keeps you "entertained" for a couple minutes :-)

    5. Re:Slick by I_want_information · · Score: 1

      You're on /. and you need an uninstaller? Are you kidding me?

    6. Re:Slick by I_want_information · · Score: 1

      And I'm lame for submitting this twice :-/

  69. When will we learn? by WidgetGuy · · Score: 1

    For some reason there are those in the programming profession (usually the "we code to live" crowd who will slide easily into management as soon as possible) who cannot seem to get it into their thick skulls that "everybody wants to program a computer" is just about as true as "everybody wants to repair their own car." Non-programmers are that way because they are neither emotionally nor intellectually equipped by either nature or nurture to be a computer programmer (let alone a good one). Only 1% of the Earth's population are scientists or engineers. Making the tools employed by software engineers easier isn't going to make it (more) interesting or any easier for that 99% of the population who are not.

    As far as making programming easier for programmers... Don't you get it? We like it hard. The harder the better. Most of us would be as happy as pigs in shit if our masters would let us program everything up in assembly language. If we could get away with it, every shell script would be written as one, big, fat, hairy regular expression. Real programmers don't want "easy," we want "control" and are more than happy to put up with the lack of ease having more control invariably entails. Programming languages that are more like human languages? That sounds like documentation to me. And you know how much programmers love writing documentation.

    Computer programmers are not your typical breed of cat. To us, 200 milliseconds is a long time. Indeed, every day at work we manipulate space and time with hardly giving it a second thought. We are the poster children for OCD. We'd rather be "in the zone" struggling to craft an elegant solution to a very difficult problem than be in the real world struggling with very difficult people. We despise organized fun. We can't understand why "normal people" don't get the concept of indirection. We have working memories that rival those of Chimpanzees. To us, "average," "normal" and "easy" are swear words. And, truth be told, most of us would do what we do without pay if we could (and, judging by the number of open source programming projects on the Internet, a significant number of us can). We don't code to live, we live to code. We can't resist an intellectual challenge. If you want a programming project done quickly, just tell the programmer(s), "There's no way you can do that in a <pick-your-time-period>!" The best way to avoid a programmer at family gatherings? Give him or her a book of (mathematical) puzzles. You won't see him/her again until every puzzle in that book has been solved. Does any of this sound like (part of) a description of "your typical business person?"

    Programming computers isn't difficult because the tools aren't close enough to English (or whatever human language you prefer). Programming computers is difficult because highly-structured problem solving is difficult. And its not really something they teach in school. Probably because its as hard to teach as are the problems it is most suited to solve. It may, indeed, be something you can't teach because the student either has "it" or doesn't. To do it well requires mental discipline, above-average intelligence, attention to detail, the willingness (indeed, insatiable desire) to continually learn new concepts and tools and, most of all, an insane amount of persistence. Most people don't have that particular constellation of traits. Making programming tools simpler will not turn these people into programmers any more than the advent of power tools and embedded, computerized control/diagnostic systems turned people who weren't auto mechanics into auto mechanics.

    --
    One "Aw, Shit!" is worth 100 "Ata boys!"
  70. Anyone acutally look at rev4 by Anonymous Coward · · Score: 0

    Its still programing like COBAL with some gui glued on.
    The plugin they wanted you to install killed my backup dev server and had to wipe it.
    I dont think its gonna catch on because of the overhead for end users.
    Picutre this... "Wellcome to Slashdot install this plugin to view the site".
    I dont think you would if youve never been to slashdot before

  71. dBase / Clipper by daver_au · · Score: 2, Interesting

    Wow Deja Vu.
    I remember the xBase (dBase / Clipper etc) languages being touted as the programming solution for non programmers. Programmers would be out of jobs, everyone would be writing their own applications. My first programming job when I left University was writing business applications in Clipper.

  72. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  73. It will be just as successful as previous attempts by shutdown+-p+now · · Score: 3, Insightful

    ... which is to say, not at all.

    The idea is not new, and something like this has been tried pretty much since the notion of a programming language higher-level than assembler was invented. Most of them die straight away. A few enjoy brief prominence, but then die anyway (e.g. dBase and dialects, and many other "4GL").

    Very few survive and take over some niche, but by that time they've inevitably strayed from the original "can be understood by any random guy" design goal. One example of such is SQL - yes, originally, it was intended to be a language in which managers and like-minded non-techies could easily write queries for reports etc. Yeah, right... every time I'm explaining why you can't write WHERE after GROUP BY, and have to use HAVING instead, I chuckle to myself.

  74. 90% claim is fake by bbn · · Score: 2, Insightful

    One of the astro-turf comments in TFA reads like this:

    "Even though ‘90-per cent less code than traditional languages’ reads like a big claim, it is valid one.

    If you have a string you want to extract the first 3 characters of the second word on the 5ths line from and display it in an alert box, how many lines of code would you need to write in traditional languages? In rev this is a one-liner.

    answer char 1 to 3 of word 2 of line 5 of theString /* where theString is a variable that holds the content */"

    Of course any competent programmer can do the same in just as little code. For java it would be something like this:

    alert(theString.replaceFirst("(.*\n){4}\\s*\\S+\\s+","").substring(0,3));

    or

    alert(theString.split("\n")[4].trim().split(" +")[1].substring(0,3));

    This is roughly the same amount of code. Not 90% less.

    "Text processing" is apparently touted as one of the strong points of the language. Yet, I am sure old fashioned perl and regular expressions are likely more concise and powerful. As shown above, even java can compete.

    How would this fare with real programming tasks? First order functions? List comprehension? Closures? A sound typesystem? You could go on forever.

    These topics seem to be ignored. This is a VisualBasic clone, not an attempt at a language that you would create "real" programs in.

    1. Re:90% claim is fake by Blakey+Rat · · Score: 1

      These topics seem to be ignored. This is a VisualBasic clone, not an attempt at a language that you would create "real" programs in.

      I love snobbery.

      Praytell, what would make an application written in VB *not* a "real" program? What definition of the word "real" are you using here, exactly?

    2. Re:90% claim is fake by bbn · · Score: 1

      Apologies for using "real". There is nothing "not real" about any application. However Microsoft never tried to marketing VB as something it isn't. These guys do.

      What I meant is that these are languages that are mostly used in a specialized niche. Mostly for making easy GUIs for custom applications on top of office applications or asp.

      If you had a language that really could reduce code by 90%, I would want to use that for everything, including system programming. It appears only their marketing people believe this language could do that. It is clearly not designed to be general purpose.

    3. Re:90% claim is fake by MerryOtter · · Score: 1

      Aren't you making the point? Your examples of one-liners are not something I would consider "human-readable." It probably took a lot more effort to construct them, too. Why should a decent programming language require such byzantine constructions in order to be considered "real?"

    4. Re:90% claim is fake by bbn · · Score: 1

      I did not claim it was as readable. My post was about the claim of 90% reduction in code size.

      Few languages require such "byzantine constructions" to do this task, provided it is permitted to use a library designed to the task. It would be trivial to make a java library that allows one to write something like:

      new WordParser(theString).line(5).word(2).chars(0,3)

      If it was very useful that library already exists somewhere.

      Having powerful tools available means you are not stuck when your custom word parser library suddenly does not fit the task at hand. It might require a higher level of education or experience to use such more powerful tools. Anyone with that education or experience would not want to use a simplified language like this.

      I do not think they have a XML parser build into the standard library. So how exactly would one make a one liner to extract some value from a XML file? Any language with xpath support can do that with a one liner. Choosing a one liner that fits your language and standard library does not really prove or show anything much about your language compared to others.

    5. Re:90% claim is fake by RunRevKev · · Score: 1
      It seems you may have made the point in favor of revTalk and not even realized it. Assuming no previous knowledge of programming languages, which would you rather learn?

      answer char 1 to 3 of word 2 of line 5 of theString

      Or:

      alert(theString.replaceFirst("(.*\n){4}\\s*\\S+\\s+","").substring(0,3));

      Get a single one of those symbols wrong and it won't work.

      And what about maintenance? You can read the revTalk example but you'll have to read the other example very closely to remember what it does. In this example you've found a way to do something with a similar number of lines of code, but perhaps we could say that the revTalk requires rather less thought in writing that line. The productivity benefit may still be there.

      BTW, if you are familiar with regex and therefore want to continue using them, they are fully supported in revTalk, too.

    6. Re:90% claim is fake by kuzb · · Score: 1

      I'm in complete agreement with you. A lot of what they claim is the "power" in this language is just a syntax turned up to maximum verbosity. It's not even elegant. It's just long and needlessly wordy.

      Other languages read as English far better. Ruby for example has a good balance between human readability and concise syntax. The only thing revtalk is revolutionizing, is the amount of meaningless bloat we place in the source code. The bottom line is that once you're past the cutesy cherry picked examples provided on their site, the syntax of the language does more to get in your way than it does to help you.

      Since I was still looking for some kind of reason to like this language, I put all this aside and thought to myself "surely they must have something interesting for database interactions". After all, most web applications rest on some kind of data storage, and since it's so important, they must have a way to make this easier to understand for novice programmers. I found out quite rapidly that it implements nothing to ease the pain of talking to a SQL server. No ORM or "better" way of describing SQL or stored data structures was to be found.

      I think revtalk will develop some kind of following. However, I don't think any experienced programmer would want to touch it after spending an hour messing with it. Novice programmers who eventually wind up becoming intermediate/advanced programmers will probably drop it like a hot potato once they start to explore alternatives.

      --
      BeauHD. Worst editor since kdawson.
    7. Re:90% claim is fake by Blakey+Rat · · Score: 1

      Well, since the vast, vast majority of programming is not systems programming, dismissing this product on that basis alone seems goofy to me. (Like the other guy in this thread who dismissed it because it won't run on 1K embedded chips... sheesh.)

      I think your definition of "general purpose" and mine are different. I would argue that languages like C and C++ are specially purposed for systems programming, and shouldn't be used for anything else, whereas languages like C# or VB can and should be used for any purpose *other* than system programming. This relies on the fact that systems programming is a very small percentage of software development, though.

      I still counter your assertion. VB is a general purpose programming language. It's not suited for systems programming, but then again, there are hundreds of programming languages that also have that distinction. It does include libraries for easy integration and automation of Office applications, but that isn't what it was designed to do. (You might be thinking of VBA, which is the scripting version of VB, and designed for that exact task. But it's a different language. Or maybe you're thinking of Access, I dunno.) There's nothing stopping you from using VB to, for example, reproduce Photoshop.

      Now, VB might not be a general purpose programming language you *like*, or one that you feel has a userbase of solid programmers, but that doesn't change the fact that it is one.

    8. Re:90% claim is fake by bbn · · Score: 1

      Is a new library all this language brings to the table?

      Assuming someone else made this class available to the novice:

      public class EnhancedString {
          private String input;
          public EnhancedString(String input) { this.input = input; }
          public EnhancedString line(int number) { return new EnhancedString(input.split("\n")[number-1]); }
          public EnhancedString word(int number) { return new EnhancedString(input.trim().split(" +")[number-1]); }
          public EnhancedString chars(int begin,int end) { return new EnhancedString(input.substring(begin-1,end)); }
          public String toString() { return input; }
      }

      The novice programmer could then simply write:

      new EnhancedString(theString).line(5).word(2).chars(1,3)

      How is that any less easy to write or read than:

      answer char 1 to 3 of word 2 of line 5 of theString

      Notice how ridiculous easy it was to implement a library class for this in java.

    9. Re:90% claim is fake by I_want_information · · Score: 1

      If you were a novice programmer, or taught them, you would know the answer to your question.

    10. Re:90% claim is fake by MerryOtter · · Score: 1

      Rev includes an XML library, standard.

      The claim is "10x more productive" and the fact one isn't forced to struggle constructing and debugging a regex expression (which Rev actually supports as well) is part of the productivity boost. I find your one-liner examples to be time-consuming to compose, difficult to read, and undesireable to debug.

    11. Re:90% claim is fake by bbn · · Score: 1

      "The claim is "10x more productive""

      Yes that is ALSO a claim. And it is ALSO a lie. Although not as easy to refute by simply demonstrating more concise code in just about any other language.

      From the runrev.com website:

      "Rev is easy to learn and use, requires 90% less code, and can deliver a 10-fold increase in productivity over traditional languages."

      http://www.runrev.com/company/about-us/

      All said it is probably a fine language for some. Its creator just has a lot of bad karma by marketing it with lies.

    12. Re:90% claim is fake by MerryOtter · · Score: 1

      The claims may be bold, but I wouldn't say they are lies.

      Suppose you had a problem to solve. Approach A is to describe a solution to it in plain English that any layman can understand. Approach B is to describe a solution in pure machine-language code at the CPU instruction level.

      At the end of the exercise, the CPU instructions probably occupy less bytes. But that does not mean that the machine-language solution was a more productive path. The productivity gain here has to do with the fact that it's very difficult for humans to think in pure machine code -- that's one major reason why we have programming languages in the first place.

      Sure it's an intellectual accomplishment to conceive of the pure machine-code solution. It probably requires more skill than the layman version. It could execute orders of magnitude faster. But at the end of the day, is it more "productive?" No, not if the difficulty and specialized expertise to create it put that solution out of consideration.

      I think we have to ask ourselves why programming is becoming more and more of an "ivory tower" profession. When computers were first introduced, everyone focused on learning BASIC in order to create software. Now we have people steering apps like Excel (at best), very few "programmers." Programming has all but disappeared from K-12 curriculums, and struggling in higher education. There have been many articles about this.

      I think it's a good thing to have a language closer to English, that can appeal to a broader range of people.

    13. Re:90% claim is fake by bbn · · Score: 1

      Since you do not like the Java syntax, here is a small Scala library that emulates the revTalk library:


      class EString(input: String) {
          def line(number: Int) = new EString(input.split("\n")(number-1))
          def word(number: Int) = new EString(input.trim.split(" +")(number-1))
          def chars(begin: Int) = new Object { def to(end: Int) = new EString(input.substring(begin-1,end)) }
          def print() = println(input)
      }
      implicit def toEString(s: String) = new EString(s)

      val theString = """line1
      line2
      line3
      line4
      abcd efgh ijkl
      line6"""

      theString line 5 word 2 chars 1 to 3 print

      This script has the output "efg"

      So now how exactly do you think:

      theString line 5 word 2 chars 1 to 3 print

      is time-consuming to compose, difficult to read, and undesirable to debug, and yet none of that applies to:

      answer char 1 to 3 of word 2 of line 5 of theString

      Is it because the later as the word "of" twice? That could be added to the scala library, but I do not feel like it. Is it because it has to be read backwards from any other language? That could be done too, but I simply refuse to make it that hard to understand.

  75. You are dumb down unless you program with... by 3seas · · Score: 1

    on off switches. Everything else is just some higher lever Abstraction!

  76. Why is it always programming? by Zarf · · Score: 1

    Why can't someone attack a profession like Law or Medicine with a tool like this? Seriously? Imagine:

    "Our new Suem 4.0 system makes it possible to practice law without passing difficult bar exams!"

    Don't hire expensive lawyers to represent you in court when you can use Suem 4.0 to help you defend yourself! Defend yourself against Murder charges! Rape charges! or even Embezzlement! Now anyone can practice law!

    "Our new Surge 4.0 system makes surgery possible with 90-per cent less precision!"

    Why pay for expensive surgeons when you can operate on your own brain! Perform tumor excisions and Lobotomies in just minutes of training!

    --
    [signature]
  77. +1 by pkbarbiedoll · · Score: 1

    thanks for catching & correcting.

    1. Re:+1 by hisstory+student · · Score: 1

      Thanks for not taking offense.

      --
      Heard any good sigs lately?
  78. So what if it's easier or "dumber"? by Infernal+Device · · Score: 2, Insightful

    So what if it's easier or dumber or whatever?

    Most of us aren't out there revolutionizing the world with our leet skills - we're pulling numbers out of a database and shuffling them into some other database. It happens - we get paid.

    If this language gets some of the shovelwork off my back and frees up time for me to solve some interesting problems, then I'm all in favor of it. If it provides a way for me to earn an income (or someone else to) then I'm all in favor of it.

    If it gets a few more people interested in programming, I think the world can handle that. Just because there's a new language on the block doesn't mean that all the other languages are suddenly useless. After all, we still have stuff written in COBOL floating around.

    The big picture guys will still hire programmers to do what we do because we can think about a task and break it down into it's component steps.

    --
    "My God...it's full of trolls!"
    1. Re:So what if it's easier or "dumber"? by BitZtream · · Score: 1

      The problem is that unless you are a real programmer, you'll get caught by the same bugs as any other languages like this.

      VB is easier for most people to learn than C. VB programmers still screw up basic logic which results in bugs and crashes.

      The language isn't the problem, although some are better than others are a particular class of problems.

      The problem is that the programmer still has to actually be able to say what they are thinking, and in most cases say MORE than what they are thinking in order to catch situations they were not exposed to when they started.

      No language can fix that, especially not english. English is a horribly interpretive context based language. You can take two people, twins for example, who have communicated with each other for their entire lives, set up the situation right, one of them can make a single statement to the other and they will both view it with entirely different meanings since so many words have multiple definitions, some of them will fit in both, and even with twins, sometimes one will seem to fit better than the one that was intended.

      Last I checked, we were still making mouse and cat-like brains on massive supercomputers that didn't run anywhere near real time. With that in mind it should be pretty clear that a language like this don't really make it any easier to program, they make it harder to write predictable code to anyone without intimate knowledge of the rules of the language, made worse by its close ties to a language that they programmer will think they understand.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  79. Attractors by phorm · · Score: 1

    The problem I've found with some of the so-called "easier" languages is they tend to attract the lowest common denominator, and they tend to go quickly from "easy" to hard or nearly impossible for more complex tasks that are outside their parameters. This leads to a lot of people without proper education making "applications" which suck horribly, or that do a number of extremely nasty workarounds in order to do a given function

    It's not a set rule, but I've seen enough horribly mangled pieces of "simple" programming to believe that it's fairly common.

  80. well... by zomgman · · Score: 1

    ++++++++++>[->++++++++++++>+++++++++++>++++++++++>+++>++++++++++>++++++++++---.>+++++.>+.>++.>--.>++.

  81. You cant dumb programming down. by unity100 · · Score: 1

    there will be always lower layers with which people will need to work with, when the needs arise. it has never been different.

    on top of that, every software develops its own characteristics and workings after they grow big enough. regardless of what level programming language they are written on.

    the most blunt, straight example for this are the php 'scripts' of a few years ago. over years, they have developed and grown to such a level that they have become expertise areas in themselves, and in places like elance, rentacoder, those expertises are specifically being asked for, instead of being labeled as 'php developer'. you may see 'phpbb expert', 'oscommerce developer', 'drupal wiz' requests a lot more than straight 'php developer' requests and so on.

    it seems that this doesnt change with platform, and always holds true.

  82. The real dumbing down... by Waccoon · · Score: 1

    Learning only one language.

  83. Sandboxes that ban unmanaged code by tepples · · Score: 1

    Isn't the best approach to develop fast, identify the bottlenecks and then rewrite those parts in a faster language, like Python C modules?

    That would work except in cases where the platform's sandbox policy allows managed user programs (e.g. Python, Java, Lua, C#) but bans unmanaged modules (e.g. C, except for the subset of C++ that can run in the CLR). Java applets run in such an environment, and so do Xbox 360 games from smaller firms.

  84. If it's not bare-metal assembly, by MrMista_B · · Score: 1

    it's dumbed down.

  85. Dumbed down = boring by msobkow · · Score: 1

    I've been a hard core C/C++ programmer for years, but over the past few years I ended up working with 4GLs and "smart" frameworks. For the things they did well, they were great. You could spew out functionality at a much faster rate than with C/C++ or Java. But if you tried to do anything "out of the box", you tore your hair out trying to get around the limitations of the 4GL.

    Most recently I took up functional programming with Erlang. It's taken me about 6 months to become truly proficient with the language, but it's very powerful for developing concurrent systems and services. Like any other language, it has it's limitations (for example, the ODBC interface casts 64-bit integers from the database to strings instead of true 64-bit integers. Integers are "unlimited" in Erlang, but when you have to send things over the wire the lack of true 64-bit integers is a real pain.)

    I've worked with innumerable frameworks over my career. Each had certain tasks they were well-suited for. None was a generic "solves all problems" toolkit.

    The one thing I did learn is that programming with "smart" frameworks and 4GL's is boring. Only the most technically-challenged programmers seem to stick with them, for the simple fact that there is nothing to make the job challenging or interesting when using such tools. They don't "dumb down" programming -- they just simplify their set of special cases and drive away the programmers who actually understand how machines work and how they process data. Unfortunately that also means that the teams of 4GL programmers are left helpless when they have to tackle an out-of-the-box problem, because they simply don't have the skills and experience to "bend" the tool to their will.

    --
    I do not fail; I succeed at finding out what does not work.
  86. Obligatory Futurama by Blakey+Rat · · Score: 1

    Obligatory Futurama:

    Leela: "Uh, g- uh, getting back to the, uh, matter, uh-uh, if it please the court... Fry, there's nothing else here. You only wrote two pages of dialogue!"

    Fry: "Well, it took an hour to write. I thought it would take an hour to read."

  87. Feasability and Readability by MerryOtter · · Score: 1

    I think there are two key advantages to revTalk.

    1) It enables people who are not full-time programmers to undertake projects they normally wouldn't consider doing otherwise. It's possibly true that someone who knows a more traditional language could write something that executes faster or more efficiently, but if you reduce a five-hour process down to 10 minutes, you're still getting a significant boost in productivity, even if "real" programmer could write code that did the process in 3 minutes.

    2) It is definitely more readable, and often shorter. As an example, there was a "readbility challenge" for coding a while back. The task was to write a routine that would determine all possible two-word anagrams given a starting word and a word list. See http://selfexplanatorycode.blogspot.com/

    I can't post the code of the winning entry; Slashdot reports "Filter error: Please use fewer 'junk' characters. But you can find it here: http://www.reddit.com/r/sdcc1/comments/6wru4/leonardo/

    --------
    And here is the code in revTalk:

    constant alphabet = "abcdefghijklmnopqrstuvwxyz"
    on mouseUp
      put "documenting" into sourceWord
      put url "http://someserver.com/wordlist.txt" into wordList
      repeat for each character c in alphabet
        if c is not in sourceWord then filter wordList without ("*" & c & "*")
      end repeat
      put sortWord(sourceWord) into sourceWord
      repeat for each line firstWord in wordList
        repeat for each line secondWord in wordList
          put firstWord & secondWord into testWord
          if the length of testWord is the length of sourceWord then
            if sortWord(testWord) is sourceWord then
              put firstWord && secondWord & return after anagramList
            end if
          end if
        end repeat
      end repeat
      put anagramList
    end mouseUp

    function sortWord theWord
      repeat for each character c in theWord
        put c & return after theSortedWord
      end repeat
      sort theSortedWord
      replace return with empty in theSortedWord
      return theSortedWord
    end sortWord

    It is shorter and (in my opinion) much more readable.

    1. Re:Feasability and Readability by ledow · · Score: 1

      Thanks for the post with some source code, it's the only way I can judge a language and I didn't want to hunt it down.

      And... Yeurk. That might be more readable to some people but I think I just lost some braincells.

      First, the use of the word "return" to mean, in this case, line return. Nobody I know calls them line returns except established programmers (i.e. those who know the historical difference between carriage return and line feed), and people who deal with typography in some way. Return actually *means* something in 99% of programming languages, if not as a keyword than as a name for a particular program flow.

      And it reads like someone "pronouncing" pseudocode or some kind of BASIC. I don't see how this line is *at all* intuitive:

      "if c is not in sourceWord then filter wordList without ("*" & c & "*")"

      It was fine right up until that last bit, which could have a billion different interpretations. I assume it's doing wildcard removal of anything that doesn't have the character c in it but, hell, that's just because I can already see what the code is trying to do.

      The syntax is *too* loose, so loose that you will stray into incorrect meaning by accident. Possibly it's more "readable" to a novice, but they probably aren't aware of the subtleties of exactly how it could go wrong, by a simple mis-wording or instruction-order-problem. I can read code and think "Yeah, that'll work" when in actual fact if you look closely, there are critical errors that turn it into gibberish. A novice might be able to read that code, but if they could know for sure whether it did what they want without unintended side effects is another matter.

      And it seems *very* long-hand. Too much, in fact. I'm now stranger to lines of code that need to be wrapped because they hit the column limit, and in this language it seems even more likely to occur.

      50 or so lines of BASIC with a simple comment every now and then would do the same job much more "intuitively" to me. And I've taught many people programming in my time (I taught most of my school's programming classes when I was supposed to be a student of that same class!), from scratch. That language is truly horrible and no better than any other. Sure, once you're used to it, and if it was your first language, you'd think it was "good", but... no thanks.

    2. Re:Feasability and Readability by MerryOtter · · Score: 1

      Interestingly, revTalk does also use "return" to return a value from a function, as shown at the end of the sortWord handler. But we have different meanings for words in English, too. I think it's nifty that he compiler knows how to evaluate these terms "in context."

      FYI, one can use "cr" or "crlf" or "numtochar(13)" as synonyms for "return" in the context of strings, but I like "return." The idea of synonyms in code probably makes it that much messier and aggravating for some! :)

      I'd like to see the 50 lines of BASIC code. (Which would be about twice as long.)

      At least you agreed that with zero previous knowledge of the language, you could "already see what the code is trying to do." I think that would be true for even non-programmers, and is a testament to the self-documenting strength of revTalk.

      The main idea here is that revTalk appeals to people who are not keen on traditional programming languages. It can therefore enable them to accomplish things they wouldn't normally consider trying, either because of the expense or time involved.

    3. Re:Feasability and Readability by ledow · · Score: 1

      "Interestingly, revTalk does also use "return" to return a value from a function, as shown at the end of the sortWord handler. But we have different meanings for words in English, too. I think it's nifty that he compiler knows how to evaluate these terms "in context.""

      I don't... overloading operators is a pain in the ass to the novice programmer, because they assume the computer will "just know". A lot of the time they are right, but when they are wrong, it doesn't even occur to them where or why. There are two approaches to poor syntax - error about it, or accept it and try to make sense. This seems to be a "try to make sense" language, which can cause a *lot* of problems with novices.

      "FYI, one can use "cr" or "crlf" or "numtochar(13)" as synonyms for "return" in the context of strings, but I like "return." The idea of synonyms in code probably makes it that much messier and aggravating for some! :)"

      Alternatives to a particular name are always welcome - everybody likes an alias, it just aids learning by providing choice, but that's a particularly horrible example, that's all. I literally had to read the whole program to work out what that "return" was because I was trying to interpret it as a function return or keyword. And I noticed that I found the use of && and & quite odd, but maybe my brain wasn't into it. "return" is ambiguous (newline would have been better, possibly?) and confusing. Though why it's even necessary to return-space a set of strings in order to sort them is another matter entirely (it suggests to me that strings are inherently unbounded, but I doubt that would be the actual case).

      "I'd like to see the 50 lines of BASIC code. (Which would be about twice as long.)"

      It'd be messy, lots of loops, but possible.

      "At least you agreed that with zero previous knowledge of the language, you could "already see what the code is trying to do." I think that would be true for even non-programmers, and is a testament to the self-documenting strength of revTalk."

      I'm a programmer (not professionally but I program as part of my job and in my spare time)... that means I can tell what code is *trying* to do just by the names of functions and outlying structure, even if I don't know the language. If I'm brutally honest, it took me longer than most with this language and if it hadn't been for the variable with "anagram" in the name, I would have been stuck. I don't want to push that down to say that *all* novices would do the same, but I would find it highly unlikely a novice programmer could understand that code at all, and one would need several weeks/months of using Rev as a first language to even get close if they'd never programmed before.

      Last month, I taught BASIC to a 15-year-old (who was into "old" computer stuff but had never programmed, so I just demonstrated the concept of programming using BASIC) in an afternoon. He came back the next day with a game he'd written - and we're talking old-fashioned "I want a dot here, a letter ther" kind of game, not some DarkBASIC template. I don't claim that BASIC is "good" or easier to learn, but the point was that the structure of a program (including subroutines, program flow, variables, keywords, etc.) can be taught in an afternoon to the point that someone can replicate it and understand it. However reading *that* program would have given him a lot of trouble in this language, even if I'd started him on that. Damn, even I struggled to find meaning and separate variables/keywords/structure.

      "The main idea here is that revTalk appeals to people who are not keen on traditional programming languages. It can therefore enable them to accomplish things they wouldn't normally consider trying, either because of the expense or time involved."

      I appreciate the idea, but I've seen a lot of novices and I don't think it works. There will be ten people totally put off by that code for every one that it "clicks" with. And those people would have clicked with any language, most

    4. Re:Feasability and Readability by bbn · · Score: 1

      "It is shorter and (in my opinion) much more readable."

      Shorter? Here is a Scala implementation:


      import java.io.{FileReader,BufferedReader}

      def sortWord(word: String) = word.split("").toList.sort(_<_)
      val sourceWord = sortWord("documenting")

      def makeSet(r: BufferedReader, s: Set[String]): Set[String] =
          r.readLine match { case null => s; case word => makeSet(r, s + word) }

      val wordList = makeSet(new BufferedReader(new FileReader("wordlist.txt")),Set()).
          filter { word => word.split("").forall( c => sourceWord.exists(c==_) ) }.toStream

      println(wordList.flatMap(w1=>wordList.filter(w2=>sourceWord==sortWord(w1+w2)).map(w1+_)).toList)

      That is 8 lines of Scala vs 28 lines of revTalk, not counting blank lines.

      Is it more readable? Maybe. There is more code read anyhow. Personally I thought the Python program won by a far margin on that.

      "put firstWord && secondWord & return after anagramList"

      How am I supposed to guess what && is compared to & ? It is not any different from knowing what _ does in the Scala program.

    5. Re:Feasability and Readability by Anonymous Coward · · Score: 0

      I agree with your comment about BASIC which is probably the most intuitive of all languages for english speaking programmers.

      Nigel Winterbottom

    6. Re:Feasability and Readability by MerryOtter · · Score: 1

      I guess what you're missing is that a lot of people consider things like

        r.readLine match { case null => s; case word => makeSet(r, s + word) }

      to be impenetrable gobbledygook. The fact they have no interest in learning that kind of syntax is in no way connected to their ability to break large problems down into component parts, think logically, or come up with effective algorithms.

  88. Speel chekur fur my kode... by marciot · · Score: 1

    The problem with a programming language based on English is that now companies will have to train their programmers on English spelling.

  89. Syntax won't help; cooperation might by Animats · · Score: 1

    An "English-like syntax" won't help. It's been tried, starting with COBOL-60. Things to look up: "The Last One", "ZoomRacks", "HyperCard". The programming language of HyperCard, HyperTalk, was amazingly similar to COBOL-60.

    But that's not the right question. The question is, can programming be made easier by having the computer help the user more? Not with command completion or syntax coloring, but with something that has more of a clue about what the user is trying to do.

    It's worth realizing that spreadsheets are the predominant "user programming" system. Within their domain, they're straightforward.

  90. English by Anonymous Coward · · Score: 0

    1 / 10 is not equal 0.1 any way

    And there is no make_me_feel_good() or do_what_i_want()

    Put "runrev" to the furnace

  91. really only a few questions matter by pydev · · Score: 1

    (1) Does it get the job done?

    (2) What it completed on time?

    (3) Was it within budget?

    If the answer to these questions is "yes", then the tool did its job. And, in my experience, a "dumbed down" language often works better than other languages. C/C++ software often fails because of (2) and (3).

    Sadly, Hypercard, Applescript, and Revolutions aren't "dumbed down", they are simply "dumb": they are just as complex as many other programming languages, they just use a syntax that gives the false appearance of being "easy". It seems easy because people looking at it think "hey, this is just like natural language, I can figure out what this does". That's a good hook to get people programming, but it gets them stuck with an inferior tool.

  92. Some misunderstandings here by Anonymous Coward · · Score: 0

    I'll just address a few things mentioned here. I'm a professional developer who's been using Rev for many years. Sorry for the anonymous account but I'm unwilling to create an account here just for a single response.

    > I do wonder what the limits of this language are feature-wise.
    > What type of applications could you NOT make with this language?

    I can't think of much, there are few limits. When Rev was primarily for writing desktop applications, it could also be used on the web as a command-line CGI, but that's all. Now that the web plugin has been released it can replace PHP and similar languages (I have a whole web site built with their server-side product.) It's major strength is string manipulation, but it has all the elements and structures you'd expect of a robust programming language. Users have created commercial apps, utilities, web pages, CGIs, games, database programs (it's a good front end for SQL), shell front ends, you name it. Coding is very, very fast. It's no lie that it takes only half the time as other languages.

    > [Self-documenting code] Where the naming and flow make it perfectly clear
    > what the program is doing without any further explanations.

    Couldn't agree more. Since the language flows and reads like English, it self documents better than any other language I have seen. I suppose it's all what you're used to, but when it reads like English it's pretty self-documenting.

    >Dumbing down programming can only get you so far towards the democratisation of
    >programming : the most dumbed down programming language still requires a user
    >whose mind can express algorithms.

    Yes, and well said. The Rev mailing list is full of programmers who have converted from other, more traditional languages. They now prefer Rev. Some of them have been coding from the punch card days (I know because there was recently a humorous discussion about that) and one developer even wrote a Rev app that simulates punch card programming. Pretty funny. We have Java, C++, PHP, Javascript, even some old assembly programmers who now embrace Rev. I'm a bit disturbed by the term "dumbing down". The language itself isn't dumbed down. It's just verbose. But that is part of its beauty as well. More typing? Sure, some. Less coding? Absolutely. You can read in an entire text file of any length into a variable with no repeat loops required (though you could write it that way if you wanted.) Less code.

    >Mind you I only skimmed a couple pages in the tutorial but it's just a
    >programming language adding more words and more typing because it may do
    >something like spell out add rather than using +

    Not exactly. You can use "+" if you want, it's in the language (and most of us do use it.) The difference is not that words are spelled out. The difference is that many whole *concepts* are spelled out. That's what makes it so fast to write. Where you need many lines of code in other languages, you only need one line in RevTalk. I have written string extractions in other languages, it's painful. In Rev, this works: get word 1 of "my dog has fleas". Someone mentioned flow -- this, to me, is good conceptual flow. It says exactly what I'm doing.

    >the syntax of rev4 seems far too verbose, not nearly enough parenthesis.

    LOL. You can add as many parentheses as you want and it will still work. The deal is, you don't have to. If you are happier with: get (word 1 of ("my dog has fleas")) that'll work too. Both these work fine:

    if word 1 of myString = "my" or a = b then...

    if (word 1 of mystring = "my") or (a = b) then...

    >it appears I need to install a plugin to view samples, which is a bit silly - I
    >just want to see the language

    Everything is on the web site, and you don't need to install a plugin. Developer materials are here (the lessons are a new addition so aren't as complete yet as the other stuff): . Browse the extensive dictionary for a good insight into how the language works.

    >The idea is not ne

  93. Coding also takes effort! by jonaskoelker · · Score: 1

    and it takes both skill and talent to pull off a well-written application

    In light of the recent article about achievements in games, http://games.slashdot.org/article.pl?sid=09/11/26/0628247, and the broader implications of those ideas, I'd like to point out:

    Becoming good at programming, and writing good applications, is something that you can achieve if you put in enough effort.

    Back when I just learned C, I had the "joy" of looking at undecipherable stack traces (with no symbols) every time my programs would segfault. At my current skill level, they probably would have been easy to figure out, but they weren't back then. Yet, I stuck to it and stubbornly printf-debugged my programs, eventually learning the patterns and principles that make for good C programs.

    If you want to become a programmer, or a good programmer, or a better programmer, effort does pay off. Big time.

    1. Re:Coding also takes effort! by ScrewMaster · · Score: 1

      If you want to become a programmer, or a good programmer, or a better programmer, effort does pay off. Big time.

      If software is your thing, you'll put in the effort without thinking twice. But, see, that's not enough, not if you want to be a truly good programmer, or even a great one.

      There are very few great programmers, just like there are very few great painters, mathematicians, scientists of all stripes, writers, musicians, engineers or indeed, those of any creative profession. True art is something rarely achieved even by those who are capable of it. The good news for the mediocre is that, for the most part, what the business world wants is the merely serviceable.

      And if they continue down the road described in TFA, that's what they're going to get. The problems, suits are going to expect great results from this particular brand of snake oil (you know how it's going to go: "We just spent thousands of dollars on these tools, and that's the best you can do?") In the end, they will have to pay for the talent they needed, but they'll be out all the time and money they spent trying to avoid hiring said talent in the first place. But that's entirely okay ... it just gives any smarter competition a leg up, that's all.

      --
      The higher the technology, the sharper that two-edged sword.
  94. RPGMaker does this nicely by WizzardX · · Score: 1

    One interesting example of "dumbing down programming" is the RPGMaker series, particularly the VX and XP versions.

    You can do basically all of your game eventing, scripting, resource editing, etc, a using user-friendly gui, no need to touch programming code. And you can do some fairly involved "eventing" logic, which is basically a very high level scripting language that you edit through user-friendly dialogue boxes.

    But you can also start digging into the lower details. Actually, the core of the RPGMaker game engine is Ruby code, including an interpreter, which loads, interprets, etc the above resources. And that engine is very easy to extend, using custom Ruby coding. And in fact there is a huge number of custom scripts you can download from third parties to customize your games that way. Basically you can customize just about anything that way, except for the user-friendly editor that most people use.

  95. The pitfalls of "english-like syntax" by jonaskoelker · · Score: 1

    If the language is english, suddenly you can bypass all those expensive, crotchety programmers.

    And the thing is, even if the syntax is word-heavy rather than symbol-heavy, it's still not easier to learn!

    Why not? Because you still need to understand the weird, contorted formal grammar of a programming language. How do you say widget.visible = true in English? "Set widget's visible to true"? "Set the visible of the widget to the value true"? "Set visible of window to true"?

    Furthermore, you also need to know what you can and can't talk about. How do you come up with "Import the sha1sum function from the cryptography package" on your own? You need to read the standard library documentation (or at least the index) to know that this is a sensible thing to say.

    One thing that using a word-heavy syntax might do is make it easier for new programmers to understand the meaning of what they're writing. Does = test for equality or does it assign? Which one was == again? It's easier to understand "if myvariable equals 10 then [...]" than "if myvariable == 10: ..." if you don't have a good memory for symbolic syntax. However, that's the easy part and the part you learn as one of the earliest things.

    Being word-heavy is good for some things. I don't know that everyone agrees which things those are, nor that everyone agrees on the value of being good at those things. In fact, I think people disagree on those :)

    1. Re:The pitfalls of "english-like syntax" by sim82 · · Score: 1

      How do you say widget.visible = true in English? "Set widget's visible to true"? "Set the visible of the widget to the value true"? "Set visible of window to true"?

      or more basic, wouldn't a non-programmer expect it to be just 'make widget visible' or 'show widget'? In the end it seems to come down to introducing shitloads of special purpose keywords.

    2. Re:The pitfalls of "english-like syntax" by eddy+the+lip · · Score: 1

      Why not? Because you still need to understand the weird, contorted formal grammar of a programming language. How do you say widget.visible = true in English? "Set widget's visible to true"? "Set the visible of the widget to the value true"? "Set visible of window to true"?

      Yeah, I think this looks easier to someone with no previous exposure to programming, but I would be spending all my time in the docs trying to figure out which English construct was the right one. I spend enough time looking up library calls and parameters - I don't need to be referencing the language syntax all the time as well. Terse == good!

      Context switching would be a bitch, too. Going between programming languages takes me a few minutes to re-align myself. If I had to reprogram my brain switching between English and almost-English, it would get ugly ;)

      --

      This is the voice of World Control. I bring you Peace.

    3. Re:The pitfalls of "english-like syntax" by jonaskoelker · · Score: 1

      I agree (you kinda' make my point), except on one point:

      If I had to reprogram my brain switching between English and almost-English

      How many different-but-very-similar programming languages do you know? How big a problem do you have switching between them? At a very boring syntactical level, C, C++, java, javascript, php and perl (and probably a few others I can't remember right now) are very similar ("if (condition) { [...]; }"). They're also semantically somewhat similar, yet you manage to write in the language you intend to.

      Wouldn't the same thing be true for english and ${english-like programming language}?

    4. Re:The pitfalls of "english-like syntax" by eddy+the+lip · · Score: 1

      How many different-but-very-similar programming languages do you know? How big a problem do you have switching between them? At a very boring syntactical level, C, C++, java, javascript, php and perl (and probably a few others I can't remember right now) are very similar ("if (condition) { [...]; }"). They're also semantically somewhat similar, yet you manage to write in the language you intend to.

      Wouldn't the same thing be true for english and ${english-like programming language}?

      Yeah, that's pretty much the list - add python and take out C++ (and it's been a looong time since I've touched C, but I'm very glad I learned it.) And they are of course very similar. Sometimes it takes me a few minutes to remember to stop typing '$' in front of a variable, or I'll use '->' instead of '.' I'll occasionally stutter over an idiom as well - I try and play to a languages strengths, and even if the "PHP way" will work fine in, say, javascript (*), I tend towards a more functional approach in the latter; it just fits.

      If I was working daily in an English-like language, I could see myself at the liquor store saying something like "put beer in myBasket and add one wine." It's already hard enough coming out of the code hole!

      (* yes, I've outed myself. My bread and butter these days comes mostly from PHP & javascript. I try and make the best of it ;) )

      --

      This is the voice of World Control. I bring you Peace.

    5. Re:The pitfalls of "english-like syntax" by Tablizer · · Score: 1

      And the thing is, even if the syntax is word-heavy rather than symbol-heavy, it's still not easier to learn!...Why not? Because you still need to understand the weird, contorted formal grammar of a programming language. How do you say widget.visible = true in English? "Set widget's visible to true"? "Set the visible of the widget to the value true"? "Set visible of window to true"?

      How about "show widget".
           

    6. Re:The pitfalls of "english-like syntax" by sydneyfong · · Score: 1

      Forget about everything.

      3 words:

      "Make it work."

      Or if you're polite, you might want to add "please".

      --
      Don't quote me on this.
  96. Just learn other languages better before comparing by Anonymous Coward · · Score: 0

    I just had a look at their php/revtalk comparison. They claim 50% less code. Well, I'm not PHP expert (I don't even like PHP) but this really shows incompetence on their side. For example in PHP they do 2 loops, one for removing stopwords and the other for counting remaining words. In RevTalk they do just one loop doing both things, which of course you can do also in PHP. And they use 5 php lines just to tokenize the input string (tolower, trim, preg_replace...) when you could just condense it all (and doing it better) inside the "for" line (as they ~almost~ do in revtalk). And they stupidly keep using tolower even inside the loops, where all strings have already been lowered. And they use 3 lines to print the sample output (1 line to set a variable to the sample argument, 1 line to call the function, 1 line to print output) but you clearly could do it in just one line as they do in revtalk. So the real message here is that revtalk is for clueless people :-)

  97. if only by jipn4 · · Score: 1

    The article is advertising disguised as a question, kind of the opposite of "when did you stop beating your wife".

    I suppose if you define "traditional languages" as C or assembly language, then you might save 90% of the code. Compared to other scripting languages, however, Revolution is a mess. The Revolution environment may help you get started programming, but it would almost certainly be a better and more effective environment if they dumped their awful scripting language.

  98. leave this discussion to ZDNet by dgallard · · Score: 1

    I think it is appropriate for this topic to be a source
    of discussion at ZDNet. Could we who read slashdot
    please be spared this waste of time.

    Thank you.

    Dennis Allard

  99. And if guns had health and safety warnings... by Anonymous Coward · · Score: 0

    The problem with typing rm -rf * isn't that the user doesn't know what it means. The problem is that they believe that they want to remove the contents of all folders... but in some cases, later realise that is not what they should have done. Making the command easier to read won't get rid of those mistakes.

  100. Revolutions, hype and hyperCOBOL by jandersen · · Score: 1

    I've noted two things about this,

    1) It builds on a language called hypertalk, apparently; this seems to be something like what you could imagine COBOL would look like if it had been designed today. Not that COBOL is a bad language as such, but as anybody knows who has ever had to maintain old COBOL programs, the fact that it is supposed to be sort of "human language" like is a hindrance rather than a help to understanding.

    COBOL, as well as hypertalk it seems, have been designed on the false assumption that what makes programming hard is the weird looking programming languages; the real truth is that programming is hard because it involves analysing a task in every detail, so you can write the code that does it, and it always turns out that doing even simple things encompasses a lot more detail than one would have imagined.

    2) Isn't this "90%" claim simply an iteration of the old one that used to accompany all the interface design tools? It wasn't true then, and it isn't now either of course. It is true that you can whip out a prototype in no time with such tools; but there is always so much more to design and programming than that. It's like Oracle Forms - you can easily make a simple application that allows you to input and retrieve data from a single table, but a real application will involve perhaps tens of tables with any number of triggers and constraints that have to work together; and of course, you don't just display the raw data on-screen, there will be name lookups, pictures etc etc. Programming is complicated because real life is.

    The article asks if this sort of "ease of programming" will dumb down programming? I don't think it will get worse than it is. Bad programmers will produce crap, good one will produce good programs; and Darwin is our friend and benefactor here (that's Charles Darwin, not the OS, BTW).

  101. Too easy!? Too powerful!? Too elegant!? by Baldrson · · Score: 1

    YOU decide!

  102. Stackware like RunRev is actually pretty cool by Qbertino · · Score: 1

    I once built a custom vertical market cross-plattform desktop application in RunRev. The functions of the little app where speced to the last detail and the user interface was designed and drawn out down to the last pixel, Font requirements included. Coaxing the IDE into not sucking by adding 3rd party extensions and such was a bit of a hassle, but all in all the project went very well.

    We used RunRev 2.x with various 3rd party extensions including a font-compiling plugin (which in the end didn't work) and a more IDE-like extension of the RunRev enviroment that eased coding.

    The visual and object oriented style of building apps in stackware is pretty cool and can be insanely fast, fluent, concurrent and bugsafe. You get concurrent from the first minute on, because Stackware usually uses the DMI approach, which is pretty cool in itself. The way the runtime integrated with it's own DMI (Direct Manipulation Interface) and compiles it's current state into the deployable app is something one has to get used to, but it actually is OOP in its purest form, if you get the hang of it. This sort of developement is a direct descendant of the Smalltalk way of doing things and makes the Java/.Net way look like ancient weedy spagetti-basic.

    Yet RunRev uses a PL called TransScript, something like a bizar resemblence of SQL and Lingo that tries to emulate english for dummies. An attempt which, of course, doesn't work. That's the biggest gripe I have about these commercial types of stackware. Building a new PL and throwing out the junk we've got from C and it's ancestors is a good thing, but putting in SQLs failiures of a end-user-interface language is bad and the results are usually accordingly. The one FOSS project that aimes in a stackware direction that I know of is Squeak and it uses Smalltalk, which probably is a way better to go.

    Any way you look at it, stackware and visual development has a lot going for it if it is done right.
    It actually kicks all other dev-methods imaged by Eclipse, Java, .Net, [fill in generic Big-Fat-Appstack here] and whatnot up and down the street, to be honest. I'm not suprised they claim to have saved half a million in costs, and I actually believe it's true.

    My 2 cents.

    --
    We suffer more in our imagination than in reality. - Seneca
  103. You have it easy! by Anonymous Coward · · Score: 0

    What a stupid idea we should be going in the other direction and programming in straight binary & hex like in the days of old when programmers where real men, who needs assemblers and all that kind of crap anyway! Lets make it astronomically hard to do the simplest thing and ensure we are excluding 99.9999% of the population from even looking at a computer.

  104. lol dumb by KharmaWidow · · Score: 1

    so... are we supposed to overlook that percent is spelled "per cent" in an article about dumbing down?

    1. Re:lol dumb by MerryOtter · · Score: 1

      The company is based in Scotland. In British English, "per cent" is the preferred spelling.

      http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_(spelling)

    2. Re:lol dumb by KharmaWidow · · Score: 1

      wow - never knew that. I am a little less dumb.

  105. Dumbing down... by Bert64 · · Score: 1

    If you make programming more accessible to people with limited knowledge in the field, you will end up with lots of barely working programs... Some of these programs will get used in situations where they really shouldn't, and are likely to have lots of bugs and/or security holes. You already see it, it's very easy for novices to write programs in visual basic or php, so you see lots of very sloppy programs out there with lots of security holes...

    As someone who runs a webserver hosting sites for other people, a lot of these people upload very shoddily written php code that gets exploited. I had a spam outbreak a couple of days ago because someone managed to find a vulnerability in a php script that let them run arbitrary commands as the webserver user.

    That said, i think computers should encourage users to learn by default, like they used to do in the days of BASIC being built in. Computer back then had a relatively simple programming language built in, and would come with big thick printed manuals encouraging you to learn about it...
    Today you get thin paper instructions that barely cover how to unpack the box, and software that goes out of its way to hide the underlying system from the pretty interface.

    --
    http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  106. reminds one of 4gl by Anonymous Coward · · Score: 0

    And 4gl is great for "business" logic. These argumants about dum

  107. A program in natural language, functional style by Anonymous Coward · · Score: 0

    One thing that should be pointed out is that structural editors actually make "programming in natural language" comparatively trivial. For comparison, here's an implementation of insertion sort from such a system:

    Let A be a set. Then a list of elements of A is defined by the following cases:

    • the empty list
    • the list with x prepended to xs where x is an element of A and xs is a list of elements of A.

    Let A be a set. Let x be an element of A. Then the singleton list with x is a list of elements of A defined as the list with x prepended to the empty list.

    Let A be a totally ordered set. Let x be an element of A. Let xs be a list of elements of A. Then the list with x inserted into xs is a list of elements of A defined depending on xs as follows:

    • for the empty list, the singleton list with x.
    • for the list with x' prepended to xs',
      • if x is less than or equal to x', the list with x prepended to xs
      • otherwise, the list with x' prepended to the list with x inserted into xs'.

    Let A be a totally ordered set. Let xs be a list of elements of A. Then insertion sort applied to xs is a list of elements of A defined depending on xs as follows:

    • for the empty list, the empty list
    • for the list with x' prepended to xs', the list with x' inserted into insertion sort applied to xs'.
  108. I tried writing a non-programmer programming by davide+marney · · Score: 1

    language once, and the syntax turned out to be pretty similar to Rev4. Basically, one needs a simple way to control flow, a simple way to express logic, a simple way to manipulate data, and a simple way of interacting with the user.

    A huge part of writing an effective language is anticipating how the writer *thinks* something should be stated before they've even tried to write it. If your target programmer is someone without formal programming training, you want to avoid anything that assumes an understanding of abstract programming concepts such as object orientation. Rev4's use of natural language "glue" and it's simple verb-object sentence structure follows pretty well the way a non-programmer would think.

    As others have pointed out, however, just simplifying the language is not enough. To get a real boost in productivity, one needs to add a lot of *useful* abstractions to data manipulation and user interactions. That generally means lots of pre-built functions that do meaningful work (as the non-programmer would define it) for very little effort. This is essentially the same role that human vocabulary plays: by using a single word, we can express an entire concept. Give me a vocabulary with several thousand words and a simple sentence structure, and there's not a lot I can't convey.

    I've only looked at Rev4 very briefly, but it does seems to have a pretty large and useful vocabulary. There are useful abstractions of data structures (looks a lot like hypercard, actually), useful abstractions of UI, and useful abstractions of string manipulation operations. I can easily imagine being pretty productive with this as my first programming language.

    All these simplifications and abstractions, of course, come with a cost: extensibility. The more lower level a language is, the easier it is to get it to do things not envisioned by the language writer. I don't know this for sure, but I highly suspect that if the card-stack data abstraction won't cut it for your needs, then writing in Rev4 will be painful and frustrating.

    There will always be a need for varying levels of programming languages. If a user needs something done that is so easy that it could be done by a non-programmer, then why hire a programmer to do it with a more capable language? It's not like programmers aren't busy enough. There's plenty of work for everyone.

    --
    "We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
  109. And it comes full circle... by dgas · · Score: 1

    A language that reads like english? You have "invented" COBOL...

  110. 4 GL by richieb · · Score: 1

    Weren't we there one before with 4 GLs? See Wikipedia

    --
    ...richie - It is a good day to code.
  111. Dear Managementt: If wishes were horses ... by Zero__Kelvin · · Score: 1

    What part of "The best approach" are you having trouble understanding? I never said this is how most people do it. The part about implementing in "as maintainable a fashion as possible" addresses your changing requirements concern, and the fact that you didn't tell management it will be done when it gets done and help them understand why they are clueless enough to believe that they can change requirements without delaying the release (in as politically correct a way as possible, of course) explains to me why you think that none of this can actually work in the real world. I guarantee you I have more than 20 years experience developing software, and the above comes from real world experience that you clearly have yet to figure out how to get.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  112. programming cannot be dumbed down by j1mmy · · Score: 1

    regardless of the language in use, programming still requires the ability to think logically to develop a solution to whatever problem the programmer is trying to solve.

  113. A Natural Progression Yet So Many Costs. by Anonymous Coward · · Score: 0

    "But, NONE of this deals with the real reason why not everybody can be a good programmer. A good programmer must be able to precisely articulate exactly what he/she wants to have the machine do. "

    Sounds like a good reason to get their efforts free (open source) and pay them nothing.

  114. for all the trolls here, I've used this for 5 yrs by soapdog · · Score: 0, Troll

    Hi Folks,

    I see many people here complaining about this language without even trying to understand it, most people here never ever used this, so how can they complain? I've been using Rev for about 5 or 6 years now, I run a single person consulting business here and I've delivered web applications, desktop applications for mac, windows and linux for many US Universities and foreign universities among other serious clients. I've done it all in Rev without ever reverting to an external (this is what we call C modules), I am able to do all my network, RDBMS, logic and gui needs in Rev alone and deliver native applications to the big three OSes out there (mac, win and linux), now with RevServer (our PHP like engine), I am also able to reuse the same business code in a webapp.

    Revolution represents a hug advantage for me because I can really code faster in it, I am not pulling magic numbers from a hat here, I am saying from personal hands on experience for at least 5 years. Before Rev I've coded in C, DELPHI, VB, REBOL, RealBASIC and Scheme (could never deliver a scheme app). My code is as fast any other but was developed faster and cheaper for me, so it means that I can develop more software for less, which is great for someone in the consulting business. Let me summarize what I think are the great Rev strenghts:

    The english like syntax is great, at first I found it too verbose but it grew on me. It is a great feature for those that are just comming into programming, for the seasoned coder, I think it is an acquired taste. We all can code with dot notations, OOP stuff, we are confortable with cryptic syntax such as i++; with all our tokens and semicolons but I regard those like stocolm syndrome, we've used hostile syntax for so long that now we think that if it is human readable and clear then it is bad for some esoteric reason that we can't really explain. This whole discussion about what code is bigger is actually irrelevant, the discussion should be what code is easier to write and maintain. Rev code is actually pleasant. I'd take something like "put char -1 of word 2 of line 5 of field "name" into mySweetVariable" over any split and dot notation or regex thing.

    In Rev we avoid the write-compile-debug loop. With environments such as VB and Delphi, your standard workflow would be to code a little, build your application launch it attached to a debugger and check for bugs. This is tedious and time consuming. In Rev, like those graphic programs such as photoshop, we have a pointer tool that can be in interact mode or edit mode, if it is in interact mode you can click around your application just like a user using it, the edit mode you use to select controls to change properties or script, so with a flick of the mouse, not compilation needed, I can try my app from inside the environment. This is huge! It is like a lisp REPL or some other interactive mode in other languages but graphical, try as you build and yes, we have a debugger that works with those tools, we often just build standalones by the end of development process after all is tested. I can't stress how faster this make you code, you can experiment much more in interactive environments such as Rev than you would do if you're coding in C.

    Another very important feature is the ability to deploy on Linux, Mac, Windows from the same code with no modification, it just builds standalones for all those systems. Imagine you're a VB developer or a C developer, you code mostly on windows for example, then a prospective client quotes for a simple macintosh desktop application, with VB you're simply lost, with C there's a whole lot of new APIs to learn if you don't use a cross platform GUI toolkit. With Rev, you just code normally and in the end checks the "build for Mac OS". (before the pedantry, you should have a mac and mac os knowledge before trying to deliver professional apps for that platform, but you get the idea.). Now with RevServer we can write webapps (we could before but was harder) and with RevWeb plugin we'll be able

    --
    -- Por mais que eu ande no vale das trevas e da morte, meu PowerMac G4 Não Travará!!!
  115. Reminds me... by Stan+Vassilev · · Score: 1

    Of the hype/panic induced by RoR marketing campaign few years ago. "The framework that obsoletes programmers, and lets anyone code web apps!". Yea well, we know how that went.

    As for this particular effort, Revolution 4.0, I'm afraid guys you picked the wrong target to market to (computer geeks). We're not fooled by the verbose English syntax. It's still a pretty pedestrian scripting language from what can be seen in the examples.

  116. I can only go by my own experience -- by dwiget001 · · Score: 1

    I had very good higher math from highschool and from a college level math course years ago. But no programming background, training, etc.

    Tried to lean Java as my first stab at programming. Let's just say, I learned enough to create endless exception errors (or seemingly so).

    Then, back tracked a bit, taught myself JavaScript, for where I was knowledge-wise, it was the proper entrance point.

    From there, taught myself C, and while I did that, I even ventured into learning a bit about assembly (which, in hindsight, helped broaden my understanding of what my C code was doing that the lowest levels). Then, re-visited Java with much better results and also learned some C++ (but I am still very much a fledgling C++ coder).

    The problem, as I see it, isn't the need to dumb programming down, there are really two tracks (maybe more) here:

    1. Programming for those that want to stay away from the lowest levels of computer processing and
    2. Those who want to code as close to bare metal as possible for speed, etc.

    Both are needed, in different situations. And, some in "1", as they gain more knowledge, will gravitate to "2".

    It is really a matter of personal interest, what problems the programmer is trying to solve and that sort of thing.

    From my own experience (briefly noted above), the basics, what is happening with the system when you code a particular thing, helped me really evaluate what I was trying to do with a particular function or piece of code, which I then used to improve past code I had written and improved my programs for new projects I tackled.

    1. Re:I can only go by my own experience -- by chthon · · Score: 1

      Best book for doing what you did and 1) is really How To Design Programs

  117. That's why you do it right.... by Nursie · · Score: 1

    I've seen and written a variety of highly complex server applications in C and C++.

    You just have to get it right. And memory errors aren't all that nasty to debug, not when you've got good tools like valgrind and/or purify.

  118. Re:for all the trolls here, I've used this for 5 y by Anonymous Coward · · Score: 0

    for all the trolls here, I've used this for 5 yrs

    So we're the trolls, because we dared to express our opinion. Your colleagues decided to post the article here for marketing purposes. Unlike you, we're not paid to propagate your unproven phony "90% less code" claims, so either take our feedback, or don't ask for it next time.

  119. Re:for all the trolls here, I've used this for 5 y by soapdog · · Score: 1

    I haven't posted the article here, and trolls are those who express opinions without ever knowing anything about the subject. By the way, I haven't said anything about 90% less code.

    Have you tried the product? Did you understand how to use it? Did you give it a fair trial? If don't then keep your opinions fair like "Hey, I doubt this true but I haven't tried."

    Internet forums like slashdot are full of experts in subjects they didn't knew about 5 minutes before checking TFS. Now tell me, did you try the damn language? Did you ever used some xTalk language (hypercard, metacard, supercard, omo, rev)? If you did not and you claim anything is phony then you're being trollish, also, posting anon doesn't help to keep a nice civilized discussion.

    Now, if you want to have a good talk, at least I am here to shed some clue to this environment that most here never heard of. Just ask and I will try my best to answer, and maybe you'll have a better knowledge base to evaluate and form opinions, even if negative.

    --
    -- Por mais que eu ande no vale das trevas e da morte, meu PowerMac G4 Não Travará!!!
  120. Model Masters sez: by Model+Masters · · Score: 1

    "revTalk" is the language and "RunRev" is the company name

    --
    Model Masters
  121. language is just a tool by minstrelmike · · Score: 1

    The focus on languages puts too much focus on the tool. There are many languages in the world but most people of whatever culture have little of importance to say.

    PROGRAMMING is the production of a useful set of instructions for a machine to follow. That means you must ANALYZE the problem and realize that you must make decisions about every possible result of every possible path. That is the hard part of programming. Providing languages that aren't so hard help get folks to realize the crux of the issue isn't the programming, it is the THINKING. If programming classes didn't have to spend so much time on semicolons and proper indenting, they could spend more time on how to properly frame a problem statement in the first place.

    1. Re:language is just a tool by Anonymous Coward · · Score: 0

      Amen.

      The "astro turf" commenter on zd.

    2. Re:language is just a tool by I_want_information · · Score: 1

      Which is precisely why the language does matter. languages that depend heavily on properly placed dots/semicolons/curlicue brackets and indenting are simply more difficult to learn. Writing proper pseudocode ends up being sacrificed for these things and, with RevTalk, the pseudocode ends up being pretty close to the real code.

  122. Re:RevTalk Is A Natural Progression by mcgrath3 · · Score: 1

    "I have written in it...obviously not the new release but some sort of earlier version."

    Can you list what version you used? I tried the new version and it seems extremely fast and responsive.

    Also, I like the idea of coding once and deploying everywhere (most everywhere). RevTalk seems to be a rather useful tool for quite a few of the projects I am working on.

  123. Just for posterity by whyde · · Score: 1

    (I'm only posting this because I want it archived with this article.)

    This reminds me of the paper "The Camel Has Two Humps," which details the author's theory that some people just aren't cut out for computer programming because they lack the ability to conceptualize in a machine-friendly manner.

    This is a problem that is not best served by "dumbing down" computers to be useable by people who have no business programming them, in the same manner as television shows should not be dumbed down to be readily accessible to the visually-impaired.

    Why is so little effort being spent making it easy for me to repair my own car with soft, clean, lego-like tools?

    If you want to be a plumber, you have to be willing to occasionally shove your arm into a pile of s#it to solve a problem.
    If you want to program computers, you have to be willing to occasionally shove your brain into a pile of mathematics to solve a problem.

    I'll believe computer programming is "ready for the masses" when plumbing is "ready for the masses".

    It's all about the tubes, people.

  124. Don't coddle the user by Jim+Hall · · Score: 1

    user@computer:~$ delete all files in this folder, and I'm sure I want to do this

    are you really sure?

    This reminds me of a programmer from the FreeDOS Project who argued to change/deprecate the behavior of the /Y ("Yes") option to the FreeDOS FORMAT command, so that it would instead display something like:

    A:\> FORMAT /Y C:
    This command will erase the contents of your C: drive !!
    Do you really REALLY want to do this ??
    Type YES in all caps to format ... _

    I thought that was really dumbing down the command, coddling the user way too much. If you felt compelled to protect the user from themselves, I'd prefer the /Y option trigger a message and a 5-second countdown, press Ctrl-C to abort.

  125. Re:for all the trolls here, I've used this for 5 y by Anonymous Coward · · Score: 0

    I haven't posted the article here, and trolls are those who express opinions without ever knowing anything about the subject. By the way, I haven't said anything about 90% less code.

    Why does it matter what you *personally* said? The company behind the product has made outlandish claims, have shown very poor examples to prove them. The onus is on them to prove it, not on us to spend 5 years on a random product so we can verify the claims. The PHP/C# comparisons are insulting for anyone who has modest experience with either of these languages, and a Ruby comparison would completely destroy advantage.

    If the creators of the language have so poor evidence about it being better, why are we expected to do better than them? All we see is an AppleScript knockoff, a hard to read, verbose language that no one likes that I've heard of. "English-like" doesn't automatically mean easy, unless it can literally interpret English into code. As long as it has rigid rules that must be learned and followed, it's not better, but harder to use than languages that use more concise notation. I refer again to AppleScript, which I've had the misfortune of working with at some point.

  126. Re:for all the trolls here, I've used this for 5 y by Anonymous Coward · · Score: 0

    Have you tried the product? Did you understand how to use it? Did you give it a fair trial?

    There's too much shit going on in the world, to give it all a "fair trial", my friend. Instead of killing the messenger, take the message and use it to improve your offering. You can start with improving the code examples section and putting it closer to the home page. Unless the emperor is, in fact, naked, and there's nothing to show.

  127. Re:for all the trolls here, I've used this for 5 y by I_want_information · · Score: 1

    No, you're trolls because you criticize it without even looking at it and kicking its tires. Some of the people posting here in defense of the product are doing so not because they are paid to do so but rather because, unlike you, we did download it and kick its tires... and we're happy customers.

  128. Buggy (as Hell) by TeachingMachines · · Score: 1

    I tried to use this language/RAD environment. Kept getting hit with show stopping bugs. There's a million of them. For starters, the plugin for web content apparently runs continuously as a process in the background. Don't know if they fixed that yet. Of if they will. Uninstallers and updaters didn't work (uninstaller corrupted my Windows registry for version 3.5). The memory management is awful, and leaks abound when using externals (for example, databases and browsers). The list goes on. And on. Right now this is a very pretty package, but it's not ready for the big leagues. The underlying code needs to be vetted. I'd recommend sticking with open source alternatives such as wxpython or Tcl/Tk if you want to avoid these issues. There is nothing more frustrating than having a show stopping bug and having to deal with a commercial vendor that won't give you the time day or treats you like a child. I think "opacity" is the word that describes them.

    A big problem here is that there is a niche of programmers that wants/needs to create commercial applications, especially for entertainment and education needs, but the RAD tools have really gone to hell from the commercial vendors. I started out using Authorware in 1998, which was quite lovingly "discontinued," but was very stable. Then came Macromedia Director, which was god damned rock solid through MX 2004 (although essentially abandoned for Flash by Macromedia; they had like one engineer working on it at the time of the sale to Adobe). Adobe took Director and sent the code base to Bangalore, India, to a bunch of engineers who've made a complete mess out of things from what I can tell. I don't think its a coincidence that the CEO of Adobe is a graduate of the universities of India himself. Anyway, they're stuck at version 11.5, which is an unholy pile of junk (and it will cost you a cool grand, btw). Director, the program that built Macromedia, is essentially dead and along with it just about the only commercial programming alternative for the unwashed masses without computer science degrees.

    The fact of the matter is that RunRev doesn't "dumb down" anything except the programmer. It's a complete struggle to use, but really only because it's not a stable programming environment. If it worked as advertised, we would be awash in RunRev apps. In my opinion, and it's just my opinion (as the owner of an Enterprise license from RunRev), Runtime Revolution is amateur night in the programming world. On the other hand, Tcl/Tk has a totally whacked syntax (upvar anyone?) but it is very fast and very very stable. Especially version 8.4 (you can get it from ActiveState for Windows). wxPython is probably the best choice, however, and you can create binary apps if commercial is your thing.

    Is it just me, or is commercial development software in general becoming more buggy?

    --

    The Death Penalty: Killing people to show others that killing people is wrong.
  129. revTalk in Scala by bbn · · Score: 1

    Just for the exercise, using function composition:


    class EString(f: (String) => Unit) {
        def char(begin: Int) = new Object { def to(end: Int) = new EString(s => f(s.substring(begin-1,end))) }
        def word(number: Int) = new EString(s => f(s.trim.split(" +")(number-1)))
        def line(number: Int) = new EString(s => f(s.split("\n")(number-1)))
        def of(s: String) = f(s)
    }
    def answer = new EString(println _)

    val theString="1\n2\n3\n4\nabcd efgh ijkl\n6"

    answer char 1 to 3 word 2 line 5 of theString

    You can write revTalk in another language!

    Now the revTalk critics are probably going to whine that they don't understand higher order functions. Then realize that you do actually learn something useful during these years at college. Sooner or later, you will find yourself in a situation where there is a need for something more advanced than extracting a word from a string.

    You would not need to understand how the library is written to use it though.

  130. Good for management-types... by CyberDong · · Score: 1

    A language like this will allow management types to do their own prototyping. This could mean less hassle for programmers, as the manager can flesh out a working prototype t use as a model for production apps.

  131. Exposure by BigSes · · Score: 1
    I dont understand why anyone would think this is such a bad thing. If it exposes a whole new group of people to programming, who is to say that they wont be willing to try some other, more difficult, language once they enjoy learning to program like this?

    I understand alot of old schoolers who are incredible at C++, Assembly, or any of the myriad of difficult languages would scoff at things being so easy, but learning programming might not seem like such a daunting task to younger kids and newcomers. Back in junior high school, I remember learning Basic, which was rather easy but didn't seem very robust. It encouraged me to expand my horizons outward, more and more, with Pascal and the like. I got reinterested in programming during college while taking a Visual Basic course, being amazed at what impressive things could be accomplished so easily since I was gone.

    I supposed many older schoolers would see this the same way as retired players would see Major League Baseball allowing steroids. They didn't have to pay their dues learning a difficult and convoluted language while creating thousands of line of code to create something worthwhile. Just like how MLB players on steroids didn't have to lay the foundation of hard work to earn their stripes. The accomplishments would seem to come too easy. Thats the way life is nowadays, thats all I have to say about that. It happens in almost every facet of existence anymore, there are easier ways to do or learn anything invented everyday. The important thing to do is keep your chin up, all you old schoolers, because you will always be a repository of knowledge when it comes to things such as proper programming structure, redundancy elimination, and the like. Not to mention that you'll have a different perspective on error elimination, efficiency, and process improvement. Programming could become too easy, but they can't take your wisdom.