LINUX.ORG.RU

Какова вероятность, что Google заменит Java на Go в Android?

 , , ,


0

1

Например, для популяризации и продвижения языка, а также чтобы полностью исключить всякие проблемы с Oracle и другими мутными конторами?

Сколько вы дадите очков вероятности из 100?

Продвинувшись в веб-разработке до состояния зарабатывать деньги, решил освоить разработку под Android (про Cordova в курсе), но смущает Java с её нереальным количеством вермишели в коде, простейший хелловорлд в которой выглядит как законченная программа на руби/питоне.

Ну и вот решаю, начать обмазываться джавой или всё-таки начать осваивать го, оба сразу языка не осилю.


Ответ на: комментарий от redhat

А что тебе другое надо? Не хочешь жабу - тебе уже сказали, что можно и без нее.

lazy_aleks
()

Какова вероятность, что Google заменит Java на Go в Android

в течении 10 лет 1E-10, и это верхняя оценка..

google продаёт Android в котором jvm и java, и балуется с Go. Убить продажи ради развлечения? Это фантазия не из реального мира

MKuznetsov ★★★★★
()

go это попытка неосиляторов переплюнуть эрланг - что-то удалось, что-то не очень. С джавой непонятно всё - слишком большие риски несмотря на красоту.

Не хочется думать что постоянные подтормаживания андроидов это не джава... ага ... ;) С этим безобразием надо что-то делать. Но реально го до джавы далековато ещё.

anonymous
()
Ответ на: комментарий от mono

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

F457 ★★★★
()
Ответ на: комментарий от lazy_aleks

это в стиле - выпустим новую версию и всё заработает, ага...

anonymous
()
Ответ на: комментарий от F457

ерунда, никто в йаве не заставляет пользоваться низкоуровневыми средствами. в java.util.concurrent высокоуровневых классов для чего угодно полно.

anonymous
()

для популяризации и продвижения языка

До сих пор их это, вроде, не сильно заботило. Или они таки что-то такое предпринимают?

asklor
()

смущает Java с её нереальным количеством вермишели в коде, простейший хелловорлд в которой выглядит как законченная программа на руби/питоне.

Вот когда столкнешся со всякими legacy проектами - поймешь всю прелесть такой «вермишели». Чужой код читается не сложнее книжки на английском, в отличии от всякого динамического и/или эзотерического г-на.

Nagwal ★★★★
()

но смущает Java с её нереальным количеством вермишели в коде

use Scala luke.

а вообще Go «уже» работает на Android, дальше будет более тесная интеграция, о замене речи нет, но два языка паралельно нативно вполне могут работать

The most notable new feature in this release is official support for Android. Using the support in the core and the libraries in the golang.org/x/mobile repository, it is now possible to write simple Android apps using only Go code. At this stage, the support libraries are still nascent and under heavy development. Early adopters should expect a bumpy ride, but we welcome the community to get involved.

umren ★★★★★
()

Заменит? 0

Добавит в сдк? 30

Добавит в ндк? 100

PolarFox ★★★★★
()

будь единая(ну максимум до 5) архитектура для всех где установлен андроид тогда - 90%, а в текущем состоянии в районе 10%

anonymous
()
Ответ на: комментарий от mono

Претензия к котлин в том, что ничего существенного он не привносит, чтоб им заморачиваться. А была бы там многопоточность модная... А то получишь проект на смеси котлин джава сэкономив пару строчек, который только сам и будешь поддерживать.

F457 ★★★★
()

Google не продвигает языки программирования. Google продвигает свой browser, это их бизнес, не языки програмирования.

Golang не был готов для реального использования в больших проектах до версии 1.1 В той версии появился race detector - http://blog.golang.org/race-detector

Golang раскидывает горутины по потокам(threads) ОС. Это среда для возникновения race conditions. Race detector позволяет отслеживать это в «рантайме»(runtime). Идея состоит в написании тестов которые предположительно могут вызвать race conditions, и отслеживание ошибок используя этот race detector. Рутинная исследовательская работа после написания большой программы.

В Ерланг такой проблемы в языке нет, потому что «переменные» в Erlang невозможно изменять. Хотя вроде бы в некотором софте могут быть проблемы такого рода, в db Mnesia, как сообщают.

Говорят что в языке Rust определяют race conditions уже на этапе компиляции. Надо будет посмотреть на язык. Хотя те кто над ним работают всегда напоминают что Rust это «work in progress», о стабильности пока речи нет.

В Go функции высокого порядка(high order functions, anonymous functions, closures), и возможно другие средства которые усложняют работу сборщика мусора. По крайней мере в Node.js так, где часто основная задача нахождение утечек памяти в асинхронном коде который и без утечек разбирать по частям трудно.

В Erlang каждый процесс имеет свой отдельный GC.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от F457

Ну у него и цель такая, чтобы существенно ничего не меняя упростить жизнь. Эдакая скала-лайт.

А разобраться джависту в смешанном проекте на java/kotlin - это вообще пустяковое дело.

mono ★★★★★
()

Какова вероятность, что Google заменит Java на Go в Android?

В ближайшие 10 лет – 0%.

Например, для популяризации и продвижения языка

Зачем это Google?

а также чтобы полностью исключить всякие проблемы с Oracle и другими мутными конторами?

С Oracle нет проблем.

Продвинувшись в веб-разработке до состояния зарабатывать деньги, решил освоить разработку под Android (про Cordova в курсе), но смущает Java с её нереальным количеством вермишели в коде, простейший хелловорлд в которой выглядит как законченная программа на руби/питоне.

http://www.thejach.com/imgs/lisp_parens.png

про Java можно похожую картинку нарисовать. Кто–то видит вермишель. Кто–то видит суть, а вермишешь мозгом отфильтровывается.

Ну и вот решаю, начать обмазываться джавой или всё-таки начать осваивать го, оба сразу языка не осилю.

Начинай обмазываться. Реальных альтернатив у тебя нет.

Legioner ★★★★★
()
Ответ на: комментарий от tp_for_my_bunghole

В Erlang каждый процесс имеет свой отдельный GC.

да ладно. Три с половиной миллиона GC ?

Мнезия это не более чем приложение, реализованное на самом языке. Это фреймворк над dets/ets. Всё что можно там, можно и в мнезии. Насчёт нарушения иммутабельности первый раз слышу. Изменение определённых сущностей в (d)ets вроде возможно, да.

Erl слишком прост и дёшев, нужно учить emacs - как пугало ;)

anonymous
()
Ответ на: комментарий от anonymous

да ладно. Три с половиной миллиона GC ?

Да. Только атомы хранятся в отдельном общем пространстве и вообще никогда не подвергаются GC. Сколько создашь, столько их будет в VM всегда, и есть максимально возможное число атомов в виртуальной машине Erlang. Бинарные данные больше определённого размера тоже хранятся в отдельном общем пространстве для виртуальной машины.

А так, у каждого процесса свой GC, что является одной из главных причин почему Erlang хоть медленее некоторых других языков, но держит миллионы соединений при правильной организации взаимодействия легких процессов. Это одно из требований fault tolerance.

Node.js тоже держит миллионы соединений, но не обслуживает их ))) При миллионах соединений, node.js их не закрывает, но в это время в панике работает только GC общая для всей системы, и каждый запрос может обрабатываться 5-10 минут. Зато героически держит. JIT хороший, но он отстраняется от процессора сборщиком мусора.

Хорошие сборщики мусора только у Java(которая «индустриальный стандарт» где программисты расходный материал), Lua(нужно было игровой индустрии), и особенная система управления памятью в Newlisp.

В Mono вроде бы тоже хороший сборщий(sgen) в последних версиях.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)

но смущает golang с её нереальным количеством вермишели в коде, простейший хелловорлд в которой выглядит как законченная программа на руби/питоне

Fixed.

holuiitipun
()

0 что заменят, 0.00001, что будут активно продвигать go параллельно, для NDK, например.

anonymous
()
Ответ на: комментарий от redhat

Ни Кен Томпсон, ни Роб Пайк не являются отцами сишки. Кен Томпсон папа скорее unix. Пайк вообще под стол пешком ходил тогда.

anonymous
()
Ответ на: комментарий от tp_for_my_bunghole

Насчёт GC per process первый раз слышу. Как-то не логично, кто тогда управляет сборщиками. Главная фича процессов эрла - крайне дешёвая стоимость создания процесса и последующих накладных. Со стороны кажется (или так на самом деле), что если это функциональный иммутабельный, то GC не нужен.

Процесс это чисто пользовательская вещь - там GC не актуален. Поощряется создание и падение процессов.

Например драйвер мускула. Процессу фиолетово что там с мусором, он сам по себе иммутабелен. В мусоре рулит функция, а не процесс. Возможно даже рулит один statement (что тоже является частным случаем функции), хотя особого смысла в пределах функции зачищать нет.

Более того гарантия иммутабельности позволяет VM внутри функции принять решение о выполнении в несколько потоков. После отработки функции все остатки мусора безжалостно «прибиваются» если они конечно есть ;)

anonymous
()

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

Если go наберет обороты, то возможно его когда-нибудь начнут позиционировать как основной язык нативной разработки для android(ndk и пр.). Но вероятность этого невелика, т.к. вряд ли это будет позитивно воспринято разработчиками.

forCe
()
Ответ на: комментарий от RedPossum

#@ять, ты буквоед? Это не jvm толко потому, что она не исполняет джава-байкод, если его предварительно не обработать. В остальном это такая же JVM, в чем, собственно, и заключается контекст ветки.

asaw ★★★★★
()
Ответ на: комментарий от asaw

Это не jvm толко потому, что она не исполняет джава-байкод, если его предварительно не обработать. В остальном это такая же JVM, в чем, собственно, и заключается контекст ветки.

Так jvm - это vm, которая исполняет байт-код Java. Что у dalvik от jvm? У них очень разные архитектуры и у них разный байткод.

forCe
()
Ответ на: комментарий от asaw

Если какая-то регистровая виртуальная машина исполняет какой-то там свой промежуточный язык, в который оттранслирован явовский байт-код, то это её дело, но это не jvm.

RedPossum ★★★★★
()
Ответ на: комментарий от RedPossum

В контексте этого топика это jvm потому, что аббревиатура jvm не является зарегистрированным названием.

asaw ★★★★★
()
Ответ на: комментарий от forCe

Какой смысл ты вкладываешь в «очень разные архитектуры»? Есть много JVM с разными архитектурами.

asaw ★★★★★
()
Ответ на: комментарий от forCe

Общего то, что это виртуальные машины, выполняющие программы на Java. Более того, байткод dalvik получается из Java-байткода. И да, dalvik тоже соответствует некой спецификации. Ваш К.О.

asaw ★★★★★
()
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от asaw

Общего то, что это виртуальные машины, выполняющие программы на Java.

Даже JVM не выполняет программы на Java.

Более того, байткод dalvik получается из Java-байткода.

Это всего лишь трансляция.

И да, dalvik тоже соответствует некой спецификации.

Но не спецификации JVM.

forCe
()
Ответ на: комментарий от forCe

Даже JVM не выполняет программы на Java.

Да неужели? А кто же тогда выполняет программы [написанные] на Java? Никто? Программы [написанные] на Java невыполнимы? Про интерпретаторы даже не заикайся.

Это всего лишь трансляция.

Вот именно.

Но не спецификации JVM

Нет спецификации JVM. Есть «The Java® Virtual Machine Specification», в которой аббревиатура JVM даже не используется. Раз ты такой педант в этих вопросах, изволь использовать точное название, и значок ® не забывай.

asaw ★★★★★
()
Ответ на: комментарий от F457

Много писанины, синхронизации/блокировки, взаимодействие потоков

как там ещё не завезли к тебе FJ ?

anonymous
()

Например, для популяризации и продвижения языка

Зачем стрелять себе в ноги, используя никому не нужный язык, когда текущий уже работает, хоть и жаба?

Deleted
()

очков вероятности

это как вообще???

dimon555 ★★★★★
()

Шансов почти нет, самое забавное что в гугле пилят две оси, два языка, браузер и похоже никому не нужно чтобы все это развивалось и работало вместе.

loz ★★★★★
()

Количество ядер в среднестатистическом андроид девайсе * 10%

А вообще если они пилят 1.* версию сразу в NDK это о чем то да говорит.

anonymous
()

Сколько вы дадите очков вероятности из 100?

Вероятность должна находится в интервале от 0.0 до 1.0.

0.001. Покрайней мере пока ничего замену Java на Go не предвещает.

Nedis
()
Ответ на: комментарий от Nedis

Покрайней мере пока ничего замену Java на Go не предвещает.

Да почему замена то? Запилят Go до уовня ещё одного годного инструмента для АндроЕда :)

PS: Оно кстати уже работает (см. Go 1.4 Release Notes), но это pre-alfa ...

anonymous
()
Ответ на: комментарий от anonymous

Покрайней мере пока ничего замену Java на Go не предвещает.

Да почему замена то? Запилят Go до уовня ещё одного годного инструмента для АндроЕда :)

Ну так заголовок:

Какова вероятность, что Google заменит Java на Go в Android?

Nedis
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.