An important message for all C/C++ programmers...
24 Reasons Why You Are Going to Write Your Next Program in Euphoria!
because you are tired of having to re-invent dynamic storage allocation
for each program that you write
because you have spent too many frustrating hours tracking down malloc
arena corruption bugs
because you were once plagued for several days by an on-again/off-again
"flaky" bug that eventually was traced to an uninitialized variable
because no matter how hard you try to eliminate them, there is always
one more storage "leak"
because you are tired of having the machine "lock up", or your program
come crashing down in flames with no indication of what the error was
because you know that
subscript checking would have
saved you from hours of debugging
because your program should not be allowed to overwrite random areas in
memory via "wild" pointers
because you know it would be bad to overflow your fixed-size stack area
but you have no idea of how close you are
because one time you had this weird bug, where you called a function,
that didn't actually return a value, but instead fell off the end
and some random garbage was "returned"
because you wish that library routines would stop you from passing
in bad arguments, rather than just setting "errno" or whatever
(who looks at errno after every call?)
because you would like to "recompile the world" in a fraction of a second
rather than several minutes -- you can work much faster with a cycle of
edit/run rather than edit/compile/link/run.
because The C++ Programming Language 3rd Ed. by Bjarne Stroustrup is
911 very dense pages, (and doesn't even discuss
platform-specific programming for DOS, Windows, Linux or any other system).
because you have been programming in C/C++ for a long time now, but there
are still a lot of weird features in the language that you don't
because portability is not as easy to achieve as it should be
because you know the range of legitimate values for each of your variables,
but you have no way of enforcing this at runtime
because you would like to pass variable numbers of arguments, but
you are put off by the complicated way of doing it in C
because you would like a clean way
of returning multiple values from a function
because you want an integrated
full-screen source-level debugger
that is so easy to use that you don't have to search through the manual
each time, (or give up and recompile with printf statements)
because you hate it when your program starts working just because you
added a debug print statement or compiled with the debug option
because you would like a reliable, accurate
statement-level profile to
understand the internal dynamics of your program, and to boost performance
because very few of your programs have to squeeze every cycle of
of your machine. The speed difference between Euphoria and C/C++ is not that
great, especially when you use the Euphoria to C Translator.
Try some benchmark tests. We bet you'll be surprised!
because you'd rather not clutter up your hard disk with .obj and
because you'd rather be running your program, than wading through several
hundred pages of documentation to decide what compiler and linker options
because your C/C++ package has 57 different routines for memory allocation,
and 67 different routines for manipulating strings and blocks of memory.
How many of these routines does Euphoria need?
In Euphoria, memory allocation happens
automatically and strings are manipulated just like any other