|
|
| Результаты опроса: Какой язык лучше | |||
| 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. Показов 38452. Ответов 384
Метки нет (Все метки)
Привет всем!
Java c C# уже сравнивали несколько раз. А как насчёт улучшенного (а может кто то считает "улучшенного") варианта java - языка Kotlin?
0
|
|
| 30.11.2018, 18:26 | |
|
Ответы с готовыми решениями:
384
Xamarin vs Kotlin? Kotlin vs Java Язык программирования Kotlin |
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||||
| 16.04.2019, 18:26 | ||||
|
Ну так они есть - https://github.com/dotnet/winforms. Ройтесь в них на здоровье.
1
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 16.04.2019, 20:54 | |||||||
|
Добавлено через 14 секунд Добавлено через 17 секунд Добавлено через 35 секунд Добавлено через 2 часа 17 минут При этом поелику список высвобождаемых буферов известен заранее, то то что Dispose не высвобождает их сразу - это огромнейший недостаток, дающий гигантский и абсолютно бесполезный отложенный оверхед.
0
|
|||||||
|
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
|
|||||
| 12.05.2019, 10:37 | |||||
|
Fulcrum_013, Я не знаю о чем вы там спорили, наверно, о том, что палка - не трансформатора, ну да ладно.
Насчет Dispose. Чего он там аналог не знаю. По сути это просто метод интерфейса. А обращаясь к определению msdn, то Dispose освобождает неуправляемые ресурсы. Как бы намек на то, что в остальных случаях он не нужен. Dispose еще можно вызывать для отписки от событий, чтобы утечек не было. Это как бы не проблема сборщика, т.к. ты сам впихиваешь другому объекту ссылку на себя, а потом не удаляешь ее и ждешь почему же объект жив. И говоря на чистоту, Dispose - лишь метод. То есть, можно не можно вызывать, все зависит от того, как ты закодировал метод Dispose (ну или как его написал кто-то другой), а вообще можно и самому взять и определить метод, который будет освобождать ресурс, и как бы ничего противозаконного, только using для такого объекта работать не будет. И вообще Dispose есть не у всех объектов. Деструктор и Dispose вещи разные. Dispose кто-то должен вызвать ручками, ведь это обычный метод. А деструктор вызывает сборщик. Обращаясь к "стандартной" реализации IDisposable (которую предлагает VS): в деструкторе проверяется был ли вызван Dispose и он вызывается. Это что-то на тот случай, если кто-то так и не догадался вызвать Dispose, когда надо. Разницу в применении может продемонстрировать Dispose у файлов: пока файл открыт программой, его не могут открыть другие. Если в данный момент, скажем, после окончания записи, ты вызвал Dispose - то все, к файлу есть доступ. А если ты забыл, то тебе придется надеяться на случай и ждать пока сборщик сгребет объект и вызовет деструктор, который вызовет Dispose. И то как бы не гарантия (но в данном случае, зная реализацию Dispose для файлов, это так), что так будет. В деструкторе можно писать что угодно. Добавлено через 4 минуты Добавлено через 3 минуты
1
|
|||||
|
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
|
||
| 12.05.2019, 10:50 | ||
|
Добавлено через 2 минуты Curry, Кстати. Добавлено через 1 минуту И msdn
1
|
||
|
Alvin Seville
|
|||||||||
| 12.05.2019, 18:03 | |||||||||
Добавлено через 7 минут Добавлено через 2 минуты
0
|
|||||||||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
|||||
| 13.05.2019, 04:44 | |||||
|
1
|
|||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||||
| 04.06.2019, 02:49 | |||||||||||||
|
Добавлено через 46 секунд Добавлено через 1 минуту А окно какой -никакой но ресурс оси. Добавлено через 10 минут Добавлено через 5 минут Добавлено через 15 минут Т.е. GC это такой способ лишить программиста автоматики управления жизненным циклом и взаимосвязями объектов дав в замен запрет на отказ от самого неэффективного алгоритма поиска буферов под объекты. Добавлено через 10 минут Добавлено через 1 час 11 минут Добавлено через 2 минуты
0
|
|||||||||||||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
|||||||
| 04.06.2019, 18:34 | |||||||
|
0
|
|||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 04.06.2019, 19:16 | ||||||
|
Добавлено через 2 минуты
0
|
||||||
|
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
|
||||||
| 04.06.2019, 19:19 | ||||||
|
0
|
||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||||||||
| 05.06.2019, 01:27 | |||||||||||||||||
|
без вызова Dispose из using не закрывается. Добавлено через 49 секунд К примеру закрытие окна по выходу ссылки из скопа. Добавлено через 2 минуты Добавлено через 10 минут А при использовании глобального оператора delete вызов деструктора просто добавляется компилятором автоматически. т.е. код
При этом вызывается он автоматом только в плюсах. В том же паскале как конструктор так и деструктор вызываются только вручную точно так же как Dispose в шарпе. Добавлено через 2 часа 17 минут Т.е. уничтожение объекта состоит из двух стадий - уничтожение собственно объекта и уничтожение/переиспользование буфера. GC при этом способен осуществить только второй этап да и то исключительно неэффективным способом. Но как бы от обязанности осуществлять первый этап - уничтожение самого объекта - никто не освобождал. И эту операцию необходимо осуществлять инстантно, иначе корректность поведения обеспечить нельзя. Вот именно поэтому GC и бесполезен.
0
|
|||||||||||||||||
|
Модератор
|
|
| 06.06.2019, 00:55 [ТС] | |
|
Возвращаясь к названию темы и СП. Создатели Kotlin качественно переработали сишножавный синтаксис. К примеру, доставляет то, что ключевое слово new оказалось избыточным. Если в выражении встречается MyClass(), то что это ещё может быть как не создание экземпляра класса? Так зачем впереди new ? Может я ошибаюсь, но мне кажется, что new свободно можно было бы выкинуть и в C++, Java, C#.
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 06.06.2019, 02:13 | ||
|
А вот в Java и Java++ (алсо новн аз шарп) где на стеке никак таки по всей видимости можно что в котлине и сделали. В дельфе для объектов классов VCL которые на стеке селить запрещено кста ти сделали тоже самое еще в 90-х. Добавлено через 8 минут В плюсаж же давно рекомендуется создавать классы на куче через make_shared и make_unique или аналогичный функционал для своих смарт-поинтеров, а new и delete использовать только при реализации оных смартов.
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||
| 06.06.2019, 02:49 | ||||||||||||
Добавлено через 7 минут
т.е. такой финт вносит неоднозначность с обоих сторон. Для его разруливания, в любом случае, где-то придется явно указать что мы имеем в виду. Удобнее это делать для конкретного объекта для которого требуется уточнение, чем к примеру указывать все параметры шаблона. Это уже не касаясь темы placement new который прочно и метко прописался в библиотеках, и остальных его форм с дополнительным функционалом.
0
|
||||||||||||
|
Модератор
|
|||
| 06.06.2019, 10:16 [ТС] | |||
|
При передаче тут же создаваемого объекта в аргумент функции. В большинстве случаев известен тип аргумента. Если MyClass или MyClass&, то объект создаётся на стеке, а если MyClass*, то на куче, т.к. за MyFunc(*(new MyClass())) надо по рукам бить. При неоднозначности, так же как с перегруженными функциями, тип указывать явно. placement new совсем другая языковая конструкция, пусть живёт, как и перегрузка operator new.
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 06.06.2019, 15:30 | ||||||
|
https://en.cppreference.com/w/... erator_new
0
|
||||||
|
Модератор
|
|||||
| 06.06.2019, 15:51 [ТС] | |||||
|
А эти перегруженные, пусть применяются.
0
|
|||||
|
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
|
||
| 06.06.2019, 21:50 | ||
|
Когда мне нужно сделать объект мусором, я потеряю на него все ссылки. Просто обнуллю переменные или отпишу объект от события и тп. Никаких диспосеров херососеров я вызывать не буду. Если же я знаю, что на объекте завязаны неуправляемые ресурсы, то я вызову Dispose. Тогда вопрос лишь в том, что считать неуправляемыми ресурсами. Я не вникал особо в спор про окна, но по-моему слишком много споров не о чем. Куда закинуть код. Какой коллбек лучше: Close, Dispose или подождать деструктора, памяти и так много. Добавлено через 5 минут Curry, вот кстати, больше всего что меня выносит в шарпе: почему static-модификатор класса не позволяет опускать static для всех членов. Можно, конечно, кинуть мне, что так однозначней, что память короткая, забудешь, а потом произойдет страшный взрыв.
0
|
||
| 06.06.2019, 21:50 | |
|
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). . . .
|