September 21, 2020, 02:53:09 am

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


What is the big differences between Creative and Emergence Basic?

Started by tekrat, September 26, 2007, 07:20:59 am

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

tekrat

The syntax and IDE look almost exactly the same.  What is the difference?  The only difference I can see is that Create Basic doesn't create DLL's.  Is that it?

GWS

Hi Tekrat ..  :)

I'm probably not the best person to explain 'cos I mostly use CBasic.  I consider EBasic as the 'big brother' language.
Here's how the main IW portal describes EBasic:

QuoteEmergence BASIC can create small, fast, native Windows executables and DLLs and supports all 32-bit Windows versions.

The environment is modular with new commands available separately using add-on command libraries.

An advanced 2D game and graphics command library, and database command library is included.

Supports both procedural and Object Oriented Programming.


Currently, CBasic is an interpretive language - it does not have a compiler to create compiled .exe files.
EBasic is a compiling system which emits .obj  .asm, and native code .exe compiled distributables.

You can also see that EBasic has more advanced graphics, a built-in database facility, and supports Object Oriented Programming.
There are I believe, a number of syntax and instruction differences.  EBasic has 5 dimensional arrays for instance, compared to only 3 dimensions in CBasic. It also supports in-line assembler code, and has over 400 instructions compared to only 250 in CBasic.
The 'menu' setup facilities if I remember correctly are also different.

EBasic has some 'C' like forms such as ' i++' instead of 'i = i + 1'.  You can define variables by using 'int i,j,k' instead of 'def i,j,k : int'
Other folk who use EBasic can probably mention many more .

The EBasic IDE has a 'View output' and 'View Project' facility which makes managing larger projects easier.

CBasic is simpler since it does not set out to cater for professional project development - it's more for fun and leisure programmers.

Anyway, they're both freeware so enjoy the use of either or both .. give them both a try and pick whichever suits your requirements :)

all the best, :)

Graham



Tomorrow may be too late ..

barry

It's tempting to say that Ebasic is like a finely tuned sports car and Cbasic is like a handy old pick-up.  But the analogy falls apart unless you assume that the sports car has a larger bed. :)

Barry

GWS

Hah .. I like that analogy   :)  ..

But I can't wait to see what happens when 'whizz-kid' PT fits a supercharger (compiler) to the pick-up truck .. :o

best wishes, :)

Graham
Tomorrow may be too late ..

tekrat

I guess what has me confused is that I can actually compile what I type as an EXE file so that says to me this is not truly a scripting/interpretive language.  Also I don't see any runtime DLL's that art needed for distrubution like Visual Basic 6 that will allow (or the absents of will prevent) my programs from executing.  Also, I can't run source files as a scripts like I can with .VBS, .BAT or even .PHP and .JS files (assuming I associate my extension with a matching runtime environment).

I my eyes it just eBasic with a new name and DLL creation removed.  Please correct if I'm wrong.  Perhaps a feature matrix would help.

Ionic Wind Support Team

#1.  The IDE's are completely different.  One is Scintilla based (Emergence) and one is my own control designed years ago (Creative).

#2.  Creative is a byte-code compiler.  Not a native code one.  The Creative runtime is glued to the byte-code to create a single executable.  The byte-code itself is stored as a resource.  And the byte-code is slow, not meant for production games and the like.

Emergence and Aurora are true compilers meaning they have a compiler (creates assembly) an assembler (creates binary objects) and a linker (creates the executable) in exactly the same way that C works.  Emergence and Aurora can then create DLL's, static libraries, windows executables and console executable.  Emergence also has a partially finished Linux version which creates native code linux executables.

#3.  Creative is meant for real beginners.  It has "hand holding" built in, checks your string lengths, watches you memory accesses, stops on errors instead of having to use a debugger.

#4.  The syntax is very different between Creative and Emergence.  There is a converter floating around if your interested.

Paul.

 
Ionic Wind Support Team

barry

Quote from: tekrat on September 27, 2007, 06:54:18 am
I guess what has me confused is that I can actually compile what I type as an EXE file so that says to me this is not truly a scripting/interpretive language.  Also I don't see any runtime DLL's that art needed for distrubution like Visual Basic 6 that will allow (or the absents of will prevent) my programs from executing.


That does make it seem like they're the same but it's deceptive.  The exe created by Cbasic is really the run-time interpretter packaged with the source code.  It's not a machine language version of the source code at all.

When you make an exe with Ebasic, it goes through the code and builds a full-scale machine language program and that's what the exe is, unlike Cbasic where the exe is the run-time interpretter.

As for not being able using it as a scripting language, that's just the way the IDE is designed.  It probably wouldn't take a lot of change to make that possible, although I don't actually know that.  But since you can make an exe with with the interpretter built in so easily, the ability to use it as a scripting language isn't as useful.

Keep in mind that I know nothing about the internals of either of these systems.  I'm only speaking from general knowledge, and I might have some details wrong.

The real difference in Cbasic and Ebasic is speed and flexibility.  You can probably do most of the things in Cbasic that you can do in Ebasic but some things would  be too slow to be worth doing in Cbasic.  Today our computers are so fast (even my cheap slow computer) that the difference in an interpretter and a compiler isn't noticable on some things but push it, either by using a slow computer or by writing a demanding program, and the difference will become very clear very soon.

Barry

tekrat

It all makes sense now.  Two questions then:

1. If I was to open a Creative Basic program (.EXE file) in an assembly editor, would I then be able to see all the original source?  If so, is source code obfuscation planned for future versions?
2. Will Creative Script, an interpreter for Creative Basic files, ever come out?  It would be cool to write a webpage in Creative Script instead or PHP or ASP or run Creative Script batch files. Is so, would seed money be required to start such a project?

barry

I'm just guessing.  Paul will be able to tell you for sure.  But if the source code isn't compressed or tokenized you should be able to see it.  If it's tokenized but not compressed (this is my guess) then you'll be able to see a little of it, such as the strings.  Actually you should see all of it but it won't look the same as in the editor.

Tokenizing is replacing each key word with a number to save space.

Whether you can see it or not isn't a good test of anything since what you'll usually see is the strings and a few other things if it's tokenized, and I think most interpretters do tokenize and that's not so much different from what you'll see if the program is truly compiled.

With a compiled program, the program has control of the cpu.  With an interpretted program the interpreter has control of the CPU and the program it's interpreting is really data to that program.  That's not a perfectly true statement but it's mostly true most of the time.

Barry

Ionic Wind Support Team

The tokenized byte-code is encrypted before being added to the executables resources.  So it isn't viewable by casual onlookers.  It's not the strongest encryption mind you, but sufficient enough.



Ionic Wind Support Team