CCPPReasons
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 did not 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 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 do not 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 would 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.