juan_gandhi: (VP)
Один участник употребил это слово. Я аж взмыл от радости, в кои-то веки на родном языке услышишь новое слово, хотя бы и иностранное, и хз с какого языка, романш?

Пошел на гугл транслейт переводить "собутыльник".

Сколько открытий чудных!

/tr>
языкперевод
английскийpal
азербайджанскийdost
баскскийpal
боснийский, хорватскийdrug
болгарскийприятел
испанский, каталанскийcamarada
чичеваmnzako
корсиканскийfrancese pal
чешскийkamarád
голландскийvriend
эстонскийsemu
филиппинскийkalaro
финскийkamu
французскийcopain
галицийский, португальскийamigo
немецкий, польский(?)Kumpel
греческийфиларакос
гаитянскийzanmi
хаусаHarbhajan
хиндидост
хмонгnpawg
венгерскийhaver
исландскийvinur
индонезийскийsahabat
итальянскийamico
корейскийdanjjag
арабскийсадик
армянскийынкер
латышскийdraugs
литовскийbičiulis
маратхидживалага митра
монгольскийнайз
румынскийprieten
самоанскийuo
гэльскийcharaid
сербскийдруг
сесотоyaadien
сингальскийyāḷuvek
словацкийкамарат
сомалийскийkumuunayaasha
тамильскийNaṇpā
турецкийahbap
украинскийтовариш по чарці
вьетнамскийkết bạn
juan_gandhi: (VP)
Выкинул мемрайз, попробовал загрузить дуолинго, но оно не загружается. Сказал гуглу "learn Hungarian!", он нашел мне Fabulo - оттягиваюсь. Такой темп, вау!
juan_gandhi: (Default)
Весной 2008-го в кружке SVPG, встречающемся каждый вторник в ресторане Хобиз в Купертиновке, мы изучали серию языков; один из них был Скала. Я как-то на него запал тут же. Ну что, бегает на JVM, полный доступ к Джавным библиотекам и классам, и при этом практически скриптовый язык. И масса функциональных фич. Про дженерики высших порядков мы тогда не проходили.

А тут как раз подоспел Бил Веннерс, со скалатестом и с книгой по Скале. Так что стали опять изучать Скалу, по книге; да и скалатест заодно.

У меня тогда были большие концептуальные проблемы с написанием моей категорной библиотеки на Джаве; список параметров типа занимал восемь строчек, ни в какие ворота; и я решил перейти на Скалу.

Скальное сообщество уже существовало, и встречалось раз в месяц, то в Твиттере, то в Гугле. Но однажды, весной 2009-го, приходим мы в Гугл на митинг, а встретить нас некому. Все гугловские скальщики ушли, кто в Нетфликс, кто в Линктин; так что мы снялись и переместились в Линктин (до которого пешком минут пять).

Твиттер в те поры представлял собой один этаж на третьей в Сан Франциско; с задрипанным туалетом и маленькой кухонькой, и человек десять примерно сидели хмурые что-то долбили. Они уже попробовали ПХП и ужаснулись; попробовали Эрланг и обломились, и вот теперь стали пробовать Скалу, и увидели, что это хорошо. Ну и в других конторах подтягивались тоже; 4square перекатал весь свой ПХП на Скалу и стали счастливы. Да спасибо скалалифту, и Дэвиду Поллаку... а впрочем, теперь, когда я скалалифт использую, я к нему с большей прохладцей отношусь.

На интернетах есть несколько мейллистов; и умнейшие люди пишут там умнейшие вещи. Особо рассекает Тони Моррис из Новой Зеландии Брисбейна, Австралия: его scalaz выглядит как учебник алгебры, чистота классической мысли. Грегори Мередит в Сиэтле вот-вот напишет книгу на тему как писать на Скале монадично - а пока просто выступает с лекциями. Да масса умнейших людей. Тот же Джеймс Айри, куда-то последнее время задевавшийся, выступил с кучей горячих постов на блогспоте на тему функциональности и вообще.

Нравится мне это сообщество; и язык нравится. Тот же cake pattern, самый, по-моему, натуральный способ DI - красота же! Хотя есть и альтернативки.

И есть же EPFL, где рассекает Мартин Одерски, автор языка. Там теперь аспирант [livejournal.com profile] xeno_by пишет макросистему для Скалы. Казалось бы, что за макросистема, зачем? В Джаве нет макросов, и ничего, ничего. В Джаве много чего нет; и скальные макросы - это не сишные макросы и не сишные темплейты, всё гораздо глубже и содержательнее.

В 2010 после Java One прошла unconference по Джаве; Илья Сергей из Джетбрейна, который сейчас в Орхусе Брюсселе аспирантом, рассказывал про свой плагин для интеллиджея... ну и вообще много хорошего было.

На последнем strangeloop половина докладов была на Скале; такое ощущение, что в передовых кругах она становится стандартом (ну и Хаскель с Лиспом, конечно, но с этими языками такая проблема, что непосвящённому хрен что объяснишь).

Задачки на projecteuler я тоже потихонечку решаю на Скале.

В промышленности же...

Если Вы готовы жить и работать в Сан Франциско, то работы на Скале до хрена. Те же твиттер и 4square. А дальше на юг - сложнее. Я в Качинге, в Пало Альто, полгода писал сервлеты на Скале; мне нравилось (но я им не нравился, честь не отдавал и не кланялся, а даже улыбался если глупость скажут); потом в Чучах я заикнулся было, э, Алекс, а т.к. всё равно ни одна собака юниттестов не пишет, давайте я буду свои юниттесты на Скале писать. Обидно это для "начальства" если "подчинённый" говорит что-то такое, что они не понимают; а переспросить гордость не позволяет.

Ну зато теперь я практически 100% на Скале. Ну за исключением что вчера весь день долбил Питон и Джаву.

Что интересно - у нас несколько интёрнов из Канады. Пишут на Скале. До приезда из Канады Скалы не знали; приехали, выучили, стали писать. Как-то по-особому, конечно; но ничего, поправим.

Такие дела. Язык будущего. Обожаю.

Да тут полно скальщиков в жж! [livejournal.com profile] sorhed, [livejournal.com profile] sassa_nf, и отзовитесь если кого не помянул.
juan_gandhi: (Default)
Питоном нас ещё в Борланде пугали - Джим фон Шмахт впаривал кому не лень, что надо вместо Перла Питон использовать, тогда будет нам счастье. Я заглянул - ха, шесть пробелов, это ж Фортран! Ну и т.д. Не оценил красоты; хотел перловой свободы, TIMTOWTDI, something like that, kamasutra eh.

А потом в Гугл подписал офер и поехал на Аляску, и всю дорогу читал книжку по Питону, и красота Аляски наложилась, и стал его воспринимать соответственно.

Но на самом деле, Питон-то особо не попадался в Гугле. Ну хорошо, translation console был уже практически весь перекатан на Джаву; причина: да блин, ни читать ни поддерживать эту лапшу невозможно! Оставались ещё парсеры на Питоне; Белла их несколько попричесала, но всё равно уёбища. Главное, удручающая текстуальная сложность! А уж когда парсеры приходили вместе с парсируемым проектом, как это был в случае clearsilver, где грамматика, синтаксис, извлечение локализуемых текстов, особенности формата строк были хорошо перемешаны в одном огромном файле, это было да.

И ещё giyl, Google In Your Language, веб-апликация, накатанная левой ногой Ли Мура, это был ужас-ужас-ужас. Так что с Питоном я больше проводил время, медитируя над общей задачей выпрямления чужих извилин.

С другой стороны, билд-файлы, они все, как в Сконсе, представляли собой на самом деле питоновые скрипты, и если хочешь, вполне можно было вмазать красивые циклы, компрехенсии, всякое такое, без необходимости громоздить.

Кроме того, вдохновителями было два гениальных автора - Гвидо ван Россум и Алекс Мартелли, которым только покажешь заковыристую задачку, они тут же на пальцах напишут в мейллисте невероятно прекрасное решение. Вот бы в жизни так, чтобы всё состояло из прекрасного. Но увы, кроме этих двоих, я программистов на Питоне не знаю. Все остальные пишут так, как будто это ПХП.

После Гугла мне Питон как-то не особо встречался, кроме как в Танго, где я напоролся на сконс и его билд-файлы, и меня попросили организовать распараллеливание билдов. Ну что, на самом деле спасибо что Питон, и можно везде вставить свистки и логи. Я выследил, почему нельзя билдить параллельно. Вот идут несколько ниток, и все дружно билдят. Потом одна вдруг решает, хм, переключу-ка я текущую директорию, cd ../../../client/src/generated - и вот, как в типичном фильме ужасов про асинхронность, другие три нитки билда оказываются внезапно, в случайные для них моменты времени, в другой директории. И ни хрена не находят своих сорсов, которые только что весело компилировали. Приехали.

Ну, собственно, и всё.

Нет, не всё; однажды интервьюировался в жлобскую санфрацнисскую контору КЕАС, с Адамом Босвортом во главе (которого я одно время шибко за что-то уважал), и там мне дали в конце интервью "домашнее задание" - написать на Питоне игру "виселица" и вывесить её на вебе. Ну чё, написал. Но больше я от них ни слова не слышал; ну хоть бы спасибо сказали, что ли.

Да ну на фиг; зачем это вообще всё...

К тому же Гвидо сказал, что теорию категорий не знает, и знать не хочет... бог с ними со всеми.
juan_gandhi: (Default)
Тогда же, когда мы делали игрушку, крестики и нолики на торе, пришлось мне и на ПХП пописать. Единственное достоинство этого языка, что его как бы изучать не надо. Мне там что надо было: аджакс для передачи ходов и для чата; игра хранилась в виде файла в директории, образованной от айди двух игроков; ну и всё, собственно; чат там же.

Если вы не программист, то ПХП - язык для вас. Не требует ни умственных усилий, ни запоминания. А так - не советую.
juan_gandhi: (Default)
Этот язык, ActionScript, является богатым глупым родственником Джаваскрипта. Джаваскрипт, как я понимаю, был присандален для нужд флеша. Но если в HTML модель объекта (с точностью до майкрософтовского маразма) определена довольно точно, то в Акшенскрипте эта модель известна разве что старшим архитекторам бывшей Макромидии. Действия прицепляются к таймлайну, к фреймам, к обстановке в целом... там четыре глобальных контекста (по количеству сторон света, стихий и размерностей нашего локально-евклидова пространства).

Зачем я за него вообще взялся? Да у подруги был курсовик, вот и взялся. Сбацали мы игру "крестики и нолики на торе" (можно и на бутылке Клейна, но я не хотел пугать студентов SJSU потусторонними многообразиями).

Ну работало, но я навеки возненавидел всю эту proprietary дурь.

В 2008-м эти маразматики попытались отомстить всему свету и через ООН пробить стандарт ECMAScript, где Джаваскрипт стал бы вдруг объектным языком "со строгими типами" - но номер не прошел, непонятно почему - ОВВ, Организующая Воля Вселенной, иногда проявляет чудеса смекалки.
juan_gandhi: (Default)
Это, конечно, язык древний, но неизученный. Я стал вставлять вставочки из джаваскрипта в свой сайт ещё хрен знает когда, но никак не мог понять, шо це за параша (как сказал однажды Андрею Петровичу (тм) сидевшему на берегу Енисея и изучавшему Гильбертовы Пространства в Задачах и Решениях (до "Rosetta Stone" оставалось 30 лет) местный мужик).

Ничего, что я со скобками?

Более того; некоторое время спустя моя подруга, [livejournal.com profile] juliapotter, стала фигачить вебсайты и вставлять туда какие-то джаваскрипты. Иногда они не работали, и я лез починял сниппеты в дримвивере, по-прежнему не понимая, шо це за параша.

И наконец, настал День Просветления.

Кто-то в ЖЖ процитировал: ДА ЭТО ЖЕ ЛИСП! О блин. Почему мне раньше не сказали! Я возлюбил этот язык как брата (несуществующего) и как сестру (у меня три двоюродных и одна... да, родная, но я её видел примерно 30 секунд). Нет, в сторону родственников я потом.

Кароче.

Я не знал, шо б такое написать. Дэйв Смит провёл на Silicon Valley Pattern Group ликбез по аджаксу (да, было время, аджакс был экзотикой), и я возлюбил аджакс тоже. И ещё написал "ide" - работает даже на моём киндле.

А в Гугле я на этом попал. Зафайлил идею про многоязычную клавиатуру, и сам же стал имплементировать, на джаваскрипте. Да, насладился. Но не понимал такой вещи, что если у тебя нет друзей, то у тебя будут враги. И вот, спасибо джаваскрипту...

Большая проблема была в 2008-м, с коллегами в команде оркута. Эти... эти тупые болваны! Эти тупые болваны, которых я научил гонять jsunit, вдруг вздумали меня учить объектному программированию на джаваскрипте. Писать bind(). О боже...

Нет, ну удовольствме было, это да. И, спасибо [livejournal.com profile] malaya_zemlya, отфрендившему меня по показаниям, прочитал "Javascript, the Best Parts"; и поучаствовал в написании несуществующей книги "Effective JavaScript", и патент через гугл зафайлил; и даже форт-интерпретатор на Джаваскрипте написал.

Но вывод сделал. Я больше на Джаваскрипте ничего не пишу. Всё, приехали. Не мой рынок.

Знаете, какая главная проблема? Фиг напишешь Set на Джаваскрипте. Ну разве, может быть, через скальный Array, который может расширяться бесконечно (см. доклады Дэниэла Спивака).

Последнее что было - это на strangeloop посетил тренинг по jquery, оценил, усвоил, освоил, надо будет - употреблю.
juan_gandhi: (Default)
Со стороны Перл смотрится каким-то бредом. Доллары, собаки, загадочные комбинации загадочных символов... но скриптовать-то надо; я в Борланде немножко побаловался с Перлом ещё когда тестовые скрипты писал; а потом мне довелось подменить Паоло Чикконе в деле локализации Джейбилдера, а там половина кода на Перле; пришлось изучить. Дошел до "идиоматического" - Schwartzian transform and the like. Шварцево преобразование - это всего лишь zipWithIndex; но я тогда ничего такого функционального не знал.

Паоло же на Джаву смотрел свысока, а любил динамический язык Перл. Я его спрашивал, э, Паоло, как же так, ты в Джейбилдере, а Джаву презираешь? Ну он этот когнитивный диссонанс не долго терпел, а пошел открыл магазин деталей для мотоциклов, с 3д-дизайном, и на этом разбогател. А я остался трахаться с Перлом и Джавой, карма такая.

Ну я, конечно, почистил, сделал код читаемым, модульным, чуть ли не объектным. Самый трах был с парсингом XML и обеспечением UTF-8; из Японии могли прислать файл в произвольной кодировке, например, берём EUC, Shift-JIS and UTF-8 и втыкаем в один файл, то-то весело. Мне пришлось детектировать кодировку по кусочкам.

Ну и для парсинга Джавы, в смысле, для выдирания строчных литералов, нарисовал "регулярное выражение" (в перловом смысле) в страницу размером, с комментариями, с логгингом и с генерацией таблиц.

Привычка не означала любовь; непостоянство Перла выводило из себя. То ютиэф перестаёт парситься на ровном месте, то постфиксный иф через пару месяцев вдруг перестаёт работать, всё развлечение.

Короче, надоел он мне хуже горькой редьки. А хорошему стилю так и не научился, научился только писать разборчиво, чтоб другие могли прочитать, тот же Роджер, который сменил меня на ниве локализации Джавы, когда я сбежал с тонущего корабля.
juan_gandhi: (Default)
В 97-м году, весной, Аристов в Танграме стал нас доставать с "явой", мол, когда на яву перейдём. Сам-то он не программист был, но порассуждать мастер.

Я глянул, мне понравилось. Как раз Гарман, с помощью Аристова, выгнал меня с Танграма, и у меня завелось свободное время. Мы поехали в Болгарию, и там я выучил Джаву. Перекатал одну программку (парсер TTF) на Джаву, отдал заказчику просто так, бесплатно. Ну а т.к. джавщиков было мало, то нарасхват, и я пошел на контрактик к другому немцу, Дитриху, в Тугезерсофт, писать приладу для UML, которая аж через COM работала с какой-то майкрософтовской фигнёй. В процессе ознакомился с сорс-кодом джейбилдера. И боролся с AWT, переписывался (почти переругивался) с Патриком Нотоном, одним из основоположников, которого потом федералы подставили с виртуальной несовершеннолетней. Написал и аплету, blue tunnel, повесил на свой вебсайт.

Дитрих, кстати, тоже делал серьёзные попытки не заплатить мне, но я уже знал про немцев, и дискету ему отдал зазипованную под паролем; он хоть и обещал хакнуть, но не получилось что-то, так что заплатил в конце концов.

Когда приехал в Америку, ещё годик потрахался с Си и Шеллом, а потом попал в джейбилдерную команду и шесть лет долбил локализацию, ковыряясь и в формате класс-файлов, и вообще. Всю жизнь был возмущён библиотеками, в том числе и апачи-коммонзами, и писал свои; до сих пор валяется на myjavatools.com, и время от времени откуда-нибудь из Пакистана пишут спасибо за ClientHttpRequest.

Пытался что-то опубликовать в Java Developers Journal, но как обычно не нашел общего языка с ревьюерами, глубина мудрости которых мне была тогда недоступна, что они имеют в виду-то; теперь я знаю, что они просто тупые. И хер с ними.

Одновременно пописывал категорную фигню на Джаве. Те старые штуки, что когда-то были на Бейсике.

Потом в 2005-м, в момент высшего подъёма джавы, когда дженерики изменили язык до полного изумления, хаживал даже на Java User Group, и Нил Гафтер с Джошем Блоком выступали со своим шоу на тему Java Puzzlers, и задавали загадки публике, и я отгадал пять из пяти, и Джош дал мне визитку, и так я был принят в Гугл (до того я время от времени файлил, но меня игнорировали).

В Гугле поучаствовал в гугловской джавной библиотеке, известной миру как Гуава, и был ответственным за com.google.common.cache; но потом пошел раздор по вопросу лямбд; я занял сторону Гафтера и даже пытался устроить "честное голосование" (а не такое, какое устраивал Боб Ли, у которого была своя версия лямбд); короче, Гафтер махнул рукой и мне посоветовал не связываться - и всё пошло downhill ever since.

Мои идейки на тему как вообще что надо делать всегда воспринимались гугловскими коллегами как бред; я даже слышал фразу "inexperienced engineer" - это про меня; один деятель написал начальству донос, что я не умею писать юниттесты, аккурат когда я впендюривал культуру юниттестов в команде оркута... короче, насладился.

Апофеозный пример - когда Ли Мур меня "интервьюировал" в команду GRM, и попросил имплементировать Set, а я как раз незадолго до того имплементировал ZFC, и спросил сдуру: какую аксиоматику? А он говорит "просто Set", а я стал спрашивать определение, а он решил, что я понятия не имею, что такое множество... ну и т.д.

А тут и Скала подоспела, так что на Джаву я уже стал смотреть как на рвотное. Это начиная с 2008-го года. И люблю джавщиков спрашивать типа "Послушай Нагеш, вот ты только на джаве программируешь, так? И других языков знать не хочешь, так? А что ты будешь делать, когда Джава выйдет из употребления?" Короче, вы поняли.
juan_gandhi: (Default)
Я его, конечно, никогда не уважал. Но когда Андрей Петрович (тм) попросил посмотреть на его программу, которая типа вычисляет предел в категории, я, конечно, завёлся, и мы месяц, наверное, протрахались с этим делом, дойдя до интерактивного построения категории и до расчёта топологий Гротендика; с топологиями Гротендика мы обломились на категории Δ3, где, по моим прикидкам, расчёт займёт три недели на бейсике. Пришлось перекатать на фортран, а операции над множествами - на ассемблер; 4 часа - и топологии расклассифицированы.

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

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

Самый плохой язык из тех, что мне встречался.
juan_gandhi: (Default)
Это был совершенно странный язык. Включал в себя кобол, фортран, и массу открытий из других компьютерных областей; идея, наверное, была такая, что надо фич понатыкать, тогда все будут довольны. А все были недовольны - много фич.

Впервые я с ним столкнулся когда Андрей Петрович (тм) попенял мне, что у нас в Фортране нет функций для манипулирования строками. Когда Андрей Петрович пеняет, это звучит донельзя убедительно (у детей тоталитарных мам это такой фактор выживания - убедительно пенять на реальность).

Я поосваивал их библиотеку для строк, вдохновился, и мы на фортране всандалили работу со строками; Женя Пыряев, например, написал функцию lens, что означало "длина строки", и которая возвращала первое число целого массива. (Отвлекаюсь на Фортран на М6000: строки там были - целые массивы, по два символа КОИ-8 в слове.) Нет, у нас было всё это indexOf, concat, join, и т.п., так что спасибо за вдохновенье.

А потом, несколько лет спустя... да прямо скажем, в 86-м, когда всё начало само рассыпаться (Чернобыль тоже Сорос взорвал?), мне довелось поехать в отпуск на работу программистом по контракту. На пиэле. Ну подзубрил, чо. На ЕС сходил потыкал в их дурацкие учоные клавиши у дурацких мониторов (чё дурацкие - да у нас на СМ1-2 давно были растровые, а эти зелёненькие закоряки, вырисованные будто стрелкой осциллографа...)

Короче, поехал в Новороссийск, поселили меня в одиночный номер, с телевизором, в гостинице посреди города; работа была с видом на залив, пешком 10 минут; я купил себе белые брюки, которые, с непривычки, приходилось каждый день стирать, сначала замочив, в раковине для умывания.

Из всего этого я делал театр: работаю как будто я в Калифорнии. Так я себе представлял Калифорнию: программист с утра в белых штанах идёт на пляж (я торчал на пляже до обеда), потом обедает не спеша в местном ресторанчике и идёт в ВЦ, где сидя у монитора, с окном на море, он весело, непринужденно, с дикой скоростью создаёт Программный Продукт.

Скорость была офигенная, да - за неделю я сбацал читалку лент с данными с Немагнитного Судна "Заря"; формат данных был дебилен, так что там парсить биты... но ничо; результаты записывались в виде легко читаемых файлов на магнитную ленту; написал подробные инструкции операторам, которые уже изучали эти инструкции, и у меня образовывалась неделя ни фига не делать, пока шхуна "Заря" не соизволит доплыть до отечественных вод. Ей, как правило, мешал сильный встречный ветер, каждое лето дувший в Средиземном Море с востока... так что им приходилось куковать в Марселе, неделями! Не видя ни родных жен, ни родного начальства, ни родной парторганизации, ни родной части (они там все были переодетые офицеры).

Ну кстати вот, плохой язык, а программировалось быстро, т.к. там чего ни хватишься - всё есть.

И я задумал, не прокатиться ли на каком пароходе, когда ещё увижу Чёрное море?

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

Пошел в гостиницу, включил BBC World Service (Bushhouse, London) (у меня телевизионная антенна в привезённый ВЭФ была воткнута - я им попереключал), замочил запачканные за день белые брюки, сижу пью чай. Вдруг слам-бам, окно нараспашку, потом хлоп, антенна от ВЭФА оторвалась, только что ВЭФ не вылетел в окошко. Шторм.

Через несколько минут сухогруз Пётр Васев врезался в кремового "Адмирала Нахимова", погубив несколько сот человек (никто не знает сколько, потому что была масса левых пассажиров). Тётки все эти с палубы потом, конечно, всплыли, но не на первый день. Спаслись, в начавшуюся штормягу, в-основном молодые, здоровые люди... кому повезло, конечно, и не упал с верхней палубы на голову трап, и кого не отпихнули от шлюпки в определённый решительный момент.

Ну что, это уже не отдых; стали прибывать родственники погибших, мой номер понадобился; а у меня было всё сделано, инструкции написаны; я сказал гудбай и отбыл восвояси. Мне потом деньги долго не хотели платить, потому что я дезертировал из экспедиции. Это была экспедиция. И это был ПЛ-1.
juan_gandhi: (Default)
Над Паскалем народ любит смеяться почему-то. Я его изучал ещё когда только-только перевели статейку; странно гляделось на фоне приближенных к архитектуре.

Но потом, уже в перестройку, заказчику понадобилась версия xmodem/ymodem/zmodem/kermit для Паскаля; я это, как нынче принято в Индии, аутсорснул в Новгород, но в код-то тоже надо было заглядывать, заказчик у меня был строгий - и постепенно подсел. Обнаружил, что двусмысленностей в Паскале на порядок меньше, чем в Си. Ошибок мало получается на квадратный метр кода.

Ну а потом, когда задачи пошли кондовые, мы с [livejournal.com profile] hrenatson сбацали форт-интерпретатор на базе паскального механизма виртуальных методов (общая же задача втыкать колбаки и держать ручной стек была и до того); после чего паскальность нашего кода была как бы вторична.

Дельфями я как-то не увлёкся, презирал формочки. Ну в смысле, уважал, но не настолько, чтобы руками трогать.

В Борланде дельфисты были такие странные люди. Со стороны поглядишь - просветлённые, а копнёшь - о боже. Однажды скандал был, какую-то фигню для дельфей надо было срочно, ну типа интеграция с какой-то базой; люди из джейбилдера им рассказали, как это делать, а потом вдруг обнаружили, что дельфисты заявку на патент подали. Изобретатели.

В принципе, всё в прошлом, но, по-моему, в Эмбаркадеро ещё остались какие-то динозаврики, выпускают "дельфи для айпада".

Кстати, это в Европе говорят "Дельфи", а в Борланде оно всегда звалось "Делфай". Ну это ладно.
juan_gandhi: (Default)
Ну все знают Си, чего там. Я его изучил по Кернигану-Ричи и преподавал ещё когда он был не легендой, а экзотикой. И это было до появления Писи на Руси. У нас на работе коллеги, готовясь к эмиграции, исправно записывали за мной. А книжка была вполне доступна в библиотеке, т.к. экзотика ж.

Программировать на нём попробовал, когда контора прикупила два PC XT; написал какой-то форматизатор для многостраничной печати; не Форт, конечно, но миленький язык.

Потом, когда заказы на Форт растаяли, под давлением Сороса и коварных демократов, разваливших Союз, си был языком, на котором мы со Львом писали на аутсорс, всякие коммуникационные библиотеки. Что смешно, про юниттесты тогда никто ничего не знал, и для тестирования поведения при ошибках я буквально отсоединял один проводочек на RS232 (сам же и паял) и смотрел на поведение.

Позже, когда мы работали в НИИ Арктики и Антарктики, накатал большую софтяру для рисования карты полярных льдов; пришлось заодно пофиксить malloc/realloc, чтобы кучу реюзать, а не бросать фрагментированной.

В Танграме пришлось попинать фулл стек - и база данных, и MFC, и репликация какая-то. Как-то всё не то чтобы в удовольствие; задор только был, что вот, распределённая апликация, кустомеров много...

Последний проект был - парсер и билдер для TTF-файлов; там уже, по природе задачи, пришлось делать серьёзную библиотеку для объектов, чтоб глубоко клонировать, стрингифицировать, сравнивать, хранить в множествах и т.д. Никакого STL тогда ещё не видать было. И тем же летом открыл для себя джаву, в которой всё это есть, clone, equals, toString, Set... и плюнул на си. Объявил друзьям,что си - legacy language.

Практически больше к нему не возвращался. Ну разве в гугле с GWS потрахался, на радость местным идиотам.
juan_gandhi: (Default)
Форт я полюбил с первого взгляда. Году типа в 86-м в Саентифик Америкене был опубликован обзор языков; меня все оставили холодным, но когда увидел строчку
10 0 do ." *" loop

я понял, что этот язык для меня. Обратность польской записи меня не смущала, какая на хрен разница, на калькуляторах то же самое.

А тут как раз Коля Ноздрунов, Слава Кириллин, Серёжа Кацев на матмехе вовсю имплементировали Форт; да и Баранов распространял о себе слухи как об Отце Русского Форта. И Игорь Агамирзян тоже подключился.

Короче, мы со Львом стали это дело тоже имплементировать на наших архитектурках, на М6000, СМ1-2, а потом и на 8080. Скорость девелопмента примерно так раз в 10 подскочила. И всё по-русски... в смысле, это уже управление буровой, я часть кода перекатал на форт, уж больно удобно было прямо по ходу дела, в процессе бурения, скриптовать управление этим самым бурением. Люблю живые системы.

Ну и швабода подоспела, кооператив форт-инфо; через него контракты пошли. Симулятор плавающей арифметики написал, вышло в полтора раза быстрее, чем борландский (ну, познакомившись позже с борландскими... много позже немножко улучшив им такую смешную вещь как strlen, я уже не удивлялся); короче, деньги текли если не рекой, так хорошим таким весенним ручьём.

Даже конференции были фортовские; приезжали эстонские программисты и медленно и печально объясняли, что русские программировать не умеют (а мы смеялись), и приезжал Ларри Форсли, и тоже что-то впаривал о красоте кода. А я читал как книгу код C.H.Ting-а, как это у него всё красиво.

Но потом деньги у госконтор кончились, и пришлось с фортом несколько подзавязать.

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

Теперь-то что, теперь форт - это уже такая маргинальщина... несколько пенсионеров на оз.Тахо уже который год пишут что-то бесплатно; фортовики встречаются в Санивейле раз в месяц, и иной раз старенький C.H.Ting рассказывает, как он имплементировал форт на писи и что из этого вышло.

Я, кстати, имплементировал было на джаваскрипте, да забросил - кому это всё нужно... ну, может быть; на моей новой работе мы, похоже, сделаем таки на сервере интепретатор.
juan_gandhi: (Default)
Когда наш завод, ЛМЗ, захватил Завод Турбинных Лопаток (а вы думали, только при капитализме Оракл прикупает Сан?), то программистам-лопаточникам понадобилась помощь в программировании, на коболе, а т.к. я во все дырки затычка, то тут же вызвался добровольцем (тем более очень близко к дому).

Кобол классный язык, если его применять с умом. Программа разбита на четыре раздела; единственный, наверное, язык, где документация как бы обязательна, и где данные описываются отдельно от операций. После кобола я ещё долго рисовал в коде горизонтальные чёрточки, отделяя кусочеки.

В разделе данных описываем структуры, в разделе процедур пишем, шо с ними мы такое делаем, причем кондовым русским языком. Особо мне нравилось
ВЫДАТЬ ДЕНЬГИ НА ПЕЧАТЬ;


Кобольщики бывают разные; вообще с коболом, как и с джавой, главная проблема не в языке, а в программистах. Были грамотные, типа Саши Студенникова, который одной рукой мог навалять код, печатающий сумму прописью, по требованию обнаглевшей бухгалтерии; были и малограмотные, типа Лины Гольдберг, которая, как только её программа рушилась, обиженно восклицала: "я ничего не меняла!" - подразумевая происки врагов.

К кобольщикам близко по духу примыкали т.наз. алгоритмисты - нет, не те, что выдумывают полиномиальные деревья для приоритетных очередей, а те, что пишут "задания на программирование", из обыкновенного CRUD делая серьёзный документ страниц на 80, с подписями и печатями. Как в файле хранится запись, а в записи единственный реквизит, номер детали, и к нему алгоритмы - ввода номера детали, вывода номера детали, изменения номера детали и удаления номера детали. Ну тупые, ну. Меня за насмешки из этих кобольщиков выперли обратно в фортранщики. Я цинично брал их тексты и ходил зачитывать в соседнюю группу, чтоб все поржали.

На этом мой кобол и закончился; не скажу, чтобы не получил удовольствия; отдыхаешь головой после Пересмотренного Сообщения об Алголе-68.
juan_gandhi: (Default)
Я окончил алгол и матмех практически одновременно. Некоторое время пошкандыбал на ассемблере, но это неинтересно; и т.к. на нашем родном заводе, ЛМЗ, было много научных расчётов (турбины и т.п.), то фортран, передовой для того времени язык, удалось впарить довольно быстро. На Минске-32 был фортран-4, вполне миленький язык, с возможностью отладочного вывода, в частности.

Ну что такое фортран: несколько операторов да форматы. Форматы - это было как раз новенькое, и по устройству они эквивалентны нынешним форматам в си и джаве (джавщики обычно в области форматов невежественны). Шесть пробелов в начале строки, куда можно совать метки. Эффективно очень для программирования, если goto не злоупотребляешь. Я злоупотреблял, так что у меня иной раз с трудом давалось.

Но мне повезло в жизни, завёлся коллега, который писал функции в несколько строк длиной. Я был поражен до глубины души и стал стараться ему подражать. Коллегу потом продвинули в менеджеры... но у нас в отделе менеджеры тоже писали программы, если умели, конечно; вплоть до начальника отдела.

На Минск-32 тоже были перфокарты, с более передовой кодировкой - поперёк карты. Так что фортран практически можно было читать глазами, если коды знаешь; а кто в те времена не знал кодов.

Однажды подруга жены пришла к нам в гости и попросила научить её фортрану. Сидя на кухне нашей коммуналки, мы провели два часа, я извёл 6 перфокарт, и она научилась. Это было последнее, чему она научилась в жизни; все последующие годы это знание обеспечивало ей работу. Эффективный язык, не то что ваш Хаскель, учишь-учишь, толку нету.

На следующей работе мы вообще поставили фортран главным языком; на нём и накатали систему управления буровой, для М6000 (это аналог хьюлет-паккардовских каких-то машин). Ну там чуток на ассемблере, механизм диспетчеризации мессагов да конструкты всякие типа case. Да, у нас в фортране были и кейсы, и фильтры, и мапы... функционального программирования было до хренища. Я и слова такого не знал, просто имплементрировал да и всё; потом пришел [livejournal.com profile] sguez и объяснил нам, что мы пишем функционально. Ну кто как, конечно, но в целом да. И акторы у нас были, но статически всё определялось, кто кому что может рассылать и кто что принимает.

В сумме на фортране я программировал лет 15, наверное. Чем фортран специфически хорош - 1to1 мапингом строк программы на ассемблерный код. Так что, зная, как оно компилируется, можно творить чудеса. Что мы и делали.
juan_gandhi: (Default)
Алгол был первый язык, с которым я ознакомился. Солидный язык, с подчёркнутыми ключевыми словами, бегин и енд, с процедурами... У меня ушла неделя, чтобы освоить это уравнение: x := x+1; но потом ничего пошло.

Только у нас на матмехе программирование было сопряжено с различными обстоятельствами. Сначала пишешь разборчиво код, сдаёшь на перфорацию; тебе выдают карты. Потом эти карты сдаёшь на машину; не следующий день тебе выдают узкую бумажную полосу, на котором или напечатан результат, несколько вещественных чисел, или длинная последовательность трёхзначных чисел - кодов, которые надо было расшифровать, чтобы прочитать сообщение об ошибке (типа "неопределённый идентификатор"). Это была машина М20. Потом наступил прогресс, и поставили машину М220 с широкой печатью. И в алголе нашем, в смысле в библиотеке, появилась новая процедура для печати, p0165. До того была p0042, которая только цифры печатала. А теперь тексты; и сообщения об ошибке тоже печатали нормальным языком.

Я к тому времени надыбал шабашку (контракт, на современном языке) и ходил по вечерам да по ночам на БЭСМ-4, программировал что-то геологическое. Там проблемы были не с алголом, а с компилятором алгола - компилятор был на лентах, а ленты хреново читались. И вот нажимаешь кнопку, твои перфокарты прочитаются, первый проход компилятора нормально, а второй проход не читается. Повторяешь. Не читается. И так много раз.

Напечатать график на этом широком АЦПУ было достижением программирования (такой у нас тогда был уровень). И у меня была мечта - написать бы свой язык, без всей этой ерунды с бегинами и ендами, с процедурами и параметрами по значению, а чтобы интерпретировал прямо с перфокарт, без проходов.

Много позднее я такой язык встретил, он назывался Форт.

После матмеха я ещё один раз сталкивался с алголом - на Минске-22, старинном драндулете, тоже с широкими магнитными лентами, с пультом с лампочками... но на Минске-22 мне не довелось поработать.

Profile

juan_gandhi: (Default)
juan_gandhi

March 2017

S M T W T F S
    1 2 3 4
5 6 7 8 9 1011
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 29th, 2017 09:08 pm
Powered by Dreamwidth Studios