Сообщите пожалуйста, какова ваша цель? Как вы собрались зарабатывать деньги на подобных вложениях? Сколько денег предполагаете заработать? Методом продажи бизнеса? Или?
Весь смысл вашего послания состоит в том, что бы отказаться от доминирующей модели. Но ради чего это нужно конкретно вам - этот вопрос скромно не озвучен. Если это не деньги, то что? Почему вы стесняетесь об этом говорить? Если вам стыдно за вашу идеологическую основу, то как вы собираетесь с ней дальше жить? Если это деньги, или какой-нибудь обман, тогда понятно, как с этим жить, но может всё же есть что-то ещё? Но тогда почему стыдно? Или вы умалчиваете о цели из каких-то других соображений? Почему их нельзя открыто назвать?
Выше перечисленные вопросы требуют ответа. Если ответ отсутствует, то есть смысл предполагать какой-то обман, и все обещания про приватность тогда будут лишь обычной приманкой для тех, кого никто не собирается избавлять от тотального контроля.
Похоже, многие комментирующие, и в том числе вы, почему-то считают, что Java, это что-то сложное. Но как видно из вашего примера, проблема не в Java, а в необходимости изучать достаточно большие объёмы необходимой информации. И эта информация потребуется для создания серьёзной программы на любом языке.
Поэтому ваш сарказм про, по сути, "сложность" самых базовых вещей, скорее характеризует вас, но никак не Java.
Ну вы же понимаете, что один сложный случай легко найдётся для любого языка. В целом же количество сложностей не очень большое. Хотя, чем более сложные проекты выполняются на языке, тем более сложной становится инфраструктура вокруг таких проектов, а потому требуются всё большие усилия по изучению. Но это же именно сложные проекты. А помимо них есть и простые. Давайте всё-таки начинать именно с простых, тогда и не будет суровых реалий. Ведь просто!
JetBrains - подрядчик. Подконтрольность, соответственно, на уровне подрядчика. А язык предназначен для замены подконтрольной Oracle Java на Android. Поэтому в договоре с гуглом JetBrains, разумеется, подписались под многими пунктами, предоставляющими гуглам возможность максимального контроля.
Отказ же гугл от Java отнюдь не смертелен, потому что основная денежная ниша Java - это так называемый backend, где у гуглов мало что получается. Хотя и туда они пробуют залезть со своим Go. Но, как видите, даже сами гуглы имеют альтернативу Котлину. Так что кто тут от чего отказался - пока что весьма зыбкое поле для размышлений.
Я бы сказал по другому - грамотный программист просто должен понимать, что происходит внутри программы. Только способ достижения такого понимания может быть разным. На мой взгляд, на Java понимание наступит не сильно позже, чем в случае с С, если речь идёт о чём-то, что выше уровня общения с железом (а такого софта - большая часть). Сама же базовая концепция линейки байт, реализуется почти во всех языках и "щупать" эти байты, соответственно, можно не вспоминая о более близких к машине языках.
В целом всё зависит от способа обучения. Если способ предполагает наличие опытного разработчика, хотя бы неявно, в виде автора книги, то и понимание никуда не денется. А если прыгать по случайным проектам сразу, освоив только Hello World, тогда и на С понимание может очень долго не наступить.
Нет смысл спорить с потребностью в системах сборки. Но всё началось с того, что вы написали про сборку простейшей программы. Простейшие (и не только) программы самым простым образом собираются именно средствами IDE.
А если мы говорим о сложных программах, то для пишущих такие программы авторов в принципе нет проблем со сборкой, потому что этот этап они давно и отлично понимают. А если не понимают, значит замахнулись на то, что не готовы осилить.
Backend очень инертен, там этого добра не будет ещё весьма длительное время. А возможно и вообще никогда не будет, ну кроме малоизвестных проектов некоторых энтузиастов.
Хотя борьба гугла за котлин может в итоге и пододвинет Java, но пока что это, в лучшем случае, перспектива через лет 5-10. А в худшем - никогда.
Вообще, cross-language сборка тема не самая простая. Плюс работа с железом напрямую - тоже специфическая задача для Java, то есть её могут решать при помощи кучи костылей вместо упрощающих сборку решений. И в итоге получается, что вы возмущены работой конкретного человека, который собрал в одном месте множество разнородных составляющих. Но обвинение-то подано в адрес Java.
Я не вникал в работу с bluetooth на настольных системах, возможно там действительно нет приличной инфраструктурной обвязки. Тогда, если кто-то сумел сгородить костыльное решение, которое всё же позволяет вам работать с bluetooth, стоит сказать ему спасибо и за это, ведь иначе вообще бы ничего не было. И может быть так, что инфраструктура есть, но кто-то с опытом в основном в С, банально тянет туда знакомые ему библиотеки, а за ними необходимость писать С-код и сборки целого бегемота. Здесь просто надо разобраться. Но принципиально нелогично обвинять Java, если вы всё же ещё не успели разобраться.
новичок твёрдо уверен что сейчас Java правильно называется Kotlin, а автор отмалчивается
В тексте есть про Kotlin, только название там правильное, изначальное, то есть по русски (поищите поиском). Kotlin в основном под Android. И не все новички вообще знают о существовании Kotlin-а.
Где-то в начале 90-х появился Borland C, в котором основные идеи сборки в IDE были реализованы очень практично и наглядно. То есть сборка средствами IDE - старая и очень эффективная история.
Ну вы же писали про начинающих. А если с гита качаете проект, то значит уже претендуете на знания.
Сейчас на гите модно оставлять проекты на Maven, что означает сокрытие зависимостей. Точнее - перевод их из явных в неявные. Поэтому новичку кажется, что всё сложно, ведь он не видит зависимостей. Тогда вам нужно искать на гите инструкцию оп сборке. Хотя опять же, она там часто расчитана на тех, кто знает Maven, что опять заводит нас на очередной цикл непонимания. Да, это не совсем для новичков. Здесь можно посоветовать почитать что-нибудь о сборке под Maven, если у вас совсем нулевые знания.
А без mavena всё просто - подключаем библиотеки и радуемся жизни. Хотя если знаете maven, то опять же просто - жмёте build, и всё собираеся само.
Вообще, похоже у комментирующих нет опыта работы с Java IDE, поэтому им кажется всё сложным. Но если IDE установлена и вы хоть немного умеете ею пользоваться - всё остальное тривиально. Проще, чем на С++.
План для начинающих: качаем IDE, например Eclipse; выполняем шаги по созданию проекта (они обычно расписаны на сайте IDE); создаём первый класс, в котором пишем свой Hello World; затем ctrl+s и ctrl+f11 - и оно запустилось.
Сообщите пожалуйста, какова ваша цель? Как вы собрались зарабатывать деньги на подобных вложениях? Сколько денег предполагаете заработать? Методом продажи бизнеса? Или?
Весь смысл вашего послания состоит в том, что бы отказаться от доминирующей модели. Но ради чего это нужно конкретно вам - этот вопрос скромно не озвучен. Если это не деньги, то что? Почему вы стесняетесь об этом говорить? Если вам стыдно за вашу идеологическую основу, то как вы собираетесь с ней дальше жить? Если это деньги, или какой-нибудь обман, тогда понятно, как с этим жить, но может всё же есть что-то ещё? Но тогда почему стыдно? Или вы умалчиваете о цели из каких-то других соображений? Почему их нельзя открыто назвать?
Выше перечисленные вопросы требуют ответа. Если ответ отсутствует, то есть смысл предполагать какой-то обман, и все обещания про приватность тогда будут лишь обычной приманкой для тех, кого никто не собирается избавлять от тотального контроля.
Похоже, многие комментирующие, и в том числе вы, почему-то считают, что Java, это что-то сложное. Но как видно из вашего примера, проблема не в Java, а в необходимости изучать достаточно большие объёмы необходимой информации. И эта информация потребуется для создания серьёзной программы на любом языке.
Поэтому ваш сарказм про, по сути, "сложность" самых базовых вещей, скорее характеризует вас, но никак не Java.
Да, большинство курсов ориентировано на скорость и игнорирует глубины. Это плохо.
Ну вы же понимаете, что один сложный случай легко найдётся для любого языка. В целом же количество сложностей не очень большое. Хотя, чем более сложные проекты выполняются на языке, тем более сложной становится инфраструктура вокруг таких проектов, а потому требуются всё большие усилия по изучению. Но это же именно сложные проекты. А помимо них есть и простые. Давайте всё-таки начинать именно с простых, тогда и не будет суровых реалий. Ведь просто!
JetBrains - подрядчик. Подконтрольность, соответственно, на уровне подрядчика. А язык предназначен для замены подконтрольной Oracle Java на Android. Поэтому в договоре с гуглом JetBrains, разумеется, подписались под многими пунктами, предоставляющими гуглам возможность максимального контроля.
Отказ же гугл от Java отнюдь не смертелен, потому что основная денежная ниша Java - это так называемый backend, где у гуглов мало что получается. Хотя и туда они пробуют залезть со своим Go. Но, как видите, даже сами гуглы имеют альтернативу Котлину. Так что кто тут от чего отказался - пока что весьма зыбкое поле для размышлений.
Я бы сказал по другому - грамотный программист просто должен понимать, что происходит внутри программы. Только способ достижения такого понимания может быть разным. На мой взгляд, на Java понимание наступит не сильно позже, чем в случае с С, если речь идёт о чём-то, что выше уровня общения с железом (а такого софта - большая часть). Сама же базовая концепция линейки байт, реализуется почти во всех языках и "щупать" эти байты, соответственно, можно не вспоминая о более близких к машине языках.
В целом всё зависит от способа обучения. Если способ предполагает наличие опытного разработчика, хотя бы неявно, в виде автора книги, то и понимание никуда не денется. А если прыгать по случайным проектам сразу, освоив только Hello World, тогда и на С понимание может очень долго не наступить.
Нет смысл спорить с потребностью в системах сборки. Но всё началось с того, что вы написали про сборку простейшей программы. Простейшие (и не только) программы самым простым образом собираются именно средствами IDE.
А если мы говорим о сложных программах, то для пишущих такие программы авторов в принципе нет проблем со сборкой, потому что этот этап они давно и отлично понимают. А если не понимают, значит замахнулись на то, что не готовы осилить.
Backend очень инертен, там этого добра не будет ещё весьма длительное время. А возможно и вообще никогда не будет, ну кроме малоизвестных проектов некоторых энтузиастов.
Хотя борьба гугла за котлин может в итоге и пододвинет Java, но пока что это, в лучшем случае, перспектива через лет 5-10. А в худшем - никогда.
А если получается?
Вообще, cross-language сборка тема не самая простая. Плюс работа с железом напрямую - тоже специфическая задача для Java, то есть её могут решать при помощи кучи костылей вместо упрощающих сборку решений. И в итоге получается, что вы возмущены работой конкретного человека, который собрал в одном месте множество разнородных составляющих. Но обвинение-то подано в адрес Java.
Я не вникал в работу с bluetooth на настольных системах, возможно там действительно нет приличной инфраструктурной обвязки. Тогда, если кто-то сумел сгородить костыльное решение, которое всё же позволяет вам работать с bluetooth, стоит сказать ему спасибо и за это, ведь иначе вообще бы ничего не было. И может быть так, что инфраструктура есть, но кто-то с опытом в основном в С, банально тянет туда знакомые ему библиотеки, а за ними необходимость писать С-код и сборки целого бегемота. Здесь просто надо разобраться. Но принципиально нелогично обвинять Java, если вы всё же ещё не успели разобраться.
И замкнуться в мире гугл и андроид.
Тогда нужно no-code решение.
В тексте есть про Kotlin, только название там правильное, изначальное, то есть по русски (поищите поиском). Kotlin в основном под Android. И не все новички вообще знают о существовании Kotlin-а.
Где-то в начале 90-х появился Borland C, в котором основные идеи сборки в IDE были реализованы очень практично и наглядно. То есть сборка средствами IDE - старая и очень эффективная история.
Интерфейсы ввели раньше 6.0. Возможно в 4, но в 5-м точно были. Это ключевое, что даёт похожесть на ООП.
Ну вы же писали про начинающих. А если с гита качаете проект, то значит уже претендуете на знания.
Сейчас на гите модно оставлять проекты на Maven, что означает сокрытие зависимостей. Точнее - перевод их из явных в неявные. Поэтому новичку кажется, что всё сложно, ведь он не видит зависимостей. Тогда вам нужно искать на гите инструкцию оп сборке. Хотя опять же, она там часто расчитана на тех, кто знает Maven, что опять заводит нас на очередной цикл непонимания. Да, это не совсем для новичков. Здесь можно посоветовать почитать что-нибудь о сборке под Maven, если у вас совсем нулевые знания.
А без mavena всё просто - подключаем библиотеки и радуемся жизни. Хотя если знаете maven, то опять же просто - жмёте build, и всё собираеся само.
Чуть выше уже показывал очень короткий набор шагов - https://habr.com/ru/post/684786/#comment_24666048
Вообще, похоже у комментирующих нет опыта работы с Java IDE, поэтому им кажется всё сложным. Но если IDE установлена и вы хоть немного умеете ею пользоваться - всё остальное тривиально. Проще, чем на С++.
План для начинающих: качаем IDE, например Eclipse; выполняем шаги по созданию проекта (они обычно расписаны на сайте IDE); создаём первый класс, в котором пишем свой Hello World; затем ctrl+s и ctrl+f11 - и оно запустилось.
Вполне коротко и быстро, разве нет?