
Roman
09.10.2017
17:54:41

Evgeniy
09.10.2017
17:55:32
Я, например, хорошо понимаю, что английская литература и англоязычные термины занимают все языковое пространство у программистов. Но при этом в переводных материалах мне хочется, чтобы у терминов были адекватные русские термины.

Roman
09.10.2017
17:56:34
можно наоборот, при первом упоминании и в указателе в скобках писать перевод)
Просто перевод специфических терминов заставляет многих программистов переходить на англоязычную литературу полностью

Google

Evgeniy
09.10.2017
17:58:21
Сложный вопрос.

Roman
09.10.2017
17:59:07
тут, как и везде, silver bullet (серебрянной пули) нет

Anna
09.10.2017
18:05:49
Просто перевод специфических терминов заставляет многих программистов переходить на англоязычную литературу полностью
Потому что нет устоявшихся и привычных русских, как мне кажется. Моё мнение - понятия нужно переводить и потихоньку внедрять, но делать это очень бережно и осторожно. Зачем? Чтобы потом можно было писать книги, выступать на конференциях, учить людей в универах и т п на русском языке, не перемежая его английским (потому что это тоже не огонь). Иначе замкнутый круг: нет литературы на русском -> читаешь на английком -> не знаешь как перевести -> нет литературы на русском
Но это действительно спорный и философский вопрос


Roman
09.10.2017
18:39:02
Потому что нет устоявшихся и привычных русских, как мне кажется. Моё мнение - понятия нужно переводить и потихоньку внедрять, но делать это очень бережно и осторожно. Зачем? Чтобы потом можно было писать книги, выступать на конференциях, учить людей в универах и т п на русском языке, не перемежая его английским (потому что это тоже не огонь). Иначе замкнутый круг: нет литературы на русском -> читаешь на английком -> не знаешь как перевести -> нет литературы на русском
ну так и хорошо, пусть со временем народ переходит на английский. Русский, как и любой другой язык, будет в этом плане всегда отставать от английского: все статьи и книги все равно сначала на нем выходят, больше всего материала на английском можно найти. Надо помогать людям преодолеть языковой барьер, а не потворствовать ему, на мой взгляд

Roman
09.10.2017
18:40:06

Roman
09.10.2017
18:40:33
Верно, но я за системный подход)

Roman
09.10.2017
18:43:32


Anna
09.10.2017
18:44:20
ну так и хорошо, пусть со временем народ переходит на английский. Русский, как и любой другой язык, будет в этом плане всегда отставать от английского: все статьи и книги все равно сначала на нем выходят, больше всего материала на английском можно найти. Надо помогать людям преодолеть языковой барьер, а не потворствовать ему, на мой взгляд
А я не про потворствование языковому барьеру, а про то, чтобы сообществу было о чём поговорить на родном языке, и чтобы это красиво и приятно звучало. Опять же, так можно больше народу заинтересовать и включить в диалог. Кому надо, всё равно на английском будут читать.

Roman
09.10.2017
18:44:38

Roman
09.10.2017
18:47:42
Ну, я не настаиваю. Надо только понять, какие цели вы преследуете, делая переводы статей. Если цель - говорить об F# по-русски, то да - надо переводить полностью, включая все термины (хоть мне и совершенно непонятна такая цель).
Я же предполагал, что цель - помочь разработчикам, у которых английский развит недостаточно, чтобы читать первоисточники, получать свежий материал по языку. Именно исходя из этого я рекомендовал не переводить термины - чтобы после этой помощи люди могли легко и самостоятельно находить ответы на интересующие вопросы.


Roman
09.10.2017
18:50:54
Ну, я не настаиваю. Надо только понять, какие цели вы преследуете, делая переводы статей. Если цель - говорить об F# по-русски, то да - надо переводить полностью, включая все термины (хоть мне и совершенно непонятна такая цель).
Я же предполагал, что цель - помочь разработчикам, у которых английский развит недостаточно, чтобы читать первоисточники, получать свежий материал по языку. Именно исходя из этого я рекомендовал не переводить термины - чтобы после этой помощи люди могли легко и самостоятельно находить ответы на интересующие вопросы.
Я думаю что тут стоит оставить перевод термина на усмотрение переводчика. Если переводчик хочет перевести, то пусть переводит. Не хочет, пусть не переводит.
Так как главная цель донести информацию на русском об F#. Кто не хочет читать переведённые термины, тот пусть не читает. Никто же не заставляет.

Google

Roman
09.10.2017
18:53:40
Я только не понимаю, кому и как это поможет
но знаю, что такое решение заставит определенную часть аудитории отказаться от переводов

Roman
09.10.2017
18:58:11
Привет!

Пир
09.10.2017
19:00:24
Привет, я в F# пока ноль, но хочу с ним хотя бы познакомиться, так что присоединился, чтобы почитать вас тут)

Roman
09.10.2017
19:01:12

Пир
09.10.2017
19:04:35
Хорошо, спасибо

Evgeniy
10.10.2017
04:35:57
https://github.com/fsprojects/FSharp.TypeProviders.SDK/pull/135
Теперь для провайдеров есть один API.

Nikolay
10.10.2017
05:02:47
Там Сайм вроде написал свои мысли, но я ещё не читал
https://github.com/Microsoft/visualfsharp/issues/2406#issuecomment-335328819

Mikhail
10.10.2017
05:19:14
Привет! Мне нужно пройтись по списку и посчитать количество вхождений каждого элемента. Для этого подойдет Dictionary из System.Collectioions.Generic, или есть что то получше/пофункциональней?

Evgeniy
10.10.2017
05:46:02

Mikhail
10.10.2017
05:46:32
List.groupBy - тот же эффект?

Evgeniy
10.10.2017
05:50:11
Да, только на выходе список, вместо последовательности.

Mikhail
10.10.2017
05:50:34
Спасибо!

Klei
10.10.2017
05:51:01

Evgeniy
10.10.2017
05:51:56

Pavel
10.10.2017
06:40:33
https://github.com/csoren/elmish-sample

Google

Nikolay
10.10.2017
07:13:21
@fvnever что за TAST?

Evgeniy
10.10.2017
07:13:46

Friedrich
10.10.2017
07:14:48
Видимо, это та абстракция, которой оперирует компилятор F# при компиляции кода.

Nikolay
10.10.2017
07:14:58
Ладно, но я всё ещё не понимаю, в чём проблема провайдеров с точки зрения Сайма?
В генерации IL кода?

Friedrich
10.10.2017
07:15:09
Там просто исторический экскурс и (полезное) рассуждение на тему того, почему мы не хотим пробрасывать в провайдеры компиляторный API.

Nikolay
10.10.2017
07:16:51
I’ll think it over more, but it still feels to me that the most simple path to unblock is to prototype the Assembly —> Abstract IL —> copy-of-ilwrite.fs in the TP SDK – it feels like just a day’s work to be honest.
День работы?

Vlad
10.10.2017
07:17:05

Friedrich
10.10.2017
07:17:27
Ну, для того, кто знает устройство ilwriter.fs — наверное, да.

Nikolay
10.10.2017
07:17:30
Чёт мне не верится

Friedrich
10.10.2017
07:17:47
@Dolfik слушай, а мы у себя уже научились эмитить код методов? Это не представляет какой-то неожиданной проблемы?

Nikolay
10.10.2017
07:18:33
Проблема в том, что нужно знать как внутри устроены сборки, чтобы это всё правильно сделать, это не так уж и просто
Код методов получается одной строчкой

Friedrich
10.10.2017
07:18:58

Evgeniy
10.10.2017
07:19:14

Friedrich
10.10.2017
07:19:19
Вот смотри. Представим, что у нас есть метод
void foo() => Console.WriteLine("")

Vlad
10.10.2017
07:19:48

Friedrich
10.10.2017
07:19:56
Он эмитится в байткод
<положить на стек пустую строку>
call [Console]::WriteLine

Google

Nikolay
10.10.2017
07:20:18
https://msdn.microsoft.com/ru-ru/library/system.reflection.methodbody.getilasbytearray(v=vs.110).aspx

Friedrich
10.10.2017
07:20:23
Как именно в GetILAsByteArray() будет представлен ссылка на Console?
Это будет номер из таблицы типов?
Совпадёт ли этот номер с нашим номером, который мы у себя эмитим? Мы за согласованностью этих номеров как-то следим?
Ах, там есть методы типа https://msdn.microsoft.com/en-us/library/ms145424(v=vs.110).aspx

Nikolay
10.10.2017
07:22:41
Ну на переменные я делаю ссылки

Friedrich
10.10.2017
07:22:44
Но это херова гора работы, похоже? Т.е. надо ещё распарсить (!!!) IL, вычленить оттуда токены типов, методов, аргументов и пр., перекодировать по-новой, и только тогда сохранять IL?

Nikolay
10.10.2017
07:22:50
А вот на другие вещи хз как оно там работает

Friedrich
10.10.2017
07:23:11

Nikolay
10.10.2017
07:23:13
Подожди
Щас в dotPeek посмотрю, есть ли там System/System.Console

Friedrich
10.10.2017
07:24:09
Мб с одним типом у тебя даже и совпала бы нумерация, а вот с десятком уже поломается :(

Nikolay
10.10.2017
07:24:59
Интересно
Метод WriteLine действительно есть
Но он не используется нигде
Видимо это какая-то внутренняя кухня, и используется он в IL
А в тайп провайдерах как тело метода генерируется?

Friedrich
10.10.2017
07:28:00
А дальше предполагается, что мы с тобой его сохраним нормально в байты :)

Nikolay
10.10.2017
07:28:15
Ну вот у нас есть Expr, и из него можно вытащить данные

Google

Nikolay
10.10.2017
07:28:19
У нас же не сырой IL

Friedrich
10.10.2017
07:28:28
Погоди, чо?
Expr это же про квотейшены?
Из квотейшена можно всё вытащить, да.
Это ты про erased-провайдеры, да?

Nikolay
10.10.2017
07:29:06
Generative

Friedrich
10.10.2017
07:29:17
Там нету Expr, кажется?

Evgeniy
10.10.2017
07:29:49
Что erased, что generative.
С помощью квотейшенов.

Nikolay
10.10.2017
07:30:43
Нужно будет разобраться в том, как работают ссылки на эти всякие Console.WriteLine, либо они тупо указываются в методах

Friedrich
10.10.2017
07:31:31

Evgeniy
10.10.2017
07:32:10
Friedrich Nikolay Вы же оба не писали провайдеров? :)

Friedrich
10.10.2017
07:32:27
Неа.

Nikolay
10.10.2017
07:32:40
Ну этот гемор нас ждёт в любом случае, даже при использовании ilwriter

Friedrich
10.10.2017
07:32:45
Как же мы их будем писать, отче, если нету поддержки под дотнеткор?

Nikolay
10.10.2017
07:33:05

Vasily
10.10.2017
07:35:45
Дайте хоть почитать, что Сайм написал по поводу провайдеров

Nikolay
10.10.2017
07:35:54
@fvnever а может эти типы можно получить через какое-то API?