Кто-нибудь использует язык Interactive Data Language, IDL? Он популярен у ученых. Я думаю, что это плохой язык, потому что он проприетарный (для каждого терминала он должен иметь дорогостоящую лицензию), и он имеет минимальную поддержку (попробуйте найти IDL, язык, прямо сейчас в стеке). Я пытаюсь убедить своих коллег прекратить использовать его и изучить C/С++/Python/Fortran/Java/Ruby. Кто-нибудь знает или даже заботится о IDL, чтобы иметь на нем мнения? Что ты думаешь об этом? Должен ли я сказать моим коллегам, чтобы они перестали тратить время на это? Как я могу их убедить?
Изменить: у людей создается впечатление, что я не знаю или использую IDL. Кроме того, я сказал, что IDL имеет минимальную поддержку, которая истинна в одном смысле, поэтому я должен уточнить, что научные библиотеки действительно большие. Я использую IDL все время, но это точно проблема: я использую только IDL, потому что его используют его коллеги. Существует формат IDL файла, который используется в IDL, который может быть открыт только в IDL. Поэтому я должен использовать IDL для работы с этими данными и передачи данных обратно коллегам, но я знаю, что буду более эффективным на другом языке. Это похоже на то, что кто-то отправил вам файл с файлом microsoft в приложении электронной почты, и если вы не понимаете, как это неправильно, то вы, вероятно, пишете слишком много слов, недостаточно кода, и вы купили слово Microsoft.
Изменить: В качестве альтернативы IDL Python популярен. Вот список "Профили" IDL (и минусы) из AstroBetter:
Плюсы IDL
- Зрелые многочисленные доступные числовые и астрономические библиотеки
- Широкая астрономическая пользовательская база.
- Численный аспект, хорошо интегрированный с самим языком
- Многие локальные пользователи с глубоким опытом
- Быстрее для небольших массивов
- Простая установка
- Хорошая унифицированная документация
- Стандартный инструмент запуска/отладки GUI (IDLDE)
- Единая система виджетов (не то, что выбрать или учиться)
- Функция SAVE/RESTORE
- Использование аргументов ключевых слов в качестве флагов более удобно
Недостатки IDL
- Узкая применимость, не подходящая для общего программирования
- Медленнее для больших массивов
- Функциональность массива менее мощная
- Таблица поддерживает бедные
- Ограниченная возможность расширения с использованием C или Fortran, такие расширения трудно распространять и поддерживать
- Дорогие, иногда проблемы с другими, которые не имеют или не могут предоставлять лицензии.
- Закрытый источник (только RSI может исправить ошибки)
- Очень неудобно интегрироваться с задачами IRAF.
- Управление памятью более неудобно
- Единая система виджетов (бесполезная, если работает в другой среде)
- Черчение:
- Неловкая поддержка символов и математического текста
- Многие системы шрифтов, проблемы с переносимостью (v5.1 несколько смягчает)
- не является гибким или расширяемым.
- окна графика не являются внутренне интерактивными (например, панорамирование и масштабирование)
Плюсы Python
- Очень общий и мощный язык программирования, но он прост в освоении. Сильная, но необязательная, поддержка объектно-ориентированного программирования.
- Очень большое сообщество пользователей и разработчиков, очень обширная и широкая база данных.
- Очень расширяемый с C, С++ или Fortran, доступные доступные механизмы рассылки
- Free; неограничивающая лицензия; Открытый исходный код
- Становление стандартного языка сценариев для астрономии
- Простота использования с задачами IRAF.
- Основа усилий приложения STScI.
- Более общие возможности массива
- Быстрее для больших массивов, улучшена поддержка отображения памяти
- Доступны многие книги и доступные ресурсы документации (для языка и его библиотек)
- Улучшенная поддержка структур таблиц
- Черчение
- framework (matplotlib) более расширяемый и общий
- Улучшенная поддержка и переносимость шрифтов (только один способ сделать это)
- Используется во многих инфраструктурах окон (GTK, Tk, WX, Qt...)
- Стандартная функция построения графиков независимо от используемой структуры Графики
- встраиваются в другие графические интерфейсы.
- более мощная обработка изображений (несколько одновременных LUTS, необязательная передискретизация/масштабирование, альфа-смешивание и т.д.)
- Поддержка многих систем виджетов
- Сильное локальное влияние на возможности, которые разрабатываются для Python
Недостатки Python
- Дополнительные элементы для установки отдельно
- Не так хорошо принят в астрономическом сообществе (но поддержка явно растет).
- Научные библиотеки не столь зрелые:
- Документация не такая полная, а не как унифицированная
- Не так глубоко в астрономических библиотеках и утилитах
- Не все функции числовой библиотеки IDL имеют соответствующую функциональность в Python
- Некоторые числовые конструкции не совсем согласуются с языком (или немного менее удобным, чем IDL)
- Соглашение об индексировании массива "назад"
- Малая производительность системы медленнее
- Нет стандартного средства запуска/отладки GUI
- Поддержка многих систем виджетов (топор, который выбирает)
- Текущая нехватка функции, эквивалентной SAVE/RESTORE в IDL
- matplotlib еще не имеет эквивалентов для всех возможностей 2D-построения IDL (например, поверхностных графиков).
- Использование аргументов ключевого слова, используемых как флаги, менее удобно
- Черчение:
- сравнительно незрелый, еще много развития
- отсутствует некоторый тип графика (например, поверхность)
- Для трехмерной возможности требуется VTK (хотя matplotlib имеет некоторые базовые 3-мерные возможности)