Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.
Закрыт 6 лет назад .
Смотрел Java. В x64 системе окошко с хелловорлдом отъедает около 20 МБ памяти, и это число быстро растёт при создании новых объектов. Mono — достаточно посмотреть на плеер Banshee чтобы понять что там ситуация не лучше (Музыкальный плеер отъедает ~ 100 МБ памяти, при том что я всегда держу загруженный плеер мне это не нравится).
С++/Qt кажется неплохо, но на изучение придётся потратить большое кол-во усилий, при том что не известно оправдаются ли(Вообще у Qt сейчас как я вижу не самая стабильная ситуация, да и с плюсами в новых проектах люди стали поосторожнее) Python/PyGTK оказался на удивление более скромным к памяти чем java, но сам язык кажется мне каким-то невменяемым, возможно я просто не понимаю динамичскую типизацию. Отсутствие инкапсуляции и перегрузки функций удивляет.
Какой язык программирования УЧИТЬ ПЕРВЫМ? | Для новичков
Непонятно какое значение возвращает какая-либо функция. Код показался не читаемым как раз из-за отсутствия скобок. Где-то наткнулся на совет реже использовать вызовы функций, особенно в циклах т.к. это дорогая операция в питоне. Перед глазами сразу представились огромные методы в 200+ строк. PS Возможно я в чём-то не прав т.к. посмотрел на эти языки весьма поверхностно.
Кросс-платформенность на уровне компиляции вполне устроила бы(с неизменным кодом).
- кроссплатформенность
- desktop
Отслеживать
70.6k 12 12 золотых знаков 87 87 серебряных знаков 179 179 бронзовых знаков
задан 20 мая 2011 в 4:50
114 1 1 серебряный знак 9 9 бронзовых знаков
«В x64 системе окошко с хелловорлдом отъедает около 20 МБ памяти, и это число быстро растёт при создании новых объектов. Mono — достаточно посмотреть на плеер Banshee чтобы понять что там ситуация не лучше» — это всё из-за неправильного использования и конфигурирования виртуальных машин.
20 мая 2011 в 13:46
Кстати, каким образом вы определили 20М и более? Откуда вообще цифра 20? Если речь о виртуальной памяти, то виртуальная машина на 20 метрах вообще не запустится. Потому что требуется много памяти для отображения динамических нативных библиотек: при этом реальная физическая память не расходуется. PS: у меня на 20 метрах даже vim запуститься не может.
21 мая 2011 в 5:55
free — смотрим свободную память без буферов и кэшей, запускаем затем ещё раз free. Почему python ест меньше для меня загадка.
21 мая 2011 в 6:13
А как вы думаете, почему на питоне не пишут большие приложения, работающие дольше, чем CGI-скрипт? Представьте себе, что вам пришлось бы писать на нём приложения класса Eclipse или IDEA.. я не сомневаюсь, что будет epic fail.
21 мая 2011 в 7:04
Почему будет фейл?
21 мая 2011 в 21:04
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Разработка игр | Языки программирования и Программы
Что лучше зависит от критериев выбора. В данном случае они такие: Время разработки и время внесения изменений (причем второе может быть важней первого для заказных приложений).
Сложность приложения.
Тип приложения(«фотошоп», «WoW» или «клиент к твиттеру»), тиражное или заказное.
- С++
скорость разработки самая низкая для сложных приложений для тиражных решений требующих высокой оптимизации выполнения. Для слабого железа — GPS навигаторы, банкоматы, станки с ЧПУ, . - Java
время разработки меньше чем у C++. Особенно время внесения изменений, доработок для сложных приложений когда требуется эффективность выполнения программы (перерасход памяти беспокоит только молодых программистов. Ни производителей смартфонов на Android, ни заказчиков бизнес софта это свойство JVM не волнуют. И мою жену тоже не волнует сколько отъедает музыкальный плеер), и при этом не требуется оптимизация выполнения с помощью низкоуровневых трюков или специфики ОС. - Python
время разработки самое низкое для простой и средней сложности приложений (для сложных — только при высокой квалификации программистов или формализованного процесса разработки) для некритичных к времени выполнения(примеры — клиент Dropbox’а, wikidpad). Для заказных, малотиражных приложений. (программы на серверах гугла и яндекса — «заказные», потому что уникальны)
О времени разработки молодые программисты обычно не задумываются. А частенько в жизни — побеждает не лучшее, а — первое. Особенно при работе под заказ.
О динамической типизации.
Она требует самодисциплины разработки, чего обычно нет у молодых программистов, и они сами себе «злые буратины» быстро превращающие код в полный хаос.
Она требует обязательного и сурового применения TDD или подобных методик.
Интерпретатор/компилятор ЯП с динамической типизацией никогда не сможет выполнять/генерировать код той же эффективности выполнения что с статической типизацией.
К вопросу — нравится/не нравится какой-то язык программирования.
Во-первых, часто «не нравится» это — «не знал, не знаю, и знать не хочу»
Во-вторых, когда после нескольких законченных и работающих программ остается «не нравится» то действительно стоит подумать о смене языка программирования. Разработка на любимом языке программирования — очень важный мотиватор для уменьшения времени разработки и улучшении ее качества.
(О себе — профессионально(то есть за деньги) писал на plain С, Java, Python)
Отслеживать
80.2k 9 9 золотых знаков 77 77 серебряных знаков 133 133 бронзовых знака
ответ дан 21 мая 2011 в 7:37
196 4 4 бронзовых знака
единственный достойный внимания ответ посреди изобилия тем для холиваров
28 июл 2011 в 15:53
Qt сама по себе не так сложна, если знакомы с С++. Зато возможности мощнейшие. Кросплатформенность тотальная! Ценю Qt еще и за то, что компоновка внешнего вида объектов происходит почти автоматом — не получается аляпистых кривых окон (как это часто любят делать программеры делфи).
Для любой ОС внешний вид приложения будет идентичен — можно не опасаясь писать под виндой приложение которое будет потом скомпилировано и под Linux, и оно будет выглядеть одинаково и там и там. Мощнейший набор классов на все случаи жизни — мультимедиа, графика, текстовые редакторы, базы данных и т.д. Стабильность и поддержка очень крупной компанией. Регулярные релизы. Наличие свободной версии и версии для мобильных устройств.
Сложность изучения языка и самого набора библиотек окупается многократно.
Отслеживать
ответ дан 20 мая 2011 в 5:35
Алексей Котов Алексей Котов
1,207 1 1 золотой знак 20 20 серебряных знаков 37 37 бронзовых знаков
Отвечу про Python.
Отсутствие инкапсуляции и перегрузки функций удивляет.
Инкапсуляция в питоне, хоть и весьма условная, но есть. Если метод начинается с __, то интерпретатор автоматически добавляет к имени префикс _%current_class% и, соответственно, в другом классе такой метод уже не будет виден. Private Methods:
«»» >>> obj = bar() >>> obj.__test() Traceback (most recent call last): . AttributeError: ‘bar’ object has no attribute ‘__test’ >>> obj.test2() Traceback (most recent call last): . AttributeError: ‘super’ object has no attribute ‘_bar__test’ >>> obj._foo__test() Hello >>> obj._foo__test > «»» import doctest class foo(): def __test(self): print(‘Hello’) class bar(foo): def test2(self): super().__test() doctest.testmod(optionflags=doctest.ELLIPSIS)
Таким образом достигается инкапсуляция атрибутов класса. Конечно-же, все еще можно обратится к такому методу по полному имени. Однако, для примера, и в C# можно обратиться к приватным методам через рефлексию, но это вовсе не значит, что эти методы публичные.
Для создания абстрактных классов используется специальный метакласс c декораторами.
Аналогичным образом реализуются и интерфейсы.
Что-же касается перегрузок функций, то в динамическом языке, где методы могут принимать переменное число параметров и значения по умолчанию — это не возможно, да и совершенно не нужно. Пример:
«»» >>> foo(1, 2, 3, 4, 5, arg1=1, arg2=2, bar=False) (1, 2, (3, 4, 5), False, ) «»» import doctest def foo(first, second, *args, bar=True, **kwargs): print( (first, second, args, bar, kwargs) ) doctest.testmod()
Непонятно какое значение возвращает какая-либо функция
Да, этот недостаток присущ, наверное, всем динамическим языкам. Однако, в оправдание питона могу сказать, что эта проблема частично решается при помощи аннотаций, полноценного IDE и хорошего документирования функций.
Более того, при помощи аннотаций, метаклассов и декораторов не сложно реализовать и статическую типизацию 🙂 Т.е. примерно следующее:
«»» >>> foo().bar([1, 2, 3]) Traceback (most recent call last): . TypeError: ‘param’ is ‘list’, but the expected type is ‘int’ >>> foo().bar(1) Traceback (most recent call last): . TypeError: function return is ‘str’, but the expected type is ‘bool’ «»» class foo(metaclass=StrongTyping): def bar(param: int) -> bool: return ‘some text’
Разумеется, что бы пример работал, нужно еще реализовать метакласс StrongTyping.
Код показался не читаемым как раз из-за отсутствия скобок.
Вероятно, это дело привычки. Отсутствие скобок обязывает программиста следить за отступами и использовать единый символ табуляции, что уже, на мой взгляд, не мало. Что же касается визуального разделения методов, то тут помогаю IDE, которые отделяют их горизонтальными линиями.
Где-то наткнулся на совет реже использовать вызовы функций, особенно в циклах т.к. это дорогая операция в питоне. Перед глазами сразу представились огромные методы в 200+ строк.
На мой взгляд, гибкость питона и такие возможности, как генераторы выражений наоборот позволяют писать очень компактные и лаконичные конструкции. Там где для строго-типизированных языков требуются куча циклов и условных конструкций, в питоне решается одной строчкой.
UPD. Какие преимущества у динамической типизации? Имхо, именно в динамичности. Где еще можно написать нечто подобное:
Декораторы logging и debugging можно вынести в отдельный модуль и применять для любых классов. При этом при выключенной отладке накладных расходов практически не будет, т.к. методы именно заменяеются другими методоми, а не оборачиваются.
С другой стороны именно эта динамичность может служить источником ошибок, по этому приходится использовать ее осторожно и не забывать про тестирование.
Кстати,на самом деле считается, что питон имеет одновременно и строгую, и динамическую типизацию. Т.н. код «1» + 1 выбросит исключение TypeError.
Источник: ru.stackoverflow.com
Популярные языки программирования: что учить?
Задавшись таким вопросом, новички гуглят рейтинги популярности языков. Кажется логичным, однако большинство исследований о популярности того или иного языка строятся на основе выдачи поисковиков, соцсетей, сайтов с вакансиями и крупных сообществ разработчиков. То есть туда попадает и Google Search, и Twitter, и Reddit — довольно «грязная» выборка.
Чтобы увидеть реальную картину, стоит подумать: почему тот или иной язык внезапно набирает популярность? Иногда причина частого упоминания в интернете не имеет отношения к востребованности языка. Так, например, в ежегодном рейтинге языков программирования Института инженеров электротехники и электроники (IEEE) за 2020 год язык COBOL неожиданно занял 7-е место по популярности в Twitter.
А произошло это потому, что в апреле 2020 года в самый разгар пандемии COBOL часто мелькал в новостях Twitter, когда губернатор Нью-Джерси Фил Мёрфи объявил, что штат отчаянно нуждается в добровольцах, обладающих навыками работы с COBOL. Это объявление вызвало много удивления. Оказалось, что американская система страхования была перегружена из-за всплеска заявок на пособие по безработице, что привело к задержке в обработке дел, так как было недостаточно программистов, знакомых с языком из эпохи динозавров. Это и стало причиной частого упоминания, но сам язык не стал популярнее среди разработчиков.
Другой пример. В последнее время Python показывает заметный рост популярности. Вероятнее всего, дело именно в преимуществах самого языка. Но также есть мнение, что частое упоминание в сети названия языка связано с прекращением поддержки Python 2, перспективой вынужденной миграции множества проектов на Python 3 и связанными с этим вопросами пользователей. Поэтому есть люди, которые относятся к подобным рейтингам довольно скептически.
И всё же — нет дыма без огня, а рейтингов без тенденций. Давайте посмотрим, что же происходит с популярностью языков.
Тенденции среди топовых языков программирования
Уже упомянутый Институт инженеров электротехники и электроники снова напарсил в 2021 году показатели из восьми источников (CareerBuilder, GitHub, Google, Hacker News, IEEE, Reddit, Stack Overflow и Twitter) и собрал рейтинг из 55 языков. Тройка лидеров с прошлого года здесь не изменилась: это Python, Java и C. При этом С# опустился с 6-й строчки на 23-ю, а вот Ruby поднялся с 19-й на 11-ю.
В свою очередь Stack Overflow не парсил Google, а опросил разработчиков о том, какие языки они используют или/и хотят использовать. У них самый популярный — JavaScript. Что, в общем-то, тенденция уже лет десять.
А вот компания Emsi Burning Glass собирает и анализирует только объявления о вакансиях. Результаты исследования, опубликованные в конце прошлого года, показали наиболее востребованные в 2021 году языки программирования с точки зрения работодателей США. Неожиданно обнаружилось доминирование языка SQL над сверхпопулярными и широко используемыми Python, Java и JavaScript. Исследователи объясняют, почему так много компаний требуют от айтишников знания SQL, тем, что он является основой работы с данными (SQL используют для управления реляционными базами данных и запросами к ним).
Примечательно, что калифорнийский университет Беркли опубликовал в конце 2020-го заметку «11 самых востребованных языков программирования в 2022 году», где спрогнозировал популярность языков, проанализировав тенденции 2020 и 2019 годов. В университете использовали особенный подход: «Мы обнаружили, что Rust, Python и Typescript возглавляли список самых популярных языков Stack Overflow в 2019 и 2020 годах с небольшими перестановками.
Точно так же Python, JavaScript и Go оба года лидировали в тройке самых разыскиваемых списков Stack. Учитывая их распространённость в умах разработчиков, шансы на увеличение популярности этих пяти языков высоки, и поэтому их стоит включить в наш список. Однако место, которое мы определили для каждого языка, зависело от других факторов. Например, поскольку Python постоянно занимает пятёрку лучших в списках наиболее часто используемых, любимых и требуемых в Stack Overflow, мы решили поставить его выше, чем Rust, который, хотя и вышел на первую позицию в списке самых популярных в Stack Overflow, занимает 19-е место в списке общеупотребительных языков организации».
RedMonk, известная на ИТ-рынке аналитическая компания, анализирует языковые рейтинги из GitHub и Stack Overflow. В прошлом году она выложила отчёт, в котором показала, что вторым по популярности после JavaScript стал Python.
Рост его популярности связывают с пластичностью применения: Python используется в огромном количестве областей и способен справляться с различными задачами, включая набирающее популярность машинное обучение (мы считаем, что причина возросшей популярности Python именно в его использовании в ML). Языки C# и C++ в 2020-м шли только после PHP, занявшего 4-е место рейтинга.
Go и Kotlin попали во вторую десятку. В позапрошлом и прошлом годах заголовки Cnews пестрили Python, предрекая его безоговорочное лидерство. Пока, наконец, в октябре 2021 он не выдал эмоциональную заметку с заголовком «У языков программирования революция. Сменился самый популярный язык в мире».
Ежемесячный индекс Tiobe сообщил в январе 2022: «Python получил престижную награду TIOBE Programming Language of the Year. Поздравляем! Это уже второй раз подряд. Награда присуждается языку программирования, получившему наибольший прирост рейтингов за один год. C# был на пути к тому, чтобы впервые в истории получить титул, но Python превзошёл C# в прошлом месяце».
Но ведь они тоже анализируют поисковую выдачу Google.
Компания CodingNomads составила свой рейтинг на основе объявлений о вакансиях и заработной платы из LinkedIn в США и Европе. У неё тоже Python выбился вперёд.
Так что же учить?
Получается, что радикальных изменений в топе языков в принципе нет. Да, Python сегодня лидирует, чего не было много лет, но революцией это назвать сложно — он ведь и был в топах, а не ворвался внезапно в чарты и сразу всех покорил. Давайте тогда посмотрим на самые популярные сегодня языки программирования чуть пристальней.
Должны же мы знать, что советовать детям друзей, когда на вопрос при встрече «кем хочешь работать?» они отвечают «программистом». В каждом популярном языке мы укажем: его описание, назначение, особенности, порог вхождения (необходимое количество усилий для освоения языка до такого уровня, чтобы найти работу) и мнения программистов о его популярности.
Это языки: Python, Java, JavaScript, C, C++, C#, SQL/NoSQL. Мы считаем, что желательно выучить основы программирования на большинстве из них, чтобы не остаться за бортом современных требований работодателей. А дальше то, какой язык будет изучаться углублённо, будет зависеть от практики в конкретных проектах. В конце статьи — бонус с информацией по зарплатам за владение популярными языками программирования.
Высокоуровневый интерпретируемый язык с динамической строгой типизацией. Это мультипарадигмальный язык, который поддерживает императивное, процедурное, структурное, объектно-ориентированное (прототипное), функциональное программирование и метапрограммирование. Причём считается, что реализация поддержки объектно-ориентированного программирования в Python — одна из самых понятных, благодаря чему (в том числе) Python довольно прост для начинающих программистов.
Назначение
Это язык программирования поистине общего назначения. Он работает с xml/html-файлами, http-запросами, изображениями, аудио- и видеофайлами, FTP. На нём можно создавать GUI (графический интерфейс), веб-сценарии бэкенд веб-сервисов, писать программы для робототехники и программировать математические и научные вычисления. Сегодня его активно используют в data science, машинном обучении, анализе данных.
Порог вхождения
Низкий благодаря понятной поддержке прототипного программирования. В целом язык универсален и прост, идеально подходит для начинающих программистов. Однако чтобы сделать карьеру, недостаточно знать только Python, поскольку в некоторых областях применения он сильно проигрывает C++ и другим языкам по эффективности.
Особенности
Главная особенность Python — это то, что разработка на нём идёт быстрее, чем на других языках. Собственно, он изначально задумывался как язык, помогающий повысить производительность разработчика, читаемость и качество кода. Его отличает лаконичный синтаксис, встроенная поддержка Unicode в строках, кроссплатформенность, поддержка модульности и выделение блоков кода пробельными отступами.
Мнения программистов о популярности
Популярность Python в последнее время объясняют широким изучением этого языка, распространённостью преподавания, а также тем, что студенты ищут ответы на одни и те же вопросы. Одной из причин называют тот факт, что на Python работают в области машинного обучения, которое показывает беспрецедентные темпы развития из-за прогресса ИИ. Также причинами называют рост доступности железа, на котором может работать Python, и то, что язык прекрасно вступает в контакт с мелкими утилитами.
Строго типизированный объектно-ориентированный язык прикладного программирования (со статической типизацией). Ядро языка — библиотеки и классы.
Назначение
Общего назначения. Чаще всего разработка приложений и веб-разработка в области электронной коммерции, финансов. Сегодня Java — стандарт в разработке под Android и в сфере корпоративных приложений, в основном back-end.
Порог вхождения
Умеренно низкий, во многом благодаря JavaRush — интерактивному обучающему курсу. Тем не менее надо обладать базовым пониманием классов, фреймворков, пакетов и объектов.
Особенности
Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байт-код и передающей инструкции оборудованию как интерпретатор. Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого есть соответствующая виртуальная машина. Другая особенность — гибкая система безопасности. Язык относительно медленный во время выполнения. Довольно сложно читать код.
Мнения программистов о популярности
Причинами популярности считают универсальность, кроссплатформенность, простоту использования и способность обрабатывать огромные объёмы данных. Это делает его идеальным языком для финансового сектора, банковского дела, фондового рынка. Java может эффективно работать в любой ОС, независимо от того, какая использовалась для написания исходного кода. Таким образом, он идеально подходит для написания приложений не только для смартфонов и компьютеров, но и для удалённых процессоров, датчиков и множества потребительских товаров (аппаратная совместимость).
JavaScript
JS — мультипарадигменный язык, который поддерживает объектно-ориентированное (прототипное), обобщённое, функциональное, императивное, аспектно-ориентированное и событийно-ориентированное программирование. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, функции как объекты первого класса.
Назначение
Уже долгие годы JavaScript — основной язык веб-разработки (frontend), для которой он и предназначен. Также его поле — это разработка игр, мобильных приложений и создание веб-серверов. Он часто применяется при разработке решений для blockchain, работе со смарт-контрактами в Ethereum. Чаще всего JavaScript используют как язык сценариев в браузерах для того, чтобы придать веб-страницам интерактивности, добавить интересные всплывающие эффекты, маленькие развлекательные игры.
Порог вхождения
Относительно высокий, поскольку для того, чтобы начать карьеру Frontend-разработчика, надо выучить не только JavaScript, но и его фреймворки — Angular JS, React, Node.js и другие. Кроме того, необходимо разобраться в HTML и CSS.
Особенности
Используется как встраиваемый язык для программного доступа к объектам приложений.
Мнения программистов о популярности
Именно JS делает сайты «живыми», нескучными, интерактивными. Можно начать писать в JavaScript прямо из браузера (любого), не настраивая среду разработки.
С — стандартизированный процедурный компилированный язык общего назначения со статической типизацией. Даёт программисту возможность осуществлять непосредственный доступ к ячейкам памяти и регистрам компьютера, требуя при этом знания особенностей функционирования ЭВМ. Лаконичный, с богатым набором операторов.
Назначение
Системное программирование: базы данных, драйверы, компиляторы, интерпретаторы, написание программ под микроконтроллеры.
Порог вхождения
Относительно высокий. Сам язык несложный, но нужно хорошо понимать, как работает железо.
Особенности
Язык программирования С, как и С++ — это хорошее решение для разработчиков виртуальных игр. На Си можно создавать приложения, используя 3D-движок Unity, но в современной веб-разработке этот язык не используется. Язык Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для других языков, с которыми работают современные разработчики (C++, C#, Java и Objective-C). Также он завоевал популярность у программистов благодаря сочетанию возможностей языков высокого и низкого уровней.
Мнения программистов о популярности
С и С++ носят репутацию языков, которые помогут разработчику «выжать все соки» из железа. На C можно написать программу любого уровня сложности.
Назначение
Широкая сфера применения: микроконтроллеры, IoT (интернет вещей), десктопные и мобильные приложения, кроссплатформенные приложения, веб, геймдев, системы прогнозирования, моделирования, обработки статистики.
Порог вхождения
Высокий, требования к Junior значительные. Язык сложен в изучении. Потребуется время, чтобы понять, чем различаются виртуальные, абстрактные, приватные и публичные методы.
Особенности
Синтаксис довольно сложный для восприятия. Разработка на нём занимает значительное время, но даёт большие возможности. C++ используют для требовательных к быстродействию программ. Например, на нём написаны продукты Adobe.
Мнения программистов о популярности
Это прародитель всех объектно-ориентированных языков программирования, на его основе написано много известных приложений. Такие мастодонты не уходят из лидеров веками. С++ считают самым мощным языком программирования универсального назначения.
С Sharp — объектно-ориентированный язык прикладного программирования со статической типизацией. Выпущен Microsoft и сегодня считается популярным усовершенствованием языка C++.
Назначение
Десктопные программы, бэкенд мобильных и веб-приложений, геймдев (игры на движке Unity), VR.
Порог вхождения
Средний. Умеренная сложность изучения. Гораздо проще освоить, зная синтаксис С/С++.
Особенности
Это главный язык платформы .NET.
Мнения программистов
Некоторые считают, что C# идеально подходит для создания мобильных приложений и игр. Другие уверены, что он будет использоваться и развиваться, пока есть пользователи Windows и существует сам Microsoft.
SQL (Structured query language) — это предметно-ориентированный язык структурированных запросов для управления реляционными БД, где данные хранятся в таблицах. Этот информационно-логический язык относится к декларативным языкам программирования. NoSQL или нереляционный SQL был создан для улучшения масштабируемости SQL. Базы данных NoSQL не используют таблицы.
Назначение
Управление базами данных, отчёты о продажах, управление бизнесом. SQL может находить и извлекать данные из реляционной БД, а также обновлять, добавлять или удалять записи. Базы данных NoSQL используются для хранения данных в иерархической сети или поддержки крупномасштабных облачных приложений.
Порог вхождения
Низкий. Изучение SQL идёт быстро, а синтаксис запросов прост и понятен.
Особенности
При всех своих изменениях SQL остаётся единственным механизмом связи между прикладным ПО и базой данных.
Мнения программистов о популярности
SQL считают стандартом обращения к базам данных. В последнее время популярность SQL/NoSQL возрастает из-за роста объёмов данных и, соответственно, необходимости быстро работать с базами данных.
Напоследок посмотрим годовые зарплаты по языкам программирования в США и Европе
На графике указаны средние зарплаты, а не те, что получают начинающие программисты. Но, согласно отчёту CodingNomads, успешные разработчики могут рассчитывать на достижение или превышение этих зарплат в течение пары лет.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
А тех, кто дочитал, поздравляем с Международным днём родного языка! Ведь для программистов эти языки, порой, как родные 🙂 Давайте соберём свою статистику — на чём пишете?
Источник: habr.com
Какой язык программирования выбрать первым
Первый и самый важный вопрос для всех, кто решил связать свою профессиональную деятельность с разработкой программного обеспечения- какой язык программирования выбрать. Однозначного ответа здесь быть не может, каждый язык программирование хорош и подходит для решения определенных задач.
Какие языки программирования востребованы
Опытные разработчики говорят, что нельзя зацикливаться на одном языке программирования, так как он может стать невостребованным и соответственно спрос на специалистов будет небольшим. Так сейчас происходит с языками, который некогда были в топе популярности, например Perl или Objective-C. Последний успешно вытесняется наиболее востребованным языком для мобильной разработки на IOS- Swift.
В начале своей карьеры в качестве девелопера стоит выбрать первый язык программирования, с которого вы начнете знакомство с разработкой, и который станет вашей базой. Но в дальнейшем будьте готовы быть пластичными и переходить, если того требует рынок или конкретный работодатель на другие языки.
Вместе с этим, спецом по всем направлениям одновременно стать просто невозможно, поэтому рано или поздно (вполне вероятно с продолжительным трудоустройством на определенной должности), вы все же сосредоточитесь на определенном стеке технологий, которые будете постоянно использовать в ежедневном кодинге.
Что же касается дня сегодняшнего, то список самых популярных и востребованных языков в двух независимых друг от друга и самых престижных рейтингах TIOBE и PYPL занимает Python.
Далее, начиная уже с первой тройки есть разногласия, поэтому предлагаем вашему вниманию ознакомиться с самыми популярными языками программирования согласно обоим рейтингам.
Оба рейтинга уточняют, то это не списки лучших языков программирования, а конкретно самых востребованных. Основываются рейтинги на частоте запросов в Google и других платформах, выходе образовательных курсов, а также вакансиях.
И вот здесь формируется определенный парадокс в виде замкнутого круга
При решении, какой язык изучать, новички в основном руководствуются количеством открытых вакансий по нему, а бизнесмены в свою очередь решают на каком языке будет их стартап исходя из количества специалистов на нем пишущих. То есть стартаперы выбирают язык исходя из резюме соискателей, с которым им легче всего будет сформировать команду разработчиков, а начинающие программисты напротив исходят из языков, самых востребованных на рынке труда.
Однако вернемся к рейтингам. Первое место, как уже говорилось, повсеместно занимает Питон. Оно и понятно- язык простой в изучении и очень многие выбирают его на старте, а соответственно свободных специалистов становится все больше.
В тройку и в первом, и во втором рейтинге попал Java. Еще один достаточно универсальный язык, на котором пишутся и веб приложения, и корпоративный софт, и программное обеспечение для финансовых, медицинских, производственных предприятий, и даже мобильные приложения на Android. Программист, выбравший данный язык наверняка без работы не останется еще долгое время. Однако в изучении Java ощутимо тяжелее того же Питона, поэтому отдают ему предпочтения люди с уже сформированной хотя бы минимальной базой знаний.
Отдельно хочется отметить тенденции роста. В обоих рейтингах максимальный рост востребованности показывает С#.
Также в десятку самых популярных языков программирования в обоих рейтингах попали: С, С++, PHP, JavaScript.
Зарплатные вилки и количество вакансий
Если программирование- это не ваше хобби, то ожидаемо, первое, что вас должно интересовать при выборе языка программирования для изучения, это будущая карьера. А именно: легко ли будет найти работу и сколько вы сможете зарабатывать?
Пройдемся по актуальному положению дел в отечественном найме .
Python
- Всего вакансий 8537
- Удаленных предложений 1976
- Кандидатов без опыта готовы рассмотреть 743 компаний
- В среднем начинающим специалистам предлагают от 60 000 до 85 000 рублей
- 161 вакансий предполагают доход более 400 000 рублей
Java
- Всего открытых вакансий 6284
- С удаленным наймом из них 1740
- Программистов без опыта готовы нанять только 251 работодателей
- Зарплаты для начинающих предлагаются в среднем от 65 000 до 100 000 рублей
- 157 компаний готовы платить соискателю более 400 000 рублей
C#
- Количество вакансий по России 3817
- Удаленно можно устроиться в 997 из них
- Кандидата без опыта могут рассмотреть в 287 вакансиях
- Начинающие программисты могут рассчитывать на зарплату от 50 000 до 80 000 рублей
- 47 вакансий выставляют зарплату соискателю более 400 000 рублей
C/C++
- Общее число открытых вакансий 3911
- Удаленных вакансий 603
- Соискатели без опыта могут разослать свое резюме по 371 предложению
- Начинающих специалистов ждет в среднем оклад от 40 000 до 80 000 рублей
- Наибольший доход предлагает 90 вакансий- более 400 000 рублей
PHP
- Вакансий открыто 4105
- Удаленный найм предполагает 1274 вакансии
- Без опыта можно попытать счастье в 295 предложениях
- Средний доход новичка от 40 000 рублей до 80 000 рублей
- От 400 000 рублей предлагают в 53 вакансиях
JavaScript
- Всего доступных вакансий 8588
- Удаленный формат работы возможен в 2717
- Соискатели без опыта могут откликнуться в 791 вакансии
- Заработная плата для начинающих варьируется в среднем от 35 000 до 70 000 рублей
- Более 400 000 рублей предлагается в 188 вакансиях
Go
- Доступных вакансий 2135
- Удаленных предложений 574
- Соискатели без опыта могут попытаться откликнуться на 468 предложений
- Средний оклад для новичков от 45 000 до 80 000 рублей
- Доход от 400 000 рублей предлагают в 83 вакансиях
Swift
- Вакансий по России открыто 1148
- Удаленных из них 394
- Новичков готовы взять только в 33 вакансиях
- Платить начинающим будут в среднем от 35 000 до 60 000 рублей
- 400 000 рублей и больше предлагают платить в 60 вакансиях
Kotlin
- Всего открытых вакансий 1683
- Удаленную работу предлагают 620
- Новичков могут взять только 40 компаний
- Платить новичкам готовы в среднем от 75 000 до 130 000 рублей
- 85 вакансий предлагают оплату труда более 400 000 рублей
Flutter
- По России открыто 206 вакансий
- Удаленный вариант возможен в 100 из них
- Новичков на данную специальность работодатели не рассматривают
- Более 400 000 рублей согласны платить в 8 вакансиях
Сравнительная таблица
Всего вакансий | Удаленных | Без опыта | Зарплата для новичков | Предлагают более 400 000 рублей | |
Pyathon | 8537 | 1936 | 743 | 60-80 т.р. | 161 (1,9%) |
Java | 6284 | 1740 | 251 | 65-100 т.р. | 157 (2,5%) |
C# | 3817 | 997 | 287 | 50-80 т.р. | 47 (1,2%) |
C++ | 3911 | 603 | 371 | 40-80 т.р. | 90 (2,3%) |
PHP | 4105 | 1274 | 295 | 40-80 т.р. | 53 (1,3%) |
JavaScript | 8588 | 2717 | 791 | 35-70 т.р. | 188 (2,2%) |
Go | 2135 | 574 | 468 | 45-80 т.р. | 83 (3,9%) |
Swift | 1148 | 394 | 33 | 35-60 т.р. | 60 (5,2%) |
Kotlin | 1683 | 620 | 40 | 75-130 т.р. | 85 (5,05%) |
Flutter | 206 | 100 | — | — | 8 (3,9%) |
Данные полученны с помощью сайта hh. ru на май 2022 года
- Больше всего вакансий в России на данный момент открыто по следующим языкам программирования (в порядке убывания): JavaScript, Python, Java, PHP, C++
- Если вам принципиальна удаленная работа, то проще всего будет устроиться разработчиком JavaScript, Python, Java и PHP.
- Новичкам предпочтительнее обратить внимания (в количественном соотношении вакансий) на изучение JavaScript, Python, и Go, в финансовом соотношении вакансии по всем трем языкам предлагают примерно равные условия для соискателей без опыта.
- Больше всего (в процентном соотношении относительно открытых вакансий) компании готовы платить опытным разработчикам на языках программирования Swift, Kotlin и Go.
Сферы применения языков программирования
Если подходить к выбору первого языка программирования для изучения с позиции предпочтительной сферы деятельности, то стоит для начала понять где и что применяется.
Веб-разработка
Здесь всегда изначально идет разделение на фронт-разработку и бэк-разработку. К первой относится визуальная часть сайта, вторая сосредоточена на функционале.
- Для frontend выбор языков программирования невелик и сокращается до… 1. Практически все проекты создаются сегодня на JavaScript. Для углубления знаний и навыков в последующем разработчики выбирают один из фреймворков JS: Vue, React, Angular, Svetle.
- Backend, или серверная часть веб-сайта, имеет более широкий диапазон для выбора языка и пишется сегодня чаще всего на:
- PHP
- Python
- Node.js
- Java
- C#
Для любого вышеуказанного языка также есть свои фреймворки, которые необходимо будет изучить.
Некоторые разработчики опробовав и фронт и бэк части становятся универсалами, то есть Fullstack. Такие специалисты лучше понимают создание проекта на всех этапах и могут самостоятельно разработать его под ключ и соответственно более востребованы у работодателей.
Разработка мобильных приложений
В мобильной разработке также на старте придется решить с какой операционной системой вам предстоит работать. Если выбор падает на Android, то языками программирования станут:
Первый более универсальный и может применяться не только в разработке мобильных приложений, но и во многих других сферах. Kotlin же достаточно молодой, но уже очень востребованный язык, который постепенно вытесняет Java в этом сегменте и используется практически во всех новых приложениях в виду скорости разработки.
При выборе работы с IOS будут рассматриваться также 2 языка:
Первый выбрать предпочтительнее, так как Objective-C сегодня считается неактуальным. Безусловно на нем написаны все старые приложения, но в новой разработке практически невозможно встретить вакансий, требующих знание Objective-C. В связи с этим образовательные программы также не предлагают курсы по не востребованному языку. Справедливости ради, стоит все же отметить, что порядка 300 вакансий на hh.ru по запросу «Objective-C» нашлось, однако почти все указанные работодатели требуют также знания Swift.
Есть еще один набирающий обороты язык программирования для мобильной разработки:
Это язык, с помощью которого можно создавать мобильные приложения сразу для IOS и Android. Многие разработчики склоняются к тому, что именно за Flutter будущее всей мобильной разработки, так как его использование значительно удешевляет проект (можно нанимать всего одиного разработчика).
Разработка игр
Здесь выбор языка программирования зависит от платформы, для которой создается игра, а также от масштабности самого проекта. Возможны следующие варианты:
Так же во многих случаях используются движки для создания игр, которые тоже придется освоить в случае, если вы планируете заниматься геймразработкой:
- Unity
- Unreal Engine
- CryEnine
ПО
Нейронные сети
Здесь выбор языка не слишком принципиален, а результат в первую очередь зависит от написания математических алгоритмов.
Чаще других для создания нейронных сетей используется все же Питон, в виду своего набора библиотек, однако выбор может быть сделан и в сторону любого другого популярного языка программирования.
Анализ данных
Существует два специализированных языка, которые используются в анализе данных:
Однако специалисты все же советуют начать обучение с какого-то более универсального языка (того же Питона, например), а дальше углубляться и осваивать инструменты, которые применяются для решения узких задач.
Советы по выбору языка программирования для изучения
- Если вы новичок в программировании и обладаете девственно чистым разумом в этом направлении, то стоит сначала выбрать общий курс или серию лекций, где вам расскажут и покажут на практике, с чем вам предстоит столкнуться в учебе и далее в трудовой деятельности. Есть вариант, что вы решите отмести идею стать программистом в самом начале, так как профессия эта достаточно сложная и овладеть ей в высшей степени непросто.
- Если вы уверены в своих интеллектуальных способностях или обладаете хоть какой-то базой (например, математическим образованием), то можете выбирать первый язык из расчета «хочу/интересно/перспективно/любая другая мотивация». Если же нет, то есть смысл обратить первоначальное внимание на самые простые языки программирования: Питон, PHP, JavaScript.
- Если нет совсем никаких идей относительно конкретного языка, исходите из области их применения, где бы вы хотели себя реализовать в дальнейшем. Далее выбирайте соответствующий для этой сферы стек (писали выше) и начинайте его осваивать.
- Также можно определить интересные для вас компании, где бы вы хотели работать или просто те, которыми вы восхищаетесь. Далее откройте их сайты, найдите отдел «Вакансии» и посмотрите каких разработчиков эти компании набирают. Из этого можно тоже исходить при выборе первого языка программирования.
Источник: vasyaznaet.ru