|
|
| Результаты опроса: Какой язык лучше | |||
| 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. Показов 38590. Ответов 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
|
||||
|
14739 / 9513 / 1364
Регистрация: 21.01.2016
Сообщений: 35,903
|
||||
| 19.12.2018, 12:08 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 19.12.2018, 12:08 | ||
|
0
|
||
|
14739 / 9513 / 1364
Регистрация: 21.01.2016
Сообщений: 35,903
|
||
| 19.12.2018, 12:09 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 19.12.2018, 12:10 | |
|
0
|
|
|
14739 / 9513 / 1364
Регистрация: 21.01.2016
Сообщений: 35,903
|
||
| 19.12.2018, 12:11 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 19.12.2018, 12:56 | ||||
|
А пока можете погуглить как аналогичная задачка на искоробочных средствах STL решается. Это на каждом заборе расписано. Оно правда по возможностям в планеразборки иерархий от GC недалеко ушло, потому как предназначалось аки его заменитель для бедных. Но для примитивных хранилищ данных хватает выше крыши и вообще самое то. А для активных объектов конечно поудобнее более продвинутая система на двунаправленных ссылках. Добавлено через 38 минут Добавлено через 56 секунд
0
|
||||
|
14739 / 9513 / 1364
Регистрация: 21.01.2016
Сообщений: 35,903
|
|||||
| 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
|
||
|
14739 / 9513 / 1364
Регистрация: 21.01.2016
Сообщений: 35,903
|
||
| 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
|
||||
|
14739 / 9513 / 1364
Регистрация: 21.01.2016
Сообщений: 35,903
|
||||||||||
| 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 и стоит ли? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 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
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|