Функции программирования, отсутствующие в C++ и Java

Какие функции программирования отсутствуют в C++ и Java?

Например. Вы не можете делать рекурсивное программирование в QBasic? Вы не можете динамически выделять память в QBasic.

Что хорошего было бы в фичах на C++, Java.

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


person Geek    schedule 08.05.2009    source источник


Ответы (3)


Этот ответ касается только C++

Вещи, которых мне не хватает в синтаксисе или стандартной библиотеке:

  1. RegExp как часть стандартной библиотеки
  2. Потоки как часть стандартной библиотеки
  3. Указатель на методы-члены (не объекты!)
  4. Свойства были бы хороши (я видел коды, которые эмулируют это через препроцессор C++... обратите внимание на красивый код).
  5. Некоторый сетевой API более низкого уровня (сокеты!), И API более высокого уровня (дайте мне этот файл с этого ftp, отправьте «это» на этот сайт через POST).

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

  1. Сборщик мусора памяти хорош.
  2. Интерфейс для набора инструментов с графическим интерфейсом — пусть MSVC сопоставляет его с win32, а в Linux... (хороший вопрос!)
  3. Стабильный АБИ. В C это стандарт, но в C++ нам все еще не хватает нескольких десятилетий. Хочу еще и стабильный ABI между компиляторами - хочу одну библиотеку скомпилить в MinGW, другую с CL и все должно работать.

Вот список вещей, которые я хочу увидеть, но знаю, что они никуда не денутся:

  1. Совместимость с C. Действительно, сейчас это миф. using namespace std убил его.
  2. Включить, заголовки. Большая часть информации уже доступна в DLL/so/a/"библиотеке", действительно ли нам нужно сохранять это плохое решение 30-летней давности? При необходимости компиляторы должны хранить информацию в двоичных файлах.
  3. Потребность в Makefiles — компилятор должен быть достаточно умен, чтобы знать, что делать с этим кодом, из самого кода. Паскаль делает это очень хорошо. Я думаю также Д.
  4. (могу ошибаться, поправьте меня) Официальный стандарт открыт и доступен для просмотра в свободном доступе. Почему я должен платить за официальные документы? Нужно ли мне делать это для HTTP? UTF8? Юникод?
person elcuco    schedule 30.11.2009

Я скучаю по лямбда-выражениям.

person Jonas Elfström    schedule 08.05.2009
comment
C++ Boos lib предоставляет лямбда-функции, см. boost.org/doc/ libs/1_39_0/doc/html/lambda.html - person tuergeist; 08.05.2009

Я думаю, что это очень субъективный вопрос. С теоретической точки зрения в Java нет ничего «недостающего», потому что вы можете делать все, что хотите, с точки зрения результата в виде приложения.

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

Я думаю, что вы имеете в виду функции, которые «приятно иметь» — и здесь каждый должен решить для себя сам. Я бы даже сказал, что в языке есть функции, которых было бы «хорошо не иметь», такие как статический импорт, но опять же это мое субъективное мнение...

person B.E.    schedule 08.05.2009