PDA

View Full Version : A few reflections on Oxygene and Pascal.



mobilus
21-06-2012, 07:05 PM
I was wondering about using Oxygene for my next game projects and tools, and I have some thoughts.

A few assumptions before proceeding to the discussion:
1. Pascal is the most beautiful programming language.
2. Games are for programming languages like porn movies for DVD formats.
(Has anyone started to programming for reasons other than games?
Choice of language is determined by the possibilities in making games
- I'm not talking about individual cases, but the statistical majority.)
3. Pascal future in games is not exists, if we talking about AAA games today.
(I'm not say about the language, but IDE's and SDK's - new platforms come to market
with a ready SDK's and they are not writen in Pascal - let's be honest.)
4. Oxygene can be future for Pascal game programmers, if we assume that Oxygene is Pascal.
5. Oxygene is not our Daddy's Pascal, but they can learn it very fast.
6. C++, C#, Pascal are not the most popular programming languages in games - the most popular
are scripting languages (most people use scripts) like Lua.
(Oxygene is a good way, but is flexible enough? )

My questions is:
1. If Oxygene is really for pascal programmers or Oxygene is for C# and Java programmers?
Why Oxygene don't speak with his Father? Look at the figure below.
2. Is it possible to use Oxygene with PssStudio (PSVita SDK uses Mono), CryMono, Unity3D or other tools based on Mono Develop?
(For now, I managed to connect only with XNA.)
3. Is it possible to write an Oxygene scripting language for Pascal (al'a Pascal Script)?
(Of course, without Oxygene features that not exists in Pascal.)

wagenheimer
22-06-2012, 09:03 PM
Unfortunately, I don't have answer for none of your questions!

But I also want to know! =)

I hope to use Pascal (or something similar like Oxygene) forever!

Would Oxygene be the future of Pascal Language? It would be really someway possible to integrate it with everything else?

LP
22-06-2012, 11:01 PM
1. If Oxygene is really for pascal programmers or Oxygene is for C# and Java programmers?

No, I would say that Oxygene is for Oxygene programmers. ;) That is, if you somehow feel inclined towards Pascal and/or feel nostalgic, then you could use Oxygene instead of C#. However, in my humble opinion, if you don't have unreasonable bias towards Pascalish syntax and want to use .NET, just stick with C# since it is a great language itself (designed by Anders Hejlsberg, the original designer of Turbo Pascal) and is backed up by Microsoft.

Since Oxygene is not backward compatible with Pascal and you'll have to convert your old Pascal code, you'd be better off porting it to something more popular like C#, which is maintained by a giant company instead of some niche language that may get abandoned eventually.

That, or keep using Pascal with Delphi and/or FPC/Lazarus. ;)

mobilus
23-06-2012, 11:21 AM
No, I would say that Oxygene is for Oxygene programmers.
I was thinking about the same answer but from a marketing point of view, the answer must be different... or should be different ;)


That is, if you somehow feel inclined towards Pascal and/or feel nostalgic, then you could use Oxygene instead of C#. However, in my humble opinion, if you don't have unreasonable bias towards Pascalish syntax and want to use .NET, just stick with C# since it is a great language itself (designed by Anders Hejlsberg, the original designer of Turbo Pascal) and is backed up by Microsoft.

I'm familiar with C# but not with Java and why I'm really asking about Oxygene is that I see big power in this environment. It's like "Alfred P. Sloan Jr." who sales Hyatt bearings for two rival companies: Ford Motor Company and General Motors. He won because he didn't compete, he fits to both and used them. How important would be for my or ours potential investors, if we could use one solution for two rival/different platforms (.NET and Java) and use this same solution for engines like Unity3D or CryEngine?
I see potencial of Oxygene, but I don't see creativity in good marketing and I don't see simple examples.

Looking to the future of C# game development is very clear and Oxygene could be an alternative - only Unity3D has more than 500 000 users - if this market is no big enough to try?


Would Oxygene be the future of Pascal Language? It would be really someway possible to integrate it with everything else?
I think it's possible, but we don't know how to do it :(
On the other hand, if this is possible and we do not know how to use it, is much more tragic.

pstudio
24-06-2012, 06:27 PM
My questions is:
1. If Oxygene is really for pascal programmers or Oxygene is for C# and Java programmers?
Why Oxygene don't speak with his Father? Look at the figure below.
2. Is it possible to use Oxygene with PssStudio (PSVita SDK uses Mono), CryMono, Unity3D or other tools based on Mono Develop?
(For now, I managed to connect only with XNA.)
3. Is it possible to write an Oxygene scripting language for Pascal (al'a Pascal Script)?
(Of course, without Oxygene features that not exists in Pascal.)

1. If you like Pascal then it may be worth considiring Oxygene. Oxygene has some nice language features and works seamlessly with .NET/MONO libraries. If you have to make .NET or Java bytecode and feel more comfortable in Pascal dialect than C style dialect Oxygene is the way to go.
I haven't tried it, but C# can call unmanaged code compiled into dll's so I would expect that Oxygene can do that as well.

2. I have only tried with Unity3D and it worked without any problems. You just have to compile your code into dlls and Unity can work with it. However I can't give you a good reason not to use C# instead besides the reason that you want to use Pascal because you can.

3. Remobjects offers Script for .Net. I haven't tried it but I guess that would offer all you could wish for in Pascal scripting. http://www.remobjects.com/downloads.aspx#free

paul_nicholls
25-06-2012, 10:34 PM
I love Oxygene! I used Oxygene for .NET a bit a few years ago to do some XNA stuff, and I have now used Oxygene for Java to make desktop games and now also some Android apps :)
Long live Pascal and variants :D

WILL
03-07-2012, 08:38 AM
Paul and Peter, did you guys both get your free copies of Oxygene for Java from RemObjects yet? (for taking part in the 2nd PGD Challenge and using Oxygene)

It's nice to see that another dev tool that has been growing in popularity has been taken up to make games with. Especially since RemObjects is so nice to deal with.

WILL
03-07-2012, 08:44 AM
Oxygene is not our Daddy's Pascal

I think that this is a stolen and re-purposed quote from me. :) I had a very similar quotation on PGD's ancestral DGDev forums and later the original PGD website that went more along the lines as "Object Pascal, It's not your daddy's Pascal!" ...or something to that effect. lol

I don't mind though, they can use it freely. ;)

paul_nicholls
03-07-2012, 09:47 AM
Paul and Peter, did you guys both get your free copies of Oxygene for Java from RemObjects yet? (for taking part in the 2nd PGD Challenge and using Oxygene)

Yeah, I did get my 1 year license (it appears that way looking at the date) :)

mobilus
03-07-2012, 01:07 PM
WILL, RemObjects stole your quote ;)

http://www.remobjects.com/images/OxygeneLanguage/TheOxygeneLanguage.png

pstudio
03-07-2012, 01:12 PM
Paul and Peter, did you guys both get your free copies of Oxygene for Java from RemObjects yet? (for taking part in the 2nd PGD Challenge and using Oxygene)

Eh no, don't think so. Do I need to take some special action?

mobilus
03-07-2012, 01:27 PM
3. Remobjects offers Script for .Net. I haven't tried it but I guess that would offer all you could wish for in Pascal scripting. http://www.remobjects.com/downloads.aspx#free

I think this is JavaScript. I'm not sure because there are no examples ;)

pstudio
03-07-2012, 02:44 PM
I haven't tested it myself, but it does say:


RemObjects Script for .NET
Managed JavaScript and Pascal Script for .NET and Mono, based on the Dynamic Language Runtime (DLR)

mobilus
03-07-2012, 03:28 PM
Managed JavaScript and Pascal Script for .NET and Mono, based on the Dynamic Language Runtime (DLR)

This is very good news, thanks =)

paul_nicholls
03-07-2012, 11:20 PM
Eh no, don't think so. Do I need to take some special action?

I did ask them about mine, they might need some memory jogging LOL

Perhaps you could ask Jim McKeeth (jim AT remobjects.com)?

pstudio
03-07-2012, 11:56 PM
ok, I might take a shot at contacting Jim.

marcov
01-01-2013, 04:30 PM
1. If Oxygene is really for pascal programmers or Oxygene is for C# and Java programmers?


IMHO not. Oxygene is more a transition horse product for people that (for some reason) want to leave pascal, but don't dare to do it in one step. The syntax is somewhat familiar, but not much more.

So I think Oxygene is mostly for pascal hobbyists (and professional people that are not into fulltime programming).

More hardcore programmers either stick with Delphi/pascal, or migrate to whatever is most suitable for their audience (be it Java, C# or C++, and a few that are deep into iOS apps might select Objective C).

And usually people that think that they have to leave a platform that is becoming a niche, don't migrate to a platform that is even a larger niche.



Why Oxygene don't speak with his Father? Look at the figure below.


Well, basically because there is no real relation other than some minor syntax. IMHO Pascal is the grandfather (via C#) rather than the father. Technology and platform are totally different.



2. Is it possible to use Oxygene with PssStudio (PSVita SDK uses Mono), CryMono, Unity3D or other tools based on Mono Develop?
(For now, I managed to connect only with XNA.)


Maybe, but does it make sense? You will be one of the very few to attempt that, and despite a less familiar language, going directly to Mono Develop might be easier. (because the support and example situation is easier)

WILL
02-01-2013, 01:40 AM
I think there is a few misconceptions being put out here about Oxygene. I know this because I've talked with both Jim and Marc (but more Jim than Marc) from RemObjects about Oxygene and where they would like to go with the tools and new language they are building at their company.

Oxygene is not some fad tool for getting out of Pascal. Far from it. Actually they have tried to define it as a NEW language based on the common Object Pascal. Yes to play nice in all these platforms you need to bend your code a bit here and there. ie. in Java-land you need to treat things in a specific way that is different in .NET/Mono-land. The same goes for the upcoming Mac and iOS land. You could think of it as a C++ to C as it is Oxygene to your Object Pascal.

(Take that C++! Where is your C+++? :P)

The one thing that I like that they are doing and that all other tool makers are not really doing 100% is targeting a "platform" so the output to that platform is 100% native as the technology had intended for it. Not Embarcadero and not even the Free Pascal dev guys, though they are pretty close.

"But Jason, they support interpreted and managed platforms?!?!"

Yes that is also true. However, just because a platform is interpreted or managed doesn't mean the compiler can't conform to what is supposed to be run and output that. It runs native on Java RTE and Android as well as on .NET and Mono platforms. The new Nougat project which will most likely become Oxygene for Mac/iOS outputs native Mac and iOS code thanks to some really smart designs that work with Xcode on a Mac. (Tested and proven! ;))

RO never intended to move people away from Object Pascal, but instead create a new evolution of the platform to conform to today's platforms. Something that other teams have failed to to in the past. It's probably the only tool that you can use to get your game/app to run on all platforms using a single code-base. I'm currently porting Subject 33 to it for this very purpose and I've considered porting Garland's Quest over to it.

Like all the C variants out there. I think Pascal deserves it's own extended family too.

As far as libraries, well Paul and I are using libGDX for S33, it isn't Pascal-based (it's Java-based), though it'll work well on almost all of the platforms we want so it's a good match. There are lots and lots of game libraries out there that Oxygene can take advantage of, you just have to seek them out.