[12:08:25] <TRUE> valexey> алсо шелл может быть рядышком с текстовым редактором.
Ну, если рядышком или внутри, но норм. Хуже точно не станет.
[12:12:19] <TRUE> valexey> а вот как вы думаете, начиная изучать новый изыг лучше в текстовом редакторе, или сразу искать и выбирать IDE/плагины для текстовых редакторов которые превращают их в IDE?
С одной стороны, текстовый редактор кажется слишком аскетичным. Опять же, даже ошибки синтаксиса или подсказки, почему это неправильно не выдаёт. С другой стороны, IDE - это слишком избыточно.
[12:12:35] <TRUE> Фреймворки на начальном этапе вредны. Наша цель - понять язык, а фреймворки и сложные задачи оттягивают концентрацию внимания на себя, и язык остаётся где-то в тени.
[12:14:17] <TRUE> Думаю, язык нужно пробовать на хорошо знакомых и часто исполняемых задачах. Тогда сама задача - её решение - уже есть в голове, и остаётся только маленькими шажками перебегать от одной задачи к другой на пути к решению.
[14:20:06] <_valexey_> TRUE: есть нюанс - решение на разных языках может сильно отличаться.
[14:20:43] <_valexey_> А попытка решить задачу привычным образом на новом языке может привести к фейлу
[14:21:19] <TRUE> ну, если языки общего назначения, то само решение отличаться будет не сильно. С другой стороны, языки разные. Странно было бы, если бы результат не отличался.
[14:21:58] <TRUE> например, сортировка.
[14:23:03] <TRUE> даже если брать функциональный язык и быструю сортировку, то суть решения в разбиении массива на подмассивы и копировании неправильных значений из одного места в другое.
[14:25:41] <TRUE> или работа с файлами. С данными из файлов. Абстракция над файловой системой в разных библиотеках может быть разной, но данные из них обычно представлены массивом данных, который после обработки может стать, например структурированным DOM-ом.
[14:26:08] <TRUE> или изображением в окне
[14:57:04] <valexey> в функциональном языке нет массивов :-)
[14:57:12] <valexey> тем более мутабельных массивов
[14:57:27] <valexey> поэтому алгоритм быстрой сортировки будет сильно отличаться. и будет уже не тем алгоритмом.
[14:57:43] <valexey> и вообще, на чистых функциональных ЯП от быстрой сортировки лучше отказаться.
[14:58:14] <valexey> поэтому да, подходы будут разные - задача "получить отсортированную последовательность" на функциональном и на простом императивном ЯП будут сильно разные
[14:59:00] <valexey> данные из файла могут быть представлены например ленивым списком :-)
[14:59:47] <valexey> а уж работа с абстракциями то совсем разная в разных ЯП.
[14:59:58] <valexey> работа с данными в ЯП со сборщиком мусора и без сборщика - разные.
[15:00:19] <valexey> да даже работа с указателями в с++ и си радикально разная... чо уж там говорить о совсем разных языках...
[15:12:21] <TRUE> valexey> поэтому алгоритм быстрой сортировки будет сильно отличаться. и будет уже не тем алгоритмом.
так я не говорил про алгоритм. В лиспе не массив, а список, но это не мешает написать нужную сортировку.
[15:12:48] <valexey> мутабельный список
[15:13:03] <valexey> напиши на haskell эффективную быструю сортировку на списках :-)
[15:13:19] <TRUE> не мутабельный список тоже подойдёт. Возвращай новый - делов то.
[15:13:34] <valexey> а ничего, что сложность алгоритма будет другой в итоге?
[15:13:53] <valexey> и что это будет уже совсем не тот алгооритм. похожий идейно, но НЕ ТОТ
[15:14:09] <TRUE> так цель-то изучение языка, а не эффективная реализация сортировки.
[15:14:57] <TRUE> ну ладно, не тот, так не тот. Цель - изучение нового языка. Просто нужны какие-то задачи, на которых можно обкатывать язык
[15:15:09] <valexey> эмм.. какой смысл реализовывать сортировку если ты даже не проверяешь и не понимаешь что именно ты реализовал?
[15:15:40] <TRUE> в смысле? Если сортирует, то норм. Или как?
[15:17:14] <valexey> нет. в алгоритмах сортировки важна алгоритмическая сложность и требования к тому, что именно оно будет сортировать.
[15:17:36] <valexey> также важны затраты по памяти
[15:18:31] <valexey> если ты попытался реализовать быструю сортировку как привык, а оказалось, что оно менее эффективно чем сортировка пузырьком, то, кажется, ты сделал что-то не то :-)
[15:19:08] <valexey> с тем же успехом можно сортировать с помощью random shuffle с последующей проверкой отсортирована последовательность, или нет. если нет, то повторяем.
[15:23:06] <valexey> О! Свежий лазарь вышел: http://www.opennet.ru/opennews/art.shtml?num=47758
[15:26:55] <TRUE> Это при сравнении сортировок и при выборе сортировки для конкретного случая важно. А для обучения новому языку нужна задача, которая простая и часто реализуемая. Такая задача, которую ты хорошо чувствуешь. То есть, та же сортировка подойдёт не всем. Но смысл именно в решении похожих задач. Задач, для которых ты наперёд знаешь все нюансы, с котоыми ты сталкиваешься, осилив очередную подзадачу. То есть, возвращаясь к сортировкам, не важна производительность. И даже больше: ты сделаешь реализацию на хаскеле и поймёшь, что на этом языке такого рода решения не проходят. А если взять сложную задачу или попытаться реализовать что-то новое, то концентрация внимания распределяется между решением задачи и её реализацией в коде. Короче, есть инженерная мудрость, которая в моей формулировке звучит так: "не крути две ручки сразу".
[15:27:59] <valexey> Ну, это таки да.
[15:29:22] <valexey> особенно поможет, если ты знаешь как решение уже должно работать, и сможешь выявить аномалии в решении на новом языке.
[15:35:10] <valexey> в общем, я бы наверно начал бы ковырять язык используя дефолтные тулзы, что идут в поставке, без IDE, в текстовом редакторе без подсветки синтаксиса - это заставит мозг вчитываться в синтаксис языка.
[15:35:21] <valexey> то есть связку терминал + текстовый редактор. параллельно.
[15:35:42] <valexey> + какой-то обзорный туториал по языку, если такое есть.
[15:35:52] <valexey> потом на простые известные задачки.
[15:36:54] <valexey> когда объем кода будет порядка 1000 строк, тогда можно будет смотреть уже в сторону IDE, наверное.
[15:42:15] <valexey> pub fn new(mut args: std::env::Args) -> Result<Config, &'static str>
[15:42:26] <valexey> Синтаксис раста интересный конечно :-)
[16:03:51] <TRUE> а для чего ' ?
[16:04:48] <valexey> Я пока что не знаю :-)
[16:05:12] <valexey> Но, учитывая, что дедушка раста был французом, ничего удивительного в наличии ' я не вижу :-)
[19:35:28] <valexey> "little".to_string()
[19:35:31] <valexey> хы
[19:41:02] <vlad2> Индусский код?
[19:41:10] <valexey> нет. Rust :-)
[19:41:14] <TRUE> или это не строка?
[19:41:24] <valexey> "little" - видимо не строка
[19:41:29] <valexey> небось литерал и строка - разные типы
[20:34:31] <valexey> "A String is stored as a vector of bytes (Vec<u8>), but guaranteed to always be a valid UTF-8 sequence. String is heap allocated, growable and not null terminated."
[20:34:44] <valexey> очевидно литерал не будет отвечать всем этим свойствам
[20:34:54] <valexey> а молчиливых конвартаций там, видимо, нет.
[20:34:58] <valexey> не как в с++
[20:40:37] <valexey> https://godbolt.org/g/zuEySA
[20:40:39] <valexey> такоэ
[20:41:10] <valexey> даже такое: https://godbolt.org/g/aDP223
[21:06:18] <valexey> блин. наш любимый язык не все любят... https://developers.slashdot.org/story/17/11/27/039226/why-esr-hates-c-respects-java-and-thinks-go-but-not-rust-will-replace-c