Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужен ли Си ? на десктопе 
V
    Опции темы
 
Нужен ли Си на десктопе?
Нужен [ 28 ]  [66.67%]
Не нужен [ 14 ]  [33.33%]
Всего проголосовавших: 42
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
boostcoder
Дата 1.7.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



про константы в Си можно почитать тут: http://forum.vingrad.ru/index.php?showtopi...t&p=2325528
про ссылки в Си я таки не слышал...
PM WWW   Вверх
maint
Дата 1.7.2011, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 12.5.2008

Репутация: нет
Всего: 2



Цитата(boostcoder @ 1.7.2011,  09:36)
Цитата(maint @  1.7.2011,  09:32 Найти цитируемый пост)
boostcoder грит : "Нет const'ов, ссылок и т.п. "

я такого не писал.

пардон,  ошибочка
PM   Вверх
boostcoder
Дата 1.7.2011, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(fish9370 @  1.7.2011,  09:45 Найти цитируемый пост)
за печкой

вы как всегда по существу..
PM WWW   Вверх
fish9370
Дата 1.7.2011, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  1.7.2011,  09:48 Найти цитируемый пост)
вы как всегда по существу..


какой вопрос - такой ответ.. 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
maint
Дата 1.7.2011, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 12.5.2008

Репутация: нет
Всего: 2



Цитата(borisbn @ 1.7.2011,  09:45)
maint, вообще-то это я грил smile
Ну, хорошо... До какого-то момента не было. Потом, может, и ввели, я просто бросил его изучать smile

ничего не стоит на месте. Если у Кернигана в синтаксисе не было, то не значит, что остановились на достигнутом. Хотя могу предположить еще, что брошено изучение до того как добрался до материала
PM   Вверх
Earnest
Дата 1.7.2011, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Действительно, C++ слишком сложен для обучения. С - компактней и проще. Честно сказать, за его развитием я не слежу (помню тот, что был во времена Кернигана & Ричи); надеюсь, его не сильно испортили нововведениями (простую логику языка) smile 
Наверное, С++ нужно изучать даже не после С, а после чего-нибудь чисто объектного, наглухо закрывающего от программиста нижний уровень - чтобы сосредоточится именно на методологии. И вот программист освоил и нижний уровень, и высокоуровневый язык, который избавляет о многих хлопот, однако связывает ему руки своей абстрактностью и сильно навязывает определенные парадигмы. Если он сам почувствовал, что ему тесно в этих рамках, то он готов к С++. А если ему комфортно в рамках отделенного от битов языка, то ради бога. Есть ведь масса людей, кого раздражает, например, необходимость следить за памятью и т.д. (не надо про умные указатели, это в язык не встроено).




--------------------
...
PM   Вверх
gcc
Дата 1.7.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



в вакансиях с высокой з/п на язык типа: perl, ruby, python - часто требуется знание Си, почему-то. 
есть еще Embedded Linux:

Цитата

Advantages:
- Experience in voice communication software development
- Experience in GSM/GPRS, CDMA and 3G technologies.
- Experience in MIPS, ARM hardware platforms is a definite plus 


Это сообщение отредактировал(а) gcc - 1.7.2011, 14:37
PM WWW ICQ Skype GTalk Jabber   Вверх
Сыроежка
Дата 1.7.2011, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(borisbn @  30.6.2011,  21:34 Найти цитируемый пост)
1. Подчёркиваю, вопрос про Си, а не про Си++
2. Для вариантоа "Си не нужен Си++ нужен" - каменты
3. Вариант "Си/Си++ ваще не нужен" ( specially for kamiisto:) ) - тоже в каменты


Поясню, зачем срздал тему: много-много новичков начинают изучать Си. Такая программа в ВУЗах…
Но IMHO чистый Си нужен *только* для ооооооооч. специфических компиляторов/платформ.
Зачем же студиков мучают некрофилией ?


Во-первых, странно, почему у вас отсутствует вариант

4. Си нужен, С++ вообще не нужен?

Во-вторых, у вас совершенно не соответсвуют действительности представления о том. что, якобы, С нужен для каких=то "специфических" компиляторов/платформ. Это лишь говорит о вашем небольшом практическом опыте. Я уж не буду ссылаться  на UNIX подобный системы, где код Си занимает, если я не ошибаюсь, порядка 80% кода. Но Си очень активно используется на IBM mainframe, и даже под Windows.

Как раз очень многие руководители очень крупных проектов категорически против использования С++ и делают выбор в пользу С. Это связано 1). со сложностью самого языка: 2) с очень высоким требованиям к квалификации программистов: 3) долгтй путь обучения самому С++ и вниканию в проект, написанный на С++; 3) трудности в поиске ошибок и отладки проектов.

Есть вполне объективные цифры - это доля использования того или иного языка на рынке разработок. Насколько мне известно цифры показывают, что Си заметно опережает С++.

 
PM MAIL   Вверх
borisbn
Дата 1.7.2011, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Сыроежка, в общем соглашусь, но с 
Цитата(Сыроежка @  1.7.2011,  16:31 Найти цитируемый пост)
4. Си нужен, С++ вообще не нужен?

нет.

1. Как обстаят дела в Си со стандартными алгоритмами для разных типов ? Приходится переписывать под каждый тип или уходить вообще от типизации к void*, что может привести к большим ошибкам. Особенно при рефакторинге.

2. Отсутствие деструкторов сильно засоряет код. Например требуется "склеить" два файла в третий. На Си довольно много лишнего получается:
Код

bool glueFiles( char * a_name, char * b_name, char * c_name ) {
    bool result = false;
    FILE * a = fopen( a_name, "rb" );
    FILE * b = fopen( b_name, "rb" );
    FILE * c = fopen( c_name, "rb" );
    if ( a != 0 && b != 0 && c != 0 )
    {
        // обработка
        result = true;
    }
    if ( a != 0 )
    {    
        fclose( a );
    }
    if ( b != 0 )
    {    
        fclose( b );
    }
    if ( c != 0 )
    {    
        fclose( c );
    }
    return result;
}

24 строки
и на Си++
Код

bool glueFiles( char * a_name, char * b_name, char * c_name ) {
    File a( a_name );
    File b( b_name );
    File c( c_name );
    if ( !a || !b || !c )
    {
        return false;
    }
    // обработка
    return true;
}

11 строк

да много всего ещё... сами ж наверняка не хуже меня знаете...

Кста, на винграде в списке языков для подсветки (под кнопочкой Код) варианта для Си даже нет smile

Это сообщение отредактировал(а) borisbn - 1.7.2011, 17:17


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Сыроежка
Дата 1.7.2011, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(borisbn @  1.7.2011,  17:13 Найти цитируемый пост)
1. Как обстаят дела в Си со стандартными алгоритмами для разных типов ? Приходится переписывать под каждый тип или уходить вообще от типизации к void*, что может привести к большим ошибкам. Особенно при рефакторинге.

2. Отсутствие деструкторов сильно засоряет код. Например требуется "склеить" два файла в третий. На Си довольно много лишнего получается:


Если бы только этим ограничивались различия, то вопросов нет. Но, увы, я уже перечсислили серьезные недостатки С++. Разработка на С++ в разы дороже, чем на С!
PM MAIL   Вверх
borisbn
Дата 1.7.2011, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Или вот ещё пример из собственной практики. Захотели вы сделать систему расширяемой, чтобы можно было плагинами расширить функционал. Пишу я для вашей системы функцию на чистом Си. И как мне быть, если между вызовами мне нужно сохранить какое-то своё, специфическое, известное только мне, состояние ? Глобальные статические переменные не выход, т.к. если потребуется два экземпляра плагина будет каша. Я уж не говорю о многопоточности - если мою функцию будут вызывать из разных потоков, то о глобальных переменных нужно вообще забыть. Как эта проблема решается в Си++, думаю объяснять не стоит. Довольно просто - абстрактный интерфейс и какой угодно сложный класс наследника.

Добавлено через 11 минут и 27 секунд
Цитата(Сыроежка @  1.7.2011,  17:26 Найти цитируемый пост)
Разработка на С++ в разы дороже, чем на С!

согласен. Для заказчика (или руководителя проекта) это минус. А для программистов плюс. Вернее ++ smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
sergioK1
Дата 1.7.2011, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата(borisbn @ 30.6.2011,  20:34)
Зачем же студиков мучают некрофилией ?

Тот кто не знает С никогда не станет хорошим програмистом,  потому что это основы ,
последнее время часто сталкиваюсь со связкой Java+C , для обращения к железу или ОС
 c для удобства ренаймиться в срр, но не всегда требует знания всех тонкостей последнего ,

зная С освоить с++ не так сложно , ну будеть местами что нидь типа  ненужного typedef - не критично


PM MAIL   Вверх
Сыроежка
Дата 1.7.2011, 18:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(sergioK1 @  1.7.2011,  17:49 Найти цитируемый пост)
Тот кто не знает С никогда не станет хорошим програмистом


Совершенно с этим не согласен. Хороший вы программист или нет - это не связано с  тем, на каком языке программирования вы работаете!smile
И самое забавное, что скорей всего те, кто так утверждает, не знает языка С!smile То есть их квалификация как программиста С определяется наличием под рукой компилятора, который сообщает ошибки компиляции. То есть имеет место быть следующее, что ответ по какому-нибудь вопросу от этого программиста можно узнать лишь после того, как этот программист "спросит" у конкретного компилятора, правильный код или нет.smile

Я знаю очень много людей, которые десятилетиями пишут на языке С, но при этом совершенно не знают языка С и являются плохими программистами!smile

Вы хотите убедиться, что вы сами не знаете языка С? Я вам могу предоставить такую возможность. Только не надо бежать к своему компилятору и выяснять, что он вам выдаст. Попробуйте ответить без компилятора на простые вопросы, как например, этот

1) Чему равно значение логического (оператора равенства) выражения

Код

0x80 == '\x80';


2) Чему равен тип выражения x + y на машине, на который sizeof( int ) == sizeof( long )

Код

unsigned x = 0;
long y = 0;

x + y;


Я вас уверяю, что большинство здесь присутствующих, вполне возможно и включая вас, которые бьют себя в грудь, что знают Си, не сомгут без использования компилятора ответить на такие два простых вопроса!smile

Добавлено @ 18:18
Цитата(sergioK1 @  1.7.2011,  17:49 Найти цитируемый пост)
зная С освоить с++ не так сложно , ну будеть местами что нидь типа  ненужного typedef - не критично



Лично я совершенно не вижу никакого смысла тратить время на изучение Си для того, чтобы изучать С++! Лучше изучать С++ с чистого листа!

Это сообщение отредактировал(а) Сыроежка - 1.7.2011, 18:21
PM MAIL   Вверх
maint
Дата 1.7.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 12.5.2008

Репутация: нет
Всего: 2



Цитата(borisbn @ 1.7.2011,  17:13)
Сыроежка, в общем соглашусь, но с 
Цитата(Сыроежка @  1.7.2011,  16:31 Найти цитируемый пост)
4. Си нужен, С++ вообще не нужен?

нет.

1. Как обстаят дела в Си со стандартными алгоритмами для разных типов ? Приходится переписывать под каждый тип или уходить вообще от типизации к void*, что может привести к большим ошибкам. Особенно при рефакторинге.

2. Отсутствие деструкторов сильно засоряет код. Например требуется "склеить" два файла в третий. На Си довольно много лишнего получается:
Код

bool glueFiles( char * a_name, char * b_name, char * c_name ) {
    bool result = false;
    FILE * a = fopen( a_name, "rb" );
    FILE * b = fopen( b_name, "rb" );
    FILE * c = fopen( c_name, "rb" );
    if ( a != 0 && b != 0 && c != 0 )
    {
        // обработка
        result = true;
    }
    if ( a != 0 )
    {    
        fclose( a );
    }
    if ( b != 0 )
    {    
        fclose( b );
    }
    if ( c != 0 )
    {    
        fclose( c );
    }
    return result;
}

24 строки
и на Си++
Код

bool glueFiles( char * a_name, char * b_name, char * c_name ) {
    File a( a_name );
    File b( b_name );
    File c( c_name );
    if ( !a || !b || !c )
    {
        return false;
    }
    // обработка
    return true;
}

11 строк

да много всего ещё... сами ж наверняка не хуже меня знаете...

Кста, на винграде в списке языков для подсветки (под кнопочкой Код) варианта для Си даже нет smile

класс File, скорей всего, выглядит как открытие файла с проверкой результата открытия. Таже песня реализовывается в 3 строки функцией чистого Си. Что то вроде
Код

FILE *File(char *fname)
{
 return fopen(fname, "rb");
}

и использование 
Код

FILE *fd = FIle(fname);
if(fd == NULL) return FALSE;

и не надо городить конструкторы-деструкторы. Размер скомпилированного кода будет меньше и памяти жрать меньше будет. 

Это сообщение отредактировал(а) maint - 1.7.2011, 18:25
PM   Вверх
maint
Дата 1.7.2011, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 12.5.2008

Репутация: нет
Всего: 2



уже код 
Код

unsigned x = 0;
long y = 0;
x + y;

говорит о амбициях, а не знании. unsigned по умолчанию не всегда unsigned int. Не во всех компиляторах. Иногда это unsigned char. 
PM   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.