Comments 40
Хотелось бы увидеть какие-либо источники информации или что-либо аналогичное,
а то с некоторыми утверждениями в статье можно поспорить.
И статья, мне кажется, наполнена слишком уж базовыми вещами.
а то с некоторыми утверждениями в статье можно поспорить.
И статья, мне кажется, наполнена слишком уж базовыми вещами.
+9
Поддерживаю.
К тому же совсем обделены вниманием интерпретируемые языки. Так же, если Автор уже вспомнил о фреймвроке Qt в вопросе о кроссплатформенности, то очень нехорошо было не упомянуть о нём в разделе о GUI.
К тому же совсем обделены вниманием интерпретируемые языки. Так же, если Автор уже вспомнил о фреймвроке Qt в вопросе о кроссплатформенности, то очень нехорошо было не упомянуть о нём в разделе о GUI.
0
На то и был расчет — только базовые понятия, без подробностей. По поводу литературы я написал в постскриптуме — конкретного списка нет, статья писалась целиком и полностью из головы, а там она накапливалась долго и из многих источников :)
Какие именно утверждения спорные и почему?
Какие именно утверждения спорные и почему?
-1
А, например, вот это: «Скорость разработки программы. [...] Скорость выполнения программ, написанных на данных языках страдает, причем порой весьма ощутимо.»
Скорость разработки и скорость выполнения связаны далеко не напрямую. Никто не мешает программу, сделанную в RAD или на DSL (т.е., с очень высокой скоростью разработки), компилировать хоть в машинный код сразу.
Скорость разработки и скорость выполнения связаны далеко не напрямую. Никто не мешает программу, сделанную в RAD или на DSL (т.е., с очень высокой скоростью разработки), компилировать хоть в машинный код сразу.
+2
Плюсану. Во время широкого расцвета Делфи сильно выигрывал на том, что делал через RAD, а потом результат декомпилил и доводил до вызовов API и ассемблера. Собиралась итоговая программа тем же компиляторов Делфи. Результаты были были весьма приемлемые как по скорости разработки, так и по результату.
0
Что-то маловато у вас там накопилось, как для статьи, ИМХО.
А когда же Хаскель выбирать? а на Питоне/Перле когда писать? А как, скажите, похаписты выбрали свой язык? Или JavaScript например? А как, например мне выбрать Лисп или Схему?
Следует глубже войти в изучаемую проблему, попробовать разные парадигмы, посмотреть разные продукты, написанные на тех или иных языках, лучше разобраться в преимуществах, истории языков. Короче, тема очень интересная, но и работы очень много.
А когда же Хаскель выбирать? а на Питоне/Перле когда писать? А как, скажите, похаписты выбрали свой язык? Или JavaScript например? А как, например мне выбрать Лисп или Схему?
Следует глубже войти в изучаемую проблему, попробовать разные парадигмы, посмотреть разные продукты, написанные на тех или иных языках, лучше разобраться в преимуществах, истории языков. Короче, тема очень интересная, но и работы очень много.
+3
1. Сначало стоит выбор платформы разработки — native Unix, native Windows, .Net, JVM В рамках одной платформы писать разные части на разных языках бычно не сложно
2. Не указаны предпочтения или требования заказчика. Например наши заказчики с виндами вообще не знакомы.
3. Очень важный критерий — с чем команда разработчиков знакома. Лучше писать для знакомых платформ, на знакомых языках.
4. Специфика разных областей применения — например для real time важнее всего скорость, для приложения на сердечном стимуляторе — надежность, для веб сайта — скорость разработки
Короче статья ни о чем. Очевидные вещи в ней есть а то, что узнаешь с опытом там отсутствует.
2. Не указаны предпочтения или требования заказчика. Например наши заказчики с виндами вообще не знакомы.
3. Очень важный критерий — с чем команда разработчиков знакома. Лучше писать для знакомых платформ, на знакомых языках.
4. Специфика разных областей применения — например для real time важнее всего скорость, для приложения на сердечном стимуляторе — надежность, для веб сайта — скорость разработки
Короче статья ни о чем. Очевидные вещи в ней есть а то, что узнаешь с опытом там отсутствует.
+9
1. Выбор платформы так же может диктоваться и заказчиком, а может выбираться и по своим критериям, список которых зависит от проекта.
2. Это относится так же к выбору платформы.
3. Ну… мне казалось это совсем уж логичным и не требующем разъяснения.
4. Верно. Но на мой взгляд сначала составляются требования к программам (скорость, надежность и так далее), а потом по ним уже идет подбор других пунктов, как тот же язык программирования. А надежность как критерий языка довольно спорный, так как можно на надежном языке написать совершенно ненадежную программу.
2. Это относится так же к выбору платформы.
3. Ну… мне казалось это совсем уж логичным и не требующем разъяснения.
4. Верно. Но на мой взгляд сначала составляются требования к программам (скорость, надежность и так далее), а потом по ним уже идет подбор других пунктов, как тот же язык программирования. А надежность как критерий языка довольно спорный, так как можно на надежном языке написать совершенно ненадежную программу.
-3
А веба не существует для вас?
0
Предвещая новые комментарии — статья и расчитана на совсем уж новичков. Все мы когда-то такими были. Когда я только начинал читать хабр 4 года назад я много чего не понимал, в т.ч. даже таких вещей, что описаны выше. Поэтому я решил начать с самых начал и сильно упрощенно.
-3
Тут помимо новичков есть и образованные люди, и таковых будет больше. Так что жду от вас статьи уже для «образованных» людей.
0
Вот скажите, часто вам встречались новички, которые могут вот так свободно выбирать, на каком языке программирования делать программу?
Я, будучи новичком, с трудом мог представить каким образом буду решать ту или иную задачу, а о выборе ЯП и разговора не было, писал на том, что умею. Это уже с опытом изучать другие языки и разбираться в их тонкостях.
Информация в статье либо приходит с опытом, либо в ней просто не нуждаются.
Я, будучи новичком, с трудом мог представить каким образом буду решать ту или иную задачу, а о выборе ЯП и разговора не было, писал на том, что умею. Это уже с опытом изучать другие языки и разбираться в их тонкостях.
Информация в статье либо приходит с опытом, либо в ней просто не нуждаются.
+4
Я сам будучи новичком
0
Извиняюсь, случайно отправил.
Я сам будучи новичком перед тем как начать что-то учить стоял на «перекрестке» — я примерно знал какого плана программы хочу писать, но не знал какой язык для этого лучше, и методом проб и ошибок искал приемлемый вариант для моих целей. На это ушло достаточно времени.
Да и данный сайт информационный, на нем нет шильдика «только для профессионалов!», сюда заходят люди самых разных категорий с самым разным уровнем. То, что большинство зарегистрированных пользователей профессионалы — может быть и так, спорить не буду, но кто скажет какие гости заходят на сайт? :)
Я сам будучи новичком перед тем как начать что-то учить стоял на «перекрестке» — я примерно знал какого плана программы хочу писать, но не знал какой язык для этого лучше, и методом проб и ошибок искал приемлемый вариант для моих целей. На это ушло достаточно времени.
Да и данный сайт информационный, на нем нет шильдика «только для профессионалов!», сюда заходят люди самых разных категорий с самым разным уровнем. То, что большинство зарегистрированных пользователей профессионалы — может быть и так, спорить не буду, но кто скажет какие гости заходят на сайт? :)
0
Если бы новичок у меня спросил, какой язык нужно изучать, чтобы научиться программированию, то я бы безусловно посоветовал python. Этакий современный паскаль, который дальше можно применять на практике. Довольно ясный код, без всяких лишних служебных элементов, да и форматировать вложенный код отступами учит до автоматизма.
Из вашей статьи — ассемблер, фортран, упаси боже новичку такое советовать. Ощущение, что прочитал статью 10 летней давности из школьного учебника информатики.
Из вашей статьи — ассемблер, фортран, упаси боже новичку такое советовать. Ощущение, что прочитал статью 10 летней давности из школьного учебника информатики.
0
Весьма вероятно, что я ошибаюсь, но, как мне кажется, чисто на ASM уже давно не пишут. Те же встроенные системы вроде бы обычно написаны на C/C++. А ASM используется внутри программ для критически важных мест (из того, что я видел — как правило, это была графика). Просто мне показалось, что как-то слишком ему много внимания уделили тут.
Я бы вообще грубо разделил на такие группы.
Высокая производительность: C/C++/Objective-C
GUI-приложения и веб-сервисы: C++/Java/C#
Интерпретируемые языки (веб и быстрая разработка): Python/PHP/Ruby
Как-то так.
Я бы вообще грубо разделил на такие группы.
Высокая производительность: C/C++/Objective-C
GUI-приложения и веб-сервисы: C++/Java/C#
Интерпретируемые языки (веб и быстрая разработка): Python/PHP/Ruby
Как-то так.
+2
Просто мне показалось, что как-то слишком ему много внимания уделили тут.
А вас это так задевает?
-1
ASMу много внимания не бывает.
Между прочим, совсем недавно приходилось на нем писать работу с девайсом, на который под систему дров нет в природе.
Между прочим, совсем недавно приходилось на нем писать работу с девайсом, на который под систему дров нет в природе.
0
Да, я понимаю, бывают специфические ситуации.
Просто я обратил внимание, что автор заметил, будто эта заметка рассчитана на начинающих программистов. И я очень сомневаюсь, что начинающему программисту нужен ASM. Хотя бы потому, что выучить язык с лексемой подобной любому естественному языку будет проще, на нем проще выражать свои мысли. Поэтому мне и показалось, что делать такой сильный акцент на нем тут просто не имеет смысла.
Забавно, кстати, получается — для новичка, как правило, вообще не стоит проблема выбора языка программирования, так как он в лучшем случае хорошо знает один язык :)
Просто я обратил внимание, что автор заметил, будто эта заметка рассчитана на начинающих программистов. И я очень сомневаюсь, что начинающему программисту нужен ASM. Хотя бы потому, что выучить язык с лексемой подобной любому естественному языку будет проще, на нем проще выражать свои мысли. Поэтому мне и показалось, что делать такой сильный акцент на нем тут просто не имеет смысла.
Забавно, кстати, получается — для новичка, как правило, вообще не стоит проблема выбора языка программирования, так как он в лучшем случае хорошо знает один язык :)
+1
Согласен, ситуация комична: с выбором языка разбираются профессионалы. Новички как-то в сторонке.
Конечно, часто можно увидеть вопросы «Посоветуйте, какой язык начать изучать», но… Я справился с самостоятельным изучением только после того, как основательно укрепился в С++. Да и выбирать не приходилось — просто возникла мысль «Хочу знать Haskel».
Итог: статья типа «Выбор языка для новичков»(не конкретно эта) — она не для новичков =)
Конечно, часто можно увидеть вопросы «Посоветуйте, какой язык начать изучать», но… Я справился с самостоятельным изучением только после того, как основательно укрепился в С++. Да и выбирать не приходилось — просто возникла мысль «Хочу знать Haskel».
Итог: статья типа «Выбор языка для новичков»(не конкретно эта) — она не для новичков =)
0
К слову о высокой производительности и скорости разработки.
Необходимо ввести понятие критериев краткосрочной и долговременной эффективности решения.
В случае достижения краткосрочной производительности действительно подойдут компилируемые языки с прямым (или междушажным) доступом до аппаратной части и низкоуровневых библиотек.
Что же касается планирования эффективности и производительности в долгосрочной перспективе, то здесь скорее выиграют те языки, которые из коробки дают возможность распределенных вычислений, балансировки нагрузки и прочие плюшки, включая (!) API доступ до низкоуровневых библиотек на системах, где они развернуты (например, Java/Scala). В этом случае скорость разработки возрастает, а вот разница в производительности по сравнению с программой на С++ в пределе временной шкалы приближается к нулю.
Автор начал красиво и правильно, но мне что-то подсказывает, что критериев должно быть на порядок больше, если уж мы тянемся до уровня хабра-статьи, а решение должно быть представлено в виде лепестковой диаграммы.
Необходимо ввести понятие критериев краткосрочной и долговременной эффективности решения.
В случае достижения краткосрочной производительности действительно подойдут компилируемые языки с прямым (или междушажным) доступом до аппаратной части и низкоуровневых библиотек.
Что же касается планирования эффективности и производительности в долгосрочной перспективе, то здесь скорее выиграют те языки, которые из коробки дают возможность распределенных вычислений, балансировки нагрузки и прочие плюшки, включая (!) API доступ до низкоуровневых библиотек на системах, где они развернуты (например, Java/Scala). В этом случае скорость разработки возрастает, а вот разница в производительности по сравнению с программой на С++ в пределе временной шкалы приближается к нулю.
Автор начал красиво и правильно, но мне что-то подсказывает, что критериев должно быть на порядок больше, если уж мы тянемся до уровня хабра-статьи, а решение должно быть представлено в виде лепестковой диаграммы.
0
Flash, java все в кучу. Чаще язык программирования не выбирают, он навязывается совокупностью задача + платформа.
+1
Кажется забыли один из самых важный параметров — знакомство комманды с инструментом/языком. Часто бывает, что конкретной задаче в теории отличо подходит domain-specific language, но на практике обычно выбирается то, с чем лучше знакома команда разработчиков, и это обычно языкы общего назначения. Иногда изучения нового языка под конкретную задачу окупается, но это скорее исключение из правила.
0
Это для программистов таджиков топик? Выбора такая выбора
+3
Как-то поверхностно написано. Хотя для учебника по информатике для класса этак 10 наверно самый раз.
Язык програмирования — Flash?
Язык програмирования — Flash?
+2
В общем, первый блин комом, но недоработки учту. Вопрос к хабрасообществу: переделывать ли данную статью согласно комментариям, либо оставить её как есть? Дело в том, что данная статья в принципе основана на новичков, так как люди, уже профессионально занимающиеся программированием в состоянии сами проанализировать имеющиеся языки и сделать нужный выбор, либо вообще не делать выбор и писать на том языке, что уже знают. Делать просто сравнительный анализ языков или сгруппировать их по сферам применения я считаю бессмысленно — по указанной мной ссылке весьма информативная таблица с перечислением возможностей языков.
0
Тут вот какой прикол. Писать лучше то, с чем ты знаком.
Тоесть, твою мать, надо сесть и наклепать пару проектиков с нуля, тогда у тебя появится ОПЫТ. А ОПЫТ, который в некоторых проектах рифмуется со словом ЖОПА, подсказывает тебе, что иногда очень даже можно брать старый сайт на JSP и дёргать его интернет-эксплорером, после этого оборачивать вызовы в DCOM и посылать на удалённое C++ приложение. Такое тоже видели.
Короче, я к чему — теория она хороша только для того, чтобы наблюдать. Если у тебя нет теории — ты видишь людей, пялящихся в мониторы. Если у тебя есть теория, ты видишь программистов, пишущих код.
Но сами по себе наблюдения не дают ничего, кроме данных.
А данные, мать вашу так, тру-ля-ля, надо оценивать! Для этого тебе и дан твой IQ. Если данные не оценивать — получишь Биологию. В ней есть куча интересной информации о разных кракозябрах, но никто толком понять не может, откуда это взялось и как появилось.
А как данные оценить? Поработать с ними, выкинуть то, что не работает, запомнить то, что работает, получить пару шишек (Ибо профессор Кнут говорил, что так нельзя, но оказывается, у русских программеров есть исключения).
Ключевой момент вот в чём — ответь на грёбаный вопрос: "Это работает для тебя?"
Я видел программу, написанную на языке PROGRESS. Я видел программы, которые используют COM порт как сетевое соединение. Я видел это в 2012 году. И…
Оно работало.
Поэтому, хватит тут разглагольствовать на тему того, что надо переделывать или что не надо переделывать. Пойди — попробуй сам, пострадай, попотей, пополивай кровью — но СДЕЛАЙ. А потом — напиши об этом. И расскажи как ты делал. Вот такие штуки ценятся
Тоесть, твою мать, надо сесть и наклепать пару проектиков с нуля, тогда у тебя появится ОПЫТ. А ОПЫТ, который в некоторых проектах рифмуется со словом ЖОПА, подсказывает тебе, что иногда очень даже можно брать старый сайт на JSP и дёргать его интернет-эксплорером, после этого оборачивать вызовы в DCOM и посылать на удалённое C++ приложение. Такое тоже видели.
Короче, я к чему — теория она хороша только для того, чтобы наблюдать. Если у тебя нет теории — ты видишь людей, пялящихся в мониторы. Если у тебя есть теория, ты видишь программистов, пишущих код.
Но сами по себе наблюдения не дают ничего, кроме данных.
А данные, мать вашу так, тру-ля-ля, надо оценивать! Для этого тебе и дан твой IQ. Если данные не оценивать — получишь Биологию. В ней есть куча интересной информации о разных кракозябрах, но никто толком понять не может, откуда это взялось и как появилось.
А как данные оценить? Поработать с ними, выкинуть то, что не работает, запомнить то, что работает, получить пару шишек (Ибо профессор Кнут говорил, что так нельзя, но оказывается, у русских программеров есть исключения).
Ключевой момент вот в чём — ответь на грёбаный вопрос: "Это работает для тебя?"
Я видел программу, написанную на языке PROGRESS. Я видел программы, которые используют COM порт как сетевое соединение. Я видел это в 2012 году. И…
Оно работало.
Поэтому, хватит тут разглагольствовать на тему того, что надо переделывать или что не надо переделывать. Пойди — попробуй сам, пострадай, попотей, пополивай кровью — но СДЕЛАЙ. А потом — напиши об этом. И расскажи как ты делал. Вот такие штуки ценятся
-1
Приведу простую аналогию: на работу можно ехать на «легковушке», а можно и на асфальтоукладочном катке. Результат будет один и тот же — мы на доехали на работу. Работает? Конечно! Вот так и тут, мать вашу так :) Только в сфере кодинга такие вещи более уместны на хабе «ненормальное программирование» ;)
>Ключевой момент вот в чём — ответь на грёбаный вопрос: «Это работает для тебя?»
То, что описано в статье — да. Я не пытаюсь кодить в определенной области не предназначенным для этого языком.
>Ключевой момент вот в чём — ответь на грёбаный вопрос: «Это работает для тебя?»
То, что описано в статье — да. Я не пытаюсь кодить в определенной области не предназначенным для этого языком.
0
Поддерживаю Nurked`а.
Часто говорят: «Выбирайте язык под задачу». Но это, по-моему, тоже туфа. Я обычно сталкивался с этой проблемой в следующем контексте:
Я знаю, что смогу решить эту задачу на своем любимом языке «Таракан Кукарача», хотя это и будет сложно. А дядя Петя-алкоголик твердит, что для подобных задач был разработан язык «Крошка Молли», и на нем эту задачу решить куда проще. И выбор «Знаю, но сложно vs Не знаю, но просто» в случае необходимости показать результат как можно скорее делался не в пользу бедной овечки.
Часто говорят: «Выбирайте язык под задачу». Но это, по-моему, тоже туфа. Я обычно сталкивался с этой проблемой в следующем контексте:
Я знаю, что смогу решить эту задачу на своем любимом языке «Таракан Кукарача», хотя это и будет сложно. А дядя Петя-алкоголик твердит, что для подобных задач был разработан язык «Крошка Молли», и на нем эту задачу решить куда проще. И выбор «Знаю, но сложно vs Не знаю, но просто» в случае необходимости показать результат как можно скорее делался не в пользу бедной овечки.
0
Еще Козьма Прутков говорил, что нельзя объять необъятное. Но, вы все-таки решились, не имея соответствующего бэкграунда написать пост из серии «Все обо всем». В итоге получилось из серии «Собрание расхожих стереотипов и заблуждений о программировании».
Верните мне мои 10 минут.
Верните мне мои 10 минут.
+5
C# кроссплатформенный? Идея то изначально была такой, но фактически работает только под виндой
-1
Sign up to leave a comment.
Выбор языка программирования