Усовершенствования языков программирования, которые должны были быть отменены после выпуска? - PullRequest
3 голосов
/ 28 ноября 2009

Существуют ли примеры значительных улучшений основных языков программирования, которые были полностью выпущены, а затем признаны достаточно ошибочными, чтобы их пришлось отозвать?

UPD @Джефф Фостер имеет пример функции, которая не всегда реализована, и я бы принял ее как ответы

UPD Между устаревшей и отозванной есть серая область. Я подозреваю, что существуют тысячи устаревших примеров, которые все еще можно использовать, но не рекомендуется. Я могу представить, что есть функции, которые, по мнению некоторых создателей, они могли бы реализовать полностью или последовательно, но на самом деле нарушали целостность системы.

Я особенно искал улучшения (не оригинальные функции), так как они будут запланированы (вероятно, с участием сообщества) и выпущены после тестирования и т. Д.

Ответы [ 6 ]

3 голосов
/ 28 ноября 2009

C ++ имеет ключевое слово «export», которое реализуют очень немногие компиляторы. Он не был отозван, но так как очень немногие компиляторы реализуют его, что он фактически бесполезен. См. здесь для получения дополнительной информации.

1 голос
/ 28 ноября 2009

reduce() в Python был удален из глобального пространства имен из Python 3.0. Это все еще можно найти в модуле functools, так что я не знаю, действительно ли это имеет значение. Обоснование этого приведено в записи в блоге GvR: http://www.artima.com/weblogs/viewpost.jsp?thread=98196.

0 голосов
/ 20 декабря 2009

Кажется, нет четких примеров.

0 голосов
/ 29 ноября 2009

Потратив много лет на взлом FORTRAN, вот некоторые из восхитительных конструкций, удаленных из F77 (http://en.wikipedia.org/wiki/Fortran#Obsolescence_.26_deletions):

В этом пересмотре стандарта количество функций было удалено или изменены таким образом, что может аннулировать ранее стандартные программы. (Удаление была единственной допустимой альтернативой X3J3 в то время, так как концепция «Устаревание» еще не было доступно для стандартов ANSI.) Хотя большинство 24 объекта в списке конфликтов (см. Приложение A2 к X3.9-1978) адресовано лазейки или патологические случаи разрешено предыдущим стандартом, но редко используется, небольшое количество конкретные возможности были умышленно удалено, например:

* Hollerith constants and Hollerith data, such as:

    `GREET = 12HHELLO THERE!`

* Reading into a H edit (Hollerith field) descriptor in a FORMAT

спецификация. * Переиндексирование границ массивов по индексам.

    DIMENSION A(10,5)
>         Y= A(11,1)
* Transfer of control into the range of a DO loop (also known as

«Расширенный диапазон»).

О, горе от того, что больше не в состоянии прыгнуть в середину глубоко вложенных циклов DO.

0 голосов
/ 28 ноября 2009

Устаревшие функции в PHP 5.3.x включают magic_quotes, register_globals, и эти функции устарели:

  • call_user_method () (используйте взамен call_user_func ())
  • call_user_method_array () (используйте взамен call_user_func_array ())
  • define_syslog_variables ()
  • дл ()
  • ereg () (вместо этого используйте preg_match ())
  • ereg_replace () (используйте взамен preg_replace ())
  • eregi () (используйте preg_match () с модификатором 'i')
  • eregi_replace () (используйте preg_replace () с модификатором 'i')
  • set_magic_quotes_runtime () и его псевдоним, magic_quotes_runtime ()
  • session_register () (используйте вместо него суперглобальный $ _SESSION)
  • session_unregister () (используйте вместо него суперглобальный $ _SESSION)
  • session_is_registered () (используйте вместо него суперглобальный $ _SESSION)
  • set_socket_blocking () (вместо этого используйте stream_set_blocking ())
  • split () (вместо этого используйте preg_split ())
  • spliti () (используйте preg_split () с модификатором 'i')
  • sql_regcase ()
  • mysql_db_query () (используйте вместо этого mysql_select_db () и mysql_query ())
  • mysql_escape_string () (используйте вместо этого mysql_real_escape_string ())
  • Передача имен категорий локали в виде строк теперь не рекомендуется. Вместо этого используйте семейство констант LC_ *.
  • Параметр is_dst для mktime (). Вместо этого используйте новые функции обработки часового пояса.
0 голосов
/ 28 ноября 2009

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

applet, basefont, center, dir, font, isindex, menu, s, strike, u элементы устарели в HTML 4.01, чаще всего в пользу CSS для стилизации, поскольку представление и структура не должны смешиваться.

...