|
|
| Результаты опроса: Какой язык лучше | |||
| 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. Показов 38447. Ответов 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
|
||||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||||
| 19.12.2018, 12:08 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 19.12.2018, 12:08 | ||
|
0
|
||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||
| 19.12.2018, 12:09 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 19.12.2018, 12:10 | |
|
0
|
|
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||
| 19.12.2018, 12:11 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 19.12.2018, 12:56 | ||||
|
А пока можете погуглить как аналогичная задачка на искоробочных средствах STL решается. Это на каждом заборе расписано. Оно правда по возможностям в планеразборки иерархий от GC недалеко ушло, потому как предназначалось аки его заменитель для бедных. Но для примитивных хранилищ данных хватает выше крыши и вообще самое то. А для активных объектов конечно поудобнее более продвинутая система на двунаправленных ссылках. Добавлено через 38 минут Добавлено через 56 секунд
0
|
||||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
|||||
| 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
|
||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||
| 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
|
||||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||||||||||
| 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 и стоит ли? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|