|
|
|
| Последний релиз Matlab'а оказался чувствителен к регистру в названиях функций, и я задался вопросом: а какой вообще смысл в чувствительности языка программирования к регистру в именах функций и переменных? Насколько я знаю, ни к чему, кроме раздражающих ошибок-опечаток, это не приводит. Нет, может быть, когда-то давно, когда компьютеры были большими, а их ресурсы — маленькими, тратить время компилятора на приведение всего текста к одному регистру было расточительно, но сейчас-то зачем это нужно? | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 11:44)
| | Сейчас появился UTF-8 с миллионами символов, с одной стороны он позволяет легко задействовать сотни языков, а с другой составить таблицы эквивалентности для безрегистрового сравнения довольно сложно. Людей-то наверное нет которые бы разбирались во всех алфавитах Земли. В MySQL например ситуация такая же... | |
|
|
|
|
|
|
|
для: cheops
(11.10.2011 в 12:36)
| | Но ведь в подавляющем большинстве случаев используется английская латиница, а часто кроме неё ничего другое и нельзя использовать, разве что в комментариях. | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 12:57)
| | Разбор кода штука не тривиальная... для неё часто ипользуются символьные библиотеки и языки... т.е. чтобы создать свой язык в короткие сроки зачастую приходится использовать сторонние библиотеки и разработки, которые стараются делаться максимально универсально. | |
|
|
|
|
|
|
|
для: cheops
(11.10.2011 в 13:54)
| | Хм. Прошу прощения, но причём тут создание новых языков? | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 17:49)
| | А вы с экспернтой базой данных MathLab как взаимодействуете? Ну в ней наверное мышью, а есть другая экспертная система в области математики, так и называется Mathematica, там к внутреннему языку программированию чаще прибегают. Внешне может показаться, что это программа, написанная на C++, на самом деле это символьная среда, которая позволяет на внутреннем языке (часто функциональном) написать самые сложные моменты этого пакета... потом можно переводить на C++ или предоставлять пользователю возможность писать собственные модули, но в основе всех этих экспертных систем лежит свой язык - довольно сложный, всегда функциональный и символьный... Язык время от времени нужно переделывать, т.е. новые языки тут очень даже причем :) | |
|
|
|
|
|
|
|
для: cheops
(13.10.2011 в 14:58)
| | Так и в Matlab то же самое. Есть визуальное моделирование, есть свой внутренний язык. Вот он-то неожиданно и стал чувствителен к регистру. | |
|
|
|
|
|
|
|
для: Киналь
(13.10.2011 в 15:32)
| | С98% вероятностью создатели решили ввести поддержку UTF-8 или воспользовались библиотекой, которая поддерживает UTF-8, но которая не поддерживает регистронезависимую сортировку. Сейчас же очень много автоматических систем, которые построят вам компилятор для любого языка - очень велик соблаз им воспользоваться - быстрее и ошибок меньше. | |
|
|
|
|
|
|
|
для: cheops
(13.10.2011 в 15:38)
| | Теперь понятно, спасибо) | |
|
|
|
|
|
|
|
для: Киналь
(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 в 15:12)
| | >Получается, что у вас нет общего стиля программирования и вы допускаете нормальным в коде использовать разные стили именования переменных
Я считаю нормальным опечататься=)
>А опечатки решаются выбором нормальной IDE, в которой есть автокомплит (к тому же незадействованные или неопределённые переменные обычно тоже подсвечиваются).
Иногда IDE выбирать не приходится) | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 17:52)
| | > Я считаю нормальным опечататься
Да, это нормально. Вам любезно выдадут ошибку, что вы опечатались (ошиблись — исправляйте). Что тогда вас не устраивает?
> Иногда IDE выбирать не приходится
Причины, по которым вы не можете использовать IDE, и являются вашей проблемой. Решайте их. Могу посоветовать NetBeans IDE. Он бесплатный. Мог бы посоветовать phpStorm, но не буду.
В итоге, ответ на главный вопрос темы: чтобы программисты придерживались правильного стиля программирования. | |
|
|
|
|
|
|
|
для: Долохов
(11.10.2011 в 18:21)
| | >Да, это нормально. Вам любезно выдадут ошибку, что вы опечатались (ошиблись — исправляйте). Что тогда вас не устраивает?
Да меня всё устраивает) Просто чувствительность к регистру, получается, это дополнительный источник ошибок (а именно опечаток). Да, их легко выловить, но зачем тратить на это время?
>Причины, по которым вы не можете использовать IDE, и являются вашей проблемой.
Спасибо:-D Как всё просто-то))) Но, боюсь, одним PHP языки программирования не ограничиваются. Например, приведённый в первом сообщении в пример Матлаб является, по сути, единственной IDE для m-языка. Или, например, скриптовый Lua, который встраивают в CAD'ы — я не могу выйти за пределы CAD'а, чтобы писать код где-то ещё. И вот если в этой единственной IDE нет автокомплита и прочих приятных плюшек, то остаётся надеяться только на себя.
>В итоге, ответ на главный вопрос темы: чтобы программисты придерживались правильного стиля программирования.
Не соглашусь и поспорю. Поддержание стиля программирования — это задача не языка. Это задача в лучшем случае IDE, а то и вовсе человека. К тому же единого понимание правильного стиля не существует в природе.
Это уж не говоря о том, что само понятие стиля применимо только к собственно программистам. А если мне, как инженеру, нужно решить одну данную конкретную (причём побочную) задачу с помощью данного конкретного языка программирования, то мне абсолютно до лампочки все эти стили. Я напишу десять строчек кода, отлажу и забуду этот ЯП. И чувствительность к регистру (если она существует только для поддержания стиля!) мне только помешает. | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 22:38)
| | те кто создавал язык, врядли учитывали только вас и 10 строчек кода. А если проект действительно большой и там можно будет писать от лампочки, и если проект перейдёт к другому программисту, он ослепнет от этой кучи дерьма, как и сам разработчик после длительного времени.
если я например напишу гдето каряво или даже случайно тыкну гдето лишний пробел при форматировании кода, мне потом это будет очень мулять и в конечном итоге, я всё равно его уберу :) | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 22:38)
| | > Да, их легко выловить, но зачем тратить на это время?
Чтобы код был легко поддерживаем будущими программистами. Тратить время на исправление своих ошибок — вещь полезная.
> Поддержание стиля программирования — это задача не языка
Одна из. Многие языки изначально проектируются так, чтобы искоренить некоторые «вредные» привычки. Скажем, множественное наследование, которое было в C++, не прижилось: слишком большая запутанность, зато появились примеси (даже в PHP); конструкция goto вовсе отсутствует во многих современных языках программирования; классы со статическими методами тоже стараются выкидывать из языков: пример тому Scala, где есть Class для описания класса объектов и есть Object для объекта-одиночки (singleton), что является своеобразной «правильной» заменой статическим методам.
Вы можете не соглашаться, но я лишь отвечаю на ваш вопрос «зачем так сделано?».
> А если мне, как инженеру ... напишу десять строчек кода
Написание 10-ти строчек кода несопоставимо с написанием десятков тысяч строк кода и дальнейшей поддержкой такого проекта. А касается Matlab, то тут, конечно, можно было бы сделать некоторое исключение, но по всей видимости авторы так не считают. | |
|
|
|
|
|
|
|
для: Долохов
(12.10.2011 в 01:08)
| | >Написание 10-ти строчек кода несопоставимо с написанием десятков тысяч строк кода и дальнейшей поддержкой такого проекта.
Безусловно. Я прекрасно понимаю преимущества единого стиля при совместной работе многих людей. Как говорил один мой школьный учитель, «пусть безобразно, но однообразно»=)
Не согласен я не с вашей аргументацией, а с тем, что именно она лежит в основе чувствительности к регистру.
> те кто создавал язык, врядли учитывали только вас и 10 строчек кода.
Ясное дело. Но тут получается, как если бы для замены лампочки требовался допуск по электробезопасности) | |
|
|
|
|
|
|
|
для: Киналь
(11.10.2011 в 11:44)
| | Чувствительность языка программирования к регистру - зачем?
Я слышал такую легенду - мол, Бьерну Страустрапу нравятся однобуквенные переменные - их в этом случае можно сделать 52.
P.S. Не знаю, правда ли это, больше на чушь похоже. | |
|
|
|