1.2, Аноним (-), 10:57, 18/05/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Очередной проблемно-ориентированный язык.
"Мышки плакали, кололись, но продолжали жрать кактус!" (с)
| |
|
2.9, Iaaa (ok), 12:21, 18/05/2017 [^] [^^] [^^^] [ответить]
| –4 +/– |
Очередная реинкарнация Паскаля.
"Мышки не смогли осилить ничего выше школьного курса информатики, но тоже хотят в IT" (с)
| |
|
3.24, Аноним (-), 17:32, 18/05/2017 [^] [^^] [^^^] [ответить]
| –3 +/– |
сейчас в школах помимо паскаля доступны СИ, пейтон, жабаскрипт.
| |
|
|
|
6.49, Аноним (-), 20:30, 20/05/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
ага, иди Сократу расскажи
один дурак скажет, так другой обязательно повторит
| |
|
|
|
|
|
1.3, Аноним (3), 10:57, 18/05/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
больше всяких языков, на которых даже олигофрен программировать сможет. ну и полученный код сможет любое быстрое железо легко опустить.
| |
|
2.5, Аноним (-), 11:26, 18/05/2017 [^] [^^] [^^^] [ответить]
| –9 +/– |
Для гугла перейти на Rust - значит признать бесполезность Go. Это примерно то же, что надеяться на официальное включение Swift в андроид-студию
| |
2.29, Аноним (-), 17:46, 18/05/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
С каких пор Rust стал инструментом для относительно быстрой разработки с большим инструментарием?
| |
2.53, iZEN (ok), 18:46, 22/05/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Rust
Очень долго компилируется, почти как WebKit-Gtk2.
| |
|
1.8, Аноним (-), 12:18, 18/05/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
А ее какие языки там поддерживаются и почему этой студии нет в репах?
| |
1.10, прохожий (?), 13:08, 18/05/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +10 +/– |
сразу видно большинство комментаторов ничего не писали под android, но мнение имеют
| |
|
2.11, Аноним (-), 13:19, 18/05/2017 [^] [^^] [^^^] [ответить]
| +/– |
Прохожий #мимопроходя сказал ровно настолько насколько смог выщурить со стороны.
| |
2.14, НяшМяш (ok), 14:17, 18/05/2017 [^] [^^] [^^^] [ответить]
| +3 +/– |
я бы сказал больше - большинство комментаторов даже рядом с андроид разработчиками не сидели
| |
|
3.16, Аноним (-), 14:30, 18/05/2017 [^] [^^] [^^^] [ответить]
| +5 +/– |
Не так, я думаю все еще хуже: большинство комментаторов даже рядом с разработчиками не сидели.
| |
|
4.25, Аноним (-), 17:33, 18/05/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Не так, я думаю все еще хуже: большинство комментаторов даже рядом с
> разработчиками не сидели.
Может хватит называть html верстальщиков разработчиками?
| |
|
|
|
1.12, ferux (ok), 13:59, 18/05/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Алгебраические типы данных и pattern-matching в Kotlin уже добавили? Если нет - то ненужно. Зачем вообще создавать язык в 2010-х, не закладывая в него этих фич?
| |
|
2.15, Crazy Alex (ok), 14:28, 18/05/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
Первая "фича" в языке, поддерживающем ООП может и имеет какой-то смысл (хотя обычно спокойно делается в библиотеке). Вторая - на фиг не нужна, а то и вредна. На то и наследование, требующее вменяемого проектирования вместо ad-hoc подхода pattern-matching.
| |
|
3.19, ferux (ok), 15:00, 18/05/2017 [^] [^^] [^^^] [ответить]
| +/– |
Библиотечная реализация алгебраических типов через ООП всегда будет выглядеть более громоздкой чем реализация "в языке".
>Вторая - на фиг не нужна, а то и вредна. На то и наследование, требующее вменяемого проектирования вместо ad-hoc подхода pattern-matching.
И почему тогда разработчики Swift и C# так не считают т.к. реализовали/добавили pattern-matching? Никто ведь не призывает использовать pattern-matching вместо наследования с виртуальными методами.
И да, Kotlin разве не мультипарадигмальный язык, что вы делаете такой упор на ООП?
| |
|
4.20, Crazy Alex (ok), 15:38, 18/05/2017 [^] [^^] [^^^] [ответить]
| +/– |
Что там громоздкого? Описал Variant - и вперёд.
Тоже мне, примеры.
Swift - вообще не аргумент, судя по ругани сидящих рядом со мной ios-ников это полигон, в который напихали что можно и что нельзя без какого-либо проектирования. Шарп - тем более сборная солянка, созданная в надежде привлечь всех мыслимых developers.
А на ООП я в данном случае делаю упор, потому что оно предоставляет гораздо более поддерживаемый подход, чем pattern matching. Ровно то же различие, что, например, между case c кодами ошибки и иерархией исключений, или между finally и плюсовым RAII, или между пользовательской функцией init и конструктором - в одном случае можно что-то забыть или сделать неконсистентно, во втором - получаешь предсказуемое поведение.
| |
|
5.21, ferux (ok), 15:58, 18/05/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
Попробуйте реализовать что-то похожее https://doc.rust-lang.org/std/result/ через ООП без patter-matching и алгебраических типов данных, а потом попробуйте это использовать. И не надо здесь говорить, что нужно использовать исключения - есть случаи, когда похожий на Result подход более приемлем.
Сразу скажу, что получается громоздко и далеко не так красиво, как в Rust: приходится каждый раз создавать классы для возвращаемых значений функции вместо использованиями sum-type; отсутствует возможность проверки на этапе компиляции, все ли типы в switch-е перебрал из sum-type, реализованного в виде иерархии/композиции классов.
| |
|
6.32, Crazy Alex (ok), 18:03, 18/05/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
Нет, спасибо, я лучше пешком постою. Кром совсем уж сурового эмбеда такого же сурового легаси именно исключения и надо использовать. Я вдоволь напроверялся ошибок на C чтобы ненавидеть этот адски неудобный (и тормозной) подход.
И нет, в приличных языках вроде С++/D ничего каждый раз создавать не надо - делается один раз шаблон с неявным преобразованием в тип-результат, для проверки статуса ошибки - либо специальная функция (для параноиков), либо реализовываем оператор преобразования в bool. Выглядит всё совершенно прозрачно. А проблема "все ли типы в свитче перебрал" - это явно не к этому примеру, здесь перебирать нечего. А там, гд ехочется перебрать - нужны интферфейсы/абстрактные классы и наследование, там не реализовать метод не дадут.
| |
|
7.33, ferux (ok), 18:20, 18/05/2017 [^] [^^] [^^^] [ответить]
| +/– |
> А проблема
> "все ли типы в свитче перебрал" - это явно не к
> этому примеру, здесь перебирать нечего. А там, гд ехочется перебрать -
> нужны интферфейсы/абстрактные классы и наследование, там не реализовать метод не дадут.
Ок. Пример: модуль взвращает ошибки 5-и типов (пусть будут хоть объекты Exception-в, если вам они ближе). У модуля 2 пользователя и каждый из них по-совему обрабатывает ошибки этих типов.
Обработка этих ошибок реализуется довольно просто и надёжно в виде свича по этим типам, если язык поддерживает проверку, что все типы из возможных проверены. Не надо ничего более создавать.
Как вы предлагаете обрабатывать эти ошибки с помощью интерфейсов и наследования?
| |
|
8.34, ferux (ok), 19:47, 18/05/2017 [^] [^^] [^^^] [ответить] | +/– | ![](/avatar/24dcc43a8ba20a9101e04a9588a63c54.jpg) Вот следуя подсказке анонима в ветке ниже как это будет выглядеть на сабже для... текст свёрнут, показать | |
|
|
|
5.27, Аноним (-), 17:40, 18/05/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Swift - вообще не аргумент, судя по ругани сидящих рядом со мной
> ios-ников это полигон, в который напихали что можно и что нельзя
> без какого-либо проектирования.
И это правда, переход на версию 3 был болезненным. Но надо отдать должное для своих лет очень даже неплохо всего понапихали.
| |
|
4.52, Michael Shigorin (ok), 13:34, 22/05/2017 [^] [^^] [^^^] [ответить]
| +/– |
> И почему тогда разработчики [...] C# [...] реализовали/добавили pattern-matching?
Не удивлюсь, если в итоге по соображениям вида "вали всё в раковину", которая kitchen-sink.
| |
|
|
2.22, анон (?), 16:54, 18/05/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вообще-то в котлине более широкий подход чем pattern matching. К тому-же оператор when вкупе со смарт кастами делает то же самое что и паттерн матчинг, нет нужды реализовывать его отдельно.
| |
|
3.23, ferux (ok), 17:02, 18/05/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
и что, when + smart casts на этапе компиляции обнаружит добавление ещё одного дочернего класса для базового типа, объект которого проверяется в when?
| |
|
4.26, анон (?), 17:36, 18/05/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Обнаружит, но только при условии использования sealed классов.
| |
|
|
|
|
|
3.51, nc (ok), 13:32, 22/05/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Всегда хотел спросить у тех кто пишет "ненужно" - а что "нужно"?
| |
|
|
|