Каков Ваш язык “зависания”? [закрытый]

Инициализация двойной скобки создает анонимный класс, полученный из указанного класса (внешние фигурные скобки external ) и предоставляет блок инициализации внутри этого класса (скобки inner ). например,

new ArrayList<Integer>() {{
   add(1);
   add(2);
}};

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

16
задан 2 revs 23 May 2017 в 12:14
поделиться

35 ответов

Я ненавижу НЕНАВИСТЬ Ненависти "Конечная функция" и "Конец ЕСЛИ" и "Если... Тогда" части VB. Я очень видел бы фигурную скобку вместо этого.

32
ответ дан 30 November 2019 в 15:01
поделиться

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

я все еще переношу мозг вокруг JavaScript, и в целом, Его главным образом приемлемое. Почему настолько трудно создать пространство имен. В TCL они просто ужасны, но в JavaScript, это - на самом деле вздор И абсолютно нечитабельный.

В SQL, каким образом все всего один, огромный freekin оператор SELECT.

2
ответ дан 30 November 2019 в 15:01
поделиться

Пакеты Java. Я нахожу их сложными, больше потому что я не корпорация. Я значительно предпочитаю пространства имен. Я буду преобладать над ним, конечно - я играю с SDK Android, и Eclipse снимает много боли. У меня никогда не было машины, которая могла выполнить его в интерактивном режиме прежде, и теперь я делаю я очень впечатлен.

1
ответ дан 30 November 2019 в 15:01
поделиться

Пролог if-then-else синтаксис.

x -> y ; z

проблема состоит в том, что" ;"" or" оператор, таким образом, вышеупомянутое похоже" x, подразумевает y или z".

1
ответ дан 30 November 2019 в 15:01
поделиться

На большинстве языков, доступе к файлу. VB.NET является единственным языком до сих пор, где доступ к файлу имеет любой смысл мне. Я не понимаю, почему, если я хочу проверить, существует ли файл, я должен использовать File.exists ("") или что-то подобное вместо того, чтобы создать объект файла (на самом деле FileInfo в VB.NET) и спросить, существует ли это. И затем если я хочу открыть его, я прошу, чтобы это открылось: (принятие объекта FileInfo, названного fi) fi. OpenRead, например. Возвращает поток. Хороший. Точно, что я хотел. Если я хочу переместить файл, fi. MoveTo. Я могу также сделать fi. CopyTo. Какова эта ерунда о не создании файлов законченные объекты на большинстве языков? Кроме того, если я хочу выполнить итерации через файлы в каталоге, я могу просто создать объект каталога и назвать.GetFiles. Или я могу сделать.GetDirectories, и я получаю совершенно новый набор объектов DirectoryInfo играть с.

По общему признанию, Java имеет часть этого материала файла, но эта ерунда необходимости иметь целый объект сказать его, как перечислить файлы, просто глупа.

кроме того, я ненавижу::->, => и все другие мультисимвольные операторы за исключением < = и> = (и возможно - и ++).

0
ответ дан 30 November 2019 в 15:01
поделиться

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

Perl:

($lastname, $firstname, $rest) = split(' ', $fullname);

Этот оператор работает хорошо, неважно, сколько слов находится в $fullname. Попробуйте его в Python, и это взрывается, если $fullname не содержит точно три слова.

2
ответ дан 30 November 2019 в 15:01
поделиться

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

, например,

if (condition)
{
   callSomeConditionalMethod();
}
callSomeOtherMethod();

по сравнению с

if (condition)
   callSomeConditionalMethod();
callSomeOtherMethod();

приравниваются к тому же самому, но у различных людей есть различные стили. Мне жаль, что исходный стандарт не был более строгим [приблизительно 112] принятие решения об этом, таким образом, у нас не будет этой неоднозначности. Это приводит к аргументам и разногласиям в обзорах кода!

2
ответ дан 30 November 2019 в 15:01
поделиться

Любой язык, который не может полностью решить, являются ли индексы Массивов/Цикла/символа строки базирующимся нулем или один базирующийся.

я лично предпочитаю базирующийся нуль, но любой язык, который смешивает эти два или позволяет Вам "настроить", который используется, может управлять Вами помешанный. ( Скорость Apache - я смотрю в Вашем направлении!)

надрез от ссылка VTL (значение по умолчанию равняется 1, но можно установить его на 0):

# Default starting value of the loop
# counter variable reference.
directive.foreach.counter.initial.value = 1

(пытаются объединить 2 проекта, которые использовали различные встречные схемы - тьфу!)

3
ответ дан 30 November 2019 в 15:01
поделиться

Java и его контролируемые исключительные ситуации. Я оставил Java некоторое время, живя в мире.NET, тогда недавно возвратился.

похоже, иногда, на мой throws, пункт более пространен, чем мое содержание метода.

6
ответ дан 30 November 2019 в 15:01
поделиться

Я просто думал о другом... Я очень не хочу, когда главным образом бессмысленные URL, используемые в XML, определяют пространства имен, например, xmlns="http://purl.org/rss/1.0/"

12
ответ дан 30 November 2019 в 15:01
поделиться

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

Type foo = Record
    // ...
end;
9
ответ дан 30 November 2019 в 15:01
поделиться

Хотя я - главным образом разработчик PHP, мне не нравятся языки, которые не позволяют мне сделать достаточно встроенных вещей. Например:

$x = returnsArray();
$x[1];

вместо

returnsArray()[1];

или

function sort($a, $b) {
    return $a < $b;
}
usort($array, 'sort');

вместо

usort($array, function($a, $b) { return $a < $b; });
9
ответ дан 30 November 2019 в 15:01
поделиться

Мне нравится объектно-ориентированный стиль. Таким образом, это прослушивает меня в Python для наблюдения len (ул.) для получения длины строки, или разделяющим строкам нравится разделение (ул., "|") на другом языке. Это прекрасно в C; это не имеет объектов. Но Python, D, и т.д. имеет объекты и использует obj.method () другие места. (Я все еще думаю, что Python является большим языком.)

Несоответствие - другой большой для меня. Мне не нравится непоследовательное именование в той же библиотеке: длина (), размер (), getLength (), getlength (), toUTFindex () (почему не toUtfIndex?), Постоянный, ПОСТОЯННЫЙ, и т.д.

длинные имена в.NET иногда беспокоят меня. Разве они не могут сократить DataGridViewCellContextMenuStripNeededEventArgs так или иначе? Что относительно ListViewVirtualItemsSelectionRangeChangedEventArgs?

И я ненавижу глубокие деревья каталогов. Если библиотека/проект имеет 5 уровней глубокое дерево каталогов, я собираюсь испытать затруднения из-за него.

8
ответ дан 30 November 2019 в 15:01
поделиться

C и синтаксис C++ является немного изворотливым. Они снова используют операторы для разных вещей. Вы, вероятно, так привыкли к нему, что Вы не думаете об этом (ни делаете I), но рассмотрите, сколько имеют круглые скобки значений:

int main()        // function declaration / definition
printf("hello")   // function call
(int)x            // type cast
2*(7+8)           // override precedence
int (*)(int)      // function pointer
int x(3)          // initializer
if (condition)    // special part of syntax of if, while, for, switch

И если в C++ Вы видели

foo<bar>(baz(),baaz)

, Вы не могли бы знать значение без определения foo и bar.

  • < и> мог бы быть шаблонное инстанцирование или могло бы быть меньше и больше - чем (необычный, но законный)
  • () мог бы быть вызов функции или мог бы просто окружать оператор запятой (т.е. выполните baz () для размерных эффектов, затем возвратите baaz).

глупая вещь состоит в том, что другие языки скопировали некоторые из этих характеристик!

7
ответ дан 30 November 2019 в 15:01
поделиться

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

3
ответ дан 30 November 2019 в 15:01
поделиться

Нет ничего в мире, я ненавижу больше, чем php.

  1. Переменные с $, это - один дополнительный нечетный символ для каждой переменной.
  2. к участникам получают доступ с-> без видимой причины, один дополнительный символ для каждого членского доступа.
  3. А freakshow языка действительно.
  4. Никакие пространства имен.
  5. Строки связываются с..
  6. А freakshow языка.
6
ответ дан 30 November 2019 в 15:01
поделиться

Весь [] s и @s в Objective C. Их использование так отличается от базового собственного синтаксиса C, что в первый раз я видел их, это произвело впечатление, на котором была неуклюже соединена болтом вся объектная ориентация машинально.

5
ответ дан 30 November 2019 в 15:01
поделиться

Несоответствия Стиля кодирования в проектах команды.

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

Это достаточно плохо, когда Вы используете различные стандарты для различных языков, но в веб-проекте с HTML, CSS, JavaScript, PHP и MySQL, это - 5 языков, 5 различных стилей, и умноженный на число людей, работающих над проектом.

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

4
ответ дан 30 November 2019 в 15:01
поделиться

Меня иногда раздражает, как люди ожидают там быть одним языком для всех заданий. В зависимости от задачи Вы делаете, каждый язык имеет свои преимущества и недостатки. Мне нравятся языки синтаксиса на базе С, потому что это - то, к чему я больше всего привык, и мне нравится гибкость, которую они имеют тенденцию даровать разработчику. Конечно, с великой державой прибывает большая ответственность и иметь власть записать, что 150 операторов LINQ строки не означают, что Вы должны.

я люблю встроенный XML в последней версии VB.NET, хотя мне не нравится работать с VB главным образом, потому что я нахожу IDE менее полезным, чем IDE для C#.

3
ответ дан 30 November 2019 в 15:01
поделиться

Если Microsoft должна была изобрести еще один C ++-like язык в C#, почему они не исправили ошибку Java и реализовали поддержку RAII?

3
ответ дан 30 November 2019 в 15:01
поделиться

SQL, они говорят, что Вы не должны использовать курсоры и когда Вы делаете, Вы действительно понимаете почему...
так тяжелое движение!


    DECLARE mycurse CURSOR LOCAL FAST_FORWARD READ_ONLY
        FOR
        SELECT field1, field2, fieldN FROM atable

    OPEN mycurse
    FETCH NEXT FROM mycurse INTO @Var1, @Var2, @VarN

    WHILE @@fetch_status = 0
    BEGIN
        -- do something really clever...

        FETCH NEXT FROM mycurse INTO @Var1, @Var2, @VarN
    END
    CLOSE mycurse
    DEALLOCATE mycurse

3
ответ дан 30 November 2019 в 15:01
поделиться

Чувствительность к регистру.

, Какое похмелье необходимо думать, что дифференциация двух идентификаторов только случаем является прекрасной идеей?

3
ответ дан 30 November 2019 в 15:01
поделиться

Мне никогда действительно понравились ключевые слова, записанные назад в некоторых оболочках сценариев

, если тогда - fi достаточно плох, но case-in-esac просто становится глупым

19
ответ дан 30 November 2019 в 15:01
поделиться

Несоответствия имени функции PHP.

// common parameters back-to-front
in_array(needle, haystack);
strpos(haystack, needle);

// _ to separate words, or not?
filesize();
file_exists;

// super globals prefix?
$GLOBALS;
$_POST;
22
ответ дан 30 November 2019 в 15:01
поделиться

Моя большая проблема - синтаксис MATLAB. Я использую его, и в нем есть вещи, которые мне нравятся, но в нем так много надоедливых причуд. Посмотрим.

  • Матрицы индексируются круглыми скобками. Поэтому, если вы видите что-то вроде Image (350,260), вы не имеете ни малейшего представления о том, получаем ли мы элемент из матрицы Image или вызываем некоторую функцию с именем Image и передаем ей аргументы.
  • Scope is безумный. Кажется, я припоминаю, что переменные индекса цикла for остаются в области видимости после завершения цикла.
  • Если вы забудете поставить точку с запятой после присваивания, значение будет сброшено в стандартный вывод.
  • У вас может быть одна функция для каждого файла. . Это очень неприятно для организации работы.

Я уверен, что смог бы придумать больше, если бы подумал об этом.

0
ответ дан 30 November 2019 в 15:01
поделиться

In Ruby, I very strongly dislike how methods do not require self. to be called on current instance, but properties do (otherwise they will clash with locals); i.e.:

def foo()
   123
end

def foo=(x)
end

def bar()
    x = foo() # okay, same as self.foo()
    x = foo   # not okay, reads unassigned local variable foo
    foo = 123 # not okay, assigns local variable foo
end

To my mind, it's very inconsistent. I'd rather prefer to either always require self. in all cases, or to have a sigil for locals.

2
ответ дан 30 November 2019 в 15:01
поделиться

[Отказ от ответственности: я лишь частично знаком с VB, поэтому относитесь к моим комментариям с долей скептицизма]

Ненавижу, как каждое ключевое слово в VB пишется с заглавной буквы. Я видел сообщение в блоге на прошлой неделе (месяц?) О ком-то, кто пытался писать код VB без заглавных букв (они сделали что-то с компилятором, который позволил бы им компилировать такой код VB), и язык выглядел намного лучше!

0
ответ дан 30 November 2019 в 15:01
поделиться

I abhor the boiler plate verbosity of Java.

  • writing getters and setters for properties
  • checked exception handling and all the verbiage that implies
  • long lists of imports

Those, in connection with the Java convention of using veryLongVariableNames, sometimes have me thinking I'm back in the 80's, writing IDENTIFICATION DIVISION. at the top of my programs.

Hint: If you can automate the generation of part of your code in your IDE, that's a good hint that you're producing boilerplate code. With automated tools, it's not a problem to write, but it's a hindrance every time someone has to read that code - which is more often.

While I think it goes a bit overboard on type bureaucracy, Scala has successfully addressed some of these concerns.

6
ответ дан 30 November 2019 в 15:01
поделиться

In no particular order...

OCaml

  • Tuples definitions use * to separate items rather than ,. So, ("Juliet", 23, true) has the type (string * int * bool).

  • For being such an awesome language, the documentation has this haunting comment on threads: "The threads library is implemented by time-sharing on a single processor. It will not take advantage of multi-processor machines. Using this library will therefore never make programs run faster." JoCaml doesn't fix this problem.

  • ^^^ I've heard the Jane Street guys were working to add concurrent GC and multi-core threads to OCaml, but I don't know how successful they've been. I can't imagine a language without multi-core threads and GC surviving very long.

  • No easy way to explore modules in the toplevel. Sure, you can write module q = List;; and the toplevel will happily print out the module definition, but that just seems hacky.

C#

  • Lousy type inference. Beyond the most trivial expressions, I have to give types to generic functions.

  • All the LINQ code I ever read uses method syntax, x.Where(item => ...).OrderBy(item => ...). No one ever uses expression syntax, from item in x where ... orderby ... select. Between you and me, I think expression syntax is silly, if for no other reason than that it looks "foreign" against the backdrop of all other C# and VB.NET code.

LINQ

Every other language uses the industry standard names are Map, Fold/Reduce/Inject, and Filter. LINQ has to be different and uses Select, Aggregate, and Where.

Functional Programming

Monads are mystifying. Having seen the Parser monad, Maybe monad, State, and List monads, I can understand perfectly how the code works; however, as a general design pattern, I can't seem to look at problems and say "hey, I bet a monad would fit perfect here".

Ruby

GRRRRAAAAAAAH!!!!! I mean... seriously.

VB

Module Hangups
    Dim _juliet as String = "Too Wordy!"

    Public Property Juliet() as String
        Get
            Return _juliet
        End Get
        Set (ByVal value as String)
            _juliet = value
        End Set
    End Property
End Module

And setter declarations are the bane of my existence. Alright, so I change the data type of my property -- now I need to change the data type in my setter too? Why doesn't VB borrow from C# and simply incorporate an implicit variable called value?

.NET Framework

I personally like Java casing convention: classes are PascalCase, methods and properties are camelCase.

4
ответ дан 30 November 2019 в 15:01
поделиться

Я ненавидел круглые скобки в Lisp и Схеме, потому что после C, C# и языки как этот это казалось очень запутываемым, и не было действительно ясно, как связаны вещи. Однако теперь, когда я знаю что-то о Схеме, и это - обычные инструкции по форматированию, я не сказал бы, что мне нравится способ, которым это работает, но по крайней мере я понимаю и преодолеваю свои страхи при чтении кода, написанного в CLisp/Scheme.

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

0
ответ дан 30 November 2019 в 15:01
поделиться
Другие вопросы по тегам:

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