|
|
| Результаты опроса: Какой язык лучше | |||
| C# лучше всегда и везде |
|
17 | 36.17% |
| Kotlin лучше всегда и везде |
|
3 | 6.38% |
| Kotlin лучше для Android-а, C# в остальных случаях |
|
5 | 10.64% |
| C# лучше для Web-а, Kotlin в остальных случаях |
|
0 | 0% |
| Kotlin для Android-а, C# для Web-а, в остальном одинаковы |
|
0 | 0% |
| C# лучше для Android-а, Kotlin в остальных случаях |
|
0 | 0% |
| C# для Android-а, Kotlin для Web-а, в остальном одинаковы |
|
1 | 2.13% |
| Примерно одинаково хороши во всех областях применения |
|
6 | 12.77% |
| Оба бесперспективны |
|
5 | 10.64% |
| Оба "Тьюринговская трясина" (п. введён для Fulcrum_013) |
|
4 | 8.51% |
| Свой вариант (желательно о нём рассказать) |
|
6 | 12.77% |
| Голосовавшие: 47. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.69/162:
|
|
Модератор
|
|
C# vs Kotlin30.11.2018, 18:26. Показов 38619. Ответов 384
Метки нет (Все метки)
Привет всем!
Java c C# уже сравнивали несколько раз. А как насчёт улучшенного (а может кто то считает "улучшенного") варианта java - языка Kotlin?
0
|
|
| 30.11.2018, 18:26 | |
|
Ответы с готовыми решениями:
384
Xamarin vs Kotlin? Kotlin vs Java Язык программирования Kotlin |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 19.12.2018, 12:05 | ||||
|
Добавлено через 59 секунд Добавлено через 1 минуту
0
|
||||
|
14741 / 9515 / 1364
Регистрация: 21.01.2016
Сообщений: 35,907
|
||||
| 19.12.2018, 12:08 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 19.12.2018, 12:08 | ||
|
0
|
||
|
14741 / 9515 / 1364
Регистрация: 21.01.2016
Сообщений: 35,907
|
||
| 19.12.2018, 12:09 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 19.12.2018, 12:10 | |
|
0
|
|
|
14741 / 9515 / 1364
Регистрация: 21.01.2016
Сообщений: 35,907
|
||
| 19.12.2018, 12:11 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 19.12.2018, 12:56 | ||||
|
А пока можете погуглить как аналогичная задачка на искоробочных средствах STL решается. Это на каждом заборе расписано. Оно правда по возможностям в планеразборки иерархий от GC недалеко ушло, потому как предназначалось аки его заменитель для бедных. Но для примитивных хранилищ данных хватает выше крыши и вообще самое то. А для активных объектов конечно поудобнее более продвинутая система на двунаправленных ссылках. Добавлено через 38 минут Добавлено через 56 секунд
0
|
||||
|
14741 / 9515 / 1364
Регистрация: 21.01.2016
Сообщений: 35,907
|
|||||
| 19.12.2018, 13:05 | |||||
|
0
|
|||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 19.12.2018, 14:54 | |
|
Usaga, Доказательством ненужностти GC может быть невозможность реализовать тот же функционал автоматики что и на языках с более совершенными средствами. Вы сами согласились что автоматически такой функционал при помощи GC реализовать не возможно. Какие еще доказательства отсталости GC от современных средств вам нужны?
0
|
|
|
Модератор
|
||
| 19.12.2018, 15:06 [ТС] | ||
|
Как вы думаете, почему во всех остальных языках появившихся после С++ нет автоматически вызываемых деструкторов?
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 19.12.2018, 15:28 | ||
|
При этом как бы тулзы для спецов есть и их изобретать не надо, достаточно совершенствовать. Но потому как квалифицированных спецов дефицит жуткий, все это время во всю пузырился рынок срамо-агиловых антинаучных псевдометодик и неквалифицированных быдлокодеров с примитивнейшими хеллоувердами - ну типа бум веббыдлодева и прочих типа напишите свое приложение через 21 день и продавайте в майкрософт сторе. А им эти топ-тулзы как видите не осилить в принципе. Тут знания нужны и понимания графов ссылок с которыми нужно работать и принципы их построения и разборки. Вот и изобретают для них так чтоб типа без знаний но сразу оп и в дамки. Но так не бывает. В результате получают с современными архитектурами полностью ручное управление памятью - все эти пройти вручную ничем не отличаются от ручного вызова delete. В результате тонны быдлоскрипта и постоянного его рефакторинга уже давно создают больше проблем чем дают толку. Ну а вообще очень серьезный барьер который сейчас не могут преодолеть в дизайне языков - цепные функции с автоматическим вызовом. Т.е. как деструктор но для любой функции. Вся проблема в том что непонятно как назначать критерии ее автовызова - если по выходу из скопа то это от деструктора ничем не отличается, а как указать другие критерии концептуально не ясно.
0
|
||
|
14741 / 9515 / 1364
Регистрация: 21.01.2016
Сообщений: 35,907
|
||
| 19.12.2018, 18:35 | ||
|
Господин Fulcrum_013, всё, что вы доказали - только вашу некомпетентность и любовь помахать языком. Покажите мне код, в котором GC бесполезен. Чтобы я его мог у себя запустить и лично убедиться, что вы не балаболите. Пока что, вы уверенно и качественно доказываете обратное.
2
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 19.12.2018, 20:41 | ||||
|
Usaga, Ну дак покажите вы как это реализовать в автоматическом режиме. Вы же сами сказали - только ручками.
Добавлено через 15 минут При этом вы не привели ни одного кейса где ваш GC не может быть заменен даже искоробочным набором STL. И не приведете. Потому что такой юскейс действительно крайне редоки в иерархиях объектов вообще не встречается. При этом в комплекте с GC корректная работа WeakReference тоже никак не гарантирована. Что сужает реальное применение GC в автоматическом режиме до гораздо меньшего количества юскейсво чем даже решает искоробочная STL. Добавлено через 6 минут А причина вся в том что времена поменялись а соответсвенно и характер задач. GC проектировался в 50-ых и соответсвенно рассчитывался на работу с пассивными буферами данных. Обработка же и графы ссылок характерные для активных сущностей, таких как иерархии объектов, отличается кардинально. Здесь наиболее оптимальна двунаправленная схема слабо-владеющих и слабых ссылок с поддержкой самоудаления объекта. Работу с ней автоматика C++ способна обеспечить в 100% автоматическом режиме, в отличии от GC который потребует 100% ручного режима так же как и паскали и т.п. Добавлено через 9 минут Ну и главный момент - GC не есть и никогда не был средством защиты от утечек. Это средство защиты от висячих ссылок путем перевода их в утечки в надежде что эти утечки временны. Очевидно что склонность к труднообнаруживаемым утечкам - это главный недостаток GC. Система же защиты от висячих ссылок на двунаправленных ссылках такого недостатка лишена по определению. При этом именно двунаправленные ссылки востребованы в подавляющем большинстве современных юсекейсов для обеспечения взаимодействия объектов в иерархии. Очевидно что автоматика обеспечивающая работу такой системы наиболее эффективна как в плане удобства разработки так и в плане надежности и эффективности. Но такая автоматика не разу не про манаджед а про С++.
0
|
||||
|
14741 / 9515 / 1364
Регистрация: 21.01.2016
Сообщений: 35,907
|
||||||||||
| 20.12.2018, 07:59 | ||||||||||
|
Т.е. мне всё равно какой подход эффективнее и гибче. GC справляется. Точка. А вы доказать обратного не можете.
0
|
||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||
| 20.12.2018, 19:04 | ||||||||||||||||
|
Добавлено через 1 минуту Добавлено через 16 минут Добавлено через 7 минут Добавлено через 4 минуты Добавлено через 17 минут Добавлено через 12 минут Добавлено через 1 час 49 минут Добавлено через 3 минуты Добавлено через 1 минуту Добавлено через 2 минуты
0
|
||||||||||||||||
|
Модератор
|
||||||||||||
| 21.12.2018, 04:54 [ТС] | ||||||||||||
|
Я тут прикинул как бы на C# могла бы выглядеть автоматика для двухстороннего байндинга.
Это просто набросок, не лягайтесь сильно. Библиотечка в BaseBindingLib.cs
И пример использования для построения какого то байндинга. Передача сообщений просто как демка - должно же что то между связанными объектами происходить. Кликните здесь для просмотра всего текста
Результат выполнения
Перед отправкой в мусор одного из связанных объектов для него нужно вызвать UnBindAll(). При реализации какого то реального байндинга этот вызов будет где то в недрах этой реализации. Гуры C# конечно бы лучше сочинили, но, думаю, суть понятно, что забиндивание-разбиндивание вполне можно вынести в либу и использовать один раз.
0
|
||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 21.12.2018, 05:47 | ||
|
А других объектов в инфраструкутрах с деревом владения как то нема. Т.е. получается что с GC хуже чем вообще без автоматики. Добавлено через 6 минут Curry, Надеюсь знаете же единственный случай возникновения оторванного кольца которое без GC не удаляется? Так в древовидных иерархиях неравноправных элементов ака композит, а особенно с тотальным запретом на передачу владения, возникновение такого кольца невозможно. А все остальное без GC разбирается лучше чем с GC.
0
|
||
|
Модератор
|
||
| 21.12.2018, 12:57 [ТС] | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 21.12.2018, 17:45 | ||||
|
Добавлено через 1 час 10 минут Автора явы тоже ее в начале для реалтайма позиционировали. Но оттуда их сразу поганой метлой погнали и вообще чуть не растреляли как вражеских диверсантов. Такое впечатление что у подобных авторов это способ пиара такой. Добавлено через 14 минут Это сделано специально чтобы вынести мультипоточную работу с тяжелыми наборами данных из иерерахии, сделав все объекты редактировани/отображения к данных легковесными, а соответственно не требующими многопотока. Т.е. сделано по принципу параллелить или в режиме разделения ресурсов или в другом месте. В результате весь многопоток изолирован в работе с буферами модулей данных, а синхронизация нужна минимально возможная, потому что при таком распараллеливании всю иерархию связанных объектов датамодули могут рассматривать как один цельный ресурс требующий синхронизации при обновлении. А если делать по другому и рыться по иерархии в многопотоке, то придется синхронизировать доступ через мутексы при каждом доступе к каждому объекту в иерархии, вне зависимости от наличия или отсутсвия GC. Добавлено через 16 минут Тот же самый принцип применим в абсолютно всех других предметных областях. К примеру в САПР параллелить надо не работу по разборке/сборке/доступу к элементам чертежа, а решение уравнений пересечения поверхностей и прочий счет по данным генерируемым на основе созданной иерархии элементов.
0
|
||||
|
Модератор
|
|||||
| 21.12.2018, 19:44 [ТС] | |||||
![]() А ещё бывают языки с зелёными тредами, некоторые так спроектированы, что почти всё через создание дополнительных тредов делается цена создания которых мала. Но это не про С++/C#.
0
|
|||||
| 21.12.2018, 19:44 | |
|
Kotlin для Android [Kotlin] ACM ICPC
Как учить Kotlin и стоит ли? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|