Need help for justification of using REBOL as dev language
[1/22] from: coussement::c::itc::mil::be at: 10-Apr-2001 10:38
Brett:
Sorry for this: I had to put the details in my request in order to make it
more clear ;-(
Basically, on each test station a local REBOL page server respond to
requests emitted by html page and generate and send new html pages.
Those generated html pages are used as the GUI, and are composed of
DHTML-Java-Javascript. Their generation is based on html templates in which
data are inserted. Those data are contained in a - primitive but functional
- REBOL OODB. Examples of data are a question and the possible multiple
choice answers to it, or the presence and layout of a time slider ...
When a test session has been executed, all tests are corrected by a REBOL
app, reports are generated using also DHTML-Java-Javascript pages templates
and the answers and results are inserted into a SQL Server DB for archive
and longitudinal studies use.
In terms of volume, based on what we can estimate until now, some 8000
persons/year should use the system, which should correspond to about
4,000,000 pages generated / year.
Do not hesitate to ask for more details, if you need it.
Thanks for answering !
Regards,
chr==
[2/22] from: athena:pop3-dfw:myfirstlink at: 10-Apr-2001 6:41
I believe you already have the reasons identified in this email. Such
choices are rarely based only upon technical reasons. You have
identified cost, schedule demands and although "I feel good when I use
it" may not fly, implementer's productivity and learning curve issues
are valid. You may also want to identify the cost required for any of
the other implementations in terms of software components, hardware
resources, etc. I am not aware of any formal measure for a language's
level of complexity, but Java has thousands of classes in its API's and
the real challenge is learning how these operate. If the project is
already a success, particularly with a very short time to implement,
that can be a justification in itself.
I too work for a military agency and I have empathy for you. The
military mindset doesn't deal well with grey areas. They like black and
white answers.
There is always: It's easier to ask forgiveness than permission.
Harold Grovesteen
Brett Handley wrote:
[3/22] from: jeff:rebol at: 10-Apr-2001 6:02
Howdy, Coussement:
A comparison table would be good. Here's are two questions
that could provide some rows of data for your table:
How large (in kilobytes) has your REBOL project been?
How large (rougly) would it have been if implemented in C,
Java, C++, etc... ?
-jeff
[4/22] from: ryanc:iesco-dms at: 10-Apr-2001 12:19
Hi, I wrote down several points I thought were important. My points generally
have to do with cost savings--a well proven sales tactic. This doc is not well
researched, or worded, but maybe we can build off it, or rewrite it, to produce
something a bit more professional for those who need it in the future. I Like
the idea of a comparison table, maybe this could be shrunk and altered into that
format?
--Ryan
************************************
* Self Documenting / Easy To Read *
Most REBOL functions use obvious words like "loop" or "read". Created words
can have names like "branch" or "get-name-rank-serial-number". Objects are also
very readable, "country/state/city/name". Assignments use the colon instead of
the equal, so they are never confused with comparison. This lends itself to
very readable code, lessening the need to painstakingly add remarks.
* Less Code *
REBOL functions are more oriented towards todays programming tasks. Many
normally complicated tasks can be done quickly in a single line of code, such
as:
>> send [bob--foo--com] "Its ready!"
>> write %file.txt "I am writing to a file!"
>> web-page: read http://www.foo.com/index.html
* Flexibility and Modularity *
REBOL's flexible and modular nature makes it simpler for programmers to
cooperate. Program interfaces are more obvious for a given task. For instance,
if I needed a programmer to write a function to parse a given web site and
return the linked sites, that would be all that was needed to be said. Even a
junior REBOL programmer would know to write a function that accepts a URL and
returns a series of URL's. In most other languages there would have to be a
discussion about what the URL would look like, how it is passed, as well as even
further considerations regarding the list that is returned.
* Excellent Debugging Capability *
Since REBOL can operate as a console, different parts of a program can be
debugged manually. Probes can be used to report values anywhere. Its self
documentation helps out alot too. REBOL programs are often modular, reducing
the search area for a bug. The program is often many lines shorter than in other
languages, therefore there are even fewer lines to search through when
attempting to locate a bug.
* Easy To Understand *
Since REBOL typically uses fewer lines of code, is self documenting, and easy to
read, it in turn is generally easier to comprehend the program. Saving a few
lines of code here and there may not sound like much, but even a small
difference can help significantly. Much like how it is so much easier to
remember a 8 digit number versus a 11 digit number. When a programmer gets
lost
in thier program, their productivity stops. The flexible and modular
archetecture of a REBOL program also helps the programmer keep his bearing as
well by allowing him/her to devide the program in understandable chunks.
* Faster Development *
While all the prior points save money on thier own right, they also add together
cumulatively greately reducing the time to develop a particular software
product.
* Multi-Platform *
Operating platforms come and go. Unix, Apple, OS/2, Microsoft, and it appears
Linux is next, but there are many other high quality operating systems, more
than ever before. Therefore it is very wise to develop using a cross platform
solution to extend the lifetime of a software solution if need be. REBOL runs
on 42 platforms with more on the way. No porting is typically required!
* Well Supported *
Unlike some free languages, REBOL is kept up by a fulltime staff minimizing
bugs.
* Easy To Learn *
What other languages can you learn to send an email in a minute? Most tasks can
be learned extremely quickly.
* Free *
Best of all Core is free and you can use any text editor to develop it. Saves
you money before you even start.
* COST SAVINGS *
All the points lists here contibute to an overall cost savings by using REBOL.
[5/22] from: gjones05:mail:orion at: 10-Apr-2001 16:55
From: "Ryan Cole"
> Hi, I wrote down several points I thought were important. My points
generally
> have to do with cost savings--a well proven sales tactic. This doc is not
well
> researched, or worded, but maybe we can build off it, or rewrite it, to
produce
> something a bit more professional for those who need it in the future. I
Like
> the idea of a comparison table, maybe this could be shrunk and altered
into that
> format?
>
> --Ryan
<major snip>
Nice job, Ryan.
I would add a few additional points somewhere (if not already mentioned),
including:
- scripting languages avoid the sometimes lengthy compile, link then debug
cycle, allowing changes to be made more easily (as opposed to Java)
- JavaScript is closely tied to browser or server, whereas, Rebol could be
refactored and extended beyond browser technology to its own dedicated and
*secure* channel if/when needed.
- ability to great a dialect that is particular to the problem domain,
allowing even faster prototyping and development in the future.
John Ousterhout (original creator of Tcl/Tk) wrote a great article (for IEEE
Computer, 1998) on the use of scripting for the 21st century. There are
many great arguments embedded in that document (it's been a couple of years
since I have read it so I won't try to paraphrase it).
http://dev.scriptics.com/people/john.ousterhout/scripting.html
Good luck, Christophe.
--Scott Jones
[6/22] from: ryanc:iesco-dms at: 10-Apr-2001 15:41
Thanks Scott,
that is an interesting doc, I will have to read it more thoroughly sometime.
Some good references. I like the one "Programmers can write roughly the same
number of lines of code per year regardless of language" --B. Boehm, Software
Engineering Economics, Prentice-Hall, ISBN 0-138-22122-7, 1981.
--Ryan
GS Jones wrote:
[7/22] from: coussement:c:itc:mil:be at: 10-Apr-2001 9:37
Hi list:
As already mentioned on this list, the whole psychotechnical assessment
system of the Belgian Armed Forces is running REBOL...
Well, I think personally it was the best choice I ever made as project
manager: REBOL is stable, ergonomical, easy to learn and use, has lot of
possibilities for being used to access ODBC and external libs, ... and I
feel good when I use it !
But the choice of REBOL was a personal choice, not an Armed Forces standard:
it was in first instances justified by the fact the project had to be
operational in less than a few month... So I had no time for prospection.
Now the project is going further and the code is getting stable, I feel the
time is coming some high-ranked folks will ask me to justify my choices, and
try to impose some standards like Java of PowerBuilder ;-(
Well here is my request: there are lots of people - and gurus - on this
list, who are coming from different developing universes - like C, Lisp,
Java ... - and have discover the power of REBOL ... Please help me find
straight and technical args I could use to justify the use of REBOL. Even
language comparison tables should be useful !
Perhaps we could create together a new standard for the Belgian Armed Forces
;-))
Thanks in advance,
chr==
[8/22] from: brett:codeconscious at: 10-Apr-2001 18:09
Hi,
Can you remind us of the structure of your solution?
For example, I seem to recall that you used HTML as a GUI - is this right?
Brett
----- Original Message -----
From: "CRS - Psy Sel/SPO, COUSSEMENT Christophe, CPN"
<[COUSSEMENT--C--ITC--mil--be]>
[9/22] from: brett:codeconscious at: 11-Apr-2001 10:42
As I see it you would need to show your architectural choices (probably not
language specific), and why you choose this one. Then justify the various
technological choices made to create this architecture.
The Architecture
architectural piece -> technological choice
* Ultimate Storage -> Relational Database
Surely no problems there.
* GUI -> DHTML/Java/Javascript
Given the combo, you must have already had some decent experience with
this so I'm guessing this is not a problem for you to justify.
* Page Generation / Local Dedicated Server -> Rebol/Custom Scripting
You choose a local page generation scheme over a central server. Network
issues, response times, etc.
ASP would have been a nightmare on each PC...
You could have written Java to do the page generation but you might have
spent half your budgetted time on networking
instead of writing the GUI....
* Test Scoring -> Rebol/Custom Scripting
Anything probably would have done the job, but I'm guessing you would
have a specific data model for the questions and answers. I'm guessing the
model(s) would be quite simple in Rebol but would have taken a while in
other languages. Certainly Rebol would have been easier to integrate with
the Page Generation Choice. Possibly you lumped this in with the page
generation because you needed fine control over the GUI output.....
Etc.
So what about Powerbuilder? Again depends on architecture. Three/n tier:
complexity of machines and communications, administration not to mention
lots of programming, a sophisticated layered model and expense. Two tier:
Networking issues possibly, rigidity of the solution - cycle times with
compiling / distribution.
Java similar issues.
Your solution probably can run without a central machine. If you needed to
achieve that with Powerbuilder or Java, what would you haved used for your
local data store? Do you have such a local store available. If not how long
would it have taken you to build one or buy one and learn it?
With these languages it comes down to already having a framework suitable to
the task. If not, then you would need to build it. Which might have overrun
your budget.
The weak point of Rebol is the size of the developer population available to
you (probably just you :) ). So you would need to hype up how fantastic
Rebol was in the various uses you made of it in this project, why it
succeeded so well, and how those qualities could be transferred to other
projects. Rather than fighting for survival, consider how you could make a
case for extra resources devoted to using Rebol to make it a new standard
(perhaps for specific projects to keep everyone comfortable).
You may have already given thought to how you could make this system better.
For example does your local rebol script make a direct connection to the
sqlserver - requiring Sql client on the test pc or do you emit something
like an XML message containing the results that gets posted to a central
collection point for import into the sql server? [I'm not saying which is
better just generating ideas.]
Hope it helps.
Brett.
[10/22] from: coussement:c:itc:mil:be at: 11-Apr-2001 14:55
Hi list:
I'm very grateful to all for the arguments provided as answer to my request.
It will help me a lot !!!
I particularly liked the analysis of Ryan and Brett. I have found many args
in the J. K. Ousterhout's article too:
http://dev.scriptics.com/people/john.ousterhout/scripting.html
About this article: a very interesting comparison is given by the figure 1 -
level/typing -
Has anybody any idea where to situate REBOL on the graph ? I assume it
should be similar to Tcl/Perl ?
Perhaps there are any folk at RT who could tell me what the range of
instructions/statement for REBOL is ?
Great too are the code comparison Tcl - Java - C++ . This example is easy to
translate in REBOL and provides some difficult to refute arg about the
compacity of REBOL.
I just don't fully agree with the author's thought about OO programming, but
that's not the point right here - perhaps another time ...
Well I'll get to work and write my justification now :-( ... when duty calls
...
Thanks again to all for the great job !!!
CU,
chr==
[11/22] from: gjones05:mail:orion at: 11-Apr-2001 9:03
From: "CRS - Psy Sel/SPO, COUSSEMENT Christophe, CPN"
<snip>
> I have found many args
> in the J. K. Ousterhout's article too:
>
> http://dev.scriptics.com/people/john.ousterhout/scripting.html
>
> About this article: a very interesting comparison is given by the figure
1 -
> level/typing -
> Has anybody any idea where to situate REBOL on the graph ? I assume it
> should be similar to Tcl/Perl ?
> Perhaps there are any folk at RT who could tell me what the range of
> instructions/statement for REBOL is ?
I would place REBOL around the C, C++ range on the x coordinate, and
somewhat higher than Tcl on the y coordinate based on my knowledge (and
opinion ;). In that everything starts as a string in Tcl code (the bytecode
compiler apparently makes some assumptions about type in order to improve
performance), it is considered fairly typeless. C is typed on the face, but
allows type coersion/conversion almost too easily (accounting for the ease
of making errors). What I know/recall of Java is that it is strictly typed,
and in fact sets fairly tight constraints on type conversions.
As far as the amount of work done by any given statement, REBOL is clearly
more "efficient" than Visual BASIC and usually more efficient than Tcl (by a
guestimated
factor of 25 to 50%). Some of the efficiency lies in REBOL
being more "functional" in that more commands can be strung together and
thereby avoiding the explicit assignments. And other portions of the gain
are in the inclusion of clean abstractions of a number of protocols,
including file and http manipulations.
Glad the reference was helpful.
--Scott Jones
[12/22] from: carl:rebol at: 11-Apr-2001 7:42
I would agree with your placement in X and Y. -Carl
[13/22] from: coussement:c:itc:mil:be at: 12-Apr-2001 9:34
> -----Original Message-----
> From: GS Jones [SMTP:[gjones05--mail--orion--org]]
<<quoted lines omitted: 37>>
> Glad the reference was helpful.
> --Scott Jones
[
Thanks for your estimation, I will add it to my document !
Regards,
chr==
]
[14/22] from: coussement:c:itc:mil:be at: 10-Apr-2001 14:17
> -----Original Message-----
> From: Harold Grovesteen [SMTP:[athena--pop3-dfw--myfirstlink--net]]
<<quoted lines omitted: 13>>
> already a success, particularly with a very short time to implement,
> that can be a justification in itself.
[Good point Harold! But straight thinking in terms of productivity
is mostly not an issue within a big administration. Too bad :-(( ]
> I too work for a military agency and I have empathy for you.
[It feels good knowing I'm not alone ;-) ]
> The
> military mindset doesn't deal well with grey areas. They like black and
> white answers.
>
> There is always: It's easier to ask forgiveness than permission.
>
> Harold Grovesteen
[Thanks for your thought !
Regards,
chr==
]
[15/22] from: athena:pop3-dfw:myfirstlink at: 14-Apr-2001 12:46
I am confused by the placement of REBOL on the Y coordinate. If REBOL
is "more efficient" than TCL or Visual BASIC would not greater
efficiency place it lower on the Y axis, say between Visual BASIC and
C/C++/Java? Would not placing it higher than Tcl imply it takes more of
the system to do the same thing rather than less?
Harold Grovesteen
Carl Sassenrath wrote:
[16/22] from: gjones05:mail:orion at: 15-Apr-2001 8:54
From: "Harold Grovesteen"
> I am confused by the placement of REBOL on the Y coordinate. If REBOL
> is "more efficient" than TCL or Visual BASIC would not greater
> efficiency place it lower on the Y axis, say between Visual BASIC and
> C/C++/Java? Would not placing it higher than Tcl imply it takes more of
> the system to do the same thing rather than less?
>
> Harold Grovesteen
I guess the language may be imprecise, in a Lewis Carol sort of way. What I
recall about the article was that Dr. Ousterhout was characterizing
languages based on how much work is done by any single statement (my words,
not his). Without having reread the article, it seems as though he
guestimated that a C statement does about 5 lines worth of Assembly
language, and that a high level scripting language statement may encapsulate
2 to 10 times what a C statement does. It seems as though he thought that
Tcl was about 5 to 10 times as efficient as C in this schema. My guestimate
based on using both was that REBOL was more efficient (in this specific
regard) than Tcl, hence my suggestion on the Y scale (which was logarithmic,
if I recall).
Is this clearer?
Regards,
--Scott Jones
[17/22] from: martin:middleton:speechworks at: 2-Jul-2001 9:24
Did a final version of the justification ever get published anywhere? I'd
be interested in seeing a copy.
- martin
[18/22] from: coussement:c:js:mil:be at: 2-Jul-2001 16:08
The version has not already been published, because I'm waiting for the
right moment to present it.
BTW, it only exists in French. Still interrested by the draft ?
chr==
[19/22] from: mario:cassani:icl at: 2-Jul-2001 14:33
> Did a final version of the justification ever get published
> anywhere? I'd
> be interested in seeing a copy.
>
> - martin
Me too!!! Today they told me I must learn M$ VirusBasic.
I am proud I don't know it and I hope not to change my status.
More datails about a full time REBOL programmer ad. appeared some days ago?
Mario
[20/22] from: martin:middleton:speechworks at: 2-Jul-2001 15:18
Sure, I'm game. Perhaps I persuade on of my co-workers to translate it for
me. If not, I'll consider it an intellectual challenge.
At 10:08 AM 07/02/2001, you wrote:
>The version has not already been published, because I'm waiting for the
>right moment to present it.
<<quoted lines omitted: 20>>
>[rebol-request--rebol--com] with "unsubscribe" in the
>subject, without the quotes.
- martin
[21/22] from: warp::reboot::ch at: 25-Sep-2001 8:04
Dear Christophe,
I've actually the very samme problem 8(
I would really appreciate if you could send me a copy ( french is ok)
as I have to demostrate to webobjects people that rebol is also a good
product.
thanks a lot 8)
Will Arp
[warp--rebooot--ch]
[22/22] from: hallvard:ystad:helpinhand at: 25-Sep-2001 8:30
I'd like a copy too, if I may. French is not only OK, it's brilliant.
~H
Du skrev (Tuesday 25.09.2001, kl. 08.04):
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted