Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 18

Ну хорошо, хоть Verilog, SystemVerilog и VHDL в каких-то рейтингах появились. Хоть они и языки программирования только в одном из аспектов.

Вот всегда было интересно. Как вы/они разделяете C и C++?

Мне уже занадоело смотреть на C++ код типа:

class UberCppClass {
  public:
  int megafunction();
  uint magicfunction();
}

Зато класс, зато проект у нас на C++…

int megafunction(const auto& megaArray){
  for(const auto& value : megaArray){
    value...
  }
}

А megafunction не так выглядит?

В megaArray может быть только megaValue

оооо, любители пихать auto везде - для них прямо отдельный котёл в аду стоит. Особенно доставляют auto вкупе с функциями на десять экранов и великолепно именованными переменными и функциями типа auto o = getObviousValue(), угадайте что возвращающее... Баловство детей, которые не знали ничего кроме IDE.

Вы ещё шаблоны вспомните. типа template <class T> T mathop(T a, T b) { return a + b; } при единственном упоминании во всём коде, желательно в виде auto c = mathop(2, 3). Ну чтобы точно тот, кто будет читать этот код - сошёл с ума, пытаясь понять что хотел сказать автор...

В общем не об этом был мой вопрос.

Я тоже долго не любил auto :)

А потом я попробовал Haskell и теперь тоже нравится везде пихать auto, хотя моя бы воля, я бы как-нибудь и без него обошёлся)

Я не против auto как языковой конструкции, я против превращения кода (изначально строго типизированного языка) в подобие скриптового с типизацией в рантайме. Осталось auto заменить на $ перед переменной и, считай, php получился.

Но боль даже не в этом. Язык-то остался строго типизированным. Т.е. auto это не, например, variant с кучей преобразований на лету. Бездумное использование auto тупо затрудняет чтение кода без IDE с IntelliSense, как минимум, и знания всей архитектуры проекта, как максимум (чтобы на лету понимать что нам даёт на выходе тот или иной вызов или атрибут, либо быстро найти место объявления).

Строго типизированный != нужно указывать тип. Haskell строго типизированный язык, точно "строже" С++ (уж не знаю насколько корректно так говорить), но при этом писать типы нужно оч редко.

Конечно С++ не Haskell, но пока код относительно высокоуровневыйии не надо ковырять байтики, не писать тип бывает лучше, чем его писать.

Коллега, Вы меня извините, но, при всём уважении, ваше заявление попахивает джаваскрптингом в ругательном смысле :)

Я, к сожалению не писал ничего на хаскеле, но скажите о каком размере исходного кода мы говорим? Сотни тысяч строк? Миллионы? И я говорю про один « продукт». Скажем, отдельно взятый драйвер, например. Так вот я про проекты от 100к строк. В софтинке из трёх сорцов по 200 строк и двух заголовков - хоть на голове стойте.

Это как обсуждать, например, необходимость использования сокращений (омг, имхо, лол, …), основываясь на переписке в аське, а не трудах Толстого, Достоевского и других классиков литературы. Сейчас ещё немного и мне придётся объединить комменты и развить мысль в отдельной статье. О трёх актах.

Всё, что могу ответить - просто попробуйте Haskell :)

Остальное - очень долгая дискуссия, которую я вести не хочу. Большая часть из неё будет пересказом Core Guidelines, ведь там вполне себе нормально описано, когда auto хорошо, а когда плохо. И я по большей части согласен с Core Guidelines)

Возвращаясь к теме статьи - основываясь на данных выше, по востребованности языка - необходимость использовать хаскел уменьшается ежегодно. Так что и вероятность его попробовать стремится к нулю :)

Даже те же плюсЫ, с осуждаемыми плюшечками и фенечками, которые так любят дети, скорее набирают/сохраняют популярность.

Что вы понимаете под строгой типизацией? В общем, C/C++ - не строго (не сильно) типизированные языки. Да, типизация явная и статическая, но не строгая. В отличие от того же Python, где все наоборот

Ну т.к. мы обсуждаем синтаксис, то речь, собственно, о синтаксическом смысле. И там всё было строго. Нельзя было создать переменную без объявления типа.

Коллеги меня увели куда-то в дебри малозначительных особенностей синтаксиса. Мой посыл-вопрос был в теме статьи - а не кажется ли вам, коллеги, что если не разделять, на мой взгляд, искусственно С и С++, то результаты будут не в пользу других популярных языков?

С тем же успехом можно тот же питон делить на 2 и 3 версию (которую, возможно, ещё на минорные), пхп чуть ли не на до 4, 4-5, 7, 8, молчу уже про минорные версии. Ява и яваскрипт тоже не отстают с версионированием.

JS не отстаёт с версионированием? А какие там версии? Ну и если вы С и С++, решили за один ЯП считать, то нужно JS и TS так же считать.

Любопытно, что в США больше востребован специфический С++, а не широкий кросс-платформенный C#.

С++ не кроссплатформенный? А на чём, по-вашему, рантайм для C# написан?

+1

Как можно смотреть на топ языков по России, в котором нет 1С? Это значит, что вакансий на 1С в России меньше, чем вакансий на F# (реально где-то используется?)? Или это значит, что "1С - это не программирование, будем делать вид, что его не существует!?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий