реклама на сайте
подробности

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


Профессионал
*****

Группа: Свой
Сообщений: 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 мэтро biggrin.gif

Цитата
С++ (он недалеко ушел от С, пусть и поддерживает ООП, но все равно с ним обрушить любую систему на ура можно.
Дак на ура и жавой рушатся приложения только так.

Цитата(DASM @ Jul 18 2014, 01:26) *
Посмотрите примеры программ на Java - там нет этого дебилизма. С++ позволит даже такое *(int *)0x40001234 = 0; На Яве вам никто не позволит пользоваться указателями, оных и нету, и никто не позволит приводить типы с уменьшением точности. С++ - это очень старый язык, он неплох для своих лет, но уже 2014 на дворе. Тот же ассемблер завуалированный.

А как в яве запись в регистр микросхемы? например в общем адресном пространстве 0x40001234 - адрес регситра RxDATA, а 0x40001236 - адрес регистра TxDATA. Как на Jave происходит обращение к этим регистрам?

Цитата
С++ - это очень старый язык, он неплох для своих лет, но уже 2014 на дворе.
старый не знаяит плохой. Русский ещё старее, а на дворе 2014...
ДВС - ему больше 100 лет. а на дворе 2014. Но пока человечество не придумало лучше двигатель. laughing.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
halfdoom
сообщение Sep 6 2014, 10:12
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Сугубо практический взгляд со стороны. Этим летом мы сдавали с подрядчиком контроллер техпроцесса (все x86+Linux, порядка 10 отдельных контроллеров). Наши ребята писали все на чистом C++ с Qt (лицензия на последний принадлежит заказчику) - это 7 контроллеров. Подрядчик писал на Java (остальные контроллеры). До выезда на объект было написано множество тестэ-кейсов, вопросы взаимодействия были более или менее отлажены.

Запуск линии прошел на ура, а проблемы начались на 3й день работы. После разбора полета выяснилось, что контроллеры на Java не успевали отрабатывать все события, причем простой перезапуск системы полностью восстанавливал работоспособность. Их ребята выяснили, что 2ГБ на процесс им мало. Причем ничего навороченного там нет, математика на уровне 3го курса. Одноплатные компьютеры у заказчика специфические, поэтому нарастить память возможности нет. В итоге, что-то они там крутили в параметрах Java-машины и все пришло в норму. Это стоило нам лишней недели командировки, но теперь мы единственный исполнитель на следующую линию, что можно отнести к несомненным плюсам Java технологий.

С другой стороны, у меня есть возможность оценивать работу программистов пишущих на C++/Qt и FreePascal/Lazarus. UI последние однозначно пишут быстрее, но кривость LCL периодически вылазит на кросс-платформенных приложениях. Так-же, подключение сторонних C/C++ библиотек на Паскале не так прозрачно как на C++. Совершенно отвратительно выглядят интерфейсы к C++ библиотекам, а некоторые части сильно завязанные на шаблоны вообще невозможно использовать. И о шаблонах - сам я в них не большой специалист, и иногда вообще не могу понять код изобилующий ключевым словом template... Но это уже моя проблема, т.к. все компилируется и работает sm.gif.

Думаю, что C++ рано списывать со счетов, а скорость разработки и качество кода однозначно зависит от программистов и их непосредственного руководителя (который у нас тоже программист).
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 6 2014, 11:48
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(halfdoom @ Sep 6 2014, 14:12) *
Сугубо практический взгляд со стороны. Этим летом мы сдавали с подрядчиком контроллер техпроцесса (все x86+Linux, порядка 10 отдельных контроллеров). Наши ребята писали все на чистом C++ с Qt (лицензия на последний принадлежит заказчику) - это 7 контроллеров. Подрядчик писал на Java (остальные контроллеры). До выезда на объект было написано множество тестэ-кейсов, вопросы взаимодействия были более или менее отлажены.


В тех случаях, когда на контроллере операционка стоит, то это уже "взрослый" контроллер, которому C++ не будет в тягость. А уж про Qt и вопрос не стоит - без C++ там никак нельзя. Да и вообще, если есть 1 МБ памяти, то отказываться от C++ просто глупо.

Я же избегаю (как выразилась ранеее) С++ на МК гарвардской архитектуры с объемом flash до 128 КБ (AVR почти все такие). В последнем случае "повторяемость" не достигает такого уровня, на котором деление классы и объекты давало бы ощутимую выгоду. В самом деле, нужно ли заводить класс, если его будет использовать только один единственный объект?

Но и в тех же случаях, когда "повторяемость" имеет место, организовать универсальный класс бывает слишком сложно. Скажем у МК есть 6 штук UART'ов (на разных портах), обмен с которыми организован одинаково. Казалось бы, такой обмен можно описать в виде класса, а затем на его основе создать объекты для каждого порта. Но не тут-то было! sm.gif Процедуры прерывания у каждого порта свои, и далеко не очевидно, как сделать так, чтобы объект для данного порта вписался в нужные адреса. И это на фоне того, что начинающие вообще не могут организовать процедуру прерывания, как функцию члена класса.

В том же случае, когда препоны такого рода все-таки удалось успешно преодолеть, оказывается, что время было потрачено на борьбу с языком C++, чтобы уломать его сделать очевидные вещи через ухо. sm.gif
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 8 2014, 05:22
Сообщение #4


Профессионал
*****

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



Цитата(Xenia @ Sep 6 2014, 17:48) *
Скажем у МК есть 6 штук UART'ов (на разных портах), обмен с которыми организован одинаково. Казалось бы, такой обмен можно описать в виде класса, а затем на его основе создать объекты для каждого порта. Но не тут-то было! sm.gif Процедуры прерывания у каждого порта свои, и далеко не очевидно, как сделать так, чтобы объект для данного порта вписался в нужные адреса. И это на фоне того, что начинающие вообще не могут организовать процедуру прерывания, как функцию члена класса.
Именно так и делаю. Процедуру прерывания не обязательно делать членом класса. Более того, была плата с разными интерфейсами (UART, CAN, SPI....), это не помешало сделать классы/объекты.

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

Если 5-ый этаж проблема, чем 1-ый не устраивает? Если есть причины не использовать классы и шаблоны, почему нужно переходить на СИ? Чем с++ без ООП не устраивает?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- juvf   С/С++   Jul 17 2014, 20:48
- - A. Fig Lee   juvf, ППКС.. Много поточность и многоядерность ну...   Jul 17 2014, 20:52
- - kolobok0   Цитата(juvf @ Jul 18 2014, 00:27) С++ (он...   Jul 17 2014, 20:52
- - Rst7   А кто вообще сказал, что в Java многопоточность в ...   Jul 17 2014, 21:52
- - _Pasha   Не, я не промолчу. В связи с ростом популярности F...   Jul 17 2014, 21:59
|- - Kopa   Цитата(_Pasha @ Jul 18 2014, 01:59) И мои...   Jul 18 2014, 00:24
- - juvf   Я бы прoшел мимо темы, если бы бодались пингвины с...   Jul 18 2014, 01:02
- - AlexandrY   Цитата(juvf @ Jul 17 2014, 23:48) какая к...   Jul 18 2014, 05:34
|- - juvf   Цитата(AlexandrY @ Jul 18 2014, 11:34) ка...   Jul 18 2014, 06:15
|- - Cosmojam   Цитата(juvf @ Jul 18 2014, 09:15) а есть ...   Jul 18 2014, 06:34
- - Cвинец   Скорость C# вполне приличная, не надо с Perl и Пит...   Jul 18 2014, 05:47
- - andrewlekar   Языки высокого уровня на контроллерах - вполне аде...   Jul 18 2014, 07:38
- - Abell   Ваймэ! Что случилось в этом мире, разве ассемб...   Jul 18 2014, 08:08
- - juvf   однако http://www.rlocman.ru/news/new.html?di=1468...   Jul 18 2014, 08:17
|- - Abell   Цитата(juvf @ Jul 18 2014, 12:17) однако ...   Jul 18 2014, 08:48
- - A. Fig Lee   Ява на МК - глупость и не более. Идея Явы - абстра...   Jul 18 2014, 11:03
|- - Kopa   Цитата(A. Fig Lee @ Jul 18 2014, 15:03) Я...   Jul 18 2014, 12:33
|- - A. Fig Lee   Цитата(Kopa @ Jul 18 2014, 08:33) Ага ска...   Jul 18 2014, 13:28
|- - DASM   Цитата(A. Fig Lee @ Jul 18 2014, 17:28) 1...   Jul 18 2014, 14:08
|- - A. Fig Lee   Цитата(DASM @ Jul 18 2014, 10:08) Какие и...   Jul 18 2014, 14:14
|- - juvf   Цитата(DASM @ Jul 18 2014, 01:26) Да хоть...   Jul 21 2014, 03:11
|- - _Pasha   Цитата(juvf @ Jul 21 2014, 06:11) по опис...   Jul 21 2014, 05:38
|- - AlexandrY   Цитата(juvf @ Jul 21 2014, 06:11) Жава и ...   Jul 21 2014, 07:33
|- - juvf   Цитата(AlexandrY @ Jul 21 2014, 13:33) А ...   Jul 21 2014, 08:46
|- - svss   Цитата(AlexandrY @ Jul 21 2014, 13:33) А ...   Aug 18 2014, 14:32
- - DASM   ага-ага http://artemonische.narod.ru/nesbyvshiyesy...   Jul 18 2014, 11:34
|- - virtual9900   Tessel is a microcontroller that runs JavaScript E...   Jul 18 2014, 11:39
- - Enthusiast   На мой взгляд, языком следующего поколения встраив...   Jul 18 2014, 13:42
- - andrewlekar   Сборщик мусора и риалтайм - понятия не совместимые...   Jul 21 2014, 05:17
- - adnega   Видимо, подразумевалась работа с кучей при вызове ...   Jul 21 2014, 09:27
- - andrewlekar   sprintf вовсе не обязательно использует кучу.   Jul 21 2014, 09:31
- - adnega   Есть простейшие реализации без динамического выдел...   Jul 21 2014, 09:35
- - DASM   А мне все равно неясна желательность С++ в приложе...   Aug 18 2014, 17:59
|- - AlexandrY   Цитата(DASM @ Aug 18 2014, 20:59) Что-то ...   Aug 18 2014, 21:10
|- - adnega   Цитата(DASM @ Aug 18 2014, 21:59) А гда в...   Aug 19 2014, 04:22
||- - AlexandrY   Цитата(adnega @ Aug 19 2014, 07:22) Но на...   Aug 19 2014, 07:46
|- - svss   Цитата(DASM @ Aug 18 2014, 23:59) А мне в...   Aug 19 2014, 07:32
|- - dxp   Давно уже не вступаю в дискуссии по поводу языков ...   Aug 20 2014, 07:04
|- - juvf   Цитата(DASM @ Aug 18 2014, 23:59) А мне в...   Aug 30 2014, 06:28
|- - AlexandrY   Цитата(juvf @ Aug 30 2014, 09:28) А мне н...   Aug 30 2014, 08:26
|- - Kopa   Цитата(juvf @ Aug 30 2014, 09:28) А мне н...   Sep 1 2014, 14:08
|- - dxp   QUOTE (Kopa @ Sep 1 2014, 21:08) Всё прог...   Sep 2 2014, 04:42
|- - kolobok0   Цитата(dxp @ Sep 2 2014, 08:42) "Цел...   Sep 2 2014, 22:33
- - AlexMad   ЦитатаС/С++, Почему до сих пор все сидят на древни...   Aug 18 2014, 20:05
- - DASM   О чем и речь.   Aug 18 2014, 20:07
- - DASM   Ну так это Вы, я про всех и не утверждал, скорее п...   Aug 18 2014, 21:43
- - ASN   juvf IMHO, ответ на вопрос "Почему до сих пор...   Aug 30 2014, 19:46
|- - juvf   Цитата(ASN @ Aug 31 2014, 01:46) juvf IMH...   Sep 1 2014, 04:04
|- - ASN   juvf Дык, в моём сообщение и не было утверждения, ...   Sep 1 2014, 08:02
|- - AlexandrY   Цитата(ASN @ Sep 1 2014, 11:02) juvf Дык,...   Sep 1 2014, 10:46
- - Xenia   Среди программистов тоже есть свои созидатели и по...   Aug 30 2014, 21:21
- - ViKo   Цитатав с++ есть плюшка bool - чего она стоит? в с...   Sep 1 2014, 08:27
- - Major   Если кейл сделает полноценную поддержку C++11/14 б...   Sep 2 2014, 05:18
|- - AlexandrY   Цитата(Major @ Sep 2 2014, 08:18) Однозна...   Sep 3 2014, 06:05
- - thermit   RE: С/С++   Sep 2 2014, 05:39
- - Major   А как связаны линукс и С++? Про скуку просто смешн...   Sep 3 2014, 08:07
|- - AlexandrY   Цитата(Major @ Sep 3 2014, 11:07) А как с...   Sep 3 2014, 08:26
|- - juvf   Цитата(AlexandrY @ Sep 3 2014, 14:26) Я щ...   Sep 4 2014, 01:22
|- - AlexandrY   Цитата(juvf @ Sep 4 2014, 04:22) какой ла...   Sep 4 2014, 12:14
|- - dxp   QUOTE (AlexandrY @ Sep 4 2014, 19:14) Нек...   Sep 4 2014, 13:32
||- - Xenia   Цитата(dxp @ Sep 4 2014, 17:32) Да, разду...   Sep 4 2014, 17:08
||- - dxp   QUOTE (Xenia @ Sep 5 2014, 00:08) Интерес...   Sep 5 2014, 04:56
||- - AlexandrY   Цитата(dxp @ Sep 5 2014, 07:56) У него св...   Sep 5 2014, 06:23
||- - dxp   QUOTE (AlexandrY @ Sep 5 2014, 13:23) Но ...   Sep 5 2014, 07:09
|- - juvf   Цитата(AlexandrY @ Sep 4 2014, 18:14) А С...   Sep 5 2014, 10:48
- - -fender-   может не по теме, но навеяно хабром выстрелить се...   Sep 3 2014, 09:27
- - Xenia   Русский язык еще древнее, чем C/C++. Почему, тем н...   Sep 3 2014, 09:42
|- - Lagman   Цитата(Xenia @ Sep 3 2014, 13:42) Русский...   Sep 3 2014, 13:37
- - Major   По медиане - написано просто страшно, так делать н...   Sep 3 2014, 09:59
|- - AlexandrY   Цитата(Major @ Sep 3 2014, 12:59) ..Это г...   Sep 3 2014, 11:10
|- - A. Fig Lee   Цитата(Major @ Sep 3 2014, 05:59) По меди...   Sep 3 2014, 20:45
- - Major   Написал набросок, без строгих требований к интерфе...   Sep 3 2014, 18:12
- - adnega   Мне кажется, что С++ тесно связан с такими понятия...   Sep 4 2014, 04:58
- - Xenia   Начинающие в программировании зачастую проявляют н...   Sep 4 2014, 10:45
|- - dxp   QUOTE (Xenia @ Sep 4 2014, 17:45) Именно ...   Sep 4 2014, 12:09
- - ViKo   Вообще-то, в названии темы говорится не о том, поч...   Sep 4 2014, 11:01
- - ViKo   Проникся, вдохновлен и нацелен на использование C+...   Sep 5 2014, 06:42
|- - AlexandrY   Цитата(ViKo @ Sep 5 2014, 09:42) Проникся...   Sep 5 2014, 07:24
|- - kolobok0   Цитата(ViKo @ Sep 5 2014, 10:42) ...как н...   Sep 6 2014, 00:37
- - Valentine Loginov   А ведь можно писать под МК на плюсах и в процедурн...   Sep 5 2014, 07:29
- - Major   Кому интересно (стр. 4). ЦитатаА то с STL мы тут у...   Sep 5 2014, 19:57
|- - dxp   QUOTE (Major @ Sep 6 2014, 02:57) Вот ссы...   Sep 6 2014, 07:17
||- - Xenia   Цитата(dxp @ Sep 6 2014, 11:17) Очень кра...   Sep 6 2014, 10:10
||- - dxp   QUOTE (Xenia @ Sep 6 2014, 17:10) Этот ко...   Sep 6 2014, 12:12
||- - Xenia   Цитата(dxp @ Sep 6 2014, 16:12) Дык это ...   Sep 6 2014, 14:19
|- - AHTOXA   Цитата(Major @ Sep 3 2014, 15:59) Могу пе...   Sep 6 2014, 19:03
|- - AlexandrY   Цитата(Major @ Sep 5 2014, 22:57) Кому ин...   Sep 7 2014, 11:49
|- - A. Fig Lee   Цитата(Xenia @ Sep 6 2014, 07:48) Я же из...   Sep 6 2014, 12:31
- - Major   ЦитатаНо и в тех же случаях, когда "повторяем...   Sep 6 2014, 15:30
|- - Kopa   Цитата(Major @ Sep 6 2014, 18:30) Надеюсь...   Sep 6 2014, 17:00
|- - Xenia   Цитата(Kopa @ Sep 6 2014, 21:00) а мне ли...   Sep 6 2014, 17:35
|- - Kopa   Цитата(Xenia @ Sep 6 2014, 20:35) Форт ис...   Sep 6 2014, 18:08
- - Major   ЦитатаА выигрыш, думаю, от того, что klen производ...   Sep 7 2014, 03:07
|- - AHTOXA   Цитата(Major @ Sep 7 2014, 09:07) Основна...   Sep 7 2014, 06:01
- - Major   Ради одного nth_element переходить на С++ даже вре...   Sep 7 2014, 13:04
|- - AlexandrY   Цитата(Major @ Sep 7 2014, 16:04) По моти...   Sep 8 2014, 06:15
- - ViKo   Что-то я не понял последних сообщений в дискуссии....   Sep 8 2014, 05:45
2 страниц V   1 2 >


Closed TopicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 16:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01646 секунд с 7
ELECTRONIX ©2004-2016