Hi,
First of, sorry for some harshness, and second, my apologies for
technical detail of the following:
Alex described one part of the picture, now I'll fill the rest:
These two devices - iPhone/iPod Touch/iPad and BrailleNote
(rather, we call it "platforms") are written in two fundamentally
different children of C programming language (rather,
variants/improvements to C): Objective-C and C++, respectively.
These
two languages added object-oriented programming approach to C in
different ways and using different styles: CPP sort of retains
syntax of C but added classes, inheritence and simulation
libraries, whereas Objective-C uses slightly different syntax and
added some
message passing syntax. Also, they were developed by two
different companies and individuals - CPP came in 1983 via Bjarne
Stroustrup,
whereas Objective-C came from Apple. There is sort of a hybrid
called Objective-C++, which adds some CPP syntax to Objective-C.
A typical "hello world" pseudo-code for these two languages would
be:
* In C++:
#include <iostram
using namespace sdd;
int main()
{cout << "Hello World!" << endl;
return 0;}
* In Objective-C:
#import <stdio.h
int main()
{printf("Hello World!");
return 0;}
These two says the same thing: print the message "Hello World" to
the computer screen, but they use differing syntax.
A declation for a class and other things sets these apart:
* In C++:
class something
{//properties;
// methods;}
class child: public something
{//child's own properties and methods};}
* In Objective-C:
@interface something: NSObject
{//somethings;}
@interface child: something
{//the child of the something class;}
As you can see, they are different in syntax and declaration
style. Try compiling Objective-C code in say, a CPP compiler and
see what you'll get (a bunch of syntax errors) and vice versa.
But this doesn't stop with language barriers: when some
programmers and computer scientists think of iOS (the operating
system (system programs) that powers iPhone, iTouch and iPad) and
Windows CE, we usually take into account the differences in
philosophy and model between Unix and Windows. What iOS really
is just an optimized version of Mac OSX for Mac computers which
are adapted for ARM processors and for mobile use, whereas
Windows CE is quite a different approach from Windows Vista or 7
(they're not the same). With this knowledge, if we add the
programming language differences from above (CPP
for Windows CE and Objective-C for Mac), we get different
philosophies and approaches when undertaking a project that
requires different strategies. As for the rest of software
story, I'll cordially ask other experts to fill in the gap.
Now let's think about availible hardware resources. Even though
both platforms run almost the same family of ARM processors (BN
is slower than current iOS devices), they run differently because
of the way the operating systems and programs use hardware. For
instance, there are different ways of invoking touchscreen
gestures between iOS and Windows Phone (even though they
advertize multi-gesture technology) and they use differing ways
of managing programs from OS level. Besides, the OS's structures
are different, so a program that was written for say, Windows CE
7.0 would not run under iOS 5.0.1 (it could, given that they
would use same family of bit patterns for instructions) because
of the way OS treats these executable images (a microprocessor
and OS are, as far as humans are concerned, just machines that
knows nothing unless programmed and expects its way of formatting
data).
To connect this thread more with this list, let us suppose that
HumanWare does decide to build a KeySoft-like suite for iOS 6.0
(iOS 6.0 might be released later this year, according to
patterns). There are three requirements to this project: same
functionality as KeySoft on the BrailleNote, needs to work well
with touchscreens and should have a mechanism to sync its data
with an availible BN. We know that:
* BrailleNote and iOS devices has same family of ARM processors
with the exception of some iOS models, which have dual core
processors.
* iOS devices are enhanced Unix/Mac systems with touchscreens.
* BrailleNote runs on a customized Windows CE OS.
* iOS requires Objective-C and Mac development program, whereas
BrailleNote requires CPP and Visual Studio on Windows.
There are at least three approaches to going forth with this
"hypothetical" project:
* Trying compiling: Suppose HW decides to add a KeySoft project
under Mac's IDE and just compiles the CPP cone.
* Find and replace: replace any CPP code with equivalent code of
Objective-C.
* Optimize: Even if it takes time, start from scratch and build
something that runs smoothly with touch input.
In your opinion, which method would satisfy the above project
requirements: just compiling, replacing or optimizing? I'd say
"optimizing" for a number of reasons: good learning curve for iOS
development, stability and efficient development that'll take
advantage of touch gestures and
optimizing not only the iOS port of this suite,
but also the BN's suite so both versions can run better than
before (better performance for BN's version and good ratings from
App Store users for iOS version).
As you can see, coming up with two ports of the same project that
retuires different languages for each version and differing
philosophies requires careful planning; and as Alex, I and others
can testify: computer science is not just about programming, and
programming is not just about coming up with awesome algorithms
in seconds. As you learn more about programming and how
computers work, you'll find that there are even problems that
experts haven't got an answer (for one of these, when you solve
it (and if others confirm it), you get a million dollars in your
bank account and a chance to lecture at Harvard or UC Berkeley),
or that it requires that you learn about integrals of four
dimensions and Turring Machines (and other so-called Automata
Theory, which I won't go into).
If you have any general questions about programming for iOS
devices, I recommend asking them on the
programming list (and I'm sure people who are more familiar at
this subject) would be happy to answer your questions in details.
For now, I'm out.
Again sorry for some techieness and harshness here.
Cheers,
Joseph P.S. I promise: Since the subject of game creation came
out, I'll answer that question and host of others on the next
post.----- Original Message -----
From: Tyler <[email protected]
To: [email protected]
Date sent: Sun, 04 Mar 2012 21:00:45 -0500
Subject: [Braillenote] apps for Apple devices vs. Braillenotes
Why is it said that Apple apps won't work on Braillenotes? I
finally looked up Iphone on
Wikipedia, and it said that the apps are written in Ajax. As a
programmer, I know that Ajax is
a way of doing Javascript; the J in Ajax stands for Javascript.
So, why would an Apple
app only work on Apple and not on a Braillenote? Would a
Javascript file like I would write
work on an Iphone?
Tyler Z
___
Replies to this message will go directly to the sender.
If your reply would be useful to the list, please send a
copy to the list as well.
To leave the BrailleNote list, send a blank message to
[email protected]
To view the list archives or change your preferences, visit
http://list.humanware.com/mailman/listinfo/braillenote