|
На каком языке/технологии писать? | ☑ | ||
---|---|---|---|---|
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 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |