juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2011-10-30 09:21 am
Entry tags:

о языцех - Бейсик

Я его, конечно, никогда не уважал. Но когда Андрей Петрович (тм) попросил посмотреть на его программу, которая типа вычисляет предел в категории, я, конечно, завёлся, и мы месяц, наверное, протрахались с этим делом, дойдя до интерактивного построения категории и до расчёта топологий Гротендика; с топологиями Гротендика мы обломились на категории Δ3, где, по моим прикидкам, расчёт займёт три недели на бейсике. Пришлось перекатать на фортран, а операции над множествами - на ассемблер; 4 часа - и топологии расклассифицированы.

В следующий раз это был вижуал бейсик, Берлин, 95. Netz&So ввёз меня в качестве гастарбайтера; заплатили, по немецкому обычаю, половину (а я варежку разинул); но я насладился Западным Берлином, вообще атмосферной немецкой конторы.

Что я делал - локализационное решение для вижуал бейсика. Выдёргивал ресурсы из кода, строил файлы с переводами, и в рантайме считывал это дело, подставляя ресурсы. Конкатенация строк на Бейсике ещё хуже, чем на Фортране; я развлекался написанием смесил сишного и Бейсиковского кода, лишь бы работало. Работало, но я как-то не насладился. Напрягал повсеместный дебилизм в решениях и невозможность сделать элементарные вещи не через жопу.

Самый плохой язык из тех, что мне встречался.

[identity profile] fatoff.livejournal.com 2011-10-31 02:38 pm (UTC)(link)
Только не ясно, почему ваша оценка computer science (работа о типизации очень известная и была опубликована достаточно давно) как "бред" должна перевешивать.

[identity profile] udpn.livejournal.com 2011-10-31 06:36 pm (UTC)(link)
Цитирую определение от авторов этого термина вообще.

In 1974 Jones and Liskov describe strong-typed language is one in which “each type defines a set of primitive operations that are the only direct means for manipulating objects of that type.”

Расскажите, каким именно образом вы применяете это определение к VB.

[identity profile] fatoff.livejournal.com 2011-10-31 07:04 pm (UTC)(link)
Я собственно сильно раньше Википедии был наслышан про сильно и слабо-типизированные языки. К первым скорее отностятся те, которые не могут обходиться без определения типа для переменной, и чётко определяют операции для типов, определённых для языка. Любая конверсия типа задаётся явно. Ко вторым скорее относятся те, которые могут обходиться без определения типа для переменной, операции над типами могут определяться в контексте их использования, зависеть от содержания переменной, что и приведено в том примере. И программисты, которые настоящие хард-кор бэйсиковеды, вовсю пользуются слабой типизацией.

[identity profile] udpn.livejournal.com 2011-10-31 09:08 pm (UTC)(link)
Понятие сильной и слабой типизации было введено упомянутыми выше соавторами. Вынужден повторить просьбу: укажите, чем VB не подходит под вышеупомянутое определение сильно типизированного языка.

>> Ко вторым скорее относятся те, которые могут обходиться без определения типа для переменной
VB каждой переменной назначает тип. В случае, если не используется Option Explicit, необъявленной переменной назначается тип Variant, который является обычным вариантным типом, ничуть не хуже такового в каком-нибудь "сильно типизированном" O'Caml.

>> операции над типами могут определяться в контексте их использования
Классы типов "сильно типизированного" Haskell позволяют определять операцию по контексту использования.

>> И программисты, которые настоящие хард-кор бэйсиковеды, вовсю пользуются слабой типизацией.
Вы всё ещё считаете, что он слабо типизирован? Оспорьте утверждения выше или причислите O'Caml и/или Haskell к слабо типизированным.

[identity profile] kashnikov.livejournal.com 2011-10-31 08:42 pm (UTC)(link)
Вы бы не могли уточнить о какой очень известной опубликованной работе идёт речь?

Если я правильно понимаю, то пример из википедии демонстрирует Variants[1]. Строго говоря, принято говорить о том что variants, проделывают дыры (loopholes) в системах типов, или же говорят, что они привносят слабую типизацию [2, 3].

В Pascal есть Variant Records. Однако так уж условлено, что его не относят к языкам со слабой типизацией.Тоже самое с Ada.

Конечно, я могу здесь сильно ошибаться и вовсе не обязательно, что так как я написал и есть. Интересная беседа вот и решил высказать просто мнение. ;-)

______________________________
[1] The Ultimate Data Type (http://www.ecs.syr.edu/faculty/fawcett/handouts/cse775/presentations/BruceMcKinneyPapers/variants.htm)
[2] Benedict R. Gaster and Mark P. Jones, A Polymorphic Type System for Extensible Records and Variants
[3] Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism (http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf)
[4] Jacques Garrigue, Programming with Polymorphic Variants