Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C++ & Pascal
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Страницы: 1, 2
Vadimuskainstik
Не могу понять чем отличается C++ и Pascal , подскажите пожалуйста , как начинающему программисту в какой среде лучше работать и понятней ?
sigmaN
Отличается как земля и марс )
Лучше работать сразу на С++. Паскаль почти мертвый язык.
Рекомендую Qt. Рабоать в среде Qt creator.

https://www.qt.io/download-open-source/
Для Windows качайте
http://download.qt.io/official_releases/qt...gw530-5.7.0.exe
iosifk
Цитата(Vadimuskainstik @ Sep 8 2016, 20:28) *
Не могу понять чем отличается C++ и Pascal , подскажите пожалуйста , как начинающему программисту в какой среде лучше работать и понятней ?

Все довольно просто. Известно, что фирма работает на том языке, на котором работает ее лучший программист. А потому читаете требования на сайтах, где предлагают работу и определяете требования к языку и к среде программирования...
BackEnd
Цитата(Vadimuskainstik @ Sep 8 2016, 17:28) *
Не могу понять чем отличается C++ и Pascal

C++ отличается от Pascal зарплатой.

Цитата(Vadimuskainstik @ Sep 8 2016, 17:28) *
в какой среде лучше работать и понятней ?

Лучше работать в женской среде. Это не всегда понятно, но почти всегда приятно.
alexunder
Цитата(Vadimuskainstik @ Sep 8 2016, 19:28) *
Не могу понять чем отличается C++ и Pascal , подскажите пожалуйста , как начинающему программисту

Два разных языка программирования высокого уровня.
Паскаль как таковой уже давно не развивается, если не считать Free Pascal, но Вы наверное не его имеете ввиду, а тот самый борландовский. Как верно заметили выше, новые проекты под него вряд-ли кто-то делает.
У Паскаля есть неплохой наследник под названием Delphi. Однако и он в настоящее время уступает C++ в популярности.

Цитата(Vadimuskainstik @ Sep 8 2016, 19:28) *
в какой среде лучше работать и понятней ?

Если C++, то под Windows рекомендую MS Visual Studio (Community edition бесплатная)
Если Delphi, то Embarcadero RAD (платная) или Lazarus (бесплатная, на основе Free Pascal)
sigmaN
Цитата
Если C++, то под Windows рекомендую MS Visual Studio (Community edition бесплатная)
Ага, еще на MFC подсесть ему посоветуйте ))))))
Пусть уж лучше начинает хоть и с фреймворка, зато толкового. Чем либо грызть кактусы на голом Win API, либо MFC либо что там у нас последнее было у MS для интерфейсов? Какая-то монстроузная технология название которой я забыл )
alexunder
Цитата(sigmaN @ Sep 8 2016, 22:54) *
Ага, еще на MFC подсесть ему посоветуйте ))))))
Пусть уж лучше начинает хоть и с фреймворка, зато толкового. Чем либо грызть кактусы на голом Win API, либо MFC либо что там у нас последнее было у MS для интерфейсов? Какая-то монстроузная технология название которой я забыл )

Я и не предлагал MFC. Кстати MFC - это не только GUI.
Есть замечательный .Net с массой всевозможных классов, отличный фремворк.
И потом, человек спросил про среду для разработки C++, мое мнение - MSVS наиболее удобная.
brag
Цитата(alexunder @ Sep 8 2016, 23:59) *
Я и не предлагал MFC. Кстати MFC - это не только GUI.
Есть замечательный .Net с массой всевозможных классов, отличный фремворк.
И потом, человек спросил про среду для разработки C++, мое мнение - MSVS наиболее удобная.

Наиболее толковый и простой С++ фреймворк для норм-программиста, тем более смотрящего в сторону embedded - это Qt + C++11.
Код нужно на языке писать, а не на среде или на библиотеке. Библиотеки и среды можно(и нужно) использовать, но уметь нужно работать именно на языках, в текстовом редакторе sm.gif
Сам часто себя ловлю на том, что начинаю зависеть от подсветки синтаксиса - тогда я отключаю ее на месяц, чтобы мозг на код смотрел, а не на цветастики.
Цветовые схемы тоже часто меняю, чтобы не привыкать.

Была у меня одна ситуация, когда-то работал на одной фирме. Там был проггер, у которого стояли все эти MP-labы, IARы и MSVSы. Потом это все слетело вместе с винтом и он выпал в осадок. Он не мог работать в текстовом редакторе вообще! Даже свой код читать без привычной ему подсветки не мог. А нужно было сделать простую прошивку для ПИКа, которую я в VIM-е на старом допотопном ноуте с 256мб оперативки настрочил за часа 2, скомпилировал SDCC, зашил не помню уже чем и получил за это неплохую премию sm.gif А проггер в это время устанавливал свой зоопарк, 1.5 дня на это потратил sm.gif
Хотя он толковый программист в своей кухне, сам у него много чему учился. Но зависимость от этих сред обрел быстро и избавиться от нее не может.
alexunder
Цитата(brag @ Sep 9 2016, 00:45) *
Код нужно на языке писать, а не на среде или на библиотеке. Библиотеки и среды можно(и нужно) использовать, но уметь нужно работать именно на языках, в текстовом редакторе sm.gif

О, да. Я раньше вообще в тетрадочке писал, там подсветки не было biggrin.gif Сейчас, кстати, иногда так делаю.
Если серьезно, то вот на Питоне в самом деле пользуюсь обычным текстовым редактором, ибо там и среда как бы и не нужна.
По поводу фреймворков - тут уж у каждого свои фломастеры. Мне персонально по нраву многообразие дотнеты, я ей даже не в C++/C# пользуюсь, а непосредственно в том же Питоне (IronPython).
ViKo
Посоветую язык C# и уже упомянутую Visual Studio Community, будете в современном тренде. Это если для Windows писать.
AlexRayne
и тот и другой - императивные языки. Паскаль - был создан для обучения программированию, что он делает прекрасно. С - для писания дровей и ембеббеда - что он делает тоже вполне удовлетворительно, и альтернатив пока не видно. для обучения он уже не так хорош.
с++ - неизбежно на него перейдете когда начнете делать UI, или навернутые полиморфные протоколы реализовывать, или просто большие проекты. лучше учебу с него не начинать, те учебники что я видел сразу начинали грузить виртуальными классами и шаблонами.
фрипаскаль - единственный мне знакомый ныне живой паскаль. у них есть даже порт ембеббед на кортех М3. он покрывает частично мощь с++, и при этом будет так же внятен как простой С. вобще это уникальная штука, его ориентированость на множество ОС чемто замахивается на GCC.
у паскаля есть большое неоспоримое преимущество перед С - простая и понятная система компиляции проекта. фактически он сам все находит, соединяет и собирает, если вы остаетесь в рамках паскаля. и делает он это очень очень быстро.
у С и С++ - вам придется либо использовать студии типа эклипс или МСВС которые генерят скрипты для сборки, или освоить make, Cmake или Qmake, или какойто еще мак. это еще один язык програмирования. при этом сборка среднего проекта может идти десятки секунд, минуты. сборка линя может занимать час и более.
скорость сборки радикально меняет подход к стилю отладки проекта. Паскаль оказывается более удобен.



Цитата(ViKo @ Sep 9 2016, 07:52) *
Посоветую язык C# и уже упомянутую Visual Studio Community, будете в современном тренде. Это если для Windows писать.

встречал людей из института пришедших видимо начинавших с шарпа - они не понимали что такое указатель. програмировать на простом С или С++ - было им невозможно. испытательный срок не выдерживали.
alexunder
Цитата(AlexRayne @ Sep 9 2016, 09:21) *
и тот и другой - императивные языки. Паскаль - был создан для обучения программированию, что он делает прекрасно.
встречал людей из института пришедших видимо начинавших с шарпа - они не понимали что такое указатель. програмировать на простом С или С++ - было им невозможно. испытательный срок не выдерживали.

Пожалуй, подпишусь под каждым словом. Начинать программировать с C#, конечно, не стоит, а упомянут сей зверь тут был в аспекте построения ПО с графическим пользовательским интерфейсом.

Цитата(AlexRayne @ Sep 9 2016, 09:21) *
живой паскаль. у них есть даже порт ембеббед на кортех М3.

а вот за это спасибо! Попробую взглянуть на досуге.
Kabdim
Если нужно делать GUI легко и с ограниченным временем, то delphi - это хорошо. Раньше это почти однозначно, но сейчас на C#/WPF или QT можно делать всё то же самое почти так же удобно.
Для всего остального о Паскале следует забыть.
ЗЫ Я программировал на delphi достаточно долго, как раз в те времена когда построение GUI было там на голову выше всех остальных.
sigmaN
На "голову выше" это потому что мышкой тыкать можно было, а не программировать )))))))))
Kabdim
Ну да. Разве интерфейс на который потратили человекогод из смеси MFC (в лучшем случае, и он, напомню, был убог), WinApi, **** и палок сильно лучше по факту того что на него потратили человекогод?
AlexandrY
Цитата(Kabdim @ Sep 9 2016, 11:17) *
Если нужно делать GUI легко и с ограниченным временем, то delphi - это хорошо. Раньше это почти однозначно, но сейчас на C#/WPF или QT можно делать всё то же самое почти так же удобно.
Для всего остального о Паскале следует забыть.
ЗЫ Я программировал на delphi достаточно долго, как раз в те времена когда построение GUI было там на голову выше всех остальных.


Ну сделайте или покажите мне программу с окнами для работы с Bluetooth LE через встроенный в комп адаптер Bluetooth написанную с QT или с использованием C#/WPF или просто на любом языке с использованием .NET


Kabdim
Что бы что доказать персонально вам? А зачем? И кстати ничего сверхсложного, вероятно придется потратить чуть больше времени на написание кода, который (видимо написали за вас) в компоненте работы с BLE.
alexunder
Цитата(AlexandrY @ Sep 9 2016, 10:38) *
Ну сделайте или покажите мне программу с окнами для работы с Bluetooth LE через встроенный в комп адаптер Bluetooth написанную с QT или с использованием C#/WPF или просто на любом языке с использованием .NET

А в чем принципиальная сложность создания такой программы упомянутыми средствами?
У меня прямо сейчас навскидку более сложное (чем Вы предложили) ПО для работы с периферией написано .net. Теситруется "видеокамера", с которой софт общается через CameraLink, 30fps, HDR. От .net используются формы и классы для примитивной обработки изображения. Все написано на Питоне, кроме обертки на CameraLink.
AlexRayne
Цитата(Kabdim @ Sep 9 2016, 11:17) *
Если нужно делать GUI легко и с ограниченным временем, то delphi - это хорошо. Раньше это почти однозначно, но сейчас на C#/WPF или QT можно делать всё то же самое почти так же удобно.
Для всего остального о Паскале следует забыть.
ЗЫ Я программировал на delphi достаточно долго, как раз в те времена когда построение GUI было там на голову выше всех остальных.

Базы данных - их конек, они первые в них рванули, и заняли свою нишу в бугалтерии. сейчас конечно С++ и другие подтянулись, но не ранее чем QT допилили нормальный РАД.

Вообще если с паскалем связываться - freepascal/lazarus единственный вариант. эмбаркадера стоит неадекватных денег - против МСВС на порядок дороже. и ломать ее сложнее. и без сапорта - ее пользовать рисково, ибо галюны таки есть.
AlexandrY
Цитата(Kabdim @ Sep 9 2016, 11:41) *
Что бы что доказать персонально вам? А зачем? И кстати ничего сверхсложного, вероятно придется потратить чуть больше времени на написание кода, который (видимо написали за вас) в компоненте работы с BLE.


Я подумал вам полезно будет узнать что там это сделать обычным способом не удастся.
Но зато легко будет сделать в Delphi.
Kabdim
Может быть быть вам не будет сложно конкретизировать свою мысль? Что именно обычным способом (которые кстати включают в себя возможность использовать нативный код) мне не удастся на дот нете? И тот же вопрос про QT. То что где-то есть библиотека/компоненты где-то нет? Ну так можно сделать несложную обертку и использовать что угодно где угодно. А может лучший вариант будет вовсе переписать.

Цитата(AlexRayne @ Sep 9 2016, 12:00) *
Базы данных - их конек, они первые в них рванули, и заняли свою нишу в бугалтерии. сейчас конечно С++ и другие подтянулись, но не ранее чем QT допилили нормальный РАД.

Может быть, возможно я ошибся в своей категоричности из-за того что не соприкасался с бухгалтерией. По моему жизненному опыту там обычно 1C крутится.
brag
C# нормальный прикольный язык, сам с него какие-то идеи драл и реализовывал на плюсах. Но у него один минус - он слишком Майкрософтовский sm.gif А нам надо такой язык, чтобы и под МК можно было нормально работать, и под ПК. Это С++, Rust и возможно Javascript
zltigo
QUOTE (AlexRayne @ Sep 9 2016, 10:21) *
Паскаль - был создан для обучения программированию, что он делает прекрасно.

Да, на уровне "Маша мыла Раму". Все, что сложнее, то начинается делаться в паскалеобразных все больше и больше через анус и реинкаринуется в неведомо что типа "Дельфи".
QUOTE
у паскаля есть большое неоспоримое преимущество перед С - простая и понятная система компиляции проекта. фактически он сам все находит, соединяет и собирает, если вы остаетесь в рамках паскаля. и делает он это очень очень быстро.

Глупость sad.gif. Язык не накладывает никаких ограничений на инструментальные средства. То, что паскалееобразые по традиции валят все в кучу и скрывают суть работы от "глупых" программистов, есть зло.
QUOTE
при этом сборка среднего проекта может идти десятки секунд, минуты. сборка линя может занимать час и более.
скорость сборки радикально меняет подход к стилю отладки проекта. Паскаль оказывается более удобен.

Феерическая муть про время.
QUOTE
встречал людей из института пришедших видимо начинавших с шарпа - они не понимали что такое указатель. програмировать на простом С или С++ - было им невозможно. испытательный срок не выдерживали.

А те, котрые с "Паскаля" пришли, понимали sm.gif sm.gif




QUOTE (AlexRayne @ Sep 9 2016, 12:00) *
Базы данных - их конек, они первые в них рванули...

Если то, что у Боланда называть "базой даных", то тогда я Папа римский sad.gif. Но охламонов до сих пор кропающих бухгалерские вещи на дельфях хватает sad.gif.
Повбивал бы гадов http://www.accor.lv/index.php?page=program&lang=rus
AlexandrY
Цитата(zltigo @ Sep 9 2016, 16:54) *
Но охламонов до сих пор кропающих бухгалерские вещи на дельфях хватает sad.gif.


Нее.. , Delphi это реально круто. Он действительно компилит в разы быстрее C++
Но это скорее особенность RAD Studio.

У меня проект для автоматизации бизнес процессов заводика одного как-то раз славный вышел.
Бухгалтерия там, учет товара, склад, взвешивание и все такое.

Летает как ракета. Включается без всякой инсталляции. Доступна отовсюду из интернета с любого планшета с виндой.
Подключается к любому оборудованию легко.
База данных на MS SQL. Ни разу не упала за пару лет.
Клиенту любые фичи гарантировались не глядя.
Компилилась мгновенно все равно что с Python-ом работал бы.
sigmaN
У многих из нас есть веселые воспоминания связанные с Delphi, но врятли стоит это кому-то рекомендовать.
Лично я очень много раз приходил к мысли, что лучше бы вместо паскаля сразу подсел на Си, а вместо Delphi юзал С++! Ооочень очень много раз приходил к такой мысли. Печальная мысль. Жаль потерянного времени crying.gif

Но всё-таки надо отдать должное, это лучше чем ничего ) Определенный опыт программирования я безусловно получил и это дало определенную пользу.
aiwa
Цитата(Vadimuskainstik @ Sep 8 2016, 20:28) *
Не могу понять чем отличается C++ и Pascal , подскажите пожалуйста , как начинающему программисту в какой среде лучше работать и понятней ?

Сами языки отличаются лексикой.
Грубо говоря принципиальных отличия только два:
1. вместо { в С++ паскаль использует "begin" и, соответственно, вместо сишного "}" - "end".
2. способ записи: в Си используется "тип_переменной имя_переменной;", в паскале тоже самое будет записано
как "var имя_переменной:тип_переменной".
Различия, по сути похожи на отличие современного русского от дореволюционного: вроде бы все понятно,
но быстро читать не получается.
И очень напоминает ситуацию в самом С с его "правилами оформления" кода.


В силу исторических причин С гораздо более распространен, поэтому и более предпочтителен.

brag
Цитата
Сами языки отличаются лексикой.

Да, это точно. И все это императив, что С, что паскаль, разницы на чем учиться императиву нет.
Да И плюсы до недавнего времени тоже были обычным ОО (тоже императив), разницы с делфями не было. Только недавно в плюсах появились зачатки функциональщины, вырисовывается кое-какой(хоть и не внятный) декларатив, так что теперь плюсы слегка круче sm.gif
aiwa
Цитата(brag @ Sep 10 2016, 08:37) *
Да, это точно. И все это императив, что С, что паскаль, разницы на чем учиться императиву нет.

Небольшое уточнение: разница на чем учиться все-таки есть - именно из-за лексики и вырабатывающейся привычке к ней.
Лучше сразу выбрать "правильную", чтобы не иметь "дурных" привычек.
zltigo
QUOTE (AlexandrY @ Sep 9 2016, 17:23) *
База данных на MS SQL. Ни разу не упала за пару лет.

Але! Причем тут MS SQL к утверждению "Базы данных - их конек, они первые в них рванули". Типа "первые рванули" они, блин, на пcевдо базе toolboх, потом уже цепляли через прокладки ЧУЖИЕ paradoх, dbase и же с ними. Уродская прокладка dbExpress о которой Вы, видимо, говорите, появилась и того позже, когда уже в реальном мире для борланда все кончилось. Так что "конек" у борланда всегда был один - давайте мы свяжем Вам руки и дадим красивые прокладки-библиотеки ко всему чему попало. За пользование этой "красотой" Вы должны отключить мозг и поклоняться Борланду и пророку его Компоненту.

QUOTE (aiwa @ Sep 10 2016, 01:48) *
Грубо говоря принципиальных отличия только два:

Это утверждение не тянет даже на глупую шутку sad.gif
brag
Цитата
Небольшое уточнение: разница на чем учиться все-таки есть - именно из-за лексики и вырабатывающейся привычке к ней.
Лучше сразу выбрать "правильную", чтобы не иметь "дурных" привычек.

Лучше привычек не вырабатывать вовсе. И почему это C правильная, а Паскаль - нет, потому что все привыкли к С? Я не говорю конкретно о паскале, я говорю в общем.
Нужно уметь программировать, а на чем - это уже дело случая. Сегодня на одном, а завтра может быть понадобится на другом.
Я тоже привык к С(а со временем и к С++) и очень сейчас от этого страдаю, эта привычка мне мешает работать на более продвинутых языках, у которых синтаксис да и стиль в целом совсем другой.
aiwa
Цитата(brag @ Sep 10 2016, 10:21) *
Лучше привычек не вырабатывать вовсе.

Они вырабатываются независимо от желания человека.

Цитата(brag @ Sep 10 2016, 10:21) *
Я не говорю конкретно о паскале, я говорю в общем.

Так я тоже не о паскале а о читаемости кода в силу привычки.
В качестве иллюстрации пример из С двух вариантов оформления:
Код
первый_блок{
   код
   второй_блок{
      код
      третий_блок{
         код
      }
   }
}

и
Код
первый_блок
{
   код
   второй_блок
     {
        код
        третий_блок
          {
             код
          }
    }
}

Одно и тоже, но один из них из-за привычки легче читается.
brag
Цитата
Они вырабатываются независимо от желания человека.

Зато можно этому препятствовать.
Тут конечно от желания зависит. Если у Вас стоит цель устроиться на работу и выполнять задачи одного скажем так класса, на одном конкретном языке, фреймворке, стиле итд, до конца своих дней - тогда привычки только в пользу.
А если хотите быть "универсальным" программистом, быстро адаптироваться под новомодные тренды, тогда привычки нужно давить на корню - писать на разных языках, в разном стиле, на разных инструментах, платформах итд. Тогда любой код будете одинаково нормально читать(и писать), без всяких студий, подсветок синтаксиса итд, в обычном консольном текстовом редакторе.
Den64
Цитата(brag @ Sep 10 2016, 10:21) *
И почему это C правильная, а Паскаль - нет, потому что все привыкли к С? Я не говорю конкретно о паскале, я говорю в общем.

Программировал на разных языках. Си изучил одним из последних. Так вот считаю что си это лучшее, на много лучшее на чём мне приходилось программировать. До си я больше всего пользовался паскалём\делфи. Даже раньшн занимался репетиторством по паскалю. На паскале я больше программировать не хочу. Вспоминаю его с отвращением. На си код получается на много красивее и понятнее. Программировать на си на много быстрее. К тому же много языков подобны си.
Строгая типизация паскаля затрудняет решение многих алгоритмических задач. У си типизация мягкая. У си много преимуществ, а вот преимуществ паскаля я не знаю хоть и написал на нём строк кода даже наверно больше чем на си.
zltigo
QUOTE (brag @ Sep 10 2016, 10:21) *
Нужно уметь программировать, а на чем - это уже дело случая.

Это несомненно, но все же надо и понимать, на чем программировать не надо sm.gif.


QUOTE (aiwa @ Sep 10 2016, 13:13) *
Одно и тоже, но один из них из-за привычки легче читается.

Форматирование в привычный вид делается автоматически. И это действительно надо делать, если предстоит серьезная работа с чужими "неправильно" отформатированными исходниками. Худо, только, если когда больные на голову авторы языка начинают требовать абсолютно жесткого выполнения надуманных правил.


QUOTE (brag @ Sep 10 2016, 13:29) *
Тогда любой код будете одинаково нормально читать(и писать), без всяких студий, подсветок синтаксиса итд, в обычном консольном текстовом редакторе.

Ну и зачем заниматься такой ерундой в "обычном редакторе", когда под языки уже, как лет 30 c гаком все настраивается в тоже ОБЫЧНЫХ текстовых редакторах?
brag
Цитата
Так вот считаю что си это лучшее, на много лучшее на чём мне приходилось программировать.

Есть гораздо более продвинутые и безопасные языки, чем С. Для нынешних задач С практически умер. Плюсы его заменяют полностью. Нужен он только для поддержки legacy кода и legacy-программистов sm.gif, новый код желательно писать на других языках, дающих гораздо больше возможностей.
Цитата
У си типизация мягкая.

Это очень плохо и опасно.

Цитата
Худо, толькл, если когда больные на голову авторы языка начинают требовать абсолютно жесткого выполнения надуманных правил.

Они не надуманные. Например, требования к форматированию в Python сделано ради приучения программистов определенного стиля форматирования кода, и это очень важно, когда все пишут в одном стиле - легче читать, особенно тем, у кого привычки sm.gif
Или const переменные по умолчанию в Rust, или невозможность просто так иметь одновременно 2 ссылки на один обьект в нем же - тоже очень важно. В С++ приходится самому следить за этим, вручную везде пихать консты, а в Rust за этим следит компилятор.
Rust был разработан для полной замены С++, и там очень строгие правила.
Каждый язык проектируется с определенной целью, а не для того, чтобы кто-то думал, что авторы языка больные на голову. Другое дело - legacy-зависимость
Den64
Цитата(brag @ Sep 10 2016, 14:19) *
Есть гораздо более продвинутые и безопасные языки, чем С. Для нынешних задач С практически умер. Плюсы его заменяют полностью. Нужен он только для поддержки legacy кода и legacy-программистов sm.gif, новый код желательно писать на других языках, дающих гораздо больше возможностей.

Да но на си пишут и новые приложения. На си написаны win7,8, 10, android, ios, естественно все линуксы, самые популярные игры САПРы и прочее. Большинство новых приложений написаны на си, за исключением тех что пишут домохозяйки и менеджеры.
zltigo
QUOTE (brag @ Sep 10 2016, 14:19) *
Они не надуманные. Например, требования к форматированию в Python сделано ради приучения программистов определенного стиля форматирования кода...

И эта причина называется "не надуманной" sm.gif.


QUOTE (brag @ Sep 10 2016, 14:19) *
Каждый язык проектируется с определенной целью, а не для того, чтобы кто-то думал, что авторы языка больные на голову.

Когда цель есть устроить концлагерь на ровном месте, дабы "неразумных" типа направить на путь истинный, то такие цели мне неприемлимы.
brag
Цитата
Да но на си пишут и новые приложения. На си написаны win7,8, 10, android, ios, естественно все линуксы, самые популярные игры САПРы и прочее. Большинство новых приложений написаны на си, за исключением тех что пишут домохозяйки и менеджеры.

Это все на плюсах или чем-то более высокоуровневом, а C там в качестве legacy-кода, не переписывать же терабайты кода на другой язык, приходиться поддерживать код на старом языке.
Новый софт пишеться на продвинутых языках - C++, JS, Go, Python и куче других. Какой смысл делать на С, если есть языки по-лучше?
Разве что, если тот кто делает или тот, кто будет поддерживать ничего кроме С не знает и учить не хочет sm.gif
Den64
Цитата(brag @ Sep 10 2016, 15:13) *
Это все на плюсах или чем-то более высокоуровневом, а C там в качестве legacy-кода, не переписывать же терабайты кода на другой язык, приходиться поддерживать код на старом языке.
Новый софт пишеться на продвинутых языках - C++, JS, Go, Python и куче других. Какой смысл делать на С, если есть языки по-лучше?
Разве что, если тот кто делает или тот, кто будет поддерживать ничего кроме С не знает и учить не хочет sm.gif

Естественно С++. я его и имел ввиду, думал Вы поняли меня. Чисто сишный компилятор для современного компа уже и не найти наверно.
aiwa
Цитата(brag @ Sep 10 2016, 14:19) *
новый код желательно писать на других языках, дающих гораздо больше возможностей.

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

Цитата(brag @ Sep 10 2016, 14:19) *
Или const переменные по умолчанию в Rust, или невозможность просто так иметь одновременно 2 ссылки на один обьект в нем же - тоже очень важно. В С++ приходится самому следить за этим, вручную везде пихать консты, а в Rust за этим следит компилятор.
Rust был разработан для полной замены С++, и там очень строгие правила.

Rust не знаю, но ,судя по описанию, для замены С++ он не годится.


Цитата(brag @ Sep 10 2016, 15:13) *
Это все на плюсах или чем-то более высокоуровневом, а C там в качестве legacy-кода, не переписывать же терабайты кода на другой язык, приходиться поддерживать код на старом языке.

Давайте расставим точки над i. С и С++ - это один язык только в разные времена. Один в те времена, когда в больших микросхемах было мало памяти, второй - когда в маленьких микросхемах стало до фига памяти. Переписывать терабайты кода совершенно без надобности, можно лишь перекомпилировать.
А причин для перевода legacy-кода на более современные языки у производителей авто- и прочего действительно нет, для них главное надежность.
И тут они действительно правы.
sigmaN
Цитата
Новый софт пишеться на продвинутых языках - C++, JS, Go, Python и куче других. Какой смысл делать на С, если есть языки по-лучше?
Вы там знаете на чем пишут.
Вы до недавнего времени даже не знали что ваш Node.JS писан поверх Сишной либы https://github.com/libuv/libuv
В папочку src то заходили? Чего дам одни .c файлы? wink.gif
AlexandrY
Цитата(sigmaN @ Sep 9 2016, 22:38) *
Лично я очень много раз приходил к мысли,... вместо Delphi юзал С++! Ооочень очень много раз приходил к такой мысли. Печальная мысль. Жаль потерянного времени crying.gif


На C++ вы не переходили потому что абсолютное большинство компонентов в RAD Studio написано на Delphi.
С Builder еще можно юзать пока вы делаете простенькие утилиты, а начав писать корпоративные приложения вам приходится перейти на Delphi.
Поскольку и VCL, и FireMonkey, и FireDAC, и DevExpress, и TeeChart, и Indy и т.д.- все написано на Delphi.
Попытавшись перейти на С Builder теряете возможность их отладки.

Безусловно сейчас надо рекомендовать Delphi Berlin особенно тем кто хочет быстро делать программы одновременно под Win, Android и iOS.
BackEnd
Цитата(brag @ Sep 10 2016, 11:19) *
Есть гораздо более продвинутые и безопасные языки, чем С. Для нынешних задач С практически умер.

Да щаззз прям! biggrin.gif
https://www.youtube.com/watch?v=XHosLhPEN3k
aiwa
Цитата(AlexandrY @ Sep 10 2016, 22:32) *
С Builder еще можно юзать пока вы делаете простенькие утилиты, а начав писать корпоративные приложения вам приходится перейти на Delphi.

Имел опыт корпоративных приложений на Delphi: клиенская часть MS SQL. Перешел на СBuilder, потому что begin-end было "невыносимо-мучительно" видеть.
Проблем с отладкой не испытывал. Единственной потерей было то, что билдеровский "Tпредок::" смотрел на права доступа, в отличие от дельфийского inherited.

zltigo
QUOTE (aiwa @ Sep 11 2016, 09:22) *
потому что begin-end было "невыносимо-мучительно" видеть.

Да, это дурацкая идея с begin-end sad.gif, явно тоже мечтали "улучшить" читамость sad.gif. Не пойму только одного, почему-бы прежде, чем реализовывать подобняе "идеи" не заменить в любом текте, например, точки на end и не потестировать получившиеся дерьмо на читаемость.
На грани 80x-90x приходилось один большой борлондячий проект перелопачивать. Через несколько дней ошизев от созерцания бесконечных begin-end заменил их по всему проекту на {} а перед компиляцией прогонял через сишный препроцессор для обратной подстановки. Работал еще с одним языком у которго синтаксис и не только, был похож на паскалевский, потом в Автора хватило ума переделать на похожий на сишный.
TSerg
"Перекличка куликов, часто с фальшивым голосом, из своего болота и ни о чем." (С)
brag
Цитата
Самые большие возможности - это когда язык позволяет реализовать любую ассемблерную конструкцию.
Все остальное - просто реклама.

Самые большие возможности у программирования в машинных кодах, все остальное - просто реклама. Тру-программисты пишут как минимум на ассемблере, остальные - это домохозяйки sm.gif

Цитата
Rust не знаю, но ,судя по описанию, для замены С++ он не годится.

с чего бы это? Аргументы?

Цитата
Давайте расставим точки над i. С и С++ - это один язык только в разные времена. Один в те времена, когда в больших микросхемах было мало памяти, второй - когда в маленьких микросхемах стало до фига памяти.

Это 2 кардинально разных языка, просто С++ поддерживает С и то не полностью. Посмотрите на классический С-исходник, и на модерн-С++ , особенно асинхронный, с шаблонами,лямбдами, итд(например из моих примеровsm.gif.
Хотя одну и ту же задачу можно решить как на асме, так и на С, так и на С++, при чем одним и тем же способом. Например линукс, винда - это OOП, полноценные динамические обьекты, но написаны на С (привет legacy код).
И память тут не причем, пишу на мк с 256байт памяти и 1кб флеша на С++ и ничего, оба языка статические и у обеих абсолютно одинаковое требование по ресурсам(RTTI и exceptions не в счет).

Цитата
Вы до недавнего времени даже не знали что ваш Node.JS писан поверх Сишной либы https://github.com/libuv/libuv
В папочку src то заходили? Чего дам одни .c файлы? wink.gif

Причины почему там С-файлы я уже назвал.
aiwa
Цитата(brag @ Sep 12 2016, 01:02) *
Самые большие возможности у программирования в машинных кодах, все остальное - просто реклама. Тру-программисты пишут как минимум на ассемблере, остальные - это домохозяйки sm.gif

Напрасно иронизируете. Ассемблер - это всего лишь хитрош...ый способ записи машинных кодов. Поэтому можно повториться и с машинными кодами:
тот язык высокого уровня будет более удачен, который позволит реализовать любую конструкцию в машинных кодах.

Цитата(brag @ Sep 12 2016, 01:02) *
с чего бы это? Аргументы?

Очень просто: описанное Вами как преимущество запрет иметь два указателя на один объект - это всего лишь ограничение языка.
А ограниченный в чем-то язык уже не сможет полноценно заменить язык без ограничений.

Цитата(brag @ Sep 12 2016, 01:02) *
Это 2 кардинально разных языка, просто С++ поддерживает С и то не полностью. Посмотрите на классический С-исходник, и на модерн-С++ , особенно асинхронный, с шаблонами,лямбдами, итд(например из моих примеровsm.gif.

Опять Вы сравниваете один и тот же язык двух различных временных периодов. Человек младенческого возраста и взрослый человек имеют совершенно различные возможности. Асинхронность в С++ - это всего лишь следствие развития и доступности техники: многоядерность стала по карману обычному обывателю.
А лямбды - это всего лишь стенография и не более. Даже лучше сказать "стенографические приемы" в языке. По сути как и "++".

Цитата(brag @ Sep 12 2016, 01:02) *
Например линукс, винда - это OOП, полноценные динамические обьекты, но написаны на С (привет legacy код).

Вообще-то полноценные динамические объекты винды и объекты ООП С++ никак не связаны. мелкософт даже просит не путать.

Цитата(brag @ Sep 12 2016, 01:02) *
И память тут не причем, пишу на мк с 256байт памяти и 1кб флеша на С++ и ничего, оба языка статические и у обеих абсолютно одинаковое требование по ресурсам(RTTI и exceptions не в счет).
Причины почему там С-файлы я уже назвал.

Не только без RTTI и exceptions, но еще и без украшающий современный язык нововведений в виде лямбд и асинхронности.
Не уверен, но подозреваю и без создания динамических объектов посредством "new" - потому что из 256 байт выкидывать что-то на обслуживание этой роскоши, та еще по паре байт на указатель довольно неразумно.
И что остается от С++? - только привычка к С++-шной форме записи.
brag
Цитата
тот язык высокого уровня будет более удачен, который позволит реализовать любую конструкцию в машинных кодах.

Это C++ и Rust sm.gif

Цитата
Очень просто: описанное Вами как преимущество запрет иметь два указателя на один объект - это всего лишь ограничение языка.
А ограниченный в чем-то язык уже не сможет полноценно заменить язык без ограничений.

Это не ограничение, это мера ради безопасности, заставляющая программиста работать в определенном стиле. Можно без проблем втулить unsafe-block, но если Ваша программа состоит из кучи unsafe-блоков, значит Вы делаете что-то не так - мало опыта. Аналогично, если в С++ у Вас куча reinterpret_cast - программа написана криво, а если там хоть один С-style cast, значит программу точно надо ставить на паузу и идти учить C++.

Цитата
А лямбды - это всего лишь стенография и не более. Даже лучше сказать "стенографические приемы" в языке. По сути как и "++".

Многие считают лаямбды просто синтаксическим сахаром для функторов, но это нет так, они кардинально отличаются. Это все равно, что считать С синтаксическим сахаром для асма sm.gif (mov r0, r1 vs r0 = r1 )

Цитата
Вообще-то полноценные динамические объекты винды и объекты ООП С++ никак не связаны. мелкософт даже просит не путать.

Зато на плюсах реализуются гораздо проще и безопаснее, чем у этих линуксов и виндов на С.

Цитата
но еще и без украшающий современный язык нововведений в виде лямбд и асинхронности.

Лямбда и асинхронный подход занимают на пюсах столько же ресурсов, сколько аналогичное решение займет на С, и то если грамотно и оптимально реализуете на С. Если нет, то на плюсах будет всегда оптимальнее(меньше памяти и проца).

Цитата
Не уверен, но подозреваю и без создания динамических объектов посредством "new" - потому что из 256 байт выкидывать что-то на обслуживание этой роскоши, та еще по паре байт на указатель довольно неразумно.

Без динамического аллокатора ессно, зато с placement new - создание обьекта в статической памяти. Хоть и память статическая, но С++ рулит в полный рост - лямбды, шаблоны, виртуальные функции итд все работает как обычно.
Мало того, компилятор делает огромную работу и постоянно проверяет программиста.
Все мы люди и человеческий фактор работает у всех, компилятор уменьшает его влияние на скорость разработки.

Цитата
И что остается от С++? - только привычка к С++-шной форме записи.

То же и по С можно сказать - при программировании на стольк крохотных девайсах на С вместо АСМа от С остается только привычка к С-шной форме записи. Тру программеры пишут только на АСМе(или в машинных кодах) и под каждый камень переписывают программу заново, делая все максимально оптимизировано под конкретный камень sm.gif
AlexandrY
Цитата(aiwa @ Sep 12 2016, 04:17) *
Опять Вы сравниваете один и тот же язык двух различных временных периодов. Человек младенческого возраста и взрослый человек имеют совершенно различные возможности. Асинхронность в С++ - это всего лишь следствие развития и доступности техники: многоядерность стала по карману обычному обывателю.
А лямбды - это всего лишь стенография и не более. Даже лучше сказать "стенографические приемы" в языке. По сути как и "++".


С-и - это встроенные малые системы.
С++ - это коллективная разработка.

Т.е. разница как между мягким и круглым. Время и развитие тут не причем.

Асинхронность в C++ это не асинхронность в RTOS.
Здесь просто народ путается.
В C++ для ПК асинхронность это способ организации кооперативности.
Вытеснения как не было так и нет, управления реальным временем тоже.
"Асинхронность" С++ направлена на уменьшение отклика системы на действия пользователя.
Пытаться её как-то приладить в embedded все равно что возвращаться в глубокую древность, когда люди еще программировали PIC-и.

Такая же точно "асинхронность" есть и в Delphi. И те же лямбды есть. И шаблоны.

И каким образом связана многоядерность и эта псевдо-асинхронность C++?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.