|
С/С++, Почему до сих пор все сидят на древних языках вроде С и С++ |
|
|
|
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 30 2014, 19:46
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
juvf IMHO, ответ на вопрос "Почему до сих пор "сидят" на С/С++? " очень прост. Потому, что в embedded большинство задач (и следовательно программистов) решают достаточно тривиальные задачи. Для таких задач язык С прост и понятен. А также удобен и достаточен. При переходе к более сложным задача используют С++. Это даже не язык - это целая вселенная! Средств языка хватает чтобы работать и на низком уровне аппаратных регистров и на уровне очень мощных абстракций ООП. Мощь С++ заключается именно в его демократичности: изучить и практически использовать его можно буквально за 1 день. Другое дело, что года за три можно освоить его в той мере, что начинаешь понимать его красоту и изящество. Его реальную мощь. (Это пример из жизни когда в одном проекте работали и простые кодеры и ПРОГРАММИСТЫ. И все на С++). Только в embedded-задачах мощи то и особенно развернутся и негде. К моему глубокому сожалению, большинство тех, кто использует С++ (по моему опыту) слабо понимают силу инструмента, который они используют. Поэтому и плодятся всякие Java, C# и прочие "серебряные пули". Эдакие "эрзац С++" для ленивых. Только в реальной жизни чудес не бывает - за всё надо платить: памятью, быстродействием, энергопотреблением. Пока цена ресурсов ниже цены труда программиста - это приемлемо. И оправдано.
|
|
|
|
|
Sep 1 2014, 04:04
|

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

|
Цитата(ASN @ Aug 31 2014, 01:46)  juvf IMHO, ответ на вопрос "Почему до сих пор "сидят" на С/С++? " очень прост. Потому, что в embedded большинство задач (и следовательно программистов) решают достаточно тривиальные задачи. Для таких задач язык С прост и понятен. А также удобен и достаточен. Чем си удобней с++? Чем си проще и понятней с++? Я не говорю об ооп. ООП и на си можно реализовать и на асме. Я говорю о с++. Я написал пример тривиального кода на с++. Перепишите этот же код на си, что в си-коде будет проще и понятнее? Цитата Вот тогда поймете чего действительно стоят 'плюшки' на C++. О каких плюшках вы говорите? Я привел пример кода на с++ - где там плюшки, которые действительно стоят? в с++ есть плюшка bool - чего она стоит? в с++ есть плюшка for(int i = 0; i<10; i++) - чего стоит плюшка внутри for объявлять i? в с++ есть плюшка передачи аргументов в функцию по умолчанию - чего стоит эта плюшка? Меня услышали так "А мне не ясно нежелание писать на с++ с использованием ООП и STL, с использованием паттернов и т.п. в приложениях малого среднего размера". А говорил я так "А мне не ясно нежелание писать на с++ в приложениях малого среднего размера". Зачем вообще изучать си и писать на нем ПО (за исключением поддержки старого), если есть с++? С++ почти полностью включает си. Т.е. можно изучить в с++ только ту часть, которая стоит столько же, сколько и в си, которая проста и понятна и с помощью которой можно решать тривиальные задачи. Если не нравиться ооп и плюшки - не используй их в коде, но пиши на с++. Пиши в стиле си, но на с++. Зато потом, если понадобится какойнить перегруз функции, или класс, или другая плюшка.... то без проблем добавил в код и поехал дальше. Не нужно изучать новый язык, не нужно переписывать си код на с++ и не нужно скрещивать в проекти си код с с++. Кто-то считает что с++ это обязательно плюшки и дает уроки по чистому с++ как здесь. Но это не так. Не нужно перегружать код всякими ненужными плюшкам. Вот пример холоворда на с++ Код #include <iostream.h> #include <string.h> class string { private: int size; char *ptr; public: explicit string(const char* chrs = 0) : size(chrs ? strlen(chrs) : 0) { ptr = new char[size + 1]; if (chrs) strcpy(ptr, chrs); else ptr[size] = 0; } string(const string &s) : size(s.size) { ptr = new char[size + 1]; strcpy(ptr, s.ptr); } ~string() { delete [] ptr; } friend ostream &operator <<(ostream &, const string &); string &operator=(const char *); string &operator=(const string&); }; ostream &operator<<(ostream &stream, const string &s) { return(stream << s.ptr); } string &string::operator=(const string &s) { this->~string (); new (this) string (s); return(*this); } string &string::operator=(const char *chrs) { *this = string(chrs); return(*this); } int main() { string str; str = "Hello World"; cout << str << endl; return(0); } Убиться об стену! Тривиальная задача решена.... из пушки по воробъям! Зачем? Вы думаете что си не позволит начудить оверинженеринга? Ошибаетесь.
|
|
|
|
|
Sep 1 2014, 10:46
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(ASN @ Sep 1 2014, 11:02)  juvf Дык, в моём сообщение и не было утверждения, что си удобней с++. Просто исторически сложилось, что для ОМЭВМ сначала появились эффективные компиляторы С, а уже потом С++. Поэтому и "переползали" на С, а не на С++. А в силу тривиальности задач на С и остались. Если "с нуля", то конечно С++. У нас теперь ВСЁ программное обеспечение разрабатывается на С++: специалист растёт в рамках одного языка. Это экономически выгодно. Надо понимать это поверх линукса вы пишите ВСЁ на C++ ? С++ нишевой язык не из-за своей недосягаемой могучести. А потому что его уже проехали. Теперь гики косеют от Python, Swift, Go и проч. В психбольнице ничего не меняется. Цель новых языков не что там ускорить, а сделать процесс увлекательным, о чем и пишет Apple в аннотации к Swift. Хотел бы я посмотреть наколько быстрее напишет программист на C++ приложение для Kinetis по cравнению с программистом на C-и базируясь на инструментах и библиотеках предоставляемых Freescale. Вот на 100% уверен, что C-и победит.
|
|
|
|
Сообщений в этой теме
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 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
|
|
|