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.