Нередко слышу вокруг себя субъективные (и не очень) мнения о том, что такой-то язык г#вно и писать на нём в современном мире -- моветон.
Разумеется, в таком тоне говорится абсолютно обо всём -- PHP, JS, 1С etc. Как известно, языки делятся на два типа -- те, которые ненавидят, и те, на которых никто не пишет.
А что для вас определяет "вкус" языка? Наличие синтаксического сахарка в виде лямбд и прочей функциональщины? Огромная стандартная библиотека? Коммьюнити?
Здравствуйте, b0r3d0m, Вы писали:
B>Короче, дискасс.
Лаконичность, но не у ущерб читаемости. Наличие кучи ключевых слов, и необходимость в различных приседаниях, как в паскале — это минус. Лаконичность, как у C-образных языков — плюс.
Статическая типизация — плючище
Хорошая стандартная библиотека — плюс.
Лямбды и прочий сахарок — плюсик.
Навязывание одного определенного стиля форматирования — минусище
1. Статическая типизация. Но тут нужен баланс, хаскель лесом.
2. Простота. Язык должен познаваться на 99% за пару часов. Чем меньше WTF-ов, тем лучше.
3. Выразительность. Язык должен предоставлять возможность абстрагировать повторяющийся код. И чем лучше он это делает, тем лучше он.
4. Понятность. В языке должно быть как можно меньше магии. Посмотрев на код должно быть понятно, что он делает на 100%.
5. Скорость. К языку непосредственно, конечно, не относится, но обычно каждый язык ассоциируется с конкретным компилятором, в общем результат должен выполняться не медленнее, чем код на C. В крайнем случае не на порядок медленней. То же про занимаемую память.
Re[4]: А что вам нравится в языках программирования (???)
У>Мне не нравится, что это вызывает ошибку компиляции, как минимум
Это же наоборот круто! Единый стиль для всех программ, написанных на этом языке!
У>Или в рантайме что-нибудь вылетит, из-за того, что где-то не так пробел стоит.
Прогонять каким-нибудь PEP verifier'ом или lint'ом перед запуском.
Re[7]: А что вам нравится в языках программирования (???)
Здравствуйте, b0r3d0m, Вы писали:
У>>Мне не нравится, что это вызывает ошибку компиляции, как минимум B>Это же наоборот круто! Единый стиль для всех программ, написанных на этом языке!
И мне этот стиль не удобен
У>>Или в рантайме что-нибудь вылетит, из-за того, что где-то не так пробел стоит. B>Прогонять каким-нибудь PEP verifier'ом или lint'ом перед запуском.
Ну, pep'ом, да. А смысл тогда в динамике, если всё равно нужно какие-то прогоны типа компиляции делать? Тогда бы уж и типизацию бы статическую прикрутили бы, всяко больше пользы, как сейчас.
Re: А что вам нравится в языках программирования (???)
Здравствуйте, утпутуук, Вы писали:
У>Наличие кучи ключевых слов, и необходимость в различных приседаниях, как в паскале — это минус.
По ключевым словам и приседаниям Паскаль не отличается от сишки, по-моему. Разве что напортачить сложнее. Вот Ада уже поинтереснее. Даже указатель на переменную так просто не взять. Но это плюс скорее.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[3]: А что вам нравится в языках программирования (???)
Здравствуйте, T4r4sB, Вы писали:
У>>Наличие кучи ключевых слов, и необходимость в различных приседаниях, как в паскале — это минус.
TB>По ключевым словам и приседаниям Паскаль не отличается от сишки, по-моему. Разве что напортачить сложнее. Вот Ада уже поинтереснее. Даже указатель на переменную так просто не взять. Но это плюс скорее.
Begin/End? Еще и какие-то мутные правила, когда блоки вложенвы. Раздел описания констант/переменных/типов в каждой процедуре? Мелочь конечно, но напрягает при регулярном использовании. Как это мешает портачить —
Re[4]: А что вам нравится в языках программирования (???)
А какие с ними проблемы?
>Еще и какие-то мутные правила, когда блоки вложенвы.
???
> Раздел описания констант/переменных/типов в каждой процедуре?
Нефиг большие процедуры делать.
> Как это мешает портачить —
Это не особо мешает, а вот то, что массивы изначально с вшитым ассертом, или что := вместо = не напишешь в заголовке ифа, это уже помогает. У нормальных людей, конечно, включены предупреждения, и ещё у них за
T a[N]
вместо
std::array<T,N> a
принято вешать люлей, но нормальных людей мало.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[5]: А что вам нравится в языках программирования (???)
Здравствуйте, T4r4sB, Вы писали:
У>>Begin/End?
TB>А какие с ними проблемы?
Писать дольше и захламляют код
>>Еще и какие-то мутные правила, когда блоки вложенвы.
Ну там где-то точку надо ставить, где-то не надо. Не помню, давно не откушивал
>> Раздел описания констант/переменных/типов в каждой процедуре?
TB>Нефиг большие процедуры делать.
Большие не большие, а объявлять переменные по мере нужды гораздо удобнее, и опять же лишние ключевые слова.
TB>Это не особо мешает, а вот то, что массивы изначально с вшитым ассертом, или что := вместо = не напишешь в заголовке ифа, это уже помогает. У нормальных людей, конечно, включены предупреждения, и ещё у них за TB>
TB>T a[N]
TB>
TB>вместо TB>
TB>std::array<T,N> a
TB>
TB>принято вешать люлей, но нормальных людей мало.
Хм, кто-то еще использует сейчас массивы, а не вектора?
:= vs =/== — спасибо, что напомнил. Отдельный луч поноса за эту фишку. На знак = вместо == — натыкаюсь регулярно, да. Раз в пару лет. И компилятор не дает так сделать (не помню, ошибка или варнинг, скорее всеже второе), если уж приспичило что-то именно приравнять, приходится доп скобки ставить
Re[2]: А что вам нравится в языках программирования (???)
Здравствуйте, vsb, Вы писали:
vsb>1. Статическая типизация. Но тут нужен баланс, хаскель лесом.
Э.... А что не так с типизацией в Хаскеле? По сравнению, скажем, с С++?
Здравствуйте, утпутуук, Вы писали:
У>Писать дольше и захламляют код
У>Ну там где-то точку надо ставить, где-то не надо. Не помню, давно не откушивал
Про точку с запятой после } я до сих пор запомнить не могу. А в Паскале точка нужна лишь после мейна.
У>Большие не большие, а объявлять переменные по мере нужды гораздо удобнее, и опять же лишние ключевые слова.
Одно слово var. Фишка с объявлением в начале действительно бесит, но лишь когда говнокод жёсткий лепишь.
У>Хм, кто-то еще использует сейчас массивы, а не вектора?
Вектор это лишняя индирекция. И он кучу дёргает, сейчас ты скажешь про специальные аллокаторы, да кто ими пользуется.
У>:= vs =/== — спасибо, что напомнил. Отдельный луч поноса за эту фишку.
А, ещё свич, в котором по умолчанию выполнение "протекает" в следующий блок, и надо ставить бряк, чтоб этого не было. Это просто пипец какой-то. Возможность делать перечисления и диапазоны в метках свича убивает 95% применения протекания, а на остальные 5% случаев (которые все говнокод) добавили б слово "континуе" для принудительного протекания.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re: А что вам нравится в языках программирования (???)
Здравствуйте, b0r3d0m, Вы писали:
B>Короче, дискасс.
Мне в языках нравится культура. Если она практичная и более прикладная (python, Go) то язык нравится. Если вещь в себе с некоторыми странностями (С++, Java) — то не очень, хотя на обоих языках можно писать практично, ядовитого комьюнити, которое будет тебе объяснять важность DI или template metaprogramming не избежать. Мне не нравятся языки, которые пытаются защищать от ошибок ценой verbosity и меньшей выразительности (С++, Scala, Rust). Нравятся языки которые позволяют выстрелить себе в ногу, но на которых очень легко создавать/комбинировать/описывать и тд, т.е. выразительные языки вроде питона или С. В общем, языки в которых есть набор простых строительных блоков из комбинации которых все строится, как в сишечке например, или в Go, или в питоне.