Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Contrary to the premise of the question: One of the first mainstream mobile devices was the <a href="http://en.wikipedia.org/wiki/Apple_Newton" rel="nofollow noreferrer">Newton</a>, which was designed to use a specialized dynamic language called <a href="http://en.wikipedia.org/wiki/NewtonScript" rel="nofollow noreferrer">NewtonScript</a> for application development. The Newton development environment and language made it especially easy for applications to work together and share information - almost the polar opposite of the current iPhone experience. Although many developers writing new Newton applications from scratch liked it a lot - NewtonScript "feels" a lot like Ruby - the Newton had some performance issues and porting of existing code was not easy, even after Apple later added the ability to incorporate C code into a NewtonScript program. Also, it was very hard to protect one's intellectual property on the Newton - other developers could in most cases look inside your code and even override bits of it at a whim - a security nightmare.</p> <p><strong>The Newton was a commercial failure.</strong></p> <p>Palm took a few of Apple's best ideas - and improved upon them - but tossed dynamic language support as part of an overall simplification that eventually led to PalmOS gaining a majority of the mobile market share (for many years) as independent mobile software developers flocked to the new platform.</p> <p>There were many reasons <em>why</em> the Newton was a failure, but some probably blame NewtonScript. Apple is "thinking different" with the iPhone, and one of the early decisions they seem to have made is to leverage as much as possible off their existing core developer base and make it easy for people to develop in Objective C. If iPhone gets official support for dynamic languages, that will be a later addition after long and careful consideration about how best to do it while still providing a secure and high-performance platform.</p> <p>And 5 minutes after they do, others will follow. :-)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. CONewtonScript required a lot of resources (CPU and memory) for a handheld device at the time; the performance was perfectly acceptable, though. At the end, the MessagePad 2100 was nearly $1000, a >100MHz StrongARM with 4MB RAM whereas a Palm Pilot was much cheaper, ran in <1MB RAM with a slow 68K-derivative processor. Of the mainstream languages today, NewtonScript is most related to JavaScript - they're both prototype-based. The Danger/Android platforms are probably the closest to this ideal today, as both of their Java VMs perform a preprocessing step on the host and are relatively simple.
      singulars
    2. COActually, NewtonScript was the *second* language for Apple’s Newton project: The first was even more dynamic, Dylan [probably a pun on Dynamic Language], implemented in Macintosh Common Lisp. That project was killed, replaced by something with less unacceptable performance. (I love the Newton as a programmer, but even I have to admit that for the user, it was too slow.) Time will tell whether Apple’s competitors are now repeating Apple’s mistake.
      singulars
    3. COOne of the features of NewtonScript, differential inheritance, allowed this very dynamic, object-oriented programming language (which could also be compiled into byte code) to function with very _low_ memory requirements, considering. It meant that child/related objects need only needed to store data that was different than parent/related objects. Of course, the searching to implement this lead to some of the performance issues. [io](http://iolanguage.com/), a NewtonScript cousin, also implements differential inheritance.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload