|
С/С++, Почему до сих пор все сидят на древних языках вроде С и С++ |
|
|
|
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. Но пока человечество не придумало лучше двигатель.
|
|
|
|
|
 |
Ответов
|
Sep 6 2014, 10:12
|

Профессионал
    
Группа: Свой
Сообщений: 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... Но это уже моя проблема, т.к. все компилируется и работает  . Думаю, что C++ рано списывать со счетов, а скорость разработки и качество кода однозначно зависит от программистов и их непосредственного руководителя (который у нас тоже программист).
|
|
|
|
|
Sep 6 2014, 11:48
|

Гуру
     
Группа: Модератор 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'ов (на разных портах), обмен с которыми организован одинаково. Казалось бы, такой обмен можно описать в виде класса, а затем на его основе создать объекты для каждого порта. Но не тут-то было!  Процедуры прерывания у каждого порта свои, и далеко не очевидно, как сделать так, чтобы объект для данного порта вписался в нужные адреса. И это на фоне того, что начинающие вообще не могут организовать процедуру прерывания, как функцию члена класса. В том же случае, когда препоны такого рода все-таки удалось успешно преодолеть, оказывается, что время было потрачено на борьбу с языком C++, чтобы уломать его сделать очевидные вещи через ухо.
|
|
|
|
|
Sep 8 2014, 05:22
|

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

|
Цитата(Xenia @ Sep 6 2014, 17:48)  Скажем у МК есть 6 штук UART'ов (на разных портах), обмен с которыми организован одинаково. Казалось бы, такой обмен можно описать в виде класса, а затем на его основе создать объекты для каждого порта. Но не тут-то было!  Процедуры прерывания у каждого порта свои, и далеко не очевидно, как сделать так, чтобы объект для данного порта вписался в нужные адреса. И это на фоне того, что начинающие вообще не могут организовать процедуру прерывания, как функцию члена класса. Именно так и делаю. Процедуру прерывания не обязательно делать членом класса. Более того, была плата с разными интерфейсами (UART, CAN, SPI....), это не помешало сделать классы/объекты. Цитата Если возникает проблема, которую среди всего форума решили только два человека, то этот факт уже настораживает. Настораживает тем, что некое средство требует для своего использования определенных сверхспособностей, отсутствующих у большинства. это вообще не проблема, и не нужно ни каких сверхспособностей. Если 5-ый этаж проблема, чем 1-ый не устраивает? Если есть причины не использовать классы и шаблоны, почему нужно переходить на СИ? Чем с++ без ООП не устраивает?
|
|
|
|
Сообщений в этой теме
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 страниц
1 2 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|