Имя: Пароль:
IT
 
На каком языке/технологии писать?
,
0 Xapac
 
21.09.20
08:11
Добрый день!

Вот допустим чисто теоретически. я задумал написать приложение в 2020 году.
какой язык самый современный или актуальный в это наше непростое время, чтобы и десктоп и веб работало.

Вот например что то типа технологии flash.

в 2005-м современным был делфи
в 20010-м C# и прочие технологии net.

Просто с 1с-кой отстал от трендов. вот может кто в курсе, на чем люди пишут?
324 Serginio1
 
13.10.20
21:03
(323) Суть как раз клиента в браузере в виде Webassembly. Максимально быстрый код, без сборки мусора и JS.
Суть то в том что как с этим будет бороться Яблоко? Ведь с вэб приложений не возьмешь 30%
325 Креветос
 
13.10.20
21:18
(324) Если яблоко захочет бороться с этим, то просто заблокирует Webassembly в браузере Сафари для телефона.
326 Garykom
 
гуру
13.10.20
21:26
(325) Точнее сборки Webassembly без подписи и с определенными подписями
327 Креветос
 
13.10.20
21:31
(324) Да и на каких основаниях бороться? Они ведь не предоставляют таким приложениям сервис, который есть в магазине, значит и брать плату не за что. Магазин дает хорошую прибыль размещенным в нем приложениям, потому что они сразу находят своих пользователей. За это и берут плату. Это всем выгодно. А за приложения в браузере не за что брать плату. Я не думаю что они вообще будут с ними как-либо бороться.
328 Serginio1
 
14.10.20
10:09
(327) Ну вот сейчас идет война между эплом и эпиком по поводу внутренних платежей игроков.
Fortnite блокировали. Но через браузер https://3dnews.ru/1022563/microsoft-vsyo-ge-zapustit-xcloud-dlya-ios-no-v-obhod-app-store
играть можно.

То же касается и XCloud
https://www.sostav.ru/publication/epic-games-vernetsya-na-ios-i-android-cherez-partnerov-45431.html

Смотри (311)

(325) И представляешь сколько сайтов будет недоступно? Но эпл со своим сафари не идет впереди планеты всей
http://rsdn.org/forum/flame.comp/7848485.1
Без нужных API многие веб-приложения невозможны. Собственно Apple печально известна тем, что развитие Safari ощутимо отстаёт от Chrome. Некоторые предполагают, что это делается намеренно, чтобы дать преимущество приложениям.

Самый простой пример — уведомления. До сих пор сайт не может слать уведомления в iOS. Т.е. уже огромное множество приложений вроде чатов становятся ощутимо хуже своих нативных вариантов: кому нужны чаты без уведомлений. Или звонки. Вроде и есть WebRTC, однако нативные приложения позволяют интегрироваться в стандартную звонилку, а для веб-приложений такого API нет.
329 Провинциальный 1сник
 
14.10.20
14:10
(276) Просто я хорошо помню. Если на странице оказываются часики в виде java-апплета, то браузер netscape встает в ступор и комп свопит минуты две. А потом часики начинают работать. Или какая-то анимация декоративная. Нормальные веб-дизайнеры делали гифки, а извращенцы - джава-апплеты)
330 Кирпич
 
14.10.20
14:21
(329) Как только не пытались подсадить народ на эти апплеты, всё без толку. jbond просто не видел как убого выглядела его няшная java в начале. Ему простительно.
331 Кирпич
 
14.10.20
14:26
Зато сейчас java на высоте. Теперь и скорость нормальная и дядям с денюжками нраивицца.
332 Креветос
 
14.10.20
16:47
(328) Война из-за оплаты за пользование магазином. Эпики распространяли свое приложение через магазин эпла, а по правилам магазина, в этом случае все транзакции должны идти через магазин. Все по честному. Если эпики не будут использовать услуги магазина для распространения своей игры, то и войны никакой не будет. Они же сами нарушили правила договора, вот теперь и расплачиваются за свои косяки. Уйдут в браузер, но сомневаюсь что их прибыль останется на прежнем уровне. Посмотрим.
333 Garikk
 
14.10.20
17:01
а делфи кросплатформенно умеет?
334 Креветос
 
14.10.20
17:04
(333) Может умеет, может не умеет. Всем пофигу на это, никто не будет задумываться над таким ненужным вопросом
335 Serginio1
 
14.10.20
17:07
(333) Ну зарабатывают они не только на эплах. А вот ударить по эплу как раз могут оочень сильно.
https://www.newsru.com/hitech/07oct2020/usa_it_report.html
Конгрессмены обвинили Amazon, Facebook, Google и Apple в монополизации рынка

Претензии законодателей к Apple заключаются в том, что компания из Купертино устанавливает собственное программное обеспечение на свои устройства и "не дает лицензию на iOS другим производителям мобильных устройств", пишет TJ. Из-за этого пользователи могут скачивать приложения только из App Store, а разработчики вынуждены платить компании комиссию, не имея возможности распространять приложения иным способом.


В свежем докладе предлагается разделить крупные IT-компании при помощи изменений в антимонопольном законодательстве. В частности, речь идет как о структурном разделении IT-гигантов, так и о введении запрета на работу в смежном бизнесе. Детально эти предложения не прописаны, но, по всей видимости, авторы доклада считают необходимым превратить сервисы, принадлежащие Google, Facebook, Apple и Amazon в независимые компании. Речь среди прочего идет о принадлежащем Google видеохостинге YouTube, а также о WhatsApp и Instagram. Кроме того, в докладе говорится, что антимонопольные органы не должны разрешать крупным IT-компаниям покупать потенциальных конкурентов. Также авторы считают необходимым обеспечить функциональную совместимость и переносимость данных с одной доминирующей платформы на другие.
336 Garikk
 
14.10.20
17:14
>>Также авторы считают необходимым обеспечить функциональную совместимость и переносимость данных с одной доминирующей платформы на другие.
вот только ради этого стоит поддержать такие решения
337 Кирпич
 
14.10.20
17:16
(333) Умеет. Там у них Windows, iOS, Android и Linux
338 Кирпич
 
14.10.20
17:18
+(337)FreePascal ваще какoй то мультикроссплатформенный :)
Free Pascal is a mature, versatile, open source Pascal compiler. It can target many processor architectures: Intel x86 (16 and 32 bit), AMD64/x86-64, PowerPC, PowerPC64, SPARC, SPARC64, ARM, AArch64, MIPS, Motorola 68k, AVR, and the JVM. Supported operating systems include Windows (16/32/64 bit, CE, and native NT), Linux, Mac OS X/iOS/iPhoneSimulator/Darwin, FreeBSD and other BSD flavors, DOS (16 bit, or 32 bit DPMI), OS/2, AIX, Android, Haiku, Nintendo GBA/DS/Wii, AmigaOS, MorphOS, AROS, Atari TOS, and various embedded platforms. Additionally, support for RISC-V (32/64), Xtensa, and Z80 architectures, and for the LLVM compiler infrastructure is available in the development version. Additionally, the Free Pascal team maintains a transpiler for pascal to Javascript called pas2js.
339 Гений 1С
 
гуру
14.10.20
20:26
(0) вот и я думаю, на чем убийцу 1с писать. Не на чем. Кризис ИТ
340 H A D G E H O G s
 
14.10.20
20:27
(339) на бересте пиши, Сергей.
341 Гений 1С
 
гуру
14.10.20
20:30
(340) очень смешно, Ежов
342 v77
 
14.10.20
21:38
(339) Пиши на мисте
343 Serginio1
 
14.10.20
22:20
(339) Чем .Net Core, Linq2DB, Wpf,Xamarin, Blazor тебе не подходят?
https://habr.com/ru/company/microsoft/blog/493390/
https://visualstudiomagazine.com/articles/2020/09/14/aspnet-5-rc1.aspx
https://visualstudiomagazine.com/articles/2020/09/29/xamarin-forms-5-preview.aspx

Нет никакого кризиса. Одна движуха!
344 v77
 
14.10.20
22:55
(343) Да ну нафиг. Санкции введут и отключат всю эту байду.
345 Serginio1
 
15.10.20
10:21
(344) Не отключат. Ибо все это опенсорс!
Суть в том, что .Net Core большей частью был сделан для облаков.
А там одно из требований это опенсорс. И MS пошла на это.
При этом многие продукты развиваются с помощью сторонних разработчиков.
346 Лефмихалыч
 
15.10.20
11:16
(0) java, python, C#, EcmaScript
что осилишь, на том и - алга
347 jbond
 
15.10.20
11:34
(330) я видел, как убого выглядела няшная джава в 90х.

Но дело в том, что уже тогда это был нормальный язык, который можно была использовать для ынтырпрайз бизнес интернет приложений.

По ха пе же в то время в том виде был признан не пригодным для создания ecommerce решений самими же создателями по ха пе.

И была полностью переписана, стырив многое с джавы, которая тогда уже активно использовалась в тырпрайзе.

Джава никогда не подвергалась перепроектированию с нуля.
348 Кирпич
 
15.10.20
11:40
(345) Жителям Крыма их личные репозитории на гитхабе блокируют. Пофиг всем на опенсорс.
349 Кирпич
 
15.10.20
11:42
(347) Чо ты пристал к этому пхп. Все про него всё знают. На нём 99,9% сайтов написано. И Java и PHP очень популярны. Каждый в своей нише.
350 Serginio1
 
15.10.20
12:32
(348) https://www.cnews.ru/news/top/2019-07-29_github_blokiruet_razrabotchikov_iz_kryma
Блокируют сами репозитарии конкретных людей.
Блокировать репозитарии .Net Core и прочее никто не будет!
351 ДенисЧ
 
15.10.20
12:35
(350) Уверен?
352 ДенисЧ
 
15.10.20
12:36
Недавно мс заявила, что половина атак на выборы гегемона была совершена с российских ип. Вот присоединится она к санкциям и?
353 Кирпич
 
15.10.20
12:42
(350) Заблокируют даже если ты приедешь в Крым и зайдешь на GitHub. Потом будешь их уговаривать и рассказывать, что только купаться ездил и в Крыму не живешь :)
354 Кирпич
 
15.10.20
12:48
(350) Так что давай завязывай распевать дифирамбы про дотнеты с линкумами. Не лей воду на мельницу мирового империализма :)
355 Serginio1
 
15.10.20
12:51
(353) Как они заблокируют через VPN? Ты статью то читал?
https://www.cnews.ru/news/top/2019-07-29_github_blokiruet_razrabotchikov_iz_kryma

Там речь идет именно о блокировке репозитория.
Да могут заблокировать репозитарий конкретного лица. Но репозитарий .Net Core они не заблокируют ибо сами будут от него отключены.
356 ДенисЧ
 
15.10.20
12:57
(355) Логин твой заблокируют. Гибхаб их же теперь
357 Serginio1
 
15.10.20
13:09
(356) Мои  проекты хранятся не только в гитхабе. Опять же речь то идет не о моих аккаунтах, а о .Net Core
Я захожу на https://github.com/dotnet/core без логина
358 Кирпич
 
15.10.20
13:46
(357) К тому времени, когда твой core наконец нормально будет работать, уже и интернет отключат нафиг. В связи с вмешательством в выборы в Ливии.
359 Serginio1
 
15.10.20
14:46
(358) Он уже прекрасно работает и очень быстро. Меньше чем через месяц выйдет .Net 5
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/

Думал, что 3.1 это потолок, но и в .Net 5 нехило докрутили

Ну и для ARM64
https://devblogs.microsoft.com/dotnet/arm64-performance-in-net-5/

Что касается редакторов, то многие хвалят Rider https://www.jetbrains.com/help/rider/Get_Started_with_Version_Control.html
360 Кирпич
 
15.10.20
14:48
(359) GUI для Linux есть?
361 Serginio1
 
15.10.20
14:58
(360) Из нативных это Xamarin GTK, Avalonia.
Ну и Вэб приложения на Blazor. То есть за отрисовку отвечает браузер, а за реализацию .Net Core.
Сейчас MS переводят Visual Code с электрона, на блазор.
https://gunnarpeipman.com/blazor-on-desktop-webwindow-experiment/
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-2/
362 Кирпич
 
15.10.20
15:00
(361) Короче, нету пока. Так то .Net Core наверное крутяк, только C# скучный
363 Serginio1
 
15.10.20
15:23
(362) Я тебе привел кучу ссылок и вдруг нету пока?
Еще до кучи https://github.com/ElectronNET/Electron.NET
364 Serginio1
 
15.10.20
15:24
(362) Мне приходится на разных языках писать. C# сейчас самый веселый и продвинутый язык.
365 Кирпич
 
15.10.20
16:01
(363) да там дермище всякое. ниахота голову забивать
366 Serginio1
 
15.10.20
16:30
(365) Что бы понять дермище это или наоборот клад нужно попрограммировать на разных языках. У каждого языка есть фишки, которые
1. Упрощают написание кода
2. Ускоряют выполнение кода.

При этом ты находишься на форуме 1С, который по этим показателям оочень близок к твоему определению дермища.
Но ты же забил им голову!
На самом деле изучение языков и платформ развивают тебя как программиста.
Я ни один язык или платформу дермищем, ибо у каждого языка есть своя ниша. И чем их больше, тем больше идей и конкуренция.
А .Net и C# сейчас ооочень бурно развиваются.
367 Вафель
 
15.10.20
17:08
(366) 1с как раз очень сильно упрощает написание кода.
вернее не написание кода, а разработку программы.
ибо берет на себя практически все низкоуровневые проблемы
368 Кирпич
 
15.10.20
17:11
(366) А .Net и C# сейчас ооочень бурно развиваются.
да чего там может развиться уже? воду в ступе молотят, а java никак не могут победить
369 Кирпич
 
15.10.20
17:13
Мне так, по работе, не java не C# нифиг не нужны. Они мне неудобны. Я скромный одинесник и корпоративные порталы на тысячи юзеров я не разрабатываю.
370 Кирпич
 
15.10.20
17:14
ой, ни java ни C#
371 Serginio1
 
15.10.20
18:33
(367) Ну ты не работал с Linq который значительно быстрее.
Посмотри универсальный https://www.linqpad.net/

А уж отсутствие замыканий, того async / await который только сейчас появляется.
асинхронные методы это жуть со строковыми названиями методов.
Что и нравится так это один код в модуле для серверного и клиентского кода. Но и это легко решается с помощью Source Generator
https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/

(368) Жабу уже давно перегнали. На андроиде на Котлин потихоньку переходят. Хороший язык
372 Garikk
 
15.10.20
18:44
(371) <На андроиде на Котлин потихоньку переходят. Хороший язык>
если не вспоминать что котлин работает на jvm то да... 'перегнал'
373 Garikk
 
15.10.20
18:46
(372) *это точно также как C# перегнал vb.net и j#
374 ДедМорроз
 
15.10.20
19:15
Java это специальная виртуальная машина
.net это похожая виртуальная машина
Кроссплатформенность достигается тем,что программа запускается на виртуальной машине,которая с реальной не очень то связана.
Android это тоже виртуальная машина,похожая на java но своя.
Как бы,виртуализация,это часто потеря производительности,но сейчас это не так уж и важно.

У каждого языка есть что-то уникальное,что на другом сложно сделать,остальное просто автоматическим транслятором переводится с одного языка на другой
375 Serginio1
 
15.10.20
19:27
(374) Никакой виртуальной машины уже лет 20 нет. Все давно джитится в нативный код.
https://ru.wikipedia.org/wiki/JIT-компиляция

Другое дело, что во время работы компиляция должна быть быстрой. Поэтому получаемый код не оптимален и проигрывает тому же С++.
Но есть .Net Native у джава другая оптимизация. При этом джитеры совершенствуются
(358) Он уже прекрасно работает и очень быстро. Меньше чем через месяц выйдет .Net 5
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/

Ну и для ARM64
https://devblogs.microsoft.com/dotnet/arm64-performance-in-net-5/

1С тоже компилируется в байт код, но затем этот код интерпретируется
376 Garikk
 
15.10.20
19:33
(375) ну там всёравно не полный аналог native программ получается, всёравно там и garbage collector свой и куча либ самой явы компилится параллельно
377 Serginio1
 
15.10.20
20:26
(376) .Net Native использует С++ компилятор, но сборка мусора тоже есть.
https://docs.microsoft.com/ru-ru/dotnet/framework/net-native/net-native-and-compilation
Тот же D тоже может использовать сборку мусора
https://ru.wikipedia.org/wiki/D_(язык_программирования)#Управление_памятью

В Суть в том, что код компилируется в машинный код и кэшируется. При этом можно докомпилировать любые сборки плагины.
378 Serginio1
 
15.10.20
20:32
377+ https://docs.microsoft.com/ru-ru/dotnet/framework/net-native/net-native-and-compilation#net-native-and-ngen
NGEN по-прежнему полагается на полную среду CLR для таких сервисов, как загрузка сборок, удаленное и локальное взаимодействие, управление памятью, сбор мусора и, при необходимости, JIT-компиляция. В .NET Native многие из этих сервисов являются либо ненужными (JIT-компиляции), либо разрешаются во время построения и включаются в сборку приложения. Остальные сервисы, наиболее важным из которых является сбор мусора, включены в гораздо более компактную, оптимизированную среду выполнения mrt100_app.dll.
379 H A D G E H O G s
 
15.10.20
20:37
Все языки хороши, все языки важны.
Кроме C/С++.
380 Serginio1
 
15.10.20
20:42
(379) Ты ВК на Лазарусе пишешь?
381 spock
 
15.10.20
20:53
(379) Скоро испекут стандарт C++20 и все ломануться обратно на этот язык
(380) Очень сарказмично
382 Serginio1
 
16.10.20
10:21
(381) Ну почему же
https://github.com/Zawullon/fpnativeapi
383 Кирпич
 
16.10.20
10:23
(378) Решил попробовать NET core. Скачал, сляпал Hello World. Сделал publish. Получился дистрибутивчик на 120 Мб. Это нормально? Или есть способ сделать поменьше без предустановки рантайма?
384 Serginio1
 
16.10.20
10:56
385 Кирпич
 
16.10.20
11:01
(384) Ну я там и читал. Я так понял 120 Мб это нормально
386 Кирпич
 
16.10.20
11:04
Хотя нет. 69 Мб получилось
387 Serginio1
 
16.10.20
11:06
384 Посмотри на блазор
https://www.meziantou.net/optimizing-a-blazor-webassembly-application-size.htm
(385) Если со средой выполнения то да. Для  блазора линкер убирает все лишнее
388 Кирпич
 
16.10.20
11:06
Лучше уж go lang. Проще, понятнее и всё в один exe
389 fisher
 
16.10.20
11:09
(375) > Никакой виртуальной машины уже лет 20 нет. Все давно джитится в нативный код.
А джитится чем? :)
390 Serginio1
 
16.10.20
11:14
(388) Никто же не запрещает. Просто разные сценарии развертывания.
В основном это  докеры https://docs.microsoft.com/ru-ru/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-3.1
Очень удобны для распространения
391 Serginio1
 
16.10.20
11:21
(389) Средой выполнения. Но это не виртуальная машина. Виртуальная машина была на заре Java и
https://ru.wikipedia.org/wiki/Java_Virtual_Machine
Виртуальные машины Java обычно содержат интерпретатор байт-кода, однако, для повышения производительности во многих машинах также применяется JIT-компиляция часто исполняемых фрагментов байт-кода в машинный код.

Мало того, сейчас есть и .Net Core и CoreRT где из сервисов только сборщик мусора.
Сейчас Blazor интерпритирует байт код. Обещают через год AOT компиляцию
392 fisher
 
16.10.20
11:29
(391) Не вижу разницы в данном случае принципиальной разницей между "средой выполнения" и "виртуальной машиной". Виртуальная машина - это далеко не только интерпретация.
То, что clr джитит метод сразу перед выполнением (а java - с оглядкой) не превращает его из виртуальной машины в "среду выполнения". Хотя можно называть как угодно. Суть не меняется.
Но подавать это как "в java VM, а у MS - нет" - лукавство чистой воды.
393 fisher
 
16.10.20
11:31
(391) > Виртуальные машины Java ОБЫЧНО содержат интерпретатор байт-кода
Т.е. наличие интерпретатора не является отличительным признаком VM
394 Serginio1
 
16.10.20
11:40
(393) В .Net нет никакого интерпретатора кода!
Вернее было в Compact Framework сейчас есть в блазоре. Но ото отдельная от фреймворка ветки.

То что ты не видишь разницу это твои проблемы изначально виртуальная машина интерпритировала код!
>> Как бы,виртуализация,это часто потеря производительности,но сейчас это не так уж и важно.
Современные джиттеры конечно уступают компиляторам С++ (которые тратят на компиляцию достаточно большое время), но достаточно близко к ним подходят. Ссылки уже давал.

Просто само понятие виртуальная машина была именно для интерпретатора который был
https://ru.wikipedia.org/wiki/HotSpot

Для .Net никакого понятия виртуальной машины никогда и не было! Была среда выполнения.
Не стоит смешивать эти понятия
395 fisher
 
16.10.20
11:47
(394) > Для .Net никакого понятия виртуальной машины никогда и не было! Была среда выполнения. Не стоит смешивать эти понятия
Это ты их разделяешь. Или маркетологи MS. Отличительным признаком наличия VM как раз является то, что в MS называют "управляемым исполнением" кода. То есть когда исполнением кода управляет какая-то внешняя штука. Обеспечивая в том числе безопасность исполнения и доп-сервисы типа рефлексии. Опция интерпретации не превращает "среду исполнения" в VM. Ну или пруф.
Вот в Go - нет "среды исполнения" ака VM. Есть только библиотечный рантайм, а "надштуки" никакой нет. И вот эти понятия смешивать не стоит.
396 fisher
 
16.10.20
11:49
Понятийная разница, ИМХО, близка к пониманию разницы между фреймворком и библиотекой.
397 spock
 
16.10.20
11:49
(382) датычё, занятно
398 fisher
 
16.10.20
11:52
Конечно, приятно шарпистам заявлять что в java вот есть страшная и тяжелая VM, а вот в net и golang - ее нет. Правда, есть "среда исполнения", которой нет в golang. Но она, конечно же, легкая и нестрашная. Не стоит даже упоминания.
399 Кирпич
 
16.10.20
12:17
(397) Ещё как занятно. Паскалист нашлепает ВК за пять минут, даже ничего не понимая в этих ваших внешних компонентах.
400 Serginio1
 
16.10.20
12:47
(395) Управляемая среда это сборка мусора! .Net Native есть только сборка мусора, но нет среды исполнения!
(398) Я программирую не только на шарпе. Просто понятие виртуальная машина давно себя изжила. Не стоит её употреблять.
401 Serginio1
 
16.10.20
12:55
Вернее так. Для .Net Native из среды выполнения есть только сборка мусора, но нет JIT компиляции.
Тот же D тоже может использовать сборку мусора
https://ru.wikipedia.org/wiki/D_(язык_программирования)#Управление_памятью
402 spock
 
16.10.20
13:15
(400) Зачем что-то усложнять из-за маркетинга? Виртуальная машина - все, что изолирует программный код от железа.
- Компилируемый код - точно не VM;
- Интерпретируемый код - недо-VM (почти, но недоросла);
- Гибрид - может компилироваться, а может и интерпретироваться, но с железом прямого контакта нет. Или есть через костыли.
403 Sserj
 
16.10.20
13:35
(402) А мне казалось "..все, что изолирует программный код от железа.." называется Операционная Система.
А так как по большому счету все выполняется в ней, то получается все языки имеют VM :)
404 Кирпич
 
16.10.20
13:48
Железо то тут при чем. До железа только в драйвере можно достучаться.
Просто .NET и Java программисту запрещено напрямую управлять памятью. Выделять в ручную память и писать в память по любому адресу. Это самое главное, что нужно для того, чтобы не страшно было набирать школьников в программисты. А байт код там или не байткод и всякие виртуальные машины это уже не важно, если скорость выполнения примерно одинаковая.
405 Кирпич
 
16.10.20
13:49
пардон, вручную
406 spock
 
16.10.20
14:01
(404) конечно, писал про память.
407 Sserj
 
16.10.20
14:12
(404) Ну относительно Java это не совсем правда. В существует sun.misc.Unsafe с которым можно напрямую писать и читать битики.
Ну а с Java 15 уже доступен JEP 383 в рамках которого реализуется штатный метод работы с памятью вне JVM и ее кучи.
408 fisher
 
16.10.20
14:19
(400)(401) Хм... Почитал про .Net Native. Прикольно. И что, никаких минусов этот вариант не имеет?
В java сейчас тоже появился вариант генерации нативных бинарников через GraalVM. Но при этом теряются плюшки "среды окружения" и проекты, которые их используют, нуждаются в адаптации под этот вариант. А в MS видимо сделали хитрее.
409 Serginio1
 
16.10.20
14:33
(404) в .Net существует unsafe, PInvoke, IntPtr. В отличии от Java есть Value типы (меньше проблем с боксингом унбоксингом)
Появились ref struct, Span<T> или ReadOnlySpan<T>

https://docs.microsoft.com/ru-ru/dotnet/csharp/write-safe-efficient-code

(408) Имеет. Прежде всего рефлексия и плагины. Для рефлексии нужно заранее знать все типы и описать для каких нужна рефлексия,
что бы скомпилировать информацию о типах и получения ссылок на методы и свойства.
https://docs.microsoft.com/ru-ru/dotnet/framework/net-native/reflection-and-net-native
https://docs.microsoft.com/ru-ru/dotnet/framework/net-native/apis-that-rely-on-reflection
Кроме того нельзя скомпилировать код в процессе выполнения.
Сейчас развивают CoreRT
https://github.com/dotnet/runtimelab/tree/feature/NativeAOT
410 spock
 
16.10.20
14:36
(409) Появились ref struct, Span<T> или ReadOnlySpan<T>

Так они потихоньку сделают новый C++ без тех архитектурных болячек.
411 Кирпич
 
16.10.20
14:38
(409) да понятно что есть unsafe. в java тоже есть. иначе они бы нафиг никому не уперлись
412 Serginio1
 
16.10.20
15:29
(410) Ну в общем то к этому и идет. Кроме того собираются вводить аналог шаблонов с перегрузкой операторов
https://www.youtube.com/watch?v=WBos6gH-Opk&feature=youtu.be&t=3120

Смотрим старый вброс на шейпах

https://www.c-sharpcorner.com/article/candidate-features-for-c-sharp-9/

Original Source


public shape SGroup<T>      
{      
static T operator +(T t1, T t2);      
static T Zero {get;}      
}

This declaration says that a type can be an SGroup<T> if it implements a+ operator over T, and a Zero static property.



public extension IntGroup of int: SGroup<int>    
{    
public static int Zero => 0;    
}

And the extension.



public static AddAll<T>(T[] ts) where T: SGroup<T> // shape used as constraint    
{    
var result = T.Zero; // Making use of the shape's Zero property    
foreach (var t in ts) { result += t; } // Making use of the shape's + operator    
return result;    
}

Let us call the AddAll method with some ints,


int[] numbers = { 5, 1, 9, 2, 3, 10, 8, 4, 7, 6 };    
  
WriteLine(AddAll(numbers)); // infers T = int


Я так понял, что вместо
public shape SGroup<T>


можно использовать интерфейс
а вместо
public extension IntGroup of int: SGroup<int>


можно использовать

role IntGroup  extednds int


И в примере Мэдс все тоже самое. Ты переопределяешь только
public static int Zero => 0;



И разница в том, что int[] нужно привести к IntGroup[]

В любом случае определить можно сделать один интерфейс для всех перегрузок операторов алгеброических типов и прописать для них роли
и использовать эти роли хоть откуда как Func<> Action итд.
413 hi1C
 
16.10.20
16:19
(0) Будь мужиком, используй хаскель!
414 Garykom
 
гуру
16.10.20
16:22
(412) Так можно дойти до программной эмуляции любого ЯП на особо продвинутых ЯП, путем перегрузки всего и вся
415 Garykom
 
гуру
16.10.20
16:24
(414)+ Ой у нас либа на паскале или на питоне

Фигня
using System.Language.ObjectPascal;
using System.Language.Python;
416 Serginio1
 
16.10.20
16:52
(414) Ну в С++ перегрузка операторов вообще везде для шаблонов.
Для C# role хороши для алгебраических типов. Не нужно кучи интерфейсов с add,mull, div итд.
Просто используется текущая перегрузка операторов. Если нужна другая просто пишем в
role IntGroup  extednds int
свою свою перегрузку оператора
417 Garykom
 
гуру
16.10.20
17:11
(416) Это был юмор. Типа зачем нам такая куча языков программирования.

Давайте сделаем один, который любой синтаксис и операторы поддерживает, достаточно либы подключить ))
418 ДедМорроз
 
16.10.20
17:23
Это мета язык называется.
Ты пишешь на метаязыка,а потом транслятором переводишь в нужный язык или даже несколько языков,причем,если транслятор хороший,то тебе их и знать не нужно.
419 Garikk
 
16.10.20
17:51
(417) вроде в чистом си можно такие фокусы делать
420 Сияющий в темноте
 
23.10.20
17:45
на макросах define можно много чего делать,там основное - соединение двух слов из разных частей.
421 Конструктор1С
 
23.10.20
19:50
(419) не берусь утверждать, но в плюсах можно изменять язык как тебе удобно. За счет #define можно переопределить чуть ли не всё что душе угодно: хошь начать писать begin-end, хошь начать писать на русском языке...
422 H A D G E H O G s
 
23.10.20
20:32
(421) Тому, кто добавил этот весь навороченный сахар в язык - https://youtu.be/YxWyz0djjTQ
423 Legj
 
25.10.20
16:06
(0) Гитхаб по своим данным регулярно проводит исследованиие этого вопроса. Рекомендую

https://octoverse.github.com/#top-languages
Программист всегда исправляет последнюю ошибку.