Сегодня авторы большинства приложений уже не могут позволить себе выпускаться под одну платформу. Early adopters сидят под маками, мейнстрим сидит под Win32, а гики и адепты open source предпочитают Linux. Каждая из этих аудиторий обладает уникальными свойствами, а поэтому важна для большинства проектов.
Данная статья задумывалась как открытая попытка разобраться, на чем стоит писать мультиплатформенное desktop-приложение. Приглашаю высказать свое мнение людей с опытом создания таких приложений.
Изначально определим критерии, по которым будем оценивать различные платформы. В первую очередь — это удобство пользователя. Уверен, что вы замечали общие черты у приложений, написанных под разные платформы. Во вторую — это интересы проекта. Моя задача — построить успешный бизнес, а не играться с различными инструментами.
Обозначим рамки исследования. Мое приложение — небольшая утилита для пользователя-«чайника», которая качает файлы из интернета: минимум GUI, небольшой набор функциональности, использование внешних С++ библиотек.
Ну что, начнем. Какие есть варианты? Я рассмотрю Java, C#, C++, Python. Буду рад, если вы расскажите о других альтернативах.
Java
Данный язык/среда изначально задумывались как нечто мультиплатформенное. На Java написано большое количество приложений, крупные проекты вроде Eclipse используют именно этот фреймворк.
Большой минус Java с точки зрения пользователя — необходимость устанавливать фреймворк. Это безусловно сложнее установки Flash player’а и часто становится pain in the ass. И размер инсталлятора (я качал 80+ мб), и постоянная путаница в названиях (JRE, J2SE, JDK, JVM, …) не играют на руку разработчикам приложений под Java.
Learning curve имеет критическое значение для любого проекта, который ставит на вирусное продвижение. Если 30% ваших пользователей не смогут поставить Java-машину (лень качать, неудобный сайт, отложили «на потом», …) — у ваших конкурентов будет фора в 30%. Эта огромная доля пользователей, потерять которых мой проект себе позволить не может.
Все приложения, которыми мне доводилось пользоваться, не использовали «родной» интерфейс Win32. Не знаю, чем руководствовались разработчики, но с точки зрения конечного пользователя это выглядит очень не симпатично.
Примеры приложений: Eclipse, ZDE, клиент для Gnutella Limewire.
Плюсы: мультиплатформенность, большое количество кадров, развитость фреймворка.
Минусы: необходимость установки фреймворка, кривость GUI, низкая производительность.
C#
Язык C# и платформа .NET вышли из под крыла компании Microsoft, которая никогда не отличалась уважением к мультиплатформенности. Данный язык был тепло принят разработчиками и энтузиасты проекта Mono даже сделали аналог фреймворка под Linux/Unix/Mac Os X.
Аналогично с Java, приложения на C# имеют большой минус — необходимость устанавливать фреймворк. Я сам отказался от установки несколько приложений, которые требовали этого фреймворка. Менее продвинутые пользователи будут ещё более требовательными.
В остальном — сплошные плюсы, на мой взгляд.
Примеры приложений
Плюсы: мультиплатформенность, большое количество кадров, хорошая производительность, развитость фреймворка.
Минусы: необходимость установки фреймворка.
C++
Старичок дотянул до наших дней и замечательно себя чувствует. Много приложений под платформы Linux и Windows до сих пор пишутся на этом языке.
Программы, написанные на C++, являются примером для других по размеру дистрибутива и экономному использованию системных ресурсов (процессор, память). Тем не менее у разработчиков есть масса претензий к С++. По моему мнению, язык является «устаревшим» и его популярность в дальнейшем будет снижаться, что подтверждается индексом TIOBE.
С точки зрения развития проекта, по сравнению с динамическими интерпретируемыми языками (вроде Ruby и Python), разработка на данном языке может иметь менее высокую скорость и более высокие издержки изменения проекта. Для стартапа, которому не столь важна производительность приложения, это может стать существенным минусом.
Примеры: Firefox,?..
Плюсы: отличная производительность, большое количество кадров, большое количество библиотек.
Минусы: невысокая скорость разработки.
Python
Взглянуть на Python в качестве платформы для desktop-приложений меня заставила программа MusicBrainz Picard. Несмотря на свою скриптовую сущность, Python легко собирается в один exe-файл, не требуя от пользователя установки дополнительных компонентов.
В случае разработки небольшого приложения, интерпретируемые языки вроде Python будут большим плюсом. Легкость написания и высокая скорость изменения приложения пригодится любому стартапу.
Огромным минусом различных «модных» технологий является их низкое распространение, а значит серьезные проблемы в поиске квалифицированных кадров. Ситуация с поиском программистов итак плачевная, а если ограничиться узким языком — можно вообще никого не найти. С другой стороны, храбрость перейти на новый язык имеют наиболее прогрессивные разработчики. Может получиться так, что выбрав «перспективный» язык, мы сразу отсечем миллионы середнячков, оставив себе выбор из нескольких перспективных разработчиков.
Пример: MusicBrainz Picard, оригинальный BitTorrent.
Плюсы: высокая скорость разработки и изменений, хорошая интеграция с библиотеками на С и С++.
Минусы: мало кадров, низкая производительность.
Выводы
К сожалению, любая из вышеперечисленных платформ имеет свои плюсы и минусы, однозначного решения найти не удалось. Выбор одной из них сегодня принесет преимущества и недостатки, влияние которых на проект мы увидим только завтра.
Я пока выбираю между С++ и Python. Первый является «надежным» решением с известными недостатками. Второй является «рискованным», но интересным и перспективным. Надеюсь, ваши отзывы помогут мне сделать окончательный выбор. Какую платформу выбрали бы вы на моем месте?
PS. Я сейчас ищу программистов в этот стартап (с++/python/php), поэтому если кому интересно — присылайте свое резюме.
���� ���� ���������� ���������, ��� ���� �������� �� ����������, ��������. � ���� ��� ����� ���� �� ����������, ������� ���� ��� �������.
��� � ����� � � ��� �������� � ���� �������, ��� ������ �����-���� ���� �� ����� ���� �����. ������, ��� ������������ ����� ������
�� ������ ���� �� python. ������������ �������� � ������������������ �����. ��� ������� ������� �� python — exe-����� ������� �� �������. � ����� ������ ������� ������������ — Python ����������� ������, � ��� ���������� GUI � Python �� ���������� ������������. ����, Python — �� ������� ��� ���������� �������������.
RAD �� ����� �����, ���� ����� ���-�� ������ ��������� GUI. ���������� �������� ���� ��� ������-������ HTML ����أ� ����� �� ������. HTML ������� ������ � ��� ������. � ��� ������ ���� � ������� � ��������. ����, RAD — �� �����. ��������� UI ������.
������. �� � exe �������. �������, ����� ����������� ������. ������ ������ ������ ����� ��������� ���� ��������� �ݣ �������������� ���-��, � ������ ����������� ������, � ������ ����� ��� ���������. �����, ����� ����� ����� ������� ������ ������������ �� ����������� ������ (� ���� ������������ Path � �.�.).
���ף����. ����������� ��������� ��� ���������. ��� ��������, ��� ��� �����. ��������� ����� ������� � ����� �� ������. ���!
� ����� �������, — ����� �� ��������, ������� � ���� ������� � ����� �� ������? �� �����. ����� ��������� �������� �� ���� � ����� ��������� � ����� �����. ����� � ����� ��������� ����������� � �����, �� ����������� ��������� msi ���������, � �� zip. ����� ��������� ���� ������������ ���� �������, ��� �������.
�����. ��������� ���� ���� �ݣ ������ �������.
������. ���������������� ���� �������� �������� �������� ������.
�������. ������� ������������ ���������� ��������. � ������ �-�������� �������� web. ��� �� ������� ������� ��������� ���� ���������������� «��� �������».
�������. ������� ��� �� ����� ����������� ���������� ���� ��������� � �������. ������: ������� � �������� ������ ���������. � �����, ���� ��� ����� ��� �� ����, ��� � ��������� ��� ���������� ����������.
����. ��-��!!
�������� ���������� �������� ������ ���������������� � ���������:
«���������� ��� ������ ���������»
����������� ���������� ��������� Adobe AIR c ������ Flex. IDE — flashdevelop.
P.s. ����������� �����?
P.p.s. �������. �� ������ ���� ���� ����� �� flex — ����� � ��� ��������������
Хорошо стою на PHP, JS.
Нужен не консольный, а десктопный язык, с ООП.
Сейчас нужно написать программку для работы с БД (MySQL) на сервере. Несложную, но с графическим интерфейсом.
В планах написать чтото похожее и для Android.
Нужен совет и рекомендации знающих!
В этом вопросе я нуб. Просто давно изучал Паскаль, и там был страшный черный экран ожидавший ввода. А от языка программирования требуется: ООП, Легкость изучения, Возможность работать с серверной БД.
А так в языках программирования я уже потерялся … В интернете нашел такие понятия как: С++, С#, Delphi, Python, Java. А какая разница между ними — понятия не имею. И, тем более, что мне подходит…
Glorfindel
1,1092 золотых знака13 серебряных знаков18 бронзовых знаков
задан 7 окт 2013 в 10:04
9
Посмотрите в сторону .NET Framework(С#, etc…), или Qt(С++, etc…)
Есть проекты вроде PHP-Qt, но использовать их я бы не советовал.
UPD. Qt является кроссплатформенным, поэтому портировать на адроид будет много проще.
ответ дан 7 окт 2013 в 10:24
flaxflax
5181 золотой знак5 серебряных знаков18 бронзовых знаков
@myvzar, Вы пишете
и там был страшный черный экран ожидавший ввода.
А это тот начальный этап, который Вам обязательно предстоит пройти на любом языке, перед тем, как начать работать с GUI.
Для M$ же, видимо, лучшим выбором будет C#, но если Вы не хотите навсегда зависнуть в форточках, то попробуйте освоить Python.
ответ дан 8 окт 2013 в 8:27
avpavp
45.3k6 золотых знаков44 серебряных знака114 бронзовых знаков
Java. Быстро на ней пишется, быстро изучается. Горы документации на русском языке. Да и под андроид потом писать пригодится. Там ведь тоже java.
ответ дан 8 окт 2013 в 8:37
dlarchikovdlarchikov
4,40517 серебряных знаков41 бронзовый знак
В планах написать чтото похожее и для Android.
Java + swt
ответ дан 8 окт 2013 в 7:59
Alex KapustinAlex Kapustin
11.6k18 серебряных знаков22 бронзовых знака
Если вы планируете потом портировать программу на Android, то, как сказали ранее, вам поможет Java.
Но Android также поддерживает язык C++ (JNI/JNA). Моё мнение таково: на Java легко писать, но программы выполняются относительно медленно. На С++ писать сложнее, но код выполняется намного быстрее.
Я никому не навязываю своё мнение, так что решать вам)
ответ дан 8 окт 2013 в 11:18
HelisiaHelisia
3,6101 золотой знак22 серебряных знака46 бронзовых знаков
1
Есть очень хороший функциональный язык autoIT. Для маленьких десктопных приложений очень даже ничего.
ответ дан 12 мая 2015 в 15:05
lampalampa
18.1k23 серебряных знака48 бронзовых знаков
Учили паскаль, хотите кодить для винды, тогда вам прямая дорога к embarcadero, 5 кликов мышью и полноценная программа для работы с БД готова.
П.С. что что а быстрее чем в ней сделать программу не реально ни на одном другом языке, что бы там не говорили… (хотя бы потому что очень много компонентов, сводят вашу работу к простому перетаскиванию мыши нужного вам на форму.)
ответ дан 27 дек 2013 в 18:42
XokyopoXokyopo
3761 серебряный знак9 бронзовых знаков
2
Люди придумали больше 8 тыс. языков программирования. Их популярность меняется каждый год, а требования для входа в профессию все ниже. Разбираемся, какие языки востребованы, зачем нужны и как их учить непрограммистам
Самые востребованные языки программирования
Язык программирования — это набор лексических, синтаксических и семантических правил, которые придумали люди, чтобы создавать программы. Изучить язык до начального уровня можно за 6–10 месяцев, но если ошибиться с выбором, язык может устареть, а вы потеряете время и деньги.
Чтобы отслеживать востребованность языков программирования, компании составляют специальные рейтинги. Преподаватель онлайн-школы цифрового творчества и программирования для детей «Кодабра» Николай Ведерников выбрал языки, которые занимают высокие места в рейтингах TIOBE и IEEE. В первый рейтинг попадают языки, на которых написано больше всего строк кода, для второго используют чуть больше критериев. Например, популярность на сайтах для поиска работы, упоминания в сервисах для программистов и соцсетях.
Самые востребованные языки программирования:
- Python
- C
- Java
- C++
- C#
- JavaScript
- PHP
- R
- Arduino
Рейтинг TIOBE, май 2022 года
1. Язык программирования Python
Python — логичный и относительно простой язык с минималистичным синтаксисом. У него небольшой набор основных правил, язык легко читать и писать на нем не сложно. Разработчики написали для Python множество библиотек, поэтому вы можете использовать готовые решения в своих проектах. Главный минус Python — его невысокая скорость. Программы на нем будут работать в среднем медленнее, чем на других языках.
В октябре 2021 года Python стал самым популярным языком программирования, сместив с первой строчки рейтингов Java и C.
Игорь Музыкин, руководитель направления «Программирование» в Skillbox:
«Главная причина стабильного роста запросов на Python — растущая востребованность ИТ-специальностей для переориентирования карьеры в сферу разработки. Представим человека, который задумался о первых шагах в ИТ. Для начала он скорее всего начнет искать информацию в интернете. Что он увидит? Аргументацию об относительной простоте Python для новичков и статьи о широкой области применения языка — от научно-исследовательской работы до геймдева. Поэтому Python все чаще выбирают в качестве первого языка программирования для освоения.
В пользу простоты Python играет лаконичный синтаксис. Например, блоки кода отделяются отступами, а не скобками, это сокращает количество строк и символов. Еще есть синтаксические конструкции, введение которых позволяет все рутинные задачи по управлению памятью и потоками отдавать интерпретатору Python вместо дополнительного кода. За счет этого разработчик может сосредоточиться на задачах, а не коде как таковом.
Несмотря на критику некоторых аспектов работы Python, например, медленную скорость программ и зависимость языка от системных библиотек, в ближайшие годы он продолжит укреплять свои лидерские позиции в веб-разработке, machine learning, тестировании и DevOps».
Где используют. Чаще всего на Python создают серверы, обрабатывают данные и разрабатывают нейронные сети. После изучения Python можно работать бэкенд-разработчиком или разработчиком в сфере data science. С помощью Python можно «прикрутить» неочевидные функции к программам — это его главное удобство. Например, создать нейронную сеть для определения степени поражения легких, а заодно в этой же программе сделать просмотр снимков КТ.
Сколько платят программисту. Разработчик в крупной компании в Москве, знающий Python, зарабатывает от ₽100 тыс. до ₽250 тыс. При этом спрос на разработчиков в сфере data science растет, поэтому можно рассчитывать даже на более высокую оплату.
Зачем изучать. С помощью Python можно создать бота для мессенджеров или социальных сетей. Или написать программу для парсинга — поиска и переноса информации с разных сайтов в один документ. Такая программа пригодится дизайнерам и журналистам.
Марина Архипцева, ментор курса Data Science в SkillFactory, ETL-разработчик:
«Если следить за индексом TIOBE, то мы увидим, что месяц от месяца лидер меняется, но тройка остается неизменной — Python, Java, C. Собственно поэтому за ежемесячным рейтингом следить не так интересно, а что более любопытно — тот же TIOBE кроме ежемесячного рейтинга ежегодно выбирает язык года, и Python удостаивался этой чести 5 раз с 2003 года (в том числе и в 2021 году). Это лучший показатель среди всех языков программирования. Почему популярность Python растет с каждым годом?
Во-первых, сейчас наблюдается активный рост сферы Data Science. Если проанализировать, например, HeadHunter, то мы обнаружим множество открытых вакансий в данной области. Компании ищут инженеров данных, data scientist’ов, аналитиков данных, специалистов по большим данным, MLops’ов. Конкуренция большая, но спрос все еще превышает предложение на рынке. В 2012 году журнал Harvard Business Review выпустил статью «Data Scientist: The Sexiest Job of the 21st Century», в которой наука о данных была названа самой сексуальной профессией 21 века, и с тех пор, кажется, интерес к этой сфере только растет. И как раз Python является основным инструментом исследователя данных. Во-вторых, у Python обширное комьюнити — на любой вопрос практически со 100% вероятностью найдется ответ на StackOverFlow, главное правильно его сформулировать.
Во-третьих, Python — это язык для всех возрастов. Дети пишут на нем игры, создают миры в Minecraft и сдают ЕГЭ по информатике. Взрослые специалисты, кроме обработки данных, пишут бэкенд на Python и решают множество прикладных задач.
Безусловно, Python — это не идеальный язык и не панацея для всего, но основную тенденцию в мире программирования отлично иллюстрирует внутренний девиз Google: «Использовать Python, там, где можем, C++ — где должны». Здесь имеется в виду, следующее: С++ оптимален для разработки приложений, в которых важна скорость работы. За это приходится расплачиваться высоким порогом входа и сложностью самого языка. Поэтому там, где скорость не критична, Google предпочитает использовать Python».
2. Язык программирования C
C — один из самых старых и популярных языков программирования. Он «легкий» и быстрый, поэтому его используют там, где нужна высокая производительность. Например, для создания драйверов, операционных систем или ПО для микроконтроллеров. При этом C сложно изучить — многое приходится писать с нуля. Если сравнивать языки программирования с автомобилями, то C — гоночный болид, неудобный на городских дорогах, но очень быстрый.
Где используют. С помощью С создают драйвера, пишут ядра операционных систем, а также пишут библиотеки для Python и других языков.
Сколько платят программисту. В Москве разработчик на C получает в среднем от ₽100 тыс. до ₽250 тыс. В других городах зарплаты меньше — от ₽50 тыс. до ₽200 тыс..
Зачем изучать обычным людям. С — это не тот язык, на котором можно легко написать приложение для смартфона или программу для умного дома. Но с него можно начать изучение языков программирования. Учиться непросто, но если справитесь, поймете принцип действия почти всех остальных языков.
3. Язык программирования Java
Java — кроссплатформенный язык с большим количеством библиотек и большим сообществом разработчиков. Кроссплатформенность — это возможность написать программу один раз и сразу пользоваться ей на нескольких операционных системах: Windows, Linux и MacOS. Благодаря библиотекам Java подойдет практически для всего: работы с графикой, звуком, создания небольших игр. А в большом сообществе начинающий разработчик легко найдет готовые куски кода для разных задач и ответы почти на любые вопросы.
Программисты пользуются библиотеками, чтобы создавать программы быстрее. Библиотека — это набор готовых программ, объектов и функций для решения типовых задач.
Где используют. Java — это язык для всего. На нем пишут мобильные приложения для Android, программы для микроволновых печей и серверы. Для разработки мобильных приложений сейчас все активнее используют язык Kotlin. Но на Java уже написали очень много приложений, которые придется обслуживать и обновлять.
Сколько платят программисту. Зарплаты Java-разработчиков не сильно отличаются от обычных зарплат программистов — от ₽100 тыс. до ₽250 тыс. в Москве.
Зачем изучать. С помощью Java можно создать домашний сервер или приложение для мобильного телефона. Это будет не очень просто, но можно убить двух зайцев одним выстрелом — сделать программу и заодно выучить популярный язык.
4. Язык программирования C++
С++ — кроссплатформенный язык семейства C с расширенными функциями.
Огромное количество программистов пишут на нем код, делятся библиотеками и шаблонами, отвечают на вопросы новичков.
Где используют. Чаще всего на С++ создают операционные системы, драйверы и утилиты. Делают популярные десктопные приложения серий Adobe и Office. Из-за высокой скорости и производительности C++ используют для разработки компьютерных игр. Например, на нем написан популярный движок Unreal Engine.
Движок Unreal Engine создали в 1998 году. Компания Epic Games продолжает выпускать на нем игры. Например, на Unreal Engine работает популярная игра PUBG
Сколько платят программисту. В регионах разработчик на C++ зарабатывает от ₽50 тыс. до ₽150 тыс., в Москве — от ₽100 тыс. до ₽250 тыс. Зарплата зависит не только от города, но и от сферы — в геймдеве можно заработать больше, чем в разработке системных приложений.
Зачем изучать. C++ плохо подходит для решения простых «домашних» задач, но с него можно начать обучение языкам, чтобы понять их структуру и принципы. Если решили изучать, запаситесь терпением — с С++ в полной мере работает принцип «тяжело в учении — легко в бою».
5. Язык программирования C#
C# (си-шарп) — язык, изначально придуманный компанией Microsoft, чтобы создавать приложения под Windows. Это объектно-ориентированный язык — его сложнее изучать, но проще использовать, например, меньше писать одинаковый код. С помощью С# можно работать с платформой WPF, которая помогает создавать «красивые» оконные приложения. Например, последние версии MS Office.
Где используют. Чаще всего на C# пишут приложения для Windows и создают компьютерные игры. Например, на C# работает популярный движок Unity. Кроме того, на нем можно разрабатывать системные приложения и создавать библиотеки для С++.
Сколько платят программисту. В регионах разработчики на С# получают от ₽35 тыс. до ₽130 тыс. руб., в Москве — от ₽100 тыс. до ₽250 тыс.
Зачем изучать. С помощью C# можно создать оконное приложение для Windows, например, калькулятор или небольшую игру. Но изучать его сложнее, чем языки для создания мобильных приложений.
6. Язык программирования JavaScript
JavaScript — быстрый кроссплатформенный язык для веб-разработки. С помощью кода на JavaScript разработчик «говорит» странице, как она будет реагировать на действия пользователя. С помощью JS можно показывать пользователю информацию без перезагрузки страницы — так работают выпадающие меню, всплывающие окна, оконные клавиатуры.
При этом у JavaScript есть свои ограничения — он позволяет допускать ошибки, которые затем сложно обнаружить. Поэтому его редко используют для создания сложного программного обеспечения, например, ПО серверов.
Где используют. JS постоянно используют для веб-разработки. На нем удобно создавать мобильные и десктопные приложения, которые будут работать через браузер. Например, Notion, Discord, Visual Studio Code.
Сколько платят программисту. Разработчик на JavaScript в Москве зарабатывает от ₽140 тыс. до ₽300 тыс.
Зачем изучать. С помощью JS можно создать простой сайт или модуль для него, работающий с запросами клиента. Например, онлайн-калькулятор.
7. Язык программирования PHP
PHP — используют в веб-разработке для создания программ, которые работают на сервере и помогают обрабатывать запросы клиентов. PHP постепенно теряет популярность, потому что серверы можно создавать с помощью других языков. Но на PHP до сих пор работают многие ранее созданные сайты, например, «ВКонтакте».
Где используют. С помощью PHP создают программы, которые работают на сервере и помогают отправлять почту с сайта, взаимодействовать с базами данным. PHP облегчает работу интернет-магазинов — можно не создавать 1 тыс. одинаковых страниц, а генерировать их автоматически из базы данных по запросу клиента.
Сколько платят программисту. В регионах PHP-разработчик получает от ₽50 тыс. до ₽120 тыс. руб., в московских компаниях — от ₽80 тыс. до ₽220 тыс.
Зачем изучать. Со знанием PHP легко начать карьеру разработчика. Такой разработчик сможет найти работу, даже если у него мало опыта.
Вакансии PHP-разработчика в Москве на HeadHunter
8. Язык программирования R
R — это язык для обработки данных, статистики и машинного обучения. R постоянно конкурирует с Python, его чаще используют в научных исследованиях.
R — бесплатный, у него большие возможности для обработки данных и необычный синтаксис, более понятный математикам, от этого популярный в академической среде.
Где используют. Чаще всего с помощью R обрабатывают данные в научных исследованиях. На нем создают нейронные сети.
Сколько платят программисту. Разработчики и дата-аналитики, использующие R, зарабатывают от ₽100 тыс. до ₽200 тыс. Точная сумма зависит от типа компаний — иногда в научных проектах, получающих международные гранты, можно заработать больше.
Зачем изучать обычным людям. Не стоит.
9. Язык программирования Arduino
Arduino — это упрощенный диалект C++, на котором пишут только программы для контроллеров Arduino. Но вот эти контроллеры используют почти везде — от устройств для автоматического полива до полноценных систем «умный дом» и разнообразных роботов.
Arduino существует только в связке с контроллерами, поэтому его не всегда считают полноценным языком. Чтобы на нем работать, нужно купить специальную плату, соединить с компьютером и с помощью специального ПО писать для контроллера программу. Зато можно написать программу, поставить контроллер в нужное устройство и сразу проверить, насколько хорошо она работает.
Вот как работает умная система полива на Arduino
Где используют. Специалисты, знающие Arduino, могут работать инженерами-электронщиками и разработчиками ПО для микроконтроллеров. Иногда — в школах роботехники.
Сколько платят программисту. В Москве инженеры-электронщики зарабатывают от ₽50 тыс. до ₽120 тыс., преподаватели — от ₽30 тыс. до ₽100 тыс.
Зачем изучать. Arduino удобен именно для решения простых бытовых задач. Его легко использовать дома и на даче — создавать системы полива, вентиляторы, охранные системы, системы для аквариумов. С Arduino можно развивать логическое мышление детей — с ним легко понять принцип работы технических устройств.
Какие языки программирования теряют актуальность
Сомнительная идея изучать Perl в 2021 году, — считает ИТ-предприниматель и идейный вдохновитель школы программирования для детей CODDY Оксана Селендеева. Perl — язык программирования для системного администрирования, веб-разработки, игр. У Perl-разработчиков довольно высокая зарплата — 150 тыс. руб. в месяц, но начиная с 2017 года вакансий для таких разработчиков почти нет. Лучше обратить внимание на Python, на нем выполняют те же задачи.
Теряют актуальность и другие языки: Fortran, Objective-C, Haskell, Visual Basic.
По версии Stack Overflow, самые «страшные» языки в 2020 году — VBA, Objective-C, Perl, Assembly, C. «Страшные» означают, что большинство разработчиков, которые сейчас пишут код на этих языках программирования, не планируют продолжать с ними работать.
Рейтинг самых «страшных» языков программирования по версии Stack Overflow
Общие тренды ИТ-сферы вне зависимости от языков программирования
Код становится более читабельным. В последние годы разрабатывают все больше приложений, в том числе для мобильных устройств. Приложения становятся все сложнее по архитектуре, их нужно постоянно обновлять и обслуживать — важно, чтобы код можно было легко прочитать и понять. Приложение может жить десять лет. За это время сменится несколько разработчиков, которым нужно будет понимать код, написанный другими. Поэтому важно, чтобы программы не только решали свои задачи, но и были аккуратно, понятно написаны.
Растет популярность мобильной разработки и машинного обучения. Мобильная разработка стала привычным делом за несколько лет. Многие компании запускают только мобильные приложения, не думая об их браузерных и десктопных версиях. Из-за этого сильнее разрабатывают стандарты мобильной разработки. С одной стороны, это усложняет работу, с другой — сообществу выгодно обучить новичков этим стандартам.
Машинное обучение из диковинки становится неотъемлемой частью жизни — предсказывание и обработка данных слишком часто помогают в обычных ситуациях. Становится больше приложений по распознаванию лиц и обработке голосовых сообщений в текст.
Нужно писать код для всех платформ. Платформ становится все больше — в этом году Apple оснастила свои ноутбуки ARM-процессорами, которые раньше использовала только для смартфонов и планшетов. Поэтому разработчики должны учитывать все существующие технические возможности и писать приложения так, чтобы они работали везде.
Работодатели хотят посмотреть портфолио на GitHub. Если раньше при найме сотрудника работодатели смотрели приложения, к которым программист приложил руку, то теперь даже непрофессионалы все чаще хотят увидеть код. На Гитхабе можно посмотреть все проекты разработчика, увидеть, как он думает и пишет, как развивался и рос.
Программирование молодеет. Дети и подростки изучают программирование на онлайн-курсах или самостоятельно. Из-за этого уже в 13–15 лет они могут писать приложения, выкладывать их в Appstore или GooglePlay и даже зарабатывать деньги. Некоторые из них так начинают карьеру разработчика и конкурируют с выпускниками вузов и более старшими коллегами.
Еще пять статей о программировании
- Программирование с нуля: с чего начать и как выучить
- Вчерашняя техника уже завтра: могут ли устареть языки программирования
- Почему программистам не обойтись без гибких навыков
- Стартап или гигант: что выбирают ИТ-специалисты
- Где брать программистов: почему компании приходят в буткемпы
В Telegram-канале «Списать не получится» мы еще больше рассказываем о трендах в образовании и о том, как учиться в течение всей жизни и делать это с удовольствием. Подписывайтесь!
#статьи
- 21 июн 2022
-
0
Язык С#: где используют, что пишут, как появился и чем хорош
Изучаем под микроскопом популярный язык от Microsoft, который называется совсем не «Си решётка».
Иллюстрация: Polina Vari для Skillbox Media
Автор, редактор, IT-журналист. Рассказывает о новых технологиях, цифровых профессиях и полезных инструментах для разработчиков. Любит играть на электрогитаре и программировать на Swift.
C# (читается как «Си шарп») — это язык программирования от компании Microsoft. Изначально его создавали для проектов под Windows, но теперь это по-настоящему универсальный язык: на нём пишут игры, десктопные приложения, веб-сервисы, нейросети и даже графику для метавселенных.
Один из ведущих разработчиков языка — легендарный Андерс Хейлсберг, который до C# успел сделать Turbo Pascal и Delphi, а после — TypeScript (майкрософтовский JS на стероидах).
Если коротко, этот язык:
- Кросс-платформенный — запускается почти на любом железе.
- Объектно-ориентированный — состоит из классов и объектов, которые умеют передавать свойства друг другу.
- Постоянно развивается — для тех, кто любит учиться.
- Дружит с экосистемой Windows — для этого и был написан.
Есть две основных версии, зачем Microsoft стала делать свой язык программирования.
Официальная: чтобы упростить разработку приложений под Windows. А то языки в то время были сложные и плохо адаптировались под разные Windows-компьютеры.
Правдоподобная: чтобы заменить Java, на который у Microsoft не было лицензии. В итоге получился почти такой же язык, но с интеграцией под Windows. Как и Java, он основан на языке C и легко запускается на любом устройстве. А название «Си» с решёткой как бы говорит: «У нас тут не копия Java, а новый язык в линейке „Си“».
Но мы-то знаем
Кстати, всю эту историю о борьбе Microsoft за Java и причинах появления C# мы рассказывали в статье о Java Virtual Machine — в разделе о конкурентах JVM.
Запуск любой программы на C# начинается с главной функции — Main(). В ней прописано, как программа будет себя вести дальше — что за чем пойдёт, что за что отвечает и так далее. Выполняется она из главного класса — назовём его HelloWorld. Если перевести это на программистский, получится как-то так:
using System; // Создаём место, где будет лежать наша программа. Его называют пространством имён. class HelloWorld { //Задаём главный класс и даём ему имя -- «HelloWorld». static void Main() { //Объявляем главную функцию. //Вставляем сюда любой код. Например, можно научить программу с нами здороваться: Console.Write("Как тебя зовут? "); string name = Console.ReadLine(); Console.WriteLine("Привет, " + name + "!"); } }
Можете вставить этот код в компилятор и посмотреть, что получится. Если всё сделать правильно, консоль сначала спросит ваше имя, а потом поздоровается. А если туда потом добавить реплик, функций и визуала, получится настоящий чат-бот — как его запилить, рассказываем в этой статье.
C# — пятый по популярности язык программирования в мире. Его используют банки, диджитал-агентства, провайдеры связи и крупные IT-компании. Вот что пишут на C# российские и зарубежные корпорации:
- Microsoft — приложения для Windows и Xbox.
- Tesla — корпоративные веб-сервисы и программы.
- Stack Overflow — серверную логику сайтов.
- Сбербанк — 3D-графику и программы виртуальной реальности.
- Ozon — складские и логистические системы.
- «Яндекс» — приложения для автоматизации продаж.
Рассмотрим сферы применения «шарпов».
Если вы увлекаетесь геймдевом или просто играете в игры, то наверняка слышали про Unity. Это такая среда, где можно быстро собрать игру из готовых объектов, а потом запустить почти на любом железе. Процесс разработки выглядит так: вы продумываете содержание игры и её сюжет, а Unity берёт на себя графику, физику, звук и другие технические штуки.
Скриншот: Escape from Tarkov / Battlestate Games
В теории на Unity можно делать не только игры, но и любые проекты, где нужна 3D-графика, — метавселенные, программы для VR-устройств, дизайн интерьеров и так далее. А пишут под Unity в основном на языке C# — отличный повод выучить именно его, если видите себя в геймдеве или виртуальной реальности.
Поскольку C# — это язык от Microsoft, на нём удобно писать настольные приложения для Windows. Для этого разработчики придумали специальную платформу — называется .NET Framework. Она умеет переводить код из понятного человеку в понятный процессору — то есть компилировать.
Преимущество платформы в том, что она может исполнить любую C#-команду на любом процессоре — а на Windows работает не меньше тысячи разных моделей. Если бы не .NET, пришлось бы компилировать код под каждое железо отдельно. А ещё .NET поддерживает много плагинов, библиотек и шаблонов для наглядной разработки интерфейсов — это фактически целый мир и экосистема для программиста на Windows.
Кадр: Payload / YouTube
С помощью фреймворка Mono один и тот же С#-код можно запускать в разных десктопных системах — например, в Linux или macOS. А если код надо запустить на мобильных платформах, используют версию Mono для смартфонов — Xamarin.
Допустим, мы пишем приложение для смартфона — мобильные карты. Они должны одинаково работать и на айфоне, и на Android-устройстве, но выглядеть нативно — то есть по дизайн-коду своих платформ. Вот как эту идею можно воплотить на Xamarin:
- Проектируем дизайн приложения в визуальном редакторе.
- Привязываем к нему логику на C#.
- Всё это дело подхватывает Xamarin и переводит в родные для iOS и Android интерфейсы.
- На выходе получаем целых два приложения — для Android и iPhone. А программировали мы всего один раз — удобно вышло.
Изображение: Microsoft
Подробнее о том, как писать мобильные приложения на Xamarin, мы рассказываем в этой статье.
Когда пользователь что-то нажимает на сайте, его действия сначала обрабатывает сервер. Например, мы ставим лайк фотографии — сервер это получает и записывает у себя в базе данных: «Вот такому пользователю понравилось». Или, допустим, логинимся на сайте — сервер сверяет пароли и отвечает: «Войти разрешаю».
В чистом виде сервер — это просто машина, и, чтобы она заработала, нужен специальный софт. Нередко его пишут на языках PHP и Java, но если вам нужен софт для сервера на Windows, эксперты рекомендуют именно C#. Он хорошо работает с фреймворками от Microsoft и быстро запускается на Windows-машинах.
В любое приложение на C# можно встраивать алгоритмы машинного обучения — например, компьютерное зрение, распознавание лиц или музыкальные рекомендации в плеере. Фишка в том, что для этого не надо глубоко разбираться в математике или Data Science. Достаточно подключить специальную библиотеку от Microsoft — ML.NET, — и она возьмёт все внутренности на себя.
А ещё с ML.NET работает кросс-платформенность — то есть алгоритмы в теории можно запускать вообще где угодно. Например, на банкомате, если надо сделать авторизацию по лицу.
Изображение: Microsoft
Независимость от железа. Программисту не надо адаптировать программу под разные платформы и системы — за него это делает виртуальная машина, вшитая в .NET Framework. В итоге один и тот же код можно запускать на любых устройствах — смартфонах, компьютерах, серверах, банкоматах и даже умных часах.
Отличная совместимость с Windows. Не зря же язык разработали именно в Microsoft. Так же как Swift идеально подходит для программирования под экосистему Apple, C# прекрасно вписывается в экосистему Windows.
Управление памятью. Чтобы программа работала стабильно, её надо иногда чистить от ненужных объектов, ссылок, кэша и прочего мусора. В C# это происходит автоматически — разработчику не надо следить за расходом памяти, бороться с её утечками или удалять мёртвые куски кода.
Строгая типизация. Когда вы объявляете переменную в C#, надо сначала указать, что в ней лежит — строка, число или массив. Так разрабатывать чуть дольше, зато ваш код работает предсказуемо — числа взаимодействуют с числами, строки со строками и так далее. В языках со слабой типизацией свободы и драйва больше, но есть шанс пропустить ошибку, которая всплывёт в готовой программе.
Большое сообщество. На С# пишут более миллиона программистов по всему миру. В соцсетях полно чатов и сообществ «шарпистов», где можно задать вопрос, обсудить сложную тему или найти готовое решение. В теории можно даже найти ментора, который поделится знаниями и поможет быстрее освоить язык.
Синтаксический сахар. В С# есть много способов сократить код, не нарушая логику программы. Программисты называют такие приёмы «синтаксическим сахаром» — они помогают сделать код проще, понятнее и в целом симпатичнее. Сравните, например, как выглядит сложение чисел с «сахаром» и без.
Без «сахара»:
static int sum(params int[] numbers) { int res = 0; foreach (int a in numbers) { res += a; } return res; }
С «сахаром»:
Console.WriteLine(sum(1, 2, 3)); Console.WriteLine(sum(8, 1, 1,5));
Важно: «сахар» не стоит использовать слишком часто, иначе можно ненароком получить «синтаксический диабет» — ситуацию, когда в программе всё так зашифровано, что ничего не понять. Применять «сахар» нужно осторожно и только под присмотром профессионалов.
Есть у C# и недостатки, причём довольно серьёзные, — давайте разберём и их тоже.
Скорость. Когда мы запускаем программу на C#, код исполняется не сразу, а сначала адаптируется под нужное железо. Так мы охватываем больше платформ, но теряем в скорости — программе нужно сделать двойную работу, чтобы просто стартовать. Из-за этого интерфейсы на С# иногда подтормаживают при первом запуске.
Безопасность. Эксперты говорят, что код на C# легко декомпилировать — то есть перевести из машинного обратно в человеческий. Проблема в том, что так программу может легко прочитать хакер или конкурент — и изучить её уязвимости, украсть фрагменты кода или написать для неё вредоносный софт.
Мало доступа к железу. Так как С# — язык высокого уровня, на нём редко пишут проекты, где нужно полное взаимодействие с железом, — игровые движки, операционные системы, авиационный софт и так далее. Та же Unity целиком написана на низкоуровневом языке C++, хотя и умеет исполнять С#-команды.
По данным «Хабр Карьеры», средняя зарплата «шарпистов» составляет 162 000 рублей в месяц. Это не самые космические цифры для IT, но вполне приличные — примерно столько же получают программисты на Java, Python, PHP и других популярных языках.
На российском hh.ru мы нашли около 4 тысяч вакансий для разработчиков на C#. Больше всего предложений в Москве и Петербурге — это неудивительно, ведь там сосредоточена львиная доля энтерпрайза, где C# является стандартом. В основном компании ищут программистов для разработки бэкенда и десктопных программ, но есть варианты и в геймдеве, и в больших данных.
Интересно, что стажёры, которые только пришли в профессию, могут получать в районе 40 тысяч рублей в месяц. А если у новичка хорошая теоретическая база или уже есть какой-то опыт разработки, можно сразу пробоваться на Junior-позиции — там зарплаты уже около 64 тысяч рублей. Среди крупных компаний, которые готовы брать джунов-шарпистов, — Сбербанк, «МТС», Ozon и Kaspersky.
Более опытным Middle-разработчикам компании готовы платить в районе 120–150 тысяч рублей, а сеньорам и тимлидам — от 234 тысяч. Но такие программисты должны не только хорошо кодить, но и кое-что понимать в управлении командой и проектом.
Скриншот: сайт HeadHunter / Skillbox Media
Если вы ищете язык для старта в программировании, обязательно рассмотрите С# — он популярен, широко распространён и официально поддерживается Microsoft. Его используют тысячи компаний, поэтому новичок может довольно быстро получить оффер. Особенно понравится язык тем, кто хочет делать 3D-графику на Unity или писать программы для Windows.
Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.
Участвовать
Школа дронов для всех
Учим программировать беспилотники и управлять ими.
Узнать больше
Наиболее близким к обоим языкам программирования Microsoft является C #. Для большинства разработчиков и большинства приложений мы считаем C # самым простым и быстрым языком для изучения и использования, поэтому информация и пошаговые руководства в этой статье сосредоточены на этом языке. Дополнительные сведения о C # см. В следующих статьях: Создайте свое первое приложение UWP с помощью C # или Visual Basic.
Если вы хотите создавать приложения для Windows или Android, C + + самый подходящий вариант. Этот язык сценариев существует и процветает еще до появления смартфонов, и он отлично подходит для низкоуровневого программирования.
Windows 10 основана на C ++?
Первоначальный ответ: Какие языки используются в Windows 10? Сама Windows написана на C ++, как уже упоминали другие. В противном случае родные языки Windows, начиная с Windows 8, те, которые могут взаимодействовать со средой выполнения Windows, — это C ++, C ++ / CX, C #, VB.
Выпускает ли Microsoft Windows 11?
Microsoft собирается выпустить Windows 11, последнюю версию своей самой продаваемой операционной системы, на Октябрь 5. Windows 11 включает несколько обновлений для повышения производительности в гибридной рабочей среде, новый магазин Microsoft и является «лучшей Windows для игр».
Какой язык лучше всего подходит для настольных приложений?
10 лучших языков программирования для настольных приложений в 2021 году
- C#
- C + +
- Python.
- Java.
- JavaScript.
- PHP.
- Swift.
- Ред-Лэнг.
Какой язык программирования используют хакеры?
Доступ к оборудованию: хакеры используют C программирование для доступа и управления системными ресурсами и аппаратными компонентами, такими как ОЗУ. Специалисты по безопасности в основном используют C, когда им необходимо манипулировать системными ресурсами и оборудованием. C также помогает тестерам на проникновение писать сценарии программирования.
Какие бывают 4 типа языков программирования?
Классифицируются 4 типа языков программирования:
- Процедурный язык программирования.
- Язык функционального программирования.
- Скриптовый язык программирования.
- Язык программирования логики.
- Объектно-ориентированный язык программирования.
Какой язык программирования я должен выучить в первую очередь?
Питон несомненно, возглавляет список. Он широко признан лучшим языком программирования для изучения в первую очередь. Python — это быстрый, простой в использовании и простой в развертывании язык программирования, который широко используется для разработки масштабируемых веб-приложений.
Подходит ли Python для настольных приложений?
Я нашел Питон быть отличным выбором для разработки широкого спектра приложений, включая настольные приложения. Я разрабатывал на C ++ много лет, и для частей, которые действительно критичны по времени, я иногда использую его до сих пор, но для большей части моего кода Python помогает мне получать результаты намного быстрее.
Нужен ли мне Windows 10 SDK для C ++?
По умолчанию Visual Studio устанавливает Windows SDK как компонент рабочей нагрузки C ++ Desktop, что позволяет разрабатывать универсальные приложения для Windows. Для разработки приложений UWP вам потребуется Windows Версия 10 Windows SDK.
Что такое #include Windows h в C ++?
его файл заголовка для Windows для языков программирования C и C ++ который содержит объявления для всех функций в Windows API, всех общих макросов, используемых программистами Windows, и всех типов данных, используемых различными функциями и подсистемами.
Почему Microsoft использует C ++?
C ++ — это язык рабочей лошадки в Microsoft, который использует C ++ для создания многих своих основных приложений. … Некоторые из его прикладных областей включают системное программное обеспечение, прикладное программное обеспечение, драйверы устройств, встроенное программное обеспечение, высокопроизводительные серверные и клиентские приложения, а также развлекательное программное обеспечение, такое как видеоигры.
Запрограммировать приложение для Android (где у нас есть Android Studio и множество платформ для создания приложений, не зная, как программировать), как программировать видеоигру (где нам понадобится движок) или создать комплексную программу для Windows , Каждая платформа использует свой собственный язык, который должен быть представлен в определенных программах, которые помогают нам как при программировании, так и при его компиляции и формировании.
Если мы думаем начать программировать и создавать программы для Windows, это все, что нам нужно для достижения нашей цели.
Содержание
- Знания для создания программ в Windows
- Программное обеспечение, необходимое для создания программы
- Код Visual Studio
- Microsoft Visual Studio
- Студия шаблонов Windows
- NetBeans
- Delphi
- Блокнот ++
Не существует волшебного языка программирования для создания программ для Windows. Из Microsoft В операционной системе мы можем выполнять практически любой язык программирования, если у нас есть соответствующий компилятор и интерпретатор.
Тем не менее, есть несколько языков программирования, которые преобладают в этой операционной системе, и, как правило, это языки Microsoft. Например, большинство программ графической среды, разработанных для Windows, используют Визуальные языки такие как Visual C ++, Visual C #, Visual J # и Visual Basic .NET.
Если мы собираемся создать более простую программу, которая не нуждается в интерфейсе, C отличный вариант. Четный C ++ если мы хотим использовать любую из графических библиотек, доступных для этого языка. Разница между C и C ++ заключается в том, что первый не является объектно-ориентированным, а также более ограниченным, чем C ++. Сегодня есть отличные проекты, написанные на этом втором языке (Chrome, Firefox, многие игры и т. д.), поэтому, не вдаваясь в визуальные языки, программировать на нем очень удобно.
Если мы хотим создать программу для Windows, но она также работает в других операционных системах, то мы должны использовать другие кроссплатформенные языки программирования. Джава, например, один из самых популярных, поскольку все, что мы делаем на этом языке, может работать без проблем в любой операционной системе. Python, с другой стороны, в последнее время очень популярен подобный язык для создания многоплатформенных программ.
Также легко найти разработки на других языках, таких как Object Pascal, Ruby или Objective-C.
Программное обеспечение, необходимое для создания программы
На самом деле, мы могли программировать без специального программного обеспечения, просто с помощью текстового редактора, такого как Блокнот. Однако в настоящее время существуют очень полные программы (IDE), которые, помимо того, что помогают нам программировать, позволяют нам компилировать код, чтобы превратить наши строки во что-то функциональное.
Код Visual Studio
Код Visual Studio текстовый редактор с множеством функций программирования Эта программа имеет большое количество плагинов, которые позволяют адаптировать ее практически к любому языку программирования, который мы хотим. Благодаря своим функциям IntelliSense эта программа может выделять синтаксис, помогать нам автоматически заполнять код и даже находить ошибки.
Он интегрируется с Git, полностью настраиваемый, а также с открытым исходным кодом. Мы можем загрузить Visual Studio Code для Windows, Linux и macOS из Следующая ссылка .
Microsoft Visual Studio
Visual Studio — это гораздо более продвинутая среда разработки, чем код Visual Studio, разработанный Microsoft. Эта IDE специально разработана для создания программ Windows и совместима с основными языками Visual, такими как ASP.NET, Visual C ++, Visual C #, Visual J # и Visual Basic .NET.
Эта IDE позволяет нам легко создавать серверные приложения и программное обеспечение для настольных компьютеров для всех версий Windows. Обладая необходимыми знаниями, вы даже можете создавать 3D-приложения (и игры) с его помощью.
Мы можем скачать Visual Studio из Следующая ссылка .
Студия шаблонов Windows
Windows Template Studio — это расширение для Visual Studio, специально разработанное для облегчения создания универсальных приложений (UWP) для Windows 10. Этот плагин интегрирован в Microsoft IDE и с помощью нескольких щелчков мыши позволяет нам формировать нужную программу.
Мы можем скачать бесплатное расширение Windows Template Studio для Visual Studio от Следующая ссылка .
NetBeans
NetBeans — это еще одна программная среда разработки, на этот раз сфокусированная главным образом на разработке программ на Java. Эта IDE имеет открытый исходный код и в основном характеризуется модульностью, поскольку каждый пользователь может адаптировать ее к своим потребностям с помощью «модулей». Нам нужно установить Java SDK, чтобы иметь возможность программировать и компилировать код, написанный на этом языке. Преимущество состоит в том, что все, что мы программируем в нем, будет одинаково работать в других операционных системах.
В дополнение к программированию на Java, с помощью соответствующих модулей мы также можем программировать на JavaScript, HTML5, PHP или C / C ++.
Мы можем скачать NetBeans из Следующая ссылка .
Delphi
Еще одна очень популярная среда программирования среди программистов — Delphi. Эта IDE помогает нам создавать кросс-платформенные приложения с собственной компиляцией (без необходимости прибегать к другим программам или дополнительным компиляторам), чтобы конечный результат был максимально чистым.
Эта IDE может использоваться для программирования на нескольких языках программирования, хотя наиболее распространенным является ее использование для программирования в Object Pascal. Все, что мы пишем и компилируем, будет совместимо с Windows и Linux. Он также широко используется для веб-разработки, позволяя создавать клиент-серверные базы данных и веб-приложения и сервисы, такие как CGI, ISAPI, NSAPI, COM и DCOM.
Мы можем скачать Delphi от следующая ссылка.
Блокнот ++
Наконец, мы не могли забыть о Notepad ++. Этот бесплатный текстовый редактор с открытым исходным кодом является одной из лучших альтернатив Windows Notepad, но в нем также есть плагины, которые позволяют нам превратить его в полноценную среду программирования. Если мы хотим что-то простое в использовании для программирования по-старому (в текстовом режиме, без IDE), это наш редактор.
Мы можем скачать Блокнот ++ из Следующая ссылка .