Компания Google представила (http://google-opensource.blogspot.com/2012/09/j2objc-java-to...) новый открытый проект J2ObjC (https://code.google.com/p/j2objc/), в рамках которого развивается транслятор, преобразующий исходные тексты на языке Java в представление на языке Objective-C, пригодное для использования в приложениях для iPhone и iPad. Код транслятора написан на языке Java и распространяется под лицензией Apache.
По задумке разработчиков, J2ObjC позволит унифицировать процесс разработки приложений на языке Java, ориентированных на использование в различных мобильных платформах. В частности, предлагается основу приложения, не связанную с обеспечением работы пользовательского интерфейса, разрабатывать на языке Java, а обвязку с реализацией интерфейса с использованием родных средств платформы. Например, базовый Java-код, определяющий логику работы приложения и методы обработки данных, может быть использован в программах для платформы Android, iOS или в web-приложениях (трансляция Java в JavaScript осуществляется при помощи инструментария GWT (http://code.google.com/webtoolkit/)).
Что касается разработки для iOS, то в процессе сборки приложения компоненты на языке Java будут прозрачно транслироваться при помощи J2ObjC в код на Objective-C, позволяя сформировать итоговый проект целиком на Objective-C. J2ObjC не является эмулятором и позволяет формировать полноценные итоговые проекты на языке Objective-C, что полностью соответствует требованиям компании Apple в отношении используемых средств разработки. Интересной особенностью J2ObjC является то, что транслятор осуществляет преобразование Java-классов в соответствующие классы Objective-C, позволяя напрямую использовать iOS Foundation Framework.
В J2ObjC поддерживаются все возможности языка Java 6 и большая часть runtime-функциональности, используемой в клиентских приложениях, включая исключения, внутренние и анонимные классы, generic-типы, потоки и отражения. Также поддерживается трансляция в Objective-C и запуск тестов JUnit. Для сборки могут быть использованы штатные инструменты, такие как Xcode и Make. В рамках проекта J2ObjC не планируется предоставление унифицированного платформонезависимого тулкита для разработки пользовательского интерфейса, т.е. для создания интерфейса для iOS требуется создание обвязки на Objective-C и Objective-C++, использующей Apple iOS SDK, для Android требуется использование Android SDK, а для web-приложений - GWT.URL: http://google-opensource.blogspot.com/2012/09/j2objc-java-to...
Новость: http://www.opennet.me/opennews/art.shtml?num=34840
Это чтобы изначально для андроида писали чтоли?
Поражаюсь вашей проницательности.
Расстроен Вашей язвительностью
да а потом коряво портировали под иос, что в итоге приведет к их кривости XD
Яблоко не пропустит, у них там строго, как в КНДР.
Яблоко даже и не узнает.
тогда возникает вопрос зачем гугл вкладывал в этот инструмент деньги, раз все так бесперспективно
в любой крупной компании есть "стрельнувшие" и "не стрельнувшие" проекты. В "не стрельнувшие" тоже сначала вкладывают деньги, пока не убедятся что они "холостые" или "очень не меткие". Это без всякой привязки к этой новости, просто не надо так категорично кидаться утверждениями
нуну, перед тем как чтото делать очевидно рассмотреть возможные варианты последствия и перспектив чем вслепую начать пилить неизвестно что, так что про стрельнувшее и нестрельнувсшее ненадо, они там наверняка 10 раз подумали что из этого получится и чем им это грозит
> нуну, перед тем как чтото делать очевидно рассмотреть возможные варианты последствия и
> перспективВыстрелит или нет - однозначно сможет сказать только машина времени, и даже она ошибается (влияние предсказания на будущее).
Все остальное - вероятностное.> они там наверняка 10 раз подумали что из этого получится и чем им это грозит
Подумали.
Поэтому и "стреляют")
Грубо говоря, полезность стреляния подтвердит расчет с точки зрения минимакса из теории игр.
Есть шанс потерять стоимость разработки(правда, он 100%ный).
Есть шанс получить миллиарды.
на счёт топика однозначно можно сказать что не выстрелит, так же, как и не выстрелил NaCl. Так же, как и не выстрелило дерьмо типа адобе эйр и хромеос вечно будет в убогом состоянии. Не нужно быть гением или провидцем чтобы это понять.А причина очень проста - никому не нужны лишние прослойки-костыли, всё.
Особенно костыль уровня топика, который для нормальной бесшовной реализации требует окуенную кучу человеко-часов и сомнительный конечый результат.
> на счёт топика однозначно можно сказать что не выстрелит, так же, как
> и не выстрелил NaCl. Так же, как и не выстрелило дерьмо
> типа адобе эйр и хромеос вечно будет в убогом состоянии. Не
> нужно быть гением или провидцем чтобы это понять.
> А причина очень проста - никому не нужны лишние прослойки-костыли, всё.
> Особенно костыль уровня топика, который для нормальной бесшовной реализации требует окуенную
> кучу человеко-часов и сомнительный конечый результат.Напомните, в каком это месте NaCl прослойка? А лучше - не несите чушь. Это ж надо - единственную технологию, позволяющую эффективно и безопасно гнать недоверенный нативный код обзывать прослойкой :-)
>на счёт топика однозначно можно сказать что не выстрелит,Как iOS/Android разработчик смотрю на тебя как на... профана
> на счёт топика однозначно можно сказать что не выстрелит,Я в общем говорил)
> так же, как и не выстрелил NaCl.
Если все же выстрелит, согласитесь пересмотреть свою точку зрения?
Они могут попробовать запретить использовать транслятор. Но как они проверят?В любом случае, лучше вообще не иметь дел с Эпплом и не разрабатывать под iOS, чем потом ныть в блоге о том, что твое прекрасное приложение забанили. А если забанили, то сам виноват, знал же с кем связался.
Ну ёёё, не транслятор распознавать будут, а всегда распознавали кривые приложения. Будет кривоту транслировать - не пропустят.
С Яблоком связываться нужно, если деньги хочешь заработать, увы и ах.
Зарабатывать *достаточно* можно и не связываясь с Эпплом и вообще оставаясь верным своим принципам. Зарабатывать максимально много — зачем?
> В любом случае, лучше вообще не иметь дел с Эпплом и не
> разрабатывать под iOS, чем потом ныть в блоге о том, что
> твое прекрасное приложение забанили. А если забанили, то сам виноват, знал
> же с кем связался.Походу ты даже требования к публикуемым в аппсторе приложениям не читал. Наверняка у тебя даже нету id разработчика
> да а потом коряво портировали под иос, что в итоге приведет к
> их кривости XDВы раскрыли тайный замысел - увеличить кривизну приложений в иосе! :)
java писана на си. java опять перепиливается в каой-то си.
Где-то тут обман.
Если под java называть компилятор, то он написан на самой java. Если библиотеки, то большая часть опять же java. На си только часть JVM. В JVM еще и ассемблерный код бывает, правда его постепенно выпиливают.PS JVM может быть полностью переписана на java, только это не окупится, потому и не сделано.
сначала гугл нае обманули оракл теперь яблоко )
android это не java
это не java это objC
)
Это выглядит определенно выгодней изначально убогого Monotouch.
Мне кажется, или логичнее было бы выпустить обратный транслятор (ObjC -> Java-Android)?
> Мне кажется, или логичнее было бы выпустить обратный транслятор (ObjC -> Java-Android)?Кажется. Программистов на Java много больше программистов на ObjC.
> Программистов на Java много больше программистов на ObjC."Программист на Java" понятие очень уж растяжимое.
А есть Java2C ? Ну или хотябы Java2C++ ?
> А есть Java2C ? Ну или хотябы Java2C++ ?А зачем, если не секрет?
Компиляторы собирающие из java кода бинарь (exe) есть, только они ну очень нишевые. А преобразователь в С или С++ код какой бонус может принести?
gcj
Запускать бинарь там где нет жабы - чёж не понятного?При этом С есть подо всё, но писать на нем что то внятное могут только достаточно опытные прогеры. А это дорого. На жабе же быдлокодить может любая мартышка, и это как то даже работать будет. Скрестить ежа с ужом - и нате вам профит :)
> При этом С есть подо всё, но писать на нем что то
> внятное могут только достаточно опытные прогеры. А это дорого. На жабе
> же быдлокодить может любая мартышка, и это как то даже работать
> будет. Скрестить ежа с ужом - и нате вам профит :)Довольно предвзятое и обывательское мнение. Порог входа в деятельную разработку на Яве для новичка сейчас крайне высок. Скажем на том же Obj-С создавать что-то для iPhonе-а как раз может ну если не каждая мартышка, то через одну точно. А под Андроид писать не то чтоб сложнее -- тут вопрос не сложности самого процесса -- сложнее въехать что куда и зачем. Кривая обучения куда более крутая.
>> А есть Java2C ? Ну или хотябы Java2C++ ?
> А зачем, если не секрет?
> Компиляторы собирающие из java кода бинарь (exe) есть, только они ну очень
> нишевые. А преобразователь в С или С++ код какой бонус может
> принести?"Бинарь" собирает любой джит. Любой, а не какие-то "ну очень нишевые решения". Любой современный ЕЕ-сервак наиболее востребованный код компилит в память в бинарь.
> А есть Java2C ? Ну или хотябы Java2C++ ?Есть. Вот хотя бы сабж. Obj-C это Си и есть, только с присобаченным синтаксисом смолтолка.
Отлично!
Значение новости может понять только тот кто одновременно и под iOS и под Android разрабатывает.
Даже если делить проект между несколькими людьми - логику можно на java вынести - уже экономия ресурсов.
Это намного более приятный и удобный вариант чем глючные PhoneGap/Titanium
Я разрабатываю и считаю подобные приблуды абсолютно бесполезными и даже вредными.
Бесполезный костыль. Да и фаундэшэн обеспечивает только базовый функционал. Зачем его вообще упомянули? Самый верный путь это делать логику вообще не зависимой от реализации -- хорошо проектировать, а не хвататься сразу лабать код на том, что сердцу ближе.