Browsed by
Category: Software Development

Rebol – Internet Programming Language

Rebol – Internet Programming Language

REBOL is a proprietary scripting computing language…messaging language that is succinct, quick to learn, and almost heroically portable.

Rebol Home Page
Rebol overview
Rebol Links
Rebol Review
Rebol Review #2

From what I can tell, Rebol seems to be
a viable language for internet programming.
However, I don’t know that I could recommend it.

1. First there is the cost.  It costs money to develop for it and server versions of the software
costs thousands of dollars
2. You would be
committing to a platform that is dependent on the viability of a small company. 
Since it isn’t open source, the future of Rebol is in the hands of the company
behind it.
3. Though their may
be a vibrant community supporting it, it is not widespread.  Trying to hire for
Rebol support unless you are willing to work remotely, could be a challenge. 

4. Compared to other
tools/technologies, the documentation, sample code and support is not
large.
5. I don’t know any
significant programs/companies that use Rebol.
6. Most of the
articles I read on the web, especially those touting it, are 4 years
old.

An example of its
"power".  You can send an email with a command similar to:


send someone@email.com "The message."

Cool, a single
line of code to send an email. But that Rebol
command ‘send’ had to be written (in C I believe). That same function could have
been written in C and made available in a library and the syntax might look like this:

send("someone@email.com"The message.");

Pretty much the same
thing.  The fact it is "built-in" to the language, and makes the language "expressive", people will argue is a
wonderful thing, and it IS nice, but that argument is not sufficient to motivate me to learn a new programming paradigm..

delete[]

delete[]

In C++, you free memory that was allocated using the keyword new, with the keyword delete.  If you allocated an array using:

char* pDataChars = new char[100] ;
char* pDataObjs = new CString[100];

then you include brackets in the call to delete:

delete[] pDataChars;
delete[] pDataObjs;

If you wrote:

delete pDataChars;
delete pDataObjs;

the compiler would not complain but the results may or may not be reliable.

You should make it a habit of always matching up new[] with delete[] and your code will be more robust and portable.

So why the brackets?  As I understand it, when calling delete on a pointer, the compiler does not know whether is is a pointer to a single object or an array of those objects.  A pointer to an array of objects, after all, is the same as a pointer to the first item of that array.

The brackets serve as a "hint" to the compiler so that it knows the structure of the allocated block of memory.  A user should NOT think of delete as equivalent to free.  You should not assume anything about the implementation of new or the record structure on the heap of the allocated memory.

Update: Here are the details of a scalar/vector new/delete implementation

Brainless software developers

Brainless software developers

From my classic moronic programming files:

"Oh, that 100 byte character buffer in the function with the comment "Don’t remove this"?  I know it isn’t being used, but I put it there because without it, the program crashes"

SqlLite

SqlLite

SqlLite is looking very good.

Don Park posts about it.  And announces:

Upcoming PHP 5 will include and use SQLLite as its default database engine

Very positive testimonial
This PHP site loves it :

…SQLite is a godsend.  It provides a very intelligent file management and indexing system, coupled with a data abstraction interface – SQL.  I imagine SQLite to be used inplace of custom flatfile systems, and custom flatfile management.  Its a small, low-level library that manages optimizes and manages file access and manipulation.

Windows CE 5.0 Supports LockFileEx(). However:

There aren’t any Pocket PC devices shipping on Windows CE 5.0, so, at this point developers must develop against Windows Mobile 2003 and Windows Mobile 2003 Second Edition – both of which are based on Windows CE 4.2. Or was your question more of a "what’s new in Windows CE 5.0" ?

C++ Wrapper for SqlLite at CodeProject
SqlLite++
SqlLite for Windows CE

SqLite 3.0 released