«Каждый язык был создан для определенной цели» - PullRequest
12 голосов
/ 28 июня 2009

Я читал пост Почему важен язык (почему я предпочитаю C #) из «Dot Net Мысли», и первый абзац статьи заканчивается следующим утверждением:

... каждый язык был создан для конкретного назначения.

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

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

Языки, такие как C#, VB, Haskell, Eiffel, Perl, Python, Java и т. Д .; процедурные языки, функциональные языки, объектно-ориентированные языки и т.д ...

Ответы [ 16 ]

20 голосов
/ 28 июня 2009

Только мои мнения:

C # - Microsoft хотела свою собственную Java

Haskell - исследование чисто функциональных языков

Perl - манипулирование текстом

Python - читаемый язык сценариев

процедурные языки - легко компилировать для архитектур в стиле фон Неймана

LISP и функциональные языки - помощь в разработке программного обеспечения снизу вверх

Рубин - OO-Perl

Lua - Встраиваемый язык сценариев

C - Переносной ассемблер

C ++ - Переносной ассемблер с объектами

Emacs Lisp - Схема или CL не имели достаточной производительности в то время

Pascal - Обучение программированию. По какой-то извращенной причине люди настаивали на том, чтобы использовать его и для производственного программного обеспечения.

Языки ассемблера - Написание машинного языка и разрешение адресов JMP вручную на бумаге утомительно. (Я пробовал)

Power shell - заменить сценарии BAT

PHP - для создания интернетов

Javascript - для создания интернетов 2.0

APL - чтобы сделать запутанные конкурсы кодирования устаревшими

14 голосов
/ 28 июня 2009

Brainfuck существует, чтобы показать, что вы можете написать компилятор для полного языка Тьюринга длиной до 200 байт:)

7 голосов
/ 28 июня 2009
  • Perl, потому что разработчики должны научиться ценить боль
  • C ++, потому что 5 человек на планете должны иметь возможность создавать операционные системы и встроенные системы и потому что D был слишком далеко в алфавите
  • C, потому что B нужен преемник
  • D, потому что С нужен был "настоящий" преемник
  • Python, потому что написание угловых скобок вредно для вашего здоровья
  • Java, потому что C ++ был слишком сложным, и Гослинг думал (ложно), что нам нужен язык без множественного наследования
  • VB, потому что дети Билла Гейтса нуждались в "наследовании VB"
  • C #, потому что Java начала воровать долю рынка у "Visual C ++"

Но я думаю, что этот список может быть спорным для некоторых ...;)

6 голосов
/ 28 июня 2009

PHP Изначально означало «Персональные домашние страницы», которые, по-моему, говорят обо всем.

APL Обозначает «Язык программирования» и был создан для «преподавания и анализа тем, связанных с применением компьютеров»

TCL Произносится "Tickle", "рожден от разочарования" Джоном Оустерхаутом и должен был быть встроен в другие приложения

Applescript Происходит от Hypertalk для приложения Appels HyperCard и, как и TCL, предназначен для встраивания в другие приложения для облегчения создания сценариев.

Вот и все. Моя история языка программирования не велика.

4 голосов
/ 16 июля 2009

Python: Язык программирования, который легко читать и использовать.

APL: Язык, который чрезвычайно хорош для решения математических задач.

J и K: Оба пытаются сделать APL пригодным для использования людьми с клавиатурой qwerty.

Java: Сделано как улучшенный C ++, с акцентом на использование единой кодовой базы.

C ++: Сделано лучше C с объектно-ориентированной ориентацией.

( Qt: Хотя это не язык программирования, он расширяет C ++, о котором стоит упомянуть. Qt - это GUI-инструментарий, средство для работы с базами данных и многое, многое другое. Он также кросс-платформенный .)

C: Лучше B (Серьезно)

Objective-C: Apple пытается улучшить C с помощью Object-Orientation.

Perl: Языковая сборка для обработки текста, но сейчас это широко используемый язык сценариев. Он также основан на идее «должно быть несколько способов сделать это».

Haskell: Экспериментируйте, чтобы создать полностью чистый функциональный язык с большим акцентом на функциональность.

Lisp: Первоначально названный обработчик списков. Сегодня это язык, который стал пионером многих методов, которыми обладают современные языки. Лисп - это стандартный, а не реальный язык. Иногда его называют «программируемый язык программирования».

Common Lisp: Распространенная реализация Lisp. Он имеет много функций, которые есть у современных языков, но также и много функций, которых нет у современных языков.

Схема: Создан, чтобы быть самым чистым языком из существующих. В основном это используется в качестве исследования.

JavaScript: Язык сценариев, основанный на некоторых вещах, которые могут быть Java. Помимо названия, это не имеет ничего общего с Java. Он используется почти исключительно как язык сценариев в Интернете. JavaScript основан на стандартном ECMAScript.

Lua: Язык сценариев с целью быть хорошим языком сценариев. Бесполезно практически для всего остального.

XML: Предназначен для создания единых форматов данных, прежде всего для обмена данными между платформами. С высокой степенью расширяемости, например, XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML практически неограниченные возможности.

CSS: Предназначен для стилизации документов HTML и XHTML.

Языки эзотерического программирования: Языки, которые запутаны и сложны в использовании.

Теперь я не могу назвать другие языки, надеюсь, это было полезно:)

4 голосов
/ 28 июня 2009

Я думаю JAVA - единственный язык, который рекламировался с его целью:

пиши один раз, беги куда угодно

3 голосов
/ 28 июня 2009

Не думаю, что это полезное утверждение. Существуют языки общего назначения, и некоторые языки, которые первоначально служили определенной цели, с тех пор стали довольно общими (например, Perl). Некоторые языки также воспринимаются как специальные, хотя они и были общими с самого начала (Лисп).

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

2 голосов
/ 28 июня 2009

Фортран - для максимально быстрого выполнения численных расчетов.

2 голосов
/ 28 июня 2009

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

Например, « Scala - это язык программирования общего назначения, разработанный для выражения общих шаблонов программирования в сжатой, элегантной и безопасной для типов форме». C и C ++ являются более распространенными языками общего назначения.

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

PHP, ASP, JSP, Ruby, Python: Веб-приложения ( Haskell также начинает рассматриваться здесь [спасибо Reddit])

Javascript: AJAX, манипуляции с DOM

BASIC, VB: Быстрое прототипирование, обучение

AWK: Обработка текста

C & co.: Система (ОС и т. Д.), Прикладное программное обеспечение, драйверы устройств, встроенные системы, серверные / клиентские приложения и т. Д. /

Цель C: iPhone

Lisp, пролог: AI

Erlang: Многопоточное, параллельное, отказоустойчивое программирование.

Scala, Haskell: Не удалось найти ни одной ясной вещи, они оба кажутся довольно общими (я не использую ни того, ни другого).

Паскаль: Обучение

Eiffel: Финансы, авиакосмическая промышленность, здравоохранение, игры и обучение (по-видимому).

R: Статистические вычисления и графика.

2 голосов
/ 28 июня 2009

Ну, самый очевидный из них - это КОБОЛ: Общий бизнес-ориентированный язык И вы можете увидеть это, прочитав исходный код тоже. Python имел в виду, в основном, несколько парадигм и ясную простоту (однако с этим всегда можно поспорить, я бы согласился).

...