[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[school-discuss] Re: good programming language for learning



Title: euphoria intro
http://www.rapideuphoria.com/hotnew.htm
What is Rapid Deployment Software'Euphoria?
Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop programs for DOS, Windows, Linux and FreeBSD. Euphoria was first released in 1993. Since then Rapid Deployment Software has been steadily improving it with the help of a growing number of enthusiastic users. Although Euphoria provides subscript checking, uninitialized variable checking and numerous other run-time checks, it is extremely fast. People have used it to develop high-speed 32-bit DOS games, 32-bit Windows GUI programs, and Linux X Windows programs. ( a user on download.com comments: "( In Liberty BASIC (free version)[another scripting lang like euphoria] it takes 40 seconds. In Euphoria (free version) it takes 0.22 second. Compiled C might be a little faster but the write/run/debug cycle in Euphoria shaves HOURS off comparative write/compile/link/run/debug C development
. Borland has a free C compiler, but Euphoria libraries make it 100 times easier to write Windows, Linux, and FreeBSD GUI applications which are completely portable across all three environments. Beginner or seasoned hand, get Euphoria and scoot!))

Whether type checking is on or off, you will never get a machine-level exception. You will always get a meaningful message from Euphoria when something goes wrong. (This might not be the case when you poke directly into memory, or call routines written in C or machine code.)

http://www.rapideuphoria.com/refman_2.htm#3 
2.3 Euphoria versus Conventional Languages

Programming in Euphoria is based entirely on creating and manipulating flexible, dynamic sequences of data. Sequences are it - there are no other data structures to learn. You operate in a simple, safe, elastic world of values, that is far removed from the rigid, tedious, dangerous world of bits, bytes, pointers and machine crashes.

Unlike other languages such as LISP and Smalltalk, Euphoria's "garbage collection" of unused storage is a continuous process that never causes random delays in execution of a program, and does not pre-allocate huge regions of memory.

The language definitions of conventional languages such as C, C++, Ada, etc. are very complex. Most programmers become fluent in only a subset of the language. The ANSI standards for these languages read like complex legal documents.

You are forced to write different code for different data types simply to copy the data, ask for its current length, concatenate it, compare it etc. The manuals for those languages are packed with routines such as "strcpy", "strncpy", "memcpy", "strcat", "strlen", "strcmp", "memcmp", etc. that each only work on one of the many types of data.

Much of the complexity surrounds issues of data type. How do you define new types? Which types of data can be mixed? How do you convert one type into another in a way that will keep the compiler happy? When you need to do something requiring flexibility at run-time, you frequently find yourself trying to fake out the compiler.

In these languages the numeric value 4 (for example) can have a different meaning depending on whether it is an int, a char, a short, a double, an int * etc. In Euphoria, 4 is the atom 4, period. Euphoria has something called types as we shall see later, but it is a much simpler concept.

Issues of dynamic storage allocation and deallocation consume a great deal of programmer coding time and debugging time in these other languages, and make the resulting programs much harder to understand. Programs that must run continuously often exhibit storage "leaks", since it takes a great deal of discipline to safely and properly free all blocks of storage once they are no longer needed.

Euphoria does not have pointers and does not need them. . The pointer has been called the "go to" of data structures. It forces programmers to think of data as being bound to a fixed memory location where it can be manipulated in all sorts of low-level, non-portable, tricky ways.

Euphoria's method of defining [sub]types is simpler than what you will find in other languages, yet Euphoria provides the programmer with greater flexibility in defining the legal values for a type of data  [ you simply write  a guard that tests the value any time the variable is modified ]:

You can freely distribute this Public Domain Edition, in whole or in part, so anyone can run a Euphoria program that you have developed. You are completely free to distribute any Euphoria programs that you write, royalty-free, even if you don't register.

To run the WIN32 version of Euphoria you need Windows 95, or any later version of Windows. It runs fine on XP.

The DOS32 version will run on any version of Windows, and will also run on plain DOS on any 386 or higher processor. Contrary to popular opinion, DOS is not dead. You can run DOS Euphoria programs on Windows XP in a command prompt window.

To run the Linux version of Euphoria you need any reasonably up-to-date Linux distribution, that has libc6 or later plus ncurses. For example, Red Hat 5.2 or later will work fine.

To run the FreeBSD version of Euphoria you need any reasonably up-to-date FreeBSD distribution, that has ncurses.


Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.