Приветствую! Вопрос такой, захотелось сделать андроид-приложение, пока для портфолио и изучения материала.
Но какой язык лучше использовать?
Есть ли смысл пробовать kotlin? Или как я почитал что загнется быстро и будет не рентабелен. Так же вкурсе что без проблем работает с java- библиотеками. Или не заморачиваться и писать на java. Еще посоветуйте какими из полезных библиотек вы пользуетесь( собираю для себя самые интересные). За раннее спасибо.
Как, Вы не знаете джаву? Без знаний джавы в любом случае не стоит лезть в андроид-разработку и тем более в котлин (котлин основывается на джаве, плюс можно использовать джава класса, и не всё там так хорошо работает, поэтому некоторые части программы приходится писать на котлине)
Для написания простого приложения (которое я задумал) мне хватит базовых знаний и гугла. Вопрос в том куда дальше грызть гранит науки... в сторону с упором на котлин или джаву.
Вы преувеличивайте знание конкретного языка программирования и сложность его изучения.
ЯП - это базовые знания программиста.
Вы же не приходит в голосу задать вопрос - а какую клавиатуру изучать: слимовую или полновысотную, 80 клавишную или 100 клавишную.
Учите оба.
Котлин как бы удобнее и пр.
Но на Яве больше примеров, библиотек.
Даже если вы будете писать на Котлине, как минимум читать Яву вам все равно придется.
Хочется чтобы не возникало проблем при разработке андроид приложений и было побольше инструментов для решения различных типов задач, нацеленных именно на андроид.
Дабы не изучать n- ое колво языков.
Я начинающий, и поэтому пока мне нужно расставить приоритеты в обучении, чему то больше времени посвятить...
Anatoly B.,
отчего бы не провести аналогию тогда с термином мясо вида "говяжий язык"?
это просто одинаково звучащие, но очень даже разные по смыслу слова.
из того, что для обозначения понятия "язык программирования" используется слово "язык" вовсе не следует, что человеческий язык общения хоть сколько-нибудь равен языку программирования.
язык программирования - это вообще элементарная вещь и учится очень легко.
а вот язык человеческого общения - вещь очень сложная, это другого уровня понятие. они никак не сравнимы.
awesomer, вы, вероятно, путаете понятия "алгоритмизация" и "языки программирования".
Проще говоря, язык алгоритмизации - это как раз базовая вещь, но это еще не язык программирования, суть ЯП - в синтаксисе для записи алгоритма. Вы же не будете спорить, что почти у каждого ЯП свой синтаксис?
Anatoly B., вы же не будете спорить, что все языки программирования, относящиеся к классу алгоритмических (те, что являются потомками Алгол-77) - крайне похожи?
Так уж сложилось, что наиболее распространенные языки программирования - это братья-и-сестры, довольно похожие друг на друга.
Выучить трудно только первый из них.
Ну а новичков как раз и выдает трепетное отношение к важности знания языка программирования.
Язык - ничто, учится за считанные дни.
А вот API - это уже вещь не тривиальная. И, к сожалению, сильно разная в разных системах.
Выучив один язык программирования из тех, что потомки Алгола, вы легко выучите и второй язык из этой же когорты.
Выучив API одной системы - вам все равно придется учить API другой с нуля.
Ну кроме POSIX.
awesomer, "крайняя похожесть" не равноценно "полная совместимость".
Те самые разговорные языки тоже "крайне похожи" вплоть до степени смешения.
Сравните франц. "excuse moi" и англ. "excuse me". Однако, выучив французский, вы не заговорите тут же по-английски. Потому что у этих языков разный синтаксис, словарный запас и т.д. Они даже относятся к разной группе.
Их объединяет наличие базовых грамматических категорий, таких как время, падеж или лицо. Это и есть аналогия к наличию базового алгоритма у разных языков программирования.
И вот тут уже и возникает вопрос: какой язык учить первым - английский или французский. А вы даёте совет: учите любой, они "крайне похожи".
PS: язык как орган называется "языком" в данном случае только в русском языке. В английском это, к примеру, "tongue", однако и язык программирования и разговорный язык обозначается словом "language".
Потому что и то, и другое относится к одной категории: язык как знаковая система.
Только один относится к человеческим языкам, а другой к формальным.
А вы даёте совет: учите любой, они "крайне похожи".
мой ответ, вообще-то был - учить оба.
и да:
только новички, вроде вас, придают столь серьезное значение выбору языка программирования.
опытные программисты уже знают - что язык это ничто на фоне API и реальных алгоритмов-паттернов.
И вот тут уже и возникает вопрос: какой язык учить первым - английский или французский. А вы даёте совет: учите любой, они "крайне похожи".
и еще раз:
человеческие языки - это совсем другого уровня сложности понятие.
то, что в названии языки программирования и человеческие языки общения есть слово "язык" - не основание, чтобы проводить аналогии между ними.
ЯП - это крайне примитивная вещь. В отличие от человеческого.
человеческие языки - это совсем другого уровня сложности понятие
И человеческий язык, и язык программирования классифицируются как знаковые системы. Слово "язык" тут ни при чем.
Поэтому аналогия более чем корректная.
А "разный уровень сложности" не повод не проводить аналогии. В методе аналогии главное это сходство, а не сложность.
И человеческий язык, и язык программирования классифицируются как знаковые системы.
то-то существуют автоматические трансляторы для, к примеру ES6 в старый JS, которые были созданы небольшой группой людей за очень небольшое время - то есть проблема уже решена.
то-то уже не одно десятилетие (да что там десятилетие, уж скоро пол-столетия) как человечество бьется над проблемой качественного автоматического перевода - эта проблема пока не решена и никто не предскажет точно когда она будет решена.
то то изучить Go, к примеру, можно за день.
а учить английский приходится годами. и регулярно повторять слова и/или учить новые вы можете и 10 лет, а так и не освоите весь язык.
awesomer, вы же наверняка учили Логику, и должны знать, что метод аналогии рассматривает именно сходства.
А вы снова ведёте речь о сложности, хотя она тут ни при чем.
Можно привести классический пример:
Нильс Бор выдвинул орбитальную концепцию строения атомного ядра, используя в качестве аналога Солнечную систему.
И речь не об учебных проектах, а о вполне себе коммерческих программах. Как минимум 50% из этого списка - в совершенстве. Чего не могу сказать про английский и немецкий. Хотя изучаю их уже не первый год.
Доводилось ставить задачу перед программистами (даже и перед самыми что ни на есть начинающими джунами), которую необходимо было реализовать на языке, что они видели первый раз в жизни - задача была решена. Не идеально конечно. Но - мысль-то какая - формальные компьютерные языки искусственно созданы крайне простыми и ясными. Изучить +-1 язык - это ерунда.
Чего нельзя сказать об человеческих.
За сим откланиваюсь и продолжать беседу более не буду - че воду в ступе толочь.
Реально из собственно профессиональной практики говорю: выучить плюс-минус один язык программирования это ерунда для программиста, проходная задача.