|
С/С++, Почему до сих пор все сидят на древних языках вроде С и С++ |
|
|
|
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 30 2014, 06:28
|

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

|
Цитата(DASM @ Aug 18 2014, 23:59)  А мне все равно неясна желательность С++ в приложениях малого среднего размера. А мне не ясно нежелание писать на с++ в приложениях малого среднего размера...... Хотя наверно ясна... это консервативность... т.е. если прогер в си как рыба в воде, а в с++ его в ступор вводит символы ::, то конечно ТОЛЬКО СИ. Но если ты знаешь с++ или ты не знаешь ни си, ни с++, то однозначно учи и пользуй с++. Пример: маленькая программа, холоворд на с++ Код int main() { printf("hello world!"); } Чем не нравится эта с++ программа? Чем она хужа аналога на си? Ничем! Если кто-то нелюбит ООП в с++ для эмбэддэд, считает что не нужны try - catch в эмбэддэд, а STL на аттини - это оверинженеринг - не пользуйте эти плюшки. Пишите весь код в си стиле но на с++. Зачем нужен си? Несегодя-завтра у вас в эмбеддэд будет linux или windowsXP, и этот эмбэддед будет мало чем отличатся от настольного ПК, и вам потребуется try/catch - пожалуста, пользуйте. Будет эмбэддед на ATtiny с компилятом с++, в котором даже не реализованы new и delete - пишите всё на томже с++. Зачем учить новый язык? везде нужно использовать с++. Конечно при написании рпограммы на с++ нужно адекватно оценивать возможности эмбэдэда и потребность в тех или иных плюшка. Там где достаточно массива интов, не нужно использовать std::list<MyClass>, где MyClass содержит в привате инт, и в паблике кучу методов для чтения/модификации этого инта.
|
|
|
|
|
Sep 1 2014, 14:08
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(juvf @ Aug 30 2014, 09:28)  А мне не ясно нежелание писать на с++ в приложениях малого среднего размера...... И мне не ясно нежелание писать на Форт (Forth) приложения малого и среднего размера (хотя как это оценить) Возможно это Цитата(juvf @ Aug 30 2014, 09:28)  Хотя наверно ясна... это консервативность... или "нежелание" "неумение" расставаться со "своими" "скелетами в шкафу" или "ограничнность" восприятия иных реалий программирования. Цитата(juvf @ Aug 30 2014, 09:28)  т.е. если прогер в си как рыба в воде, а в с++ его в ступор вводит символы ::, то конечно ТОЛЬКО СИ. Но если ты знаешь с++ или ты не знаешь ни си, ни с++, то однозначно учи и пользуй с++. Пример: маленькая программа, холоворд на с++ Код int main() { printf("hello world!"); } Банально холоворд на Форт Код ." Hello world!" и так во многих моментах Форт реалий Цитата(juvf @ Aug 30 2014, 09:28)  Зачем учить новый язык? везде нужно использовать с++. Учить или хотя бы иметь представление для программиста разных языковых подходов. Цитата(juvf @ Aug 30 2014, 09:28)  Конечно при написании программы на с++ нужно адекватно оценивать возможности эмбэдэда и потребность в тех или иных плюшка. Там где достаточно массива интов, не нужно использовать std::list<MyClass>, где MyClass содержит в привате инт, и в паблике кучу методов для чтения/модификации этого инта. Всё программирование в конечном счёте сводится к пересылкам одних ячеек памяти в другие (или одного потока данных процедуры к другой процедуре) с какими то преобразованиями при этом. А для этого многие искусственные абстракции типа опять ООПа не так важны. Достаточно иметь возможность делать векторным (переназначаемыми на разный код) некоторые процедуры в программе и по возможности избавляться от бездумного использования глобальных переменных. P.S. Это мне "видится" так  Патерны проектирования для меня увы почти незнакомы т.к. мне не приходится вести "позиционные войны" с используемым языковым инструментарием (что подумаю то и запрограммирую). Пример вызова цикла for из другого слова с передачей диапазона цикла (тоже банально просто) печати 10-ть раз Hello World Код : for 0 do ." Hello World" cr loop ; : print_for 10 for ; print_for Вопросы? и интересный аспект Форт творчества CC14 LIfe: Wild Demo - #1 'Forth DemoTool' похожая направленность детского творчества в проекте reda4 программирование как игра.
Сообщение отредактировал Kopa - Sep 1 2014, 15:50
|
|
|
|
Сообщений в этой теме
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 dxp Давно уже не вступаю в дискуссии по поводу языков ... Aug 20 2014, 07:04  AlexandrY Цитата(juvf @ Aug 30 2014, 09:28) А мне н... Aug 30 2014, 08:26   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 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|