Separate names with a comma.
Discussion in 'Mac Programming' started by SDDave2007, May 18, 2007.
Have you seen RealBASIC?
b e n
Have you tried RealBasic? That sounds pretty close to what you are wanting.
And did I see you say you wanted to write a compiler in VB6? I'd stick to something more powerful and portable like C.
EDIT: lazydog isn't quite so lazy, types faster than me!
a) RealBasic is a "kludge" [my opinion] and costs way way too much. Objective-Basic is to Objective-C like VB.Net is to whatever M$ calls C.Net. The syntax is barely changed, and the complexity of programming falls back on the programmer
b) the project will really be a translator, and will use the current GCC compiler
c) not everyone likes/wants to program in "C" and there needs to be alternatives
d) I'm doing this mainly to do it.... I'm a programmer that like a challenge and rarely uses a product if I feel I can develope a better one. I'm not alway successful.... but I sure as heck learn a lot along the way
I do see how RealBasic is really not what you want, basically.
So, can I ask, what was your thought process in terms of trying to develop something that was an extension / adaptation of objective-basic (which enjoys more Mac support) instead of VB? Is it just that VB is such a highly developed platform?
Also, where did your objective #3 come from? That seems like a strange one to me. It's been a while since I used VB, but I thought the premise in VB has been that the same non-code development tools (e.g. the interface tools, etc, in .NET) were used across all the languages. It would seem like the most direct extension would be ultimately something that essentially allowed one to develop in a Basic derivative inside XCode, using the exact same environment, but choosing Basic, Obj-C, or Java.
Well, good luck, but I think you'll find relatively few people who want another BASIC. One thing you can do is to be sure that it can bridge to Cocoa and other Objective-C frameworks. There's so much great stuff in Cocoa and out there elsewhere that there's no sense in reinventing the wheel. Also, why on Earth would you want to do GUI development without IB? Any time I have to do GUI development in anything else, I'd kill for a way to do it in IB.
The struggle for any Basic hoping to bridge into the Cocoa layer for GUI toolkits (and the rest) will run into the underlying problem that caused the Java bridge to be discontinued: Cocoa is totally based around the underlying dynamic nature of the language. This cannot be faked in a less dynamic language like Java. Basic is even less dynamic than Java.
If you really want an alternative wait for Leopard. It's shipping with Ruby and Python bridges into Cocoa so you can use some of the most popular scripting languages out there to write your program. There is also a Perl bridge in the works but it might not make it (this is based on third party info: I don't have any NDA info). These are all very dynamic languages. The bridges are all based on a single interface/spec so more bridges could be added by skilled programmers, but again non-dynamic languages will struggle to cope.
Edit to add: source for the above info
Methinks programmers like the complexity to fall back on the programmers, as opposed to on some automated rubbish that does things half right, only half of the time.
Also, I would counter that, excepting for a few scenarios, the language is not necessarily the best place to solve complexity issues (speaking generally here)... the system / run-time libraries are probably a better area for removing "complexity". Of course, that's only my opinion.
Will you translate into C or will plug directly into the GCC backend like D or treelang ?
There are many, many alternatives now... no lack of alternatives, that's for sure. Now, good alternatives... that's another story with lots of opportunity for a raging, endless debate.
How do you intend yours to be a good alternative?
Ah, well, in that case, enjoy!
Can't disagree with any of that, but since it is using C as an intermediary language...
I think Apple really needs to push the Obj-C runtime the way MS is pushing the CLR and DLR. I see them, especially the DLR, as the biggest threat to Apple's Application Technologies crown in years.
is to translate from a dialect of BASIC similar to VB6 directly to Objective-C and then use the supplied compiler. A major side effect [and an intended one] is to make it easier to learn "C".
And what will make mine a "better alternative"? Well of course, that remains to be seen. But from what I have seen/read so far all the current alternatives are lacking in some respect. What I don't understand is all the hype around Objective-Basic.... it doesn't even seem to be a completed application.
I think something like BlitzMax would be great. It's BASIC, it's a proper OOP-dialect and modular to boot.
It would make it a lot easier for beginners to start coding as C (or derivatives)-syntax is extremely beginner-unfriendly...
I don't think the BASIC language is any more beginner friendly than C. The only difference/advantage that Visual BASIC and RealBASIC etc have are their RAD enviorments which are so good that even beginners find themeselves creating apps with user interfaces before too long. But as far as the language itself goes I think BASIC is far behind of C and its likes, even from a beginners point of view. In my opinion the reason why BASIC is still being used is that it is an easy language to write interpreters/compilers for.
b e n
I think claiming that BlitzMax is behind C comes from simply not knowing Blitzmax at all. It is a 100% modular OOP-language allowing scripting in other languages (like C++) if necessary. It could of course be argued that it strays to far from what most people would consider a BASIC-dialect, but the syntax is still very much like any other basic-dialect.
Most commands are easily recognizable simply from their name and this alone is a god-send for most beginners...
I never compared BLitzMax to C
I was comparing BASIC to C.
Anyway the point I was trying to make was that Visual Basic and RealBasic are great RAD tools and good choices for beginners if they want to get something up and running quickly. In fact I actually use RealBASIC quite often because I find it's the best tool for certain jobs. I use RealBASIC *not* because it uses the BASIC language (which I admit I dislike) but because of its RAD environment. In other words it's not necessarily the language that makes these tools popular, it's the whole 'programming enviornment/experience' that makes them enjoyable/easy/productive to work in. So when comparing BASIC to C I'm not comparing enviornments but the languages themselves and in this respect I do think BASIC is a bit antiquated in its syntax. In fact when I look at all the OO additions to RealBasic I get the feeling that it is trying to break away from its BASIC roots and become more and more C++ like.
Anyway, enjoy BlitzMax
it looks like a fun tool to program in!
b e n
My point was actually that BlitzMax is a Basic-dialect and share most of the traits normally associated with more "advanced" languages.
But, then again, this might actually disqualifies BlitzMax from the Basic-familly.
I had a look a quick loot at the website and as far as I can see it doesn't handle multidimensional arrays properly… uses # and $ to distinguish variables of type float and string, it lets you use variables before defining them, it has no class methods… come on, this isn't exactly a model OOP dialect of Basic is it? !
Anyway, as 2d/3d game development environment I'm sure it's great fun to use!
b e n
Actually Blitzmax only uses the # and the $ for people who are already used to the basic syntax. For everyone else, they can use the word float to represent a float value. And guess what, you can use int to represent an integer.
Thanks for pointing that out. I downloaded the demo and the manual describes a language completely different in features from the one in the online manual. My apologies to BlitzMax and NickFalk!
b e n
BlitzMax is a complete OO cross platform programing language. Programs written in BlitzMax can be compiled for MacOsX ppc, MacOsX Intel, Linux and Windows. It has classes with methods, functions, atributes (fields), globals, etc... It has inheritance and polimorphism, it also has a complete cross platform GUI module that deals with COCOA (on Mac) with Windows.Forms (on windows) and with Fltk on Linux. It also has a awesome library to create games, client-server applications, etc etc etc. Obviously it supports multidimensional arrays, and linked list collections, and built in hashtables.
It is maybe the best and more complete basic dialect I've seen in the past 10 years. programs written with it can be as simple or as complex as the coder wants. the only thing I think that needs, compared to Objective C, is overloading of functions and methods. Now overloading can be only performed due optional parameters, wich is functional, but not the best solution.