Что такое “реальный” язык программирования? [закрытый]

68
задан skaffman 23 February 2012 в 21:26
поделиться

15 ответов

Сначала нам нужно узнать, что такое язык программирования. Как минимум, язык программирования - это то, что считывается компьютером и предписывает ему выполнять определенные операции. Многие люди также ожидают, что язык программирования общего назначения будет полным по Тьюрингу . Однако могут быть ситуации, когда предметно-ориентированный язык не является полным по Тьюрингу, но по-прежнему является полезным языком программирования для этой конкретной предметной области. Языки программирования можно компилировать или интерпретировать, и они могут работать на многих платформах или только на одной конкретной. Для разных нужд требуются разные языки программирования. Очевидно, что PHP - это язык программирования.

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

PHP - это прагматичный язык. Он был создан для того, чтобы иметь возможность быстро создавать веб-страницы (изначально это название расшифровывалось как Personal Home Pages), а язык был расширен по мере необходимости.Поскольку при его создании не было теоретических основ или строгих принципов проектирования (нет даже формальной спецификации языка), он менее чист, чем многие другие более современные языки. Такие функции, как правильная обработка иностранных символов / символов Unicode, очевидно, добавляются позже и не полностью интегрированы с остальной частью языка. Эта неопрятность и отсутствие теоретической строгости заставляет многих людей (особенно академиков) не любить язык, и это может быть одной из причин, по которой ваш учитель не считает PHP «настоящим» языком.

Однако PHP хорош в том, для чего он был разработан, и многие сайты используют его, даже очень большие сайты, такие как Facebook, Yahoo! и Википедия.

101
ответ дан 24 November 2019 в 13:59
поделиться

Просто для того, чтобы поставить аргумент в другом направлении для всех остальных ...

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

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

-1
ответ дан 24 November 2019 в 13:59
поделиться

Это просто одна из тех глупых вещей, которые люди повторяют, чтобы казаться умнее и заткнуть вас, это карго-культ самодовольства. Если вы попросите его объяснить, он либо притворится, что это была шутка (скажите ему "хорошая попытка"), либо будет жалко пытаться защитить свою позицию (скажите ему "о, я вижу" и медленно отступите)

.
-1
ответ дан 24 November 2019 в 13:59
поделиться

Facebook, Digg, Википедия, Yahoo. Думаю, это не настоящие сайты.

9
ответ дан 24 November 2019 в 13:59
поделиться

Конечно, PHP - это язык программирования. Вероятно, он имел в виду, что это не «настоящий» язык программирования в том же смысле, что «настоящие» мужчины не едят пирог с заварным кремом .

34
ответ дан 24 November 2019 в 13:59
поделиться

define:язык программирования

Согласно этому, кажется, что PHP - это язык программирования. Является ли он настоящим языком программирования - вопрос совершенно субъективный. Является ли он хорошим языком - тоже субъективно. Конечно, чаще всего он не используется в качестве прикладного языка программирования, но его можно использовать для разработки shell-приложений через CLI. Я никогда этого не делал, поэтому мое понимание этого отрывочно, но это возможно.

Итак, является ли PHP "скриптовым" (я так понимаю, что это язык сценариев), и работает ли он на всех платформах? Судите сами:

PHP: Hypertext Preprocessor - это широко используемый язык сценариев общего назначения, который изначально был разработан для веб-разработки с целью создания динамических веб-страниц. Для этого код PHP встраивается в исходный документ HTML и интерпретируется веб-сервером с процессорным модулем PHP, который генерирует документ веб-страницы. Как язык программирования общего назначения, код PHP обрабатывается приложением-интерпретатором в режиме командной строки, выполняющим необходимые операции в операционной системе и выдающим вывод программы на стандартный канал вывода. Он также может функционировать как графическое приложение. PHP доступен как процессор для большинства современных веб-серверов и как отдельный интерпретатор для большинства операционных систем и вычислительных платформ.

Источник: http://en.wikipedia.org/wiki/PHP

На всех ли платформах работает Java? Нет. Только на тех, для которых существует JVM.

Наконец, нужно ли компилировать язык? Многие из них не компилируются. Даже Java не компилируется так же, как C или C++. И тогда вам также нужно взглянуть на Perl, Python и т.д.

Лично я считаю PHP настоящим языком программирования. Я начинал с него и легко перешел на C/C++ и Java. Я бы не стал использовать его для тех же целей, что и Java, и его дизайн отличается от Java, но это мало что значит. Для меня он был легче в изучении, чем Java.

21
ответ дан 24 November 2019 в 13:59
поделиться

Вы правы. Эти причины слишком слабые. На самом деле вам даже не нужен Apache для запуска PHP.
И первые две причины просто повторяются, потому что на самом деле это только одна причина. Итак, можно сказать, что «PHP не является компилируемым языком», но это не значит, что это «не настоящий язык программирования». Программы Java тоже не компилируются в машинные коды - ну, это тоже не настоящий язык. q.e.d.

3
ответ дан 24 November 2019 в 13:59
поделиться

Безусловно, PHP - это язык программирования. Это даже полный по Тьюрингу язык, что в основном означает, что его «мощность» равна «мощности» других языков программирования. Он «настоящий» как в строгом (он действительно существует), так и в метафорическом смысле (есть люди, которые зарабатывают себе на жизнь с помощью PHP). Так что кажется, что ваш учитель как-то пристрастен.

Однако я вижу некоторую точку в вашем отношении к учителю. PHP и Java происходят из совершенно разных источников. Несмотря на свою полезность, PHP очень хаотичен. Сравните стандартную библиотеку классов в Java со стандартной библиотекой функций PHP - последняя выглядит как огромный набор не связанных между собой инструментов. Более того, в сети есть множество руководств по PHP, которые, вежливо говоря, посредственного качества. Поскольку вы учитесь программировать, лучше всего использовать хорошие инструменты, а Java - гораздо лучший инструмент для изучения программирования, чем PHP.

PS. Google для "PHP отстой", чтобы получить массу информации, почему PHP не лучший инструмент в мире.

0
ответ дан 24 November 2019 в 13:59
поделиться

Когда я изучал PHP, я тоже не верил, что PHP - это язык программирования.

Не знаю точно, где я подхватил эту идею, но где-то я узнал, что скриптовый язык не является языком программирования. Поэтому я применил эту мысль к другим языкам, таким как JavaScript и SQL.

С тех пор я изменил свое мнение и теперь понимаю, что существует спектр языков, который идет от высокого уровня (например, PHP, Javascript) до низкого уровня (например, c, ассемблер) с такими вещами, как C# и Java, где-то между ними.

5
ответ дан 24 November 2019 в 13:59
поделиться

Извините за OT, но с этой картинкой так много неправильного! Я просто надеюсь, что ты выйдешь из этого класса, этого факультета и школы так быстро, как только сможешь. Я обещаю, что к февралю у вас не будет ничего и близкого к семестру знаний. И, если вы похожи на меня, вы будете проводить часы в классе в разочаровании, негодовании и гневе из-за того, что ваш учитель тратит на вас зря.

Эта женщина не учитель! Десятичные числа в двоичные как введение в кодирование? Ужасно!

Это Университет (ха!) Феникса?

3
ответ дан 24 November 2019 в 13:59
поделиться

Не существует таких вещей, как настоящий язык программирования, реальный человек или реальный мир. Вы программист, если умеете программировать на PHP.

1
ответ дан 24 November 2019 в 13:59
поделиться

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

Последняя причина, по которой он работает не на всех платформах, просто сбивает с толку. Похоже, он пытается рекламировать переносимость Java, а PHP просто не является Java. Однако Java работает на одной очень специфической платформе: JVM. Эта платформа, в свою очередь, работает на многих других платформах и, таким образом, обеспечивает переносимость Java, но это не совсем то же самое, что традиционное использование «переносимости». Например, C является портативным и работает на всем, от PDP-11 до новейших встраиваемых устройств.

Однако C делает это, определяя правила своей собственной абстрактной платформы, и компиляторы преобразуют код C в сборку в соответствии с этими правилами.Вот чем переносимость Java похожа на C: они оба определяют правила, которые переводятся в инструкции для конкретной конкретной машины (процессора); разница в том, когда это происходит.

Все проблемы в информатике могут быть решены с помощью другого уровня косвенного обращения.
- Дэвид Уиллер

В действительности даже ассемблер или «машинный код» интерпретируется процессором в его собственных действиях. (У меня нет хорошего источника для этого, но я помню, что он слегка освещен в Ускоренный курс современного оборудования , что в любом случае является хорошей презентацией.) По мере того, как скорость процессора увеличивается, мы почти не замечаем на наших недостаточно используемых полях, находится ли данная программа в ассемблере или выполняется через интерпретатор, но именно здесь вступает в игру определение «настоящего языка программирования».

Единственный разумный способ определить «настоящий язык программирования» - это «язык, позволяющий выполнять реальную работу», но это также сильно мешает определению «настоящего». (Тем не менее, он устанавливает различие с эзотерическими языками программирования , потому что никто не делает реальной работы, например, в Malbolge , для любого определения «настоящего» вы можете получить десять человек необходимо согласовать.) И, по сравнению с сегодняшним днем, ваш выбор языка программирования был гораздо более ограничен их стратегией реализации и накладными расходами (например, интерпретатором времени выполнения) в прошлом. Однако даже сегодня некоторые языки более «настоящие», чем другие , определенные приложения и ожидаемые нагрузки, все зависит от ваших требований.

Похоже, ваш учитель испытал PHP только с помощью игрушечных веб-приложений (и, возможно, использование слова «приложение» является натяжкой для того, что он видел). Игрушечные программы - не настоящая работа. У PHP определенно много проблем, но я не могу сказать, что это не настоящий язык программирования, разве что в шутку.

Отладка ожидается с отвращением, выполняется с неохотой и вечно хвастается.
- Дэн Камински

Существует определенная ассоциация «реального» с «трудно сделать» (относящаяся к «настоящей работе»), и ваш учитель, возможно, выражал это чувство. Мне всегда казалось, что это форма байкхеддинга (есть более подходящий термин для этого, но я не могу вспомнить его), когда оценка ценности вещи связана с усилиями, которые она прилагает. пришлось положить в него (например, навес для велосипедов важнее, когда я предоставил данные о цвете крыши и о том, должна ли она иметь знак). Мы по своей сути ценим наши собственные усилия больше, чем усилия других - просто потому, что мы знакомы с ними, хотя бы по какой-либо другой причине - даже если это не имеет смысла. PHP, несмотря на его недостатки, действительно упрощает некоторые вещи, и поэтому он и программы, написанные на нем, могут восприниматься как менее стоящие.

10
ответ дан 24 November 2019 в 13:59
поделиться

«Итак, в« определении языка программирования », что делает PHP не« правильным »?»

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

Это потому, что всегда были языки, которые лучше подходят (за одним исключением: для чего был создан PHP - веб-программирование). PHP - это «еще один язык, даже не обладающий лучшими конструктивными особенностями по сравнению с существующими». Некоторые примеры проблем при сравнении с другими языками включают: отсутствие стабильных и переносимых наборов инструментов GUI (по крайней мере, в Windows / MacOS), отсутствие потоковой передачи, недостаточная скорость и т. Д.

В конечном счете, люди, которые собираются писать общие приложения на PHP, - это в основном люди, которые хорошо знают PHP только как язык программирования. Потому что нет причин писать новое приложение с нуля на PHP: вы обнаружите, что большинство опытных или талантливых программистов никогда бы не подумали о том, чтобы сделать это.

0
ответ дан 24 November 2019 в 13:59
поделиться

Он не компилируется

PHP может быть скомпилирован (например, через HHVM ).

Это сценарий

Это просто еще один способ сказать, что PHP не компилируется.

Он работает не на всех платформах

И Java тоже.

Похоже, у вас там очень плохой учитель.

59
ответ дан 24 November 2019 в 13:59
поделиться

ОБНОВЛЕНИЕ: внимательно прочтите перед голосованием, это не мой подход к PHP / Java, Я пытаюсь понять, что его учитель видит в PHP / Java. Спасибо.

Я думаю, что подумал ваш учитель: PHP - это язык, который заблокирован внутри веб-сервера и в основном используется для создания веб-страниц.

Java, с другой стороны, является языком общего назначения , который также используется для веб-страниц, но используется в других отраслях, таких как микроволновые печи и автомобили, вы можете писать настольные приложения на Java и т. Д.

Имея это в виду понятно, почему ваш преподаватель сказал: «PHP - это не настоящий язык программирования!»

Я не предвзят, мне не нравятся оба, Java и PHP :) ... но я должен использовать их оба

1
ответ дан 24 November 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: