123
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|652|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Off Topic -> Which language?

Page : 1 2 Next
Prev
Mon, 01 Oct 2007, 13:40
TheMadProff
Ok, here's the problem:
I need a language that allows me to create applications (not just games) on both the mac and windows platform (linux would be good as well, but its not necessary)

I presume the best language is one in the C series, but are there any other good ones?

One feature I really need, is the ability to get webcam images...

What should I go for?

(Oh, and I'd like something thats free )

-=-=-
''It works, but I'm not sure why it works...''
Mon, 01 Oct 2007, 14:19
JL235
First, I find most free languages have compilers and interpreters for most operating systems. The only languages that only support one platform that I have seen have all been paid for languages.

As my suggestion, Java. It runs on Windows, Mac OS, Linux and many other places you won't ever be running. Very good for making applications (and games too) especially since Swing uses it's own widgets placed on top of the native window. There is also SWT by IBM as an alternative to Swing which is just a wrapper for using the native widgets on the machine. Swing also supports a native looking look and feel for both Windows and Mac OS (probably many other desktop environments too).

There will certainly be a package for communicating with a WebCam, although I doubt it'll be in the Java API.
Mon, 01 Oct 2007, 14:22
Phoenix
Java is cross-platform, and is quite good. C# also works on multiple operating systems, through Mono, but then the users would have to download a special framework to be able to use the application. But you'll have to weigh the good and the bad. I'm sure DiablosDevil will also mention Ruby, which works on countless operating systems. All of those are free, but my recommendation would be that you use Java.

|edit| DiablosDevil was faster than me |edit|
Mon, 01 Oct 2007, 14:32
TheMadProff
Does Java require the java software to be installed (the type used for web games ) or is this different?

Does it create (on windows) exe files?
---
Does Java require the java software to be installed (the type used for web games ) or is this different?

Does it create (on windows) exe files?

-=-=-
''It works, but I'm not sure why it works...''
Mon, 01 Oct 2007, 14:41
JL235
I believe there are some platforms Ruby runs on which Java doesn't, like Dos. But I would not suggest Ruby because there is no one killer GUI toolkits which beats all toolkits. Instead there are lots which to be honest are pretty crap compared to Swing. Badly documented and ugly are my main faults with most of them. Most also require a framework to be installed on the machine, so you might as well have the user install the Java runtime instead. I believe there are Java run-time packages for distributing with applications.

Instead of just Ruby I would recommend JRuby (Ruby on the Java VM) instead. But you ought to then learn Java first, which means in the short term Java is a far superior option then Ruby (although I am now starting to use Ruby with Swing).

The best option in my opinion would be a mixed project with Java using Swing for the front end of the application and then Ruby for the main program and glue between the various Java aspects. There is no real gain in using Swing with Ruby as 90% of the GUI code is just simple method calls, but it does look pretty!

I wouldn't recommend using Mono as I have heard that it is far behind .Net. You don't want to make a very nice application on Windows and find aspects aren't supported on Mac OS. In that case I would recommend Java as a very similar alternative because the runtime is fully supported and implemented on more operating systems then Mono and .Net.

Note that if this was Windows only I would say C# would be as good (if not better) then Java.
Mon, 01 Oct 2007, 14:44
JL235
No it doesn't compile to an .exe, it compiles to a .jar. A .jar is actually closer to a .zip then a .exe as it's just a compressed file holding all your code files. However there are native Java compilers out there and programs which will hide the .jar in a .exe. The latter option still requires the Java runtime. Google for any options.

I believe Java applets (the browser based Java programs) use a separate Java plugin with your browser.
Mon, 01 Oct 2007, 15:12
TheMadProff
Hmm, the problem is that I 'ideally' need it to natively compile, to keep file size down, and to increase compatibility.

Also, doesn't that mean with java, people can view your code?

Also, I thought the C languages were also used on the Mac OS, for example - in xcode?

Thanks for your advice about java though, I'll look into that...

-=-=-
''It works, but I'm not sure why it works...''
Mon, 01 Oct 2007, 15:30
JL235
The jar itself is tiny. My RTS game is only 64kb. The runtime however would be at a guess around 10 to 20mb.

You can easily take .jars apart to get to the bytecode and then use that to reconstruct the original source code. However to stop that you could use one of the jar to exe programs which will make it far harder to take apart and hide the fact it is Java. ITunes is a Java application.

But I'd get some applications made and completed before you start worrying about if it's natively compiled or not. That is very blurred and grey subject itself. Low down sections of the API (like the Math class) are natively compiled code so your program will be compiling to Java bytecode, then interpreted in order to call compiled code.
Mon, 01 Oct 2007, 17:29
Afr0
I would initially definately recommend C#, but since it's already been mentioned, I'll also mention BlitzMax (but beware - it's a payfor language that isn't available on Limewire, The Piratebay, Isohunt or... well... nowhere that I can remember off the top of my head!).

|edit| If you're going to look for a cracked version though, I would highly suggest you buy it ifyou like it, provided you actually have a creditcard that works on the net. Mark Sibly deserves support! |edit|

|edit| A demo and the full version can be downloaded and bought, respectively, on www.blitzbasic.com |edit|

|edit| Jay Says : OI...! Less of the crackhouses, thankyou!! (and you spelt recommend wrong.) |edit|

|edit| Argh, thanks for pointing that out! Changed it! |edit|

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!
Mon, 01 Oct 2007, 18:01
dna
Purebasic is also another language that compiles on four platforms.

Mac, PC, Linux, and the Amiga OS.

-=-=-
DNA
Tue, 02 Oct 2007, 02:19
JL235
I'd just like briefly say that in my opinion there are lots of problems with Java, but speed is not one of them. For me it has on many occasions outperformed Blitz Basic. If your writing applications I also wouldn't worry about speed as it is rarely an issue.

Instead there are far more important things to worry about such as the speed of your productivity. This in many ways is as or more important, especially if you want to program professionally.

In Java to Ruby there is a whole chapter on different kinds of real life pilot projects people have run in order to help introduce Ruby. I'd suggest that you could do something similar. For example create a pilot application in both Java and Objective-C (or in any other languages you are interested in) and then you can evaluate your experience with both.

Although I wouldn't create anything too easy as you do want to really test making an application. In contrast making something too difficult might detract from the real experience since you may end up spending longer solving the problem in general rather then solving it in Java and Object-C (or any other language you've decided to try out).
Wed, 03 Oct 2007, 15:13
dna
Purebasic can also compile inline assembly and it can reate DLL files.

-=-=-
DNA
Tue, 09 Oct 2007, 16:05
dna
Yes, but BMAX has a little re-learning curve to it. You're right Agent Smith (AS), Purebasic has no advantage over C but you forgot to mention the advantage of having the option of using assembly in Purebasic since this too can be done in C and therefore some compatibility can be achieved.

For end users in general AS, the language used comes down to the OS platform that you intend to work on. A persons needs can change with every version of OSX or Windows, and still there's Linux to contend with.

I myself will have to contend with going to, and staying on, the linux platform while running windows within that. This also may be a solution for themadprof.

-=-=-
DNA
Tue, 09 Oct 2007, 16:24
JL235
Does anyone here have any real intention or need to use assmebly in there game or application? If so why?

Also both Pure Basic and Blitz Max are paid for languages.

My best piece of advise, spend ages on Wikipedia reading about languages. See what appeals to you and then research it further. Then try and make a simple pilot project with some objective about what you want to learn and achieve.

For example make a simple image viewer project in Java using Swing with the aim to learn how to make windows and use widgets, layout managers, event handlers, images and file handling.
Tue, 09 Oct 2007, 16:54
dna
"<<Does anyone here have any real intention or need to use assembly in there game or application? If so why?>>"

I think someone addressed this on the old site.

Assembly language is extremely flexible and one of the more useful things that it does is polymorphism which it alone was the best at handling years ago.

Although C now does this and a host of other programs, like the use of polymorphism, Assembly language still has other advantages, the greatest of these is speed.

-=-=-
DNA
Tue, 09 Oct 2007, 17:02
mike_g
"JL235" Does anyone here have any real intention or need to use assmebly in there game or application? If so why?

Yes. I want to learn how to use the MMX / 3Dnow! registers. That way I can process image data for four pixels at a time. Basically 4X speed, for software rendered stuff

Using Stream processing and Pixel shaders also requires ASM, custom drivers, or something that interfaces with the hardware such as OpenGL or DirectX.

Also the shader support for Cobra3D is a very nice thing. Technically it should piss all over Blitz 3D
Tue, 09 Oct 2007, 17:02
Nolan
Assembly language is extremely flexible and one of the more useful things that it does is polymorphism which it alone was the best at handling years ago.

Although C now does this and a host of other programs, like the use of polymorphism, Assembly language still has other advantages, the greatest of these is speed.


ASM "does" polymorphism? Please explain.

Assembly, while fast, is really not worth it anymore. Most modern languages are fast enough that you don't need to worry about extreme optimization.

Myself? I recommend BlitzMax.

-=-=-
nolandc.com
Tue, 09 Oct 2007, 17:03
JL235
What do you mean by polymorphism? I presume your not referring to polymorphism in the object-oriented sense.

You don't need (and shouldn't have to) drop all the way down to assembly to write an application. Name me one application where people have required to use assembly because it was otherwise too slow.

Besides speed is overrated. Productivity and many other factors are as important. For example I bet I could write more Ruby code then you could write the equivalent in assembly. In the end yours might be technically faster, but that does not mean it is better. Especially not if it took longer and required more testing.
Tue, 09 Oct 2007, 17:09
mike_g
I don't use ASM yet, and its probably bettter not to write everything with it, but it give you access to the hardware in ways that you cant get with languages like Java and Blitz. Its probably best used for certain tasks once in a while and thats about it really.
Tue, 09 Oct 2007, 17:11
Nolan
Its probably best used for certain tasks once in a while and thats about it really.


Precisely. Unless you're coding graphics card drivers or extremely tight math algorithms, you probably don't need it.

-=-=-
nolandc.com
Tue, 09 Oct 2007, 17:25
JL235
Mike_G Yes. I want to learn how to use the MMX / 3Dnow! registers. That way I can process image data for four pixels at a time. Basically 4X speed, for software rendered stuff
Ok, fair point and thanks for a very good example. Your talking about taking advantage of hardware for image processing, not making a GUI. I'd imagine you'd also write that in C to try to make the code as tight and fast as possible since it may be called so often. For those occasions yes, speed is important. For a media player it's not.
Wed, 10 Oct 2007, 04:16
Afr0
You don't need (and shouldn't have to) drop all the way down to assembly to write an application. Name me one application where people have required to use assembly because it was otherwise too slow.


Wolfenstein 3D? Doom? Doom II? Quake? Windows Vista? Windows XP? Linux kernel? Rollercoaster Tycoon? Sonic the Hedgehog 1 and 2? Super Mario Bros?

Also, if you're including Assembly used to write shaders and whatnot for graphics engines for games, then the list turns out larger;

- The Sims 2
- Half Life 2
- Doom 3
- World of Warcraft
- Bioshock
+++

Purebasic has no advantage over C but you forgot to mention the advantage of having the option of using assembly in Purebasic since this too can be done in C and therefore some compatibility can be achieved.


OI! BlitzMax also supports inline Assembly, thank you very much!

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!
Wed, 10 Oct 2007, 06:19
Nolan
Wolfenstein 3D? Doom? Doom II? Quake? Windows Vista? Windows XP? Linux kernel? Rollercoaster Tycoon? Sonic the Hedgehog 1 and 2? Super Mario Bros?


Aside from XP and Vista, these are all old applications. I highly doubt any of us will be coding an operating system any time soon.



-=-=-
nolandc.com
Page : 1 2 Next
Prev