kipar
Я как-то испытал лютый геморрой при попытке использовать плюсы на контроллере. Мне не понравилось.
Сам этим деньги не зарабатываю, но думается мне, что если там что-то у тебя и работает, то в каком-то сабсете языка, который был создан для того, этого самого, какими-то извращенцами.
У микропитона есть GC. Даже файловая система есть (можно прислать файлы (прошивку) через сеть при желании). И REPL есть через серийный порт, что очень возбуждает мне фантазию.
kipar
> раст же работает. И паскаль с адой. И у остальных языков ее можно портировать
> (если язык ллвм-ный а не на виртуальной машине) - аллокатор за 200 строк
> пишется, всякие там файлы и потоки ввода-вывода выкидываем, корутины\треды
> пишем велосипедные или выкидываем, массивам и хешам ось не нужна. Но гц ставит
> крест на всей затее.
у Java вроде как была версия для портативных устройств, которая в мобильниках использовалась до смартфонов. J2ME. Думаю, что в микроконтроллерах вполне может подойти, или я чего не понимаю?
Кот Зловред
Я на си для них пишу. Вместо repl у меня клевая самодельная скада со считыванием значений енумов, имен и значений переменных из контроллера и функцией перепрошивки из hex файла.
И, скажем, сортировка мне понадобилась ровно один раз за все время. Освобождать выделенную память - раза два. Так что сабсет языка меня бы вполне устроил. А вот то что си при малейшей ошибке отстреливает ногу порчей памяти или еще какой-нибудь незаметной хренью - нет. Но при этом компилятор у паскаля сомнительного качества, ада многословная, плюсы должны умереть, остается в общем-то только раст, и на него видимо и придется мигрировать при всей его странности.
dxgames
а еще какие-нибудь фанаты там луа или js запускали. Но это всё игрушки.
Сейчас на Си у нас использование процессора в среднем около 50%, использование памяти 80-90%, цикл обработки - 1 мс. Буду я проверять как это будет работать если туда вкорячить виртуальную машину? Нет.
А вот у меня Java как раз решила обновится и вчитавшись в изменения лицензии я понял, что прямо сейчас миллионы пользователей по всему миру уже открыто нарушают лицензию на коммерц.
Minecraft конечно же - расскажите теперь еще миллионам детей играющим в Minecraft как удалить Java SE и поставить OpenJDK чтобы не нарушать лицензию.
Лицензия нарушается уже от предыдущей модели распространения пакетов Java - они сейчас уже после обновления запрещены к коммерцу и есть только сссылка на OpenJDK, но не кнопка "обновить на OpenJDK", ибо подозреваю что там вручную придётся возиться с SET CLASSPATH=....
Короче Нотч вовремя слил токсичный бизнес.
Zefick
> Нормальные люди давно не холиварят, а используют то, что лучше подходит под
> задачу
Zefick
> Может стоит поменять задачи?
Ты уж определись, выбирать язык под задачу, или задачу под язык.
Panzerschrek[CN]
> Ты уж определись, выбирать язык под задачу, или задачу под язык.
Одно другому не мешает. Если ты занимаешься тем, что зачем-то ковыряешь сраные контроллеры и жалуешься, как там всё убого, или пилишь игрушки на тормозном нищебродском движке, то следует подумать тем ли ты вообще занимаешься. А если ты пришёл в промышленную разработку, то будь добр используй то, что лучше подходит под её задачи. Если ты этого ещё не понял, то мне очень жаль.
Выбирать неудачные задачи под язык, который ты знаешь - вот это настоящая тупость, противоречащая двум задачам сразу. Это как если ты знаешь Java писать на ней ПО для кнопочных телефонов. Или сидеть всю жизнь на поддержке легаси на делфи. Кто-то это конечно должен делать, наверное, но пусть лучше делает кто-нибудь другой.
=A=L=X=
> Minecraft конечно же - расскажите теперь еще миллионам детей играющим в
> Minecraft как удалить Java SE и поставить OpenJDK чтобы не нарушать лицензию.
Расскажите уже кто-нибудь =A=L=X= что такое "коммерческое использование".
Zefick
> ковыряешь сраные контроллеры
> пилишь игрушки на тормозном нищебродском движке
Так за это, как правило, деньги платят. Случай, когда кто-то занимается этим ради развлечения, не рассматриваем.
> используй то, что лучше подходит под её задачи
А с чего ты взял, что для твоих задач Java лучше подходит? Или она подходит, потому. что ты знаешь Java, а на что-то другое переходить лень?
Приведи пример задач, где прямо-таки нужна Java, а %название_языка% не подойдёт.
Zefick
> Расскажите уже кто-нибудь =A=L=X= что такое "коммерческое использование".
Minecraft продаётся за деньги = коммерческое использование, что тебе еще надо рассказывать? Не знаешь еще может что такое деньги и продажа?
Собственно статья по теме:
https://dzone.com/articles/an-overview-on-jdk-vendors
Panzerschrek[CN]
> А с чего ты взял, что для твоих задач Java лучше подходит?
С того, что по ней легче найти информацию и на ней написана куча полезных библиотек. Как следствие я не должен писать велосипеды и моя продуктивность из-за этого выше. Ну и ещё она удобнее 100% нативных языков и 90% всех остальных.
> Или она подходит, потому. что ты знаешь Java, а на что-то другое переходить лень?
Ну Java это приличный кусок технологий, где можно развиваться и вглубь и вширь. Чего уж никак нельзя сказать про какой-нибудь Crystall или Mono. Поэтому смысла с неё уходить никакого нет.
=A=L=X=
> Minecraft продаётся за деньги = коммерческое использование
Ну твой уровень знаний понятен. На самом деле коммерческое использование это когда ты зарабатываешь деньги на продукте, а не платишь за него. А если бы ты ещё внимательно читал лицензию, то заметил бы, что даже разработка и тестирование не подпадают под ограничения. Вот если бы они бандлили JRE вместе с майнкрафтом (что уже почти все делают, кстати, так что проверь, может и там есть папочка jre), то тогда там должна была быть либо купленная у Oracle, либо билд OpenJDK.
Zefick
> Ну твой уровень знаний понятен. На самом деле коммерческое использование это
> когда ты зарабатываешь деньги на продукте, а не платишь за него.
facepalm.jpg
Для тебя открытие, что Microsoft зарабатывает на Minecraft, а не платит за него? Ну так сюрприз - Microsoft зарабатывает на коде и данных игры майнкрафт, коде который написан на Java и которому нужна Java, а Java SE который стоит у 99% игроков в Minecraft запрещает коммерческое использование без лицензии после сегодняшнего (у меня) обновления.
И вообще неважно как они его установили - это прописано прямо в лицензионном соглашении на старте установки или обновления.
Zefick
Контроллеры офигенные, ты просто завидуешь. Языки да, не очень, но тот факт что можно не на асме писать и получать классную производительность уже радует.
А ненищебродский движок... ну я даже не знаю. UE4 с блюпринтами? Или что-то еще более недружелюбное, Unigine какой-нибудь? На Java то точно для геймдева ничего ненищебродского нет.
=A=L=X=
Если microsoft продает майнкрафт вместе с JavaSE - они нарушают соглашение. Собственно, я не знаю как он продается, есть там внутри java или предлагают отдельно скачать. Я думал его давно на кресты переписали. А может они уже заплатили ораклу за лицензию, вряд ли для них это проблема.
Если пользователь качает JavaSE чтобы запустить майнкрафт - он в любом случае ничего не нарушает.
Кстати да, Minecraft внутри себя держит папку JRE, а так как я его давно не запускал, то она еще старая. А ну ка запущу...
=A=L=X=
> Ну так сюрприз - Microsoft зарабатывает на коде и данных игры майнкрафт
Попробуй просто хотя бы сформулировать какие претензии можно им выкатить на суде. Когда поймёшь, что никаких, заканчивай клоунаду. То, что там на компьютерах у пользователей их вообще не волнует. Точно так же как если я разрабатываю серверный софт, то мне до определённой степени плевать на какой JVM это будет запускаться. Пусть об этом парятся те, кто будут его использовать. Иначе так можно просто из-за одного нелицензионного пользователя по цепочке нагнуть всех поставщиков софта для него начиная прямо с Apache Foundation. Думаю понятно, что это бред.
> Кстати да, Minecraft внутри себя держит папку JRE,
Кто бы мог подумать!
Хм, короче майн обновился и запустился, но папку JRE обновлять никак не стал и там какая то версия от начала 2009 года, и судя по всему такая что сейчас попадает под лицуху, ибо в файле /release содержится следующее:
JAVA_VERSION="1.8.0_51"
OS_NAME="Windows"
OS_VERSION="5.2"
OS_ARCH="amd64"
SOURCE=" .:3ee37a71b2ab corba:3b9b39af6c36 deploy:1e6fe038ee8e hotspot:3639e38bd73f hotspot/make/closed:06f9ee9be4ae hotspot/src/closed:d8dfafe1232d hotspot/test/closed:0146fe71474e install:80cd9745ef6e jaxp:050f5654fa19 jaxws:e465c106bfe3 jdk:ee8642297369 jdk/make/closed:77dd4ecab3e3 jdk/src/closed:ec893b5cd2ea jdk/test/closed:954f0f40255e langtools:e27a094cb423 nashorn:f01ca5e6b907 pubs:3a7bce859d71 sponsors:406d8d382c35"
BUILD_TYPE="commercial"
Но в принципе видно, что если они допилят лоадер и обновят на OpenJDK, то любых проблем удастся избежать.
Но я нашёл почему сейчас по крайней мере это не особо надо: https://www.oracle.com/technetwork/java/javase/overview/oracle-jdk-faqs.html
У них явно обозначено, что использовать на личном компьютере для игр можно бесплатно любую версию. Короче теперь кто пользуется надо аккуратно все use case-ы перечитывать, что и где можно, а где нельзя.
Тема в архиве.