Hi Dakotah,

Q: What is the best programming language out there? What language meets
the following needs the best?

A: Well, Its not a matter of any certain language being "the best" but more weather it fulfills your personal requirements. Ask ten different programmers which they personally think is the best you'll get ten different answers so I don't think there is any such thing as a "best programming language" per say, but I'll attempt to give you some advice based on your criteria below.

Q: Sourcecode written in a format using numbered lines or at least not
relying on spacing, as that can grow difficult to track.

A: I don't know of any modern programming languages that use numbered lines. That was a feature of Apple Basic, and is of no use to us. However, most languages like C, C++, Java, C#.Net, and Visual Basic.Net don't require any kind of code formatting such as line indentions and special spacing. Although,it is a good idea to do so if you intend to share your source code with a sighted developer.

Q: Able to be played on a wide variety of versions of Windows and perhaps
other Operating Systems, including for Mac and possibly for mobile
devices.

A: Two languages come to mind here.

One is Microsoft C#, calledC-Sharp, because those apps will run on any platform that has a compatible .Net Framework installed. Currently you can target Windows XP, Vista, Windows 7, and Windows 8 using the Microsoft .Net Framework, you can target Windows mobile devices using the .Net Compact Framework, and target Mac OS and Linux via the Mono Framework. So even though C# is technically a Microsoft creation its not as proprietary as say Visual Basic as C#.Net has wide spread use out side of the
Windows environment.

The other option you can look at here is Java. Recently its been acquired by Oricle, but there are runtime environments available for Windows, Mac, Linux, and there are custom frameworks available for Android and a number of other platforms. As a result Java can be very portable across platforms if developed correctly.

Q: Able to be used for network communications.

A: Networking applications is not handled by a programming language but the APIs, the libraries, available for that language. Almost every programming language in existance can do this. There are often multiple options for programmers to do the same thing.

For example, if I were developing a game in C# using SDL for input, audio, and networking I would use a library called sdl-net.dll to communicate between versions of the game on Mac,Linux, and Windows. The same library, sdl-net.dll, is used in Python's Pygame, in SDL.Net for C#, JSDL for Java, etc so its not the language but the API that is responcible for networking applications.

Q: Able to support Speech Application Interfaces of one or more types.

A: Well, that is a trickier issue. If we are talking about Windows platforms you can access Jaws, Window-Eyes, Sapi, etc through a Com based interface which many Windows APIs support. However, since Mac and Linux use different APIs and there is no such thing as Com on those platforms it becomes more difficult to support speech systems. As far as I know there currently isn't any way to do this with C#.Net on non-Windows platforms.

For Java programmers the only universl way to support speech on multiple platforms is by using the FreeTTS synth which sounds like Robbie the Robot on drugs. However, QuentinC is working on a speech library to allow Java developers to use screen readers as well as Sapi support on Windows.

In the end the only way to really support multiple speech systems, especially if we want to include non-Windows speech systems, is by using C++. With C++ you can build your own custom libraries to wrap Jaws, Window-Eyes, SuperNova, SystemAccess, Speech-Dispatcher, and so on. That is the only way to support everything you might want to use.

Q: Right now, I'm considering learning Java, but I've heard that that
language presents difficulties concerning accessibility.

A: Yes and no. It all depends on what APIs you use. By default Java programmers use an API called Swing for creating graphical user interfaces. This is not very accessible to screen readers, and the Java Access Bridge for Swing apps isn't being maintained. This is what gives Java such a bad name, but certainly isn't a developer's one and only choice.

The Eclipse IDE for Java comes with an alternative toolkit called SWT. SWT is very accessible. How it works is its a wrapper for the operating systems native graphics toolkit rendering the applications accessible to your screen reader. If you build your Java app using SWT for Windows it will default to the Win32 API and Jaws, Window-Eyes, NVDA etc does not need the bridge because your Java app is using standard controls. If you write your Java app for Linux and compile using SWT for Linux you can use GTK+ which works well with Orca. On Mac OS SWT uses a Cocoa interface that works well with VoiceOver.

Basically, my point is this. If you are afraid of Java because of accessibility issues don't be. If you know what you are doing you can create applications that are just as accessible as any other. It just requires a bit more work learning the SWT API and using it instead of Swing. Otherwise there aren't any issues I can see that would give you troubles of an accessibility related nature.

Cheers!


---
Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
http://mail.audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/gamers@audyssey.org.
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to