Плохие программисты не зависят от языка
Действительно плохой программист может написать плохой код практически на любом языке.
Только мое мнение:
C # - Microsoft хотела собственную Java
Haskell - исследование чисто функциональных языков
Perl - манипуляции с текстом
Python - читаемый язык сценариев
Процедурные языки - простота компиляции для архитектур в стиле фон Неймана
LISP и функциональные языки - помощь в разработке программного обеспечения снизу вверх
Ruby - OO-Perl
Lua - Встраиваемый язык сценариев
C - Переносимый ассемблер
C ++ - Переносимый ассемблер с объектами
Emacs Lisp - Схемы или CL недостаточно производительность в то время
Паскаль - Обучение программированию. По какой-то извращенной причине люди настаивали на использовании его и для производственного ПО.
Ассемблерные языки - Написание машинного языка и разрешение адресов JMP вручную на бумаге утомительно. (Я пробовал)
Power shell - заменить скрипт BAT
PHP - для создания интернета
Javascript - для создания интернета 2.0
APL - сделать конкурсы запутанного кодирования устаревшими
Пользуясь случаем, хочу упомянуть Пита , чей единственный принцип дизайна: Программный код будет в форме абстрактного искусства. И да, это настоящий язык в том смысле, что для него есть интерпретаторы и несколько рабочих программ. Вот тот, который генерирует простые числа:
(источник: dangerousmouse.net )
Однажды я потратил, наверное, полчаса, пытаясь нарисовать изящную маленькую программу, которая могла бы определить, является ли число четным или нечетное.
Perl - связующий язык для системных администраторов, который теперь превратился в язык программирования общего назначения.
ИНТЕРКАЛ : Чтобы повысить уровень интеллекта разработчиков, сделав их код настолько запутанным, что никто другой его не поймет. =:)
Я думаю, лучше сказать, что «каждый язык лучше всего подходит для определенной цели». Не каждый язык был создан с определенной целью, но обычно есть несколько областей, в которых он выделяется.
Например, « Scala - это язык программирования общего назначения, предназначенный для краткого, элегантного и типобезопасного выражения общих шаблонов программирования». C и C ++ - более распространенные языки общего назначения.
А теперь список языков и то, для чего они фактически используются, а не только то, что о них думают:
PHP, ASP, JSP, Ruby, Python: Веб-приложения ( Haskell тоже начинает рассматриваться [спасибо Reddit])
Javascript: AJAX, манипуляции с DOM
BASIC, VB: Быстрое прототипирование, обучение
AWK:
Fortran - для максимально быстрого выполнения численных расчетов.
Ну, самый очевидный - COBOL: Общий деловой язык И вы можете увидеть это, также прочитав исходный код. Python имел в виду в основном множественные парадигмы и ясную простоту (однако с этим всегда можно поспорить, я согласен).
Я не думаю, что это полезное утверждение. Существуют языки общего назначения, и некоторые языки, которые изначально служили определенной цели, с тех пор превратились в довольно общие (например, Perl). Некоторые языки также воспринимаются как языки специального назначения, хотя они были общими с самого начала (Лисп).
Эта статья также показывает действительно узкое представление о ландшафте языков программирования.
PHP Первоначально обозначал «Персональные домашние страницы», что, как я думаю, говорит само за себя.
APL Расшифровывается как «Язык программирования» и был создан для « разработан для встраивания в другие приложения для облегчения написания сценариев.
Вот и все. Моя история языка программирования невелика.
разработан для встраивания в другие приложения для облегчения написания сценариев.Вот и все. Моя история языка программирования невелика.
Но я предполагаю, что этот список может будет спорным для некоторых ...;)
Brainfuck существует, чтобы показать, что вы можете написать компилятор для полного языка Тьюринга менее чем за 200 байт :)
J особенно силен в математический, статистический и логический анализ данных. Это мощный инструмент для создания нового и лучшего решения старых проблем и даже лучше находить решения там, где проблема уже не в порядке понял.
I think JAVA is the only language that was advertised with its purpose:
Ada - Разработан Министерством обороны для критически важных для безопасности встроенных систем / систем реального времени.
Я не думаю, что то, что вы хотите сделать, возможно.
Редактировать:
Моя предыдущая версия была ошибочной. Это действительно работает:
scala> def z(f: Int => Int, g: Double => Double) = w(f, g)
z: (f: (Int) => Int,g: (Double) => Double)Unit
scala> z(f, f)
Но, конечно, это в значительной степени то, что у вас есть.
Я не думаю, что это вообще возможно, потому что параметры типа существуют только во время компиляции. Во время выполнения такого нет. Поэтому для меня даже не имеет смысла передавать параметризованную функцию вместо функции с параметрами типа, определенными Scala.
И нет, в Scala нет макросистемы.
язык. Он также основан на идее «должно быть несколько способов сделать это».Haskell: Эксперимент по созданию полностью чистого функционального языка с большим упором на функциональность.
Lisp: Первоначально назывался List Processor. Сегодня это язык, который впервые применил многие методы, которые есть в современных языках. Лисп - это стандартный, а не реальный язык. Иногда его называют «программируемым языком программирования».
Common Lisp: Распространенная реализация Lisp. Он имеет много функций, которые есть в современных языках, но также и многие функции, которых нет в современных языках.
Схема: Создан как самый чистый язык из существующих. В основном он используется для исследований.
JavaScript: Язык сценариев, основанный на некоторых вещах, которые могут быть Java. Помимо названия, это не имеет ничего общего с Java. Он используется почти исключительно как язык сценариев в сети. JavaScript основан на стандартном ECMAScript.
Lua: Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.
XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
это не имеет ничего общего с Java. Он используется почти исключительно как язык сценариев в сети. JavaScript основан на стандартном ECMAScript.Lua: Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.
XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
это не имеет ничего общего с Java. Он используется почти исключительно как язык сценариев в сети. JavaScript основан на стандартном ECMAScript.Lua: Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.
XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
s используется почти исключительно как язык сценариев в сети. JavaScript основан на стандартном ECMAScript.Lua: Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.
XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
s используется почти исключительно как язык сценариев в сети. JavaScript основан на стандартном ECMAScript.Lua: Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.
XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
Язык сценариев, предназначенный для создания хорошего языка сценариев. Бесполезен практически для всего остального.XML: Разработан как способ создания унифицированных форматов данных, в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.
CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)
в первую очередь для обмена данными между платформами. Сильно расширяемый, например XHTML (веб-страница) может встраивать документы SVG (векторная графика) и MathML (угадайте, что), предоставляя XHTML почти безграничные возможности.CSS: Разработан для стилизации документов HTML и XHTML.
Эзотерические языки программирования: Языки, разработанные так, чтобы сбивать с толку и которые трудно использовать.
Теперь я не могу назвать другие языки, я надеюсь, что это было полезно :)