Author Topic: Port the Programming Language (to a Modern BASIC)  (Read 2497 times)

0 Members and 1 Guest are viewing this topic.

Offline Thundercraft (OP)

  • Warrant Officer, Class 1
  • *****
  • Posts: 86
  • Thanked: 7 times
  • Ensign Navigator
Port the Programming Language (to a Modern BASIC)
« on: August 13, 2013, 10:06:09 PM »
What I've read suggests that there are a number issues and limitations in what can't be done with Aurora because it's written in VB6. Also, there are many advantages other languages have which VB6 lacks, such as the ability to be cross-platform. (I'm guessing there are a number of Mac and Linux users who'd love to play Aurora on their platform.) And some languages will allow the game to run much faster with the same hardware.

To be fair, VB6 is a very stable, usable version of Visual Basic. And I've heard some pretty bad things about more recent versions. The obvious solution seems to be to upgrade the programming language to something more modern and/or with better features. In the Why not add feature that auto add dot as decimal separator when the game start thread viperfan7 observed:

in all honesty aurora should have been updated to VB.NET or C# long ago, I can see it being simple enough to recode for C#, but it would take A TON of time

Erik replied:

Agreed, but then you have the decision... "Rewrite VB6 code to current .NET, or improve/expand/fix the current code."

All comes down to how Steve sees the best use of his time.

That makes sense. And I'm sure this subject has come up before. However, I wanted to offer a few alternatives that you may not be aware of.

First, I've noticed these same issues come up on other communities for popular games and programs written in VB6. Much like here, the typical suggestion is to switch to an entirely different language, such as C#, Python, Ruby, etc.

The problem, of course, is that these languages are so different from Visual Basic that the conversion becomes a major, time-consuming task - intimidating, even. And this goes double or triple if you have to learn the new language or are very rusty in it. (And some languages, like C# or Fortran, are more difficult to learn than others. In comparison, Visual Basic is easy.)

Also, programming languages are a lot like spoken and written languages - especially when it comes to learning them. I'm serious. The first programming language you learn will stick with you. This isn't just me. Several computer instructors told me as much. Obviously, that's not to say you can't learn new languages. But when learning other languages there is a tendency to "think" in terms of one's first or "native" language.

A more reasonable solution might be to switch to a different flavor of BASIC. In most cases, the language and syntax will be almost identical. And conversion becomes much easier and less intimidating.

So some will recommend switching to languages like FreeBASIC, DarkBASIC, or DarkBASIC Pro. HOWEVER, these still differ from Visual Basic to a significant degree. For instance, while very popular, FreeBASIC is actually a continuation of QuickBASIC.

BUT, I did some digging and I think I've found a better solution:

REALbasic and kbasic are both described as being very similar to Visual Basic - even to the point of being somewhat compatible and able to use a lot of the code unchanged. (Though, I was also impressed by the features and being described as "easy to learn".)

I mean, think about it: You'd gain a number of new features (including having Aurora be cross-platform) by upgrading to a more modern flavor of BASIC and being able to do so while making only very minor, if any, changes to the code!

Porting Visual Basic Applications to Linux and Mac OS X: A How-To Guide for Visual Basic Developer
Quote
...quite similar to Visual Basic. It could use much of my Visual Basic code unchanged, and it could read most of my Visual Basic forms.

I could port my Visual Basic code to REALbasic, and at the end, my application would work under Windows—just like .Net. More importantly however, my ported application would also run under all 32-bit Windows (98/NT/ME/2000/XP) without the .Net framework; Linux (any Intel-based Linux running GTK2.0+ like Novell Linux Desktop or RedHat Desktop) and Mac (Mac OS X and Mac Classic). As an added benefit, there are no runtimes or "frameworks" required for an REALbasic application. In addition, my ported application would include the native interface widgets required to look great. In Windows XP for example, I was surprised that my REALbasic application takes on XP themes automatically!

KBasic - World's most advanced open-source Basic
Quote
...It is a new programming language, a further BASIC dialect and is related to VB.NET™, Visual Basic®, Visual Basic for Application® and Java™. It combines the best features of those tools and comes with built-in backward support for those tools and QBasic® as it is 100% syntax compatible to VB6, VBA and QBasic®.

Additionally, it comes with support for VB.NET™ syntax, functions and similar objects and classes.
« Last Edit: August 13, 2013, 10:23:15 PM by Thundercraft »
"Not only is the universe stranger than we imagine, it is stranger than we can imagine." - Sir Arthur Stanley Eddington
 

Offline SteelChicken

  • Lt. Commander
  • ********
  • Posts: 219
  • Thanked: 1 times
Re: Port the Programming Language (to a Modern BASIC)
« Reply #1 on: August 14, 2013, 07:53:52 AM »
No, it should be ported to modern .NET and just add some developers from the community to assist.

Or, it could be ported to Java ala minecraft if Steve wanted it more multi-platform.
 

Offline Charlie Beeler

  • Registered
  • Vice Admiral
  • **********
  • Posts: 1381
  • Thanked: 3 times
Re: Port the Programming Language (to a Modern BASIC)
« Reply #2 on: August 14, 2013, 07:57:09 AM »
If I Recall Correctly... Steve has stated that he is using C# for both AuroraII and a rewrite of Standard Aurora.  

Unless he has a business reason to switch to a different language I doubt anything else will be used.  The orginal Starfire Assistant was both a personal gaming utility and an learning tool for his job at the time.
Amateurs study tactics, Professionals study logistics - paraphrase attributed to Gen Omar Bradley
 

Offline Thundercraft (OP)

  • Warrant Officer, Class 1
  • *****
  • Posts: 86
  • Thanked: 7 times
  • Ensign Navigator
Re: Port the Programming Language (to a Modern BASIC)
« Reply #3 on: August 14, 2013, 10:51:33 AM »
No, it should be ported to modern .NET and just add some developers from the community to assist.

Or, it could be ported to Java ala minecraft if Steve wanted it more multi-platform.

But what is it about .NET or Java that would make it a superior language for Aurora to be ported to? Do we even know that Steve is comfortable with programming in Java.

The main reason for my suggestions was how easy it should be to port. You did read the parts where it says, "it is 100% syntax compatible to VB6", "is related to VB.NET", and "could use much of my Visual Basic code unchanged"... right?

(Bleh. :-\ I know I'm long-winded. But it often feels like people don't bother to read my posts in whole...)

If I Recall Correctly... Steve has stated that he is using C# for both Aurora II and a rewrite of Standard Aurora. 

Unless he has a business reason to switch to a different language I doubt anything else will be used.  The original Starfire Assistant was both a personal gaming utility and an learning tool for his job at the time.

Well, it is his choice. I just thought this would make porting a lot easier.

Starfire Assistant? That does help explain why Aurora was written in VB.
"Not only is the universe stranger than we imagine, it is stranger than we can imagine." - Sir Arthur Stanley Eddington
 

Offline Aloriel

  • Lieutenant
  • *******
  • Posts: 184
  • Thanked: 90 times
Re: Port the Programming Language (to a Modern BASIC)
« Reply #4 on: August 14, 2013, 05:26:21 PM »
Quote
The first programming language you learn will stick with you.
This isn't always true. I am much more comfortable in C# than I am in BASIC or Pascal, which were my two original languages. Actually, I barely remember either of them even though I used them extensively back in the 80s and early 90s. I learned C++ in the 90s, and C# just a few years ago.... I don't want to go back LOL
Sarah
Game Developer in Unity and UE4 and 5