Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чувствительность языка программирования к регистру - зачем?
 
 автор: Киналь   (11.10.2011 в 11:44)   письмо автору
 
 

Последний релиз Matlab'а оказался чувствителен к регистру в названиях функций, и я задался вопросом: а какой вообще смысл в чувствительности языка программирования к регистру в именах функций и переменных? Насколько я знаю, ни к чему, кроме раздражающих ошибок-опечаток, это не приводит. Нет, может быть, когда-то давно, когда компьютеры были большими, а их ресурсы — маленькими, тратить время компилятора на приведение всего текста к одному регистру было расточительно, но сейчас-то зачем это нужно?

  Ответить  
 
 автор: cheops   (11.10.2011 в 12:36)   письмо автору
 
   для: Киналь   (11.10.2011 в 11:44)
 

Сейчас появился UTF-8 с миллионами символов, с одной стороны он позволяет легко задействовать сотни языков, а с другой составить таблицы эквивалентности для безрегистрового сравнения довольно сложно. Людей-то наверное нет которые бы разбирались во всех алфавитах Земли. В MySQL например ситуация такая же...

  Ответить  
 
 автор: Киналь   (11.10.2011 в 12:57)   письмо автору
 
   для: cheops   (11.10.2011 в 12:36)
 

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

  Ответить  
 
 автор: cheops   (11.10.2011 в 13:54)   письмо автору
 
   для: Киналь   (11.10.2011 в 12:57)
 

Разбор кода штука не тривиальная... для неё часто ипользуются символьные библиотеки и языки... т.е. чтобы создать свой язык в короткие сроки зачастую приходится использовать сторонние библиотеки и разработки, которые стараются делаться максимально универсально.

  Ответить  
 
 автор: Киналь   (11.10.2011 в 17:49)   письмо автору
 
   для: cheops   (11.10.2011 в 13:54)
 

Хм. Прошу прощения, но причём тут создание новых языков?

  Ответить  
 
 автор: cheops   (13.10.2011 в 14:58)   письмо автору
 
   для: Киналь   (11.10.2011 в 17:49)
 

А вы с экспернтой базой данных MathLab как взаимодействуете? Ну в ней наверное мышью, а есть другая экспертная система в области математики, так и называется Mathematica, там к внутреннему языку программированию чаще прибегают. Внешне может показаться, что это программа, написанная на C++, на самом деле это символьная среда, которая позволяет на внутреннем языке (часто функциональном) написать самые сложные моменты этого пакета... потом можно переводить на C++ или предоставлять пользователю возможность писать собственные модули, но в основе всех этих экспертных систем лежит свой язык - довольно сложный, всегда функциональный и символьный... Язык время от времени нужно переделывать, т.е. новые языки тут очень даже причем :)

  Ответить  
 
 автор: Киналь   (13.10.2011 в 15:32)   письмо автору
 
   для: cheops   (13.10.2011 в 14:58)
 

Так и в Matlab то же самое. Есть визуальное моделирование, есть свой внутренний язык. Вот он-то неожиданно и стал чувствителен к регистру.

  Ответить  
 
 автор: cheops   (13.10.2011 в 15:38)   письмо автору
 
   для: Киналь   (13.10.2011 в 15:32)
 

С98% вероятностью создатели решили ввести поддержку UTF-8 или воспользовались библиотекой, которая поддерживает UTF-8, но которая не поддерживает регистронезависимую сортировку. Сейчас же очень много автоматических систем, которые построят вам компилятор для любого языка - очень велик соблаз им воспользоваться - быстрее и ошибок меньше.

  Ответить  
 
 автор: Киналь   (14.10.2011 в 17:19)   письмо автору
 
   для: cheops   (13.10.2011 в 15:38)
 

Теперь понятно, спасибо)

  Ответить  
 
 автор: Долохов   (11.10.2011 в 15:12)   письмо автору
 
   для: Киналь   (11.10.2011 в 11:44)
 

> Насколько я знаю, ни к чему, кроме раздражающих ошибок-опечаток, это не приводит.

Получается, что у вас нет общего стиля программирования и вы допускаете нормальным в коде использовать разные стили именования переменных (к примеру, bookRepository, BookRepository — lowerCamelCase и UpperCamelCase соответственно). Как раз такие вольности вызывают у тех, кто берётся дорабатывать ваш код, достаточно много раздражения, хотя бы потому, что разными стилями обычно именуют разные сущности: переменные, классы, методы. Вызывает путаницу.

Посмотрите пример coding style'а ZF: http://framework.zend.com/manual/ru/coding-standard.naming-conventions.html — это накладывает дополнительные ограничения, сверх того что допускает синтаксис (по определению). Как вы думаете зачем?

А опечатки решаются выбором нормальной IDE, в которой есть автокомплит (к тому же незадействованные или неопределённые переменные обычно тоже подсвечиваются).

  Ответить  
 
 автор: Киналь   (11.10.2011 в 17:52)   письмо автору
 
   для: Долохов   (11.10.2011 в 15:12)
 

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

Я считаю нормальным опечататься=)


>А опечатки решаются выбором нормальной IDE, в которой есть автокомплит (к тому же незадействованные или неопределённые переменные обычно тоже подсвечиваются).

Иногда IDE выбирать не приходится)

  Ответить  
 
 автор: Долохов   (11.10.2011 в 18:21)   письмо автору
 
   для: Киналь   (11.10.2011 в 17:52)
 

> Я считаю нормальным опечататься

Да, это нормально. Вам любезно выдадут ошибку, что вы опечатались (ошиблись — исправляйте). Что тогда вас не устраивает?

> Иногда IDE выбирать не приходится

Причины, по которым вы не можете использовать IDE, и являются вашей проблемой. Решайте их. Могу посоветовать NetBeans IDE. Он бесплатный. Мог бы посоветовать phpStorm, но не буду.

В итоге, ответ на главный вопрос темы: чтобы программисты придерживались правильного стиля программирования.

  Ответить  
 
 автор: Киналь   (11.10.2011 в 22:38)   письмо автору
 
   для: Долохов   (11.10.2011 в 18:21)
 

>Да, это нормально. Вам любезно выдадут ошибку, что вы опечатались (ошиблись — исправляйте). Что тогда вас не устраивает?

Да меня всё устраивает) Просто чувствительность к регистру, получается, это дополнительный источник ошибок (а именно опечаток). Да, их легко выловить, но зачем тратить на это время?

>Причины, по которым вы не можете использовать IDE, и являются вашей проблемой.
Спасибо:-D Как всё просто-то))) Но, боюсь, одним PHP языки программирования не ограничиваются. Например, приведённый в первом сообщении в пример Матлаб является, по сути, единственной IDE для m-языка. Или, например, скриптовый Lua, который встраивают в CAD'ы — я не могу выйти за пределы CAD'а, чтобы писать код где-то ещё. И вот если в этой единственной IDE нет автокомплита и прочих приятных плюшек, то остаётся надеяться только на себя.

>В итоге, ответ на главный вопрос темы: чтобы программисты придерживались правильного стиля программирования.

Не соглашусь и поспорю. Поддержание стиля программирования — это задача не языка. Это задача в лучшем случае IDE, а то и вовсе человека. К тому же единого понимание правильного стиля не существует в природе.
Это уж не говоря о том, что само понятие стиля применимо только к собственно программистам. А если мне, как инженеру, нужно решить одну данную конкретную (причём побочную) задачу с помощью данного конкретного языка программирования, то мне абсолютно до лампочки все эти стили. Я напишу десять строчек кода, отлажу и забуду этот ЯП. И чувствительность к регистру (если она существует только для поддержания стиля!) мне только помешает.

  Ответить  
 
 автор: sl1p   (12.10.2011 в 00:59)   письмо автору
 
   для: Киналь   (11.10.2011 в 22:38)
 

те кто создавал язык, врядли учитывали только вас и 10 строчек кода. А если проект действительно большой и там можно будет писать от лампочки, и если проект перейдёт к другому программисту, он ослепнет от этой кучи дерьма, как и сам разработчик после длительного времени.

если я например напишу гдето каряво или даже случайно тыкну гдето лишний пробел при форматировании кода, мне потом это будет очень мулять и в конечном итоге, я всё равно его уберу :)

  Ответить  
 
 автор: Долохов   (12.10.2011 в 01:08)   письмо автору
 
   для: Киналь   (11.10.2011 в 22:38)
 

> Да, их легко выловить, но зачем тратить на это время?

Чтобы код был легко поддерживаем будущими программистами. Тратить время на исправление своих ошибок — вещь полезная.

> Поддержание стиля программирования — это задача не языка

Одна из. Многие языки изначально проектируются так, чтобы искоренить некоторые «вредные» привычки. Скажем, множественное наследование, которое было в C++, не прижилось: слишком большая запутанность, зато появились примеси (даже в PHP); конструкция goto вовсе отсутствует во многих современных языках программирования; классы со статическими методами тоже стараются выкидывать из языков: пример тому Scala, где есть Class для описания класса объектов и есть Object для объекта-одиночки (singleton), что является своеобразной «правильной» заменой статическим методам.

Вы можете не соглашаться, но я лишь отвечаю на ваш вопрос «зачем так сделано?».

> А если мне, как инженеру ... напишу десять строчек кода

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

  Ответить  
 
 автор: Киналь   (12.10.2011 в 15:41)   письмо автору
 
   для: Долохов   (12.10.2011 в 01:08)
 

>Написание 10-ти строчек кода несопоставимо с написанием десятков тысяч строк кода и дальнейшей поддержкой такого проекта.

Безусловно. Я прекрасно понимаю преимущества единого стиля при совместной работе многих людей. Как говорил один мой школьный учитель, «пусть безобразно, но однообразно»=)

Не согласен я не с вашей аргументацией, а с тем, что именно она лежит в основе чувствительности к регистру.

> те кто создавал язык, врядли учитывали только вас и 10 строчек кода.
Ясное дело. Но тут получается, как если бы для замены лампочки требовался допуск по электробезопасности)

  Ответить  
 
 автор: Commander   (12.10.2011 в 11:19)   письмо автору
 
   для: Киналь   (11.10.2011 в 11:44)
 

Чувствительность языка программирования к регистру - зачем?

Я слышал такую легенду - мол, Бьерну Страустрапу нравятся однобуквенные переменные - их в этом случае можно сделать 52.

P.S. Не знаю, правда ли это, больше на чушь похоже.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования