Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизЯзык программирования, где нет типов. Ваше отношение? Найти похожие ветки
← →
12 © (2010-04-13 09:46) [0]аля PHP, VB
← →
crux (2010-04-13 09:54) [1]>Язык программирования, где нет типов.
Стоит переформулировать вопрос - статическая типизация vs динамическая типизация. Много раз обсуждалось, у каждой стороны есть свои достоинства и недостатки.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.5966&rep=rep1&type=pdf
← →
TUser © (2010-04-13 09:54) [2]Нестрогая типизация - хорошо для небольших программ, скртипты там всякие. Список языков какой-то странный, писал бы уж - Perl, JavaScript :-)
← →
test © (2010-04-13 09:55) [3]VB типы найдены и простейшие, и сложные, и классы. Изначально типы тоже вполне были. Каких типов не хватает?
← →
12 © (2010-04-13 10:04) [4]
> Каких типов не хватает?
да просто бесит, когда читаешь код - опс, еще одна переменная всплыла
причем, переменная = другая переменная - третья переменная
Назначение, тип, и вообще что от нее ожидать - хз..
PHP учу..
← →
brother © (2010-04-13 10:10) [5]1.
> Назначение,
это в комментарии должно быть (если логика сложная)
2.
> и вообще что от нее ожидать
см 1.
а
> где нет типов
это, имхо, хорошо, за ними следить не надо ;)
PHP +5!
← →
TUser © (2010-04-13 10:12) [6]ааа, ну пиши с юмором
if (gettype($a)=="integer" && gettype ($b)=="integer")
{
$c=$a+$b;
$c = (integer) $c;
}
← →
tesseract © (2010-04-13 10:13) [7]
> Назначение, тип, и вообще что от нее ожидать - хз..
Это уже не язык - это уже ручки писателя. Если есть динамическая типизация - есть и динамическая информация о типе. Удобно например проверять что в переменной записано.
← →
TUser © (2010-04-13 10:14) [8]else
{
die ("invalid script, call the webmaster");
}
← →
Mystic © (2010-04-13 10:27) [9]Нормально отношусь. То, что переменные всплывают, так это в любом языке такого эффекта можно добиться. Типы тут не причем :) Например,
uses SysUtils;
...
DecimalSeparator := "."; // Всплыла переменная
← →
test © (2010-04-13 10:28) [10]12 © (13.04.10 10:04) [4]
Это уже кто как пишет, можно ясно красиво на PHP писать, можно крайне запутано и коряво на Delphi, язык тут ни причем.
← →
sniknik © (2010-04-13 11:12) [11]вообще из-за необязательности объявления переменных у наших php-стов больше всего ошибок, допустят опечатку, она засчитается новой переменной, не инициализированной и результаты "поплыли". (ну, при взгляде со стороны так получается, но если спросить их самих так это замечательная возможность, и типа так и правильно)
необязательность это как понимаю следствие отсутствия типов, и ненужности предварительного указания какого типа переменная.
з.ы. наши php-сты не пишут сайты, они пишут взаимодействие с клиентами, т.что ошибки получаются не явные в отображении, они "всплывают" уже потом, и уже в клиенте.
← →
tesseract © (2010-04-13 11:20) [12]
> вообще из-за необязательности объявления переменных
В PHP вроде можно Strict включить ? Очень полезная вещь.
← →
KSergey © (2010-04-13 11:21) [13]если не вру, в VBScript есть спецовая деректива, отключающая это безобразие.
> sniknik © (13.04.10 11:12) [11]
> php-стов больше всего ошибок, допустят опечатку, она засчитается новой переменной, не инициализированной
На мой взгляд - это ужасный ужас, как люди с этим живут - не знаю.
Хотя для маленьких программ - действительно супер удобная вещь.
← →
antonn © (2010-04-13 11:30) [14]
> Язык программирования, где нет типов. Ваше отношение?
положительно, в пхп легкая и быстрая разработка
← →
Anatoly Podgoretsky © (2010-04-13 11:49) [15]> tesseract (13.04.2010 11:20:12) [12]
Те кто включает Strict подлежит презрению коллег.
← →
test © (2010-04-13 11:53) [16]Anatoly Podgoretsky © (13.04.10 11:49) [15]
Неправда ваша, их отправляют на курсы чтобы искоренить ))
← →
brother © (2010-04-13 11:55) [17]> на курсы чтобы искоренить ))
на курсах их отстреливают?)
← →
tesseract © (2010-04-13 11:56) [18]
> положительно, в пхп легкая и быстрая разработка
Скорость разработки обратно пропорциональна времени отладки.
Время отладки составляет 120 % сроков разработки проекта.
← →
sniknik © (2010-04-13 12:11) [19]> В PHP вроде можно Strict включить ?
может быть, не знаю, если есть и если бы писал я, то обязательно бы включил. но...
← →
sniknik © (2010-04-13 12:14) [20]> Те кто включает Strict подлежит презрению коллег.
ну спасибо... ;(
но судя по всему, по их реакции/разговорам на эту тему после очередного глюка, так оно и есть.
← →
tesseract © (2010-04-13 12:16) [21]
> но судя по всему, по их реакции/разговорам на эту тему после
> очередного глюка,
Ессно. Можно же крайнего обнаружить. А так - это всё глючить само!
← →
antonn © (2010-04-13 12:32) [22]
> Скорость разработки обратно пропорциональна времени отладки.
>
> Время отладки составляет 120 % сроков разработки проекта.
>
зависит исключительно от квалификации пишущего
← →
Чупакабра (2010-04-13 12:37) [23]>Mystic © (13.04.10 10:27) [9] Например,
По Ctrl + mbLeft все тут же становится на свои места.
>положительно, в пхп легкая и быстрая разработка
Как обычно, в магазин за водкой можно и в тапочках выскочить, надеясь, что на улице хорошая погода, и все сработает как надо, и не будет попытки динамического приведения типа "тапочки" к типу "резиновые сапоги", и много еще всяких разных "и". В общем, в тапочках и спортивном костюме можно попытаться далеко убежать, и, возможно, даже получится, если... милиция не остановит. Со строгой типизацией так не получится - больше писать, больше проектировать, больше работать, больше думать, но и результаты однозначно надежнее и гарантированнее.
В общем, сравнивнение спринтеров и стайеров.
"Всякий овощ бывает полезен..." (С) Гы
← →
ocean (2010-04-13 12:39) [24]Думаю, что языки программирования сближаются с естественными, значит типы будут как в VB. Возможно, помогут бандиты:
"Я типа не понял..."
← →
ocean (2010-04-13 12:42) [25]> "Я типа не понял..."
(имеется в виду void)
← →
Mystic © (2010-04-13 13:03) [26]> По Ctrl + mbLeft все тут же становится на свои места.
Это уже возможности IDE. Но даже если я увижу, что DecimalSeparator имеет тип Char (или не увижу, если есть только одна DCU), то чем это мне поможет относительно того, что хранится в этой переменной???
Изначально вопрос стоял в том, что появляется вдруг строка$a = $b - $c
и неизвестен ее смысл. Ок, попустим я вижу в Delphi строкуa := b - c;
. Чем это проще? Ок, попустим я даже нашел объявление в некотором модулеa, b, c: Integer
. Что это изменит? У нас есть вычитание, а эта операция применима только к числовым типам. Ок, у нас целочисленный тип, а нет действительное число. И?
← →
Чупакабра (2010-04-13 13:19) [27]> а эта операция применима только к числовым типам.
Перегрузку операторов уже отменили?
>Ок, попустим я вижу в Delphi строку a := b - c;. Чем это проще? Ок, попустим я даже нашел объявление в некотором модулеa, b, c: Integer. Что это изменит?
Картина меняется, если в некотором модуле написано a, b, c: cardinal;
>Это уже возможности IDE. что DecimalSeparator имеет тип Char (или не увижу, если есть только одна DC)
Ок, просто наведи мышку на DecimalSeparator. IDE просто выполняет за тебя поиск, упрощая и ускоряя твою работу. Но, и при отсутствии IDE, тебе не стоит особого труда найти объявление пременной.
>если есть только одна DCU
И ты не знаешь, что там? В общем, как же ты ее тогда умудрился использовать?
← →
Mystic © (2010-04-13 13:42) [28]> Перегрузку операторов уже отменили?
В PHP ее нет, так что тут можно быть уверенным :)
> Картина меняется, если в некотором модуле написано a, b,
> c: cardinal;
Чуть-чуть меняется, но не кардинально.
Но, и при отсутствии IDE, тебе не стоит особого труда найти объявление пременной.
Точно так же при отсутствии IDE, grep или :vimgrep покажет мне, где используется указанная переменная.
> В общем, как же ты ее тогда умудрился использовать?
А вот код достался по наследству :) Возможно тот, кто писал его, обладат неким эзотерическим знанием, которое было утеряно. В чем, собственно говоря, и вопрос.
← →
DVM © (2010-04-13 13:46) [29]
> Ваше отношение?
осуждаю
← →
antonn © (2010-04-13 13:48) [30]
> Как обычно, в магазин за водкой можно и в тапочках выскочить,
> надеясь, что на улице хорошая погода, и все сработает как
> надо, и не будет попытки динамического приведения типа "тапочки"
> к типу "резиновые сапоги", и много еще всяких разных "и".
>
если быдлокодить - то да, и тапочки станут тратуаром, и сапоги батоном хлеба
> Со строгой типизацией так не получится - больше писать,
> больше проектировать, больше работать, больше думать, но
> и результаты однозначно надежнее и гарантированнее.
Я что то подобное слышал по отношению к vcl, мол "чистое" winapi учит думать. Ну и вообще в дельфи все просто - кинул кнопку и не думая написал программу. Безмозглые не думающие программисты дельфи...
Пока я вижу лишь комментарии в таком свете.
← →
Чупакабра (2010-04-13 14:29) [31]2 antonn
Писать фигню можно на чем угодно.
Можно даже без языка программирования.
А вот что-то серьезное написать - нужны инструменты серъезнее.
Но и с серъезными инструментами многие пишут фигню.
Фигня -она и есть фигня, независимо от того, с использованием чего написана.
Вот как у тебя, например.
2 Mystic
>В PHP ее нет, так что тут можно быть уверенным
Мне показалось, или, на самом деле, вопрос был поставлен по-другому?
"Ок, попустим я вижу в Delphi строку a := b - c"
>> Картина меняется, если в некотором модуле написано a, b,
>> c: cardinal;
>Чуть-чуть меняется, но не кардинально.
А давай, чтобы было прозрачнее, будем везде использовать int64? А?
>где используется указанная переменная.
Использование и объявление - разные вещи. Не так ли?
>А вот код достался по наследству :) Возможно тот, кто писал его, обладат неким эзотерическим знанием, которое было утеряно. В чем, собственно говоря, и вопрос.
Какой интересный подход к разработке ПО. Гы. "Не зная брода, не лезь в воду". Вот только, с динамической типизацией, этот "брод" может быть где угодно и чем угодно. А строгая статическая типизация таких неоднозначностей не допускает. Написано "брод" - значит "брод". Иначе - "бред".
← →
oxffff © (2010-04-13 14:39) [32]Вывод типов и динамическая типизация это разные понятия.
← →
Anatoly Podgoretsky © (2010-04-13 14:48) [33]> Чупакабра (13.04.2010 14:29:31) [31]
Это фигнявые программисты.
← →
antonn © (2010-04-13 14:55) [34]
> Фигня -она и есть фигня, независимо от того, с использованием
> чего написана.
плохо, когда сам себя уже не понимаешь, да? сочувствую, такая фигня... :(
← →
Игорь Шевченко © (2010-04-13 16:09) [35]
> Я что то подобное слышал по отношению к vcl, мол "чистое"
> winapi учит думать. Ну и вообще в дельфи все просто - кинул
> кнопку и не думая написал программу. Безмозглые не думающие
> программисты дельфи...
В последнее время наметилась одна тенденция. Дело в том, что сейчас для того, чтобы выйти на рынок программных средств и занять в нём свою нишу, фирма, а, соответственно, и программисты должны делать продукт как можно быстрее. При этом, естественно, достаточно часто вопросы эффективности, быстродействия, минимизации размера используемой памяти и тому подобные во внимание просто не принимаются. Зачем, дескать, думать о таких <мелочах>, если современные компьютеры достаточно мощные и <переваривают> почти любые объёмы. Подумаешь, мегабайт памяти туда, мегабайт сюда: Кроме того, очень сильное влияние на квалификацию программистов оказывают многочисленные средства быстрой разработки, бурное развитие которых наблюдается в последнее время. Средства, предназначенные для повышения производительности труда квалифицированных программистов, заняли на рынке совершенно другое место. Достаточно часто эти средства используются программистами низкой квалификации для того, чтобы в кратчайшее время создать работающую программу, прикладывая при этом минимум усилий. Более того, средства быстрой разработки позволяют программисту скрыть недостаток квалификации, ибо вся черновая работа делается без участия программиста. Вместо того, чтобы овладеть необходимым для профессиональной деятельности минимумом, можно недостаток квалификации скрыть посредством использования программы, которая всё сделает сама. Таким образом, средства быстрой разработки используются превратились в средства создания неэффективных программ неквалифицированными программистами. Что поделаешь, рынок диктует свои условия:
Соответственно, такой подход приводит к тому, что достаточно часто у программистов появляется завышенная самооценка. Раз я могу <накропать> программу за неделю, значит, я - ВЕЛИКИЙ ПРОГРАММИСТ, всё умею, всё могу. Зачем мне чему-то учиться, я (при помощи конкретного средства) всегда сделаю то, что хочу! Появилось даже расхожее определение - <программист, пишущий мышкой>: Но стоит у подобных, с позволения сказать, программистов, забрать средство быстрой разработки, как они становятся беспомощными. Ведь они являются программистами на конкретном средстве! Другими словами, они являются ПОЛЬЗОВАТЕЛЯМИ конкретного средства: А пользователи и программисты - это совершенно различные классы людей, использующих компьютер в своей профессиональной деятельности. И если пользователю необходимо знать только порядок использования и взаимодействие частей одной или нескольких программ (WinWord, бухгалтерская или банковская программы, программа обработки изображений и так далее), то программист помимо всего прочего должен, почти обязан понимать то, как функционирует компьютер, на основе каких принципов построена операционная система, понимать принципы организации данных и быть в состоянии написать эффективную программу, решающую поставленную перед программистом задачу. В том случае, если программист является профессионалом, то использование средств быстрой разработки только поможет ему, позволив сократить время, необходимое для разработки программы, и минимизировать усилия, необходимые для разработки таковой.
Непосредственным поводом, подвигнувшим меня на написание этой книги, явился вопрос, заданный в одном из многочисленных форумов по программированию. В этом вопросе, наверное, сосредоточилась квинтэссенция того, о чём я говорил выше. Этот вопрос, судя по всему, был задан именно программистом с явно завышенной самооценкой. Смысл этого вопроса можно свести к следующему. Да, на свете есть хорошие дизассемблеры, в частности, IDA Pro. Но я в ближайшем будущем напишу настолько <крутой> дизассемблер, что IDA Pro моему дизассемблеру и в подмётки годиться не будет. Мне для этого только одной мелочи не хватает. Не будет ли любезен многоуважаемый All сообщить мне смещение в исполняемом файле, с которого необходимо начинать дизассемблирование? Что можно сказать об авторе этого сообщения и его потенциальном продукте?
(http://www.techbook.ru/rumyantsev.html)
← →
tesseract © (2010-04-13 17:19) [36]
> Игорь Шевченко © (13.04.10 16:09) [35]
Седая древность.
← →
TUser © (2010-04-13 19:38) [37]
> Но стоит у подобных, с позволения сказать, программистов,
> забрать средство быстрой разработки, как они становятся
> беспомощными.
Стоит у современного таксиста забрать автосервис, заправку и проч., и у них уже машина не поедет. То ли дело настоящие прфи эпохи начала автомобилестроения, которые целый день с отверткой в моторе ковырялись.
Но и у них стоит забрать их машину, и уже просто на лошади, как настоящие профи - они не того.
А стоит у современного человека забрать электролампочку, одежду, супермаркет и поместить его в пещеру, как настоящего профи, - он ни одного мамаонта не поймает. Ламерюга.
Мораль: сложно отрицать более высокую квалификацию тех, кто писал в машкодах, но достаточна ли велика сегодня потребность в таком настоящем программизме?
← →
Игорь Шевченко © (2010-04-13 19:40) [38]TUser © (13.04.10 19:38) [37]
> но достаточна ли велика сегодня потребность в таком настоящем
> программизме?
Как оцениваем потребность ?
← →
TUser © (2010-04-14 07:45) [39]По-простецки - через рынок. Среди всего спроса на программистов доля спроса на батонокидателей выше, чем лет 30-50 назад, разве нет? Стало быть доля спроса на профи типа описанного вами, ниже.
← →
test © (2010-04-14 08:28) [40]TUser © (14.04.10 07:45) [39]
Как объяснить с точки зрения рынка, что по версии книги "Наука отладки" стоимость строчки кода в обычном софте 10 баксов, в НАСА 10000 баксов? В НАСА на первом месте стоит надежность.
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.065 c