|
С/С++, Почему до сих пор все сидят на древних языках вроде С и С++ |
|
|
|
Jul 17 2014, 20:48
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Очередной хлоливар С/С++ vs Java/C# возник в месте обсуждения РТОС для мк. Я его переместил сюда. Вброс Цитата(DASM @ Jul 17 2014, 22:10)  Читаю все это и волосы дыбом. Тем более что и работаю с этим. Почему программист должен думать об освобождении памяти? Почему многопоточность не поддерживается средствами языка? Почему до сих пор все сидят на древних языках вроде С и С++ (он недалеко ушел от С, пусть и поддерживает ООП, но все равно с ним обрушить любую систему на ура можно. Есть ли нормальные реализации Явы или С шарп для контроллеров? Иначе это хождение по граблям будет вечным. 15 лет в теме и все одно и тоже. И памяти то уже достаточно для Явы например, и все равно. От слов «указатель» и «приведение типов» тошнит уже в век, когда объемы флеш и озу - ничто, а время на выпуск - все, это анахронизм какой то Цитата Читаю все это и волосы дыбом. я когда вижу код на Perl - волосы дыбом, это не значит что Perl гавно. Цитата Почему многопоточность не поддерживается средствами языка? а почему в языке должна быть многопоточность? Язык - это всего лишь язык. А всё остальное - это библиотеки, фрэймворки. Нужна многопоточность - подключай boost, Qt, *RTOS.... или сам суперлупом обеспечивай. Такто можно заявит: Почему сигналы-слоты не обеспечивает язык? Почему extFat не обеспечивает язык? Почему KDE не обеспечивает язык? Цитата Есть ли нормальные реализации Явы или С шарп для контроллеров? нету. не нормальных, не ненормальных. какая к чёрту жава на мк? Даже эти ваши линуксы пишут на си по сей день. не на жаве, и тем более не на с#. и жава.... для неё нужна жавамашина. какую жава машину вы запехнёте в мк с 1кБ ОЗУ? Всё это удел высокоуровнего программирования, окошки, форточки... даже для ПК драйвера пишут на Си/С++. Не разу не слышал чтобы кто-то написал низкоуровневый драйвер для ПК на жаве. А по поводу с# на мк- вообще смешно.... ибо c# не не язык программирования, а "язык программирования виндоус". Вы бы ещё спросили "А есть нормальные реализации языка 1С для мк?". )) см вики Цитата C# — объектно-ориентированный язык программирования. Разработан в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework.... Это нужно в мк с 256 байтами ОЗУ (да хоть и с 64 кБ ОЗУ) запихать .NET? А также для неё поставить Windows8.... c мэтро Цитата С++ (он недалеко ушел от С, пусть и поддерживает ООП, но все равно с ним обрушить любую систему на ура можно. Дак на ура и жавой рушатся приложения только так. Цитата(DASM @ Jul 18 2014, 01:26)  Посмотрите примеры программ на Java - там нет этого дебилизма. С++ позволит даже такое *(int *)0x40001234 = 0; На Яве вам никто не позволит пользоваться указателями, оных и нету, и никто не позволит приводить типы с уменьшением точности. С++ - это очень старый язык, он неплох для своих лет, но уже 2014 на дворе. Тот же ассемблер завуалированный. А как в яве запись в регистр микросхемы? например в общем адресном пространстве 0x40001234 - адрес регситра RxDATA, а 0x40001236 - адрес регистра TxDATA. Как на Jave происходит обращение к этим регистрам? Цитата С++ - это очень старый язык, он неплох для своих лет, но уже 2014 на дворе. старый не знаяит плохой. Русский ещё старее, а на дворе 2014... ДВС - ему больше 100 лет. а на дворе 2014. Но пока человечество не придумало лучше двигатель.
|
|
|
|
|
 |
Ответов
(15 - 29)
|
Jul 18 2014, 12:33
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(A. Fig Lee @ Jul 18 2014, 15:03)  Ява на МК - глупость и не более. Ага скажите это производителям - продвигающим Java для МК и в частности Android OS запускающей Java софт (после конвертации) на Androidе  P.S. Java байт код - код стековой машины, но в сравнении с Форт концепцией обладает достаточно большой избыточностью. Вместе с тем Imsys своей родословной обязаны стековым процессорам, как и picoJava . И где сейчас PatriotScintific (вроде), если кто помнит. Запуск Java байт кода мохно осуществить и в рамках AVR архитектуры (примерно 12K кода и была тема лет 8 назад по запуску Java на МК на electronix)
Сообщение отредактировал Kopa - Jul 18 2014, 12:50
|
|
|
|
|
Jul 18 2014, 13:28
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(Kopa @ Jul 18 2014, 08:33)  Ага скажите это производителям - продвигающим Java для МК и в частности Android OS запускающей Java софт (после конвертации) на Androidе  P.S. Java байт код - код стековой машины, но в сравнении с Форт концепцией обладает достаточно большой избыточностью. Вместе с тем Imsys своей родословной обязаны стековым процессорам, как и picoJava . И где сейчас PatriotScintific (вроде), если кто помнит. Запуск Java байт кода мохно осуществить и в рамках AVR архитектуры (примерно 12K кода и была тема лет 8 назад по запуску Java на МК на electronix) 1. Продвигают много чего.. Вон Qualcomm тоже был недоволен количеством ядер в процессорах. Это бессмысленно, чисто маркетинговый ход, ухудшающий, не улучшающий характеристики. Но выиграет тот, у кого больше ядер, или мегапикселей. Народ в массе не разбирается. 2. "Можно" не значит нужно. В основном делают для "а вот я могу" или подобного. Чем поможет Java в 12к на АВР? По моему, ничем, был бы смысл, она бы прижилась.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jul 18 2014, 14:08
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(A. Fig Lee @ Jul 18 2014, 17:28)  1. Продвигают много чего.. Вон Qualcomm тоже был недоволен количеством ядер в процессорах. Это бессмысленно, чисто маркетинговый ход, ухудшающий, не улучшающий характеристики. Но выиграет тот, у кого больше ядер, или мегапикселей. Народ в массе не разбирается.
2. "Можно" не значит нужно. В основном делают для "а вот я могу" или подобного. Чем поможет Java в 12к на АВР? По моему, ничем, был бы смысл, она бы прижилась. Какие именно характеристики ухудшает количество ядер от Квалкомма? Одноядерный APQ8064 у меня кушает более всех. Потом обзавелся LG G2 и Galaxy 10 2014 - на 800 снэпдрагоне о 4 ядра - теперь о батарее не сильно волнуюсь.
|
|
|
|
|
Jul 18 2014, 14:14
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(DASM @ Jul 18 2014, 10:08)  Какие именно характеристики ухудшает количество ядер от Квалкомма? Одноядерный APQ8064 у меня кушает более всех. Потом обзавелся LG G2 и Galaxy 10 2014 - на 800 снэпдрагоне о 4 ядра - теперь о батарее не сильно волнуюсь. Размер, стоимость, расход батареи. "У меня был Х с один ядром, а стал У с 4мя и ест меньше не стреляет", так как У с одним кушал бы еще меньше, стоил дешевле и так далее со всеми остановками.. А что 8 ядер улучшают, не ясно..
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jul 21 2014, 03:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(DASM @ Jul 18 2014, 01:26)  Да хоть new, хоть malloc - суть одна - любой залетевший дятел разрушит все. Посмотрите примеры программ на Java - там нет этого дебилизма. И что тут плохово? Для дятлов сделали Java. Дай вилку дебилу, он и себе и окружающим глаза выткнет. Но если на вилку наткнуть пробку от бутылки - такая вилка доставляет определённые неудобства, зато дебилам дятлам такой прибор очень даже безопасен. а как в жаве уборка мусора происходит? абстрактно, допустим есть 100 байт свободной памяти. Объявляем переменную. в жаве, на сколько я понял динамически выделяется 100 байт и связывается ссылка на этот блок. потом удалили ссылку, по описанию языка, когда-нибудь уборщик мусора освободит эти 100 байт. Но когда? Вот создали переменную в 100 байт, удалили, и тутже создали новую переменную. Но уборщик мусора ещё не освободил память. Что произойдёт? Ошибка выделения памяти? Или принудительный вызов уборщика? Жава и реалтайм - совместимые вещи? Жава гарантирует, что выполнит функцию за n тактов, и ни какой уборщик мусора не добавит m тактов?
|
|
|
|
|
Jul 21 2014, 08:46
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(AlexandrY @ Jul 21 2014, 13:33)  А что, C-и жестко риалтаймный? Особенно его функции printf, scanf и т.д.? Жестко. printf(buff, "Hello world!"); как ни крути, в какое время не вызови - выполнется за определённое время тактов. ни тактом больше ни тактом меньше. ps. сорри, printf не пользую, мож там из-за потока может быть задержка. Но sprintf(buff, "Hello world!") - тут уж точно, такт в такт.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|