ffinder
> Spectrum Basic (c) 1982 Sinclair Research Limited - токены вводились нажатием
> одной клавиши, синтаксический и лексический анализ проводились при нажатии
> клавиши Enter, подсвечивая места ошибок, и не давая продолжать ввод программы в
> случае их обнаружения
да, классное было время :)
innuendo
> а 20-30 лет назад никто и не знал про это ?
Судя по всему, очень даже. То есть, широкую известность эта фича имела в узких кругах. Хотя тут больше подходит слово "мода", или что-то иное. Вон, возмем, не к ночи поминаемый Шарп. По идее, генерики должны были быть еще в первой версии. Ан нет, не сразу. И вывод типов как раз в 3 версии появился. А вот счас эту фичу можно смело записывать в джельтельменский набор.
И сам вывод типов нужен не только на уровне выражения инициализации, а чуть поглубже.
chucheloid
> А если мы говорим про вывод типов в языке, где есть перегрузка функций и
> неявное приведение типов
за одно только неявное приведение типов стоит руки отрывать по самые ноги.
chucheloid
> Для того чтобы сделать вывод типов нужно очень много знать.
а еще нужно задаться вопросом, а нужен ли вывод типов в полный рост?
если в языке есть только чистые функции, и требовать задавать тип аргументов, то типы локальных переменных можно вычислить без проблем.
а вот конечно задача по безтиповым входным параметрам функций строить какие-то предположения как это могло бы быть использовано программистом - нездравая идея.
Grey304
> > а 20-30 лет назад никто и не знал про это ?
> Судя по всему, очень даже. То есть, широкую известность эта фича имела в узких
> кругах
а разрабы динамиков -это как раз широкие такие круги ? :)
я против статиков ничего не имею, а что вы имеете против динамиков ?
chucheloid
Мнэ, а в том виде, как оно счас в Шарпе и С++? Транслятор-то все равно должен проверить как-то, что тип выражения инициализации может быть корректно приведен к типу переменной? Т.е., информация у него есть.
innuendo
>
> я против статиков ничего не имею, а что вы имеете против динамиков ?
А вы хотите об этом поговрить?
Я лишь высказываю свое частное мнение, почему динамика существует.
Потому что у нее есть определенные преимущества в части компактности текста за счет ненужности указывать типы. Только вот статика уже потихоньку осваивает инструменты, позволяющие и тут с динамикой поспорить.
p.s. Хотя мне нра подход Шарпа с его dynamic. Основная типизация - статическая, но если хотите - держите динамику
ffinder
>Spectrum Basic (c) 1982 Sinclair Research Limited
Это я не видел.
Но учитывая что последователей нет...
>QBasic (c) Microsoft Corporation
А это видел. И оно текстовое.
А то, что там код автоформатируется то это не рокетсайнс.
Это все современные IDE умеют.
Grey304
> И вывод типов как раз в 3 версии появился.
Это не вывод типов. Это смех на палочке.
ffinder
> если в языке есть только чистые функции,
Чистота функций к делу не относится. Совсем.
> и требовать задавать тип аргументов, то типы локальных переменных можно вычислить без проблем.
Там все намного сложнее чем кажется. Особенно если выводить все что можно.
gammaker
> Это говнокод. Лучше так:
До рефакторинга ещё далеко,... нужно хоть какой-нибудь работоспособный скелет накидать
chucheloid
> Это не вывод типов. Это смех на палочке.
Только что-то долго даже этот смех на палочке в мейнстрим шел. Хотя, казалось бы, чего там. Еще лет десять можно было смело совать куда попало.
chucheloid
> Чистота функций к делу не относится. Совсем.
не соглашусь. без аргументов, но не соглашусь.
chucheloid
> > и требовать задавать тип аргументов, то типы локальных переменных можно
> > вычислить без проблем.
> Там все намного сложнее чем кажется. Особенно если выводить все что можно.
я еще раз повторюсь - вывод типов в общем случае это глупая безблагодатная затея, которая практически не дает профита.
субъективно, мне значительно легче читать явно типизированный код, чем "безтиповую" ерунду, где и программист и компилятор делают одну и ту же работу - выводят типы. т.е. читая незнакомый код, всё равно приходится выяснять возможные типы переменных.
вы не находите такое положение вещей абсурдным?
а в простейшем случае, как это случилось в D, а вот теперь уже и в С++ - auto - хороший ход.
chucheloid
> > pectrum Basic (c) 1982 Sinclair Research Limited
> Это я не видел.
возможно стоит поинтересоваться?
конкретизирую, что я имел в виду: не отказ от читаемого представления, а отказ от набора по буквам, и ультраагрессивная диагностика на самом раннем этапе - вводе.
ffinder
> а отказ от набора по буквам, и ультраагрессивная диагностика на самом раннем
> этапе - вводе.
Пиктограммы, графы/блоксхемы ? Практика показывает, что быстрее и проще набрать по буквам и дождаться результатов компиляции, чем через 100500 диалогов актуализировать состояние всех визуальных блоков.
Grey304
> Только что-то долго даже этот смех на палочке в мейнстрим шел.
1)А тут все просто.
Разработчики мейнстрим языков пишут компиляторы на С/С++.
А это просто неадекватный инструмент для данной задачи.
2)В это трудно поверить, но есть люди, которые считают даже такой ущербный вывод типов злом. Они с пеной у рта доказывают, что типы всегда надо писать явно.
chucheloid
> 2)В это трудно поверить, но есть люди, которые считают даже такой ущербный
> вывод типов злом. Они с пеной у рта доказывают, что типы всегда надо писать
> явно.
Чем же тогда они должны считать динамику?...
Grey304
> Чем же тогда они должны считать динамику?...
Не знаю.
Но я могу сказать чем я считаю динамику: Тормозным и глючным говном.
Всю без исключения.
chucheloid
> Но я могу сказать чем я считаю динамику: Тормозным и глючным говном.
> Всю без исключения.
меня всегда удивляли люди, у которых только черное и белое :)
Grey304
> Потому что у нее есть определенные преимущества в части компактности текста за
> счет ненужности указывать типы.
этот компактные код работает динамически, что не маловажно
Тема в архиве.