Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Microsoft

Two New Microsoft Languages - AsmL and Pan 65

AlphaAlien (from neonerds.net) writes: "Another Microsoft Programming Language -- AsmL. AsmL is the Abstract State Machine Language. It is an executable specification language based on the theory of Abstract State Machines. AsmL allows you to test incomplete code due to it being executable on the fly. This doesn't mean it'll execute invalid code though, only that you can execute code segments for instant experimentation (similar to the test-debug function in Visual Studio, but more flexible/powerful). In case you're not tired of all these new Microsoft languages, here's another, Pan. Pan is an experimental embedded language and compiler for image synthesis and manipulation, based on principles from functional programming. The Pan compiler turns descriptions of images and image effects into efficient machine code for use with either a stand-alone program, DirectXTransform for web-page embedding (viewable with IE 5.5 or later), or as a PhotoShop plug-in for use with hosts like Adobe PhotoShop and JASC PaintShop Pro (has only been tested with latter at this point, but should work with former)." You can download Pan from here.
This discussion has been archived. No new comments can be posted.

Two New Microsoft Languages - AsmL and Pan

Comments Filter:
  • In reading some of the the papers on pan, it seems have a lot in common with that other Image Description Langage, Postscript, albeit on a finer level.

    Of course, here is where I insert the knee-jerk comment about having code embedded in an object with Microsofts reputation for security regarding such things.

    However, while the technology is very compelling at first glance (Inovation? From Microsoft? Faugh!), I'm just disheartedened that there is little chance it will make it to the world outside Microsoft products, if it even survives at all (there is little real world interest in these sort of things at the moment).
    • Isn't PAN the Protocol for Assessment of Novelty in the Infinite Monkey Protocol Suite? (see RFC2795).

      I assume that they will next come up with the IAMB-PENT to allow the SIMIAN in the ZOO to interact with the BARD...
  • by larry bagina ( 561269 ) on Tuesday June 11, 2002 @06:38PM (#3682464) Journal
    Gentlemen, the time has come for a serious discussion on whether or
    not to continue using C for serious programming projects. As I will
    explain, I feel that C needs to be retired, much the same way that
    Fortran, Cobol and Perl have been. Furthermore, allow me to be so bold
    as to suggest a superior replacement to this outdated language.

    To give you a little background on this subject, I was recently asked
    to develop a client/server project on a Unix platform for a Fortune
    500 company. While I've never coded in C before I have coded in VB for
    fifteen years, and in Java for over ten, I was stunned to see how
    poorly C fared compared to these two, more low-level languages.

    C's biggest difficulty, as we all know, is the fact that it is by far
    one of the slowest languages in existance, especially when compared to
    more modern languages such as Java, C#, and VB. Although the reasons for
    this are varied, the main reasons seems to be the way C requires a
    programmer to laboriously work with chunks of memory.

    Requiring a programmer to manipulate blocks of memory is a tedious way
    to program. This was satisfactory back in the early days of coding,
    but then again, so were punchcards. By using what are called
    "pointers" a C programmer is basically requiring the computer to do
    three sets of work rather than one. The first time requires the
    computer to duplicate whatever is stored in the memory space "pointed
    to" by the pointer. The second time requires it to perform the needed
    operation on this space. Finally the computer must delete the
    duplicate set and set the values of the original accordingly.

    Clearly this is a horrendous use of resources and the chief reason why
    C is so slow. When one looks at a more modern (and a more serious)
    programming language like Java, C# or - even better - Visual Basic
    that lacks such archaic coding styles, one will also note a serious
    speed increase over C.

    So what does this mean for the programming community? I think clearly
    that C needs to be abandonded. There are two candidates that would be
    a suitable replacement for it. Those are Java and Visual Basic.

    Having programmed in both for many years, I believe that VB has the
    edge. Not only is it slightly faster than Java its also much easier to
    code in. I found C to be confusing, frightening and intimidating with
    its non-GUI-based coding style. Furthermore, I like to see the source
    code of the projects I work with. Java's source seems to be under the
    monopolistic thumb of Sun much the way that GCC is obscured from us by
    the marketing people at the FSF. Microsoft's "shared source" under
    which Visual Basic is released definately seems to be the most fair
    and reasonable of all the licenses in existance, with none of the
    harsh restrictions of the BSD license. It also lacks the GPLs
    requirement that anything coded with its tools becomes property of the
    FSF.

    I hope to see a switch from C to VB very soon. I've already spoken
    with various luminaries in the C coding world and most are eager to
    begin to transition. Having just gotten off the phone with Mr. Alan
    Cox, I can say that he is quite thrilled with the speed increases that
    will occur when the Linux kernel is completely rewritten in Visual
    Basic. Richard Stallman plans to support this, and hopes that the
    great Swede himself, Linux Torvaldis, won't object to renaming Linux
    to VB/Linux. Although not a C coder himself, I'm told that Slashdot's
    very own Admiral Taco will support this on his web site. Finally,
    Dennis Ritchie is excited about the switch!

    Thank you for your time. Happy coding.
    • This is either a joke, or the guy's an MCSE (Might Click Start Eventually).

      Clearly this is a horrendous use of resources and the chief reason why C is so slow. When one looks at a more modern (and a more serious) programming language like Java, C# or - even better - Visual Basic that lacks such archaic coding styles, one will also note a serious speed increase over C
    • argh, moderators on crack again.

      As a (primarily) VB developer I thought it was hilarious, good job!

      Oh, maybe you didn't know, but VB Script is even better, it's much faster than even VB since all variables are the same type, saving a lot of computing power instead of trying to keep track of all those strings and ints and crap. Go Variant!

    • Well this is obviously a very well thought out joke. Thankfully the person that moderated it as Troll instead of Funny won't procreate, as girls don't like men with no sense of humour (if the moderator is a girl we have a problem since boys like anything female)

      The interesting thing is that while joking the poster has (unknowingly?) actally made a few good points.
      Requiring a programmer to manipulate blocks of memory is a tedious way to program
      Garbage-collection will save lives (by preventing programmers from going insane and shooting around wildly with an AK-47). Java's references instead of C's pointers also makes life easier. Most of the things that can be done in C/C++ can be done in Java. If all you need is a simple GUI and no fancy stuff in the background, VB is fine (if you program for windows that is). VB.net might make the fancy stuff posssible too I am told.

      Ofcourse if execution speed is the only thing that matters C (or assembly if you can do it) is the way to go. But if developement time matters C is no longer (IMHO) the best choice.

    • Sorry, Java has not been out for 10 years yet. I think this comment is rather funny joke or just a complete lack of the author's programming knowledge.
    • Amusing, but not original. This was posted to comp.lang.c and several other newsgroups on April 27.

      See the original (?) C: A Dead Language [google.com].

  • by ryanmoffett ( 265601 ) on Tuesday June 11, 2002 @06:44PM (#3682511)
    Today microsoft is putting forth AsmL1.5. It's reasonable to assume they will evnetually release AsmL8.
  • Funny, I thought Pan was the Pimp Ass Newsreader [rebelbase.com]. or maybe they're thinking of the pan flute [pan-flute.com] instead.

    • As a simple caveman I find myself suddenly confused and unable to tell the difference between the MS product PAN and Pimp Ass Newsreader. From a trademark sense I think MS has dilluted this product name.
      • Actually, I'm sure Microsoft will fight in court (though I doubt the PAN developer has the money to fight) that they own the rights to the word PAN, regardless of the fact that it's not an original word. They will undoubtably force the author of PimpAss Newsreader to change the name of his product to POT (Pushed Over Techie) instead.
  • Setting aside the urege to bash Microsoft, lemme ponder a few things:

    Will these eventually be rolled into thousand dollar developer packages, or will they stay free?

    What security holes will be found in them?

    How compatible are these tools with GPL tools?

    If the answers are favorible, I might start using a microsoft product after a long, long hiatus
    • C# is free, submitted to and ratified by a standards body - ECMA - something Sun has yet to do with Java. The .Net SDK is also a free download - you are quite capable of developing .Net applications without the thousand (or more like $2500 if you buy the packages we do, but then when we sleep with the devil, damnit, we buy the champagne, too )

      Security holes? They're there. Just like any other platform - you gotta evaluate that risk yourself. Compatible? I'm sure EMACS can shell out to the c# compiler....hehehe. If you need to develop Windows apps, .Net is a very compelling choice. So is Borland Delphi. If you think you'll be developing apps for Windows in 5 years, I suspect it'll be a Java bytecode app or a .Net bytecode app.
  • ASML (Score:2, Funny)

    by chriso11 ( 254041 )
    I though asml meant
    Another Shitty M$ Language

    Whodda known?
    • Actually, AsmL has a quite interesting story.

      AsmL is one of the various implementations of the language known as ASM (Abstract State Machine, as stated in the story), developed mainly by Yuri Gurevich in the last ten years. The language in itself is nice, similar to LISP in some aspects: no local environments, totally dynamic scoping, higher-order, mostly untyped.

      There are several implementations (see this U.Mich. page [umich.edu]), even one in Tcl release under GPL/LGPL/MPL (XASM [xasm.org]).

      As far as Asml goes, I tried it. Version 1.5 is a compiler to the Visual C++ language (it's not really C++, you know). The pair is slow: on a small project (~ 300 lines with comments) it took some seconds to compile to C++, and then about 10 (ten) minutes to compile to native code (on a Celeron 433, 640MB ram, Win98 (it's a dual-celeron, but you know, 98 doesn't use the other processor)). Then, it failed to execute due to an unitialized pointer error. Fact is, AsmL does not have pointers! I threw it away, and rewrote the project in Perl ;-)

  • There's already a Pan, and it's a newsreader. [rebelbase.com] So I think the Pan newsreader people ought to go tell MS to rename their Pan or face court. Besides, it'd be fun to use MS's tactics upon MS for a change. Can't you just hear Gates and Ballmer now? "Waaaah, the Linux freaks are stifling our innovation! Wahhhh!"
    • Microsoft has a long history of using confusing names from similar but not exactly the same areas, so their names sound familiar to people -- just some most "famous" examples:

      1. Windows (operating system, conflict with user interface element that was already in wide use when it was developed).

      2. Digital Nervous System (used as a pointless phrase in ads, conflicts with Domain Name System).

      3. .NET (conglomerate of protocols, tools and libraries based on XML and RPC, conflicts with ".net" top-level domain).

      4. Windows XP (operating system, conflixts with Extreme Programming).

      5. X-box (game console, conflicts with X terminals from X Window System).

      And that doesn't include the use of terms that describe existing classes of products such as "SQL Server", "Internet Explorer", etc.

  • by penguin_punk ( 66721 ) on Tuesday June 11, 2002 @07:45PM (#3682849) Journal
    Thanks to whoever posted those links to the research site over at M$.

    A few notes from the past half-hour:

    PAN is old. The fricking code was last updated 2 years ago. I've seen that page before. 2 YEARS AGO.

    anyways. here's another note.

    http://research.microsoft.com/~dbwilson/ -- this guy's pretty funny as far as Microsoft goes. He's releasing some stuff under the GPL on Microsoft's server, as well as linking to GNU Emacs for Windows. I think he deserves a raise.

  • by Tom7 ( 102298 ) on Tuesday June 11, 2002 @10:14PM (#3683511) Homepage Journal
    Once again, you guys are confusing Microsoft Research with Microsoft. It's a different place. They don't put out crappy, buggy software, or try to take over the world. It's just a research lab.

    Incidentally, MSR Cambridge has some of the best programming language researchers in the world! (Personally, I wish the linux world had more tolerance for new PL ideas..)
    • > Personally, I wish the linux world had more tolerance for new PL ideas

      what?! how many languages must linux support? linux uses gcc for its compiler which is designed to allow people to more easily support new languages. plus there are tons of other languages supported - functional, logic, scripting, procedural, oo, and more.

      and look at the languages used to build on top of linux. c, c++, modula-3, perl, python, shell, tcl/tk, elisp, scheme, caml, fortran, java, objective-c. i've used pieces of s/w on linux systems that use all of those (not at once). and those are just the ones i know of.
      • I'm reacting to the posts in this article, many of which are knee-jerks like "ANOTHER language from Microsoft! Who needs more languages??" It's true that lots of languages run on linux (though most of the ones you list are C or safe-C variants), though I don't think there is much enthusiasm for *new* programming language ideas on linux. That's pretty sad, because the linux folks are the ones who are supposed to adopt ideas because of their technical value!
    • Yes, this is research from Microsft Research.
      Pan is an embedded DSL for image manipulation,
      embedded in the pure lazy functional language
      Haskell.

      This is not some part of the evil empire's plans
      for taking over the world, so far as I know :)

      I am quite sure that the empire is not even aware of this power that is hidden from the dark side, yet funded by it.
    • I think that's the problem: MSR is doing great work, while MS corrupts and ruins them to give us Clippy, the Talking Paperclip.

      I think this should be a poll topic: Your favorite research lab? Lawrence Livermore, MSR, Thomas J. Watson Research, AT&T Bell Labs, Cowboy Neal's Bedroom.
    • "It's just a research lab."

      Well, of course that it is JUST a research lab, but all research has some sort of purpose, like biotech firms try to develop new cures and such. This research lab's purpose is to develop new technologies to compensate for M$'s inability to innovate (most of M$'s technologies are copied or licensed from others), and the purpose of M$ is to take over the world with their shitty software.

      Therefore, this research lab essentially is part of M$, and they help with putting put out "crappy, buggy software" and help them "take over the world." Their ideas are not open to all, and they strive for competetive ends which do not benefit all of mankind, only M$ and it's loyal ass-kissers.
      • > "Their ideas are not open to all, and they strive for competetive ends which do not benefit all of mankind, only M$ and it's loyal ass-kissers."

        This is simply not true. They publish their ideas in scientific journals, just like other research labs, and publish open source software. It's true that some of their research is oriented towards Microsoft products, but MS itself hardly ever actually adopts MSR ideas. If you think I'm wrong, point me to some MSR technologies that have been patented and then used exclusively by MS, or something like that.

    • don't put out crappy, buggy software


      No, i worked there, they do.

      -Jon
  • The concept of testing code on the fly is one of the features of python that makes python so great.(The interactive prompt part is where you can execute on the fly code)
    • Yes, but python is not the only, nor the first language to allow for interactive programming.

      As Paul Graham once noted, you see the PERL people scoffing at the C people and you see the Python people looking down at the PERL people. You'll notice those languages, in that order, C->Perl->Python are slowly getting closer to becoming LISP. LISP was, as far as I can remember, the first interactive language.

      LISP still is, in my opinion, the most powerful language ever devised. What other language can claim that you can make it an OO language, at run-time, via LISP code. You can add type-checking, at run-time, via LISP code. Code is data and data can be used as code. CLOS kicks ass. LISP kicks ass.

      Not that I don't like Python. It's a cool language. But it's complete lack of method overloading and type-checking make it less than ideal for large-scale projects or sophisticated OO projects. If you like Python, checkout Stackless Python. Very cool. Great support for tail recursion. Better continuation support. Good stuff.

      Anyway, about AsmL. I looked at the example code. For a language based on state machines, it sure was low-level. It looked more like a even-more-verbose pascal. Take a look at the IO example. Good GOD! So many nested if-statements just to open a file and write to it.

      Anyway, have a good day,

      Justin Dubs
  • I've been following the abstract state machine community for some time. You can find more about ASM's at http://www.eecs.umich.edu/gasm/ [umich.edu]. An open source community building their own specification language has a site on SourceForge: http://sourceforge.net/projects/a-s-m/ [sourceforge.net]

    I was kind of sorry to see that ASM's inventor, Yuri Gurevich, left the University of Michigan for Microsoft Research. However, I'd probably take private research over the hassle of teaching while doing research.

  • by Anonymous Coward
    Pan seems like M$'s latest attempt to again catch up to the Open Source community. For way cool graphics that you can animate, script against, port to any platform and easily manipulate in your code try SVG (scaleable vector graphics) It is also supported by adobe. This is an xml based standard that is easy to use, easy to manipulate, and offers the best of flash plus named vector graphics.

    For more information see W3C's SVG web site [w3.org]

    for useage of SVG see: The Apache batik project [apache.org]

    There is also an excelent O'Reilly book by J. David Eisenberg [barnesandnoble.com]

    If you truly want to be on the cutting edge of graphics then you should look into SVG.

    Sgis

    "Truth is a personal pronoun." (john 14:4)

  • You've gotta love em...

    However, I can't help but wonder: What's next?

    It seems like every day they "invent" a new programming language...

    I wonder when Bill# is coming out. That'll be awesome. In Bill#, you just type a bunch of jargon for code, and then when it executes (no matter the code), it shows a picture of Bill Gates, transfers money from your bank account (let's say 50% of everything in it), and then (this is the best part) crashes your computer and forces you to reinstall Windows XP (AGAIN).

    Just think of the possibilities: you can spend hours just slamming keys on the keyboard (and get paid $40/hr to do so) and then at the end of the day - viola, your boss (who presumably has no intelligence whatsoever) thinks you've done something!

    Now, if only it could be hacked to transfer money into your account in Switzerland ;-)

    Ah, Microsoft.

No man is an island if he's on at least one mailing list.

Working...