Пишу ряд статей для хабрахабра. Почти в каждой статье будет реализация примера или алгоритма. Вот сижу и мучаюсь на каком языке писать эти самые примеры. В конце концов решился провести мини-опрос…
Это непростая задача автора: выбрать язык для конкретного случая. Согласитесь, было бы странно увидеть в статье про C# код на бейсике.
В самом общем случае — схема + псевдокод, а конкретно — только от самой статьи и зависит. Как ещё можно ответить на этот вопрос, не видя статьи? Только подумав — а о чем будет статья, если автору все равно на каком из приведённых (это ключевое слово) языков писать примеры.
Кстати, еще одного подходящего варианта нету: С без плюсов. Классика.
Можно тогда и паскаль вспомнить. Согласитесь смешно же будет писать статью на языке, который кроме как в школе используют только особо «отмороженные» люди. Если статья под мейнстрим, то и писать ее придется на языке понятному мейнстриму…
Не обязательно. Чтобы понять алгоритм, код (или схему) должно быть легко читать. Поэтому я считаю, что для описания алгоритмов нужно выбирать простой и понятный язык. Например, алгоритмический. ;)
Я за C++, C# или Python. Вообще на Python алгоритмы часто смотрятся компактно, но для скорости их после этого приходится переписывать на какой-нибудь более компилируемый язык.
Если ориентироваться на большинство аудитории, то на ПХП. А так уже зависит от конкретного случая, где-то лучше СИ, а может и псевдокод. Если пример труден в понимании, тогда в бой должны пойти всякие схемки и диаграммы.
А вообще, вопрос слишком общий, примеры всякими бывают. Что-то мне кажется что я написал очевидные вещи, хотя судя по опросу они очевидны не всем :)
Ох, C++ хоть и классика, но далеко не идеально. Тото же самый код на Java и C# читаются гораздо легче, нежели на C++, а если мы еще и указатели начнем использовать…
Думаю Java, он давно уже стал стандартом дефакто для всякого рода литератору по разработке и архитектуре, которые вышли позже нежели «Design Patterns». Нет, конечно и там встречаются другие языки, но количество примеров на них не соизмеримо…
Да и врядли можно найти человека, который не понимал бы что написано на яве. Хотя иногда еще полезно что-нибудь на uml-е изобразить.
Программы на языке Perl очень сложно переписывать на другие языки. Плюс Perl подсознательно вызывает раздражение у людей которые привыкли к строгим языкам…
Если спрашивают на каком языке пример писать, то это значит что не используются принципиальные моменты определенных языков, иначе код был бы на них. А так как этого языка нет в голосовании, то я высказал свою мысль в комментариях. Мне самому, как веб-мастеру, удобнее некоторые вычисления написать на Javascript, ведь интерпретатор этого языка есть на любом компьютере, и зачастую в нескольких реализациях (браузерах). В винде же ещё удобнее — можно создать файл .js и запустить его как исполняемый.
Ruby или Python, код на них выглядит компактнее, и интуитивно понятен. javascript тоже для этого не плох. На Си++/С#/C/Java много места будет потрачено на всякую инициализацию и детали реализации, что при описании алгоритма лишь мешает понять его суть.
Как адепт Питона должен сказать, что он во многом задумывался именно как легко читаемый язык. Т.е. по идее человеку со стороны должно быть не трудно понять что происходит в программе в общем. И плюс принцип «явное лучше не явного». На том же Перле может получиться более короткий код, но обычно менее понятный для непосвящённых.
По личным впечатлениям. Не пишите на на Ruby и C++. Плюсы по понятности для человека со стороны не сильно хороши, а в Ruby глаза всё время спотыкаются о @, :, !, = и т.п. (Ах да, по-моему по поводу Питона автор ещё писал, что старался избавить его от лишних нечитаемых символов. В Руби этого добра навалом.) Опять таки по личным впечатлениям из языков, которых я не знаю лучше всего читаются Java и C#.
Теперь, наконец по сути. ) Всё зависит от того, что вы там собираетесь писать. И на Питоне можно написать всеобще понятное:
for i in range(1,10):
print i
и всеобще непонятное:
frame = sys._getframe(1)
if '__module__' in frame.f_locals and not '__module__' in frame.f_code.co_varnames:
# и т.д.
Если вы собираетесь писать про общечеловеческие алгоритмы, то на каком языке вы будете писать for, while, if и т.п. не сильно важно. Подавляющее большинство поймёт. Если же вы станете пользоваться нестандартными библиотеками конкретного языка, то вас могут понять даже не все, кто его знает. Так что для статей типа «Подпольная библиотека языка X» нужно использовать язык X, а для статей типа «Алгоритм пирамидальной сортировки» используйте что вам нравится. if, for, while все понимают одинаково. )
Одной строкой без опозновательных знаков писать скорее в принципах Перла. shift и всё тут. В идеологии Питона главное понятность. Хотя, если захотеть, можно конечно и в Питоне огород нагородить.
Кстати, если вам так уж важна одна строчка, то более питонично написать:
for i in range(1, 10): print i
Этот способ понятнее, эффективнее и тоже в одну строчку. Если же упражняться в извращениях, то надо писать:
import sys
map(lambda a: sys.stdout.write(str(a)), range(1, 10))
я не о количестве строк, а об отказе от явных циклов в пользу отображений, фильтров, сокращений. Про sys.stdout.write в курсе, но пример с ним громоздкий получается (для полноты картины надо ещё перевод строки добавить).
На каком языке программирования лучше всего писать примеры для статей на хабрахабр?