Slashdot Mirror


Carl Sassenrath Talks About REBOL

Rebelos writes: "REBOL is a powerful software technology (ever thought that you could write a full blown GUI Instant Messenger in only 7 KB of source code?) optimized specifically for Internet usage. Rebol Tech, the company behind REBOL, consists of only 10 people and they claim they can compete and go against .NET and Microsoft's dubious plans. Their platform has been ported to 44 operating systems so far! Take a look as to what Carl Sassenrath, ex-AmigaOS/Commodore engineer and founder of Rebol, says at OSNews about the Rebol platform, its deployment, other programming languagees, Microsoft etc." The buzzwords are pretty thick in here, and the ideas are interesting, if a little vague. If the interview makes you curious, check out the previous stories touching on Rebol as well.

58 of 246 comments (clear)

  1. Re:Aha! by Anonymous Coward · · Score: 3, Informative

    But that is the whole point!
    REBOL is an *internet language*. For example, you can't write a graphics application with it (until now...). But if you want to write a fully featured GUI NewsReader, an Email Client, an IM or anything related to Internet or other simpler stuff (like a calculator, a simple word processor etc), then you can do it easily, because REBOL supports all these protocols internally!
    So, as C has a printf() and a uint32 for example, REBOL has an email DataType! It has a NewsReader DataType etc!
    Each language is good for some things and not so good for others. REBOL is the absolute Internet language.

  2. big deal by mj6798 · · Score: 5, Interesting
    High level scripting languages are a dime a dozen. Systems like expectk and wxPython give you similar ease of programming. If you like something more Lisp-ish, there are various Scheme systems with built-in GUIs. The main thing that distinguishes Rebol is that you can't get an open source implementation of it and that it has a much smaller user community.

    As for "going against .NET", big efforts like that are not about technology, they are about marketing and people. And they are also about the long-term availability and tools support that a large company like Microsoft (or Sun, in the case of Java) brings to the table.

    But even technologically, it is an error to confuse a scripting language with a system like .NET or Java. Yes, Rebol, Python, and Perl are much simpler to program than .NET or Java. Yes, they run a few important things somewhat faster. But .NET and Java are natively compiled, fast, general-purpose programming environments with static type checking and large libraries (written in Java itself in the case of Java), and that just makes them much more useful for large-real world problems. You see, another misconception is that the easier you make programming in a language, the more useful it is in real-world applications.

    1. Re:big deal by majcher · · Score: 3, Informative

      Yes, Rebol, Python, and Perl are much simpler to program than .NET or Java. Yes, they run a few important things somewhat faster. But .NET and Java are natively compiled, fast,...

      I don't know about .NET, but Java is compiled into bytecode, which is run on a natively compiled byetcode interpreter. Just like Perl, Python, Ruby, etc. are. This has been a major piece of Java FUD for the longest time - it pretends to be a compiled language, because it doesn't want to be seen as "just another scripting language". As for the libraries and penetration available for Java, do you not think that if Sun had developed and spend untold millions marketing Perl or Python that they would not be in the same position? As a language, Java lacks in many areas - it's just the most popular kid on the block because it's dad happens to be rich.

    2. Re:big deal by smallpaul · · Score: 2

      But even technologically, it is an error to confuse a scripting language with a system like .NET or Java.

      .NET and Java are not even in the same class. One is a language. The other is a marketing buzzword that covers a variety of technologies. Be more precise. What part of .NET are you talking about?

      Yes, Rebol, Python, and Perl are much simpler to program than .NET or Java. Yes, they run a few important things somewhat faster. But .NET and Java are natively compiled, fast,

      In general, Java is bytecompiled, just as most scripting languages are. Sometimes Java can be JIT-ted to native code. Sometimes scripting languages can be JIT-ted to native code.

      general-purpose programming environments with static type checking and large libraries (written in Java itself in the case of Java)

      Java's library is not larger than CPAN and certainly is not larger than Jython's. The scripting languages originated the idea of large standard libraries. Python is known as the "batteries included" language. Java and C# (.NET is not a language) are relative johnny-come-latelies.

      and that just makes them much more useful for large-real world problems. You see, another misconception is that the easier you make programming in a language, the more useful it is in real-world applications.

      It isn't just about ease. Dynamically typed programming languages allow you to radically decrease your line count and all else being equal that reduces your original development cost and your maintenance costs. We could argue whether "all else is equal" but I think rather that I'll point you to some evidence that significant systems can be created in dynamically typed programming languages. Python case study, Using Lisp to Beat your Competition, Smalltalk in the Large

    3. Re:big deal by mj6798 · · Score: 2
      It isn't just about ease. Dynamically typed programming languages allow you to radically decrease your line count and all else being equal that reduces your original development cost and your maintenance costs. We could argue whether "all else is equal" but I think rather that I'll point you to some evidence that significant systems can be created in dynamically typed programming languages. Python case study [lyra.org], Using Lisp to Beat your Competition [slashdot.org], Smalltalk in the Large [bytesmiths.com]

      I have nearly 20 years of experience with Lisp and I can tell you that it doesn't live up to the hype. For large, multi-programmer projects, the mix of static and dynamic features Java offers works much better.

      You don't have to look much further than the few open source projects based on Lisp and Smalltalk. GNU Emacs is very slow at releasing new versions and elisp packages are a mess; jedit is getting close to similar functionality after only a few years in existence. The Squeak implementation of Smalltalk is great, but it, too, has turned into a complex and largely undocumented mess. Languages like Smalltalk, Python, and Lisp are great for smaller projects and for single programmer projects.

      In general, Java is bytecompiled, just as most scripting languages are. Sometimes Java can be JIT-ted to native code. Sometimes scripting languages can be JIT-ted to native code.

      That's a mischaracterization. With the major Java implementations (Sun, IBM, Intel), Java is always JITted into efficient native code, and the Java byte-code is well-suited to that. None of the major scripting languages (Perl, Python, Tcl, Ruby) have a widely-used JIT, and nobody has ever demonstrated a native code compiler for those languages that results in performance anywhere near native code. CMU CommonLisp, arguably one of the best compilers for dynamic languages, does very poorly without type declarations.

    4. Re:big deal by rfsayre · · Score: 2

      what's the big deal with these compiled/interpreted arguments? Can't you compile java source if you want, no JVM required? Isn't it also true that most performance problems are located in a very small portion of the code, but it's extremely difficult to figure out where (ahead of time)? So why not just write it all in java and then mix 'n' match interpreted java, compiled java, FORTRAN, Guile, or whatever?

    5. Re:big deal by Jay+Carlson · · Score: 3, Insightful
      NET and Java are not even in the same class. One is a language. The other is a marketing buzzword that covers a variety of technologies. Be more precise. What part of .NET are you talking about?

      Java is a marketing buzzword that covers a variety of technologies. Quoting http://java.sun.com/java2/whatis/:

      The JavaTM platform is based on the power of networks and the idea that the same software should run on many different kinds of computers, consumer gadgets, and other devices. Since its initial commercial release in 1995, Java technology has grown in popularity and usage because of its true portability. The Java platform allows you to run the same Java application on lots of different kinds of computers.

      [...]The idea is simple: Java technology-based software can work just about everywhere. Java technology components don't care what kind of computer, phone, TV, or operating system they run on. They just work, on any kind of compatible device that supports the Java platform.

      Notice how they don't say "Java is a language..."?

      In the Java 1.0 days there were essentially three things referred to as Java: the JVM, the language, and the standard library. Oh, and maybe something about delivery of applets through sandboxed bytecode. Four things Sun wanted you to think of for the term "Java". Now there are a zillion. Soon, there will be a zillion and fifty.

      OK, OK, those aren't at the same architectural level as the big three components. But "Java" has become increasingly vague, and don't think Sun isn't encouraging this. They want non-directed feelings of goodness associated with whatever's in their (proprietary) platform this week.

      If what people wanted from Java was just a language, in the traditional view of what a language is, gcj would have taken over the world by now.

    6. Re:big deal by Twylite · · Score: 2

      The main thing that distinguishes Rebol is a tiny footprint, and ground-up design for interaction in a networked environment.

      Technologically, you have no clue what .NET or Java are about. Java by virtue of syntax and documentation is probably the simplest of languages around, and both .NET and Java run as bytecode on interpretters.

      But most important, Java (and to some extent .NET) is significant for real-world enterprise applications because it defines specifications for interoperability. J2EE is not about providing programming libraries; it is about providing standards.

      Rebol falls flat on this count in the same way as every other programming language: you have to lock yourself into a vendor at API level, not at language level.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    7. Re:big deal by Ian+Bicking · · Score: 2
      .NET and Java are not even in the same class. One is a language. The other is a marketing buzzword that covers a variety of technologies. Be more precise. What part of .NET are you talking about?
      Java is as vague as .NET
    8. Re:big deal by mj6798 · · Score: 2
      Yes, you can compile Java reasonably well both with a batch compiler (like gcj or Jove) and with a JIT (like the Sun, IBM, and Intel runtimes). And you actually get good performance out of it.

      The nice thing about JITs is that you don't have to worry about figuring out what to optimize: the runtime does it for you, and it is doing a better and better job at it.

      Nobody has ever produced a compiler for Python or Perl that gave performance close to a good Java compiler. The situation with Lisp and Smalltalk is a bit more complex; there are good compilers for them, but getting good performance out of those usually ends up being more work than getting good performance out of Java.

  3. Licensing by Eloquence · · Score: 5, Informative
    The problem with REBOL, IIRC, is its license. The professional interpreter is commercially sold, which means that you have to license it even for distributing your apps, since REBOL does not generate executables. At least the standard version is free beer. But this probably makes it more expensive than VB, where you only pay for the platform once. So it can't compete on Win32, and without being OSS, it will hardly be able to compete on non-mainstream platforms.

    That's a real shame, because other than that, it is really quite impressive. They should think about a Transgaming-like business model, where users subscribe and the code becomes free when there are enough subscribers.

  4. Language Lockin problem by Waffle+Iron · · Score: 4, Interesting
    There have been quite a few self-contained systems architecture solutions put out over the years (Java and Smalltalk come to mind), and this looks like another one. All of them meet a lot of resistance because they make you use a language that is not the favorite language of the 90% of developers out there who have a different favorite language.

    No matter what you think about Microsoft and its practices, the .NET strategy is more likely to attract a wide variety of developers because it allows them to use most any language they want. (.NET has an OS lockin problem, but the 90%/10% ratio is in MS's favor in that case).

    REBOL may be extremely cool; I'm going to have to take a look at the language spec. However, I don't think that any single language will ever take over the whole world.

  5. rebol kicks bootie by LazyDawg · · Score: 4, Interesting

    If it weren't for rebol I wouldn't have a 25 line script to grab the stock market closes every day from yahoo.com. If you want to get batches of web pages and parse them for useful information, use rebol. It rocks.

    If it were more widely accepted, rebol would make a really sweet web language, too, allowing more control over the interface, with less garbage in the page's source code.

    --
    "Look at me, I invented the stove!" -- Ben Franklin
    1. Re:rebol kicks bootie by FigWig · · Score: 2

      This could be accomplished in Perl with about the same number of lines. Any language can do this as long as proper libraries exist. The fact that it is built into the language is not an advantage, in fact it is a disadvantage because you have less flexibility and options.

      I'm sure rebol is nice and you can be productive in it, but it won't have anything that you can't do in another language.

      --
      Scuttlemonkey is a troll
    2. Re:rebol kicks bootie by LazyDawg · · Score: 2

      Great, but without libraries, using a ~900k executable, I can do an http interface, download a web page, parse it for content, then save that content to a file. Perl without libraries can't do that without worrying about the actual http protocol, meaning rebol saves people from having to reuse big blocks of code.

      For beginning users, this ease of use is important because it frees them to do more creative things, faster, and easier.

      Having an OpenRebol, however, would be very very nice, just for more advanced users who want to roll their own rebol or rebol like substance, with better features.

      --
      "Look at me, I invented the stove!" -- Ben Franklin
    3. Re:rebol kicks bootie by ikekrull · · Score: 4, Insightful

      well, theres at least 800k of statically linked libraries right there.

      Without libraries, if you wanted to change or upgrade your HTTP component, you'd have to d/l another 900k executable, instead of using something nifty like the CPAN module.

      There really is nothing stopping somebody from compiling Perl, Python, Tcl or any other language and a bunch of it's essential libraries into a single 'executable' you could use to do exactly what the REBOL environment does.

      Its just not usually done, because most people using these tools recognize the benefits of being able to dynamically load libraries as needed, and add/upgrade/modify/swap them individually.

      This is not to say that REBOL doesn't do the job, since it obviously does for your purposes.

      However, I, like many others, would have to take issue with the idea that YAHASL (Yet Another Half Assed Scripting Language) is going to 'revolutionize the internet' in the same way that Java has completely failed to do.

      --
      I gots ta ding a ding dang my dang a long ling long
    4. Re:rebol kicks bootie by ikekrull · · Score: 2

      I was simply responding to the previous posters claim that he could do his trivial web-suck with 'only' 900k of executable.

      Your Amiga zealotry is amusing, but the idea that REBOL will be successful because it is the creation of one of the guys responsible for Amiga's success (we've seen a lot of that lately, haven't we) is about as valid as the idea that the BeOS would become wildly successful because it was the creation of one of the guys on the Apple Macintosh team, also one of the very best computer systems in history.

      --
      I gots ta ding a ding dang my dang a long ling long
  6. If you thought C++ was a bad idea... by SumDeusExMachina · · Score: 2, Interesting
    ...then REBOL is likely to give you nightmares! Good God, people, I have not seen any other language as bloated as this one! Not even Java can come close in the terms of the sheer amount of crap already included in this language!

    I mean, what happens if you don't happen to like the way that this thing handles TCP connections on your particular platform? You are basically screwed, as not only are underlying routines written in another language, but you don't even get to see the source! I'm shocked that Slashdot would even post such a thing here, considering that the closest analog that I can find to this is VB, and, honestly folks, we do not need more idiots of the using class writing their own AOL Instant Messanger or other crap like that that will probably kill the network I admin.

    --

    Is your company running tools written by ma
    1. Re:If you thought C++ was a bad idea... by drnomad · · Score: 2

      You are not screwed, you can load a dynamic linked library or shared object into the language and use the internal routines...

      You must provide de .dll or .so yourself then, maybe new TCP routines. If you then reprogram some keywords, perhaps you don't need to rewrite the application code which used the old TCP connections in Rebol.

    2. Re:If you thought C++ was a bad idea... by Sir_Real · · Score: 2

      When did Bush say that? Can you give us a link?


      Because if you can link to it, it must be true...

  7. Re:Bold claims by PlaysWithMatches · · Score: 4, Insightful

    I've used REBOL quite a bit, and I'll say one thing up front: this is not going to be a Microsoft killer, or a .Net killer, or whatever. But REBOL is very good at what it does, which is offer a high-level interface to web, e-mail, etc. scripting. The language is pretty nice once you get into it. But for 99% of my scripting, I still use Perl. Will that change because of REBOL? I doubt it.

    Nice toy anyway, though.

    --

    Mozilla's a nice operating system, but it needs a better browser.
  8. another Perl? by Tumbleweed · · Score: 2

    You're right, it's _not_ another Perl. REBOL code is actually _readable_ by human beings, and consistent in syntax. Too bad about the license, though. *shrug*

  9. Re:Use OpenRebol instead by Anonymous Coward · · Score: 2, Informative

    Actually, there's the OSCAR project which wants to create an open REBOL interpreter. Don't think they will ever come anywhere near it though.

  10. A meta-circular view of a bovine backside by mickwd · · Score: 5, Funny

    REBOL might be fantastic for all I know. But when I hear some-one say that something "was designed from a meta-circular view of language semantics" that sounds like the perfect description of bullshit to me.

    1. Re:A meta-circular view of a bovine backside by alienmole · · Score: 5, Informative
      was designed from a meta-circular view of language semantics

      He didn't just make that term up, if that's what you're thinking. A "metacircular" language is a language which is implemented in itself. The most common example of this is Lisp - in fact, the very first computer language interpreter ever was a Lisp interpreter, written in a Lisp-like language as something of a mathematical exercise, by John McCarthy around 1958. This approach has proved very powerful, and some good language implementations have been written this way.

      The term is probably most famously used in SICP, in a section entitled The Metacircular Evaluator.

      Of course, none of this implies that REBOL is any good, but the fact that Sassenrath is aware of such things is probably a good sign. If you read the rest of the paragraph after the term "meta-circular", you'll see that he is actually referring to a relevant aspect of REBOL, namely that the GUI system is implemented in a dialect of REBOL. So it isn't quite as bad as if he'd said that the language runs on free tachyon energy...

    2. Re:A meta-circular view of a bovine backside by scrytch · · Score: 2

      A "metacircular" language is a language which is implemented in itself.

      Huh. In the compiler world, that's called bootstraping. Face it, they really just want you to ooh and ahh over the complex sounds of "meta-circular view of language semantics" without really understanding it. If the fact that the language is bootstraped is such a selling point, they could have simply said "implemented in REBOL".

      I guess someone had to take Scriptics's place as the peddler of hype over technical merit.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    3. Re:A meta-circular view of a bovine backside by alienmole · · Score: 2, Informative
      I don't think I did a good job of explaining what "metacircular" usually implies. There's a little more to it than simply bootstrapping. Certainly any metacircular language has to be bootstrapped at some level, but that's an implementation detail that has little to do with the nature of the language being implemented.

      In interpreted languages that allow procedures to be treated as data values, it is very easy to write an interpreter for those languages in the language itself, because the language has features that make it easy to write code that manipulates other code, evaluate expressions, and so on. The same is not true for writing a language like, say, C, since C itself doesn't contain any particular features oriented towards such tasks. Writing a C compiler in C has to be done "the hard way". Writing a Lisp interpreter in Lisp is trivial by comparison.

      Saying that a language is capable of implementing itself in a metacircular fashion implies that the language has capabilities which go beyond those in traditional languages like C, Basic, or Java, none of which can really be said to be metacircular. An important implication is the ability of a language to operate on its own code at runtime, which is why metacircular languages usually support higher order functions. Metacircular languages are also good at implementing other languages with minimum effort.

      Smalltalk is another language with metacircular features. For something more unusual, here's a brief mention of an implementation of Postscript in Postscript. I picked this link because it contains some clues to some of what a metacircular interpreter can buy you; I'm not sure I can explain it any better without getting into code samples in Scheme, and SICP does that better than I could.

      Based on Sassenrath's description, it sounds as though REBOL has some features which can validly be described as metacircular. If he's trying to dazzle people with his language, he's at least doing so in a way which communicates something meaningful to those familiar with the terminology, as opposed to making completely gratuitous claims.

  11. Re:Aha! by mgkimsal2 · · Score: 2

    Most of the networking libraries and stuff are already built in to the core. It's pretty damn small - something like 300k, with GUI support (widgets, etc). The biggest thing holding us back from having deployed this for a client is that there was no Mac GUi support when we checked (6 months ago or so). I think it's there now.

    That's what's a bit misleading about this - 44 platforms, but not all have GUI support, which is where I'd think the big win would be. If I want to simply script stuff on multiple platforms and one set of code I can use Perl (although it's not 300k!)

  12. Any guesses? by teyu · · Score: 2, Insightful

    "...we have a partnership that will be putting REBOL onto 30 million desktops within the next few months."

    I just had images of millions of AOL cd's dance through my head. With the types of services this provides and their claims to be a .NET alternative, who else could they be partnering up with?

  13. Looks like JNLP.. by mergatoriod · · Score: 2, Insightful

    Okay, so I downloaded the viewer 362K (so far so good..)

    Run the installer, took a few seconds (great!)

    Took a look at the demos, only a few seconds to download and view (quick!), and then I quickly lost interest. The demos are rubbish!

    Visited some of the other Rebol enabled sites, the demos did not get any better!

    I just don't see anybody wanting to write any serious applications for this platform. JNLP the Java web application launching protocol has much better demo applications available. http://java.sun.com/products/javawebstart

    Show me a serious application such as a paint program or a game and i'll take this seriously otherwise forget it!

    1. Re:Looks like JNLP.. by KyleCordes · · Score: 2

      To run java apps, you don't need the (rather large) JDK, just the JRE, which is smaller.

      Java Web Start does appear to be a new (and nicely implementated) instance of the same idea that Marimba had working in 1996, though.

  14. Lisp-ish option with GUI by alienmole · · Score: 2
    Could you elaborate on the Lisp-ish options with GUI's that you claim are available.

    Check out DrScheme from the PLT group. It's "an interactive, integrated, graphical programming environment for the Scheme programming language". It's cross-platform, released under the GPL, and includes cross-platform GUI support (*nix & Windows), a comprehensive help system, a bunch of useful libraries for graphics, Internet, COM access on Windows, etc., as well as some useful applications like a web server, web browser, Gtk interface, a graphical IMAP mail client, and some graphical games.

    The underlying Scheme implementation, known as MzScheme, includes a fast interpreter as well as a compiler that can compile to bytecode or native code.

    1. Re:Lisp-ish option with GUI by RevAaron · · Score: 2
      STk is another nice one. Not as popular as DrScheme, but has a really nice integration with Tk. Comes with a class browser, an editor, html browser, and a GUI builder.

      If only the common lisp world had something to accessible and free.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  15. Re:Bold claims by drnomad · · Score: 2
    I thought about this as well. In my perception, the success of the Rebol concept depends on two basic developments:

    1. Open availability, through independance of the software maker

    2. Structure and discipline concepts in order to avoid a mess.


    Although (point 1), there is a group developing Rebol as open source (OSCAR), the last time I checked, there was still no source code available. So I started my own implementation, btw absolutely not available yet because I don't have that much to offer right now.


    Rebol's best idea is the distributed computing model. They actually state that the good ol' webbrowser is a load of crap, and basically unsuitable for the things we want to do. They have a point there, because as a prof web developer, I can't believe the efforts I have to make, just to create something simple. IMHO a web browser is only suitable for text and images. I see the plugins merely as patches, fixing the shortcomings of the browser.


    So Rebol says - the browser 's gotta go, and we'll introduce a new internet application environment; a successor to the webbrowser.


    Besides that, Rebol is a very good language for scientific research in the investigation of polymorphical algorithms; ie an algorithm is an idea, and code is an implementation of this idea. The keyword reprogramming feature of Rebol gives flexible tools to understand the idea of an algortihm better, perhaps that one implementation could serve multiple uses. This is ofcourse not the same as a reusable object, I'm talking about a reusable algorithm.


    Still, I think Rebol is kinda cool!

  16. What Larry Wall Thinks by PlaysWithMatches · · Score: 2, Informative

    Love or hate Perl, Larry Wall has some interesting thoughts and comments on REBOL.

    --

    Mozilla's a nice operating system, but it needs a better browser.
  17. Re:Aha! by znu · · Score: 2

    There's a Mac OS version now, but the OS X version is "Pending". That's a little annoying. Still, maybe I'll plat around with the core stuff.

    --
    This space unintentionally left unblank.
  18. Re:Carl Sassenrath is a hero to us Amiga users. by geomcbay · · Score: 3, Insightful

    We really need a SPAM moderation, perhaps with a -2 attached to it. I'm really fucking sick of seeing your god-damn ads for your Artificial Minds project. You try to link the stupid thing to any and every topic posted to Slashdot.

    After the second such post you're just alienating Slashdot readers that might otherwise have been interested in your project.

    For those who don't know what I'm talking about, look at Mentifex's user info:

    http://slashdot.org/~Mentifex/

    Click some of the links...Notice how every post he's made is an ad for his project, usually completely off-topic for the Slashdot article, but linked in with silly connections (ie. in an XP related post 'Artificial Minds (link included) will not use XP!').

    Anyway, to keep THIS post somewhat on-topic, REBOL is a fairly nice language but it will never catch on with the silly greedy-licencing model they have. When is the last time a language that you had to pay royalties to use caught on? (Hint: Never).

  19. "Reblets" look well suited for wireless handhelds by jgaynor · · Score: 2

    check out the Rebol page of existing apps - all pretty small.

    They have a desktop/OS app that looks cool but doesnt make much monetary sense to me on a desktop unless you custom design a cheap thin client to run it and only it on.

    What does make sense though - is running these little apps on a wireless handheld. Build the Rebol assembler into an ASIC so it runs native code quickly - and let the application server do all the work.

    Rebol looks cool but just like most java apps on the desktop are passed over for native code, I dont see this flying. Perhaps if they sought to fill the niche market of weak wireless devices theyd have more success. In either case good luck to them - I havent had the chance to do any cool machine level programming like this since I lost my TI and its various shells.

  20. Why do it the hard way? by sheldon · · Score: 2

    Ok, here's an example of someone who doesn't really understand what "really sweet" means.

    I found this off the internet, it's a way to use a .Net web service to grab the stock market closes from yahoo.com.

    http://www.dotnet101.com/articles/art031_StockQu ot esWebSvc.asp

    It's kind of an interesting kludge. You place a .Net webservice in between the client and the yahoo stock pages.

    Better yet would simply be if Yahoo(or whoever) provided a web service you could instantiate, pass it the stock you want a quote on and it would return a value. Makes life tremendously simpler and no need for about half the code that was written in the above article.

    Enjoy

  21. Java is compiled natively by mj6798 · · Score: 2
    I don't know about .NET, but Java is compiled into bytecode, which is run on a natively compiled byetcode interpreter. Just like Perl, Python, Ruby, etc. are. This has been a major piece of Java FUD for the longest time - it pretends to be a compiled language, because it doesn't want to be seen as "just another scripting language".

    Sorry, but you don't understand how Java implementations work. When you run "javac", you produce byte code. That byte code gets turned into native code before being executed when it is part of a performance critical section--the native code compiler is part of the Java runtime.

    Python, Perl, or Ruby do not have anything comparable: they are implemented as strict byte code interpreters (except for Jython, which piggy-backs on the Java runtime). In fact, the Java approach is better than the kind of batch compilation found in C/C++ because it allows for a lot more optimizations. For example, the JDK inlines code among dynamically loaded components.

    As for the libraries and penetration available for Java, do you not think that if Sun had developed and spend untold millions marketing Perl or Python that they would not be in the same position?

    Python or Perl are no replacement for Java. With a few exceptions, Java code runs at speeds pretty close to C/C++ under the JDK. Python and Perl implementations are orders of magnitude slower and nobody has figured out how to compile them into efficient code.

    1. Re:Java is compiled natively by p3d0 · · Score: 2
      In fact, the Java approach is better than the kind of batch compilation found in C/C++ because it allows for a lot more optimizations.
      I wouldn't go that far. There are several things impeding Java optimization:
      1. It occurs at runtime. With C/C++, you have unlimited time to optimize the code. With Java, time spent optimizing counts against program execution time.
      2. Java bytecodes use a stack-based paradigm, which is notoriously hard to optimize. Most C compilers have a register-based paradigm, whose optimization is well-understood (if perhaps not yet perfected).
      3. Java programs load classes dynamically. Every new class has the potential to clobber any assumptions you made in order to achieve any agressive dynamic optimizations. In the worst case, a Java runtime has to have all the functionality of "make" so it can compute what has changed and re-compile it as necessary.
      Dynamic optimization has a lot of promise, but with the state of technology today, it's hard to argue that C isn't faster than Java.
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    2. Re:Java is compiled natively by Ian+Bicking · · Score: 2
      The other scripting languages do something Java does not do well -- they integrate with compiled C modules and libraries. If you want speed in those languages, you write critical inner loops in C. It's not incredibly easy, but with OSS someone else will often do it, and that speed-critical piece of code will be written in reusable fashion.

      AFAIK, this is simply not possible with Java. You can potential create some sort of network service written in a fast language, and access that through Java (as with a COM/CORBA object), but that doesn't offer the level of integration and speed that the other scripting languages have with their more modest integration.

    3. Re:Java is compiled natively by mj6798 · · Score: 2
      I wouldn't go that far. There are several things impeding Java optimization: 1. It occurs at runtime. With C/C++, you have unlimited time to optimize the code. With Java, time spent optimizing counts against program execution time.

      For any reasonably compute intensive task, compilation and optimization time is negligible. You can see that either by instrumenting a Java runtime. Or you can just look at where C/C++ compilers spend their time (a lot of reparsing of header files, as well as semantic checking and linking, none of which are incurred by Java compilers) and what fraction of the code of any real program really needs to be optimized.

      2. Java bytecodes use a stack-based paradigm, which is notoriously hard to optimize. Most C compilers have a register-based paradigm, whose optimization is well-understood (if perhaps not yet perfected).

      If the JVM supported general stack-based computations that would be true. However, the JVM prohibits general stack-based computations: it requires that the stack is in a "defined state" (in a certain sense) at each byte code. The upshot is that Java byte code is essentially just a binary postfix representation of the source code. Turning that into native code is no different from what the C compiler does. (In fact, the claims in the introduction to your JHP paper are wrong, precisely because Java does not use a general stack-based architecture.)

      3. Java programs load classes dynamically. Every new class has the potential to clobber any assumptions you made in order to achieve any agressive dynamic optimizations. In the worst case, a Java runtime has to have all the functionality of "make" so it can compute what has changed and re-compile it as necessary.

      Well, so what? The necessary dependency tracking is both trivial and fast. Furthermore, because of the way Java is designed (and unlike C), there are only very few important dynamic optimizations that dynamic loading can invalidate. Note that Java does not support class reloading in high performance code (it's supported only for debugging).

      Dynamic optimization has a lot of promise, but with the state of technology today, it's hard to argue that C isn't faster than Java.

      Dynamic optimization is completely up to the task of compiling Java as well as any C compiler compiles C code. Java pays a little bit of overhead for runtime safety (less than 20% by most estimates) and there are a few areas of Java where the language definition unnecessarily prohibits optimizations (this is being addressed). Except for those areas, Java as a language is pretty much as easy and efficiently compilable as C or C++. In fact, if anything, Java has additional opportunities for optimization because of its more limited pointer model. Dynamic optimization and (closely related) partial evaluation also have been understood for more than a decade, so this isn't exactly cutting edge.

      Of course, Java libraries are often pretty slow. But that's because many Java libraries are written with a lot (too much in many cases) generality and abstraction.

      Note, of course, that batch compilers for Java exist, but they generally perform no better than a good JIT these days.

    4. Re:Java is compiled natively by mj6798 · · Score: 2
      Java has a standardized C interface. Something like SWIG (swig.org) makes accessing it pretty trivial. Several vendors also make compilers that expose C++ classes directly as Java classes.

      The problem with mixed language programming like that is that C/C++ code is unsafe, and that the semantics of C/C++ code often differ wildly from the semantics of the HLL. For example, how do you extend a C++ class with Python code and pass an instance of that back to a C++ class?

      The point about Java is that it is a pretty "fast language" (i.e., its common implementations are fast). You can write reasonably efficient image processing or string handling code in Java if you put your mind to it. So there is generally no need to use C/C++ other than for interfacing to system services. As a result, you get more portability and more runtime safety.

    5. Re:Java is compiled natively by cnkeller · · Score: 2
      Sorry, but you don't understand how Java implementations work. When you run "javac", you produce byte code. That byte code gets turned into native code before being executed when it is part of a performance critical section--the native code compiler is part of the Java runtime.

      Are you sure you know how Java works? What you are describing is Just-In-Time Compilation and Hotspot'ing and it's not mandatory. Your better Java interpreters support this, not all of them do however and this isn't required by the spec (unless times have changed). Java is, in fact, compiled to byte code and may be further compiled into native code, pending your JRE choice.

      As far as performance goes; you must be the only one in the world seeing close to C/C++ performance. Even Sun has admitted that Java will probably never live up the hype of replacing C/C++ for speed intensive applications. If you can get that kind of performance on most of your code, I've got a seven figure a year job waiting for you as a lead Java engineer.

      --

      there are no stupid questions, but there are a lot of inquisitive idiots

    6. Re:Java is compiled natively by mj6798 · · Score: 2

      Good data structure libraries in C/C++ are useful. The problem is that if you call any code not under your control, all bets are off: it can trash any data structure anywhere, and you won't even know it. With Java, you are guaranteed that any code you call (even dynamically loaded code), your own or someone else's, it will not trash data that the language specifies it doesn't have access to. That is one of the reasons why Java is so much better for component-based software development than C/C++.

  22. Missing the point by xmedar · · Score: 3, Insightful

    It doesnt matter how good the language is, it has to have support, qualified developers (pref. with certification), people running courses for it, and get written up in some mags like Wired that management types are going to read if it is going to become something that mainstream software shops use. Personally I don't see the advantage over say using Java or even Mozilla as a GUI (using XUL) and Perl as a scripting language for this sort of thing.

    --
    Any sufficiently advanced man is indistinguishable from God
  23. More detail... by alienmole · · Score: 3, Interesting
    Close, but no cigar. The first Lisp interpreter was written in Lisp. Before that, humans used to take Lisp code and convert it into machine code. Then McCarthy put out an exercise for his students to write a Lisp interpreter in Lisp itself. Then, one of the "human compilers" compiled this piece of Lisp code, and voila! You now had the ability to compile Lisp code.

    The Lisp-like language I was referring to is the one listed on this page - look for the heading "The First Known Interpreter". This language is not Lisp as we know it - it used McCarthy's M-expression syntax - and syntactically, it is not the S-expression language that the first interpreter was capable of interpreting. Hence my statement that "the very first computer language interpreter ever was a Lisp interpreter, written in a Lisp-like language".

    In "The implementation of Lisp" by McCarthy himself, he describes the following:

    I decided to write a paper describing LISP both as a programming language and as a formalism for doing recursive function theory. The paper was "Recursive functions of symbolic expressions and their computation by machine, part I".
    ...
    Another way to show that LISP was neater than Turing machines was to write a universal LISP function and show that it is briefer and more comprehensible than the description of a universal Turing machine. This was the LISP function eval[e,a], ...
    ...
    S.R. Russell noticed that eval could serve as an interpreter for LISP, promptly hand coded it, and we now had a programming language with an interpreter.
    This was why I said McCarthy wrote the interpreter as something of a mathematical exercise. He was writing his "universal Lisp function" to illustrate a point in a paper, and didn't even consider that he was writing an interpreter - apparently Steve Russell noticed that. So that's why I said it was written as "something of a mathematical exercise".

    Do I get that cigar now?

  24. IM in 7K?!? IM in under 1K!!! by strredwolf · · Score: 2

    Instant messaging in just 7K? Yeah. I just did it in Perl. Client and server each in under 1000 bytes, basic messaging.

    I betcha if I throw in a GUI via Perl/Tk it'll bloat to 7k. Maybe.

    --

    --
    # Canmephians for a better Linux Kernel
    $Stalag99{"URL"}="http://stalag99.net";
    1. Re:IM in 7K?!? IM in under 1K!!! by strredwolf · · Score: 2
      Oh, here's a short listing to prove it:

      tygris@tygris:~/perlIM$ ls -l
      total 24
      -rw-r--r-- 1 tygris users 152 Oct 28 21:44 pim
      -rw-r--r-- 1 tygris users 994 Oct 28 21:54 pim.pl
      -rw-r--r-- 1 tygris users 675 Oct 28 21:25 pim.pl~
      -rw-r--r-- 1 tygris users 870 Oct 28 22:18 pimd.pl
      -rw-r--r-- 1 tygris users 994 Oct 28 21:55 pimd.pl~
      -rw-r--r-- 1 tygris users 142 Oct 28 21:25 pim~

      --

      --
      # Canmephians for a better Linux Kernel
      $Stalag99{"URL"}="http://stalag99.net";
  25. Why this stuff sucks by MSBob · · Score: 3, Interesting

    I'm running eight different rebol apps on my system all at the same time. Each weighs in at between 6 and 12 MBytes. That's waay too much for such primitive apps (like that calculator using up 6,804K ). With such memory consumption this thing just eats memory like peanuts more so than Java. That's why I find Java unacceptable and that's why I think this stuff is crap too.

    --
    Your pizza just the way you ought to have it.
  26. Why not Perl/Tk by rjamestaylor · · Score: 2

    Interesting point - why not just do this with Perl/Tk (for the interface) and Perl on the server?

    --
    -- @rjamestaylor on Ello
  27. 25 lines? by jcr · · Score: 2

    If it weren't for rebol I wouldn't have a 25 line script to grab the stock market closes every day from yahoo.com.

    What you describe would take about two lines of Cocoa/Objective-C code. NSString has an -initWithContentsOfURL: method, and searching for substrings is trivial with NSScanner.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  28. rebol linux fonts by DGolden · · Score: 2

    My main problem with REBOL is pretty stupid, but annoying enough to stop me using it - it's Linux font support sucks!

    They hadn't updated it to use the XRENDER/Xft framework for anti-aliased fonts when I last used it, and it completely ignores that fact that my X Server is running a 120dpi resolution, so all the GUI elements are nearly unreadable.

    It also seems to use the first font it comes across - seeing as I have a lot of odd special-effect fonts installed, the GUI ends up looking even stupider...

    --
    Choice of masters is not freedom.
  29. forever a circular argument. by Ukab+the+Great · · Score: 2

    Say what you want, but a language with "forever" as a keyword seems pretty darn circular to me.

  30. Re:Bold claims by angel'o'sphere · · Score: 2, Informative

    Well,

    Rebol is in the news for about two years now ...

    It was mentined in BYTE magazine adn Dr. Jobbs, years ago.

    Its your fault if you have not heared ybout it not theirs ...

    I only did not use it because the language is YANS language. (Yet Another New Syntax).

    The same results would have been possible with calling the object creation operator: new, like in C++/JAVA/Smaltalk and other languages. They name it "make".

    And that goes on ....

    OTOH nice inventions (but also not realy necessary) like variabel access of objects via the slash (like in ordinary unix path/file names).

    Instead the C++/JAVA style for accessing account.balance they use account/balance.

    Rebol gives you first class citizens for all kinds of web and natural datatypes, like times (10:55 is just a time object), dates (2001-10-28 is a literal for a date object). Basicly all net protocolls are supported like in curl.

    Well, as I said: unfortunatly they invented yet another damn syntax ... I would have loved to have this either in C++ or in JAVA integrated :-)

    Regards,
    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  31. The language isn't the point. by Ukab+the+Great · · Score: 2

    While Rebol isn't exactly the most desirable programming language, the Rebol desktop has a well designed UI that is seamless and not half as clunky as your typical web browser. We keep hearing about all these people trying to market services and internet applications, and we hear about all these open source application servers, but when you get down to it, it's just substituting one backend with another. They all boil down to the same front end with the same impoverished user interaction capabilities we've had for the past 7 years.

    If you can't help considering the Rebol Desktop's merits apart from Rebol's shortcomings as a "power-programmer" language, consider that a population of non-programmer internet users whose tastes and browsing activities are expanding might find a very simple scripting language that enables them to easily do a lot of useful stuff with web pages and e-mail quite useful.

  32. All this angst! by Junks+Jerzey · · Score: 4, Interesting

    Bashing languages with the usual "But you can also do that in language X!" comments and general defensive put-downs is misguided. Of course you can do the same thing in any language; that's a fundamental principle of computer science. The reason we have a variety of languages is because some languages make things easier than others.

    In Perl, munging through text files is a snap. The syntax is succint, and regular expressions are supported at the language level. But that doesn't mean Perl is good for everything, though. Regular expressions don't scale up to what you'd need to write a full BNF parser in Perl. And, sure, you can hook to http and ftp libraries, but they aren't integrated into the language in the same way that the "file exists?" operator is.

    REBOL has several strengths. One is that its parsing features effectively *are* BNF, so you can write complex parsers for mini-languages with great ease, and without resorting to lex, yacc, and such. The other advantage is that having language-level support for internet protocols is very convenient. Sure, you can get at them through a Perl module, but if you argue that then you have to ask why regular expressions shouldn't be a separate module as well.

    All this blind bashing of languages is tiring. It's exactly like the kiddies who bash whatever game console they didn't get for Christmas.