Juan-Carlos Gandhi (
juan_gandhi) wrote2011-10-30 09:21 am
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
о языцех - Бейсик
Я его, конечно, никогда не уважал. Но когда Андрей Петрович (тм) попросил посмотреть на его программу, которая типа вычисляет предел в категории, я, конечно, завёлся, и мы месяц, наверное, протрахались с этим делом, дойдя до интерактивного построения категории и до расчёта топологий Гротендика; с топологиями Гротендика мы обломились на категории Δ3, где, по моим прикидкам, расчёт займёт три недели на бейсике. Пришлось перекатать на фортран, а операции над множествами - на ассемблер; 4 часа - и топологии расклассифицированы.
В следующий раз это был вижуал бейсик, Берлин, 95. Netz&So ввёз меня в качестве гастарбайтера; заплатили, по немецкому обычаю, половину (а я варежку разинул); но я насладился Западным Берлином, вообще атмосферной немецкой конторы.
Что я делал - локализационное решение для вижуал бейсика. Выдёргивал ресурсы из кода, строил файлы с переводами, и в рантайме считывал это дело, подставляя ресурсы. Конкатенация строк на Бейсике ещё хуже, чем на Фортране; я развлекался написанием смесил сишного и Бейсиковского кода, лишь бы работало. Работало, но я как-то не насладился. Напрягал повсеместный дебилизм в решениях и невозможность сделать элементарные вещи не через жопу.
Самый плохой язык из тех, что мне встречался.
В следующий раз это был вижуал бейсик, Берлин, 95. Netz&So ввёз меня в качестве гастарбайтера; заплатили, по немецкому обычаю, половину (а я варежку разинул); но я насладился Западным Берлином, вообще атмосферной немецкой конторы.
Что я делал - локализационное решение для вижуал бейсика. Выдёргивал ресурсы из кода, строил файлы с переводами, и в рантайме считывал это дело, подставляя ресурсы. Конкатенация строк на Бейсике ещё хуже, чем на Фортране; я развлекался написанием смесил сишного и Бейсиковского кода, лишь бы работало. Работало, но я как-то не насладился. Напрягал повсеместный дебилизм в решениях и невозможность сделать элементарные вещи не через жопу.
Самый плохой язык из тех, что мне встречался.
no subject
no subject
Крик души
Re: Крик души
Как-то 7 лет на нём отпахал, и ничего такого через силу плохого в нём не увидел.
VB это язык быстрого прототипирования, что означает, что за наименьший возможный срок можно написать и отладить практически что угодно. Отсутствие классов и указателей, наличие хорошей стандартной библиотеки и проверок времени исполнения этому всячески способствуют.
Re: Крик души
Написать легко, особенно прототип, отладить элементарно, а вот поддерживать это счастье - кошмар. Но если вам нравиться, интернет ломится от предложений и платят неплохо.
Re: Крик души
Где, где он ломится? VB будто бы вообще никому не нужен.
Re: Крик души
no subject
no subject
no subject
Если сравнивать с современным VB.Net - там оно конечно, всё по другому. Это по возможностям и компонентости, как в C#, но ддя тех, кому нравится напоминающая ВэБэ запись кода.
Впрочем, я уже давно это руками не трогаю. Брезгую. Уж если заставят прикладухой заниматься, так есть достойная того занятия Java.
no subject
no subject
Weak typing means that a language implicitly converts (or casts) types when used. Consider the following example:
var x := 5; // (1) (x is an integer)
var y := "37"; // (2) (y is a string)
x + y; // (3) (?)
In a weakly typed language, the result of this operation is unclear. Some languages, such as Visual Basic, would produce runnable code producing the result 42: the system would convert the string "37" into the number 37 to forcibly make sense of the operation.
no subject
Не знаю, откуда этот бред появился в головах людей и википедии. Слабая система типов это (def.) система типов, нарушающая инварианты, которые она должна поддерживать. Например, в С++ можно считать область памяти, где лежит int, как string. Получается, что типы в нём фактически не играют никакой роли, потому что проверка типов такие случаи не отлавливает. В коэрции же ничего плохого нет.
no subject
no subject
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.
no subject
no subject
>> Ко вторым скорее относятся те, которые могут обходиться без определения типа для переменной
VB каждой переменной назначает тип. В случае, если не используется Option Explicit, необъявленной переменной назначается тип Variant, который является обычным вариантным типом, ничуть не хуже такового в каком-нибудь "сильно типизированном" O'Caml.
>> операции над типами могут определяться в контексте их использования
Классы типов "сильно типизированного" Haskell позволяют определять операцию по контексту использования.
>> И программисты, которые настоящие хард-кор бэйсиковеды, вовсю пользуются слабой типизацией.
Вы всё ещё считаете, что он слабо типизирован? Оспорьте утверждения выше или причислите O'Caml и/или Haskell к слабо типизированным.
no subject
Если я правильно понимаю, то пример из википедии демонстрирует 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
no subject
Кто же у Вас эта интересная личность? :)
no subject
По аналогии можно сказать что молоток - совершенно неудачный инструмент, например часы им чинить невозможно просто. А гвозди часовой отверткой забивать неудобно.
Vb был создан не для рассчета топологий. Vb создан и отлично применим для создания бизнес-приложений, морд к базам, бугалтерских и складских программ. И там у него по скорости создания и простоте небыло конкурентов.
no subject
Кстати, нормальной среды разработки «формочек для баз данных» а-ля Дельфи и VB теперь нет вообще. Дельфи тихо помер, а VB сейчас дотнетный и уже совершенно не тот (не то чтобы в этом было что-то плохое, но сложность выросла очень сильно).
no subject
Ну и RAD-приложения во многом перекочевали в web. А там-то стопицот CMS разнообразных существует, которые фактически заменили desktop apps в данной нише.
no subject
ADF — это очередная попытка сделать RAD на джаве. Не могу сказать, что это прямо вот получилось (оракл же), но пользуется сейчас некоторой популярностью в энтерпрайзи-среде.
no subject
no subject
no subject
no subject
А раньше можно было.
no subject
python
perl + DBI
если морда нужна - pyqt или wxperl
даже наверно кросс-платформенно сразу получится
no subject
no subject
Да, в перле есть нежно любимый мной Mojolicious, но и он не абстрагирует формы как views. Нужно вручную вытащить данные из БД, засунуть их в форму (через темплейт), вывести, потом собрать данные, провалидировать, запихать в POST и передать обработчику, которым их опять скомпоновать в запрос (SQL или ORM), и запихнуть в базу. Ещё для этого нужно уметь какие-никакие транзакции.
В то время как в RAD-системах виджеты на форме прибайндены к базе данных самостоятельно, а валидация задаётся декларативно. Так можно сделать не всё, но то, что можно — получается очень быстро.
no subject
no subject
no subject
no subject
no subject
no subject
ждем отчета по перлу и руби.
no subject
no subject
no subject
no subject
no subject
no subject
Ухты, интересно. Расскажите, пожалуйста, зачем это нужно, и что именно требуется для того, чтобы что-то такое написать. Этот предел имеет отношение к обычному пределу (для какой-нибудь конкретной категории функций или чего там)?
no subject
Зачем нужны пределы? Ну как,
select a.*,b.* from a,b where a.userid = b.userid;
- это частный случай предела (pullback).Зачем нужно узнать, какие бывают топологии Гротендика над такой-то категорией? Это ключ к логике категории. А так - ничего не требуется, знание определений.
no subject
Почему эта ссылка не написана красным по белому где-нибудь в заголовке вашего блога? :)
>> select a.*,b.* from a,b where a.userid = b.userid; - это частный случай предела (pullback).
Я думал, что это отфильтрованное декартово произведение. Интуиция не сработала, увы. К обычному пределу функции он отношения всё-таки не имеет?
>> Это ключ к логике категории.
Это, наверное, результат общения с теорией категорий: очень общие ответы :) Какой-нибудь пример или класс задач, решаемых с их помощью, бы.
no subject
Мне казалось, она легендарна и не требует лишней рекламы. :)
no subject
Я ничего общего с классами задач не имею... но пример вот я уже привёл же.
no subject
pullback выражается через эквалайзер от произведения. Так что, почти правда.
А все конечные пределы выражаются либо через эквалайзер с произведениями, либо pullback с терминальным объектом.
no subject
no subject
no subject
Вот после "bananas, lenses etc" сразу понятно: это нужно для алгебраического мышления о программах. Типа таким образом классифицируется вся рекурсия.
no subject
Ну, не вся. Но довольно много.
Да не то, чтобы алгебраического мышления...
Если привыкнуть, это более простой и унифицированный взгляд.
Заодно, помогает пониманию некоторых фундаментальных вещей.
no subject
no subject