Portable Languages


Chip said:
PlopperZ said:
How about BASIC? (it's the only programming language I know :p )
A native BASIC compiler would be nice, but there will be so many PC systems emulated on Pandora with BASIC compilers that it probably won't be a priority. Check out AMOS and Blitz BASIC - both were very powerful, games-oriented BASIC languages with compilers for the Amiga platform.


For more information on AMOS, see the AMOS Factory website. It's written entirely in 68000 machine language so there's no hope of getting Amos to work without an emulator but...

A friend and I am making a sequel to AmosPro called Mattathias (named after the son of the prophet Amos). It will use Low-Level Virtual Machine as its machine language which has an ARM backend so it will be possible to run it on Pandora. Also, since we are making the Mattathias parser more flexible than the Amos parser, it should be able to parse several dialects of BASIC.

The continuations of Blitz Basic have been written to work on the PC but are closed source. AmiBlitz, the continuation on the Amiga, will likely be constrained to run only on 68000 series processors due to design limitations.

If you want a native BASIC interpreter, check out sdlBasic. It's portable, LGPL licensed, runs on the GP2X already, and its runtime will likely be the basis for the SDL version of the Mattathias compiler.
 
Last edited by a moderator:
Samurai_Crow said:
If you want a native BASIC interpreter, check out sdlBasic. It's portable, LGPL licensed, runs on the GP2X already, and its runtime will likely be the basis for the SDL version of the Mattathias compiler.



I know they only work for the Amiga - that was kinda the point :p We're pretty much guaranteed an Amiga emulator, so you can compile and run your BASIC programs with that. Or you could write your programs in QBASIC, Applesoft, BASIC V2, Sinclair BASIC, etc. and run them using emulators for their native systems.
 
Last edited by a moderator:
Chip said:
Samurai_Crow said:
If you want a native BASIC interpreter, check out sdlBasic. It's portable, LGPL licensed, runs on the GP2X already, and its runtime will likely be the basis for the SDL version of the Mattathias compiler.



I know they only work for the Amiga - that was kinda the point :p We're pretty much guaranteed an Amiga emulator, so you can compile and run your BASIC programs with that. Or you could write your programs in QBASIC, Applesoft, BASIC V2, Sinclair BASIC, etc. and run them using emulators for their native systems.


Emulators will limit the speed of the executables to the speed of the hosted operating system. Mattathias will not becuase LLVM supports static as well as JIT compiliation. Mattathias comes with its own parser generator so it could theoretically compile all of those as native code.
 
Last edited by a moderator:
So some of you are talking about old languages (Basic, Pascal) for learning, but does anyone teach using those languages anymore?
 
DasFool said:
So some of you are talking about old languages (Basic, Pascal) for learning, but does anyone teach using those languages anymore?
Don't think so, possibly basic in schools, in our Uni they teach mainly Java.
 
Last edited by a moderator:
WarmFluffyUK said:
DasFool said:
So some of you are talking about old languages (Basic, Pascal) for learning, but does anyone teach using those languages anymore?
Don't think so, possibly basic in schools, in our Uni they teach mainly Java.

I took Computer Science in the Federal University of Rio Grande do Sul (Brazil), and learned to program in Pascal. And that wasn't long ago, I started in 2002. In this university Pascal is the only language they "officially" teach in an actual course in the curriculum. All the other ones you gotta learn by yourself.
 
Last edited by a moderator:
Heh, At Cal one of the most base classes for CS uses Scheme. The point of the class is to teach paradigm, but it ain't no Java :p
 
DasFool said:
So some of you are talking about old languages (Basic, Pascal) for learning, but does anyone teach using those languages anymore?
At Minnesota State University: Mankato, (where I attended) they taught an optional course in VB.NET. I didn't take it, though it is an official sequel to Visual Basic.

Python has mostly taken the place of BASIC in most schools nowadays. Unfortunately, since Python is a "typeless" language it is difficult to compile efficiently if you want to make a native binary rather than use its internal JIT compiler.

BTW, Object Pascal such as Delphi and FreePascal is much advanced from its roots and is still around. I'd rather program in Object Pascal than C++, that's for sure.

Objective C sees some use on the Mac nowadays and it's also one that I'd rather use than C++.

As for new languages, I wouldn't mind C# if it weren't for the over-bloated .NET runtime libraries. They scale up to large servers well but not down to small handheld devices nor old machines like I use.
 
Last edited by a moderator:
Megamixman said:
Heh, At Cal one of the most base classes for CS uses Scheme. The point of the class is to teach paradigm, but it ain't no Java :p
Heh, I just finished taking CS 61A this last Spring semester. I actually took CS 3L before taking 61A, so you can imagine how exhausted I am with using Scheme (The syntax is wonderful, though) :)

I'm actually considering taking a self-paced programming course next semester, and my options are the following:

Pascal
C
C++
Java
Python

Or I could take a course on "the productive use of Unix environment." Instead of making a new thread, I figured I'd just ask here: which one do you guys think would be best for developing for the Pandora? In Spring '09 I'm going to take a data structures course that uses the Java language, and in Fall '09 I'm going to take machine structures course that uses C. So, you could say that I shouldn't take C or Java. However, I believe these courses are more focused on these respective topics and not on teaching the languages themselves. So, any suggestions? I've done a little reading on some threads here and it seems Python or Java is the way to go?
 
Last edited by a moderator:
Azure said:
Megamixman said:
Heh, At Cal one of the most base classes for CS uses Scheme. The point of the class is to teach paradigm, but it ain't no Java :p
Heh, I just finished taking CS 61A this last Spring semester. I actually took CS 3L before taking 61A, so you can imagine how exhausted I am with using Scheme (The syntax is wonderful, though) :)

I'm actually considering taking a self-paced programming course next semester, and my options are the following:

Pascal
C
C++
Java
Python

Or I could take a course on "the productive use of Unix environment." Instead of making a new thread, I figured I'd just ask here: which one do you guys think would be best for developing for the Pandora? In Spring '09 I'm going to take a data structures course that uses the Java language, and in Fall '09 I'm going to take machine structures course that uses C. So, you could say that I shouldn't take C or Java. However, I believe these courses are more focused on these respective topics and not on teaching the languages themselves. So, any suggestions? I've done a little reading on some threads here and it seems Python or Java is the way to go?



From the standpoint of most jobs available between the two I'd have to say Java but you really can't start C early enough.
 
Last edited by a moderator:
TaG: I use my Zaurus for c/c++ programming. You just need a good swap partition. If you find you need >1gb, it might be time to cross-compile. Optimizations are for final compiles in most cases (not all.)

Canguy
 
Azure said:
Megamixman said:
Heh, At Cal one of the most base classes for CS uses Scheme. The point of the class is to teach paradigm, but it ain't no Java :p
Heh, I just finished taking CS 61A this last Spring semester. I actually took CS 3L before taking 61A, so you can imagine how exhausted I am with using Scheme (The syntax is wonderful, though) :)

I'm actually considering taking a self-paced programming course next semester, and my options are the following:

Pascal
C
C++
Java
Python

Or I could take a course on "the productive use of Unix environment." Instead of making a new thread, I figured I'd just ask here: which one do you guys think would be best for developing for the Pandora? In Spring '09 I'm going to take a data structures course that uses the Java language, and in Fall '09 I'm going to take machine structures course that uses C. So, you could say that I shouldn't take C or Java. However, I believe these courses are more focused on these respective topics and not on teaching the languages themselves. So, any suggestions? I've done a little reading on some threads here and it seems Python or Java is the way to go?

That's because those topics are more important than showing you everything in the standard library. I don't think I'd start programming for Pandora until after you take 61B, at least (unless you've actually already learned the material before). It will help you learn about different kinds of data structures and when they are useful. It also forces you to look at the algorithms you're coding and see if they're fast or slow (70 and 170 are probably better for actually finding faster algorithms).

Of course, using the concepts in 61B won't necessarily get you the fastest program... for that, 61C (and really, 152) are useful for optimizing for machines.

As for which language to learn... I'm going to lean towards managed code, just because I like the way Cal's lower division courses unfold the layers of abstraction, and I wouldn't want to subvert it, heh. Go for Java (you probably won't use it for apps like games, though).
 
Last edited by a moderator:
Azure said:
Heh, I just finished taking CS 61A this last Spring semester. I actually took CS 3L before taking 61A, so you can imagine how exhausted I am with using Scheme (The syntax is wonderful, though) :)

I'm actually considering taking a self-paced programming course next semester, and my options are the following:

Pascal
C
C++
Java
Python
Python can create Java classes through the use of the Jython compiler, and C has been largely subverted by C++. Since Python is written in C and C++, I guess it depends on how difficult you want to go. I'd say C++ is the most difficult of the ones you mentioned and Python is the easiest.

Java's full virtual machine is almost as bloated as .NET so, if you're going to program a handheld device that doesn't include the JVM in its opeating system, I'd say Python, Pascal, C, or C++ are your choices.

If it is Object Pascal (the latest ISO standard of the language) I would go with that one. It compiles to binary but is easy to work with. Probably the most balanced language listed there. My second choice would be Python.
 
Last edited by a moderator:
DasFool said:
Lua - I know there are games made from this for the PSP and probably PCs as well.


For the very reason that there is a fairly large library of Lua games for the PSP, I would recommend that Lua support be based on LuaPlayer.

LuaPlayer provides functions for all sorts additional features (graphics, sound, input etc) that the base language doesn't offer. And by maintaining (close) compatibility with the PSP runtime, any PSP Lua game could be ported across with minimal effort.

Of course, you could add as many extra functions as you like -- compatibility doesn't need to be two-way :)
 
Last edited by a moderator:
I'd go with python and not only because I really like it. In the floss world especially, after perl fell from fame, python is the most used language.
 
Azure said:
Megamixman said:
Heh, At Cal one of the most base classes for CS uses Scheme. The point of the class is to teach paradigm, but it ain't no Java :p
Heh, I just finished taking CS 61A this last Spring semester. I actually took CS 3L before taking 61A, so you can imagine how exhausted I am with using Scheme (The syntax is wonderful, though) :)

I'm actually considering taking a self-paced programming course next semester, and my options are the following:

Pascal
C
C++
Java
Python

Or I could take a course on "the productive use of Unix environment." Instead of making a new thread, I figured I'd just ask here: which one do you guys think would be best for developing for the Pandora? In Spring '09 I'm going to take a data structures course that uses the Java language, and in Fall '09 I'm going to take machine structures course that uses C. So, you could say that I shouldn't take C or Java. However, I believe these courses are more focused on these respective topics and not on teaching the languages themselves. So, any suggestions? I've done a little reading on some threads here and it seems Python or Java is the way to go?

I would suggest learning python to help understand programming in general if you dont already.
 
Last edited by a moderator:
C++ is much simpaler than its made out to be by some people. And it helps you understand programming far more than with python as you have to manage memory yourself. Personally I find Python confusing as hell. :angry:
 
Back
Top