Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Windows GUI apps: Rebol/SDK vs. Visual C++ 2003

From: greggirwin:mindspring at: 25-Jan-2003 17:11

Hi Jose, (This ended up getting rather long-winded. My apologies. -G) j> Imposible to do anything where performance matters. I'd disagree with the use of "impossible" and "anything". Yes, there are certainly things where REBOL is not up to the task, performance-wise, but there are plenty of tasks where it is more than up to the task as well. I know that my LCS implementation for creating DIFFs is *hideously* slow in REBOL but I think that's the only thing I have (non-graphics wise) that really sucks performance wise. j> Any serious/complex (in terms of functionality) Windows app is written in C++. You have to know that this statement is highly contestable. :) j> C++ is a lot more than OO. There are many new concepts: STL, Generic j> Programming, Design Patterns, Generic Patterns to build reusable libraries, ... Yes, but those concepts don't apply only to C++. Large parts of the what the STL covers are already included in REBOL and other lanaguages. C++ and REBOL are just very different languages, with very different goals. j> Do not want to critizice but haven't found any new concept in Rebol that didn't j> exist in OO or functional languages . Very few new languages, or any software for that matter, contain something that is completely original. Icon has generators and Eiffel has Assertions as part of their fundamental design, or core tenet, but can you say that those are new concepts? What gives a language its personality, or flavor, is how its designer(s) take what they've learned from experience (their own or others) and mix them with the vision they have. The end result, how those concepts are applied and how they fit together, is what largely determines whether we like a language or not. That said, I'd like it if others here would contribute - just for my edification - their thoughts about some of the important concepts REBOL is based on, and what other languages share those traits; either here, or mail me directly if you want. Consider this an aside to the main message. :) Assembly language is very strong on the idea of code/data duality. What other high level languages do it? REBOL is its own meta language. What other languages do that? REBOL has a large number of native datatypes, and the concept pseudo types (e.g. any-block!). Others? Forth was sometimes called "a language construction kit" as much as a language. REBOL elevates that concept explicitly with dialects. Do any other languages? Other things you can think of? OK, back to the message... j> On the GUI side there might be lots of innovation but I don't know ! Yes and no for me. If we look at VID, we can say that it does some things in neat ways, has its own share of warts, and does allow for some new ways of looking at things. OTOH, if we look at VID as an *example*, we might say that REBOL is innovative in how it supports the idea of building new systems for describing user interfaces which are tightly integrated with the core language. j> I first read Carl's statement that OO wasn't it, and j> messaging/dialects was a better paradigm, but really, j> now, I think that you can use a tool like OO pccts, j> http://www.antlr.org, and build any parser (for any j> grammar) you want and for serious parsing I wouldn't j> bet on Rebol's parse BNF. There is a lot more than j> that and if you want to find a solution to an j> important problem you have to dig deeper. Sure, you can build a parser in just about any language. There are lots of toolkits out there for various languages to do so. It's the approach - the core view of how you build parsers - that's different in REBOL, and why *I* like it *so* much more than other approaches. It has its limits of course, but within those limits it is enormously powerful IMO. I'm not sure what you mean by "serious" parsing though. j> You can think using a piece of paper. The language is implementation. Agreed; somewhat. :) I do lots of my design work on paper but I have to translate those designs into working applications. Even if I'm working on a design for which I have no idea what the implemenation language will be, I will think in terms of *some* language - be it natural, artificial, graphical, or what-have-you. If I'm working on a design and I know what language I'm going to use to implement it, that will influence the design heavily; I'm designing *for that language* after all. If I speak only Basque, and it doesn't have any words to support the concept of nuclear physics, it's going to be much harder to talk about that subject in Basque. A programming language serves two related purposes: it provides a vehiclce for the programmer to specify actions to be executed, and it provides a set of concepts for the programmer to use when thinking about what can be done...the second aspect ideally requires a language that is 'close to the problem to be solved' so that the concepts of a solution can be expressed directly and concisely... The language provides the programmer with a set of conceptual tools. --Bjarnre Stroustrup I don't mean to use that as an argument for REBOL, or against C++, but it's something I greatly agree with completely and expresses my feelings very well. Note also that I think we're still using REBOL very much like we would any other language, and as that changes, the differences - what makes it special - will become more apparent. j> You're one of the top guys here so it doesn't sound good to hear j> "when I really start to get it". Sorry. I post a lot, and answer the easy questions when I can, but I'm still just a babe in the woods with REBOL. For me, picking up the basic syntax of a language isn't the hard part, it's learning how to use it effectively that's the hard part. For some languages that isn't a problem because you don't have many ways to express things or solve problems. With REBOL, I often see huge gains when I refactor things, or attack problems in a different way. "Getting it" applies to individual solutions and also letting go of old habits from other languages. My first cut at a problem, even if only mentally, still often leans towards the obvious "brute force" approach I might need to use elsewhere where a much more elegant REBOL solution will eventually find its way out. I don't want to sound all soft and fuzzy about this stuff. I take my software development very seriously. j> I don't believe that, the more you "talk" in a language the better j> you communicate but you rarely do great things suddenly because you j> use that language vs other .. Yes, but talking in a language is different than thinking about how to express yourself in a language. Imagine trying to write poetry, or imagery-laden prose, in a language you're not deeply fluent in, even if you can communicate in that language. Thanks for posting. I don't mean to deter you from C++ in any way. Please don't take my post as criticism in any way; take it to mean that I care enough to think hard about why *I'm* using REBOL. :) -- Gregg