Как стать автором
Обновить

Комментарии 22

По-моему в лингвистике тоже нету формального критерия для определения языка. Как начнут на форумах обсуждать, какждый раз флейм поднимается.
поправьте меня, но помоему отличие C от C++ - немалое... один - процедурный язык, второй всё таки уже в сторону ооп?
Так я о чем и говорю. Отличия ObjectPascal от паскаля примерно такие же.
К слову о Object Pascal и Delphi:
начиная с какой-то версии IDE язык так же называется Delphi.
Вроде да, надо уточнить.
С Delphi 7.
Pascal, Object Pascal, Delphi - это разные языки программирования.
А Kylix? ;-)
А php4 и php5? А PHP/FI и php3?
Вопрос именно в выработке критериев.
Kylix - среда разработки, язык Object Pascal.

php4 и php5 - практически одно и тоже. php/fi - даже не знаю что это...
Мне кажется Pascal и Delphi это не разные языки программирования, а один и тот же язык программирования, но на разных стадиях своего развития. Ведь человеческие языки тоже со временем меняются, развиваются. То же самое происходит и с языками программирования, но намного быстрее.

Т.е. Delphi это не диалект паскаля, это и есть тот самый паскаль, который эволюционировал.
Мы можем прослеживать историю развития языка Pascal в Delphi, но мы не можем сказать, что вот есть язык программирования Pascal, а есть Delphi. Или, что Delphi — диалект Pascal'я.
Мне кажется такая же ситуация с C и C++. не было бы первого, не было бы и второго. Т.е. C++ — эволюционировавший C и не более.

Незачем называть разные версии одного и того же языка разными языками, это один и тот же язык.

Тем не менее языки программирования искусственно разделяют, но для этого обычно приходиться забыть о существовании промежуточных версий, как быдто их и не существовало никогда. Вот есть C, а вот C++ или вот есть Pascal, а вот Delphi и баста. C++ и Delphi объектно-ориентированные языки, Pascal и C — процедурные. Ну и что, это что-то меняет?

Реально о возникновении новых диалектов языков программирования можно говорить тогда, когда происходит нечто совершенно изменяющее эти языки, но не заменяющее их. Например это C# и C++. C# это диалект C++, который возник в следствии переноса этого языка на совершенно новую платформу. Он уже очень сильно отличается от своего родителя, но перестаёт ли он быть при этом C++? Нет. Не перестаёт.
> Мне кажется Pascal и Delphi это не разные языки программирования, а один и тот же язык
> программирования, но на разных стадиях своего развития. Ведь человеческие языки тоже со временем
> меняются, развиваются. То же самое происходит и с языками программирования, но намного быстрее.

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

Вопрос в том, по каким признакам считать языки программирования разными языками или диалектами одного языка?
Вообще реальные языки тоже довольно искусственно разделяются.
Посмотрите, например, на Украинский и Русский. Это разные языки или Украинский является диалектом Русского? Об это немалое количество учёных уже зубы обломало, хотя и ежу понятно, что происходят они из общего корня, только пошли немного в разные стороны. Стали ли они при этом самостоятельными языками? Могут ли существовать самостоятельные языки в современном обществе, в котором активно идут процессы смешивания культур? На последний вопрос я и сам могу дать ответ — нет, не могут. Уже перемешиваются.
Посмотрим на другие забавные примеры. На Японский и Китайский языки. На сколько я знаю Японец не изучив устного Китайского с китайцем общаться не сможет. Очень уже разные языки, вроде бы. Более того у них и в пределах страны люди из разных провинций могут друг друга вообще не понять. Тем не менее они спокойно общаются в интернете. Как же так? А у них слова произносятся по разному, а вот писаться могут совершенно одинаково (это, кажется, если только одним определённым алфавитом писать из трёх Японских). Так Японский и Китайский это разные языки или это один и тот же язык? А что, опять же, делать с заимствованными словами, которых в том же Японском уже вагон и маленькая тележка?

Я это всё к тому, что делите как вам покажется правильным. Если считаете закономерным деление на процедурные и ОО языки, то Pascal и Delphi это разные языки. Хотя никто ведь не запрещает наваять на Delphi программу с процедурной структурой, а не объектной. ИМХО, но тут языки программирования даже более гибки, чем человеческие.
Вы все правильно пишите. Понятно, что можно классифицировать разными способами.

Просто хочется определиться, как разделять, пусть это будет не единственно правильной системой классификации, но чтобы она была единой на всем сайте. Составить что-то вроде руководства редакторов для энциклопедии языков программирования http://progopedia.ru/.

Какие-то критерии. Вроде "Если можно написать программу, которая будет работать и там, и там, то это не разные языки, а диалекты". Понятно, что такой критерий не подойдет, т.к. можно написать программу, которая будет работать сразу в нескольких языках (например, http://www.nyx.net/~gthompso/poly/polygl…), это просто как пример критерия.
Что для вас является критерием одинаковые языки или разные? Синтаксис что-ли?
В этом как раз вопрос :-)
Я вон приводил пример Японского и Китайского языка. Чёрт поймёшь один это язык или свора разных. К сожалению у меня нет таких критериев. Лингвисты какие-то критерии выделяют, определяют на их основе языковые группы, но когда дело доходит до чёткого разграничения языков они проигрывают вчистую хаосу. Невозможно чётко классифицировать хаос, на то он и хаос. Можно сказать вон там камни летают не по законам гравитации, а вон там вода горит, а сказать, что вот такие камни летают не так, а вот такая вода горит — нельзя, через пол часа камни растекутся, а вода замёрзнет. Вот каким языком является т.н. «обланский»? В нём же ж все слова исковерканы, другие окончания, и, даже, другие правила (да, они там есть). Так это исковерканный Русский или что? Или это диалект Русского, который никто не желает признавать?
С компьютерными языками ситуация похожая. Кто-то из кого-то эволюционировал, кто-то отпочковался и мутировал, кто-то появился сам, а потом смешался с другими и сильно всё перемешал.

Что сейчас можно выделить?
1. Процедурные языки.
2. Объектно-ориентированные языки.
3. Поддержку событийной модели.
4. Языки с автоматическим управлением памяти.
5. …и ещё свору признаков.

Если очень хочется классифицировать, то имеет смысл такие вот ярлычки навешивать, мол язык такой-то, версия такая-то, возможности такие-то
ИМХО, С# нельзя назвать диалектом С++, это абсолютно другой язык. "Managed C++ - это диалект С++, полученный при переходе на .NET" - так сказать, по-моему, можно. Аналогичное про С# - нет, это вообще другой язык.
вообще конечно интересный вопрос, говоря о менеджд сипипи,
можно и другие примеры привести - с++ с библиотеками от ХП
яваскрипт и яваскрипт с прототайп
Ваши примеры - это библиотеки. Managed C++ - это расширение именно языка внесением новых языковых конструкций. Во всяком случае, я это так понимаю. =)
Может вы и правы, в принципе ещё большая разница у Visual BASIC и Visual BASIC.NET. Вроде назвали бейсиком, а всю простоту растеряли ещё в планах.
Не знаком ни с тем, ни с другим, никак не могу прокомментировать. =)
Бэйсик был всегда именно простым языком программирования. Даже когда получил приставку Visual. Он использовался по принципу: сделать это быстро или никогда. Т.е. что-то сложное на нём сделать было невозможно, это сложное получится неповоротливым, корявым и прожорливым монстром, но, зато, мелкую утилитку, вспомогательную программку и подобное сделать было можно в кратчайшие сроки.

Что изменилось в Visual BASIC.NET?
А всё изменилось. Это C# в терминологии Visual BASIC. В него пришли почти все возможности .NET-платформы и перекочевали с косметическими изменениями все конструкции из C#. В принципе скомпилированный код при желании можно в обратную сторону собирать хоть в C#-код, хоть в Visual BASIC.NET, хоть ещё во что-то. Т.е. от BASIC'а там просто ничего не осталось, только внешняя штукатурка.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории