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 fully understand

  • 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 performance out 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 .exe files

  • because you'd rather be running your program, than wading through several hundred pages of documentation to decide what compiler and linker options you need

  • 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? Answer: zero. In Euphoria, memory allocation happens automatically and strings are manipulated just like any other sequences.