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

1,404,185 8,484
 

Фильтр
slavae
 
russia
Москва
Слушатель
Карма: +193.86
Регистрация: 21.03.2013
Сообщений: 27,859
Читатели: 7
Цитата: TAU от 29.02.2016 22:28:31Чисто для информации Крутой




Подозреваю, код пытается вымучить поколение программистов на Visual Studio, которым невдомёк, что такое jnz.
Империя - это мир, и этой идеологии достаточно. Мы живём в самой лучшей стране в мире и все нам завидуют.
Одушевлённое Одевают, Неодушевлённое Надевают.
  • +0.03 / 3
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: LightElf от 13.02.2016 23:13:02Сейчас длится переходный период, в силу правила вступят с 2017. Все постепенно перестраиваются на новый лад, кто раньше, кто позже. Что будут делать яблочники - посмотрим. 
Кстати, это не только на телефоны распространяется.

У меня ноут Dell xps15z. Ничем кроме как его родным источником не запитывается. И разъем подходит и полярность и напряжение и ток, но ноут все это игнорит и молчит. Прямо мистика какая-то.
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: Superwad от 15.02.2016 16:26:34Вит предложил деление языков программирования на те, которые свободно читаются и понимаются обычным человеком, как и обычный литературный текст. Паскаль этому требованию отвечает, Си - нет. В Си очень тяжело вычленить блочную структуру, так как скобочки - ну очень неиформативны, а вот Begin ... End - вполне.

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

for (i...)
  for (j...)
    for(k...)
       if ()
           a[i][j][k];
} } } }

Все отлично видно и понятно. особенно когда закрывающие скобки в одной строчке располагаются.
Что касается паскаля, то это вообще не язык программирования, а издевательство -- в нем нет самого главного оператора -- goto.
Да и си тоже подкачал -- ему не хватает множественных точек входа и раздельных ключевых слов для объявления глобальных и внешних имен, как того требует формат объектного модуля для любой архитектуры, поэтому приходится извращаться с extrn'ами. Нет поддержки сопрограмм -- хрен нормальный автомат напишешь..
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: pkdr от 17.02.2016 14:07:05Вообще-то как раз у интела самая открытая и самая подробная документация для видеокарт и, соответственно, самые лучшие открытые видеодрайверы. Хотя, конечно, само по себе интеловское видео по производительности значительно уступает АМД и Нвидиа.

Если не заморачиваться с рендерингом 3d сцен, то если и уступает, всего лишь в отношении рендеринга шрифтов -- у нвидии это таки получше получается. В остальном все нормально. У меня встроенный интел тянет ноутовский 1920x1080 дисплей и по hdmi второй 1920x1200 без каких-либо вопросов. Нвидиа же выведена на miniDP и кроме как более приятного глазу  ренгдеринга шрифтов на ней незаметно. А жрет аккумулятор -- будь здоров.
  • +0.00 / 0
  • АУ
Alexxey
 
Слушатель
Карма: +47.85
Регистрация: 12.02.2009
Сообщений: 6,364
Читатели: 3
Цитата: adolfus от 02.03.2016 00:30:12Что касается паскаля, то это вообще не язык программирования, а издевательство -- в нем нет самого главного оператора -- goto.

Это шутка?Шокированный
  • +0.04 / 4
  • АУ
adolfus
 
Слушатель
Карма: +19.02
Регистрация: 12.02.2010
Сообщений: 12,016
Читатели: 2
Цитата: Alexxey от 02.03.2016 00:52:30Это шутка?Шокированный

Нисколько. Если есть jmp и он, кстати, очень юзабелен, в том числе и в коде, сгенерированном компайлерами, то почему не быть его прямому образу в самом языке? Куча условных переходов, которые порождаются виртовскими конструкциями, генерит туеву хучу  циклов разгрузки/загрузки кешей всех уровней.
  • +0.01 / 1
  • АУ
Alexxey
 
Слушатель
Карма: +47.85
Регистрация: 12.02.2009
Сообщений: 6,364
Читатели: 3
Цитата: adolfus от 02.03.2016 01:11:09Нисколько. Если есть jmp и он, кстати, очень юзабелен, в том числе и в коде, сгенерированном компайлерами, то почему не быть его прямому образу в самом языке? Куча условных переходов, которые порождаются виртовскими конструкциями, генерит туеву хучу  циклов разгрузки/загрузки кешей всех уровней.

Насчёт юзабельности (в языках высокого уровня) даже спорить не стану, у всех свои тараканы. Но goto в паскале есть же, главным образом этому подивился.Согласный
Отредактировано: Alexxey - 02 мар 2016 04:44:58
  • +0.07 / 6
  • АУ
Демонический кот
 
ussr
Слушатель
Карма: +4.80
Регистрация: 22.10.2014
Сообщений: 460
Читатели: 0
Цитата: adolfus от 02.03.2016 01:11:09Нисколько. Если есть jmp и он, кстати, очень юзабелен, в том числе и в коде, сгенерированном компайлерами, то почему не быть его прямому образу в самом языке? Куча условных переходов, которые порождаются виртовскими конструкциями, генерит туеву хучу  циклов разгрузки/загрузки кешей всех уровней.

Вопрос даже не в том, есть там goto или нет (по факту есть), вопрос ЗАЧЕМ в я зыке высокого уровня использовать прямые переходы?
А асме других вариантов просто нет, там все на "лапше" основано.
Отредактировано: Демонический кот - 02 мар 2016 10:25:18
  • +0.04 / 3
  • АУ
slavae
 
russia
Москва
Слушатель
Карма: +193.86
Регистрация: 21.03.2013
Сообщений: 27,859
Читатели: 7
Цитата: adolfus от 02.03.2016 01:11:09Нисколько. Если есть jmp и он, кстати, очень юзабелен, в том числе и в коде, сгенерированном компайлерами, то почему не быть его прямому образу в самом языке? Куча условных переходов, которые порождаются виртовскими конструкциями, генерит туеву хучу  циклов разгрузки/загрузки кешей всех уровней.

А для чего goto может понадобиться? Я с очень большим подозрением отношусь к использующим его программистам, потому что обычно goto - это костыль, когда программист не может сделать стройную логику выполнения. Я не говорю про jmp, я говорю про goto.
Империя - это мир, и этой идеологии достаточно. Мы живём в самой лучшей стране в мире и все нам завидуют.
Одушевлённое Одевают, Неодушевлённое Надевают.
  • +0.02 / 2
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: slavae от 01.03.2016 16:38:55Подозреваю, код пытается вымучить поколение программистов на Visual Studio, которым невдомёк, что такое jnz.

Я конечно не близко и не далеко от ИТ индустрии, но всё же растолкуйте что вы имели под jnz?
  • +0.00 / 0
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: slavae от 02.03.2016 07:21:51Всегда это слишком долго )


В Паскаль goto первоначально включён не был, но недостаточность имеющихся языковых средств вынудила Никлауса Вирта его добавить. В более поздних своих языках Вирт всё же отказался от goto: этого оператора нет ни в Модуле-2, ни в Обероне и Компонентном Паскале.

Вы не поверите, но народ использует не классический Паскаль ( да он не очень юзабелен в современном понимании программирования), но то чем пользуются сегодня большинство - очень даже юзабельно, а именно.Object Pascal. А в нем уже много вкусного есть, что использование Goto не всегда надо, особенно в циклах, так как есть и Break, Continue и Exit (где это работает).
Отредактировано: Superwad - 02 мар 2016 18:20:09
  • +0.01 / 1
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: adolfus от 02.03.2016 00:30:12for (i...)
  for (j...)
    for(k...)
       if ()
           a[j][k];
} } } }



Вот разобрать, где какая скобка что закрывает - весь попандос - логическая ошибка вам гарантирована!!! вот из- за этого и не могут написать НАДЕЖНУЮ систему. В Паскае это все красиво видно:
For i=1 to 4 Do Begin
                          For j=... Do Begin
                                             For k=... Do Begin
                                                                 If   Then Begin
                                                                                                a[i,j,k]:=...;
                                                                                                End
                                                                                        Else Begin
                                                                                                // при необходимости
                                                                                                end;     
                                                                  End;
                                             End;
                          End;
Вот пример грамотного кода - тут РЕАЛЬНО все видно для человека, который ОТЛАЖИВАЕТ код ( а это 70 % всех временных затрат). Набивается в Delphi или Lazarus за считанные минуты. А если программер высочайшего уровня, то не брезгует ставить комменты по ходу кода). Я так пишу свои программы. Потом найти через некоторое время, что имел ввиду - очень быстро и экономишь кучу времени, в Си такое - нереально, в силу того, что восстановить сходу полную логику кода невозможно.
  • +0.04 / 5
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: Его Уменяевич Нетув от 02.03.2016 15:28:07В компиляторе - возможно и не нужен.
В интерпретаторах без него - жопа. Плюс ещё дико полезен адресный возврат из подпрограммы, который "return label", выйти из подпрограммы и перейти к процедуре/метке...

А какие Паскаль интерпретаторы и для каких практических целей Вы используете?
  • +0.02 / 1
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: Его Уменяевич Нетув от 02.03.2016 15:28:07В компиляторе - возможно и не нужен.
В интерпретаторах без него - жопа. Плюс ещё дико полезен адресный возврат из подпрограммы, который "return label", выйти из подпрограммы и перейти к процедуре/метке...

Просто, насколько мне помнится, Паскль по своей причине может быть и двух проходным и однопроходным (Бейсик - однозначно двухпроходный, что компилятор, что интерпретатор). Так что всё зависит от реализации диалекта и исполняемой виртуальной машины кода.
  • +0.00 / 0
  • АУ
Демонический кот
 
ussr
Слушатель
Карма: +4.80
Регистрация: 22.10.2014
Сообщений: 460
Читатели: 0
Цитата: Superwad от 02.03.2016 15:12:05Я конечно не близко и не далеко от ИТ индустрии, но всё же растолкуйте что вы имели под jnz?

В ассемблере условный переход на метку, если флаг ZF=0 (асм x86)
jnz 
Отредактировано: Демонический кот - 02 мар 2016 18:55:24
  • +0.06 / 5
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: Демонический кот от 02.03.2016 15:54:33В ассемблере условный переход на метку, если флаг ZF=0 (асм x86)
jnz

Спасибо за ответ, понял что АСМ, но вначале подумал про специализированный язык программирования.
  • +0.01 / 1
  • АУ
Superwad
 
belarus
Минск
51 год
Слушатель
Карма: +73.50
Регистрация: 27.02.2012
Сообщений: 2,645
Читатели: 0
Цитата: dc93 от 02.03.2016 15:45:47Посмотрите ток в пике (при включении). А в выключенном состоянии аккум заряжается?

Возможно, всё дело в очень хитром протоколе работы контроллера зарядки и ноута. У меня прикол был с электростанцией и болгаркой - запускалась, но не разгонялась до рабочих параметров, а вот той же фирмы фрезер - более мощный и то же с электронным пуском - пахал за милую душу.
  • +0.00 / 0
  • АУ
Демонический кот
 
ussr
Слушатель
Карма: +4.80
Регистрация: 22.10.2014
Сообщений: 460
Читатели: 0
Цитата: dc93 от 02.03.2016 15:49:49для читабельности, соответственно, использование go to понижает стоимость разработки, имхо.

ЗЫ можно и щами отравиться, если целую кастрюлю сожрать, все должно быть в меруУлыбающийся

Для читабельностиШокированный? Смеетесь что-ли...
В ЯВУ (языках высокого уровня) использование goto вообще недопустимо.
Вы нарушаете таким образом работу логики блоков программы, что ведет как минимум к неправильному распределению памяти.
 
  • +0.03 / 2
  • АУ
Jack Doe
 
Слушатель
Карма: +0.28
Регистрация: 16.04.2014
Сообщений: 20
Читатели: 0
goto
Дискуссия   716 108
Я предлагаю все модные/устоявшиеся суждения о хороших/плохих практиках программирования пропускать через призму критического мышления.

goto в языках высокого уровня нужен для прямых переходов, когда городить огород с доп.условиями неудобно, в частности:
  • для выхода из цикла двойной и более вложенности

  • для перехода к эпилогу функции (когда вместо return мы делаем goto QUIT; а в точке выхода у нас есть несколько строк деинициализации)



goto демонизировали как типа антипаттерн в те времена, когда из управляющих конструкций были только IF и GOTO, до того как Дейкстра изобрел структурное программирование с циклами. Тогда действительно if/goto образовывали лапшу, в которой разобраться было крайне сложно.

Управляющие конструкции появились, goto перестали пользоваться, а предрассудок остался. goto крайне удобен, просто им нужно пользоваться умело. Я им пользуюсь, когда нужно.
  • +0.03 / 3
  • АУ
Демонический кот
 
ussr
Слушатель
Карма: +4.80
Регистрация: 22.10.2014
Сообщений: 460
Читатели: 0
Цитата: Superwad от 02.03.2016 15:32:33
Вот разобрать, где какая скобка что закрывает - весь попандос - логическая ошибка вам гарантирована!!! вот из- за этого и не могут написать НАДЕЖНУЮ систему. В Паскае это все красиво видно:
For i=1 to 4 Do Begin
                          For j=... Do Begin
                                             For k=... Do Begin
                                                                 If   Then Begin
                                                                                                a[i,j,k]:=...;
                                                                                                End
                                                                                        Else Begin
                                                                                                // при необходимости
                                                                                                end;     
                                                                  End;
                                             End;
                          End;
Вот пример грамотного кода - тут РЕАЛЬНО все видно для человека, который ОТЛАЖИВАЕТ код ( а это 70 % всех временных затрат). Набивается в Delphi или Lazarus за считанные минуты. А если программер высочайшего уровня, то не брезгует ставить комменты по ходу кода). Я так пишу свои программы. Потом найти через некоторое время, что имел ввиду - очень быстро и экономишь кучу времени, в Си такое - нереально, в силу того, что восстановить сходу полную логику кода невозможно.


Бросьте.
Нормальный код на СИ так же закрывается скобкой на отдельной строке с табуляцией.
А если IDE какая стоит, то она Вам еще ветки циклов подсвечивать будет. Визуальное восприятие это уже из серии про фломмастеры.
Дело тут в том, что Си уже давно стал промышленным стандартом, его компиляторы отполированны до филигранности.
На нем пишутся и ОС и прошивки для микроконтроллеров.
А вот про Паскаль такого не скажешь, он как начинался в свое время учебным языком, так по большому счету дальше десктопных приложений и не вырос.

 
  • +0.01 / 3
  • АУ
Сейчас на ветке: 10, Модераторов: 0, Пользователей: 1, Гостей: 3, Ботов: 6
 
Oleg K.