IT в России и мире в реалиях мирового кризиса

1,404,046 8,484
 

Фильтр
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.54
Регистрация: 27.02.2012
Сообщений: 2,641
Читатели: 0
Цитата: Lapsha от 10.03.2016 08:12:15Вот 10 самых используемых языков программирования в мире:



Из них только Ruby пользует все эти endif, end и т.п. Остальные бодро оперируют фигурными скобками. И все у них, отчего-то, нормально читается.
То, что это плохо читается для кого-то единичного в Минске, несомненно крупном центре разработки мирового софта, никак не влияет на читаемость в других IT-центрах. Хоть и не настолько могучих как минский, канешно.

Дело-то ведь на самом деле очевидное: Вам предподавали Паскаль, Вы пользовали Дельфи, привыкли к нему кое-как, учить новое и тем более напрягаться с этим новым просто лень. Отсюда все эти натягивания и скобок, и "ненадежности", и отрицания совершенно очевидного факта, какие именно языки являются основными для промышленного программирования и т.п.
 


Это очевидно.

Не смотря на то что я не профи, это не отменят того, что я ещё занимаюсь самообразованием. Да Паскаль я знаю неплохо, как инструмент он очень даже великолепен. Особенно это приятно при отладке кода, в частности, когда к нему возвращаешься время от времени для внесения изменения. Он позволяет экономить кучу времени при отладке. А то что мейнстрим - это выделение ЛОГИЧЕСКИХ блоков скобками - это прискорбно.
ЗЫ. Анекдот " Алкоголь абсолютно безвреден - миллионы людей, его употребляющих не могут ошибаться " Выпивающий
  • +0.01 / 1
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: Superwad от 10.03.2016 08:48:48А то что мейнстрим - это выделение ЛОГИЧЕСКИХ блоков скобками - это прискорбно.

Ну ничего! Разработчики это как-нибудь переживут. 

Тем более что среди них есть немалое число с опытом работы с различными клонами Паскаля. И вот надо же - все равно выбрали скобки.
Цитата: Цитата: Superwad от 09.03.2016 18:48:48ЗЫ. Анекдот " Алкоголь абсолютно безвреден - миллионы людей, его употребляющих не могут ошибаться "


Неудачный пример.

Алкоголь в умеренном количестве, действительно, не только безвреден, но, говорят, еще и полезен. А вот запойных пьяниц (когда алкоголь вреден) - меньшинство населения.
Так что в данной байке алкаши гораздо естественнее изображают "дельфийцев".
  • +0.00 / 0
  • АУ
slavae
 
russia
Москва
Слушатель
Карма: +193.86
Регистрация: 21.03.2013
Сообщений: 27,850
Читатели: 7
Цитата: Igor_FF от 10.03.2016 09:36:10Если бы в С++ была возможность сделать синонимы для {} в виде begin..end выбрал бы второй вариант без раздумий. Но увы, предлагается жрать то что дают...

Помню ещё в ньюс-конфе ib.demo.ru кто-то показывал, как он переопределяет эти термины, вместо скобок begin end, вместо инклюдов - uses и т.п. )
Империя - это мир, и этой идеологии достаточно. Мы живём в самой лучшей стране в мире и все нам завидуют.
Одушевлённое Одевают, Неодушевлённое Надевают.
  • +0.03 / 3
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: slavae от 10.03.2016 09:56:39Помню ещё в ньюс-конфе ib.demo.ru кто-то показывал, как он переопределяет эти термины, вместо скобок begin end, вместо инклюдов - uses и т.п. )

Вот что бывает при неправильном выборе первого изучаемого языка программирования и привыкании к нему.

Отравленный мозг уже почти неспособен избавиться от полученного яда.

Мне же все эти конструкции а-ля Паскаль кажутся чем-то вроде взорванных железобатонных ошметков. Тяжелых и нелепых.

Можно сколько угодно нахваливать эти begin-end, но меня никто не убедит, что вот это:


while(condition1) do
begin
   while(condition2) do
   begin
      statement(s);
   end;
   statement(s);
end;

выглядит и читается лучше, чем это:

while(condition1)
{
   while(condition2) 
   {
      statement(s);
   }
   statement(s);
}
Отредактировано: Lapsha - 10 мар 2016 13:19:11
  • +0.00 / 0
  • АУ
sign
 
russia
Слушатель
Карма: +18.59
Регистрация: 23.01.2013
Сообщений: 3,605
Читатели: 0
Цитата: Lapsha от 10.03.2016 10:08:30while(condition1) do
begin
   while(condition2) do
   begin
      statement(s);
   end;
   statement(s);
end;

выглядит и читается лучше, чем это:

while(condition1)
{
   while(condition2) 
   {
      statement(s);
   }
   statement(s);
}

Я б вот так написал Улыбающийся:



Выделения в коде - это сама среда делает (Лазарус). И это можно настраивать под свою руку и глаз.
Отредактировано: sign - 10 мар 2016 13:55:10
  • +0.02 / 1
  • АУ
slavae
 
russia
Москва
Слушатель
Карма: +193.86
Регистрация: 21.03.2013
Сообщений: 27,850
Читатели: 7
Цитата: Lapsha от 10.03.2016 10:08:30Вот что бывает при неправильном выборе первого изучаемого языка программирования и привыкании к нему.

Отравленный мозг уже почти неспособен избавиться от полученного яда.

Мне же все эти конструкции а-ля Паскаль кажутся чем-то вроде взорванных железобатонных ошметков. Тяжелых и нелепых.

Можно сколько угодно нахваливать эти begin-end, но меня никто не убедит, что вот это:


while(condition1) do
begin
   while(condition2) do
   begin
      statement(s);
   end;
   statement(s);
end;

выглядит и читается лучше, чем это:

while(condition1)
{
   while(condition2) 
   {
      statement(s);
   }
   statement(s);
}

На самом деле

while condition1 do begin
   while condition2 do begin
      statement(s);
   end;
   statement(s);
end;
Отредактировано: slavae - 10 мар 2016 14:23:09
Империя - это мир, и этой идеологии достаточно. Мы живём в самой лучшей стране в мире и все нам завидуют.
Одушевлённое Одевают, Неодушевлённое Надевают.
  • +0.00 / 0
  • АУ
Foxhound
 
ussr
Москва
37 лет
Слушатель
Карма: +92.38
Регистрация: 18.02.2011
Сообщений: 13,358
Читатели: 7
Тред №1069742
Дискуссия   164 1
Странный спор, потому что предмет спора чисто психологический момент. Хотя в пользу скобок скажу, что они хотя бы байтов меньше требуют.
  • +0.00 / 0
  • АУ
TAU
 
Слушатель
Карма: +53.43
Регистрация: 24.07.2008
Сообщений: 4,228
Читатели: 0
Цитата: Lapsha от 10.03.2016 07:58:10Интересен этот феномен (пока что наблюдал только в бСССР) - подобная необъяснимая спесь. Особенно у айтишников всякого разлива. Сам себе пока придумал объяснение такое: едет крыша от осознания того, что имеют доход существенно выше среднего у окружающих.

Одно замечание: выражений подобных "бить сучёнка по рукам", "индусы" и т.п. следует стыдиться произносить публично. Ну, примерно как публично испражняться

Подпишусь под каждым словом! Улыбающийся
  • +0.01 / 1
  • АУ
TAU
 
Слушатель
Карма: +53.43
Регистрация: 24.07.2008
Сообщений: 4,228
Читатели: 0
Цитата: Jack Doe от 08.03.2016 22:50:371) оптимально продуманная семантическая система лаконична и выразительна одновременно (касается не только языков, но и API);
2) мыслите критически, умейте выделить суть, распознавайте маркетинговые обманки.

Опять же, весьма здравые мысли, под коими готов подписаться.
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: Цитата: slavae от 09.03.2016 21:22:11На самом деле

while condition1 do begin
   while condition2 do begin
      statement(s);
   end;
   statement(s);
end;



Все равно намного корявее "сишного".

Тут ничего не поможет.
Отредактировано: Lapsha - 10 мар 2016 21:41:30
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: Sewer Endemic от 10.03.2016 13:58:43Пайтон выкиньте из использующих скобки. Там всё на отступах.Улыбающийся


Это - да. Тут я дал Маху.

Но Питон и не пользует эти begin - end.
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: Lapsha от 10.03.2016 08:01:39Я не писал, что "на Си нельзя написать API для работы с графикой/окнами". 

С графикой можно работать и в АSM. 
Я писал, что Си не дружит с развесистой графикой. 
Оконный интерфейс очень естественным образом упаковывается в библиотеку С++. И очень громоздко - с С или любым другим не ООП.

Для тех кто в танке -- код практически всех графических и/или оконных библиотек написан на С. И родной их интерфейс исполнен тоже на С. На С++ только привязки.
Насчет упаковки графических и оконных библиотек в C++ -- только в виде оберток С-кода.

Пришлось целый Qt разработать, чтобы упаковать окна в С++. И весь смысл Qt состоит в том, чтобы добавить в объектно-ориентированный С++ те  объектные штучки, которых там нет изначально -- сигналы и сообщения в юзерспейсе.

"Объектно-ориентированный" отнюдь не означает "поддерживает объектную парадигму". Скорее наоборот, "Объектно-ориентированный С++" означает, что С++ ее не поддерживает -- он просто где-то как-то около пробегал.
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: Lapsha от 10.03.2016 08:12:15Вот 10 самых используемых языков программирования в мире:

На этих языках, за исключением С и 5% шевелящегося мирового кода не написано -- парадокс.
Четыре языка поддерживают наш мир -- это си, кобол, ада и фортран. Определилось это к середине 90-х и по сей день положение мало изменилось. Поверх них чехарда из мусорных языков, играющих роль ловушек огораживания.
  • +0.01 / 1
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: adolfus от 10.03.2016 18:43:59Для тех кто в танке -- код практически всех графических и/или оконных библиотек написан на С. И родной их интерфейс исполнен тоже на С. На С++ только привязки.
Насчет упаковки графических и оконных библиотек в C++ -- только в виде оберток С-кода.


Какой-то странный подход.

А сам компилятор С написан на ассемблере. И С есть не что иное, как "обертка" ассемблера. Только еще более абстрагированная от процессорных кодов.

А человек - не что иное как набор атомов из таблицы Менделеева.


Цитата: Цитата: adolfus от 10.03.2016 04:43:59Пришлось целый Qt разработать, чтобы упаковать окна в С++. И весь смысл Qt состоит в том, чтобы добавить в объектно-ориентированный С++ те  объектные штучки, которых там нет изначально -- сигналы и сообщения в юзерспейсе.


Смысл Qt - кроссплатформенная универсальная библиотека C++, плюс сигналы, да. Они даже одно время не шутя пытались конкурировать с Java.


Только сигналы - это именно для UI, сами по себе они не имеют ничего общего с "объектными штучками".
Любой многопоточный/многопользовательский графический интерфейс в той или иной форме имплементирует эти сигналы (в общем смысле). И так публично нелюбимая у кулхацкеров микрософтовская MFC, и давно давшая дуба Борландовская OWL, и нынешняя пока еще коптящая дельфийская VCL. Все они имеют диспетчеры событий. Событий, генерируемых UI.

Цитата: Цитата: adolfus от 10.03.2016 04:43:59"Объектно-ориентированный" отнюдь не означает "поддерживает объектную парадигму". Скорее наоборот, "Объектно-ориентированный С++" означает, что С++ ее не поддерживает -- он просто где-то как-то около пробегал.


Я этого не понимаю. К сожалению или к счастью - хз.
Отредактировано: Lapsha - 10 мар 2016 22:15:40
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: adolfus от 10.03.2016 18:50:47На этих языках, за исключением С и 5% шевелящегося мирового кода не написано -- парадокс.
Четыре языка поддерживают наш мир -- это си, кобол, ада и фортран. Определилось это к середине 90-х и по сей день положение мало изменилось. Поверх них чехарда из мусорных языков, играющих роль ловушек огораживания.


Можно глянуть на статистику на эту тему? Хорошую, доверительную статистику.


А то подобные утверждения выглядят как-то слишком по-щелкопёрски.
  • +0.02 / 2
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: slavae от 10.03.2016 11:22:11На самом деле

while condition1 do begin
   while condition2 do begin
      statement(s);
   end;
   statement(s);
end;

Я бы написал так

while (condition1)

   while (condition2)
      statement(s);
   end;
   statement(s);
end;

или, чтобы не заработать типе-болезнь, так

while (condition1)

   while (condition2)
      statement(s);
   }
   statement(s);
}

Все видно, компайлер доволен, связки в покое.





В смысле, что любое ключевое условного оператора самодостаточно
Собственно, если долго иметь дело с yacc/bison, то это становится очевидным:-)
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: Lapsha от 10.03.2016 19:11:30Какой-то странный подход.

А сам компилятор С написан на ассемблере.

Раньше бы сказали "белены объелся"...
Компилятор си написан на си -- это тверже, чем "НБКАиМПЕ".
Скачайте исходники gcc и посмотрите - там нет ни одной несишной строчки, в отличие от всех остальных ЯП.
Это единственный ЯП, на котором можно писать компиляторы со всех ЯП и ассемблеры, не привлекая ничего, кроме стандартной библиотеки.
С++ здесь просто нахлебник -- согласно стандарту ФТЫШ ШЫЩ ШУЦ 14882 он просто обязан поддерживать конструкции C и его две дюжины библиотек.
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: Sewer Endemic от 10.03.2016 20:30:29Я имел в виду операторные скобки в любом виде. Потому как особой разницы между {} и begin end не вижу. ))) Вот тем, кстати, питон и нравится - строгим отношением к форматированию. Очень приятно такой код читать, на мой взгляд. Если его не "пересластили" конечно. Веселый


Да по фигу на самом деле на весь этот синтаксис. Кроме уж самых убогих, я бы сказал - нарочито убогих.

Паскаль к убогим не отношу. Срачи на эту тему - другой разговор.Улыбающийся

Я уже привык к скобкам - и ладно!
И мне немного шершаво на душе, когда формат кода уж слишком строгий: эти отступы, одна инструкция на строку (прямо Фортран какой-то!) и т.п. Почти не напрягает, но и не радует.

Считаю "сишный" синтаксис самым лучшим на текущий момент.
Самые жуткие - PHP и Perl. Хотя они, вроде бы, и кагбэ сишные. Но это - именно кагбэ.
C++ тоже бывает реально жутковатым. Хотя, казалось бы...
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: adolfus от 10.03.2016 21:17:08Раньше бы сказали "белены объелся"...
Компилятор си написан на си -- это тверже, чем "НБКАиМПЕ".
Скачайте исходники gcc и посмотрите - там нет ни одной несишной строчки, в отличие от всех остальных ЯП.
Это единственный ЯП, на котором можно писать компиляторы со всех ЯП и ассемблеры, не привлекая ничего, кроме стандартной библиотеки.


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


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

Если быть уж совсем буквоедом, то генезис создания компиляторов такой:

ASM -> BCPL -> B -> C.
http://stackoverflow…er-written
Отредактировано: Lapsha - 11 мар 2016 00:39:10
  • +0.01 / 1
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: Lapsha от 10.03.2016 19:12:46Можно глянуть на статистику на эту тему? Хорошую, доверительную статистику.
А то подобные утверждения выглядят как-то слишком по-щелкопёрски.

 
Есть в природе госдеповский документ, определяющий требования к переносимости ПО для США. Две его версии, опубликованные в 90-х и начале 2000-х открыты (public issues) и, возможно, гуглятся и ныне. Ключевые слова -- software portability specifications and requirements for government and critical applications. Советую искать бингом -- все остальные гугли эти документы фильтруют, включая этот ваш яндекс. В дистрах QNX четвертой версии на эти документы были ссылки в документации. В разъясниловах (Rationale) к 14882, 9899 и их драфтам есть на них ссылки. Наверняка, в разъясниловах к аде (есть на либрусеке) они тоже присутствуют.
Так вот в преамбуле обоих этих документов, как это водится у пиндосов, приводится обстоятельный обзор языков и библиотек, которые используются в качестве ПО-образующих  в компаниях, чьи акции в то время хорошо торговались на биржах (за исключением микрософт 8-O -- табу-харам) . За 10 лет после выхода последнего (известного широкой публике) документа абсолютно ничего не поменялось (и документа нового открытого не появилось), потому что железо после 2000 развиваться перестало -- x86_64 -- ultimate ISA. Никаких новых аппаратных механизмов, которые не могли бы быть суперэффективно покрыты великолепной четверкой, с тех пор не появилось.
Кобол там впереди всех и. похоже, хрен кто его когда-нибудь догонит -- софт написан и будет актуален пока жива экономика, основанная на долгах, в смысле, пока есть банки в том виде, в котором они есть. Фортран в списке второй -- лет тридцать наблюдаю попытки школоты переписать лапак и остальное числодробительное с нетлиба на пасквилях, сях, плюсах, и даже паскакле -- все бестолку. Что касается, вcтроенного/бортового ПО, то ада вообще вне конкуренции -- параллелизм на уровне языка.  Си рулит там, где нужно генерить компактный и быстрый код.
Все остальное преходяще, поскольку не отображается эффективно на ISA -- архитектуру уровня команд. являетс обой классическую ловушку огораживания.
  • +0.00 / 0
  • АУ
Сейчас на ветке: 4, Модераторов: 0, Пользователей: 0, Гостей: 1, Ботов: 3