Сравнительная религия

pilot

Не холивар...
с http://www.techinfo.net.ru/docs/comparative_religion.html
Сравнительная Религия
Perl - это язык, который я чаще всего использую. Я его очень люблю, если нет веской причины для обратного, я использую исключительно его. В этой статье я расскажу вам, почему, а также дам информацию, используя которую вы сможете выбрать свой собственный основной язык.
Кто-то из стариков сказал: "за все браться и ничего не уметь". Подобно многим программистам, у меня были дни 4 языков - дни, когда я писал на 4 различных языках. Это частенько необходимо. Однако, чем больше вы уделяете внимания одному языку, тем лучше вы его знаете и тем больше вы сможете сделать за меньшее время. Поэтому я предлагаю вам выбрать ваш "основной язык" - это тот язык, который вы используете для всего, если только нет веского повода использовать что-то другое.
Мой основной язык Perl. Он установлен почти на всех UNIX, Linux и BSD машинах и поэтому я действительно могу "написать однажды, запускать везде". Он также доступен бесплатно или за небольшую плату (например $39.00) для Windows от ActiveState, а также с открытым кодом от Siemens, называемый SiePerl. Благодаря встроенным регулярным выражениям, слабому типизированию и многочисленным шоткатам(shortcuts разработка ведется подобно молнии. Фаза отладки занимает больше времени, чем мне хотелось бы, но я могу жить с этим. Не в пример многим языкам, поставляемым с Linux, знание Perl действительно ведет к оплачиваемой работе.
Это все мои мысли.
Обсуждения языков программирования похожи на релегиозные обсуждения - живо, яростно и упрямо. Эта статья обсуждает C, C++, Java, Python, Ruby, TCL, QT, gTk, bash и Perl. По-моему это превосходные языки. В прошлом я писал на плохих языках, поэтому я узнаю собаку, когда ее вижу и ни один из них не собака (в оригинале "so I know a dog when I see one, and none of these is a dog" - может быть слово "собака" надо было заменить на слово "сука"? - прим. перев.).
Я написал сотни тысяч строк на C, C++ и Perl, десятки тысяч на Java и Python и тысячи строк на bash. У меня есть знания Ruby, потому что он похож на C++, Java и Python. Я знаю немного gTK и QT и немного знаком с TCL.
Далее идет небольшое сравнение упомянутых языков.
Язык Описание Преимущества Недостатки Доступность
C
Небольшой, прекрасный компилятор в машинные коды.
* Создает быстровыполяемые программы.
* Полный доступ к железу, памяти и I/O.
* Строгая типизированность защищает от ошибок.

* Небольшое количество конструкций высокого уровня делают разработку меннее эффективной.
* Частое использование указателей памяти и необходимость управления распределением памяти для программиста часто приводит к ошибкам.
* Строгая типизированность тормозит разработку.
Установлен по умолчанию на всех UNIX/Linux/BSD машинах. Может быть приобретен для Windows.
C++
C + ООП

* Все преимущества C, хотя более медлителен.
* Классы и объекты делают программы более масштабируемыми.
* Строгая типизированность защищает от ошибок.
* Полная объектная инкапсуляция делает программы более надежными, исключая проблемы с указателями и переполнением буфера.

* Те же недостатки как у C.
Установлен по умолчанию на всех UNIX/Linux/BSD машинах. Может быть приобретен для Windows.
Java Машиннонезависимый язык, компилируемый в специальный байткод. Изначально создавался объектно-ориентированным.
* Масштабируемый до гигантских проектов, благодаря врожденному ООП.
* Встроенная сборка мусора в памяти и отсутствие указателей минимизируют количество ошибок.
* Фаза отладки Java программ невероятно быстра.
* Строгая типизированность защищает от ошибок.
* Полная объектная инкапсуляция делает программы более надежными.
* Гигантский рынок для Java программистов.

* Скорость выполнения может быть очень медленной.
* Даже простая программа требует ООП, поэтому простые программы не так просты, как вам бы этого хотелось.
* Строгая типизированность тормозит разработку.
Доступен для всех платформ.
Python Широко распространенный интерпретатор, хорошо интегрированный с ООП.
* Хорошая интеграция с ООП делает Python масштабируемым до довольно крупных проектов.
* Встроенная сборка мусора в памяти и отсутствие указателей минимизируют количество ошибок.
* Отсутствие проверки типов позволяет быстрее разрабатывать программы.
* Инкапсуляция объектов доступна, если вы знаете как (__переменная поэтому вы можете писать отличные, надежные программы.
* Вложенность Python, чувствительная к отступу, делают его самым читабельным языком на планете.

* Отсутствие проверки типов потворствует появлению трудноуловимых ошибок.
* Скорость выполнения не может стравниться с C или C++.
* Почти нет рынка для Python программистов.
Доступен на UNIX, Linux, BSD and Windows. Поставляется со многими Linux дистрибутивами, но часто не устанавливается.
Ruby Интерпретатор, построенный снизу вверх, с мыслями об ООП. Что-то похожее на Perl и Python.
* Хорошая интеграция с ООП делает Ruby масштабируемым до довольно крупных проектов.
* Встроенная сборка мусора в памяти и отсутствие указателей минимизируют количество ошибок.
* Отсутствие проверки типов позволяет быстрее разрабатывать программы.
* Объектная инкапсуляция позволяет делать надежные программы.

* Скорость выполнения не может стравниться с C или C++.
* Нулевой рынок для Ruby программистов.
Доступен на Linux, но редко установливаемый. На других платформах каждый может скомпилировать рабочий вариант и установить.
TCL Интерпретатор, чей синтаксис и использование очень различается для С или других языков, обсуждаемых здесь. Те, кто знает как, могут писать реальные программы всего из нескольких строк TCL, но не очень масштабируемые.
* Реальные программы могут быть написаны, используя несколько TCL операторов.

* Нет ООП и не очень масштабируемый.
* TCL редко используется и рынок TCL программистов довольно мал.
Поставляется и обычно устанавливается на Linux. Доступен для других платформ, включая Windows.
QT Компилируемый язык, спроектированный для создания графических приложения.
* Создает быстрые и эфективные графические приложения.

* Трудный для использования.
Поставляется с Linux, доступный посредством компиляции на большинстве других платформ.
gTk
Компилируемый язык, спроектированный для создания графических приложения.
* Создает быстрые и эфективные графические приложения.

* Трудный для использования.
Поставляется с Linux, доступный посредством компиляции на большинстве других платформ.
bash Командный интерпретатор может быть использован как язык.
* Выдающаяся модульность достигнута путем разделения на исполняемые файлы, piping и перенаправление.
* Контроль качества прост, если вы собираете программу из протестированных, хорошо известных программ.
* Безцикловая производительность так быстра, наск

psihodog

как будто китаец какой писал.
или переводил...

yolki

автору статьи незачёт. про паскаль ни слова

gopnik1994

Качество перевода просто поражает!
Сравните:
Мои друзья в одиночестве прогуливаются по его миру.
My friend walks this world alone.
По-моему переводчик даже не попытался понять смысл этого предложения...

psihodog

Качество перевода просто поражает!
да я говорю, либо китаец, либо автоматический переводчик.

Hastya

Что за олень такой писал? Смеялся до слез.
Оставить комментарий
Имя или ник:
Комментарий: