Какие пять вещей ты ненавидишь в своем любимом языке? [закрыто]

Вы можете добиться того, чего хотите, используя пользовательскую функцию :

use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\SqlWalker;
use Doctrine\ORM\Query\Parser;

class DateFunction extends FunctionNode
{
    private $arg;

    public function getSql(SqlWalker $sqlWalker)
    {
        return sprintf('DATE(%s)', $this->arg->dispatch($sqlWalker));
    }

    public function parse(Parser $parser)
    {
        $parser->match(Lexer::T_IDENTIFIER);
        $parser->match(Lexer::T_OPEN_PARENTHESIS);

        $this->arg = $parser->ArithmeticPrimary();

        $parser->match(Lexer::T_CLOSE_PARENTHESIS);
    }
}

Затем зарегистрируйте эту функцию в своем коде:

$em->getConfiguration()->addCustomDatetimeFunction('DATE', 'DateFunction');

И ваш DQL-запрос будет работать!

403
задан 14 revs, 6 users 40% 27 April 2015 в 07:21
поделиться

178 ответов

Пять вещей я ненавижу [приблизительно 119] Java (который, в настоящее время, является моим любимым языком), без определенного порядка.

  1. так же, как я - поклонник Дженериков Java, существует много причуд, которые являются результатом способа, которым это было разработано. Как таковой там несметное число раздражающих ограничений с дженериками (некоторые из которых являются результатом стирания типа).
  2. путь Object.clone () и работа интерфейсов Cloneable полностью повреждается.
  3. Вместо того, чтобы брать шоссе и сделать все объектом (a.la. SmallTalk), Sun wimped создал две отличных категории типов данных: Объекты и примитивы. В результате существуют теперь два представления для основополагающих типов данных и странного любопытства, такого как упаковка/распаковывание и неспособность поместить примитивы в Набор.
  4. Swing слишком сложен. Не понимайте меня превратно: существует много интересного материала, который можно сделать с Swing, но это - яркий пример сверхразработки.
  5. Эта заключительная жалоба является одинаково отказом Sun и тех, кого записал библиотеки XML для Java. Библиотеки Java XML являются слишком сложными. Для простого чтения в XML-файле я часто должен волноваться, о каком синтаксическом анализаторе я использую: DOM или SAX? API для каждого одинаково сбивают с толку. Собственная поддержка на языке для [1 110] легко парсинг/запись XML была бы очень хороша.
  6. java.util. Дата сосет. Мало того, что это излишне сложно, но и весь полезный , методы были удержаны от использования (и заменены другими та сложность увеличения).
88
ответ дан 4 revs, 3 users 76%Ryan Delucchi 27 April 2015 в 07:21
поделиться

C++

  • Слишком легкий к случайным образом поврежденной памяти и создает почти невозможно находимые ошибки (хотя, Valgrind имеет большое значение для фиксации этого).
  • Шаблонные сообщения об ошибках.
  • При использовании шаблонов легко закончить тем, что имело необходимость включать все в один файл, и затем получить глупое время компиляции.
  • стандартная библиотека является шуткой в нашем времени (все еще никакие потоки или сеть по умолчанию?)
  • Партии противных небольших битов C, вводящего по абсолютному адресу через (в частности, все преобразования между коротким/международным/неподписанным/и т.д.)
135
ответ дан 3 revs, 3 users 57%Chris Jefferson 27 April 2015 в 07:21
поделиться
  • 1
    Форма будет, вероятно, иметь абзац или что-то подобное как его ребенок. Необходимо удостовериться, что Вы только выбираете входные элементы. – SpoonMeiser 4 October 2008 в 18:00

JavaScript:

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

  2. ' +' является абсурдный выбор оператора для конкатенации на языке со слабым контролем типов. Они были попытка для отпугивания новичков?

  3. Это - минное поле перекрестной совместимости браузера (не берите в голову, включено ли это даже или не)

  4. , Это вообще недоверяемо - связанный с летним, таким как блокирование кнопки "Назад", всплывающие окна, которые никогда не умирают, и т.д.

  5. , почти невозможно отладить, потому что существует только несколько различных сообщений об ошибках и несколько различных типов (Число, Строка, Объект, и т.д.)

, Если бы это не было для jQuery, я, вероятно, все еще ненавидел бы его так, как я привык для:)

160
ответ дан 4 revs, 4 users 81% 27 April 2015 в 07:21
поделиться
  • 1
    Почему Вы пишете $ (это) дважды...., почему не кэшируют поиск – redsquare 9 October 2008 в 13:34

PHP:

1) Вынуждает меня сделать ненужные переменные:

$parts = explode('|', $string);
$first = $parts[0];

2) Реализация лямбд, так хромых, это примерно эквивалентно использованию eval() и таким образом, ужасно неправильно я никогда не использовал его (см. http://www.php.net/create_function).

3) Система попытки/выгоды, которая может только поймать приблизительно 80% ошибок, которые могли бы произойти.

4) Regex поддерживают так же, как Ламе как поддержка лямбды, потому что она должна быть записана внутренние обычные строки, делая один из большинства сложных для изучения инструментов программирования приблизительно в три раза более трудным. И PHP, как предполагается, является "легким" языком?!?!?

5) Никакой способ безопасно вытащить материал из $ _POST, не пишущий это дважды или создавая Вашу собственную функцию, или с помощью оператор:

$x = isset($_POST['foo']['bar']) ? $_POST['foo']['bar'] : null;

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

148
ответ дан 3 revs, 3 users 94%too much php 27 April 2015 в 07:21
поделиться
  • 1
    " дети () " получает всех детей DOM в форме, не элементы. – mpemburn 1 November 2013 в 14:13

Ничего себе, я удивлен, что SQL еще не составил его здесь. Угадайте, что означает, что никто не любит его:)

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

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

  • оператор Where идет в последний раз, облегчая преждевременно выполнять ОБНОВЛЕНИЕ или УДАЛЯТЬ, уничтожая целую таблицу. Вместо этого, КУДА должен пойти куда-нибудь впереди.
  • трудно реализовать реляционное подразделение.
  • я могу установить значение в NULL, но я не могу протестировать его на равенство с ПУСТЫМ УКАЗАТЕЛЕМ. Я могу проверить, ЯВЛЯЕТСЯ ПУСТЫМ, но это просто усложняет код - напрасно так, по-моему.
  • , Почему мы должны полностью повторно определить формулу для столбца GROUPed, вместо того, чтобы установить псевдоним на столбце и затем GROUP BY псевдоним (или индекс столбца как с ВИДОМ)?
216
ответ дан 3 revs, 3 users 57%Jeremiah Peschka 27 April 2015 в 07:21
поделиться
  • 1
    Вы проваливали меня для этого? $ (этот) isn' t поиск, you' ре, обертывающее существующий объект с объектом jQuery. Могло бы быть немного более эффективно только сделать это однажды, но различие будет крайним. – SpoonMeiser 9 October 2008 в 13:59

Smalltalk

  • , который я не хочу разрабатывать в Java, Дельфи, c#, или рубин больше (который непрактичен как, основные языки разработки в моей компании являются c#, Дельфи и Java).
  • Слева направо оценка.
  • Имеет комментарий класса, но никакой комментарий метода (по крайней мере, в Писке)
  • Никакая реальная стандартная библиотека, много различий в деталях
  • Отсутствие пространств имен
13
ответ дан Stephan Eggermont 27 April 2015 в 07:21
поделиться
  • 1
    $('#formId input, select, textarea') возвратит весь input элементы в форме, наряду с каждое избранное поле и текстовая область на странице . – cHao 26 March 2013 в 20:22

Haskell:

  1. Пространство просачивается из отложенных вычислений.
  2. Числовая Иерархия, не созданная относительно математических абстракций.
  3. Строгий одноместный IO может сделать его тяжелее для отладки.
  4. большие реализации обрабатывают ввод-вывод способами, которые не кажутся довольно совместимыми со стандартом. (В частности, произведение символов только производит низкие 8 битов - и затем кодируйте, создается, который использует это предположение, чтобы сделать двоичный ввод-вывод. Ick.)
  5. Ассоциативность ($) оператор мог быть изменен для создания некоторых выражений более симпатичными.

Большинство из них не повышается до уровня ненависти, и существуют люди, пытающиеся зафиксировать или создать серьезные обходные решения для каждого из них.

Редактирование: был некоторый беспорядок о точке 5. В особенности некоторые люди, кажется, думают, что я имел в виду порядок аргументов, которые я не делаю. Вместо того, чтобы объяснять, что я имел в виду, я просто укажу на людей на следующую ссылку, http://hackage.haskell.org/trac/haskell-prime/wiki/ChangeDollarAssociativity , который выражает ее хорошо.

15
ответ дан 3 revs, 2 users 90%wnoise 27 April 2015 в 07:21
поделиться
  • 1
    Почему сделал Вы отправляете это как ответ при высказывании you' ре, просто ответив на jobscry? It' s тот же код он отправил. Для именно это комментарии. – Shane Reustle 23 October 2010 в 18:52

Время компиляции ColdFusion

  1. для больших Форм Flash.
  2. Типы Динамической переменной (Иногда я ненавижу их.)
  3. Отсутствие функций в CFScript.
  4. CFTable (Никогда не может заставлять его отображать право).
  5. отсутствие типов диаграммы упущено из CFChart.
  6. Полное отсутствие поддержки NTLM (готовое предприятие - да право)
  7. Слабоумный обзор var в CFCs
  8. Никакое понятие истинного ПУСТОГО УКАЗАТЕЛЯ - Ваша переменная просто исчезает!
  9. Никакой способ протестировать на существование определенных вещей (как объемы, просто участники в них)
6
ответ дан 3 revs, 3 users 67%Jeremy Reagan 27 April 2015 в 07:21
поделиться
  • 1
    Я don' t как он, но it' s прагматичный в некоторых сценариях. Я отмечаю Вашу точку о продаже компаниям, как бы то ни было. – Brian Agnew 24 March 2010 в 22:19

Python:

  1. Слишком медленный!
  2. операции списка не возвращают список, таким образом, Вы не можете сделать list.append (4) .append (5). (Я имею в виду ссылку на тот же список, не копию). Это - незначительное схватывание; это только подошло несколько раз.
  3. операторы не делают возвращаемых значений (если, печать, в то время как, поскольку, и т.д.). Это - только проблема при контакте с лямбдами.
  4. лямбды могут только быть одним выражением. Нет никакой реальной потребности в этом ограничении, поскольку они эквивалентны функциям любым способом. Что, если я хочу событие нажатия кнопки, которое вызывает две функции? Я должен был бы создать именованную функцию для предоставления той функциональности слушателю действия при выполнении "лямбды: f1 (); f2 ()" не причинил бы боль.
  5. можно только поместить стандарт a-zA-Z_0-9 как имена. Наличие функций как "верный?" и "+" было бы большим. Конечно, это могло привести к ужасной путанице, но я не говорю, что мы сразу переименовываем все функции к "p@ %3$". Которые делают Вы находите более ясными читать: "dec2bin" или "декабрь-> мусорное ведро"? ("store_results" или "storeResults") или "результаты хранилища"?
6
ответ дан 4 revs, 2 users 71%Claudiu 27 April 2015 в 07:21
поделиться
  • 1
    Мы думали, о котором это должна быть хорошая идея, но в нашем случае это невыполнимо в дыре. Мы можем только выполнять некоторые тестовые сценарии чаще. Тестирование системы только выполняется каждые 6 месяцев или так и в прошлый раз, когда они решили сделать его более интенсивным. После этого мы нашли проблему. Мы пытались понизить платформу и приложение к версии, которая прошла тест прежде. Все три теста перестали работать, это говорит нам, что отказ является эфиром в другом компоненте в системе или был в нашем в течение долгого времени. Другой компонент маловероятен. – Rickard von Essen 24 March 2010 в 22:04

C++

  • несоответствия в библиотеках, связанных с символом* и станд.:: строка. Весь C++ освобождает, должен взять станд.:: строки.

  • Символы не являются байтами относительно iostream. Я делаю большую байтовую работу. Наличие типа "байта" и "символьного" типа значительно сделало бы его более простым. Это также разрешило бы масштабироваться к несколько легче Unicode.

  • Битовые операции должны быть легкими на значении. Я должен быть в состоянии получить доступ и установить n'th бит значения, не играя И/ИЛИ танцуя.

  • отсутствие стандартизированного интерфейса для графический интерфейсов пользователя. Это - то, где Microsoft действительно была в состоянии расположить себя хорошо с C#. Стандартный интерфейс, связывающий, который обеспечивают производители ОС, пошел бы действительно далеко для моей работы.

5
ответ дан Paul Nathan 27 April 2015 в 07:21
поделиться
  • 1
    Да это - то, что мы главным образом используем. Это работает приятно с дампами "кучи" на по крайней мере 1,5 ГБ на Linux на 64 бита (конечно, Win, которого 32 бита приводят к сбою быстро). Единственный недостаток то, что я haven' t получил в значительной степени полезную справку от автоматизированного анализа в нем. – Rickard von Essen 24 March 2010 в 21:57

Мой язык du подмастерье является Java. Вот то, что я ненавижу об этом:

5.) Отсутствие указателей
4.) Исключение, ловя
3.) Булев тип
2.) тип
1 BigDecimal.) фанаты C# и фанаты Java

Boolean могут быть пустыми. Я нахожу это парадоксальным.

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

6
ответ дан 3 revs, 2 users 52%zmf 27 April 2015 в 07:21
поделиться
  • 1
    как другая история I' ve также имел загружающиеся проблемы с jhat и largeish (1G) "куча" – matt b 25 March 2010 в 02:07

VBA (включая IDE MS Office):

1) Плохая Документация
2) Плохие сообщения об ошибках
3) Несоответствующие Стандартные программы Управления Массивом
4) Необходимость повторить типы для операторов DIM
5) не распечатает в цвете (должны купить стороннее дополнение)

9
ответ дан Lance Roberts 27 April 2015 в 07:21
поделиться

синтаксис JavaScript

  1. Функционального объекта:

    f = new Function( "foo", "bar", "return foo+bar;" );
    

    (Это берет n аргументы, первые n-1 являются аргументами в пользу функции, тогда энный фактическая функция, в строковой форме. Который просто глуп.)

  2. Аргументы функции могут быть повторены.

    f = new Function( "foo", "foo", "return foo;" );
    

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

    f( "bye", "hi" ) // returns "hi"
    f( "hi" ) // returns undefined
    
  3. E4X должен просто умереть. Мои пользователи всегда жалуются, что это не прокладывает себе путь, они думают, что это будет. Давайте столкнемся с ним при необходимости в полутора страницах psuedocode для метода set пора заново продумать вещи.

  4. понятие стандарта А stdin/stdout/stderr (и файлы!) было бы хорошо.

  5. пустой указатель! = неопределенный

    Это является раздражающим для обработки их обоих. Иногда это полезно, но большинству языков удается хромать вдоль штрафа с одним.

6
ответ дан kristina 27 April 2015 в 07:21
поделиться

У меня есть книга, исследуя все виды проектов в SNOBOL. Первая глава исследует историю и культуру вокруг программирования SNOBOL и языка и проводит некоторое время, приводя аргумент, что хорошему программисту нравится язык не из-за его дефектов, но в в злости из них.

Мой любимый язык Незначок Значка / . Но существуют все еще вещи, которые раздражают меня об этом:

  1. Это не известно или все что популярный.
  2. Это имеет намного меньшую библиотеку по сравнению с PHP, Perl, Java, и т.д. Доступ к базе данных сделан через ODBC, который является на самом деле довольно раздражающим.
  3. Для всего это - в других отношениях превосходная обработка списка, я пропускаю PHP's, встроенный explode() и implode().
  4. Это не имеет таблицы постоянной. Списки, да, таблицы, нет.
  5. Это - скомпилированный (на самом деле переведенный) язык.
5
ответ дан staticsan 27 April 2015 в 07:21
поделиться

Groovy/Grails

  1. Ввод Утки
  2. Соглашение по Конфигурации, принимая Вас знает Соглашение
  3. Все, что Вы ненавидите о Spring
  4. Все, о чем Вы ненавидите, в спящем режиме
  5. [Groovy], общие операции через наборы не (но недавние выпуски улучшают это)
6
ответ дан Ken Gentle 27 April 2015 в 07:21
поделиться

вывод типа F#

  1. ограничен.

    1. Это распространяет вперед только.

    2. F# не попытается вывести тип объекта на основе методов и используемых свойств: Вы получите "поиск неопределенного типа объекта" ошибки, когда это не будет иметь подсказки.

  2. нельзя смешать плавания и ints: 1 + 2.3 ошибка типа.

  3. Это немного неудобно должным быть создать объект разработчика для определения выражения вычисления или монады. В Haskell или Scala, можно определить операции монады непосредственно на одноместном объекте.

  4. , Хотя #light синтаксис предпочтен, правила добавления отступа иногда не очень интуитивны или становятся громоздкими.

5
ответ дан namin 27 April 2015 в 07:21
поделиться
  • 1
    ЦИНОВКА Eclipse удивительна, особенно it' s Детектор Утечки памяти. – Pascal Thivent 24 March 2010 в 21:55

Дельфи (иначе Object Pascal), я буду говорить о собственной версии, не.NET.

  • блоки Var!
  • Интерфейсы на языке разработаны с использованием COM в памяти - таким образом более сложный, чем говорят в C# или Java. т.е. Подсчет ссылок включил, если Вы не отключаете его явно.
  • Никакой try except finally end;
  • слишком явное Создание объекта:

    var obj: TMyObject;
    ...
    obj := TMyObject.Create;
    try
      ...
    finally
      obj.Free;
    end;
    

Вместо этого что-то как [1 112]

auto obj: TMyObject; // compiler adds the default constructor call and the destructor call in a try/finally block. 
  • хорошо, язык так хорош, я не могу действительно больше думать, таким образом, я продвигаю меня здесь: Встроенные типы, такие как строка, целое число.. или перечисления лучше имели бы методы. т.е. i.ToString вместо IntToStr(i).
8
ответ дан utku_karatas 27 April 2015 в 07:21
поделиться
  • 1
    Этот код собирается бросить индекс за пределы исключение для списка [я + 1] на последнем повторении цикла... – froadie 8 March 2010 в 19:51

Python

  • __init__
  • некоторые библиотеки являются неловкими, как smtplib
  • 'сам' должен быть в объявлении метода!!!
  • (для пред3.0) несколько плохая поддержка unicode
  • отсутствие встроенной выгоды попытки
  • никакая прямая ссылка к "этому" / текущему модулю (вместо этого должны использовать sys.modules[__name__])
6
ответ дан 2 revshasen j 27 April 2015 в 07:21
поделиться

Python

  • 1-3: нет никакого одно очевидное выбор системы упаковки/сборки/документирования (такой как Perl cpan, POD или Ruby gem, rake, rdoc).

  • 4: Python 3.0 является достаточно несовместимым для требования двух исходных ответвлений (2.x и 3.x) для каждого проекта Python. Но Python 3.0 не достаточно несовместимый для выравнивания по ширине его. Большинство преимуществ py3k является слишком тонким.

  • 5: Jython, IronPython, CPython являются несовместимыми.

11
ответ дан jfs 27 April 2015 в 07:21
поделиться
  • 1
    Это решение лучше, чем мой, если список является ICollection или IEnumerable потому что Вы can' t индексируют sigle элементы списка. – munissor 8 March 2010 в 20:41

VB.NET

  • поведение AndAlso / OrElse и And / Or кажется назад. Возможно, они должны быть переключены.
  • When может только использоваться для ловли исключения. Способность сделать When условное выражение была бы хороша для некоторых других вещей.
  • нет никакого трахающего Рефакторинга в IDE VS (не действительно отказ языка) как существует с C#
  • Not <obj> Is Nothing. Да, это было исправлено IsNot, но по некоторым причинам я вижу Not Is использоваться слишком часто. (Я вижу его намного более часто с devs, кто говорит на английском языке как на втором языке, это имеет лучший смысл от того угла?)
  • Это не требует () на [1 110] и большинство функций. (Приводит к неаккуратным привычкам кодирования)
  • Необходимость сделать _ при повреждении строки.
  • Это позволяет дополнительные параметры. (Приводит к неаккуратным привычкам кодирования)
  • объявление, что массив сделан [1 112] а не способностью. "Тусклое прибытие (2) как Строка" будет на самом деле содержать 3 элемента.
  • Наличие = быть сравнением и оператор присваивания.
11
ответ дан 3 revs, 2 users 57%StingyJack 27 April 2015 в 07:21
поделиться
  • 1
    @froadie - глюк - я пропустил < (по сравнению с < =) – JMarsch 9 March 2010 в 16:21

ActionScript / AS3

  • Никакие абстрактные классы
  • Никакие частные конструкторы (таким образом, одиночный элемент является взломом)
  • Никакие типизированные массивы перед FP10
  • Не Компилируют/публикуют время, является нелепо медленным в производительности Flash IDE
  • созданных в функциях (например, Математика) медленный

Иначе, это - на самом деле хороший язык - намного лучше, чем JavaScript вопреки широко распространенному мнению, и миллион раз лучше, чем что-то как PHP.

6
ответ дан Iain 27 April 2015 в 07:21
поделиться

JavaScript

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

  • , Если переменная используется, но не была определена перед рукой это считают глобальной переменной

  • поставщики Браузера, составляющие стандарты, как им нравится, делая кодирующий для нас разработчики, использующие такой красивый язык тяжелее, чем это должно быть

  • Чувствительность к регистру - полагающий, что нет никакого достойного IDE для разработки js со временем компиляции, проверяя

  • Обходные решения (такие как использование hasOwnProperty метод) для выполнения некоторых, в других отношениях простых операций.

16
ответ дан Andreas Grech 27 April 2015 в 07:21
поделиться
  • 1
    Изо всех многих предложений I' замеченный ve, это является самым легким реализовать. Спасибо! – mpemburn 1 November 2013 в 14:58

VB6

  1. Windows только.
  2. Больше поддерживаемый.
  3. Массивы могут запуститься в любом числе, скорее затем все нормализуемые к 0.
  4. скомпилированные приложения зависит от многих dll's для выполнения правильно.
  5. Много сложных средств управления как управление браузером или сложные части кода имеют тенденцию повреждать IDE, когда Вы выполняете нескомпилированный код, но работаете просто великолепно при компиляции.
18
ответ дан Asrrin29 27 April 2015 в 17:21
поделиться
  • 1
    причина я установил идентификатор на aspnetForm, состояла в том, потому что я пытался использовать реальное имя формы - summaryForm и мой отладчик JavaScript поджигателя, сказанный __, EVENTTARGET был пустым. Я исследовал источник и заметил, что asp.net изменяет клиентский идентификатор на aspnetForm - все еще __, EVENTTARGET является пустым......... – mancmanomyst 20 February 2009 в 19:23

C/C++

  1. Отсутствие интегральной функциональности ПОДКАЧКИ
  2. Шаблонный Синтаксис
  3. Вы не можете #define #define (не многопроходный)
  4. несовместимости упаковки Структуры между компиляторами
  5. , символ подписывается или не подписан?

неизменность Java

  1. на краю
  2. No касательно ключевого слова как C#
  3. пробует/ловит блоки везде
  4. Плохая производительность во время выполнения
  5. Весь связанный со строкой материал

Python

  1. Никакое "основное" (я привык к нему!)
  2. подчеркнутые ключевые слова
  3. Ограниченная поддержка потока
  4. "сам" вместо "этого"
  5. Отсутствие C/C++ как синтаксис
3
ответ дан Malkocoglu 27 April 2015 в 17:21
поделиться

MEL (Язык Выражения майя):

  • Единственные массивы размеров: Принуждение меня вручную синхронизировать два или больше списка или использование разграничило строки для моделирования более сложных структур данных. Естественно, они неизменны также.
  • Единственный распараллелил и медленный: Порождение всего приложения майя зависнуть, в то время как это выполняет задачу. Бонусные очки для неспособности уничтожить долгие операции, вместо этого имея необходимость закрыться и вновь открыть язык майя.
  • Сценарий, получающий пути, не являются рекурсивными: Значение каждого каталога Вы хотите сохранить сценарии в, должен все быть добавлен к пути сценария.
  • Никакие пространства имен: Принуждение непоследовательного использования соглашений о присвоении имен удостовериться глобальные процедуры не сталкиваются.
  • Модальные команды: Каждая команда модальна, означая Создавание, Измените, и операции Запроса все обрабатываются путем установки флагов. Это также вынудило разработчиков вызвать большинство команд к возвращаемым массивам
  • стиль команды Inconsistent: Большая часть массива управляет на самом деле возвращаемыми массивами, но команда Tokenize должна взять массив в качестве ссылки, которую это затем заполняет, вместо того, чтобы выложить массив. Это среди других несоответствий.

Они и несколько других причин - то, почему Autodesk принял Python как secondardy язык сценариев, который поднимает несколько других раздражающих факторов:

  • Не все команды MEL поддерживаются: Большинство, но время от времени Вы имеете необходимость для использования mel () функция для выполнения некоторого произвольного кода. То, что хуже, является всем раздражающим выходом, необходимо сделать к нему.
  • Наследованный модальный стиль команды: Должен использовать тот же create=True, query=True, edit=True материал.
1
ответ дан Soviut 27 April 2015 в 17:21
поделиться
  • 1
    Все еще didn' t работают на меня. Я попробовал это предложение, I' ve попробовал @brian предложение, I' ve проверяется на соответствие исходным версиям и установку z-индекса. Ни один из них не работал. Мой datepicker отображается без любого моделирования дисплея, как будто это было все прозрачно кроме текста. – Mike S. 11 June 2012 в 05:50

C#

  • <забастовка>, Универсальные параметры инвариантные C# 4.0, представил ковариантность и контравариантность для универсальных типов
  • , Переопределяемые участники класса должны явно быть отмечены как виртуальный

Java

  • , пропускающий неподписанные типы числовых данных
  • , Примитивные типы данных не являются объектами
1
ответ дан 2 revsEnrico Campidoglio 27 April 2015 в 17:21
поделиться

Отсутствие препроцессора в C#.

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

0
ответ дан Mike Dunlavey 27 April 2015 в 17:21
поделиться

Объективное Отсутствие Caml

  1. пространства имен facilicty.
  2. Многословный класс и объект nortation.
  3. Сложная система сборки.
  4. Неудобный для создания инфикса.
2
ответ дан osiire 27 April 2015 в 17:21
поделиться

VB.NET

1), Если Не x Является "нечто" (вместо <> "нечто")
2) "OrElse" и короткое замыкание "AndAlso" (вместо просто "Или" и "И", которые действуют по-другому)
3) Ничто (вместо Пустого указателя)

0
ответ дан Techgration 27 April 2015 в 17:21
поделиться

Я использую Java, и моя самая большая говядина является неэффективностью строковых операций. когда Вы используете + оператор. Серьезно, разве компилятор не может выяснить, сколько строк я добавляю и затем генерирую материал StringBuffer в фоновом режиме для меня?

Часто код, который использует +, более читаем, чем последовательность операций StringBuffers.

кроме того, я ненавижу дублирование между собственными массивами и платформой набора. Синтаксис для .toArray () чрезвычайно ужасен.

2
ответ дан Uri 27 April 2015 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: