Slashdot Mirror


Extensible Programming for the 21st Century

Anonymous Cowardly Lion writes "An interesting article written by a professor at the University of Toronto argues that next-generation programming systems will combine compilers, linkers, debuggers, and that other tools will be plugin frameworks [mirror], rather than monolithic applications. Programmers will be able to extend the syntax of programming languages, and programs will be stored as XML documents so that programmers can represent and process data and meta-data uniformly. It's a very insightful and thought-provoking read. Is this going to be the next generation of extensible programming?"

438 comments

  1. Go Greg! by xcham · · Score: 5, Informative

    The document is mirrored here to help compensate for the bandwidth deluge.

    --
    When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
  2. already broken? by ezzzD55J · · Score: 1

    Forbidden You don't have permission to access /~gvwilson/xmlprog.html on this server.

    1. Re:already broken? by Anonymous Coward · · Score: 0

      Turn off referrer logging, silly. Or, preferably, use a mirror.

    2. Re:already broken? by Anonymous Coward · · Score: 0

      Not willing to try it from here, but eons ago, there were forbidden servers out there...and the way to get past it was to use their domain as your proxy. Not sure if that still works these days.

    3. Re:already broken? by chk · · Score: 1

      Broken long before now; the rule has been around for years. I never expected it to be triggered...

  3. Next generation tools... by Lord+Grey · · Score: 5, Funny

    ... will obviously be "forbidden." Yes, I did RTFA.

    --
    // Beyond Here Lie Dragons
    1. Re:Next generation tools... by Impy+the+Impiuos+Imp · · Score: 4, Insightful

      > Programmers will be able to extend the syntax
      > of programming languages, and programs will be
      > stored as XML documents so that programmers
      > can represent and process data and meta-data
      > uniformly.

      Sounds like they've found a use for future eight trillion teraflop processors. Scripting on top of scripting on top of scripting. :(

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    2. Re:Next generation tools... by chk · · Score: 1

      The server that hosts www.third-bit.com refuses all slashdot.org referers, because we don't _want_ to be taken off the air.

    3. Re:Next generation tools... by Anonymous Coward · · Score: 0

      The extending syntax and the uniform data and meta-data representation ideas sound like a half-assed Lisp to me.

    4. Re:Next generation tools... by E_elven · · Score: 2, Informative
      Just for clarification: you don't actually code in XML. This is what it means:
      <function>
      <name>foo</name>
      &nbs p; <abstract>Blah blah</abstract>
      <args>
      <arg>
      <name>bar</name>
      &nbs p; <type>int</type>
      &nbs p; <purpose>Blah blah</purpose>
      ...
      When you fire up your IDE, you'll see:
      // abstract:
      // Blah blah
      // parm:
      // bar -Blah blah
      int foo(int bar)
      {
      ...
      }
      Joke was funny, though.
      --
      Marxist evolution is just N generations away!
    5. Re:Next generation tools... by E_elven · · Score: 1

      Hm. Strange.. I actually used brackets this time :) Sorry, anyway. I'm sure the idea's clear enough.

      --
      Marxist evolution is just N generations away!
    6. Re:Next generation tools... by mystran · · Score: 1

      Actually they've only reinvented Lisp, except Lisp produces fast code.. so.. well... whatever.

      --
      Software should be free as in speech, but if we also get some free beer, all the better.
    7. Re:Next generation tools... by Anonymous Coward · · Score: 0

      But what's the point? Parsing C++ is a solved problem. I'm hard pressed to think of a useful feature that XML representation will permit that isn't already implemented in most modern IDEs.

    8. Re:Next generation tools... by Anonymous Coward · · Score: 0

      The idea is that Lisp didn't catch on, so maybe they'll be able to get the benefits with a few kludges hacked together.

      In contrast, it has only taken HTML and XML a decade to become the most popular data format in history. Every large application today can handle it; every programming language contains libraries for manipulating it; and every young programmer is as familiar with it as the previous generation was with streams of strings. S-expressions might have deserved to win, but XML has.

    9. Re:Next generation tools... by E_elven · · Score: 1

      XML is used to store and transfer the code, the main advantage (aside from the inherent ones of XML) being that the metadata can be included in the same file. Simple as that.

      --
      Marxist evolution is just N generations away!
    10. Re:Next generation tools... by Impy+the+Impiuos+Imp · · Score: 1

      > The idea is that Lisp didn't catch on, so
      > maybe they'll be able to get the benefits with
      > a few kludges hacked together

      Kinda the way the superior Betamax didn't catch on, eh? Inferior technology in Java and XML. Are we gonna stand for this, fellas? Are we?

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    11. Re:Next generation tools... by Anonymous Coward · · Score: 0

      The only interesting thing about Java is being able to securely run untrusted code in a sandbox with precisely controlled privileges. Lisp didn't have that; AFAIK no widely-deployed platform before 1991 had it. But otherwise, Java is just C++ For Dummies with a large standard library.

      Betamax wasn't superior, it couldn't even fit a movie on one tape. VHS bridged the quality gap pretty quickly.

  4. One answer... by finker · · Score: 0

    No.

    1. Re:One answer... by finker · · Score: 1

      Ooh, a mirror. Nevermind me...

    2. Re:One answer... by corngrower · · Score: 1

      Certainly not the XML part (too verbose). Parts will be true. Extensible compilers - yes. Moving away from 8-bit ascii source files - yes. Extensible debuggers- yes.

      I've gotta wonder, however, if this won't effectively mean that differnt organizations use different variations of the same language, which may be confusing for a developer switching jobs.

    3. Re:One answer... by menkhaura · · Score: 1

      We will have a wrapper wrapped around another wrapper that wraps the inner wrapper in which the core language is wrapped. XML? Why oh why on earth would anyone want that mixed with the traditional programming languages, which, on their turn, provide extensibility enough on their own? And where is that Unix philosophy, 'one tool to do one job, and do it well', that made that system so hugely popular among developers? Is that not toolchain extensibility/modularity, and a very good one?
      XML... Dear God!

      --
      Stupidity is an equal opportunity striker.
      Fellow slashdotter Bill Dog
    4. Re:One answer... by maxwell+demon · · Score: 1

      Seems you haven't been brainwas^Wenlightened yet.

      XML is the future, and therefore everything which is not XML is outdated by definition.

      --
      The Tao of math: The numbers you can count are not the real numbers.
  5. As interesting it may be ... by BillsPetMonkey · · Score: 0, Offtopic

    I think someone forgot to get their permission to link to their site from Slashdot.

    --
    "It's not your information. It's information about you" - John Ford, Vice President, Equifax
    1. Re:As interesting it may be ... by Anonymous Coward · · Score: 0

      you've gotta be kidding me - thats a joke right. Hope so, but if not havent heard that one in 8 years!!

    2. Re:As interesting it may be ... by Anonymous Coward · · Score: 0

      Never heard of HTTP REFERRER ?? Perfectly possible.

    3. Re:As interesting it may be ... by Anonymous Coward · · Score: 0

      Alas, the actual word used is "referer".

      Side note:

      Could this be the first time someone's been corrected on Slashdot for using the correct English spelling?

    4. Re:As interesting it may be ... by Anonymous Coward · · Score: 0

      No, the actual word is "reefer", as in you smoke too much of it.

  6. Data and metadata by XML by leandrod · · Score: 3, Insightful

    This is incredibly stupid. How come XML helps in dealing with data and metadata? Metadata *is* data.

    What we really want is an user-extensible type system, like the one proposed by Date and Darwen in _The Third Manifesto_ for relational database systems. Remember, types are domains plus operators.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:Data and metadata by XML by xcham · · Score: 2, Insightful

      This is incredibly stupid. How come XML helps in dealing with data and metadata? Metadata *is* data.

      Just an observation. This comment was literally posted 2 minutes after the story went live on /. - thus there's absolutely no way in hell you've read the paper and already you're trashing it. How mature.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    2. Re:Data and metadata by XML by MisterFancypants · · Score: 4, Funny
      This is incredibly stupid. How come XML helps in dealing with data and metadata? Metadata *is* data.

      It goes up to 11, see. That's one higher.

    3. Re:Data and metadata by XML by leandrod · · Score: 1
      > thus there's absolutely no way in hell you've read the paper and already you're trashing it

      No amount of explanation will fix that stupid idea.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    4. Re:Data and metadata by XML by KILNA · · Score: 1

      If you have a slashdot subscription you can read the article for a while before its posted time, it comes up as being posted in the "Mysterious Future".

      --
      Error: PANTS NOT FOUND. Press <F1> to continue.
    5. Re:Data and metadata by XML by sfjoe · · Score: 2, Interesting

      This is incredibly stupid. How come XML helps in dealing with data and metadata? Metadata *is* data.

      Metadata is, of course, data. Sometimes, a finer-grained taxonomy method is helpful. After all, sausages and uranium are both matter, but calling them matter doesn't help me with my dinner selection.
      Mmmmmm - sausage.

      --
      It's simple: I demand prosecution for torture.
    6. Re:Data and metadata by XML by xcham · · Score: 1

      I know this. I am a subscriber, as evidenced by the star next to my name. As are you, as evidenced by the star next to your name. The parent of this thread does not have a star. Hence, my conclusion that he did not read the article before posting.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    7. Re:Data and metadata by XML by xcham · · Score: 2, Insightful

      No amount of explanation will fix that stupid idea.

      According to you, and that's not the point. You don't go to a class and tell the professor he's full of shit when you haven't read the required reading for the course. You don't dispute something without a clear idea of what's being said.

      It's not the fact that you disagree (heck, I disagree with some of it), but that you disagree without knowing what you're disagreeing with, exactly. As far as I'm concerned, you're just another /. forum monkey with nothing better than to do than post ill-informed knee-jerk reactions.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    8. Re:Data and metadata by XML by leandrod · · Score: 2, Interesting
      > Sometimes, a finer-grained taxonomy method is helpful

      But when it comes to data it just confuses, because taxonomies imply a hierarchy, and hierarchies are hard to agree upon on the first place, are quite arbitrary, and tend to change quite fast and radically.

      The relational model already provides a better alternative to taxinomies: attributes. And then, metadata becomes just data.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    9. Re:Data and metadata by XML by Anonymous Coward · · Score: 0

      Your name is way too long. I know it's not your fault, but... Jesus...

    10. Re:Data and metadata by XML by ashot · · Score: 1

      I don't get it..

      --
      -ashot
    11. Re:Data and metadata by XML by KILNA · · Score: 1

      Patronizing explanations aside, does it matter if he read the entire article if they start out with a faulty premise of "meta data"? Some people bandy the term about as if out of band information were some sort of pixie-dust, and as a result he may have come to a quick conclusion. A quick conclusion isn't always a wrong one.

      Another quick conclusion is that he couldn't possibly have stumbled upon that article beforehand without the help of slashdot. My only intent was to point out the silliness of chastising an opinion as a presumption, using another presumption as your only evidence.

      --
      Error: PANTS NOT FOUND. Press <F1> to continue.
    12. Re:Data and metadata by XML by leandrod · · Score: 1
      > You don't go to a class and tell the professor he's full of shit when you haven't read the required reading for the course

      If the professor doesn't grok data, he won't probably require good books on data. If I have already read the good books on data, I can criticise his required reading.

      > you disagree without knowing what you're disagreeing with

      But I know. I am not disagreeing with the whole article, just with that stupid bit on XML and metadata.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    13. Re:Data and metadata by XML by CodeSniper · · Score: 1

      Watch "This is Spinal Tap" and you will understand.

    14. Re:Data and metadata by XML by Anonymous Coward · · Score: 0

      You ignorant people that just learn the relational algebra sure are coming out of the woodwork lately.

    15. Re:Data and metadata by XML by Tablizer · · Score: 1

      This is incredibly stupid. How come XML helps in dealing with data and metadata? Metadata *is* data. What we really want is an user-extensible type system, like the one proposed by Date and Darwen in _The Third Manifesto_ for relational database systems.

      I don't know about "type systems", but relational is indeed cleaner and more consistent than XML. XML designs are often poorly normalized. Relational has good rules and guidelines that tend to keep it "in line". XML lacks this, and is thus more helter-skelter.

    16. Re:Data and metadata by XML by Anonymous Coward · · Score: 0
      What we really want is an user-extensible type system

      Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, Haskell, NEWTYPE, NEWTYPE!
    17. Re:Data and metadata by XML by Anonymous Coward · · Score: 0

      what stupid idea? the claim was that mdata and data are treated the same!

      saying it's stupid over and over again whilst firstly agreeing with it and secondly not even knowing what 'it' is, now that is stupid.

    18. Re:Data and metadata by XML by Anonymous Coward · · Score: 0

      Here's an horibble joke for you:

      Sausages come from cows and chicken, Uranium comes from uranus...

    19. Re:Data and metadata by XML by Anonymous Coward · · Score: 0

      "Another quick conclusion is that he couldn't possibly have stumbled upon that article beforehand without the help of slashdot"

      Yes, considering I read it weeks ago:
      http://discuss.fogcreek.com/joelonsoftware/d efault .asp?cmd=show&ixPost=141120 /. is rarely the first on the scene.

    20. Re:Data and metadata by XML by Anonymous Coward · · Score: 0
      "Who would be the most likely to cheat at cards-- Bill Clinton or Al Gore?" --Fox "News" Opinion poll (5/00)
      That's like saying "who is more likely to beat their wife-- George Bush or Dick Chaney?", but I see that you have correctly qualified the label "News" when refering to the Fox Right Wing Propaganda machine.
    21. Re:Data and metadata by XML by phats+garage · · Score: 0

      Maybe some things just aren't efficiently represented as tables. Thinking about lisp for instance, I'd be hard pressed to represent all of it in tables, while I'm sure its possible, is it preferable?

    22. Re:Data and metadata by XML by Anonymous Coward · · Score: 0

      If you can parse code you can decompose it into tables (LISP would be easy -- attribute lists would just be additional rows in a table, for example). The main problem that I see is that people think that the whole program needs to be representable in 'one' table. I don't see why this is necessarily so.

    23. Re:Data and metadata by XML by phats+garage · · Score: 0

      Normalization and all of the other disciplines are good when you have to enforce rules of reliability (think a farm of vb monkeys), but for hard problems with skilled designers, this would just put roadblocks in the way of solutions.

    24. Re:Data and metadata by XML by ZiggyM · · Score: 1

      Well you know subscribers get so see the articles before it goes "live". Maybe he is a subscriber.

    25. Re:Data and metadata by XML by Tablizer · · Score: 1

      Normalization and all of the other disciplines are good when you have to enforce rules of reliability (think a farm of vb monkeys), but for hard problems with skilled designers, this would just put roadblocks in the way of solutions.

      Example?

    26. Re:Data and metadata by XML by phats+garage · · Score: 0

      classic example for me, compiler tech. Metadata rules here, you are building structures about structures, etc, and I'd hate to build one having all my data stored in an sql server ;-)

    27. Re:Data and metadata by XML by Tablizer · · Score: 1

      classic example for me, compiler tech. Metadata rules here, you are building structures about structures, etc, and I'd hate to build one having all my data stored in an sql server ;-)

      But that would be great for debugging. You could query and view the intermediate data any way you please.

  7. been done by studboy · · Score: 5, Informative

    programs will be stored ... so that programmers can represent and process data and meta-data uniformly.

    Yup. Back in the day, we called this "Lisp". It was about as readable as XML, but a hella lot more fun.

    1. Re:been done by Carnildo · · Score: 2, Insightful

      Having worked with both XML and Lisp, I'd say that Lisp is easier to read.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    2. Re:been done by ron_ivi · · Score: 5, Interesting
      Agreed, and even mentioned in TFA:
      3. You don't need XML to do this.

      Scheme proves by example that everything described in this article could have been done twenty years ago, and could be done today without XML.

      And IMHO lisp's syntax has always had a nicer structure than XML's repetitive redundancy.

      _<whatever>
      __<you> want to do in <xml>xml</xml>
      __</you>
      _</whatever>
      is nothing but a set of s-expressions that read much nicer in a lisp-like syntax:
      (whatever
      _(you want to do in (xml xml)
      _)
      )
      IMveryHO the big failure of the lisp guys of old was that they were so proud of how many ')' they could put next to each other that it made their code harder to read than necessary. I bet XML would have failed too if it were commonly written
      <whatever>
      _<you> want to do in <xml> xml </xml></you></whatever>

      (and yes, the _ are just there for /.'s formatting)

    3. Re:been done by Anonymous Coward · · Score: 0

      But it's mentioned as if Lisp wasn't available or something, like it was something from "days of yore", whereas in reality, high-quality common lisp optimising compilers like CMUCL are free downloads, apt-get installable on debian, and are quite actively developed! Why reinvent Lisp when it's already available? So that you don't have to admit to yourself you're using Lisp??? (More likely: To make it look just superficially different enough that it can be patented, in MS' case...)

    4. Re:been done by Digital+Avatar · · Score: 2, Insightful
      Yup. Back in the day, we called this "Lisp". It was about as readable as XML, but a hella lot more fun.

      What really got me is that they think merging the functionality of a compiler, linker, debugger, et al. via some sort of component framework is really anything new. Forth and Lisp were producing tightly-integrated development systems _thirty years ago_. Thank you, Mr. Moore and Mr. McCarthy.

    5. Re:been done by Anonymous Coward · · Score: 0

      What do you mean "back in the day" and "was"??

      LISP still exists!!

      Get on your gentoo box and "emerge clisp", then get to town! You can compile down to native code that in some circumstances is FASTER than compiled C code (and obviously faster than Java).

      I wish there was a single LISP implementation on Unix like there is for Perl, etc.. people would be more inclined to use it I bet.

    6. Re:been done by Wolfkin · · Score: 4, Insightful

      Piling up all the closing parens makes the code *easier* to read, not harder. After you've been lisping for a few weeks, the parens just sorta disappear, and you rely on indentation to give you the overall structure of the current function, and then just add however many are left over at the end. Any good editor will let you know when you've put enough, and you can define a "fill out close parens to the top level" command in most.

      --
      Property law should use #'EQ, not #'EQUAL.
    7. Re:been done by Tarantolato · · Score: 4, Insightful

      A cynical take on this article would be that it's sour grapes by a stranded Lisp/Smalltalk guy who never got used to doing things The Unix Way, and still wants to lead the unwashed masses kicking and screaming to the promised land.

      "PUT DOWN THE VIM! WE HAVE YOU SURROUNDED!"

      All cynicism aside, this is a mixed back. Extensible syntax is a great idea; and yeah, Lisp already had it in the 50's. What needs to happen for broader adoption is to do it in a natural Algolish syntax, which basically means limiting functionality. Languages like Python and Ruby (with lambdas and blocks/procs) are starting to do it and I expect to see others follow.

      The whole "seamless translation into XML and back into any language of your choice" is a lovely idea, but even small bugs in implementation would handicap its usefulness considerably. It'd also take a tool oodles more complicated than gcc, which he doesn't seem to like.

      Finally, tight coupling of language and development environment can mean added productivity, but it also tends to mean less flexibility in practice: this is one of several reasons that Smalltalk hasn't caught on.

    8. Re:been done by Deraj+DeZine · · Score: 1

      So where do attributes fit into the Lisp syntax?

      Also, the model is what's important, not the serialization. XML's supposed to be machine-generated in most cases.

      --
      True story.
    9. Re:been done by Anonymous Coward · · Score: 5, Informative
      The S-expression people put the attributes in as arguments; the element data is also just another argument, which is certainly a more uniform treatment.

      Ex:
      <a b="1" c="2" d="4">blahblahblah</a>
      becomes something like:
      (a "blahblahblah" (b 1 c 2 d 4))
      or this:
      (a "blahblahblah" b 1 c 2 d 4)
      or this:
      (a (b 1) (c 2) (d 4) "blahblahblah")
      Take your pick.

      The point stands that you don't need XML's syntax to get these sort of behaviors, and that's not really surprising; any sufficiently general syntax usually can accomodate any paradigm in another sufficiently general syntax. This probably has some metaphysical voodoo link with the Church-Turing thesis, formal languages, and computability, but I'm too lazy to care.

      You could dispense with the element names if you didn't care about such things, although it makes it harder to reorder your arguments, of course. Then again, XML can't support this sort of ordered attribute list, now can it? Not directly, anyway. ;)

      I'm not a Lisp or XML zealot, and I agree with you that if it's machine-generated, it doesn't really matter, but the Lisp people have a point that anything you claim to be able to do now with XML could have been done before with Lisp. Heck, DSSSL is based on Scheme.

      * Note that I didn't quote the arguments; I'm assuming this is being fed to the read procedure, and not the evaluator.
    10. Re:been done by Anonymous Coward · · Score: 0

      No kidding! Lisp is cool but everything is so damn fragmented with the different implementations. It'd be nice if there were *standard* ways to do relatively simple things like, oh, say, interface with the operating system a little bit, opening files, interacting with other processes, you know, stuff like that. It's occasionally necessary to leave Lispland for a while.

    11. Re:been done by Anonymous Coward · · Score: 0

      One day there will be ark, my friend. One day there will be ark.

    12. Re:been done by Tony-A · · Score: 1

      Think of XML as Lisp for COBOL programmers.

    13. Re:been done by Pieroxy · · Score: 1

      Dude, the entire point of having that reside in an XML file is that your interface to edit yout program is not going to be a text editor. It'll be a nice treeview program-oriented of some sort, but the hell with text editors!!!! We're writing programs, not poetry!

    14. Re:been done by Deraj+DeZine · · Score: 1

      Good points, but the abundance of small/fast/portable/free XML libraries certainly factors in to my decision =)

      --
      True story.
    15. Re:been done by makapuf · · Score: 2, Interesting


      So why not take the python approach and use the indentation as the structure ?

      compare

      (whatever _(you
      want to
      do
      in (xml xml)
      _)
      )
      (indentation doesn't follow strcture)

      with

      whatever :
      you :
      want to do in : xml

    16. Re:been done by boots@work · · Score: 4, Informative

      This has been proposed and implemented several times as an alternative syntax. I think Arc is meant to have this, but it's hardly the first. I don't think it's ever really caught on.

      Why?

      - Sometimes it's nice to put code into things that don't reliable preserve whitespace, such as, say, comment fields on web sites.

      - Parens are well-established in lisp. If you change it you give an additional barrier to people coming from other lisp dialects, without particularly helping people coming from elsewhere.

      - Whitespace by itself is not enough. Do you want to write (+ 3 (* 4 5)) across 3-5 lines? Python ends up with fairly complex rules about backslashes, open parens, etc.

      - One advantage of lisp is that it's easy to write out from a program. This is really not true of Python.

      - If you accept that we need paren syntax, then you can wonder whether indentation should be supported as an alternative. But having two different syntaxes for one language, though an interesting idea, is likely to cause a lot of practical confusion.

      So I think all you really want is an editor that ensures the indentation is always valid, and that can highlight parens and do other things. emacs goes a long way, but it could be better -- for example by making outer parens larger, as in TeX-printed or handwritten mathematics.

      In my humble opinion what Lisp needs to take from Python is not semantic indentation, but rather a single standard dialect with good OS bindings. The last thing we need is yet another slightly incompatible dialect that can't bind to existing code. Sheesh; I love lisp but lisp implementers really exasperate me.

    17. Re:been done by Anonymous Coward · · Score: 1, Insightful

      Hmm... I think this is almost what the CLR and .Net Framework allows (downloaded F#yet?), and if Sun wanted it to, the JVM could be used to do the same thing - one just has to write the compiler/interpreter spit out Java Bytecode into the JVM to run.

      So the only thing missing then is the XML files that sort of allow this.

      But, at this website C# to Delphi8 Converter, one can post C# code and it will spit out Delphi 8 .Net code, so...

      tight coupling of language and development environment can mean added productivity, but it also tends to mean less flexibility in practice ...but then there are Delphi, JBuilder, SharpDevelop, Eclipse, etc., IDEs HIGHLY dependent on their underlying languages, and all more or less successful (enough).

    18. Re:been done by maxwell+demon · · Score: 1
      I would take
      (a (b 1 c 2 d 4) "blablabla")
      where an empty option list can only be omitted if nothing follows (as to not confuse options with embedded structure).

      Then e.g.
      <whatever>
      <something option="value">foo</something>
      blablubb
      <more />
      foo
      <foo>
      <bar>baz</bar>
      </foo>
      bar
      <another options="present" />
      baz
      </whatever>
      would become
      (whatever ()
      (something (option "value") "foo")
      "blablubb"
      (more)
      "foo"
      (foo ()
      (bar () "baz"))
      "bar"
      (another (options "present"))
      "baz"
      )
      Note that with the empty parens omitted, you wouldn't be able to distinguish
      <foo>
      <bar>baz</bar>
      </foo>
      from
      <foo bar="baz" />
      --
      The Tao of math: The numbers you can count are not the real numbers.
    19. Re:been done by maxwell+demon · · Score: 1
      We're writing programs, not poetry!

      Well, those two options don't need to exclude each other.
      --
      The Tao of math: The numbers you can count are not the real numbers.
    20. Re:been done by Anonymous Coward · · Score: 0

      Common Lisp is standardized, you know -- the ANSI CL standard. Now, this standard doesn't cover everything (things like FFI and sockets aren't in it), and parts of it are flawed, but there's increasing interest in updating it. There's also a renewed push to make existing CL implementations actually conform to the standard.

    21. Re:been done by pkhuong · · Score: 1

      READ must be in any Lisp that is a Lisp, and Lisp has been ported to many, many architectures (including C ;).

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    22. Re:been done by Anonymous Coward · · Score: 0
      "It'll be a nice treeview program-oriented of some sort"

      The problem with the treeview interfaces are that they get it backwards. If the tree-view shows function calls- i.e.
      main() { foo(); }
      becomes

      +main()
      |
      +-foo()
      I'm all for it. On the other hand if all these trees do show grouping in a class or a file, it's kinda useless and a tags file would do just as well.
    23. Re:been done by Kupek · · Score: 1

      That was basically my take on Richard Gabriel's "Worse is Better" paper from 20 years ago.

    24. Re:been done by boots@work · · Score: 1

      That's exactly my point: it is standardized, but not to a sufficient extend to be able to write a spectrum of useful applications that are portable.

      What good in 2004 is a programming language that can't work with sockets? Sure, sometimes I write purely algorithmic, simple file IO programs, but I don't think many programmers *never* write GUIs or need to call OS functions or do networking.

      I might be wrong here, but last time I looked at the state of Scheme on Unix, there were common specifications (SRFIs) for some useful libraries. But the syntax to load them differs between implementations! So again, you cannot write a program portable across different implementations can call useful libraries.

      If there were a single strong free implementation of either CL or Scheme then it might be OK; the standard would be defined by the implementation, as it is with Perl. But that doesn't seem to be the case at the moment. Ask N lisp programmers and you will hear about >=N implementations.

      I count 4 freeish CLs in Debian, and a larger number of Schemes. How am I to know which one supports the libraries I want and will be well supported in the future? If there were 4 C compilers then I would still have a choice, but at least I ought to be able to call the same libraries from intel cc as from gcc.

      Therefore, I repeat my point: the reason why even programmers who like Scheme often end up using Python (or whatever) has nothing to do with syntax or any aspect of the language itself. It's the libraries, stupid. Doing useful work in a high-level language is, for many applications, mostly about having useful libraries. Perhaps for big applications the relative importance of the library decreases. But if people can't easily write small programs, they are less likely to get around to writing big ones.

    25. Re:been done by ron_ivi · · Score: 1
      Does the same apply to closing tags in XML? (not a troll, a serious question)

      Piling up all the closing parens is exactly like writing XML/HTML like this:

      <table>
      <tr>
      <td>
      My Data</td></tr>
      <tr>
      <td>
      More</td></tr></table>
      I think most everyone would say that this is harder, not easier. Or is that just because it's what we're used to?
    26. Re:been done by Wolfkin · · Score: 1
      Well, more like this:
      <table>
      _<tr>
      __<td>My Data </td></tr>
      _<tr>
      __<td>More </td></tr></table>
      <table>
      _<tr>
      __<td>My Other Data </td></tr>
      _<tr>
      __<td>Seco nd </td></tr></table>
      without the underlines (for indentation). See how, using indentation, it's clear that there are two non-nesting tables?

      The problem with comparing HTML or XML with lisp for indentation purposes is that in the markup languages, the closing tag appears (incorrectly) to be meaningful. This seems required precisely because people indent those markup tags in all sorts of idiosyncratic ways, so the ending tag gives a clue to the human reader about scope. If, instead, you could use </> to close any tag, it would make more sense to indent HTML like one does Lisp:
      <table>
      _<tr>
      __<td>My Data </></>
      _<tr>
      __<td>More </></></>
      <table>
      _<tr>
      __<td>My Other Data </></>
      _<tr>
      __<td>Secon d </></></>
      Some implementations in the lisp family (some Scheme's, I think) use ] to mean close all parens to the top level, which (picking a possible substitute) would be the equivalent of:
      <table>
      _<tr>
      __<td>My Data </></>
      _<tr>
      __<td>More <\>
      <table>
      _<tr>
      __<td>My Other Data </></>
      _<tr>
      __<td>Secon d <\>
      This shows even more clearly the advantage of using indentation to *read* the source, and using one's editor to assist one in *writing* source that is easily read.

      I don't happen to use one of those Scheme's, since I'm more interested in Common Lisp ( http://www.randallsquared.com/psilisp.shtml ), but that close-all bracket is a cool idea.

      (all IMHO, of course)
      --
      Property law should use #'EQ, not #'EQUAL.
    27. Re:been done by ron_ivi · · Score: 1
      Thanks. That was interesting. Yes, I forgot the '_'s and didn't catch it in my preview when I posted.

      Just for kicks, I'll hack an XML editor I have here to format it the way you indicated (with the </> to close any tag and put them at the end of the line, just to see how I like it. I think you might be on to something here.


      "the closing tag appears (incorrectly) to be meaningful"

      As an aside, I've seen some C programmers that write these godaweful long functions and put meaningless closing tags at the end of their blocks too.. kinda like

      if (whatever) {
      ... many dozends of lines of code
      } /* end if (whatever) */
      That always bugged me and I thought they really should break up those functions. Perhaps XML added them since it's harder to break up?
    28. Re:been done by Wolfkin · · Score: 1
      That was interesting.

      Thanks. It was a good excuse to write about working, rather than actually work. :)

      Perhaps XML added them since it's harder to break up?

      I think XML added them because they were required for SGML, of which XML is supposed to be a simplified version. In SGML, it's perfectly legal to omit closing tags entirely when it's obvious from the context. Like,
      <sgml><p>stuff in <i>italics</sgml>
      (which, btw, may very well not be legal SGML at all; I don't know!).

      But, given that situation, if you insert a close tag, you really do have to specify what it closes, and since XML is a derivative of SGML, they didn't take out the requirement to specify what tag was being closed.

      It's interesting, really, how close XML is to S-expressions (the term for Lisp parenthetical expressions).
      --
      Property law should use #'EQ, not #'EQUAL.
    29. Re:been done by ron_ivi · · Score: 1
      "But, given that situation, if you insert a close tag, you really do have to specify what it closes"

      Interesting how the in your example is much like the 'close all parens' syntax in scheme...

      For a while I thought this Curl language that Tim Berners-Lee had worked on was going to catch on. It actually had the lisp-like syntax, so you really would do things like:

      {text Hello {bold World}}
      to write "Hello World". It was pretty cool since you could do something like "{hello {render-3d-spinning-globe} world}" to print hello world with a real-time raytraced 3d spinning globe in the middle as well. Not kidding, their demos have an example of embedding a raytracing function in the middle of text like that.
    30. Re:been done by Deraj+DeZine · · Score: 1

      My point is that I can easily access the tree structure from C/C++/Whatever language I want. No messing around with some Lisp subsystem.

      --
      True story.
    31. Re:been done by Anonymous Coward · · Score: 0

      huh? you're just messing round with an XML subsystem instead! several versions the Lisp reader (not the whole of lisp!) is available for C e.g. here> - it's just like any other data format parser, and significantly smaller and faster than XML. You don't need to use lisp to use lisp syntax.

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

      Any SGML element's start and end tags can be declared to be optional, if the parser can infer where that element must be. XML dropped this on the theory that a mishmash of tags could somehow be useful simply because they're properly nested, even though you have no DTD or schema or builtin knowledge of how the document is supposed to be structured.

  8. Extensible Programming Requires Super-Duper Stuff. by Anonymous Coward · · Score: 0, Interesting

    XML for everything? Sure! All you need is a super-duper Athlon64 5.0ghz to process all the overhead and we can have a very descriptive, very rich programming language with little regard for efficiency.

    I don't mean to be a troll, but you have to sacrifice speed and size to allow for this type of flexibility. We're already seeing this with Microsoft's upcoming GUI wrapper Avalon.

  9. Is this going to be the next generation... by mpcooke3 · · Score: 0, Redundant

    no.

  10. Hit refresh to access the article by linuxpoweredtrekkie · · Score: 1

    looks like they are blocking the slashdot referer. I wonder why they would want to do that.

    1. Re:Hit refresh to access the article by RobertLTux · · Score: 2, Funny

      somebody saw the /. coming and doesn't want to have their MSIIS server in a whimpering heap in the corner?

      --
      Any person using FTFY or editing my postings agrees to a US$50.00 charge
    2. Re:Hit refresh to access the article by chk · · Score: 1

      It's a LAMP box, sorry. But there is a lot of dynamic content, and besides, we don't like the so-called slashdot effect. :-)

  11. Can't wait by exp(pi*sqrt(163)) · · Score: 2, Interesting

    A good example is code like this in C++

    Vector a,b,c;
    . . .
    c = a+2*b;

    Written naively the overloaded '+' operator returns a vector object. But I don't want any object returned. I want the code to be expanded in place as

    c[0] = a[0]+2*b[0]
    c[1] = a[1]+2*b[1]
    c[2] = a[2]+2*b[2]

    Now you can do this in C++, but look at what you need to implement to do it. The code is a hideous nightmare of template metaprogramming. Of course you can do it in a language like C, but then you lose the ability to express yourself cleanly through code like 'c=a+2*b'.

    It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.

    Of course you'd clearly need to document your code well as people reading your code would also be forced to understand the plugins.

    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    1. Re:Can't wait by TwistedSquare · · Score: 2, Informative

      Actually I believe this particular example might well be optimised out by the compiler to the code you mention. But your point is probably valid for trickier problems.

    2. Re:Can't wait by X · · Score: 5, Insightful

      Now you can do this in C++, but look at what you need to implement to do it

      It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.

      Umm... what makes you think that programming a compiler is going to be more straight forward than doing generic programming? That seems like a huge assumption to me.

      The closest thing I've seen to what this article talks about was CLOS's MOP, which was great, but once again, a lot of people had a hard time groking it.

      --
      sigs are a waste of space
    3. Re:Can't wait by PhrostyMcByte · · Score: 2, Insightful

      I'd think most compilers will already expand it to that. I know Visual C++.NET does.

    4. Re:Can't wait by exp(pi*sqrt(163)) · · Score: 2, Insightful
      what makes you think that programming a compiler is going to be more straight forward
      I don't know how to make it easier myself. I think it's a hard problem and I hope people smarter than me are working on it. But I have a hunch it can be made a lot easier than template metaprogramming, say. My reasoning is simply this - template metaprogramming wasn't designed to do the sorts of things that are being done with it, it's almost an accident that you can write stuff like Blitz++ or boost::mpl. I've a feeling that something designed to do this has got to be easier to use.
      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    5. Re:Can't wait by Anonymous Coward · · Score: 0

      And this example would be completely simple in Smalltalk, which would let you define the + operator in your Vector class. Much of what Wilson wants would be easy. And like Java, modern versions have run time optimizers. Unlike Java, it never had a good marketing department.

    6. Re:Can't wait by exp(pi*sqrt(163)) · · Score: 2, Informative

      Actually, this example often isn't optimized away which is why the Blitz++ library exists. In fact, the author of the library, Todd Veldhuizen, has written at least one paper spelling out what compiler developers need to do in order to ensure stuff like this is optimized away. I've done lots of experiments myself. As soon as you put something like my example line inside a template that is instantiated from another template etc. I've found compilers start missing what you think ought to be easy optimizations. It's very frustrating, I just want to tell the compiler myself how to do its job because it's often just a mindless application of a bunch of rewrite rules.

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    7. Re:Can't wait by exp(pi*sqrt(163)) · · Score: 1

      (1) Try a more complex example along similar lines. (2) Try embedding that code, not in a simple function, but inside a nest of templates. (3) Implement the vector class in a generic way so that it accepts different types and sizes (known at compile time). I get great results in Visual C++ with simple examples too.

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    8. Re:Can't wait by X · · Score: 1

      I've a feeling that something designed to do this has got to be easier to use.

      It might be easier to read, but the fundamental challenges with generic programming are essentially language and type theory problems which exist independantly of the C++ language or it's syntax.

      --
      sigs are a waste of space
    9. Re:Can't wait by Impy+the+Impiuos+Imp · · Score: 1

      "Hooking into the compiler", yeesh. Compilers are currently written hand-in-hand with processor design. What are people going to do, write a YACC input variation and cross their fingers it will be mildly faster than compiled C code?

      And, ultimately, you'll either invest a ton of time doing this, or buy a professional library to "hook in", anyway. 99.9% of programmers will have no use for it, aside from "Hello, world!" exploration.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    10. Re:Can't wait by eMBee · · Score: 1
      pike can do something like that:
      Pike v7.6 release 7 running Hilfe v3.5 (Incremental Pike Frontend)
      > array a=({ 1, 2, 3 });
      > array b=({ 4, 5, 6 });
      > array c;
      > c=a[*]+(2*b[*])[*];
      (1) Result: ({ /* 3 elements */
      9,
      12,
      15
      })
      the automap operator [*] maps each element of the vector into the equation one by one. i have seen one other language that has such a feature, but i don't remember what it was.

      greetings, eMBee.
      --
      Gnu is Not Unix / Linux Is Not UniX
    11. Re:Can't wait by corngrower · · Score: 1

      I think the idea is that extending the language would be more or less akin to using templates or wizards. You wouldn't actually be telling the compiler how to produce object code, but you would be telling the compiler that when it sees your new keyword it's supposed to look for certain patterns, then 'generate' some additional source code. Think of it as a way of defining a 'wizard', or of doing something that you might do with a template.

    12. Re:Can't wait by fdicostanzo · · Score: 2, Insightful

      > Written naively the overloaded '+' operator returns a vector object. But I don't want any object returned. I want the code to be expanded in place as...

      > It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.

      But what if your code was to run on a vector processor (or even SSE, etc)? Your telling the compiler how to handle vectors (serially, in your example) would limit your speed.

      a better method would be to use declarative/ functional semantics to describe what you want, and then have a compiler that would optimize that to the architecture. many examples exist.

      I believe a big problem of procedural languages is over specification of procedure (by definition...)

      --
      Synergies are basically awesome, and they're even better when you leverage them. -PA
    13. Re:Can't wait by Mycroft_VIII · · Score: 1

      Euphoria does that sort of thing, though a bit simpler
      c=a+b. if they are both arrays (called sequences, sort of a flexible array) it uses the + element by element. same for any other math operation(s) performed on arrays.

      Mycroft

      --
      https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
    14. Re:Can't wait by Mycroft_VIII · · Score: 1

      I can think of a language that would do what you want in this one instance. It's pretty good at handling all sorts of things with it's data structures.
      It only has two native structures, the 'atom' and the 'sequence'. An atom is a single value, a sequence is an array of atoms and or sequences.
      If you need more data types you just define them.
      It's called Euphoria (http://www.rapideuphoria.com) and is a pretty cool language. You can download eigther the free (beer) or paid (very cheap) version. it runs under windows,dos, and linux. there are translators to generate c code otherwise it's interpreted (but it's very fast for an interpreted language). And there is a lot of free/open source code in it on the home page.
      It's not the greatest thing since sliced bread, but with it's very flexible and usable handling of data types/structures (the data handling rules are pretty intuitive to me as well, ymmv)as well as being very easy to learn and use it's pretty good.

      Mycroft

      --
      https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
    15. Re:Can't wait by joib · · Score: 1


      Of course you can do it in a language like C, but then you lose the ability to express yourself cleanly through code like 'c=a+2*b'.


      Well, you could use daxpy from blas I guess..

      It seems that after the initial excitement over template metaprogramming some years ago, many people found it too hard to get right, too long compile times etc., so they turned back to trusty old Fortran 95.

    16. Re:Can't wait by ltratt · · Score: 1

      > The closest thing I've seen to what this article talks about was CLOS's
      > MOP, which was great, but once again, a lot of people had a hard time
      > groking it.

      It's not talking about anything like the MOP (Meta Object Protocol). That's all about changing the dynamic behaviour of objects. These guys are talking about fiddling with things at compile time. We can argue about whether they have got hold of the right end of the proverbial stick re: representing program structure, but it's important to note that MOP's are a solution to a different problem.

      [There are, admittedly, compile time MOP implementations for e.g. C++, but I'm not aware of any that are used in practical situations.]

    17. Re:Can't wait by Mike+McTernan · · Score: 1

      It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.

      Well, great for you maybe. What if another programmer wants to look at your code? They would have to first try to understand all your compiler extensions and idiosyncrasies.

      There are enough languages and standards already; enabling people to expand and modify them at their whim seems like a bad idea which could result in languages self-destructing!

      --
      -- Mike
    18. Re:Can't wait by ViolentGreen · · Score: 1

      It only has two native structures, the 'atom' and the 'sequence'. An atom is a single value, a sequence is an array of atoms and or sequences.

      That sounds like it is at least based on lisp. That is the basic premise of lisp as well. I believe the term "atom" orininated in lisp.

      --
      Not everything is analogous to cars. Car analogies rarely work.
    19. Re:Can't wait by Mycroft_VIII · · Score: 1

      I believe the guy who wrote Euphoria mentioned likeing lisp for it's handling of data structures.
      Much of the language is based on being as simple and flexible as possible.
      Though i don't think it's really a lisp decendant or clone. some things are definately different based on my limited knowledge of lisp.

      Mycroft

      --
      https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
    20. Re:Can't wait by ultranova · · Score: 1

      You just described the define statement of C preprocessor...

      --

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

    21. Re:Can't wait by exp(pi*sqrt(163)) · · Score: 1

      If they want to look at my code then a+2*b is easier to read than the unrolled loop. Languages are already expandable - that's what functions and variables are, things that acquire new meanings as a result of code we write. The solution to these difficulties is to document well and use libraries rather than rolling your own code all of the time.

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    22. Re:Can't wait by X · · Score: 1

      You can (and people frequently do) use MOP in a static manner. The dynamic aspect of it is not what makes it complicated (rather just a natural outcome of how CLOS works).

      --
      sigs are a waste of space
  12. Just what we need by Anonymous Coward · · Score: 5, Insightful

    Extensible, so that each programmer can use a whole heap of functional and syntatic elements that no other programmer has ever heard of...

    XML, so stuff that doesn't need to be human-readable is human-readable, and the whole mess is a good six times larger than it needs to be...

    Plugins, so that everything can be dependant upon proprietary, bulky, inefficient runtime engines...

    I am all for progress, and not married to old-school solutions by any means. However, some things can sound good in theory without actually representing progress.

    1. Re:Just what we need by Rick+the+Red · · Score: 1
      Where does it say that any of this has to be proprietary? Or are you giving up and saying Visual Studio is the only way to go?

      I think this is an opportunity for the Open Source community to beat the proprietary folks to market and set the standard.

      --
      If all this should have a reason, we would be the last to know.
    2. Re:Just what we need by beofli · · Score: 1

      Every programming language is already extensible. however, in the most popular languages (C en Java), the methods to compose elements are fixed (function decomposition, data structures, etc.).

      The idea of this article is that you add more powerful macro-like methods but at the same time tell how the debugger how to interpret it. This seams quite a neat idea, however, It's not yet clear to me how this works in practice.

      What I see in reactions like this is: Programmers develop complicated tools (databases, web interfaces, scripting languages, etc.) for others, but somehow, they don't want use their own tools themselves! Do you buy bread at a bakery when the baker does not want to eat its own bread?

    3. Re:Just what we need by ebyrob · · Score: 1

      When developers do what their customers do, they should (hopefully) use the tools they provide to their customers.

      However, would you expect a baker to use bread to make bread? Or would flour, water, baking soda, etc. be better suited for the task?

    4. Re:Just what we need by sik0fewl · · Score: 1

      XML, so stuff that doesn't need to be human-readable is human-readable [...]

      ... and so that stuff that does need to be human readable isn't.

      --
      I remember when legal used to mean lawful, now it means some kind of loophole. - Leo Kessler
  13. no by wardk · · Score: 0, Troll

    no

  14. Wrong. by Bingo+Foo · · Score: 4, Funny

    XML? Bah. Next generation languages will be written in "WIMNNWIS" (What I mean not necessarily what I say) and will run on processors liberally sprinkled with pixie dust.

    --
    taken! (by Davidleeroth) Thanks Bingo Foo!
    1. Re:Wrong. by Tumbleweed · · Score: 1

      Dude...pixie dust is for harddrives.

    2. Re:Wrong. by abiggerhammer · · Score: 1

      #include
      #include <p_equals_np.h>
      #include <do_what_i_mean_not_what_i_said.h>

      --
      Dance like nobody's watching. Sing like you're in the shower. Fuck like you're being filmed.
    3. Re:Wrong. by ericspinder · · Score: 1
      Creating names for a new technology is just the first step, next you'll have to publish a book on it and then go on a lecture tour!

      If you are working in a corporation, you'll need to create a power point presentation and present that to the board. Be sure to say that it will (without giving any "real data") increase ROI (Return on Investment) by allowing greater reuse of code (+ 2 or 3 more of the latest catch phrases). If you haven't done that without results more than twice before, you'll be in for a promotion

      Seriously, I don't see any use for it. Why do you need portability between languages? Perhaps this would be useful for someone who wants to run a program in AppleTalk and DotNet for the same deployment, but why not run it in Java (for portability) or C(++)(for speed). This is a solution in search of a problem!

      --
      The grass is only greener, if you don't take care of your own lawn.
    4. Re:Wrong. by default+luser · · Score: 1

      I was thinking more along the lines of developing a DIMWIT-compliant platform.

      Do I Mean What I Think?

      When was the last time you DIDN'T second-guess yourself? I want a system so intuitive that it does the second and third-guessing for me!

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

  15. Ah.. So the professor likes Eclipse by the_skywise · · Score: 3, Informative

    And suddenly he's propheysing the future?

    Editors like Emacs, Visual SlickEdit and even the loved/loathed MS Visual Studio have plug-in frameworks.

    As for XML being the "glue" for holding things together... No. It'll be a data neutral "modulator" you emit your data from your program by name in a particular format. Transmitting and receipt by the other programs will be handled by a remodulator. In between it might be XML, it might be binary, it might be whatever you feel like using that day.
    (and no I haven't read the artile (FORBIDDEN)

    1. Re:Ah.. So the professor likes Eclipse by Anonymous Coward · · Score: 1, Insightful

      > Editors like Emacs, Visual SlickEdit and even the
      > loved/loathed MS Visual Studio have plug-in
      > frameworks.

      That's not the point; Eclipse makes Java code accessible to Plugins as ASW,
      while Emacs & others only see it as a bunch of characters. This makes it possible to really manipulate *code* and not just text that happens to be code.

      Advantages:
      - immediate feedback of semantic errors (not
      just syntactic ones)
      - semantic highlighting (in Eclipse 3.0 M9)
      - all Eclipse Plugins can access and manipulate
      the AST instead of having to deal with strings
      that make up the code;

    2. Re:Ah.. So the professor likes Eclipse by Anonymous Coward · · Score: 1, Informative
      Or you can check out IDEA which does all that eclipse does, and more, and faster (MUCH faster), and with less bugs.

      Check out their PSI (program structure interfaces) for plugins.

    3. Re:Ah.. So the professor likes Eclipse by Anonymous Coward · · Score: 1, Insightful

      Emacs sees lisp-like languages as more than just characters - when editing lisp in emacs, it's not "just text".

    4. Re:Ah.. So the professor likes Eclipse by Anonymous Coward · · Score: 0

      Quit posting anonymously, RMS.

    5. Re:Ah.. So the professor likes Eclipse by warrax_666 · · Score: 1
      - immediate feedback of semantic errors (not
      just syntactic ones)
      - semantic highlighting (in Eclipse 3.0 M9)

      Emacs w/the "semantic" package has those, I believe. (Well, maybe not "immediate", but close enough :))

      all Eclipse Plugins can access and manipulate
      the AST instead of having to deal with strings
      that make up the code;


      Have you considered that the fact that plugins actually need to do this AST manipulation, might actually be a shortcoming of the language?
      --
      HAND.
  16. I always remember Master and Margaritta. by SharpFang · · Score: 4, Insightful

    How humans can tell what will be in a few years if they can't tell what will be tomorrow?
    I'd completely agree if the claim wasn't "that next-generation programming systems will combine compilers"... but "should combine...".
    Right, the idea is nice. But where will the market go, how will big corporations guide the development, what will become the new fancy or if there will be a new development that will render XML completely obsolete and feeling ugly comparing to that "new thing" - we don't know.

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    1. Re:I always remember Master and Margaritta. by corngrower · · Score: 1

      > that next-generation programming systems will combine compilers"... but "should combine...

      Does there not already exist development systems that can handle code written in multiple languages?
      (e.g. some of the modules being written in C++, others in Pascal or whatever)

    2. Re:I always remember Master and Margaritta. by Carnildo · · Score: 1

      Does there not already exist development systems that can handle code written in multiple languages?
      (e.g. some of the modules being written in C++, others in Pascal or whatever)


      Most linkers have been able to do this for at least a decade. You feed the program into the "make" utility in whatever languages it's using. For each file, it runs the appropriate compiler, which produces object code in the appropriate format, usually using the C ABI. The linker then combines those object files with the appropriate libraries to produce an executable.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    3. Re:I always remember Master and Margaritta. by corngrower · · Score: 1

      I'm more specifically referring to a debugger which will, when stepping through the code, be able to display and debug modules written in several different languages. I know this is possible with HDLs. I know of an environment that can debug a model consisting of modules written in VHDL, Verilog HDL and (a version of ) C. As you say, linking an executable from modules of more than one language is old news.

    4. Re:I always remember Master and Margaritta. by Frizzle+Fry · · Score: 1

      I think what you're looking for is .NET

      --
      I'd rather be lucky than good.
    5. Re:I always remember Master and Margaritta. by Bob+Uhl · · Score: 1
      I'm more specifically referring to a debugger which will, when stepping through the code, be able to display and debug modules written in several different languages.

      gdb does this...

  17. Rather Grand Conclusion ? by beatleadam · · Score: 3, Interesting

    Instead of treating each new idea as a special case, they allow programmers to say what they want to, when they want to, as they want to.

    Is this not the Ultimate goal of programming? The Holy Grail of programming perhaps?

    --
    I have a theory that the truth is never told during the nine-to-five hours. -- Hunter S. Thompson
    1. Re:Rather Grand Conclusion ? by sharkdba · · Score: 1

      Is this not the Ultimate goal of programming? The Holy Grail of programming perhaps?

      Indeed.

      Applies to artists as well I suppose. After all they've been trying to express their ideas/thoughts w/o a lot of unnecessary restrictions/limitations.

      --
      The purpose of life is to find the purpose of life.
    2. Re:Rather Grand Conclusion ? by hasdikarlsam · · Score: 1

      Not unlike the holy grail, it was created in the past and just got lost.

      Lisp already does that, mostly.

  18. Plugins?! by Greger47 · · Score: 3, Insightful

    Developers can add new or improved optimizations to SUIF by writing a filter and adding it to the compiler's configuration.

    Dude, I have enough trouble debugging my code without having my homemade, guaranteed to be buggy, optimizer introducing even more bugs...

    /greger

    1. Re:Plugins?! by DanielJH · · Score: 1

      That's minor. Think about how many bugs the extreamly complex propritary editors are going to insert into your code. You might have to be fluent in multiple languages just to find a view of your "data" that shows up the problem.

  19. Next generation for ME by mcrbids · · Score: 2, Interesting

    So here I am, coding away merrily, when I run into a *STICKY* problem.

    I'm running applications as user X, and need to access data as user Y. I have all the routines and everything written (in PHP) to access the data, but I need to do this as user Y, while accessing the data as user X.

    There's just no easy way to do this. You have to use some kind of glue (such as XML), along with parsers, socket connections, pipes, shared memory, and all that jazz just to be able to access data remotely.

    Ouch.

    What I'd like to see is the concept of a "remote object". Imagine standard OOP, except that a particular object doesn't have to exist in the same memory/process space as the parent.

    For example, instantiate an object on a remote server, or as another user on the same server, or at least in a different memory space as the same user & server.

    The biggest problem with XML is that it's heavy, very heavy, and requires specialized scripting in order to work.

    If you have an class already written that does what you need, you should be able to simply instantiate that object in the context you need it to run in, and then begin using it, COM style.

    Obviously, some calls (such as GLOBAL) would be affected or even disabled with such functionality - but can you imagine the benefits?

    Ah well. That world doesn't exist, yet.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
    1. Re:Next generation for ME by Greger47 · · Score: 3, Informative
      So whats wrong with CORBA? Here's one among several implementations for PHP: http://sourceforge.net/projects/universe-phpext/

      /greger

    2. Re:Next generation for ME by Anonymous Coward · · Score: 0
      For example, instantiate an object on a remote server, or as another user on the same server, or at least in a different memory space as the same user & server.

      As much as I hate to say it, look at MS's .NET Framework. Things similar to what you describe are possible, as far as remote servers go...

    3. Re:Next generation for ME by Carnildo · · Score: 1

      If you have an class already written that does what you need, you should be able to simply instantiate that object in the context you need it to run in, and then begin using it, COM style.

      So I can use this to instantiate a "shell" object in the context of "root" with no problems?

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    4. Re:Next generation for ME by Daniel+Dvorkin · · Score: 1

      Nothing is wrong with CORBA, other than that it's clunky as hell. And nothing is wrong with SOAP, other than that it discarded the "Simple" that is supposed to be the first letter of its name long ago, and is now turning into CORBA. I would love to see a true, universal, easy to program remote object model, but my experiences trying to use the current implementations have convinced me that we have a long way to go.

      No, I don't claim to know what a better way is, only that neither CORBA nor SOAP is it.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    5. Re:Next generation for ME by tigeba · · Score: 1

      "What I'd like to see is the concept of a "remote object". Imagine standard OOP, except that a particular object doesn't have to exist in the same memory/process space as the parent.

      You should check out CORBA, or RMI. There are also these things called Enterprise Java Beans that everyone loves to hate.

    6. Re:Next generation for ME by warriorpostman · · Score: 2, Informative

      .NET provides "remoting" and Java provides RMI. These are essentially Remote Objects. CORBA provides this cross-platform. If I understand exactly what you're asking for, it already exists. Clients can instantiate objects remotely, and maintain virtually local control of these remote objects, using the aforementioned technologies.

      However, if you're using PHP, the whole concept of remote object has to be patched together (just like in ASP) simply because there is no true "state" in web applications.

    7. Re:Next generation for ME by Anonymous Coward · · Score: 0

      Not least because both CORBA and SOAP assume single-dispatch (methods "belong" to classes), whereas more general OO stuff like Lisp allows methods to specialise on any and all arguments. So there will always be a load of lisp programmers who will simply turn their noses up at "general" OO frameworks that aren't general enough to handle multiple-dispatch OO.

    8. Re:Next generation for ME by Anonymous Coward · · Score: 1, Informative

      Ruby does all this very transparently already with the Distributed Ruby library which is part of the standard Ruby.

      Basically all you do is this:

      # Server
      # (Sorry about the bogus underlines, Slashdot kept wanting to remove my pretty whitespace!)
      class Calculator
      _ def add(a, b)
      _ _ return a + b
      _ end
      end
      DRb.start_service('druby://server:9000', Calculator.new)

      # Client
      calculator = DRbObject.new(nil, 'druby://server:9000')
      calculator.add(2, 2) # => 4 -- Note that the calculation will be done by the server!

      It's as simple as that. You can run the Server and the Client on entirely different computers, thousands of miles away and everything will just work. There are layers that build on top of this which provide master server functionality (clients and servers can find each other via an application server), firewall layers and more. All those however keep in the spirit of the simplicity of the example code above.

      There's more information about this available at this article. Just one more quote I would like to highlight:

      Ho hum, you say. This sounds like Java's RMI, or CORBA, or whatever. Yes, it is a functional distributed object mechanism---but it is written in just 200 lines of Ruby code. No C, nothing fancy, just plain old Ruby code.
    9. Re:Next generation for ME by beat.bolli · · Score: 1

      Have you ever looked at XML-RPC? There are at least 9 PHP implementations around.

      --
      Karma: none (due to not believing in reincarnation)
    10. Re:Next generation for ME by Anonymous Coward · · Score: 0

      All ten of them.

  20. Solution looking for a problem? by Carnildo · · Score: 2, Insightful

    A brief read of the article indicates that the author is trying to solve problems that don't exist, and as a result, is coming up with solutions that are worse than the supposed problems.

    --
    "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    1. Re:Solution looking for a problem? by sharkdba · · Score: 1

      ...the author is trying to solve problems that don't exist...

      I don't agree. The author is listing existing problems which programmers of various languages/tools are encountering.

      Besides, he's just proposing a solution, not forcing an implementation. All it does is opening a discussion, and that's a good thing. Languages and any other tools we use to program machines are evolving. If they can evolve by taking into consideration the programming public, it's just for the better. No one is saying he found a silver bullet (which probably doesn't exist in programming), but he certainly mentioned a lot of good ideas, which can be improved upon.

      --
      The purpose of life is to find the purpose of life.
  21. Paradign Shift in Manufacture by The_Myth · · Score: 1

    Until we have a major change in teh hardware elements programming lanuages will become more of the same with some refinements not to the languages but to the object models and header files that are associated with them.

    --
    The MyTh - I am a figment of the Imagination - [Im Probably even not here]
  22. Sounds like Forth by Anonymous Coward · · Score: 4, Insightful
    Except for that XML stuff.

    I don't understand this fascination with XML. It's just a generic container for storing data - nothing more. OpenOffice uses it as the underlying format for storing documents, but that doesn't mean I have to deal with it when writing a document. It's transparent to the end user.

    In the same way, , why should I have to deal with it when coding? It's sort of like requiring coders to be able to pop up a hex editor and cruise through the code.

    Remember MVC (model-view-controller)? Being able to disassociate the different parts was considered a good thing. Swing decided it was too cumbersome, ASP.NET joins them at the hip, and now we've come all the around, with Microsoft proclaiming with XAML that everything should be dumped into one big XML box.

    Bleah.

    1. Re:Sounds like Forth by X · · Score: 1

      Yup, I missed Forth, but it's another good example. Forth, CLOS, Smalltalk.... all very old languages, and yet this is supposed to be something new. The fact that VB, Java, and C have been more popular suggests there might be a problem here.

      --
      sigs are a waste of space
    2. Re:Sounds like Forth by Anonymous Coward · · Score: 1, Insightful

      Did you RTFA? His point is that you won't have to read it when coding, any more than you'd read hex or binary -- it will just be the underlying representation that allows your editor more flexibility, etc.

    3. Re:Sounds like Forth by Anonymous Coward · · Score: 0

      Did you RTFA?

      "We believe that next-generation programming systems will store source code as XML, rather than as flat text. Programmers will not see or edit XML tags;" ...

    4. Re:Sounds like Forth by iabervon · · Score: 1

      He actually says that the tools should handle all of the XML stuff for you, so that you see something like what you're used to. That it, XML would be used internally, because it's easy for the computer to parse, manipulate, and generate, unlike C-like syntaxes, which are very difficult to produce in a readable way. The programmer would use the C-like syntax that they're used to, which the editor would produce from the...

      That's right, we're going to solve the problem that whitespace in C is an art form that computers can't manage when generating code by having the computer generate all of the whitespace, which will be magically easier because it's completely vital.

    5. Re:Sounds like Forth by Anonymous Coward · · Score: 0

      because it's easy for the computer to parse, manipulate, and generate

      Actually, XML is pretty difficult for the computer to parse and manipulate. It's easier than C++, sure, but:

      The programmer would use the C-like syntax that they're used to, which the editor would produce from the...

      you still have to parse the C-like syntax.

  23. Hot air? by Henrik+S.+Hansen · · Score: 2, Insightful
    Ok. Perhaps there are some interesting things to pick out from this. But it is a giant leap to claim that the next big thing will be extensible programming. I think we can all remember XML, OOP, and all the rest.

    Good ideas, which are the correct choice for some problem domains (OOP is for instance often a good choice for GUI's , IMO). But they're not the best choice for everything

    So this is Yet Another Buzzword. At least he didn't shorten it to XP. ;)

    1. Re:Hot air? by optikSmoke · · Score: 1

      At least he didn't shorten it to XP. ;)

      Might I suggest XML Programming? Yarrrrrrr.

  24. Promise? by beatleadam · · Score: 1

    The result will be systems that are simultaneously more sophisticated and easier to understand.

    Is this really...Truly possible?

    --
    I have a theory that the truth is never told during the nine-to-five hours. -- Hunter S. Thompson
    1. Re:Promise? by Anonymous Coward · · Score: 0

      Of course not, 'framework' and 'extensible' are synonyms for 'a big slow fat mess'.

  25. Why XML? by ProfessionalCookie · · Score: 4, Insightful
    XML is great and all but there are a few killer disadvantages. It can be really really slow. It can mean generating huge files. A well documented open format is better than a "human readable" XML template. How many XML files have you looked at that have this kind of thing :

    <DATA>2ED4F64676766DC7B87A76A65B1722303FFF</DATA&g t;


    Sometimes XML is not the answer. That being said there are also so really great uses, but XML was not made for everything.
    1. Re:Why XML? by Impy+the+Impiuos+Imp · · Score: 2, Insightful

      The love of XML and Java stun me. It's the younger, LISP-ignorant generations who are infatuated with this crap.

      I blame the education system, with all mealy mouthed teachers who wince if Little Johnny cries about too much homework causing him to lose 10 minutes from his seven hours of Halo every evening.

      Teacher of the Future: Come on, Johnny! You can do it! You can program it!

      Johnny: It's too hard!

      TotF: Johnny! Johnny! (starts cabbage patching)

      Johnny: Computer, create a program to figure the fifth digit of PI and tell me it.

      Computer: 9

      TotF: I knew you could do it, Johnny!

      Johnny: Yey!

      Note to 'tards: Computer makes assumptions for Little Johnny. Shut the hell up!

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    2. Re:Why XML? by oliverthered · · Score: 1

      there's nothing wrong with that if you use XML like I do,
      So that packet of data can be transformed and fed into something else.

      --
      thank God the internet isn't a human right.
    3. Re:Why XML? by dcam · · Score: 2, Insightful

      You know what the next killer algorithms will be for? Processing XML.

      XML is good in a few limited circumstances. It works with small amounts of data, and is great for communication. And yet XML is being touted as the cure for cancer and being applied in every possible. MS has bought it big time with Longhorn from what I can see.

      The way we are going, we are going to end with a lot of data stored and transmitted in XML and a lot of applications committed to XML. And you know what is wrong with that? XML doesn't scale well.

      The XML thing is quite depressing. You take something that is good and useful and apply it everywhere, whether it is appropriate or not. Gah.

      --
      meh
    4. Re:Why XML? by Anonymous Coward · · Score: 0

      XML doesnt scale?
      why? for what?

    5. Re:Why XML? by TheLink · · Score: 1

      Must be an alternate universe for 5th digit of Pi to be 9. Unless you're talking about something else.

      --
    6. Re:Why XML? by Anonymous Coward · · Score: 0

      IMHO XML generates oversized files and can become a pain in the ass to parse for complex structures.

    7. Re:Why XML? by BenjyD · · Score: 1

      3.14159
      0.12345

      Looks like the 5th (decimal) digit to me.

    8. Re:Why XML? by Anonymous Coward · · Score: 0

      oversized files.

      as apposed to what. and why is it such a big problem?

      and how is it a pain in the ass to parse for complex structures. WHats a complex structure thats hard to parse?

    9. Re:Why XML? by sharkdba · · Score: 1

      Looks like the 5th (decimal) digit to me.

      Yes, but you changed the context by adding the "decimal" into the sentence. Unless the parent had it implied, but since this was an instruction issued to a computer, it should not have this fuzziness.

      --
      The purpose of life is to find the purpose of life.
    10. Re:Why XML? by Tim+C · · Score: 1

      Trust a programmer to count from zero...

    11. Re:Why XML? by Anonymous Coward · · Score: 0

      A network? XML is fine for tree structures. So is lisp sexps, of course, but that wouldn't allow MS to get hundreds of patents. Lisp, unlike XML, has a semi-elegant way of expressing network, not just tree, structure. Semi-elegant because it works and it's fully general, but is not exactly beautiful:
      http://www.lispworks.com/reference/Hyp erSpec/Body/ 02_dho.htm

      Consider:

      (apple #1=(pie in the sky (so high I love that #1#)))

      This is a structure with a self-referential loop in it! Try expressing that in XML, beyatch!

    12. Re:Why XML? by Anonymous Coward · · Score: 0

      using IDREF, dont bag something you dont understand.

    13. Re:Why XML? by Impy+the+Impiuos+Imp · · Score: 1

      Perhaps some of you missed my line: [b]Note to 'tards: Computer makes assumptions for Little Johnny. Shut the hell up![/b]

      I had thought of putting in an explanation of the assumptions, or having the computer ask Johnny. But I decided it would detract from the flow, and add nothing to the point I was making with the little play.

      Again, this is why many of you programmers should not be designing computer interfaces to real people.

      I have two DirecTV satellite boxes from different companies. One I press "select" on a future program, and it puts a check in the onscreen guide and auto tunes when I get there. Nice! The other, I press select select, I have to navigate into two layers of menus. Then selecting it for future viewing, [b]it puts up a popup notifying me that it is now selected![/b] Then, later on, with 1 minute to go before the show, it puts up a dialog box asking me if I'd like to switch to the program. Then I have to choose yes or no. Then, regardless of the choice, it doesn't switch. I am confused. Then, one minute later, it switches automatically, if I had chosen yes.

      [Dr Evil Voice = on]
      Most of you programmers (not I, being perfect)
      just don't get it.
      [/Evil]

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    14. Re:Why XML? by Anonymous Coward · · Score: 0

      Wha? IDREF is not the same thing at all! IDREF is a unique identifier reference, it doesn't cause a circularity in the data structures in memory themselves! When a lisp sexp #1=, #1# expression pair is read in, a REAL CIRCULAR REFERENCE CAN BE CREATED! Don't forget that Lisp GC, unlike crippled languages, can handle circularities just fine...

    15. Re:Why XML? by Anonymous Coward · · Score: 0

      the IDREF is used as reference. Or you could put in a xpath expression. Whatever.

      On the other hand XML:schema can represent a recursive structure.

      And what would be the use of it anyway? an infinite bunch of nothingness? The only practical use I can think of is as a child to parent pointer.

  26. That's exactly the reason why ... by giampy · · Score: 1

    ... the tower of Babel fell !

    aka, lack of a unified language :)

    --
    We learn from history that we learn nothing from history - Tom Veneziano
    1. Re:That's exactly the reason why ... by PuffCammy · · Score: 2, Insightful

      When they were building the tower of Babel, they all had the same language, after God smited them and brought down the tower, they lost that unified language

      --
      And the day came when the risk to remain closed in a bud, became more painful than the risk it took to blossom.
  27. Summary Of The Summary by Pan+T.+Hose · · Score: 3, Informative

    An interesting article written by a professor at the University of Toronto argues that next-generation programming systems will combine compilers, linkers, debuggers, and that other tools will be plugin frameworks, rather than monolithic applications.

    This is not the next generation of programming systems but rather the present one for pretty much everyone except for those using Microsoft tools.

    Programmers will be able to extend the syntax of programming languages,

    Again, nothing new.

    and programs will be stored as XML documents so that programmers can represent and process data and meta-data uniformly.

    There is no way in hell that would ever happen. Ever.

    It's a very insightful and thought-provoking read. Is this going to be the next generation of extensible programming?

    No.

    Now, I will read the entire article, but somehow, I am not holding my breath...

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:Summary Of The Summary by tumbaumba · · Score: 1

      > >Programmers will be able to extend the syntax of programming languages,
      >Again, nothing new.


      And also here.

      >>It's a very insightful and thought-provoking read. Is this going to be the next generation of extensible programming?
      >No.


      I agree. What people forget is that you can not win against entropy. By redefining problem in a different way you are not necessarily solving it. Does anyone even remember now KISS principal?

    2. Re:Summary Of The Summary by Anonymous Coward · · Score: 0

      > [...] Now, I will read the entire article, but somehow, I am not holding my breath...

      Wouldn't it make more sense to comment the article *after* reading it?

    3. Re:Summary Of The Summary by be-fan · · Score: 1

      There is no way in hell that would ever happen. Ever.

      But it already exists. Lisp programs are stored as sexpr's, which are just a less-verbose way to do the same thing XML does. And Lisp programs can treat Lisp programs as data, just like XSLT programs, except in a natural and easy-to-program way!

      --
      A deep unwavering belief is a sure sign you're missing something...
  28. Re:Greg is a pro! by xcham · · Score: 1

    I second that.
    Need some of those too...

    --
    When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
  29. Yeah huh... by grasshoppa · · Score: 2, Insightful

    ...and by the 21st century, weren't we all supposed to have flying cars?

    Personally, I'll take the flying cars...;)

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
    1. Re:Yeah huh... by Tumbleweed · · Score: 4, Funny

      Yep, and around the same time, we'll all be typing on Dvorak keyboards in Esperanto talking about the new flat tax. :)

    2. Re:Yeah huh... by JamieF · · Score: 1

      No, no, Lojban !

      It's Esperanto ^ 2.

      And we'll type it on a FrogPad.

    3. Re:Yeah huh... by Click+0+Nett · · Score: 1
      Yep, and around the same time, we'll all be typing on Dvorak keyboards in Esperanto talking about the new flat tax. :)

      Hey, a few of us are already living the drea-.... uh...... d-r-e-a-.... crap, where is that letter after 'L'?!

      --

      Like eagles on pogo-sticks! -- Glottis

    4. Re:Yeah huh... by Bros · · Score: 0

      ... and playing Duke Nukem Forever... or StarCraft 2 ;-)

    5. Re:Yeah huh... by sharkdba · · Score: 1
      Yep, and around the same time, we'll all be typing on Dvorak keyboards in Esperanto talking about the new flat tax. :)

      Funny as it sounds, but it doesn't mean good ideas should not be born. After all, all the things you mentioned were good things just never implemented due to either old habits, resistance to change, or pure laziness:
      • Dvorak keyboards - would allow more efficient typing if people would take the time to (re)learn it.
      • Esperanto - easy to learn language for ALL nations, w/o complicated grammar, exceptions, etc.
      • flat tax - well, this is controversial, since it's political, but personally I think it's a great idea.
      --
      The purpose of life is to find the purpose of life.
    6. Re:Yeah huh... by Tumbleweed · · Score: 1

      Too true. Also add (for those of us in the U.S.) that we'd be using the Metric system at the same time, as well as driving electric cars powered by renewable, clean power sources (and using lots more public transportation), eating only healthy food, and wearing hemp-based clothing instead of cotton-based. *shrug*

      Vote for me for Dictator, and I shall solve _all_ these problems, and more! :)

    7. Re:Yeah huh... by Anonymous Coward · · Score: 0

      # Dvorak keyboards - would allow more efficient typing if people would take the time to (re)learn it.

      A myth, debunked so many times I'm amazed anyone's still repeating it. The claim is based on a single, biased, study; nobody has been able to verify the results.

      # Esperanto - easy to learn language for ALL nations, w/o complicated grammar, exceptions, etc.

      All nations who speak a Romance language, anyway. I'm not aware that the Chinese find it particularly intuitive.

    8. Re:Yeah huh... by 19thNervousBreakdown · · Score: 1

      Funny how you can't find one of the two keys that are the same between QWERTY and Dvorak...

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    9. Re:Yeah huh... by Anonymous Coward · · Score: 0
      ## Esperanto - easy to learn language for ALL nations

      # All nations who speak a Romance language, anyway.

      Or germanic or slavic (the other two roots of Esperanto).

      # I'm not aware that the Chinese find it particularly intuitive.

      Except for that long tradition Esperanto magazines published out of China.
    10. Re:Yeah huh... by Anonymous Coward · · Score: 0

      aoeu Sajnas al mi ke ne estus tre strange pri tio. htns

    11. Re:Yeah huh... by Anonymous Coward · · Score: 0

      A demonstration of just how bad QWERTY really is. They say the hard part about learning Dvorak is looking for a key--you probably have a finger sitting on it.

  30. The laughs keep coming by fuzzy12345 · · Score: 4, Insightful

    So this guy's familiar with UNIX, he's familiar with Lisp, yet he thinks the future is XML and hideous frameworks with ever-changing APIs? Not often you se e someone with a hammer AND a screwdriver using the hammer to pound screws.

    --

    Everybody's a libertarian 'till their neighbour's becomes a crack house.
    1. Re:The laughs keep coming by Carnildo · · Score: 1

      You sure of that? Seems to me like he's trying to put nails in with the screwdriver.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    2. Re:The laughs keep coming by Anonymous Coward · · Score: 0

      It's not the size of that hammer that counts, it's the nail you're flingin' it at.

    3. Re:The laughs keep coming by bradtes · · Score: 1

      Amen.

    4. Re:The laughs keep coming by Elwood+P+Dowd · · Score: 1
      Hey, smartguy:
      Not often you se e someone with a hammer AND a screwdriver using the hammer to pound screws.
      That's what you're supposed to do. Screwdrivers are for taking out screws. Putting screws in with a screwdriver takes way way way too long, and is at least as likely to split the board.

      Of course, a power drill is much better, but if you only have a hammer and a screwdriver... you use the hammer to put the screws in. That's what they did before they had electric drills. (IANAL, but I used to work in a cabinet shop.)
      --

      There are no trails. There are no trees out here.
    5. Re:The laughs keep coming by Anonymous Coward · · Score: 0

      I assure you, that does NOT apply to screws fastening metal, and I've never heard of people doing it with wood, either (but I am willing to admit it is possible) - in the days before electric drills/screwdrivers, people made a tap hole with an awl (spike) for the screw to screw into.

    6. Re:The laughs keep coming by Anonymous Coward · · Score: 0

      Are you a complete imbecile or just inexperienced?
      Have you ever tried to screw _in_ a screw, ever?

      Stop acting and preaching on concepts.

  31. Swell... by Anonymous Coward · · Score: 0

    Now the developers of tomorrow have a heads up on the next big, stupid programming idiom to make their lives miserable.

  32. yup by Janek+Kozicki · · Score: 3, Informative

    that next-generation programming systems will combine compilers, linkers, debuggers, and that other tools will be plugin frameworks, rather than monolithic applications.

    yup, it already happened. more than 10 years ago. it's called Rule of modularity and Rule of Composition. In case you don't know. It's the Basics of the Unix Philosophy

    --
    #
    #\ @ ? Colonize Mars
    #
    1. Re:yup by Anonymous Coward · · Score: 0

      And that's probably the reason why he concentrates so much on unix in his article - to mention the differences to his proposal.

    2. Re:yup by Anonymous Coward · · Score: 1, Insightful

      Unix only provides text streams, that's not a good enough base for "plugin frameworks" and integration outside of the shell. You also need protocols, types, conventions, interfaces and so on = some structure (that XML can indeed provide).

  33. Extensible Programming == BAD! by Space_Soldier · · Score: 4, Insightful

    We've seen what can happen to languages when countries get conquered. English is one of the best examples. Try to read some old English to see for yourself. With XPL (Extensible Programming Language), you cannot say anymore that I know C++, or I know C#. Someone will ask you to maintain some code, and you'll take a look at it and have no idea what is going on, until you learn the extensions. This will happen over and over again with every project you are supposed to maintain. This is BRAIN FRYING and huge possibilities for mistakes. It is just like waking up everyday and being asked to speak in another human language. Today English, tomorrow French, the day after tomorrow Bengali, can you do it?

    1. Re:Extensible Programming == BAD! by Anonymous Coward · · Score: 0
      This is actually not as big problem as you think.

      When you start working with someone else's code you have to learn most of the structures and patterns anyway, the build system, the file layout, the 3rd-party librarys...

      Extending the syntax of the language just means instead of having stuff like:
      Iterator I = new ObjIterator(obj);
      Obj tmp;
      for (; tmp = I.next(); I.hasNext()) {
      doSomethingWith(tmp);
      }
      you might see stuff like
      obj.withEach(tmp) {
      doSomethingWith(tmp);
      }
      I.e., in the hands of a competent programming, extending syntax makes your program MORE readable. Just like refactoring or decomposing into objects is a powerful tool that can divide your program into logical chunks, or it can turn it into a mess of endless delegation and confusion.

      In other words, you still have to deal with each programmer's idiosyncracies anyway, even in a language with rigid syntax.
    2. Re:Extensible Programming == BAD! by Anonymous Coward · · Score: 0
      No kidding. It reminds me of the way some clueless have abused the C preprocessor.

      One time years ago I was looking for some C source code for a linker which could handle OMF object modules. I finally found one. Or so I thought . . .

      This dude had taken the C preprocessor and created this baroque pseudo Pascal/Ada/Modula language with C macros. Stuff like this:

      #define begin {
      #define end }
      There was NOTHING recognizable as "C" after this dude had hacked it. He had written the linker completely is this weirdo language. It completely obfuscated the code. After a few days of trying to unravel this mess I gave up and said to hell with it.
    3. Re:Extensible Programming == BAD! by poincare · · Score: 2, Interesting

      I very much agree. I think the reason that Java has risen to its status today is because it constrains the programmer to be explicit with what methods are being called upon what data, and thus easier for someone other than the orginal writter to understand what's going on. In Java A=B will do the same thing every time (as far as the programmer is concerned), but in C++, A=B may mean any number of things depending on operator overloading. I think XML has the same advantage over S-expressions that a strongly typed programming language (E.G. Java) has over an untyped language: transparency. Image if HTML was based on S-expressions:

      (html (head (title "bla")) (body (bgcolor blue)(b (a (href "http://osdn.com/osdnsearch.pl") (style "text-decoration: none") (fontsize "-2") (face "verdana") Search)))(i Here))))

      Sure if you have an editor that will show you matching (), then the above s-expression makes sense, but otherwise it would be a nightmare trying to figure out why Here was not in bold. HTML and XML are much easier for humans to read (and thus debug) because it's clear where in the tree you are editing, just as it's easier to program in Jave because you are forced to be explicit about what data types you are manipulating and what calls you are making.

    4. Re:Extensible Programming == BAD! by Nuttles · · Score: 1

      your analogy is wrong. Computer languages, while they are hard to learn and wield, they are not even in the same class as a spoken language. for example, if you are married and you ask your wife if everything is ok, and she saids 'I am fine'. 'I am fine' can mean many different things.

      Once you know how a language works and how computers work, you have the tools to quickly pick up any computer language. Yes, yes, I know there is a big difference between lets say LISP and C++, but if you don't have the knack for picking this stuff up when you need to and with little pain you have no business being a programmer. If you don't love being a programmer, you are wasting your time and the company you are working for time.

      Saying this I still think Extensible Programming can be a bad thing, just not for the reason stated previously.

      I think the real problem trying to be solved here is that programming is hard. The problem of it's difficulty is trying to solved in the wrong way. Too many people are allowed to be programmers when they have no business around code. Too many projects are run as though you are building a bridge while you are planning it. Building sofware can be infinately more complex that building a bridge (don't bash me for the generalization, I could elaborate...but I don't want to write a novel here)

      well, those are my 2 cents

      Nuttles

      Christian and proud of it

    5. Re:Extensible Programming == BAD! by Patrik+Nordebo · · Score: 1

      Or you could ask your kind, helpful Lisp environment (or sexpr-TML or indent equivalent) to pretty-print and you'd immediately see what was wrong:

      (HTML (HEAD (TITLE "bla"))
      (BODY (BGCOLOR BLUE)
      (B
      (A (HREF "http://osdn.com/osdnsearch.pl") (STYLE "text-decoration: none")
      (FONTSIZE "-2") (FACE "verdana") SEARCH)))
      (I HERE))

      Now that wasn't so hard, was it? I find HTML written in a bunched-up style like that unreadable too, and use auto-formatting to fix that problem, too. All you're showing is that poorly written code is unreadable, but didn't we all know that already?

    6. Re:Extensible Programming == BAD! by StrawberryFrog · · Score: 2, Insightful

      Someone will ask you to maintain some code, and you'll take a look at it and have no idea what is going on, until you learn the extensions. This will happen over and over again with every project you are supposed to maintain.

      Eh, that's no different from the usual: starting a new job and being asked to maintain and extend a regular 100 000 line program: you'll take a look at it and have no idea what is going on, until you learn the objects and functions.

      In both cases, standard libraries and readable, maintainable, consitent design and coding can make your learning curve more pleasant. But how often does that happen in business?

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    7. Re:Extensible Programming == BAD! by sodhi1981 · · Score: 1

      Of course, I can being an Indian Bengali and becuase I had English and French in School

    8. Re:Extensible Programming == BAD! by gsantoshg · · Score: 1

      xml is useful for specifying semi-structured data.
      It has semantics with data, so it is good for maching processing. These 2 properties make it suitable for specifying standards of communication between 2 programs or modules (can be ERP programs (Business processing markup Language or whatever is the standard), can be e-learning programs (SCORM, Sharable Content Object Resource Model)).
      The standard is more important than representation (xml). If u have one representation (xml), easy to reuse tools across applications.
      You may use xml to represent say programming libraries. Say along with SCORM which specifies data format, I will have standard operations on e-learning content in a library or package.
      Advantage, can be processed by machines easily,
      can have conversion from xml library to programming language, making different programming languages work together,
      disadvantage, difficult to have flow in XML.
      Again, having the library standard is the difficult and important part, representation in xml or any other format is fine.

    9. Re:Extensible Programming == BAD! by mikael · · Score: 1

      With XPL (Extensible Programming Language), you cannot say anymore that I know C++, or I know C#.

      This would be no different from the current situation. It's not a matter of knowing an OS (Linux/Solaris/Windows) and programming language (C/C++/C#/Java) to get a job now. In many cases, you also need to be to demonstrate experience with the various API's (STL, COM, ATL, OpenGL, SQL, whatever...). Sometimes the particular skills are so exclusive (licensed by very few companies) that only someone who has been in the industry from the very beginning would be considered for a position.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  34. Bloat ain't bad by Stevyn · · Score: 1

    People see this as bloat, but it's always been an issue. As computers get faster, we can remove ourselves from the nitty gritty of computer programming and back to computer science. Sixty years ago computer scientists probabably would have thought the same thing about the most efficient methods we make applications today. "IDE? What the hell is that for? Use punch cards!" My point is that as cpu and memory increase in speed and size, we take advantage of that in ways other than making the final result run faster. In twenty years, this idea will probably seem something like "wait, they used to type the source code?" I think this is just evolution of computer science.

    1. Re:Bloat ain't bad by xcham · · Score: 1

      This is somewhat true, but I wouldn't say we've quite reached the point where we can remove ourselves from the nitty-gritty. For anything remotely time critical, using quasi-interpreted languages like Java is foolish.

      Moore's Law has been breaking down for quite some time now. If computing resources were as abundant as your camp would like us to believe, we wouldn't have so many people working hard on optimizing compilers - generating good machine code so you don't have to.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
  35. Let's see here.. by k98sven · · Score: 5, Interesting

    If I recall correctly,
    Fourth-Generation languages was going to be the future of programming back in the early 80's?
    (Machine code, Fortran/Basic-type languages and Pascal/C-type languages being the supposed first, second and third generations, IIRC)

    Then in the early 90's.. OOP was going to save the world. Not that it hasn't had impact, but it certainly hasn't fundamentally changed things.

    And now it's XML that's going to save the programmers, while the old-timers whine that we should all really be using Lisp.

    Not that I'm a computer-language conservative myself, but it's worth pointing out that historically, there has been quite a big discrepancy between which languages the Comp-Sci researchers feel everyone should be using, and the ones which actually are used.

    1. Re:Let's see here.. by ezzzD55J · · Score: 2, Insightful
      Not that I'm a computer-language conservative myself, but it's worth pointing out that historically, there has been quite a big discrepancy between which languages the Comp-Sci researchers feel everyone should be using, and the ones which actually are used.
      True, but that doesn't mean the researchers are wrong..!
    2. Re:Let's see here.. by Tony · · Score: 2, Insightful

      ...while the old-timers whine that we should all really be using Lisp.

      That could be because Lisp provides most of the features outlined in the article, without the problems?

      --
      Microsoft is to software what Budweiser is to beer.
    3. Re:Let's see here.. by Anonymous Coward · · Score: 0

      ...it's worth pointing out that historically, there has been quite a big discrepancy between which languages the Comp-Sci researchers feel everyone should be using, and the ones which actually are used.

      I wonder if there is any correlation between this fact and the number of bugs in the world today...

    4. Re:Let's see here.. by ViolentGreen · · Score: 2, Insightful

      A lot of people today still see OOP is a fad that will pass. On the otherhand, there has always been resistance to new programming paradigms. The early machine-code programmers resisted FORTRAN. The FORTRAN programmers resisted the Algol-like languages. People (including myself) are still not sure about the tradeoffs of OOP. If this is the next big thing, it is really no suprise that the majority of people here seem to oppose it.

      --
      Not everything is analogous to cars. Car analogies rarely work.
    5. Re:Let's see here.. by Anonymous Coward · · Score: 0

      People oppose being executed en masse. It's not the next big thing.

    6. Re:Let's see here.. by Anonymous Coward · · Score: 0

      Not that I'm a computer-language conservative myself, but it's worth pointing out that historically, there has been quite a big discrepancy between which languages the Comp-Sci researchers feel everyone should be using, and the ones which actually are used.

      Yeah. The researchers are writing the languages that everyone else will be using twenty to thirty years later.

  36. The more things change... by treerex · · Score: 4, Interesting

    that next-generation programming systems will combine compilers, linkers, debuggers,

    ...THINK Pascal (for the Mac) was doing this almost 20 years ago: the editor served as the front end to the compiler --- so the syntax highlighting in the THINK Pascal editor was driven by the lexer (really was the lexer): you knew about syntax errors immediately. The debugger was fully integrated into the environment. It was really sweet, and probably one of the best programming environments ever written.

    and that other tools will be plugin frameworks

    Like Unix pipes and Eclipse?

    Tomorrow arrived yesterday and appears today.

    1. Re:The more things change... by Anonymous Coward · · Score: 0

      THINK Pascal (for the Mac) was doing this almost 20 years ago

      UCSD Pascal was doing this almost 30 years ago. Think Pascal (and Borland's Turbo Pascal) are descendents of UCSD Pascal.

    2. Re:The more things change... by Anonymous Coward · · Score: 0

      Bah, Optimized Systems Software's Action! language for Atari 8-bits did that before the Mac was born. No built-in debugger, but hey, it was only a 16KB bank-switched cartridge. Still had a great editor, lightning-fast compiler, and linker all rolled together.

  37. They'll have to change the name ... by magefile · · Score: 2, Funny

    eXtensible Programming sounds too much like eXtreme Programming.

    Maybe they can call it Extensible Fox?

  38. Back To the Future! by But+Who's+Counting · · Score: 2, Insightful

    Is it just me, or did this "visionary genius" just describe a Lisp Machine from 30 years ago? Man, if this is "progress", we're screwed.

  39. Wait a minute. This has happened before by BillsPetMonkey · · Score: 1

    The arguments being posted here are exactly the same that would've been posted about arguments against XML replacing EDI.

    An EDI message looks like garbage:

    ILD=1+0+0+1222+3+0+0+S+17500'STL=1+1+S+ASSOR. NP11+?'EXT?''

    and people said "XML will never replace it because no-one's meant to read this stuff and the resulting files will be huge."

    XML is replacing EDI already. The EDI networks didn't see it coming, mostly because they tried to use XML as an excuse to hike their kilocharacter transfer charges. Doh.

    Now you can see XML already replacing RPC with web services. You might knock it but it's being used right now every time you get a stock market quote. The SOAP wrapper allows remote methods using XML already. a C# client accessing a Perl Server app over the web. Nothing new there, so why are folks here denying it exists?

    --
    "It's not your information. It's information about you" - John Ford, Vice President, Equifax
    1. Re:Wait a minute. This has happened before by Anonymous Coward · · Score: 0

      Now you can see XML already replacing RPC with web services

      So one interface is being replaced by another that does the job a bit better? This is news? EDI was/is being replaced because it can be easily malformed. Which makes the data painfull to use. I am not surprised EDI programmers are JUMPING at XML. Not because its 'more expensive', but because the format MUST be defined before the data. Also XML is extremly transformable. EDI needs to be transformed before you can even parse it properly...

      The author of that article just discovered something that most comp sci people should already know, or at least someone who has taken a couple of higher level math class's. Most problems can be transformed into a different process that does the same thing. Had a teacher show me how to do a sorting program with the traveling salesmen problem once. Very cool stuff.

      I have taken a program turned it from VB to C++ to T-SQL. No loss of functionality. I have little doubt I could turn this program into another language with little trouble.

      The artical has the usuall 'this is where we will be in a few years' feel to it. There is one or two of these a year. Ignor them and move on. The author forgets why we program the way we do. It is the API. Why is linux so popular? The API is fairly well known. Why is win32 popular? The API is fairly well known. We then pick a language of the week and use those API's to slug some data around (this week XML data). When Windows and Linux are long dead we will look back and think 'man that stuff was cool' and continue doing what we have done for years doing the same sluging around of data with programs.

    2. Re:Wait a minute. This has happened before by corngrower · · Score: 2, Insightful
      What benefits does XML have over EDI when transmitting business data? I know of none. The only reason this substitution is happening is that XML happens to be the big buzzword among PHB's.

      For something - retriveing stock qootes over the internet, I certainly can see its use. But when you're talking about company A's computer talking to company B's computer, maybe EDI is a better way to go, especially if company A or company B is still using dial-up lines (there are a lot of small companies out therer), considering the verbosity of XML and the efficiency of EDI.

    3. Re:Wait a minute. This has happened before by BillsPetMonkey · · Score: 1

      You've never actually seen an EDI transmission have you? Those "effieciencies" you talk of accrue ONLY to the EDI network. When an EDI transmission has to be corrected (as it's so often malformed, because there's so many pointless cross-referenced checksums), the message looks awful. Look at the sample message in my earlier post. Imaging your're looking at a page of that and one of the values is wrong.

      Now tell me if you prefer working with XML.

      --
      "It's not your information. It's information about you" - John Ford, Vice President, Equifax
  40. Back to the future. by X · · Score: 2, Insightful

    It's kind of funny when you think about it. Smalltalk and CLOS (and for that matter their predicessors) seem quite close to what he's describing (admittedly without the XML side of things). I guess it just follows the "those who ignore history are doomed to repeat it" mantra.

    I'm not sure why he thinks it is important that the meta object protocol stuff be done in XML. I mean, why not just in the language itself? This has been shown to work with both of the above.

    The problem he's not seeing of course, is that this approach essentially results in each project having it's own "language", which must be understood before one can participate in it.

    --
    sigs are a waste of space
    1. Re:Back to the future. by Anonymous Coward · · Score: 1, Insightful

      The problem he's not seeing of course, is that this approach essentially results in each project having it's own "language", which must be understood before one can participate in it.

      This is how it is anyway, isn't it? When you have a bunch of objects with methods representing some business methods or entities, you are basically using a domain specific language, which is different from program to program.

      Being able to extend the syntax of the language just means your new constructs look like existing constructs instead of method calls.

    2. Re:Back to the future. by X · · Score: 1

      Being able to extend the syntax of the language just means your new constructs look like existing constructs instead of method calls.

      This would work great as long as the new contructs were exactly the same thing as the existing constructs, but of course the reason you are using them is that they are different. Suddenly things break and don't work together.

      For example, dealing with "identity" in a distributed computing environment is very different from "identity" in a normal environment. A lot of assumptions suddenly break down. Code stops working... joy.

      --
      sigs are a waste of space
  41. No one here wants to hear this... by EatenByAGrue · · Score: 3, Insightful

    but much of this 'vision' is implemented in Microsoft's .Net Framework and Visual Studio!

    1. Re:No one here wants to hear this... by Anonymous Coward · · Score: 1, Informative

      Uh... and emacs, that extensible editor/IDE thing written in a Lisp dialect...

  42. Hmm by AdrianFletcher666 · · Score: 5, Funny

    So basically, we get to combine the speed of Java/.NET with the user friendliness of XML and the security of COM? May god have mercy on our souls...

    --
    Adrian
  43. Er... Yes it does. by brunes69 · · Score: 1

    Basically, you're saying that next genration programming languages will all be Java with RMI and Jini.

    Decent remoting is already built into many development frameworks, including Java and .Net. This is nothing new, it's been around for years. I suggest you look into it ( especially if you're using *ugh* PHP for anything; been there done that too, trust me, ditch it while you still have time to go with another framework ).

  44. utilize the resources you have! eg:freecache by Anonymous Coward · · Score: 0

    As Slashdoters we should be the ones who know about and utilize the tools of the trade freecache being one of them,

    thanks to the good work by the Internet Archive there is no reason to link directly to a source (and thus bring it to its knees) ever again.

    come on guys get with the friggen program

  45. Repeat after me... by LWATCDR · · Score: 1

    XML is not the solution to everything. Next english is replaces with an XML based language.
    SeeSpotrun

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Repeat after me... by corngrower · · Score: 1

      What!
      <Statement> XML replace english. </Statement>
      <Exclamation> Never! </Exclamation>
      </Post>

    2. Re:Repeat after me... by maxwell+demon · · Score: 1
      No:
      <post>
      <sentence type="exclamation">
      <subject>What<subject>
      <predicate /> <!-- note that you don't wase time looking for the verb,
      the syntax tells you straight away it's not there -->
      </sentence>
      <!-- exclamation mark is implied by tag - you see, XML saves space! -->
      <sentence type="statement">
      <subject>XML</subject>
      <predicate>replace</predicate>
      <object>English<object>
      </sentence>
      <!-- again, note thae implicit full stop -->
      <sentence type="exclamation">
      <(uhm, is hewre a linguist telling me the right tag for this?>Never</(uhm)>
      </sentence>
      </post>
      --
      The Tao of math: The numbers you can count are not the real numbers.
  46. Or if you want it to work well today... by SuperKendall · · Score: 1

    Java supports all this in a very rich manner today, with a lot of security related things around this (so for instance you could have an SSL protected RMI connection, and authenticate as a different user on the remote end to run the calls as some other user).

    With .Net not all the same support is baked in - one interesting aspect is that if you want to do SSL at all, you have to have IIS installed on the computer running the .Net code.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Or if you want it to work well today... by lokedhs · · Score: 1
      .net follows the typical old Microsoft mantra: "Make the simple things very easy, ignore the complex things (because then you already locked in the user)".

      Java on the other hand takes a bit more effort to understand, but it's a lot more flexible than .net. You mentioned some good examples for this. It's very easy to just point and click your way to some remote calls, but when you want to make a real app, and start to think about stuff like security you have to jump through all sorts of hoops to just get it to work, and the solution is everything but elegant.

      Some other examples of their attitude are: VB, their "wizards", Windows configuration panels.

  47. Yeah... right... by Anonymous Coward · · Score: 1, Insightful
    I always get a giggle out of seeing the smalltalkers come out of the woodwork whenever a new programming paradigm is suggested, and claiming that either:
    • Smalltalk did it before
    • Smalltalk can do it easily
    • Smalltalk can theoretically do it faster (ignoring the fact that every smalltalk on earch has been slower than Java 1.0 on a bad day (slightly exaggerated, I know)
    Now, Java has proved that with some effort and lots of money, it's possible to make a VM thats as fast or faster than natively compiled code. Smalltalk only theorised about it.

    About the only language who can lay any claim whatsoever to the first two points, in pretty much any discussion, is Lisp. Smalltalk was an interesting experiment, but every single feature smalltalk touts as being great inventions has been around for ages in Lisp (with CLOS obviously).

    1. Re:Yeah... right... by Anonymous Coward · · Score: 0

      What did you say about smalltalk, fucknut? I'll tell you what you can do with your trolling: GO FUCK YOURSELF!!

    2. Re:Yeah... right... by Anonymous Coward · · Score: 0

      Now, Java has proved that with some effort and lots of money, it's possible to make a VM thats as fast or faster than natively compiled code...

      ...in a handful of benchmarks carefully selected to match what the JIT compiler is known to handle well. In the general case Java is still twice as slow as C.

      Let me emphasise that that's a very impressive result, considering that many interpreted languages are an order of magnitude slower. But while Java isn't as slow as the C zealots claim, it certainly isn't as fast as the Java zealots claim.

    3. Re:Yeah... right... by voodoo1man · · Score: 1
      Smalltalk was an interesting experiment, but every single feature smalltalk touts as being great inventions has been around for ages in Lisp (with CLOS obviously).
      Except that by the time the CLOS effort began, Smalltalk-80 was already over six years old. The first precursor to CLOS, Flavors, was explicitly influenced by Smalltalk and it's ideas of inheritance and message-passing (this is acknowledged by the system designers in published literature). What is significant about CLOS is the ways in which it advanced over Smalltalk. First, there was Flavors, with the concepts of multiple inheritance to enhance reuse and modularization, and method combination (which is now one of the central tools of Aspect-Oriented Programming). Then, Xerox's LOOPS introduced the idea of multimethods, which showed that not only was message-passing not needed for Kay's definition of OO, but there was a better way to use the type system for object behavior.
      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

  48. Darn, too bad we outsourced all our programmers by Anonymous Coward · · Score: 0

    That means we have no one on staff who has a chance to learn this new technology. So, I guess we're stuck outsourcing our technical needs forever...

  49. SOAP/ZOPE/CORBA/RMI by Derivin · · Score: 1

    Pick one. There is a PHP interface to SOAP.
    Personally I like ZOPE, but the python 'php' package is not even in alpha.

    here is the link for PHP SOAP:
    http://phpsoaptoolkit.sourceforge.net/phpso ap/

    1. Re:SOAP/ZOPE/CORBA/RMI by corngrower · · Score: 1
      There is a PHP interface to SOAP.

      There's also a PHB interface to SOAP, called a soap dispenser.

  50. Based on the comment so far... by Squidbait · · Score: 3, Insightful

    ...I'd say roughly 10% of you have actually read the article. He mentions specifically many of the criticisms you've mentioned. I don't think this is earth shattering, but some of the ideas are pretty good.

    I for one like the idea of source code stored as XML, but not displayed or edited as XML. Imagine, viewing source code in the format you specify (eg positioning of braces). And it would be really nice to be able to treat source code as data without breaking your back writing a parser. And for those of you worried about bloat - honestly, we're talking about text files here!

    1. Re:Based on the comment so far... by hoggoth · · Score: 2, Insightful

      Agreed.

      The original development of XML came from the desire to separate HTML content and formatting into two distinct parts. Soon you will use XHTML and CSS to have machine parsable, web-spiderable content and any formatting you like.

      The same goal of separating content and formatting applies to programs. Use XML internally. Your choice of editor can use braces, brackets, tab-indenting, BEGIN/END, or whatever you like best to format the code.

      The internal XML format will be easily manipulated by the program itself.

      And yes, all this has been possible with LISP for a very long time, before many of you were born. But hey, if the buzzword of the day let's us push this powerfull overdue idea into the mainstream, I'm all for it.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
  51. Sounds good in theory by rhysweatherley · · Score: 3, Insightful
    Being able to extend ones compiler with different plugins sounds good in theory. Until you need to send your code to someone in Florida who doesn't have exactly the same setup as you do.

    It's bad enough tracking down the umpteen libraries that an open source program depends upon now. Now we have to track "Bob's special compiler" as well?

    Besides, we already have compiler "plugins" for extending the syntax. They have names like bison and flex. Anyone can layer new functionality on a language through meta-translation, if there is a reason to do so. But you better have a reason!

  52. Lisp? by CatGrep · · Score: 1

    Programmers will be able to extend the syntax of programming languages

    Seems to me that Lisp has had this ability for 40, almost 50 years now.

    Everything old is new again

    1. Re:Lisp? by TheLink · · Score: 1

      LISP is like building stuff at a molecular level. You can build anything. Heck you can build stuff to build stuff. Many people even build stuff to build stuff to build stuff and so on till end of recursion.

      But since I'm a crappy programmer I use Perl + CPAN - which is like building stuff using prefab/off the shelf components. Sure the results aren't "perfect" down to a molecular level and the CS ppl will probably puke, but hey it works, and I'll cover reasons that'll relate to why LISP isn't so popular.

      From article: "Finally, consider your favorite debugger---or rather, compare it to your favorite editor. You can probably write macros for the latter; why can't you for the former? And why can't programmers include code in libraries to control how debuggers display the data structures those libraries create?"

      "programmers will be able to extend the syntax of programming languages"

      Maybe that's fine if there were only one programmer in the world.

      If you computer language can _easily_ call and talk to programs written in other languages, then in a way it is extensible to different compilers with different syntaxes etc.

      Sure it's not any arbitrary compiler or syntax BUT is that really a problem? If the compiler and syntax ALREADY exists, other people know what you are doing, and there's already lots of code you can reuse - you don't have to reinvent the wheel.

      There may be 1000 different _good_ reasons why the existing compiler and syntax is that particular way, and you in your limited experience don't know yet. Similarly there may be 1000 different good reasons why a prefab module is a particular way, so it's often better not to make your own (barring restrictions like copyright/patents etc).

      Most programmers don't really write anything really new that requires a totally unique syntax/compiler.

      So is it really better if it's easy for programmers to reinvent stuff? They'd most likely screw up.

      Sometimes to make things easier overall, it is best to make some things hard, so that things that shouldn't be done, rarely or never get done.

      In theory it would be nice to be able to specify the exact colour you want for the paint factory to make. But often it is quicker and better to just pick an already prepared paint in a tin. Plus you can always mix colours, so what if it still isn't 100% exactly the colour you want, it's close enough for most people.

      Just make it easier to mix colours.

      BTW: One man's impedance mismatch is another man's layer of abstraction/API.

      --
    2. Re:Lisp? by maxwell+demon · · Score: 1
      Well, it's actually quite easy:
      <perl>
      (your perl code here)
      </perl>
      The advantage is that the file content now explicitly tells you that it is perl code :-)
      --
      The Tao of math: The numbers you can count are not the real numbers.
  53. LISP, SCHEME, even OCAML by darthscsi · · Score: 1

    Any language with a top level loop (type, debug, execute code interactively) already has the integration thing down. Languages like LISP and scheme and ocaml already have macro systems.

    And by macro systems I don't mean the C like things, I mean the ability to treat code as data and process it like any other data. Wonderful, but rather an old idea.

  54. Oh boy, someone else wants to re-invent LISP by Anonymous Coward · · Score: 1, Interesting

    Gawd, here we go again. I think someone needs to make a new version of Greenspun's Tenth Rule of Programming (all complex system eventually approach an imperfect LISP runtime), something like "all programming languages and environments eventually look like sloppy LISP".

    combine compilers, linkers, debuggers

    Yup, LISP usually involves an integrated environment for editing, debugging, execution, compiling. But since it's all LISP, it can all be extended, swapped, or componentized at will.

    Programmers will be able to extend the syntax of programming languages

    Wow, what a *concept*. Not only is this easy in LISP, it's easy in a lot of dynamic languages. In Ruby for instance, you can use blocks to factor out common code sequences, example:

    Before:

    foo.lock
    begin
    foo.twiddle
    foo.wiggle
    ensure
    foo.unlock
    end

    After:

    foo.with_lock { |f|
    f.twiddle
    f.wiggle
    }

    You LISP hackers are laughing of course, this level of refactoring and more is common with macros. Those of you who don't practice "extreme refactoring" probably don't see the difference.

    programs will be stored as XML documents

    Uhm, if you treat XML tags as "named parentheses" you have S-expressions (LISP again). XML and S-expressions map onto each other completely. But S-expressions are a lot simpler to program with, so you might as well use them. Sure, they aren't as hip as XML or optimal for document storage, but they are better suited to programming.

    programmers can represent and process data and meta-data uniformly

    LISP treats everything as list, if you want.

    I'm no "smug lisp weenie". I have never used LISP for production code. I use usually use Ruby and Perl. But it's a trade-off, Ruby has better libraries and a single implementation. Lisp has more raw power but isn't as practical.

    The point I'm trying to make is that what the author describes ALREADY EXISTS. But I guess it's "cooler" to invent something new than to just perfect something that already exists.

    Could somebody please come up with a LISP that has modern stuff like threads, CGI, and process control and is optimized for Unix-like systems, and please get a uniform version pre-installed on Linux and Mac systems so all the LISP folks could finally get some cred?

    1. Re:Oh boy, someone else wants to re-invent LISP by Anonymous Coward · · Score: 0

      Could somebody please come up with a LISP that has modern stuff like threads, CGI, and process control and is optimized for Unix-like systems, and please get a uniform version pre-installed on Linux and Mac systems so all the LISP folks could finally get some cred?

      apt-get install sbcl cl-aserve

      Geez.

    2. Re:Oh boy, someone else wants to re-invent LISP by Anonymous Coward · · Score: 0

      You're missing the point, I might be using CLISP with some other web server component. Another guy might be using CMUCL and something else. And so on. They are *NOT* compatible when it comes to networking and threads and so forth, because it's not standardized.

      And don't forget Guile, Rep, and SCSH, which are all slow and sloppy implementations of Scheme.

      And none of them are pre-installed. The chances of finding a 3rd-party program written in standard LISP (not Emacs lisp) are pretty slim (compared to say, shell script or Perl). You won't install package XYZ and find a Lisp program used to build or install it, because the programmer wouldn't assume you have it already installed, or that you want to pull in the dependency.

      There needs to be a unified free LISP implementation for Unix which is *pre-installed* as part of the base system on Linux, FreeBSD, and Mac OS. And it needs to support threads, regular expressions, sockets, CGI programming, etc. And it needs to have performance on the same level as, e.g., Perl.

      This implementation needs to be agressively pushed as the "one true LISP", even if some feathers are ruffled. Maybe even rename it.

      Until the LISP folks figure this out, LISP will continue to be obscure.

    3. Re:Oh boy, someone else wants to re-invent LISP by Anonymous Coward · · Score: 0

      cmucl and sbcl will take Perl out back, beat it up, have lunch, and still have plenty of time to win in execution speed.

      No one can make people standardize. There are packages that work properly in both cmucl and sbcl. Who is going to arm-twist CLISP to conform? Who's going to go down and make Allegro CL conform? And what does Scheme have to do with anything, least of all its many incompatible and irrelevant implementations? Scheme is not Common Lisp. And who the fuck is going to make Apple package a common lisp with their machines?

      What you're asking for is stupid.

  55. Editor Macros? by Pan+T.+Hose · · Score: 1

    From the article:

    "Finally, consider your favorite debugger---or rather, compare it to your favorite editor. You can probably write macros for the latter;"

    Editor MACroS? My favorite editor is vi, you insensitive clod!

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:Editor Macros? by Lord+Bitman · · Score: 1

      why use vi when vim exists? just wondering.

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    2. Re:Editor Macros? by Anonymous Coward · · Score: 0

      why use vi when vim exists? just wondering.

      why use vim when emacs exists? just wondering.

      why use emacs when xemacs exists? just wondering.

      why use xemacs when msword exists? just wondering.

      hmmm..... just wondering...

      bloat maybe?

    3. Re:Editor Macros? by Lord+Bitman · · Score: 1

      I tend not to consider bloat as a factor when choosing something I want to work with. If MSWord was somehow suitable for editing the types of things VIM is suitable for, I'd use it. (visa-versa, too)

      not considering bloat a factor, I use vim (gvim, usually), as opposed to vi or emacs.
      considering the topic (editor macros) it might be worth pointing out that something is only "bloat" if you dont use it.

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
  56. changing syntax sounds like ... by corris · · Score: 1
  57. Yes I can. by Anonymous Coward · · Score: 0

    I know Bengali, French AND English!

  58. I think you mean shared virtual objects by xyote · · Score: 1

    as in shared virtual memory. Big problem is locking and the memory coherency that implies.

  59. look like the author has an AI programmer by oliverthered · · Score: 0, Offtopic

    It is usually to refer to a neuter member of the human race as masculine (man,he etc..) and a neuter object as feminine (her,she etc...)

    sine the author was intent in using the feminine for the programmer I would assume that the programmer was non-human, a machine.

    --
    thank God the internet isn't a human right.
  60. Finish what we started before starting again. by Futurepower(R) · · Score: 1


    This is the 3,967th language proposal I've seen recently. (Okay, almost that.)

    I suggest that C++ and Java be finished before working on any more languages. All my life I have been working with unfinished programming tools.

    1. Re:Finish what we started before starting again. by corngrower · · Score: 1

      Wait till C++ and Jave are finished? They aren't finished with FORTRAN yet.

  61. extending language syntax is bad by Eric+Smith · · Score: 1
    Ad-hoc extension of programming language syntax is a bad thing. Just ask anyone that's had to debug or maintain someone else's hardcore FORTH programs that use BUILD/DOES to do just that.

    Having a well-defined syntax is a good thing. Plus, if the syntax is extensible, you can't write a general parser for the language, which makes it harder to write compilers and other sorts of source-processing tools.

  62. Wow! by Anonymous Coward · · Score: 1, Funny
  63. Good point... by Anonymous Coward · · Score: 0

    Hmmm... Parent has a point...

  64. Not that great an article by owlstead · · Score: 1, Interesting

    In my opinion the author tries to do too much. By doing so it is almost difficult to form an opinion on or start a discussion about the article.

    As for using XML as source code, I hope the author is kidding. If you use PHP or JSP code in (x)html, you should always keep most functionality outside the page (in separate objects) unless it is directly related to the representation of the page. Otherwise the source will become unreadable very quickly.

    Obviously XML can be used to transport the parse tree from one tool to the other. Various proposals have been made to do this already. Using a well defined, easy to handle (and verify) data tranport can really help here. This is really usefull, but has little to do with the representation of a language itself.

    I think the a big change will be the use of source code alltogether. A parse tree is actually all that is really needed. This will be edited with a (graphical) editor and accompanying GUI tools (eg Agile code development and GUI design tools). This parse tree will be coded to intermediate language and then translated - at some point - to machine language. These last two steps are already happening obviously.

    Now for the graphical representation; leave out those silly restrictions of where to put braces, line delimiters etc. The program shall be shown according to the defaults of the company (overruled by the defaults of the department and then the developer). There is nothing against using graphical editors for literals (a 2x2 table that can be edited as a table e.g.) or comments etc. Evenly spaced ascii has had its 50 years of glory, and I whish it goodbye.

    To have all these features the language should be easy to parse however. Putting in macro definitions is stupid, as is putting in operator overloading. They make the language complex to use for both humans and parsers. Templates as used in Eclipse are much more well behaved. Code asists can take case for a lot as well. Emacs etc. have features for those as well, but they have no knowledge about what the code means, making it way more difficult to do things right.

    I have the feeling I am still missing some important points, but this terminal like screen is running out of whitespace. I would strongly suggest for everybody to look at Eclipse.org to see what modularization/plugins can do to an IDE. It's free, very easy to install (unix & windows) and will give you an insight in what tomorrow (today) will hold. Even if you don't use Java.

  65. Diagrams in Source Code by Marxist+Hacker+42 · · Score: 0, Flamebait

    One of the footnotes had the best idea I've seen yet- diagrams in source code. Perhaps this could be accomplished by allowing HTML hot links in comments? Or better yet, IMG tags?

    Still, the body of the article, the idea of creating new syntax on the fly, is very powerfull. I'm used to it in Scheme, to have it in VB or other .NET languages would be HUGE.

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    1. Re:Diagrams in Source Code by Marxist+Hacker+42 · · Score: 1

      So why, pray tell, was this moderated flamebait? Was it the mention of VB? Diagrams in source code? HTML links in comments? Some unreasonable hatred of Data Flow Diagrams or Flow Charts? What?

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    2. Re:Diagrams in Source Code by angel'o'sphere · · Score: 1

      Well, either you got modded down because you have an .us domain (just kidding) or ... more likely ... its a user error.

      The user did mod you up and used the scroll wheel to scroll the page. But as the drop down box stayed "activated" the drop down box scrolled first down to the last entry in the list of items. After that the window started scrolling ... so the modder likely did not realize it :D

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  66. Now I understand.... by EmbeddedJanitor · · Score: 4, Insightful

    why simple application software needs 2G of RAM and multi-GHz CPUs to get the responsiveness I got on a 100MHz 486 with Win3.11.

    --
    Engineering is the art of compromise.
  67. Interesting operators by jfdawes · · Score: 2, Informative

    What maybe a few people have missed is that there will be some incredibly interesting "hardware" out there in the future.

    Some people have already demonstrated things like using DNA computers to solve travelling salesman problems, Quantum Computing and Grid Computers.

    Perhaps what this article is suggesting is one way for developers of entirely new "hardware" to easily supply operators and types (syntax) to any programming language.

    It would be interesting to be able to write program a that talked directly to the nervous system using fairly standard <your language of choice> syntax, that when compiled produced a real piece of nano "machinery".

  68. zombie UNIX haters back from the dead by hak1du · · Score: 4, Insightful

    We have had these kinds of integrated, extensible systems: Smalltalk-80, Lisp, and others. And we have had the same tired, old arguments against UNIX since its original design (you can read up on them in the UNIX Hater's Handbook). Smalltalk-80 and Lisp didn't fail because there was some grand conspiracy against them, they failed because people voted with their feet.

    Most real-world programmers apparently just want to put up a bunch of dialog boxes and windows, interact with the user a little, and interact with a database. They don't want to extend the programming tools or language or modify the optimizer, they want it to just do what they need it to do. And if it doesn't do what they need it to do, they just pick a different language and environment and don't go on a crusade to develop zillions of plug-ins and modifications. Programmers stick with text files not because they believe that they are the best representation, but because they actually work pretty much everywhere.

    Some of the changes Wilson advocates are happening. That's not surprising, given that the features he advocates have been around for decades and many people are familiar with them. But they are happening in an incremental way and people pick and choose carefully which aspects of Lisp and Smalltalk-80 they like and which ones they don't. For example, you can get versions of GNU C that output interface definitions in XML format. IBM VisualAge maintains Java sources inside databases (not text files) and permits incremental recompilation. Many Java development environments have plug-in architectures. Many editors now permit structure-based editing operations ("refactoring") and display "styled" source code, using the raw ASCII text just as a formal (non-XML) representation of the program structure. Aspect-oriented programming adds a great deal of extensibility to languages like C++ and Java. On the other hand, general-purpose macros are out--language designers made deliberate decisions not to include them in Java, C#, and similar languages.

    Altogether, it looks to me like Wilson is merely restating what is already happening and combining that with a good dose of UNIX hatred. If he would like the industry to move in a different direction, there is a simple way of doing that: he should implement what he thinks needs to be done. I think an XML-based programming language (and several have been proposed) has about as much chance at flying as a lead balloon, but, hey, surprise us.

    1. Re:zombie UNIX haters back from the dead by voodoo1man · · Score: 1
      Smalltalk-80 and Lisp didn't fail because there was some grand conspiracy against them, they failed because people voted with their feet... general-purpose macros are out--language designers made deliberate decisions not to include them in Java, C#, and similar languages.
      This is why I still regularly hear people complain about the lack of even a simple, C-like preprocessor in Java.
      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

    2. Re:zombie UNIX haters back from the dead by hak1du · · Score: 1

      This is why I still regularly hear people complain about the lack of even a simple, C-like preprocessor in Java.

      People complain about a lot of things, in particular things that are different from what they are used to. But the fact is: they are using Java. And the lack of macros makes a lot of developers on large projects really happy (you rarely hear from the happy people).

      Besides, C macros can hardly be called "macros" at all, let alone general purpose macros.

    3. Re:zombie UNIX haters back from the dead by ebyrob · · Score: 1

      In my opinion, there's really only one macro missing in Java. Something to do away with the performance difference between:

      dbg.out("x=" + x);

      -- and --

      if( dbg.on() )
      dbg.out("x=" + x);

    4. Re:zombie UNIX haters back from the dead by angel'o'sphere · · Score: 1

      lol ...

      use the Java logging api or log4j from the apache project.

      the standard way in java is:
      logger.debug("message");
      logger.error("message");

      And either a VM flag or a system property controlls wetehr logging is switched on and to what level during runtime.

      For more elaborated "if (debug)" you should make yourself familiar with the assert keyword of Java.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  69. And no trolls want to hear this... by Anonymous Coward · · Score: 0

    but much of this 'vision' is also implemented elsewhere, and was implemented elsewhere long before there -was- a Microsoft .Net Framework, and Visual Studio!

    Nice try, though.

  70. You mean like Obj-C? by Anonymous Coward · · Score: 0

    It's kind of like that.

  71. Language Families by memmel2 · · Score: 1
    Intresting I'm working on a similar project called lingual in addition to what the paper mentions I've added the concept of language families that have share a portion of there data and call model allowing the languages to interoperate at a high level without requiring complex runtimes like java or C#. My first language JaC bridges C and java and is basically a simple version of ObjectiveC with java syntax. I plan to ad HLA (high level assembler ).

    I also want to do the XML data bases / meta data storage for the source.

    Cool this really validates a lot of my views.

  72. Reading the article? by Pan+T.+Hose · · Score: 1

    [...] Now, I will read the entire article, but somehow, I am not holding my breath...

    Wouldn't it make more sense to comment the article *after* reading it?

    You must be new here...

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  73. XML is WAAAAAAY over-hyped! by mfearby · · Score: 1

    XML may very well be a nice way to lay out data so that it can easily be gobbled up by other systems, if there is such a need, but as for using it as the holy grail of file formats for every thing? I don't think so!

    Microsoft's plans for XAML really make me feel sick! As if .NET wasn't bad and bloated enough, now they're forcing this XAML crap down everyone's throats? At best, I see XML as a decent replacement for .ini or .csv files - zip! That's it!

    Let's not create a mountain out of a mole hill by turning everything into XML!

    Ever tried storing an ampersand in an XML file???? Do you want to have to type escape sequences as part of your everyday life from now on? I know I DON'T!!!!

    1. Re:XML is WAAAAAAY over-hyped! by Anonymous Coward · · Score: 0

      "Ever tried storing an ampersand in an XML file???? Do you want to have to type escape sequences as part of your everyday life from now on? I know I DON'T!!!!"

      yes. and it is easy.

      How about all the areas where you do have to convert ampersands, check for quotes or any numourous other qwerks?

      That sort of thing is everywhere in programming.

      "At best, I see XML as a decent replacement for .ini or .csv files - zip! That's it!"

      Yeah ok. That would be true if xml:schema didnt exist.
      Everyone seems to be seeing blah and forgetting entirely about the overall picture. Which includes xml:shcmea.

    2. Re:XML is WAAAAAAY over-hyped! by mfearby · · Score: 1

      There are dozens of XML:whatevers or XML-thingymajigs. I'm sick to death of hearing about today's latest incarnation of some shitty XML add-on or incarnation!

    3. Re:XML is WAAAAAAY over-hyped! by Anonymous Coward · · Score: 0

      Isnt what your saying the exact same thing that has been said about every single new thingymajig ever.

    4. Re:XML is WAAAAAAY over-hyped! by MattRog · · Score: 1

      Yet if you were to use a SQL DBMS you wouldn't have to do any sort of mucking around with parsing, validating, etc. -- the DBMS does it for you.

      And oh, it has schemas, too, along with a much better query language and constraints (business rules). SQL DBMS products, although not perfect, are far better suited for data storage than XML will ever be (due to the underlying hierarchic data model, no logical/physical independence, and lack of fundamental knowledge by 'standards' folks like the W3C), no matter how many XML:whatsits are developed for it.

      --

      Thanks,
      --
      Matt
    5. Re:XML is WAAAAAAY over-hyped! by Anonymous Coward · · Score: 0

      "And oh, it has schemas, too, along with a much better query language and constraints (business rules)."

      give an example of the much better query language and constraints that xml cant do.

      have a look at xml:db, xupdate, xml:schema etc etc.

  74. Extensible Schmextensible by blair1q · · Score: 4, Funny

    How about developing Maintainable programming?

    1. Re:Extensible Schmextensible by Aceticon · · Score: 1

      My serious take on the parent post ...

      So some collegue of yours has implemented a (sub)system using the extensible language du jour....
      And now you you are tasked with maintaining and improving said (sub)system.

      Naturally said person has used the extendability features all over the code, not only downloading "plugins" but also creating he's own extensions. Also that person has left the company alreay. As for documentation, well, there is never enough time for documentation.

      So how exactly will a language in which any arbitrary feature can be an extension (which at first sight looks just like a standard feature) help the "next guy in line" to change the code???

      PS: Wouldn't function (methods / procedures / whatever) be a form of "language extension"? At least those are clearly visible.

    2. Re:Extensible Schmextensible by blair1q · · Score: 1

      Functions aren't a problem. They have a strict syntax. MACROS are the fucking problem.

      Macros that evaluate to include directives that include executable code are the particular problem I'm dealing with right now. No debugger I've tried can browse into that code until I cut and paste it over the offending macro. Which kind of defeats the purpose, dunnit?

      The things some people (myself at one time) consider "clever" are how other people get hurt.

      And remember how the PowerPC used to be the champion of RISC? Eh, not so much no more. 150 defined mnemonics for conditional branch instructions. The Eskimos don't have that many words for "snow".

      We need a way to lay down a trail of popcorn when these weasels are dragging us down these ratholes.

  75. dealing with XML by Yobgod+Ababua · · Score: 4, Informative

    That's exactly one of the author's points! You shouldn't (and in his vision won't) have to deal with the XML directly, -unless- you are one of the people actually writing new plugins rather than just using them.

    His suggestion is primarily that we start using editors that transparently present the 'code file' in our choice of format rather than forcing us to edit it byte-by-byte. It's like the syntax-highlighting you probably use now, only effecting more than just colors.

    Using XML for the underlying syntax is mostly irrelevant to his proposal, but he suggests it merely because it is currently popular, well suppoerted, and well suited to it's primary job of presenting data in an easily MACHINE READABLE format.

    His proposal is, in fact, exactly the opposite of requiring coders to pop open a hex editor, and he likens our current ASCII-only coding methods to doing exactly that at one point.

    1. Re:dealing with XML by Anonymous Coward · · Score: 0

      XML is not particularly well-suited for "MACHINES" to read -- the whole point of XML is that it is HUMAN readable.

    2. Re:dealing with XML by Anonymous Coward · · Score: 0

      His suggestion is primarily that we start using editors that transparently present the 'code file' in our choice of format rather than forcing us to edit it byte-by-byte. It's like the syntax-highlighting you probably use now, only effecting more than just colors.

      Don't get too excited. That would simply mean that while one coder could write

      foo = new Bar();

      and another could write

      assign new default-allocated object of type Bar to foo

      and yet another could possibly use a GUI to do the same thing, it doesn't change the fact that the programmer must understand the semantics behind the statement. The programmer still needs to understand the underlying language, no matter what interface he/she is given to modify the program. In fact, it seems to me that this "alternate editing interface" could use an existing programming language as the underlying implementation without ever turning to XML.

  76. XML is heavily misused by apankrat · · Score: 2, Insightful


    The funny part is that eventhough in 99% of the cases XML is indeed transparent to the user it is still selected over binary formats (DER, TLV, whatever) because it's ASCII !

    Having talked to religious XML zealots in a past, I gathered that they either were simply not aware of the alternatives or were 'afraid' of the binary formats due to the nature of their programming environments (VB & co). Duh.

    --
    3.243F6A8885A308D313
    1. Re:XML is heavily misused by maxwell+demon · · Score: 1

      The even more funny thing is, if you object about the size of the files, you usually get told to just use gzip. Funny, because gzip format (and compressed files in general) is about the worst binary format you can think of. You can't really look at it, all you can do is give it to gunzip. And if only one byte has changed by error, you basically lost everything after that byte.

      --
      The Tao of math: The numbers you can count are not the real numbers.
  77. Overlooking the obvious by BigLinuxGuy · · Score: 2, Insightful

    Sheesh! I can't believe nobody else saw the point of the gentleman's article. After all, it's not about improving efficiency of the programmer or the system. It's all about empowering authors to write more books about new programming languages that rely on Moore's Law to make them semi-viable (oh, and to draw in more royalties from the panoply of books about the new programming languages). It's sort of like the fad of patterns, eXtreme Programming, etc. Few places really use the principles promulgated in the all-too-many books on the subject and those that do eventually (d)evolve back into more conventional practices. Who benefits most? The authors do (not that I'm against authors making a buck).

  78. That changes nothing by mldqj · · Score: 2, Insightful

    You will still be using the same set of programming skills, no matter how the programs are represented and stored.

  79. Bad? by Yobgod+Ababua · · Score: 4, Insightful

    That's not how I read the article's proposal at all!

    The code you've been asked to maintain is stored in some standard machine readable format. When you come in you then use the code-editor program to view it using -your- extensions, and the underlying primatives of the code objects are presented in the manner you're used to.

    Whatever extensions and transformations the original author used to create the code would be relatively meaningless, which (for many of the reasons you descibe) is a good thing.

    1. Re:Bad? by ebyrob · · Score: 1

      Of course... If you work with the original coder and talk to them or share documentation with them, you're going to have a tower of babel problem sharing your code snippets with each other.

  80. Python does much of this by imnoteddy · · Score: 1
    From the article:
    Programmers cannot invoke parsers, analyzers, or code generators selectively, or insert custom modules to change how programs are processed

    He should try looking at Python. From the Python docs:

    • imp -- Access the import internals
      This module provides an interface to the mechanisms used to implement the import statement.
    • codeop -- Compile Python code
    As for extensibility, if a Python class T has the internal function for add defined then you can take two objects t1 and t2 of class T and write t1 + t2 and the compiler will generate the code for it.
    --
    No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
  81. Well... by Pan+T.+Hose · · Score: 1

    Programmers will be able to extend he syntax of programming languages,

    Again, nothing new.

    And also here.

    Well... You are technically correct. I am only wondering whether talking about "syntax" in the context of Lisp isn't a little exaggeration. The true power of Lisp seems to be the apparent lack of syntax as we usually understand it and writing parsed trees by hand, to make writing bad code impossible.

    and programs will be stored as XML documents so that programmers can represent and process data and meta-data uniformly.

    There is no way in hell that would ever happen. Ever.

    I agree. What people forget is that you can not win against entropy. By redefining problem in a different way you are not necessarily solving it.

    Very true. Let us not forget the Conservation of Cruft Principle.

    Does anyone even remember now KISS principal?

    I don't think we've met.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  82. Oh no! by Yobgod+Ababua · · Score: 1

    Does that mean we'll all be using Perl6?
    [It does appear to be one of the few languages being developed with a strong DWIM focus...]

  83. I doubt it. by srussell · · Score: 3, Interesting
    That would be a departure from what I see happening in softare development today. There seem to be three dominant camps:
    • Low level developers. People programming in C; the ones writing Linux and KDE.
    • Quasi-low level developers. People programming in Java; the one writing much of the business software right now.
    • High level developers. People programming in scripting languages, like Ruby, Python, PHP, JSP, Javascript.
    The second group is the most visible, because business loves them. The first group is the second most visible, because -- while it isn't as "hot" a technology in Monster -- most of the software we use is written at this level. I suspect that the third group is the one that will goose the business community in the future, and will probably eclipse the second group. I'd guess that this is a submarine technology; you don't see many job postings for Ruby programmers, but a heck of a lot of software is being written in it. Even more is being written in PHP, JSP, and Python.

    I imagine something like Python or Ruby, or some other high-level language that's easy to write software with, coupled with a decent compiler will be the real winner in the near future. Get some type inferrence for one of these languages, and the ability to compile it (as with Parrot), and group two will mostly go away. Java claims to be a more productive language than C because of higher level features; modern scripting languages are even better at increasing productivity, and their only real limitation is their speed, or lack of it. Just as Java eventually overcame the speed issue, so, too, do I expect some future version of a scripting language.

    But, maybe Java will hang in there. If you look at Java 1.5, you see a lot of increased syntactic sugar that has usually been only available in languages like Ruby -- I've heard that this was motivated by similar constructions in C#. Perhaps Java or C# will evolve enough syntactic sugar that hacking out code will be as easy as doing so in Ruby. IMO, it'll take a more radical language change than that provided by 1.5; my biggest complaint about Java these days is that it gets in your way; a large chunk of the code you write for any application is infrastructure, and you write it over, and over, and over (anybody else sick of ActionListeners yet?). I'd like to see the typing system changed to type inferrence... but it is possible.

    I doubt, however, that software development is going to evolve into choosing black boxes from a set of tools and plugging them into each other, mostly because to do cover all possible jobs, the framework would have to have access to a huge amount of fine-grained tools, and by that point, you might as well just write the code yourself. Look at the size of the Java APIs. How many packages are there? How many classes? How many methods? This is making our lives, as programmers, easier... how?

    1. Re:I doubt it. by petterbergman · · Score: 1

      Get some type inferrence for one of these languages, and the ability to compile it (as with Parrot), and group two will mostly go away.

      Sounds a lot like OCAML to me...

    2. Re:I doubt it. by Glock27 · · Score: 1
      Good comments, for the most part. You might be interested to look at the Scala language, it seems to have some nice higher-level (and functional) features. At least it shows that very interesting things can be built on top of the Java foundation.

      My main problem with Java is verbosity, which is simply a function of the veryExplicitVariableNamesAreGood meme. Foolish consistency, perhaps?

      For me, personally, I think programming languages should evolve more in the direction of mathematical notation, and extensibility is important. Mathematics is the tool (evolved over centuries) we've created to deal with the most complex concepts ever invented. Two observations about math notation - first it is minimalist, so complex concepts may be grasped with a minimum amount of notation. Second, it is extensible, so that new concepts may be expressed concisely. Interesting how this contrasts with modern programming language design... My feeling is that more power is better, damn the torpedoes...and all that power should ultimately translate to very tight, efficient, realtime-capable code. Interestingly, my current language for most development is Java...sigh.

      To address one of your points:

      Look at the size of the Java APIs. How many packages are there? How many classes? How many methods? This is making our lives, as programmers, easier... how?

      By allowing us to not have to implement the underlying code ourselves, of course. :-)

      That said, some of the library (*cough* Java I/O system) is pretty brain-dead. In that sense, though, Java is extensible enough to fix things.

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    3. Re:I doubt it. by Anonymous Coward · · Score: 0

      Interesting observations.

      But Java wins not because its easy to write software with it, but that its easy to 'DISTRIBUTE' software written in it. Not talking web apps here, but clients. The Java Vm includes both language and gui. So its a simple, single download.

      Ruby is very easy to write apps in, but hard to distribute. Theres just the rudimentary install, then you got to get the GUI package too! Python has a better installer, but its the same issue. A better, smarter method to make sure the end users have the GUI kit they need (on the platform they are using) is what the higher lever scripting group needs.

      RE: your blackbox programming concept, it HAS been done, just ask a old timer Java coder if he/she has JavaStudio. It was pretty easy blackbox wiring, but as you say it really needed more 'boxes'. LabView works like this too, and anyone whos worked that will tell you they'd rather have a real language.

      JoeR

    4. Re:I doubt it. by asherh · · Score: 1
      For me, personally, I think programming languages should evolve more in the direction of mathematical notation

      Like APL? This language, created at IBM in the 1960s, uses a mathematical notation and is very concise. APL programs therefore have a great tendency to be short but unreadable.

    5. Re:I doubt it. by Anonymous Coward · · Score: 0

      That has about as much in common with mathematical notation as C does.

  84. revolutionary or late? by jdkane · · Score: 2, Interesting
    I think Microsoft is already addressing the professor's points in the .NET platform ... or at least starting to head in that general direction already:

    * compilers, linkers, debuggers, and other tools will be plugin frameworks, rather than monolithic applications;

    For example, see the .Net Microsoft.CSharp Namespace, the System.Codedom namespace to represent code as objects, etc. in the framework class library.

    * programmers will be able to extend the syntax of programming languages; and

    don't know about extension of languages yet, but the next one is interesting ....

    * programs will be stored as XML documents, so that programmers can represent and process data and meta-data uniformly.

    take a look at Microsoft's XAML technology -- describing code by using XML. That's the general direction.

    I'm sure other technology frameworks have similar things, but I'm not as familiar with those technologies.

  85. Lisp? by Pan+T.+Hose · · Score: 1

    There is no way in hell that would ever happen. Ever.

    But it already exists. Lisp programs are stored as sexpr's, which are just a less-verbose way to do the same thing XML does. And Lisp programs can treat Lisp programs as data, just like XSLT programs, except in a natural and easy-to-program way!

    S-expression is a natural way to represent programs in languages like Lisp and Scheme due to the very nature of their syntaxen or the lack thereof. Writing Lisp code is basically writing S-expressions in the first place. XML is a bastardized S-expression with some additional redundancy, so unsurprisingly enough Lisp programs could be stored as XML without any problems, even with also without any reason. Good luck storing a Perl 6 program as XML, though, in any useful way. Keep in mind that for it to be useful it would have to expose the original source code every time I want to edit it or otherwise it is completely useless, and now it has to have some additional advantages over simply storing the source code in a text file.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  86. God by oldCoder · · Score: 1

    Yes, there is a God.

    --

    I18N == Intergalacticization
  87. Metrowerks Codewarrior by MaineCoon · · Score: 2, Interesting

    Metrowerks Codewarrior is an IDE (and I believe has a commandline tool for processing the project file ala Make) that uses plugin based preprocessors, compilers, prelinkers, linkers, postlinkers, and other tools, which the master project controls execution of (and through a nice GUI, allows easy association of file extensions with their tools and build information). It's been doing this since at least '97.

    --
    Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
  88. We have that already by jarober61 · · Score: 1

    Smalltalk is already everything this guy thinks needs to be invented. It's extensible, flexible - and at least in VisualWorks, the sources are, in fact, stored in XML.

    --
    Talk Small and Carry a Big Class Library
  89. Inventing Lisp again by richieb · · Score: 2, Informative
    Paul Graham said that all languages hope to become Lisp. This sounds like just another attempt.

    Why not just use Lisp?

    --
    ...richie - It is a good day to code.
    1. Re:Inventing Lisp again by Dun+Malg · · Score: 1
      Paul Graham said that all languages hope to become Lisp. This sounds like just another attempt.

      Why not just use Lisp?

      I've always thought that quote could be more accurately rephrased "All non-Lisp languages are non-Lisp because most people don't NEED Lisp; the few advocating moving them towards Lisp need to just go discover Lisp"

      --
      If a job's not worth doing, it's not worth doing right.
  90. This is far from a new idea. by voodoo1man · · Score: 3, Interesting
    Terry Winograd wrote a paper, called Breaking the complexity barrier (again), in 1973 (it is reprinted as the first paper in Barstow, Shrobe, and Sandewall's excellent compilation, Interactive Programming Environments, 1984). In it he described the integrated programming environment of the future, speculated on the role AI would play in it, described the importance of extendable syntax and the need for data-code representation, and noted that all this would need to be deeply and intimately interconnected, all the while taking a technology agnostic view.

    Where Wilson goes wrong is in assuming that this kind of environment will be built based on plug-ins. The interrelationships needed between the components to get the required level of functionality are too great. What many people have already noted is that the current Unix environment is in fact based on plug-in development. Editors, debuggers and compilers are modularized as programs, with clean lines of communication between them in the forms of files and streams (which Unix again abstracts to one concept). The limitation of this system lies in the fact that the modules all use their own separate address spaces, and hence each one has to have a private representation of the program. This can't be mitigated by having the separate tools communicate to a central database (this is the most that Wilson's proposal of using XML as the underlying format can accomplish), because then the method of communication would be the limiting factor. Of course, you can use the neutral code-data representation to make the communications between the modules and the database be in terms of sending closures (from reading the paper, I don't think Wilson even considers this), but then you've just designed a single distributed address space, and in the process removed all the encapsulation and modularity advantages of the communication links (not to mention introducing a whole slew of concurrency issues)!

    One such integrated system has been built in the past, called Interlisp. Barstow, Shrobe, and Sandewall's book (mentioned above) has a few papers that describe the system, but briefly a few lessons can be distilled from it. First of all, the system itself was an integrated development environment for a dialect of Lisp, where everything was done in one in-core address space: source code (including comments) was represented by data structures in memory, upon which the structure editor (residing in the same address space) operated directly. Code could either be interpreted from the data structure or compiled by the (yes, in-core) compiler. There were several extended packages (besides a Lisp macro-like facility), notably the structure editor and "Conversational LISP," a pseudo-natural language command-prompt parsing system. Although source code (and data) could be serialized to files (there was a sophisticated change-tracking facility that took care of this), the usual way of working was by saving the core image to disk and loading it next session, so the whole environment was persistent. There were hooks for everything from the parser to the compiler to error handling down to the most basic frame-handling code of the stack-based VM, and in order to implement the facilities mentioned above (and some other ones I left out, like the ever-present DWIM automatic error-correction facility) the code took full advantage of them. This caused some trouble when it came to portability of the components and the Interlisp itself (the heavy interdependence caused many problems in bootstrapping the system). Some of these incidents are documented in Barstow et al.'s book, but the Interlisp bootstrapping difficulty has been mentioned in all of the Interlisp porting papers I've read. Unfortunately, I don't think a system with those capabilities can be built with the rescrictions of modularization, since all of the things it did are applicable to programming in any language, and to do them required precisely the

    --

    In the great CONS chain of life, you can either be the CAR or be in the CDR.

  91. (see lisp) by Anonymous Coward · · Score: 0

    (see lisp)

  92. Syntax vs. Semantics by stevedekorte · · Score: 1

    Putting a language in XML only saves you from (maybe) writing a lexer or maybe a parser. After that there is so much variation in semantics between languages (and valid operations on the code) that the supposed "uniformity" disappears. Also, there are an huge number of ways to represent any given language's parse tree in XML. Do you even represent the parse tree or do you do it at a token level? Are numbers and strings their own element types? In other words, simply using XML doesn't buy you much in terms of uniformity.

  93. Lisp? by beforewisdom · · Score: 1

    Isn't lisp an a self extensible language?

    Considering it has been around the 50's this idea is not new if I remember correctly.

    Steve

  94. The horror... the horror... by Trejkaz · · Score: 2, Insightful

    Even without bugs in the implementation, the XML format won't work to a general enough degree. Let's see... we already have a format which many programming languages translate to, and which can be translated back to a limited degree, and that's object code. Translating object code back to a programming language may work, sure, but it doesn't generate the same level of semantics which were there in the original.

    Now translate the object code to XML. Is it any better? Probably not. It's now readable, but so is machine code, if you have the right program. And this guy is proposing to use a program which renders the XML in a familiar format anyway, which is really only one jump from using a program which renders the machine code in a familiar format.

    Allowing multiple languages in the whole thing seems to naively ignore the fact that different languages have different features. What does the guy with his editor configured for Java, see when viewing a file that some C++ developer put operator overloading into?

    The whole thing smacks of "if it starts with X, it must be good."

    I say fuck it in the eye. We don't need source code which translates to other source code, we need source code which compiles to a module which can reliably use, and be reliably used by, modules written in any other language, and we need all these modules to be crashproof and crackproof when they run. They should save the research for the things which matter, and stop misusing XML. :-/

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
    1. Re:The horror... the horror... by hyc · · Score: 1
      They should save the research for the things which matter, and stop misusing XML. :-/
      Oh, is there actually something XML should be used for? News to me...
      --
      -- *My* journal is more interesting than *yours*...
    2. Re:The horror... the horror... by Tarantolato · · Score: 1

      Oh, is there actually something XML should be used for? News to me...

      Absolutely. For defining complex documents, as opposed to proprietary or roll-your-own data formats. XML is half human-readable: it is plain text, but it has so much noise that it's a pain to read. This makes it IMHO a bad choice for stuff like config files or most data-serialization tasks. In those cases it's good to be able to do quick-and-dirty editing with a text editor if you need to - and you probably will need to.

      But for stuff like Word Processor files where most of the editing is done with a front-end anyways, the format doesn't really need to be easily human-readable. In that case the main benefit of human-readability is in ease of writing a parser. And XML is pretty easy to parse.

    3. Re:The horror... the horror... by hyc · · Score: 2, Informative

      "half human-readable" is just a bit too wishy-washy for me. HTML is human readable, and it does its job pretty well (aside from true horizontal positioning control, instead of faking it with Lists and Tables) but that's because the 'T' stands for TEXT and it's intended primarily for human readable text.

      For anything that is meant to be machine-processed, like a low level data format, human-readability is a non-issue. For anything that is meant as general purpose, large capacity data storage, human-readability is a liability because the volume of metadata eclipses the volume of data.

      As a slightly better example, ASN.1 is sometimes tedious and even overly verbose, but it is far more compact than XML, is at least as expressive, and is trivial to parse with a simple state machine.

      What annoys me about "XML" is that a "Markup Language" is supposed to describe data *for presentation*, that's what Markup is all about. Using it as a general purpose database format is truly a misuse of the SGML technology.

      --
      -- *My* journal is more interesting than *yours*...
    4. Re:The horror... the horror... by Tarantolato · · Score: 1

      What annoys me about "XML" is that a "Markup Language" is supposed to describe data *for presentation*, that's what Markup is all about. Using it as a general purpose database format is truly a misuse of the SGML technology.

      Absolutely agree.

    5. Re:The horror... the horror... by Anonymous Coward · · Score: 0

      What annoys me about "XML" is that a "Markup Language" is supposed to describe data *for presentation*, that's what Markup is all about. Using it as a general purpose database format is truly a misuse of the SGML technology.

      There is nothing about markup that makes it only useful for presentation. Who would dare say that embedding tags in text is OK if it describes the presentation characteristics, but not any other characteristics? In short, WTF?

  95. This is so Interlisp by Animats · · Score: 4, Insightful
    Most of what he's talking about was in Interlisp, the first Really Big Integrated Programming Environment. Integrated debugging. EMACS. Program storage as "workspaces". Extensibility. Intelligent assistants ("DWIM", or "Do What I Mean", a set of heuristics for correcting Warren Titelbaum's most common typing errors.)

    The ultimate expression of this was realized with the Symbolics LISP machine. Everything was in LISP. Everything was hackable. The MIT Space Cadet keyboard, with six shift keys (Shift, Ctrl, Meta, Super, Hyper, and Top). All 2^16 keycodes could be bound to any EMACS function.

    I've used both. They sucked. Partly because they didn't work very well, but mostly because all that flexibilty and programmability had negative value. Language and UI design are hard. Evading the problem by making everything changeable does not fix the problem.

    His point about XML being another way to put LISP S-expressions into textual form is well taken, though. They're both trees. The problem with LISP is that while the data structures are valuable, the programming notation really is a pain.

    LISP works well as a web development environment. Viamall, which later became Yahoo Store, was written in LISP. That was one of the first web applications that really did something elaborate on the server. You could create web pages on the server from a web browser. And the overhead was lower than with XML, where you're forever re-parsing text strings into trees.

    1. Re:This is so Interlisp by cubic6 · · Score: 1
      Language and UI design are hard. Evading the problem by making everything changeable does not fix the problem.
      This may be the most insightful thing I've ever read on Slashdot. Software designers take note of this, and moderators, mod parent up like it deserves.
      --
      Karma: Contrapositive
    2. Re:This is so Interlisp by Anonymous Coward · · Score: 0
      His point about XML being another way to put LISP S-expressions into textual form is well taken, though. They're both trees. The problem with LISP is that while the data structures are valuable, the programming notation really is a pain.

      Um, you're comparing Lisp's notation to XML's and concluding that Lisp has problems?!

      I'll take
      (+ 1 (* 3 2))
      over
      <add>
      <int>1</int>
      <mul>
      <int>3</int>
      <int>2</int>
      </mul>
      </add>
      any day. And that's with the most concise XML notation I could think of - you don't want to know what my first attempt looked like, let's just say it made the Iliad look like a haiku.
    3. Re:This is so Interlisp by Anonymous Coward · · Score: 0

      Take a look at MathML sometime.

  96. Not so uncommon by mark99 · · Score: 1

    This was actually done a lot, as most academics thought that the ALGOL syntax was clearly superior to the C syntax.

    For example Steve Bourne wrote the Bourne shell (from which BASH ultimately derives) in such a C macro dialect, and it remained in common use for decades afterward. Seems silly today.

    This is related in Peter Van der Linden's Expert C Programming, Deep C Secrets along with lots of other cool programming legends. So if the above fact is false, blame him not me :)

  97. This is just like STOS and AMOS. by Anonymous Coward · · Score: 0

    STOS was a BASIC programming language for the Atari ST, where you could add extension to the language or program your own in assembly language. AMOS was the same thing, but for the Amiga.

    STOS and AMOS were interpreted programming languages, but they could be compiled into normal executables.

    Even I had this idea a long time ago, where organizations would make their own library of code for their own systems.

    STOS and AMOS do not work with syntax, only commands.

  98. Compiler extension (was:Can't wait) by real+gumby · · Score: 4, Informative
    It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.

    Well of course that's what templates are. Yes, their syntax is horrendous but that's what comes of trying to wedge the concept into the existing crannies of C syntax (or when, as Stroustrup remarked to me once, "the ecological niche was already polluted").

    If you hanker for a language in which metasyntactic extension is natural, you need Lisp macros (or here and here for a more complex example), Scheme "hygenic" macros or the CLOS MOP.

    But if you really want to consider "hooking into the compiler" as you say then you should look at the reflective programming work, the ground work for which was laid down almost 25 years ago by Brian Cantwell Smith and was even implemented, by me and others, back then. Although a lot of work continued in this area that vein pretty much got mined: unless you can think up a completely new control structure there's not a huge amount more you can do with such a system than you could with a normal metasyntactic extension mechanism.

    HTH
    -d

    1. Re:Compiler extension (was:Can't wait) by Q+Who · · Score: 1

      Well of course that's what templates are. Yes, their syntax is horrendous but that's what comes of trying to wedge the concept into the existing crannies of C syntax (or when, as Stroustrup remarked to me once, "the ecological niche was already polluted").

      No, that's what comes of implementing the concept in a system with static type safety.

    2. Re:Compiler extension (was:Can't wait) by real+gumby · · Score: 1
      No, that's what comes of implementing the concept in a system with static type safety.
      Icky as I find static typing, I still have a hard time blaming it for the template syntax.

      Teenage acne and world hunger, perhaps, but not C++ template syntax.

    3. Re:Compiler extension (was:Can't wait) by exp(pi*sqrt(163)) · · Score: 1
      I will take a look at that stuff. But there is an important reason why people choose to use C++ rather than languages like Lisp. We need the performance. The interesting thing about C++ is that it has a degree of abstraction and yet at the same time is 'close to the metal'. Performance is the reason I pointed out my vector example in the first place. So doing something Lispy probably vitiates any advantage I could gain through reflection in Lisp. This doesn't apply to everyone - I work in an area where performance of numerical algorithms can be fairly important.

      their syntax is horrendous but that's what comes of trying to wedge the concept into the existing crannies of C syntax
      Nice description! The bizarre thing is that the crannies would be much bigger if Stroustrup et al. didn't force themselves to live by such strict rules (eg. refusing to introduce new keywords if they could (cryptically) reuse an old one). I still can't get over the choice of '' for enclosing template arguments. Did they never expect anyone ever to nest templates resulting in '>>' which is tokenised as somethign else entirely?
      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    4. Re:Compiler extension (was:Can't wait) by Q+Who · · Score: 1

      I don't know... Doesn't the horrible syntax follow from its declarative nature, which is in turn a result of having to obey by rules of static typing, such as what can be passed as argument, function overloading, etc.?

      For example, look at lisp-like macros. Defmacro is as simple as it gets (not too familiar with it though); hygienic macros are terribly hard to define (that is, the macro system itself), and are less powerful, which is due to different type of safety.

      You can say that hygienic macro syntax is still nice, but it's not nice in a sense that you sometimes have to write a lot of code for something which could be much easily expressed with less safe macro system.

      I see clear tradeoffs here...

    5. Re:Compiler extension (was:Can't wait) by Anonymous Coward · · Score: 0

      Lisp is about as fast as C++ if you use a decent Lisp compiler, although it tends to use more memory. I do wonder how many people who claim to "need" the performance of C++ have done any benchmarks representetive of the kinds of algorithms they will be using to see if this is actually the case. Picking C++ is usually an example of premature optimisation (after all, you can always hook some C++ code into your Lisp code if you really need an extra 50% speed in a few places).

  99. XML metadata. by Edward+Kmett · · Score: 2, Interesting

    I've been working on a pet project very similar to this for a couple of years now off and on.

    Currently, I'm constructing the editor as a javascript/xul/xbl based application under mozilla (not yet publicly released) and tossing the documents over jabber to a code repository which connects as another client. Other pieces in the suite, such as the compiler, talk over jabber to the repository, helping to ensure modularity.

    Why mozilla? It gives me a cross platform editing environment and I can take advantage of the built in xhtml/mathml rendering. (Although, I admit I'm largely hamstrung by the faulty mathml rendering on Mac OS X at the moment)

    Why jabber? It serves as a glorified RPC mechanism for exchanging XML document fragments for me. Its primary advantage compared to SOAP, XML RPC, etc, is that I can allow the repository or execution environment to send out updates to the clients, rather than rely on client based polling. After all, in this day and age of everything lying being NAT, you usually can't open sockets to clients directly. It also has the advantage that it makes evolving the platform into a collaboration environment a simple logical progression, rather than something grafted on as an afterthought.

    My main interest is in what advantages you derive from allowing a rich text markup language and extensible grammar, and the ability to tag information and retain markup across versions.

    A smarter editor allows you to move towards allowing dynamically defined operators, which can have their precedence defined in terms of a partial ordering with respect to one or more existing operator, that way you can red flag during the editing process when something is ambiguous. Superscripts, subscripts, radicals, Riemann sums are allowed by defining small extensions to the grammar in the language and loading them into the editor.

    The potential for language tagging comments or method labels for internationalization is nifty, but more than a bit of a Pandora's box.

    An XML namespace for version control means the repository can store one document much like a cvs system. By having the editor submit a series of change requests to the repository rather than edit the document directly, integrity is ensured.

    Since you have a fairly stable set of tags you can now embed more information for statistical collection, loop counting from debugging compiles. Links to hand- or auto-generated proofs of algorithmic correctness, big-O information, etc.

    So, yes, there is a value to storing the data in XML and making the editor smarter.

    However, one primary is that any such project has a rather high bar to clear to become even marginally useful.

    There are also a number of interesting problems regarding how to handle certain types of code refactoring and traditional text editing operations in this sort of environment.

    --
    Sanity is a sandbox. I prefer the swings.
  100. Great something slower than java by pauldy · · Score: 1

    With the new xmlrpcjit you can compile your xml apps in a distributed fashion so it is almost as fast as running vb apps. I can't wait.

  101. XML for Code Generation by aojay · · Score: 0

    I agree -- XML is one of the most hyped buzzwords of the 21st century. When used for storing larger amounts of type complex data, the structure of an XML container often grows to enormous amounts. And with Microsoft proclaiming XAML and every single byte of source code embedded in XML documents, we can only imagine (and fear!) the sizes of the CVS development repositories of the future.

    I work as a developer on a combined Java/C# code generator application for exchanging data between several data models, XML formats, databases etc. The application primarily uses a GUI for defining the data mappings, which triggers the need for a generic XML container for storing the code. When the mapping is defined, you press the -button - and the application generates the code in the language of choice. This really shows the strength of the XML world, also in the vast territories of application development - generic data are translated into the development environment and platform of your choice.
    In this way, XML is a nice choice. But don't hype it too much.

  102. Wait till programmers grow up by Anonymous Coward · · Score: 0

    Most of the problems with windows is from 16 year old programmers who never think what their code will do in the real world.
    So don't throw this at little kiddies who can't even program the way we do now, wait till they grow up and learn how to *really* program.
    Don't drink and drive (but teenagers do it anyway)
    Don't program anything important till you're at least 21

  103. Re:How humans can tell what will be... by Anonymous Coward · · Score: 0

    Science Fiction isn't really about the future. it's about the time it comes out of and what is on people's minds. there used to be lots of science fiction about radiation and hypnosis turning people into superhumans. now we have xml, which is really a lot more interesting.

  104. Not again by fishbot · · Score: 1

    There's always someone trying to push one of these. Right:

    XML - It's markup. That's it. STOP IT WITH THE ROUND PEGS AND SQUARE HOLES!

    'Unix command line' -> 'Windows COM' - Yeah, I can see how people are abandoning:

    while read name; do convert ${name} -resize 100x100 ${name}_thumb; done

    into COM because COM it so much EASIER and so POWERFUL. Please. No.

    One more then, macros to convert one to another. New idea this. Not at all like:

    #define loop(i,m) for (i = 0; i m; i++)

    then?

    There's nothing new or revolutionary here. Nor is there much coherence or common sense in the first part. Languages will evolve the same way they always have, and no amount of shouting 'but.. but.. XML! and.. and.. MODULAR' is going to change it.

    End of rant. Flame retardent underpants on (you never know around here...)

  105. Re:been done, README in StumpWM by kampi · · Score: 2, Funny
    Funny thing that I read a very similar story last year: it was the README of the window manager stumpwm, which was written in Common Lisp.

    Cite:
    The current trends shown by Big Software is to use XML for all data formats. It won't be long before we have XML interpreters, XML data being interpreted as functions:

    <math>
    <operator>plus</operator>
    < operand>4</operand>
    <operand>5</operand>
    </math>

    I predict within 2 years Big Software will announce the Next Big
    Thing: XML++. An Object Oriented language with all the advantages of
    the superior XML data format coupled with modern advancements in
    Server side Web based technologies. XML Code and XML Data will be
    almost interchangeable, except for some tweaky markup which will be
    justified by the need for more aggressive innovative content creation
    services.

    But why wait? We have it all already.
    Want to see for yourself?
    http://www.nongnu.org/stumpwm
    --
    -- a blessed +42 regexp of confusion (weapon in hand) You hit. The format string crumbles and turns to dust
  106. Source code in database by harmonica · · Score: 1

    Sounds like "source code in database" a.k.a. SCID. I have a feeling smart IDEs like Eclipse are doing part of that already.

  107. Is the problem in the tools or ourselves? by trenobus · · Score: 2, Interesting

    If the goal is to express programs more briefly, presumably at a "higher level", then I don't believe an extensible language alone can solve the problem. After all, we already have languages which are extensible to varying degrees. In my experience, code that maximizes the use of language extensibility tends to be the most cryptic to read, at least until you thoroughly understand all the extensions used. Witness C++ code that makes heavy use of overloading and templates.

    A large part of the problem (IMHO) is the slowness of developers in standardizing common data types and programming idioms. I'm not a linguist, but there must be some interesting parallels here with the development of human language. However, there is one important difference: programmers are usually more concerned about getting a computer to understand their programs than getting other programmers to understand them. Thus, there isn't the same motivation that Tak and Nog would have had to agree on the linguistic expressions and social conventions that would allow them to hunt the woolly mammoth and divide up the women.

    In fact, experienced programmers do tend to standardize their own use of language extensions, libraries, and program development tools, as this does enable them to program more efficiently. Many software companies do the same, which is probably how they manage to accomplish anything at all. But most software companies place very little priority on creating industry standards (unless, of course, they think they can own them).

  108. Related Discussion... by Meijer · · Score: 2, Informative
  109. This guy has nothing to say by Anonymous Coward · · Score: 0

    I am fairly dissappointed after reading the article, there is nothing new that wasn't said before. He is fairly niave about the subjects he discusses. Shame really.

  110. XML vs CLI by 12357bd · · Score: 1

    I don't buy the idea. CLI and strings of chars are useful because are simple. XML IS NOT simple. Look at how many programs in our compuyters process text data, pretending to have a similar amount of programs for alternate XML processing is just a vaste of time.

    KISS

    What's in a sig?

    --
    What's in a sig?
  111. Programming for the 21st Century? by Anonymous Coward · · Score: 0

    Fortran as usual! (why not?)

  112. Thank You by oldCoder · · Score: 1

    Thank You for the best belly laugh I've had all week.

    --

    I18N == Intergalacticization
  113. Representation is the easy part by ltratt · · Score: 1

    I would say that at the very highest level (specifically the first paragraph or so), this article has got the right idea. Then it takes a bad idea and runs around like a headless chicken with it.

    They talk about the fact that computer programs are represented by 'collections of arbitrary ASCII tokens' as if it is impossible to discern the meaning of the program. Er, that's what parsers are for. They parse 'collections of arbitrary ASCII tokens' into data structures. Incredibly, those data structures look a lot like their XML structure. Except, if one wishes and is clever, you can do fun things with those arbitrary data structures that are hard to do in XML (e.g. turn them into graphs vs. XML's trees). You manipulate the data structure, serialize it into text and save it. And you're done. Simple. Their problem is a non-problem.

    There is also a serious lack of understanding of the term 'semantics' in this document. They are *not* representing the programs semantics in XML, they are merely storing its abstract syntax as opposed to its concrete syntax. Giving things a bunch of XML tags does not infer semantics - those semantics are defined and implemented elsewhere.

    In my opinion, there are several factors that have held back so-called 'extensible programming'. Here's a couple that spring to mind. Firstly is the sheer awfulness of most parser generators. They're fiddly to use, and accept laughably limited forms of grammars. This dates back to when parsing was a very processor intensive job - these days, however, Earley parses and the like can cope with any grammar you chuck at them in comparable time to e.g. yacc. Secondly, most languages don't have macro languages, and those that do (like C) tend to do it at the token level, which lacks power and is prone to disaster unless the programmer is incredibly careful. Those that operate at the syntax level (basically LISP) work with languages whose syntax is so restricted that it's difficult to generalize to modern languages. However, I feel that Template Haskell provides a solid indication as to how modern languages can incorporate macro powerful and practical systems. And, before anyone dismisses this reccomendation, I'm *not* a functional programming fan - I just think that TH approaches the problem in a way that can be applied to other languages.

  114. Amd what about source version systems? by Anonymous Coward · · Score: 0

    How will they handle this mess?

    How could we integrate/view/merge the differences between versions and allow concurrent versionning?

  115. Plugins for the debugger by Anonymous Coward · · Score: 0

    I'd definitly like that one. Imagine for example programming 3D Stuff and you had a plugin which allows you to display vectors and polygons in 3D. Currently i often paint 'em on paper while debugging.

    And i could imagine some more plugins would be useful for me, for example pushing the variables i'm currently watching to a log file.

  116. Tcl could be extended. This is nothing new. by Viol8 · · Score: 1

    I remember adding modules onto the Tcl interpreter back in 1994. This is hardly cutting edge stuff. Ok , it didn't change the actual syntax of the language , it just added new commands but its the same sort of thing in terms of functionality since you could have those new commands do anything you wanted. I do wish people would stop pretending to be futuroloists when they're apparently not even aware of the recent past.

  117. I cannot tell you how badly this sucks. by Anonymous Coward · · Score: 0

    Oh, yeah? They found it would be useful to be able to extend the syntax of a programming language, by representing it in some structured tree form, like XML? How truly innovative. Reminds me as if I had seen this done right some, er, more than fourty years ago. And I suppose it's called "LISP" and "Macros".

    Boy, I wonder wehen they will come around to inventing such ingenious new and ultra-flexible systems that not only allow you to design your own syntax, but also influence control flow in most abstract and flexible ways.

    Morons... throughout the world.

  118. Yet more political correctness by Viol8 · · Score: 1, Insightful

    From the article: "hat the programmer wants, she must"

    "She" wants? Oh god gimme a break. Why can't these PC 60s hippies just get it into their head that most programmers are male and this spurious use of the female personal pronoun (in the hope of what, securing some sort of equal rights in IT?) is really bloody annoying. If someone was writing about midwives or nurses would they use "he" all the time? No. Such Mr Bearby Right-on Relic, how about you drop the politicall correct rhetoric and just concentrate on your work??

    Yeah i'll get modded as a troll , whatever.

  119. LOL by Anonymous Coward · · Score: 0

    Someone should break it to the guy that modern programming systems already consist of compilers, linkers and debuggers, and that modern apps are already more like plugin frameworks than monolithic programs.

    I mean, Jeez, was this article written in 1980? :-) Microsoft have been doing this stuff for almost a decade now, and every other major app from Photoshop to Maya to CuBase is just a plugin architecture.

    He predicted COM and Visual Studio! Go University of Toronto!

  120. Named argument visualization and freer syntax by bootedcat · · Score: 1

    Read: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8 &threadm=7a8ba0c2.0404260409.390fd7eb%40posting.go ogle.com&rnum=1&prev=/groups%3Fsourceid%3Dmozclien t%26ie%3Dutf-8%26oe%3Dutf-8%26q%3Dnamed%2Bargument %2Bfreer%2Bsyntax

  121. Two Ideas by bootedcat · · Score: 1

    Someone's two ideas on "IDE-Based Named Argument Viewing/Editing and Freer Syntax for International Users":

    http://babelcode.crazylife.org/?skip=11

  122. LISP machine, anyone? by RAMMS+EIN · · Score: 2, Insightful

    This so much reminds me of the LISP machine. How many times are they going to reinvent it?

    It's such a pity that the code for the LISP machine is guarded by intellectual property protections that even the copyright holder doesn't know its way about.

    --
    Please correct me if I got my facts wrong.
  123. extend the syntax?? by bryane · · Score: 1
    Programmers will be able to extend the syntax of programming languages

    Um. the preprocessor has allowed that for years...

    #define BEGIN {

    #define END }

    Thought this was a very bad thing because it made a program unmaintainable....

  124. This will be in Longhorn by objwiz · · Score: 2, Informative

    IMO, this is nothing new. Microsoft's Longhorn presentation, at the PDC in LA last fall, made it pretty clear that Longhorn will be shipped with the compiler and an extensive class framework "installed".

    C# is part of the operating system and the file system. The operating system will generate "partial classes" for new file "types" and other functionality on demand.

    Since the compiler will be part of the OS, I could write an application that could generate code and run it, leveraging existing classes already on the system.

  125. Rebuttal by Oestergaard · · Score: 4, Insightful

    compilers, linkers, debuggers, and other tools will be plugin frameworks, rather than monolithic applications

    Uh? My compiler acts as a "plugin" via. make, which is called from emacs. If I want another compiler, I tell make, and voila' it's "plugged in". Welcome to the world of 'NIX Mr. Wilson.

    What is worse, every tool's command-line mini-language is different from every other's

    But this is their strength! Different tools solve different problems - and they use different languages to describe what they do, because they are *fundamentally* different (awk is not sed is not grep is not ls). How would you possibly write up a single language to describe what both sed and awk does, without poorly re-creating perl?

    Attempts to stick to simple on-or-off options lead to monsters like gcc, which now has so many flags that programmers are using genetic algorithms to explore them

    Most CS majors will know that modern CPU architectures are complex beasts, and that it is pretty hard to come up with which combination of optimization methods will yield the best performance on some particular revision of some particular CPU on some particular hardware configuration. Nothing mysterious about that. I completely fail to see what that has to do with command line options.

    And instead of squeezing their intentions through the narrow filter of command-line mini-languages, programmers can specify their desires using loops, conditionals, method calls, and all the other features of familiar languages

    Instead of squeezing my intentions thru the narrow filter of command-line mini-languages, I can specify my desires using what a standard shell (like bash) has to offer. Ladies and gentlemen of the jury, this is not making sense!

    The result is that today's Windows developers can write programs in Visual Basic, C++, or Python that use Visual Studio to compile and run a program, Excel to analyze its performance, and Word to check the spelling of the final report.

    Oh come on, please... So if I develop on windows, I can use VB, C++ and Python. How is this relevant? There are more useful languages available on the dreaded "command line systems" ('NIX), but let's just agree that there are plenty of languages available on most OS'es out there - regardless of the windowiness or commandlineness of the system.

    Using VS to compile and run the application? Well, if your command line absolutely sucks, they I can imagine why you would want to launch your app from your editor - a matter of taste too maybe. But relevant? How?

    Somehow I need COM in order to put numbers into Excel? Ever heard of CSV? You know, new-line terminated lines of T-E-X-T which can be processed by these little all-different tools, like, for example, Excel.

    The part about Word and spell-checking of a final report... What? What's your point? If I use COM for developing software, I can spell-check in Word? If I use a command line, I cannot spell check a report that I write about it in Word?

    A similar API allows the popular memory-checking tool Purify to be used in place of Visual Studio's own debugger, and so on.

    Absolutely! Plusings make perfect sense certain places. Dude - GUD is written in Emacs LISP, it's a plugin for GDB. You could write an elisp file for Purify as well - in fact, Intel actually ships an elisp file for their debugger, even on Windows... Plugins make sense some places, other places they don't. Which, lo and behold, is why they are used certain places and not others.

    One of the great ironies of the early 21st Century is that the programmers who build component systems for others are strangely reluctant to componentize their own tools. Compilers and linkers are still monolithic command-line applications: files go in, files come out

    Why does he not see what he's writing?!? A compiler reads a number of input files and generate an output file - this is a perfect match for a command-line too

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

      compilers, linkers, debuggers, and other tools will be plugin frameworks, rather than monolithic applications

      Uh? My compiler acts as a "plugin" via. make, which is called from emacs. [...]

      Your compiler is not only supposed to be a plugin, it is supposed to be the framework for other plugins, like lexers, parsers, code generators and optimizers.

      [...] How would you possibly write up a single language to describe what both sed and awk does, without poorly re-creating perl?

      There is supposed to be a single language to use sed and awk, not to replace them.

      [...] Instead of squeezing my intentions thru the narrow filter of command-line mini-languages, I can specify my desires using what a standard shell (like bash) has to offer. Ladies and gentlemen of the jury, this is not making sense!

      The result is that today's Windows developers can write programs in Visual Basic, C++, or Python that use Visual Studio to compile and run a program, Excel to analyze its performance, and Word to check the spelling of the final report.

      Oh come on, please... So if I develop on windows, I can use VB, C++ and Python. How is this relevant? There are more useful languages available on the dreaded "command line systems" ('NIX) [...]

      Well, just above you mentioned shell scripts. But that's it. You can't start aspell from C with a single line of code, unless you first write a function that serializes your data, pipes it to a process that it creates, and deserializes the output. And such functions need to be written for every program you want to use. Compare this to automatically generating headers from a COM type library by your IDE, and the IDL compiler taking care of serialization.

      Using VS to compile and run the application? Well, if your command line absolutely sucks, they I can imagine why you would want to launch your app from your editor - a matter of taste too maybe. But relevant? How?

      Again, look at the UNIX equivalent you mentioned earlier: shell scripting languages. Unless you write all the loops and branches in one line at the prompt, you too would probably like to launch a script from your editor. And guess what, Emacs can do that, and Emacs is considered an IDE by the author.

      [...] Programmers cannot invoke parsers, analyzers, or code generators selectively

      I can pre- and post-process the file going to and from GCC to my hearts desire. [...]

      But for preprocessing, you actually have to write a compiler: it has not only to parse the input in the modified language, but also to generate output in the language that GCC expects. Just adding some rules to the parser, or operating directly on the syntax tree could be much easier.

      With postprocessing it's even worse: you have to recognize patterns in machine code or assembly language of the target machine, which breaks portability.

      Funny to discover now, that what I did two years ago was impossible.

      Nobody claims that it's impossible. Just that it could be easier. I know that GCC, like most compilers, achieves portability by separating parsing from code generation, but I think it can't be extended without recompiling. You can use another linker or another assembler, but the author also wants to extend the parser without rewriting the parser and the lexer.

      ...or insert custom modules to change how programs are processed

      Is the author under the illusion that I can change how the Source-Safe plugin in Visual-Studio handles its internal business?

      No, the author is under the illusion that the Source Safe plugin can change how Visual Studio handles source files.

      Again, it's the same error as in the first quote: GCC is not like the Source Safe plugin, it's like Visual Studio minus the editor and the debugger. Visual Studio is somewhat modular, but currently, neither Visual Studio nor GCC are modular

    2. Re:Rebuttal by angel'o'sphere · · Score: 1

      oops! are we a bit in bashing moode today?


      Most CS majors will know that modern CPU architectures are complex beasts, and that it is pretty hard to come up with which combination of optimization methods will yield the best performance on some particular revision of some particular CPU on some particular hardware configuration. Nothing mysterious about that. I completely fail to see what that has to do with command line options.


      Very simple. gcc has a commind line option -O etc. What das that mean? The command line parser finds the -O and sets a boolean variable to true indicating that the gode generator should optimze.

      In an extensible language ... or with active libraries (google for it if you like) ... the command line option could look like this: gcc -O de.oomentor.arm3.optimzier{someoptions-to-the-opti mizer} instead.

      Wow ... now you do not have to pick a set of flags the gcc builder has build into gcc, but you instruct gcc to load a optimzer module ... just like an applet is loaded together with a web page.

      The future of programming is indeed similar to what teh author of the article writes. But in detail it will be different. E.G: I would prefer to have the language stored in a MOF repository and not in XML/XMI.

      Storing of 'algorithms' is not 'that' interesting ... structures like, data + model + metamodel stored in an extendable meta metamodel, thats what *I* want.

      So call me old fashioned. But what if one made up a good library which was easy to use - then, there would be no need for a code generator, because the library calls would be simple enough to stand on their own. Then, I would not need to control how the compiler translated my code.

      Well, well, library calls are so .... procedural ....

      regards,
      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  126. Meta programming by janwedekind · · Score: 1
    For sure Greg Wilson's article contains interesting ideas. But instead of trying a "Big Bang" he should compare his ideas to existing solutions.

    I think what we're really looking for is simple meta programming (introspection and transparency). F.e. have a look at the Java-project Compost, which is supported by Prof. Goos (famous compiler engineer).

    I don't know, wether C# has introspection (I think so). Unfortunately there is no easy way to introduce metaprogramming to C++ with its preprocessor and the hardcoded virtual method tables.

    1. Re:Meta programming by angel'o'sphere · · Score: 1

      Meta programming with C++ is done with openC++ see: http://www.csg.is.titech.ac.jp/~chiba/openc++.html

      Regards,
      angel'o'sphere

      P.S. parts of Compost are meanwhile hosted on sourceforge under the name: recoder.sourceforge.net

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  127. Just say... by yason · · Score: 1

    LISP.

    Reading the fscking article now; oh, he did say that already.

    Good stuff.

  128. The wrong model at the wrong level of abstraction? by MachineElf · · Score: 1

    Having access to the parse tree is only valuable to a point, and in Lisp you have to use MOP to do more. Most of the limits in software complexity and maintainablity are in the relationship that span the branches of the tree, and are not made explicit in in tree itself. You don't want to do code generation such 'this interface has a "visit" method for each leaf subclass of class in this package' using XSLT or any other tree based model; either you have a relational model, or you have to write masses of tree navigation code. In terms of parsing and storage, if the common syntactic model was expressed as ASN.1, then both the Java syntax and the XML syntax could be encodings of the same abstract model, and you could use whatever tool you liked, and store the code in whatever form you like.

  129. misfocused but not unpleasant reading by 10am-bedtime · · Score: 1

    author tries to slam both vi and emacs at the same time. +1 gutsy. however, to do so he resorts to placing words in the mouth of grizzled vi and emacs users. -1 unnecessary. so overall, it's a wash wrt grizzled programmers.

    thus, the question from this critical reader is: what is left? unfortunately, the bulk of the paper gushes on about the easiest workaround in computer science -- syntactic indirection -- and neglects to delve into the more interesting "plugin" idea (which incidentally, emacs has covered since the beginning and newer versions of vi are starting to grok as well).

    so, "obfuscation is understanding" is the message? i don't think so. i think the message is that trailing-edge programmers should taste the power they envision leading-edge programmers have, by buying into the siren songs of middle of the pack programmers (who happen to play "vendor" and other intermediary roles) and their mediocre mish mash of soothing "technologies". frankly, that reeks.

    it reeks mostly because he says "what deserves to succeed shouldn't". this is essentially a conflicted statement, probably a defenseive measure the author uses to befuddle himself enough to spew on so, w/o internal damage. that alone is not a problem, but the dude is a doctor and poor slobs like me expect doctors to use more sophisticated self-deceit.

    but any deceit is akin to syntactic indirection, and thus like the waves tossing about the surface of the ocean. the orcas and monster octopi deep below, slinging parentheses w/ aplomb, don't mind the frivolity so maybe i won't, either.

  130. not likely by pappin · · Score: 1

    It's a common thing to hear, but I don't see it as a reality. I notice most of use are focused on the "xml" -- I say now, end ever after, you will never get me writing a program in XML.

  131. Overloading and templates by Oestergaard · · Score: 1
    In C++ you do not have a complex numbers in the language - but they are available in a library. Thus, you can write
    std::complex<double> a, b, c;
    ...
    a = b + 2 * c;
    You can write your own 'std::complex' alike templates for matrix arithmetic or whatever - or use some of the template libraries already available to do this. What you are asking for, is simply already available, and has been so for quite some time.

    I wrote a fuzzy-logic boolean type once, where I could write
    fuzzbool a, b, c;
    ...
    if (a && b || c) ...;
    the statement would be 'true' even if a was 'not completely true' and c was 'definitely false', if only b was 'very true'. Fuzzy logic with familiar syntax. All transformed into efficient simple machine code by the wonders of the compiler internals.

    Yet, even something as simple as this is not well understood by most programmers out there. I sincerely doubt that more of this transformation madness is going to solve any significant problems - what we should be worrying about, is to educate people to begin using what is already available.

    Then, in a few decades when we have experience with the technologies from the last decade, let's talk about extending on that or re-doing things.
  132. Glaring error at beginning of article by ynohoo · · Score: 1

    From the article:
    If success is measured by longevity, the Unix command line is the most successful programming system in history.

    You can tell the author has spent his entire adult life in academia. If sucess is measured by longevity, COBOL & Fortran are the most sucessful programming systems in history.

    1. Re:Glaring error at beginning of article by voodoo1man · · Score: 3, Informative
      If sucess is measured by longevity, COBOL & Fortran are the most sucessful programming systems in history.
      The problem here is in the definition of system. FORTRAN and COBOL are programming languages - the systems for programming in them have changed drastically over the years, from punched cards to teletypes to full-screen glass teletypes. The Unix command line, on the other hand, has pretty much stayed the same since it was introduced. You can only type in the current prompt, editing the prompt is awkward, and previous input and output scrolls up off the screen. The three biggest changes have been job control (so you can edit your command line with vi), pipes, and editing-friendly shells (tcsh has nice key-bindings borrowed from Emacs for moving point, deleting, etc.). I think they were introduced in that chronological order, although I could be mistaken.
      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

    2. Re:Glaring error at beginning of article by ynohoo · · Score: 1

      Teletypes & and punch cards are input media, not programming "systems". All operating systems, since the advent of terminals, have permitted a CLI - long before Unix came along. Perhaps he meant scripting language. I suspect IBM's JCL has been around longer than Unix. You also sound like you haven't spent much time in non-Unix environments.

  133. Try ecode... by Anonymous Coward · · Score: 0
    # Server
    # Look, pretty whitespace without bogus underlines!
    # Isn't the <ecode> tag wonderful? I suggest you try using it in future.
    class Calculator
    def add(a, b)
    return a + b
    end
    end
    DRb.start_service('druby://server:9000', Calculator.new)
    1. Re:Try ecode... by Anonymous Coward · · Score: 0

      Tried to use it with <ECODE>, maybe that was my error.

  134. Not the golden solution... by fikx · · Score: 4, Insightful

    This is not the golden, unifying solution or anything, but there's some ideas in there that could be useful.
    I saw his thougts in the first section of the paper and took the rest as some quick examples on how it might look.
    I can think of plenty of directions this could go. The first thing I got out of it is applying the same level of abstraction we try to implement in programs to the act of programming itself. This is happening in all kinds of areas of computers anyway (like abstracting file systems, GUI's, etc.) why not put programming into the mix?
    It's not about using scripting instead of programming languages, it sounded more like building the same features into our programming tools as we build into the apps we write with 'em.

    why all the negative reactions? If its about loosing your editor to write code, you didn't read the article. If it's about too much abtraction to program, then it seems kinda hypocritical considering all the frameworks we use for other people's tools. Or is it just irritation about having to relearn a bit and keep on coding as before? The complaints about XML are odd too. He choose a machine-parseable, human-readable widely used format as a possible way to store programs at a low level.

    --
    AB HOC POSSUM VIDERE DOMUM TUUM
  135. Time to publish...anything by Anonymous Coward · · Score: 0

    What a terrible paper. This is garbage written by someone that feels a need to publish something to get another year of research funding. The paper is poorly organized, unsupported, and fails to draw any definite conclusions. Code is basically irrelevant. I spend 70-80 percent of my time in A&D. That's where I create the program structure and the flow of functionality. Object lifetime, error handling, mesaging, persistance. All of these are designed into the system. The code is just a means putting it on 'paper' and requires little more that a common language to do it in. A proper design can be coded in any decent OO language and come out just fine. The developers of the future will be designers. Any monkey can code a loop. A real developer can tell you if it's the right way to do what you need.

    1. Re:Time to publish...anything by BigLinuxGuy · · Score: 1

      A proper design can be coded in any decent OO language and come out just fine.

      I agree with your sentiment, although I'd go so far as to say that a proper design can be coded in any language, not just an OO one.

  136. Prog Languages will become like human languages by smishra · · Score: 2, Interesting
    I think the natural progression of programming languages is to become more like human languages. We are a long way from it but coming closer everyday.

    What most people don't realize is that most of the developments in programming languages knowingly or unknowingly follow this trend. For example, object oriented programming (a la C++, Java etc etc) is closely related to how our brain sees the world as a hierarchy of objects. Type inference (as in ML) is closely related to how our brain derives useful information from incomplete data.

    Computer languages are moving away from small languages to bigger more expressive languages. The evolution of Perl I think reflects this trend. XML etc are just syntactic sugar. They don't reflect any fundamental steps. The difficult parts have yet to be done.

    In many ways we are at the beginning of the evolution of computer languages. I think the next 10-20 years are going to be very exciting.

    While agreeing with Paul Graham that programming languages represent notation, I don't quite agree that they must evolve as slowly as changes in notation. I think there is a real difference between how notation is used to represent meaning in programming languages and how they are used in human languages. Different domains demand different notations of differing precision

    In conclusion, computer or programming languages will evolve to be closer to human languages. There will be specializations of the language for different domains. This is akin to using mathematical notation to describe mathematics rather than write each rlationship out in wordy English (or other language).

  137. guess what by Anonymous Coward · · Score: 0

    dane smells

    1. Re:guess what by Anonymous Coward · · Score: 0

      he sure does

  138. We've had that already by Anonymous Coward · · Score: 0

    maybe 1000 times before. Those "integrated programming environments". UCSD/Pascal, Oberon, some LISP-stuff/machines, smalltalk (iirc) was also more an environment for "doing stuff".
    Pascal eventually revolved around the P-Code, a VM much like the JVM is now.
    What is so revolutionary? The word "XML"?

  139. 21st century is already here. by medvezhatnik · · Score: 1

    he can shove XML up his b@tt in 20-30 years.

  140. sounds like Mozilla by kwoff · · Score: 0

    I'm not in the mood for insightful and thought-provoking, but from the description it sounds kind of like Mozilla's programming framework. Except for the compiler/linker part.

  141. hashes are better by Anonymous Coward · · Score: 0

    t["a"]="blahblahblah";
    t["a.b"]=1;
    t["a.c"]=2;
    t["a.d"]=4; :)

  142. Last I checked... by ameoba · · Score: 1

    Last I checked, academics that wanted to change the world didn't write manifestos, they wrote reference implementations. Do you think we'd have garbage collected, object-oriented GUI-capable programming systems today if some twit up in his ivory tower said "Everyone should go build these"?

    I doubt it. The only way these ideas get into the mainstream & accepted is with implementations that have the 'hard problems' solved & prove that the idea works. Looking over this guy's website, it doesn't look like he's willing to put his money where his mouth is.

    --
    my sig's at the bottom of the page.
  143. just answering the question=troll ? by wardk · · Score: 1

    wow, a troll designation for responding to the question in an honest, consise manner.

    I demand a recount!

    (and I still say the answer is NO)

  144. Missing the point by supertopaz90 · · Score: 1

    I think what is interesting about this isn't the immediate benefits (being able to format the code to your liking is more of a convenience), but what could be done with it down the road. With the code as XML, generating class diagrams and flow charts suddenly becomes easier. Round-trip engineering using UML diagrams isn't as messy. Cross-referencing for API documentation could be generated automatically. I like pounding out code as much as the next programmer, but for large projects, it would be nice if we didn't need a special word for refactoring - we just moved fields and classes around.

    In some ways it can give you more control over your code. Mark all of your debug statements as debug or logging, and then tell your editor to hide them. Bug in the networking code? Have your editor show a flow chart of that code. Sure, a lot of that stuff is possible now, but tools have to bend over backward to get it to work, and they muck up your source code.

    I probably sound like marketing hype, but to me it's interesting to think of the possiblities.

  145. Perl is faster than Java by RoboProg · · Score: 1

    At least that is my experience.

    I'm a little surprised you can mention Python and Ruby and omit Perl.

    The big weaknesses I see in Perl are
    * The need for an (optional!!!) "use types" kind of strongly typed mode
    * Non-kluged (eval is a kluge) exception handling.
    * The need for a standard GUI toolkit in the distro (I know Perl/tk exists, but it's not shipped normally, I believe)

    Otherwise, it's generally easier to write a modest size job in Perl, rather than in Java, AND, it runs faster. I do a lot more batch-ish stuff that user-coddling GUIs (<Grin/>), so the run-time speed matters, and the fact that Perl is also EASIER to write helps.

    I hope Perl 6 comes out sooner, rather than later...

    --
    Yow! I'm supposed to have a plan?
  146. Everyone agrees that one-line programs are bad? by Anonymous Coward · · Score: 0

    He and who else?

  147. So few understand [long] by XenonOfArcticus · · Score: 1

    I actually agree with almost 100% of what the article proposes, and the above poster clarifies. I've been sketching ideas about this for about 5 years, a project I nicknamed 'Babel'.

    Let me address some common misconceptions I see here:

    Lisp/Scheme/yourfavoriteprojectorlanguage already does this. Yes, but this is a proposal to take a number of features that have been done in various places and make a better whole of them. Also, my interpretation is that the proposal doesn't necessarily involve substantial runtime support beyond what current languages like C++ require, making it quite a bit different from LISP.

    Also, I don't want to read/write Lisp. I don't want to read/write XML. I want to read/write something that looks like languages I'm already comfortable with, like C++. This proposal would store the data as XML (not that XML is the crux of the matter, it's just a convenient form -- you could do the same thing and store it in binary form, or more ASCII-like) and on-the-fly translate it into a form the programmer wants. Something like the CSS mentioned by the above poster could be used to control or assist this. No more bracket/indent style holy wars. Each person's editor/browser can display it in the form they prefer, and yet all the merges and diffs work out fine because the actual code format is agnostic to all this window-dressing.

    Because the 'meat' is stored in a structured format, with standardized tools and procedures for parsing it, making batch tools to work with it will be much easier. How about writing a tool to find all variable names and de-Hungarian them? Try that with flat text. Or, even tougher, HUNGARIAN them! (Not that you'd want to, but...) How about locating all references in the project to any floating-point variables named something like Fred? All methods that take a Barney object as an argument? Any method that has the word Purple in it that calls a method in the Dino library and uses a Yabba object. I bet you could find laborious or exotic ways to do this now, but if code starts being stored in a structured way, and you have the opportunity to hook into the language data inside the lexer/parser, you can do quite a bit.

    Smart editors like this could, as pointed out elsewhere, do syntactic and semantic checking on the fly. Move a block of code around and immediately see that you missed moving the scope of a variable, or that in this scope, WhiffyObject doesn't have a Fubar method. Sort these things out at edit time, not parse/compile time.

    Even better, a really smart development system could be doing the lexing/compiling behind your back, as you edit, because it's doing a lot of that work anyway to do syntax highlighting and checking.

    Yes, there are downsides to all of these things, but the upsides are very attractive. Allow me to cite from my own notes about this sort of thing:

    Babel

    Current ASCII flat-text parsed languages are an outgrowth of a time when editing was cheap but compiling was expensive. They rely on intelligence and resources of programmer in favour of intelligence and resources of computer.

    Intelligence and resources of computers are increasing, of programmers are not. Effective balance begun to swing -- computers can relieve tedious tasks from programmers allowing programmers extra resources/intelligence to execute more sophisticated and complex designs, or better quality of existing designs.

    Languages are fundamentally very similar at heart, each with own bells & whistles, and each with own peculiar syntax. Many are very similar to some degree -- withness moderate success of fortran-to-c, pascal-to-c converters. GNU compiler suite uses different front-ends on a common middle and back end to implement ADA, Fortran, C/C++, etc. In the beginning (and many would argue, today) C compilers were just C-to-asm translators. Many original C++ compilers were (few still are) C++-to-C compilers. Java source code can be compiled into JVM code or native code (Metrowerks, etc). C/C++ can be compiled in

    --
    -- There is no truth. There is only Perception. To Percieve is to Exist.
  148. Enough XML already! by Anonymous Coward · · Score: 0

    Please do this to save the computing world!

    If somebody does a grand design with XML everywhere replacing text files, kick him hard in the nuts.

    Start with the guy who wrote Gconf.

  149. Greg as a teacher by zslootsky · · Score: 1

    I actaully had this prof last year in a second year course (CSC207). I probably learned more about programming practices than in any other course however all my interactions with Greg were extremly scary and I found him quite intimidating. He's a pro for sure though.

  150. Interesting idea by Pan+T.+Hose · · Score: 1

    Well, it's actually quite easy:

    <perl>
    [#!/usr/bin/perl]
    (your perl code here)
    </perl>

    The advantage is that the file content now explicitly tells you that it is perl code :-)

    This is an interesting idea. I always thought that the shebang line was not enough.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:Interesting idea by maxwell+demon · · Score: 1
      Well, your shebang line won't work if perl is e.g. on /usr/local/bin/perl - and even less if it's a Windows system which doesn't know anything about shebang lines.

      Of course, current systems won't recognice the alternate syntax as well, but then, XML is the future, therefore all systems will be able to recognize it. Especially since at some times binaries will be encoded in XML, and kernels have to include XML parsers anyway to be able to execute anything.
      <binary OS="bloatOS" cpu="Itanium">
      <section name="text">
      <label name="main" />
      <code>affe0815471142</code>
      </section>
      </binary>
      BTW don't forget this important piece of XML:
      <detect type="irony" />
      --
      The Tao of math: The numbers you can count are not the real numbers.
  151. One more thing by Pan+T.+Hose · · Score: 1

    Interestingly enough, "</perl>" is valid Perl. You would have to find another delimiter. Good luck.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  152. ps by boots@work · · Score: 1

    None of this to say Python's usage is bad. I love Python. I love that there is no possibility of getting mislead by incorrectly-indented code, as happens sometimes in C.

    The syntax is no more complex than C and totally acceptable for any programmer -- but that's still a lot more complex than Lisp, the language with almost no syntax. Naively moving indent syntax into Lisp would give you the worst bits of Lisp (prefix algebra) and Python (non-trivial syntax).

    1. Re:ps by SuperFrink · · Score: 1

      None of this to say Python's usage is bad. I love Python. I love that there is no possibility of getting mislead by incorrectly-indented code, as happens sometimes in C.

      I have mod points but I have to point out that I work on code that half a dozen others have worked on and sometimes I find code that looks like the indenting is the same but one developer used a tab and one used spaces. This shows up when you changes the tab spacing but otherwise the code appears on the screen at the same indent level but the compiler will notice the difference. (Or it would if this is a language that cares about whitespace.)

      PS: I think I've managed to convince the people I work with to use tabs for indenting so we can all work on the code with different tab widths if we like.

    2. Re:ps by boots@work · · Score: 1

      In Python you can use tabnanny to avoid this.

      I find the best fix is to just ban tab characters from files. That way there is no argument or confusion about how many spaces they are supposed to represent. N spaces is always N spaces.

      Using only tabs and not spaces also kind-of works, but I think it is not such a good solution. Not everyone's favourite editor can be configured to treat tabs the right way. Spaces tend to creep in -- you can hardly avoid spaces altogether -- and so entropy increases. Code that makes sense indented with tabs shown as 2 spaces might look bad or wrong when someone changes it. I guess it does let you avoid agreeing on what size of indent to use but I am not sure that is a good thing.

    3. Re:ps by SuperFrink · · Score: 1

      Not everyone's favourite editor can be configured to treat tabs the right way.
      Probably true. I'm pretty sure elvis, vim and, Emacs can do this. I'm not sure about others.

      Code that makes sense indented with tabs shown as 2 spaces might look bad or wrong when someone changes it.

      Yes, that happens. I think that's about the same as when people use different width terminals. I do think the different tab width is more of a problem though because some comments will be tabbed after a line of code and then the next line of just comments lines up via tabs with the previous comment. Then again for comments I don't think it's too confusing when things don't line up.

      I guess it does let you avoid agreeing on what size of indent to use but I am not sure that is a good thing.

      I think allowing for user defined flexability is really important when working on code shared by many people. Personally I addopted the Linux kernel standard a few years ago. I've worked on code with 8 or more levels of indenting with 2 space indenting where it can be difficult to line up what closes where. 8 spaces are much easier to see at a glance but I'd like to respect that other people prefer another visual layout. I don't think using spaces allows that to happen without an editor that understands the language and can let you edit it in a way that looks differently than the actual file is laid out.

      PS: the JWZ link was interesting. Both arguments have fair points so we end up with individual preferences. :^)

    4. Re:ps by boots@work · · Score: 1

      Glad you liked the JWZ article.

      There is one other point that I forgot to mention but that I think tips the balance: if you use tab characters, the indentation will be screwed up in a diff because of "+ " being inserted on the left hand side. No problem with spaces. Using tabs also makes it marginally more likely your patches will not apply, though you can kludge it with patch options.

      Similarly, if you copy code using tabs into email, a web page, or a document then it is likely to look messed up. There is no problem with spaces.

      As you say, code with vertical alignment anywhere but the start of the line is always going to get screwed up with tabs.

      I think at the start of the project the people involved should pick a width (2, 4, 8, whatever) and use that many spaces, and just stick to it. You need to make these decisions about lots of other stylistic questions, so I don't see why picking a single indent depth should be hard.

      Tabs make the alignment of code flap around as it moves between programs. I hate that. It ought to stay the way it was written.

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

      Alignment is only possible at the start of a line, unless everyone accepts the eyestrain and wasted real estate that comes from using a fixed-width font. If some idiot leans on the space bar until things "look right", vote him off the island.

  153. This is MetaL: XML based Meta-Programming language by mlemos · · Score: 1

    It is curious but the article just describes MetaL.

    MetaL is actually a meta-language with a XML based syntax on which you the commands and constructs can be redefined by the means of compiler plug-in modules.

    Anyway, MetaL was not meant to replace the current languages but rather to implement domain specific languages that can get compiled into code of current programming languages like PHP, Perl, Java, etc., as you may see in the MetaL sample page.

    This is not normal programming this is meta-programming because it is a language to generate programs in other languages.

    One domain specific application that is being developed as an application of MetaL is Metastorage.

    Metastorage is a DAO (Data Access Object) classes generator tool that generates classes of objects meant to be stored in persistent containers like databases, XML files, flat files, data in LDAP servers, etc..

    Metastorage takes the definition of persistent classes including properties, validation rules, relationships between classes and also functions that implement different aspects that you want the persistent classes to feature like retrieving objects from storage, changing object properties, validating object properties, store objects, manipulate relationships, etc..

    Since Metastorage enables Aspect Oriented Programming because it lets the developer choose which functions that implement the aspects of the persistent classes he wants to be generated. This leads to very compact classes that do not contain code that is not always needed (bloatware).

    Anyway Metastorage is just one type of tool based on MetaL by the means of a special module meant to implement persistence layers. Many other types of modules could be made available when there is need for other domain specific needs.

  154. We're Already There by xp · · Score: 1

    Wait, this is exactly how I program right now. I guess the future must be here, already.

    I combine compilers, linkers, debuggers on the command line. All my tools are plugin frameworks, rather than monolithic applications. I connect them to each other using pipes and batch commands. For extensibility I use the C pre-processor macros and Perl.

    So what he is saying is that in the future all programming will be done in Vi and Bash.

    I would like to predict that programmers of the future will replace their laser mice with a new and highly-advanced interface device, with lots of buttons, called the keyboard.

    ----
    asimjalis.blogspot.com

  155. Conflating difficulty of extension with legality? by jbn-o · · Score: 1

    From the paper:

    This is not an open source vs. closed source issue: GCC, the GNU Compiler Collection, is no more "open" to plugins than proprietary compilers.

    Doesn't Cygnus' work prove this to be not true? Brad Kuhn, executive director of the FSF, recently came to the University of Illinois at Urbana-Champaign and gave a talk about free software. Kuhn mentioned one or two other consulting firms like Cygnus which did GCC work. He said that one of them was booked for a long time in advance (a year, if I recall correctly -- I don't have a transcript of his talk to refer to) because they were in such heavy demand. So it seems to me that GCC is quite extensible and ready for improvement by dedicated hackers. Difficulty of doing the work is one thing, but at least GCC can be legally shared and modified (unlike proprietary compilers).

    It also seems unfair to not recognize that GCC was conceieved and originally written by and for free software hackers (first among them RMS, if I recall correctly) for the free software movement years before the open source movement started. I'm guessing that Dr. Wilson wouldn't like his work being credited for a movement that doesn't stand for the same values years after his work was started. RMS sure doesn't like that and today's GCC does build on his work. The open source movement has done a lot to bring people to software freedom, and I'm really grateful for all that hard work, but we're not going to be able to properly interpret history if we don't understand what "open source" and "free software" stand for and then give credit where credit is due.

  156. 21st century language: keywords in Hindi by peter303 · · Score: 1

    'Nuf said.