OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 09:53

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: стыдоба от Эппл
СообщениеДобавлено: Среда, 04 Июнь, 2014 10:49 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
scaredy_cat_333 писал(а):
2014-06-04

Где-то у вас был заруб с энтузиастами, защищающими все до последней фичи С++ как "производственного языка". Не нашел. Но здесь тоже уместно оставить: мелочь, но иллюстрирующая. Картинку. Избыточные "исторически сложившиеся" конструкции в языке и их влияние на "производство".

Недавний баг у Эппла в реализации безопасного соединения
(пришлось выпускать срочное внеочередное обновление iOS):
http://www.wired.com/2014/02/gotofail/ И картинка оттуда, для наглядности.

Изображение

Наличие в языке конструкции "if" statement (вместо "if" statements "endif") - исключительно опасно.
Вот по вышепроиллюстрированной причине.
И это было ясно уже в момент создания стандарта C++, уверен.
Но "исторически сложившаяся" конструкция победила.
Полагаю, стоимость одной этой конкретной эппловской ошибки превзошла стоимость введения несовместимости в язык в момент разработки стандарта.

(У нас, кстати, эта фича - как и многие другие - из производственного варианта языка административно выкинута.
"If" без фигурных скобочек запрещен к использованию в боевой обстановке.
Но именно ее отслеживать человеческим вниманием тяжело.
И своя рука то и дело норовит вставить, и из чужого кода вычеркнуть с дополнительным трудом подымается.
Ну экономия же. Пара скобок экономится...)


Педантизму ради сохраним и сообщение Эппла по поводу: http://support.apple.com/kb/HT6147

Apple Inc. писал(а):
iOS 7.0.6
Data Security

Available for: iPhone 4 and later, iPod touch (5th generation), iPad 2 and later

Impact: An attacker with a privileged network position may capture or modify data in sessions protected by SSL/TLS

Description: Secure Transport failed to validate the authenticity of the connection. This issue was addressed by restoring missing validation steps.
Ну твою же мать. Стыдоба какая-то невероятная.

Эппл, кстати, наш заказчик и гонять умеет так, как никто другой
(что исключительно положительно характеризует фирму с точки зрения качества ее изделий).
И однако вот. Не ожидал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Среда, 04 Июнь, 2014 12:10 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Ну, собственно это проблемы не столько С++, сколько Си. (apple вообще на С++ практически не пишет - только WebKit, да и то только потому, что это не их проект изначально, это KHTML). Так что при чем тут С++ не ясно :-) В плюсах этих goto скорее всего никогда написано не было бы - там другие способы выпрыгнуть из функции, более культурные.

А Си Apple уже потихоньку выкидывает из области прикладной разработки, конкретно, оно выкинуло его из ObjC, и в результате получился Swift: http://oberspace.dyndns.org/index.php/topic,635.0.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Четверг, 05 Июнь, 2014 21:46 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Важно, что на дворе 2014 год.

Стыдоба.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Четверг, 05 Июнь, 2014 22:05 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Info21 писал(а):
Важно, что на дворе 2014 год.

Стыдоба.


Не ошибается только тот, кто ничего не делает :-) Чем меньше делаешь, тем меньше ошибок (по числу, а не по проценту от сделанного).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 11:19 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Задолбали "прагматики".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 12:41 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Сильный аргумент. А с чем вы собсна не согласны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 12:53 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Эппл на смену ОбжективСи выкатывает новый язык Свифт, который (надо же!) при целочисленном переполнении умеет бросать исключения, автоматически управляет памятью и проверяет границы массивов.
Указание типов переменных при объявлении является необязательным.

http://en.wikipedia.org/wiki/Swift_(App ... g_language)
https://developer.apple.com/swift/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 12:57 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Alexey Veselovsky писал(а):
В плюсах этих goto скорее всего никогда написано не было бы - там другие способы выпрыгнуть из функции, более культурные.
Ога, да.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 13:35 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Раз уж о поговорках речь зашла:

"Не в свои сани не садись"
"Не умеешь -- не берись"

Источники таких проблем были явно названы 40 лет назад. И тогда же было растолковано, как их избегать.

В 2014 году изготовление mission-critical приложений с помощью средств, не минимизирующих вероятность подобных ошибок, -- шарлатанство.

Особенно с учетом зарплат IT-шников.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 16:53 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Александр Ильин писал(а):
Эппл на смену ОбжективСи выкатывает новый язык Свифт, который (надо же!) при целочисленном переполнении умеет бросать исключения, автоматически управляет памятью и проверяет границы массивов.
Указание типов переменных при объявлении является необязательным.

http://en.wikipedia.org/wiki/Swift_(App ... g_language)
https://developer.apple.com/swift/


Если что - ObjC тоже автоматически управляет памятью, равно как и swift. Да, и в swift'е сборщика мусора нет (а в ObjC сборщик мусора это depricated feature).

А исключений в свифте нет вовсе :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 18:06 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Не в тему, но в то же время в тему, просто хочу поделиться. Сегодня ошибку на работе нашёл в плюсовом коде. Цикл такого вида:
Код:
for (...)
{
   int b = -1;

   if (something)
   {
      b = (x1 == x2);
   }
   else if (something else)
   {
      b = (x3 == x4);
   }
   else if (something else)
   {
      b = (x5 == x6);
   }
   else if (something else)
   {
      BOOL b = (x7 == x8);
   }
   else if (something else)
   {
      b = (x9 == x10);
   }
   else if (something else)
   {
      b = (x11 == x12);
   }
   else if (something else)
   {
      b = (x13 == x14);
   }
   else
   {
      ASSERT(0);
   }
 
   if (b == TRUE)
   {
      // do something
   }
   else if (b == FALSE)   
   {
      // do something else
   }
   else ; // Do nothing.
}
Несколько повторяющихся блоков if с похожим, но разным содержимым, в каждом по два объявления переменных (здесь не показаны). То, что здесь достаточно легко заметить, там просто визуально терялось. В результате имеем случайные несрабатывания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 19:34 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Вот разработчики Эльбруса (МЦСТ) вроде не должны быть дураками, а первым делом создали компилятор С для своего камня. Турбостокгольмский синдром, не иначе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 20:07 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Александр Ильин писал(а):
Не в тему, но в то же время в тему, просто хочу поделиться. Сегодня ошибку на работе нашёл в плюсовом коде. Цикл такого вида:
...
Несколько повторяющихся блоков if с похожим, но разным содержимым, в каждом по два объявления переменных (здесь не показаны). То, что здесь достаточно легко заметить, там просто визуально терялось. В результате имеем случайные несрабатывания.


Насколько я понимаю, в данном случае это вообще не от языка зависит. То есть в языке то достаточно средств для декомпозиции такой вот императивной лапши. Просто программист не почесался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Пятница, 06 Июнь, 2014 21:53 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
Турбостокгольмский синдром, не иначе.
Надо запомнить :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Суббота, 07 Июнь, 2014 00:46 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Alexey Veselovsky писал(а):
Насколько я понимаю, в данном случае это вообще не от языка зависит.
Зависит. Достаточно не смешивать объявления переменных с кодом.
Alexey Veselovsky писал(а):
То есть в языке то достаточно средств для декомпозиции такой вот императивной лапши. Просто программист не почесался.
Ога, и даже goto есть. Просто не все чешутся.
Просто...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Суббота, 07 Июнь, 2014 08:26 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
goto - это не средство, goto - это эстетика, к задачам отношения не имеющая. Ну как "маленькое черное платье" без пояса - можно, но не прикольно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Суббота, 07 Июнь, 2014 08:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Меня изумляет до потери пульса, что подобные диспуты до сих пор возможны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Суббота, 07 Июнь, 2014 19:44 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Александр Ильин писал(а):
Alexey Veselovsky писал(а):
Насколько я понимаю, в данном случае это вообще не от языка зависит.
Зависит. Достаточно не смешивать объявления переменных с кодом.

C#, 1 Error:
A local variable named 'b' cannot be declared in this scope because it would give a different meaning to 'b', which is already used in a 'parent or current' scope to denote something else


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Суббота, 07 Июнь, 2014 21:05 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Изображение :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: стыдоба от Эппл
СообщениеДобавлено: Воскресенье, 08 Июнь, 2014 09:37 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Не так. Вот так.
Изображение :mrgreen:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB