@light_programmer

Выбор языка программирования. Как сделать правильный выбор?

Здравствуйте.
Существует проблема выбора языка программирования.
Я понимаю, что язык программирования лишь инструмент. По этой причине я более подробно опишу мои задачи.
Прежде всего отмечу, что я знаком с основами популярных языков программирования, знаком с ООП. То есть начинаю не с полного нуля.
Я хотел бы заниматься разработкой настольных приложений, мобильных приложений, веб приложений.
Ещё мне интересны встраиваемые системы, машинное обучение и робототехника. Но я понимаю, что за месяц, пол года до этого дойти трудно, и помимо программирования, нужны знания в других сферах. Потому это не близлежащие перспективы.
Например интересно, как работает медицинское оборудование, как работает сканер отпечатков пальцев, как работает база с отпечатками, передача с сканера в программу и т.д.
Я определил для себя 4 языка программирования.

C++. Гигант, на котором можно разработать все. Тем более, вышеперечисленное.
Однако, разработка проектов на C++ как правило происходит в больших командах разработчиков, да и от новичка до первой программы со смыслом уйдёт больше времени, чем в других языках программирования.

C#/Java. Я не вижу смысла изучать и тот, и другой язык программирования, и выбираю 1 из них.
Java меня привлекает кросс-платформенностью. Все же нельзя сказать, что Java плохой язык программирования, если на нем были разработаны такие вещи, как Одноклассники, IDE от JetBrains, и даже игры. Minecraft начали разрабатывать еще при Java 7. Если тогда это было возможным, то я представляю, какие возможности можно получить с Java сегодня.
Встраиваемые системы возможны с Java. Давайте не будем забывать, что марсоходы работают на Java. Хотя мне говорили, что это эффективнее с C, так как занимает меньше оперативной памяти.
C# привлекает меня синтаксисом. C# язык программирования, на котором я разработал больше всего кода. Он манит своей простотой.
1 мой знакомый разработчик попробовал Android Studio с Java и Xamarin с C# и сказал:
***
Вы можете создавать как мультиплатформенные приложения, так и приложения, специально предназначенные для Android. Во втором случае у вас есть объектная модель, очень похожая на ту, что была в Java, потому что Xamarin охватывает почти каждую библиотеку Android Java. Это означает, что вы можете прочитать пример проекта на Java и затем легко найти C# эквиваленты используемых классов и методов. Еще одним плюсом является то, что разработчики Xamarin не просто скопировали все из Java, но отредактировали его таким образом, что вы можете использовать встроенные функции Android с красивыми именами в C#. Это, конечно, немного меняет API, но если вы знаете C#, вы можете легко предсказать, как.
Я не знаю, как это понятно, поэтому приведу простой пример того, что я имею в виду.
Это код Java для вызова метода при нажатии кнопки:
        activateButton=findViewById(R.id.activateButton); 
        activateButton.setOnClickListener(new Button.OnClickListener() 
            { 
            @Override 
            public void onClick(View v) 
                { 
                activateButton_Click(); 
                } 
            });

Представьте, что в вашем приложении около 20 кнопок и вы хотите реагировать на их нажатия. Это мой любимый аргумент, когда я критикую Java.
Для сравнения, здесь то же самое в C# Xamarin, ActivButton в данном случае okButton, но функциональность та же:
okButton=FindViewById<Button>(Resource.Id.okButton); 
            okButton.Click+=okButton_Click;

Вот почему я люблю C#.
***
Однако, в C# есть проблемы. Встраиваемые системы не так возможны с C#, как с Java, ну и проблемы стабильности. Вчера был Silverlight, сегодня его нет и т.д.

Python. Классный и одновременно ужасный.
Классный из-за простоты. Ты быстренько можешь составить небольшую программку, и она будет работать!
Классный из-за универсальности. Ты можешь использовать Python во многих областях.
Ужасный из-за ООП. Вы видели инкапсуляцию в Python? Если да, то вы понимаете. Если нет, лучше вам ее не видеть.
Ужасный из-за производительности. Пока нет крупных серверов, это нормально. А дальше, без хороших библиотек, хорошие сервера невозможны без гибрида с C++.
Спасибо, что есть Django.

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

Что вы можете мне посоветовать? Как сделать правильный выбор?

Заранее благодарен!
  • Вопрос задан
  • 1011 просмотров
Пригласить эксперта
Ответы на вопрос 5
mindtester
@mindtester
http://iczin.su/hexagram_48
Существует проблема выбора языка программирования.
не существует. дальнейшими рассуждениями, вы уже обосновали свой выбор.
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
За вас этот выбор никото не сделает.
Плюсы сложно и больно. Инструменты сильно отстают от других языков. Ну и чем меньше программистов С++ тем больше моя зарплата.
Python хорош как второй язык. Автоматизация, тесты очень часто написаны именно на нем. Учить его не сложно. Идеален для прототипов и маленьких сайд проектов.
Java, C#, Go, Kotlin имеют свои плюсы и минусы. Тут надо выбирать то что нравится и по вакансиям.
Ответ написан
NeiroNx
@NeiroNx
Программист
Выбор зависит от задачи:
Python, C++,SQL, JavaScript, C# - надо изучить обязательно.
Java, Go, PHP, Ruby, Assembler - по желанию.
Ответ написан
ApeCoder
@ApeCoder
Kotlin находится внутри экосистемы Java и более лаконичный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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