|
С/С++, Почему до сих пор все сидят на древних языках вроде С и С++ |
|
|
|
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. Но пока человечество не придумало лучше двигатель.
|
|
|
|
|
 |
Ответов
|
Aug 18 2014, 17:59
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
А мне все равно неясна желательность С++ в приложениях малого среднего размера. Нужна инкапсуляция ? static в С никто не отменял (не тот, что модификатор хранения, а тот, что спецификатор области видимости). Виртуальные ф-ции и наследование - нет проблем http://habrahabr.ru/post/138684/Ну да, операторы не перегрузишь, - но имхо польза этого сомнительна, в Яве это вообще убрали. Ну, а главное, красивые программы для эмбеддед - лично мне доводилось видеть только на С. На С++ 90 % используют 10 % особенностей языка, а так - в основном фишки вроде "объявляю переменную где хочу, более продвинутые promotion rules, ну и подобные , малозначимые вещи. Что-то серьезное, с полиморфной обработкой данных, общепринятыми паттернами, использованием STL итп в МИКРОконтроллерах - ну не видел. Ну не спорю, может мало видел. Зато качественного С кода - много. Статистика однако, пусть и личная. А обработку исключений в MCU много кто использует ? Не все даже знакомы с try - catch , а вы ++ говорите. Цитата(svss @ Aug 18 2014, 18:32)  Две копейки в тему: на многоядерной машине актуальность рассуждения о реальном времени исчезает насовсем. Да, сделать без системной (и языковой) поддержки непросто. Однако тренд - туда: делать много ядер хороших и разных. Одни тянут операц. систему и файловую систему, другие - коммуникации и безопасность, а оставшиеся - задачи реального времени, изложенные на любом языке. Вообще не вижу связи. Цитата(adnega @ Jul 21 2014, 13:35)  Есть простейшие реализации без динамического выделения памяти, но в общем случае кучу используют. При этом время работы будет не const. А гда вы вообще реализации с кучей видели (в смысле с дин. выделением памяти в ней) ? Вот рекурсивные они обычно, это да..
|
|
|
|
|
Aug 20 2014, 07:04
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Давно уже не вступаю в дискуссии по поводу языков программирования, т.к. тема неблагодарная и флеймоопасная. Но всё же внесу свой пятачок. QUOTE (DASM @ Aug 19 2014, 00:59)  А мне все равно неясна желательность С++ в приложениях малого среднего размера. Где утверждается желательность? На чём нравится, на том и пишите. Язык во много определяет процесс мышления и комфортно думать на том языке, который ближе/нравится. Если вам удобнее думать в пространстве средств языка С, ради бога; мне удобнее думать в пространстве средств языка С++ (в одном и том же контексте, естественно). QUOTE (DASM @ Aug 19 2014, 00:59)  Нужна инкапсуляция ? static в С никто не отменял (не тот, что модификатор хранения, а тот, что спецификатор области видимости). Вы сами-то пробовали такую "инкапсуляцию"? Я пробовал (ещё во времена, когда с плюсами на embedded было скудно). Фигня это, а не инкапсуляция. К тому же, и даже важнее, имхо, не столько инкапсуляция, сколько абстракция, которая позволяет уйти на более высокий уровень при проектировании. QUOTE (DASM @ Aug 19 2014, 00:59)  Виртуальные ф-ции и наследование - нет проблем http://habrahabr.ru/post/138684/Да всё можно, даже на асме люди писали объектно-ориентированные программы. Но зачем этот "закат солнца вручную", если есть штатное средство, которое применять только религия не позволяет (или отсутствие соответствующих скиллов)? QUOTE (DASM @ Aug 19 2014, 00:59)  Ну да, операторы не перегрузишь, - но имхо польза этого сомнительна, в Яве это вообще убрали. Ну, а главное, красивые программы для эмбеддед - лично мне доводилось видеть только на С. На С++ 90 % используют 10 % особенностей языка, а так - в основном фишки вроде "объявляю переменную где хочу, более продвинутые promotion rules, ну и подобные , малозначимые вещи. Что-то серьезное, с полиморфной обработкой данных, общепринятыми паттернами, использованием STL итп в МИКРОконтроллерах - ну не видел. Ну не спорю, может мало видел. Зато качественного С кода - много. Статистика однако, пусть и личная. Статистику нужно наводить относительную - какой процент программ, а по абсолютным значениям судить бессмысленно, ясно, что на С программ на порядок-два больше, как и программистов. И уж красота программы на С - это само по себе достаточно странное - какая там может быть глубокая красота программы, написанной на портабельном макроассемблере, которым по сути является С, поддерживающим одну-единственную парадигму программирования - процедурную. Вот вся эта красота процедурная и есть. Уровень описания очень низкий, никуда особо не разбежишься. Да, код получается эффективный (компактный, быстрый), но это благодаря близости к железу. Вот и вся красота. К слову, на С++ при должном умении код получается не уступающим по эффективности С (а кое-где и превосходящим), только вот умение оное приобрести не так просто. Что касается красоты, так и тут пространства больше. На этом форуме neiver приводил собственную либу управления пинами AVR, основанную на списках типов (добро пожаловать к тов. Александреску  ). Вот это действительно красота (для тех, кто понимает), хотя практическое применение именно в этом контексте лично для меня сомнительно. QUOTE (DASM @ Aug 19 2014, 00:59)  А обработку исключений в MCU много кто использует ? Не все даже знакомы с try - catch , а вы ++ говорите. Использование механизма исключений на малых процах, работающих в реальном времени, указывает на неадекватность понимания средств языка С++, их возможностей и целевых потребностей. Это скорее пример того, как не надо использовать плюсы в ембеддед.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
Сообщений в этой теме
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 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 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 halfdoom Сугубо практический взгляд со стороны. Этим летом ... Sep 6 2014, 10:12 Xenia Цитата(halfdoom @ Sep 6 2014, 14:12) Сугу... Sep 6 2014, 11:48  A. Fig Lee Цитата(Xenia @ Sep 6 2014, 07:48) Я же из... Sep 6 2014, 12:31  juvf Цитата(Xenia @ Sep 6 2014, 17:48) Скажем ... Sep 8 2014, 05:22 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 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|