Python/Ruby как ОС для мобильных устройств

Метод замены Java принимает 2 параметра - символ, который вы хотите заменить, и символ, которым вы его заменяете.
Поскольку все ваши персонажи одинаковы, вы не хотите использовать метод replace, а вместо этого метод substring. Вот документация для него.

10
задан John Topley 3 May 2009 в 15:56
поделиться

13 ответов

В общем, все это. Память, скорость и, наверное, самое главное знакомство программиста. Apple вкладывает огромные средства в Objective C, Java знают в основном все, и C # также очень популярен. Если вы стремитесь к массовой привлекательности для программистов, имеет смысл начать с чего-то популярного, даже если это немного скучно.

На самом деле никаких технических требований не остановить. Мы могли бы написать целый стек Ruby и позволить программисту повторно реализовать медленные биты в C, и это было бы не так уж сложно. Это было бы инвестицией для любой компании, производящей мобильные ОС, и в конце концов я не уверен, что они так сильно выиграют от этого.

Наконец, это самое начало мобильных устройств. В 5 лет я бы не

14
ответ дан 3 December 2019 в 18:36
поделиться

Contrary to the premise of the question: One of the first mainstream mobile devices was the Newton, which was designed to use a specialized dynamic language called NewtonScript 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.

The Newton was a commercial failure.

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.

There were many reasons why 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.

And 5 minutes after they do, others will follow. :-)

2
ответ дан 3 December 2019 в 18:36
поделиться

The situation for multiple languages on mobile devices is better than the question implies. Java (in its J2ME incarnation) is available these days even in fairly cheap phones. Symbian S60 officially supports Python, and Javascript for widgets, and there's a Ruby port although it's still fairly experimental. Charles Nutter has experimented with getting JRuby running on Android. rhomobile claims to allow developing an app in Ruby which will then run on all the major smartphone OSes, although that kind of portability claim implies restrictions on what those apps can achieve.

It's important to distinguish between the mobile OS (which does operating system stuff like sharing and protecting resources) and the runtime platform (which provides a working environment and a set of APIs to user-written applications). An OS can support multiple runtimes, such as how you can run both C++ and Java apps in Windows, even though Windows itself is written in C++.

Runtimes will have different performance characteristics, and expose the capabilities of the OS and hardware to a greater or lesser degree. For example, J2ME is available on tons of devices, but on many devices the J2ME runtime doesn't provide access to the camera or the ability to make calls. The "native" runtime (i.e. the one where apps are written in the same language as the OS) is no different in this respect: what "native" apps can do depends on what the runtime allows.

2
ответ дан 3 December 2019 в 18:36
поделиться

Одним из наиболее актуальных вопросов является сборка мусора. Сборка мусора часто приводит к непредсказуемым паузам во встроенных машинах, которые иногда требуют производительности в реальном времени.

Вот почему существует Java Micro Edition, в которой есть другой сборщик мусора, который уменьшает паузы в обмен на более медленную программу.

Пересчет мусора коллекторы (такие как в CPython) также менее подвержены паузам, но могут взорваться, когда удаляются данные с множеством вложенных указателей (например, связанный список).

1
ответ дан 3 December 2019 в 18:36
поделиться

I think that performance concerns may be part of, but not all of, the reason. Mobile devices do not have very powerful hardware to work with.

I am partly unsure about this, though.

1
ответ дан 3 December 2019 в 18:36
поделиться

Я подозреваю, что основной причиной является сочетание безопасности и надежности. Вы не хотите, чтобы кто-то мог легко взломать телефон, и вы хотите иметь некоторый контроль над тем, что устанавливается.

0
ответ дан 3 December 2019 в 18:36
поделиться

На джейлбрейкнутых айфонах может быть установлен python, и я на самом деле очень часто использую python.

1
ответ дан 3 December 2019 в 18:36
поделиться

webOS - новая ОС от Palm, которая дебютирует на Pre - предлагает вам писать приложения для среды исполнения webkit на JavaScript. Время покажет, насколько оно успешно, но я подозреваю, что оно не будет первым, кто пойдет по этому пути. Когда мобильные устройства станут более мощными, вы увидите, что динамические языки становятся все более распространенными.

0
ответ дан 3 December 2019 в 18:36
поделиться

Memory is also a significant factor. It's easy to eat memory in Python, unfortunately.

0
ответ дан 3 December 2019 в 18:36
поделиться

Есть много причин. Среди них:

  • деловые причины, такие как стратегии блокировки программного обеспечения,
  • эффективность: динамические языки обычно воспринимаются медленнее (а в некоторых случаях действительно медленнее, или, по крайней мере, обеспечивают ограничение количества преследований). вы можете сделать. На мобильном устройстве оптимизация кода необходима гораздо чаще, чем на ПК), и, как правило, использует больше памяти, что является серьезной проблемой на портативных устройствах с ограниченной памятью и небольшим объемом кэш-памяти,
  • поддерживая разработку просто: платформа, которая поддерживает Python, Ruby и Java из коробки:
    • означает трижды работу по написанию документации и оказанию поддержки,
    • делит усилия по разработке на три; для появления полезного материала в Интернете требуется больше времени, и на вашей платформе меньше разработчиков, использующих тот же язык, что и вы,
    • требуется больше места на устройстве для поддержки всех этих языков,
  • необходимо убедить руководство , Я всегда чувствовал, что достоинства Java легко объясняются нетехнической аудитории. .Net и Obj-C также кажутся очень естественным выбором для платформы Microsoft и Apple, соответственно.
0
ответ дан 3 December 2019 в 18:36
поделиться

Существует дистрибутив Linux для OpenMoko Freerunner под названием SHR. Большая часть его настроек и кода фреймворка написана на Python и ... ну, это не очень быстро. Это терпимо, но с самого начала планировалось переписать его на Vala.

С другой стороны, мои несколько небольших приложений работают достаточно быстро (с единственным недостатком, заключающимся в большом времени запуска), чтобы рассмотреть Python для разработки пользовательских приложений.

Для справки: Freerunner имеет ARM-что-то 400MHz и 128MB RAM. Я предполагаю, что как только мобильные устройства перейдут на 1 ГГц, такие языки, как Python, будут достаточно быстрыми и для вещей среднего уровня (низкоуровневым является ядро).

0
ответ дан 3 December 2019 в 18:36
поделиться

My Palm has a Lua implementation that allows you to do reasonable GUIs, a fairly useless old Python 1.5, a superb Forth (which allows you to produce compiled apps) and a Scheme that allows for copmlete GUI dev.

At the recent Apple WWDC 2009, the Symbian alliance hosted an event the first day in an adjacent building with the teaser of a free Nokia 5800 for everyone coming even just for the lunch with marketing pitch - a US$350 phone. The event was to pitch developing for the Ovi Store and they had developers there and a programming competition on the afternoon.

The three languages they were emphasizing for development for Symbian were Java, Flash (lite) and Python. Python is the only option that allows you to work on the device or a PC and includes samples with OpenGL ES and other phone features.

With a utility to bundle Python apps into standalones that can be hosted on the store, I'd say Python on S60 is right up there as a contender for serious dynamic language on the (still) dominant platform.

0
ответ дан 3 December 2019 в 18:36
поделиться

Открытый исходный код Rhomobile Rhodes предлагает это сегодня. Первые в мире реализации Ruby для всех смартфонов.

0
ответ дан 3 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: