реклама на сайте
подробности

 
 
> C++ & Pascal, Помощь утопающим
Vadimuskainstik
сообщение Sep 8 2016, 17:28
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 8-09-16
Пользователь №: 93 266



Не могу понять чем отличается C++ и Pascal , подскажите пожалуйста , как начинающему программисту в какой среде лучше работать и понятней ?
Go to the top of the page
 
+Quote Post
6 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 89)
sigmaN
сообщение Sep 8 2016, 19:12
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Отличается как земля и марс )
Лучше работать сразу на С++. Паскаль почти мертвый язык.
Рекомендую Qt. Рабоать в среде Qt creator.

https://www.qt.io/download-open-source/
Для Windows качайте
http://download.qt.io/official_releases/qt...gw530-5.7.0.exe


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 8 2016, 19:17
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

Все довольно просто. Известно, что фирма работает на том языке, на котором работает ее лучший программист. А потому читаете требования на сайтах, где предлагают работу и определяете требования к языку и к среде программирования...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Sep 8 2016, 19:25
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Цитата(Vadimuskainstik @ Sep 8 2016, 17:28) *
Не могу понять чем отличается C++ и Pascal

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

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

Лучше работать в женской среде. Это не всегда понятно, но почти всегда приятно.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
alexunder
сообщение Sep 8 2016, 20:41
Сообщение #5


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(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)


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Sep 8 2016, 20:54
Сообщение #6


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
Если C++, то под Windows рекомендую MS Visual Studio (Community edition бесплатная)
Ага, еще на MFC подсесть ему посоветуйте ))))))
Пусть уж лучше начинает хоть и с фреймворка, зато толкового. Чем либо грызть кактусы на голом Win API, либо MFC либо что там у нас последнее было у MS для интерфейсов? Какая-то монстроузная технология название которой я забыл )


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
alexunder
сообщение Sep 8 2016, 20:59
Сообщение #7


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(sigmaN @ Sep 8 2016, 22:54) *
Ага, еще на MFC подсесть ему посоветуйте ))))))
Пусть уж лучше начинает хоть и с фреймворка, зато толкового. Чем либо грызть кактусы на голом Win API, либо MFC либо что там у нас последнее было у MS для интерфейсов? Какая-то монстроузная технология название которой я забыл )

Я и не предлагал MFC. Кстати MFC - это не только GUI.
Есть замечательный .Net с массой всевозможных классов, отличный фремворк.
И потом, человек спросил про среду для разработки C++, мое мнение - MSVS наиболее удобная.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 8 2016, 22:45
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата(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
Хотя он толковый программист в своей кухне, сам у него много чему учился. Но зависимость от этих сред обрел быстро и избавиться от нее не может.
Go to the top of the page
 
+Quote Post
alexunder
сообщение Sep 8 2016, 23:20
Сообщение #9


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(brag @ Sep 9 2016, 00:45) *
Код нужно на языке писать, а не на среде или на библиотеке. Библиотеки и среды можно(и нужно) использовать, но уметь нужно работать именно на языках, в текстовом редакторе sm.gif

О, да. Я раньше вообще в тетрадочке писал, там подсветки не было biggrin.gif Сейчас, кстати, иногда так делаю.
Если серьезно, то вот на Питоне в самом деле пользуюсь обычным текстовым редактором, ибо там и среда как бы и не нужна.
По поводу фреймворков - тут уж у каждого свои фломастеры. Мне персонально по нраву многообразие дотнеты, я ей даже не в C++/C# пользуюсь, а непосредственно в том же Питоне (IronPython).


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 9 2016, 04:52
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Посоветую язык C# и уже упомянутую Visual Studio Community, будете в современном тренде. Это если для Windows писать.
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Sep 9 2016, 07:21
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



и тот и другой - императивные языки. Паскаль - был создан для обучения программированию, что он делает прекрасно. С - для писания дровей и ембеббеда - что он делает тоже вполне удовлетворительно, и альтернатив пока не видно. для обучения он уже не так хорош.
с++ - неизбежно на него перейдете когда начнете делать UI, или навернутые полиморфные протоколы реализовывать, или просто большие проекты. лучше учебу с него не начинать, те учебники что я видел сразу начинали грузить виртуальными классами и шаблонами.
фрипаскаль - единственный мне знакомый ныне живой паскаль. у них есть даже порт ембеббед на кортех М3. он покрывает частично мощь с++, и при этом будет так же внятен как простой С. вобще это уникальная штука, его ориентированость на множество ОС чемто замахивается на GCC.
у паскаля есть большое неоспоримое преимущество перед С - простая и понятная система компиляции проекта. фактически он сам все находит, соединяет и собирает, если вы остаетесь в рамках паскаля. и делает он это очень очень быстро.
у С и С++ - вам придется либо использовать студии типа эклипс или МСВС которые генерят скрипты для сборки, или освоить make, Cmake или Qmake, или какойто еще мак. это еще один язык програмирования. при этом сборка среднего проекта может идти десятки секунд, минуты. сборка линя может занимать час и более.
скорость сборки радикально меняет подход к стилю отладки проекта. Паскаль оказывается более удобен.



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

встречал людей из института пришедших видимо начинавших с шарпа - они не понимали что такое указатель. програмировать на простом С или С++ - было им невозможно. испытательный срок не выдерживали.
Go to the top of the page
 
+Quote Post
alexunder
сообщение Sep 9 2016, 07:28
Сообщение #12


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



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

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

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

а вот за это спасибо! Попробую взглянуть на досуге.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 9 2016, 08:17
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Если нужно делать GUI легко и с ограниченным временем, то delphi - это хорошо. Раньше это почти однозначно, но сейчас на C#/WPF или QT можно делать всё то же самое почти так же удобно.
Для всего остального о Паскале следует забыть.
ЗЫ Я программировал на delphi достаточно долго, как раз в те времена когда построение GUI было там на голову выше всех остальных.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Sep 9 2016, 08:20
Сообщение #14


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



На "голову выше" это потому что мышкой тыкать можно было, а не программировать )))))))))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 9 2016, 08:25
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Ну да. Разве интерфейс на который потратили человекогод из смеси MFC (в лучшем случае, и он, напомню, был убог), WinApi, **** и палок сильно лучше по факту того что на него потратили человекогод?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 9 2016, 08:38
Сообщение #16


Ally
******

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



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


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


Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 9 2016, 08:41
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Что бы что доказать персонально вам? А зачем? И кстати ничего сверхсложного, вероятно придется потратить чуть больше времени на написание кода, который (видимо написали за вас) в компоненте работы с BLE.
Go to the top of the page
 
+Quote Post
alexunder
сообщение Sep 9 2016, 08:58
Сообщение #18


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



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

А в чем принципиальная сложность создания такой программы упомянутыми средствами?
У меня прямо сейчас навскидку более сложное (чем Вы предложили) ПО для работы с периферией написано .net. Теситруется "видеокамера", с которой софт общается через CameraLink, 30fps, HDR. От .net используются формы и классы для примитивной обработки изображения. Все написано на Питоне, кроме обертки на CameraLink.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Sep 9 2016, 09:00
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



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

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

Вообще если с паскалем связываться - freepascal/lazarus единственный вариант. эмбаркадера стоит неадекватных денег - против МСВС на порядок дороже. и ломать ее сложнее. и без сапорта - ее пользовать рисково, ибо галюны таки есть.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 9 2016, 09:02
Сообщение #20


Ally
******

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



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


Я подумал вам полезно будет узнать что там это сделать обычным способом не удастся.
Но зато легко будет сделать в Delphi.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 9 2016, 09:23
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



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

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

Может быть, возможно я ошибся в своей категоричности из-за того что не соприкасался с бухгалтерией. По моему жизненному опыту там обычно 1C крутится.
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 9 2016, 10:44
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



C# нормальный прикольный язык, сам с него какие-то идеи драл и реализовывал на плюсах. Но у него один минус - он слишком Майкрософтовский sm.gif А нам надо такой язык, чтобы и под МК можно было нормально работать, и под ПК. Это С++, Rust и возможно Javascript
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 9 2016, 13:54
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 9 2016, 14:23
Сообщение #24


Ally
******

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



Цитата(zltigo @ Sep 9 2016, 16:54) *
Но охламонов до сих пор кропающих бухгалерские вещи на дельфях хватает sad.gif.


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

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

Летает как ракета. Включается без всякой инсталляции. Доступна отовсюду из интернета с любого планшета с виндой.
Подключается к любому оборудованию легко.
База данных на MS SQL. Ни разу не упала за пару лет.
Клиенту любые фичи гарантировались не глядя.
Компилилась мгновенно все равно что с Python-ом работал бы.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Sep 9 2016, 19:38
Сообщение #25


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



У многих из нас есть веселые воспоминания связанные с Delphi, но врятли стоит это кому-то рекомендовать.
Лично я очень много раз приходил к мысли, что лучше бы вместо паскаля сразу подсел на Си, а вместо Delphi юзал С++! Ооочень очень много раз приходил к такой мысли. Печальная мысль. Жаль потерянного времени crying.gif

Но всё-таки надо отдать должное, это лучше чем ничего ) Определенный опыт программирования я безусловно получил и это дало определенную пользу.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 9 2016, 22:48
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



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

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


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

Go to the top of the page
 
+Quote Post
brag
сообщение Sep 10 2016, 05:37
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

Да, это точно. И все это императив, что С, что паскаль, разницы на чем учиться императиву нет.
Да И плюсы до недавнего времени тоже были обычным ОО (тоже императив), разницы с делфями не было. Только недавно в плюсах появились зачатки функциональщины, вырисовывается кое-какой(хоть и не внятный) декларатив, так что теперь плюсы слегка круче sm.gif
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 10 2016, 07:00
Сообщение #28


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 10 2016, 08:37) *
Да, это точно. И все это императив, что С, что паскаль, разницы на чем учиться императиву нет.

Небольшое уточнение: разница на чем учиться все-таки есть - именно из-за лексики и вырабатывающейся привычке к ней.
Лучше сразу выбрать "правильную", чтобы не иметь "дурных" привычек.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 10 2016, 07:13
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 10 2016, 07:21
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

Лучше привычек не вырабатывать вовсе. И почему это C правильная, а Паскаль - нет, потому что все привыкли к С? Я не говорю конкретно о паскале, я говорю в общем.
Нужно уметь программировать, а на чем - это уже дело случая. Сегодня на одном, а завтра может быть понадобится на другом.
Я тоже привык к С(а со временем и к С++) и очень сейчас от этого страдаю, эта привычка мне мешает работать на более продвинутых языках, у которых синтаксис да и стиль в целом совсем другой.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 10 2016, 10:13
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 10 2016, 10:21) *
Лучше привычек не вырабатывать вовсе.

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

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

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

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

Одно и тоже, но один из них из-за привычки легче читается.
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 10 2016, 10:29
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

Зато можно этому препятствовать.
Тут конечно от желания зависит. Если у Вас стоит цель устроиться на работу и выполнять задачи одного скажем так класса, на одном конкретном языке, фреймворке, стиле итд, до конца своих дней - тогда привычки только в пользу.
А если хотите быть "универсальным" программистом, быстро адаптироваться под новомодные тренды, тогда привычки нужно давить на корню - писать на разных языках, в разном стиле, на разных инструментах, платформах итд. Тогда любой код будете одинаково нормально читать(и писать), без всяких студий, подсветок синтаксиса итд, в обычном консольном текстовом редакторе.
Go to the top of the page
 
+Quote Post
Den64
сообщение Sep 10 2016, 10:50
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(brag @ Sep 10 2016, 10:21) *
И почему это C правильная, а Паскаль - нет, потому что все привыкли к С? Я не говорю конкретно о паскале, я говорю в общем.

Программировал на разных языках. Си изучил одним из последних. Так вот считаю что си это лучшее, на много лучшее на чём мне приходилось программировать. До си я больше всего пользовался паскалём\делфи. Даже раньшн занимался репетиторством по паскалю. На паскале я больше программировать не хочу. Вспоминаю его с отвращением. На си код получается на много красивее и понятнее. Программировать на си на много быстрее. К тому же много языков подобны си.
Строгая типизация паскаля затрудняет решение многих алгоритмических задач. У си типизация мягкая. У си много преимуществ, а вот преимуществ паскаля я не знаю хоть и написал на нём строк кода даже наверно больше чем на си.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 10 2016, 11:11
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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 гаком все настраивается в тоже ОБЫЧНЫХ текстовых редакторах?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 10 2016, 11:19
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Так вот считаю что си это лучшее, на много лучшее на чём мне приходилось программировать.

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

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

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

Они не надуманные. Например, требования к форматированию в Python сделано ради приучения программистов определенного стиля форматирования кода, и это очень важно, когда все пишут в одном стиле - легче читать, особенно тем, у кого привычки sm.gif
Или const переменные по умолчанию в Rust, или невозможность просто так иметь одновременно 2 ссылки на один обьект в нем же - тоже очень важно. В С++ приходится самому следить за этим, вручную везде пихать консты, а в Rust за этим следит компилятор.
Rust был разработан для полной замены С++, и там очень строгие правила.
Каждый язык проектируется с определенной целью, а не для того, чтобы кто-то думал, что авторы языка больные на голову. Другое дело - legacy-зависимость
Go to the top of the page
 
+Quote Post
Den64
сообщение Sep 10 2016, 11:40
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(brag @ Sep 10 2016, 14:19) *
Есть гораздо более продвинутые и безопасные языки, чем С. Для нынешних задач С практически умер. Плюсы его заменяют полностью. Нужен он только для поддержки legacy кода и legacy-программистов sm.gif, новый код желательно писать на других языках, дающих гораздо больше возможностей.

Да но на си пишут и новые приложения. На си написаны win7,8, 10, android, ios, естественно все линуксы, самые популярные игры САПРы и прочее. Большинство новых приложений написаны на си, за исключением тех что пишут домохозяйки и менеджеры.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 10 2016, 12:06
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (brag @ Sep 10 2016, 14:19) *
Они не надуманные. Например, требования к форматированию в Python сделано ради приучения программистов определенного стиля форматирования кода...

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


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

Когда цель есть устроить концлагерь на ровном месте, дабы "неразумных" типа направить на путь истинный, то такие цели мне неприемлимы.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 10 2016, 12:13
Сообщение #38


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

Это все на плюсах или чем-то более высокоуровневом, а C там в качестве legacy-кода, не переписывать же терабайты кода на другой язык, приходиться поддерживать код на старом языке.
Новый софт пишеться на продвинутых языках - C++, JS, Go, Python и куче других. Какой смысл делать на С, если есть языки по-лучше?
Разве что, если тот кто делает или тот, кто будет поддерживать ничего кроме С не знает и учить не хочет sm.gif
Go to the top of the page
 
+Quote Post
Den64
сообщение Sep 10 2016, 12:25
Сообщение #39


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



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

Естественно С++. я его и имел ввиду, думал Вы поняли меня. Чисто сишный компилятор для современного компа уже и не найти наверно.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 10 2016, 12:52
Сообщение #40


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(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-кода на более современные языки у производителей авто- и прочего действительно нет, для них главное надежность.
И тут они действительно правы.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Sep 10 2016, 15:13
Сообщение #41


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



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


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 10 2016, 19:32
Сообщение #42


Ally
******

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



Цитата(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.
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Sep 10 2016, 19:54
Сообщение #43


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



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

Да щаззз прям! biggrin.gif
https://www.youtube.com/watch?v=XHosLhPEN3k


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 11 2016, 06:22
Сообщение #44


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(AlexandrY @ Sep 10 2016, 22:32) *
С Builder еще можно юзать пока вы делаете простенькие утилиты, а начав писать корпоративные приложения вам приходится перейти на Delphi.

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

Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 11 2016, 10:15
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Sep 11 2016, 13:27
Сообщение #46





Guests






"Перекличка куликов, часто с фальшивым голосом, из своего болота и ни о чем." (С)
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 11 2016, 22:02
Сообщение #47


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

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

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

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

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

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

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

Причины почему там С-файлы я уже назвал.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 12 2016, 01:17
Сообщение #48


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(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 байт выкидывать что-то на обслуживание этой роскоши, та еще по паре байт на указатель довольно неразумно.
И что остается от С++? - только привычка к С++-шной форме записи.
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 12 2016, 06:19
Сообщение #49


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

Это 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
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 12 2016, 06:36
Сообщение #50


Ally
******

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



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


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

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

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

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

И каким образом связана многоядерность и эта псевдо-асинхронность C++?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2016, 06:45
Сообщение #51


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (AlexandrY @ Sep 12 2016, 09:36) *
С-и - это встроенные малые системы.
С++ - это коллективная разработка.
Александр, прекращайте проповедовать свои заблуждения! Я не знаю вашего уровня владения C++, но подобные заявления заставляют думать, что уровень этот невысокий. Так зачем вы агитируете против того, в чем не разбираетесь?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 12 2016, 06:49
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

На плюсах спокойно программирует один человек и код получается проще, чем сишный. Но это если этот человек имеет хороший опыт c++.

Про асинхронность есть ветка про ССТ, там все показано на примерах, как работает асинхронный подход и какие его преимущества перед синхронным. Можете туда кидать и недостатки, очень желательно на реальных примерах кода, чтобы тема не превращалась в холивар.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 12 2016, 07:35
Сообщение #53


Ally
******

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



Цитата(Сергей Борщ @ Sep 12 2016, 09:45) *
Александр, прекращайте проповедовать свои заблуждения! Я не знаю вашего уровня владения C++, но подобные заявления заставляют думать, что уровень этот невысокий. Так зачем вы агитируете против того, в чем не разбираетесь?


Так попробуйте дискутировать.
Выложите на github свои проекты, покажите что разработали на C++ в одиночку.

Сразу давить на образования это не серьезно.
Я ж могу кучу коней в вакууме вывалить на C++ в доказательство своего уровня, как это делает наш уважаемый участник brag
Но для меня доказательство только реальные рабочие проекты и только открытые.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2016, 07:56
Сообщение #54


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (AlexandrY @ Sep 12 2016, 10:35) *
покажите что разработали на C++ в одиночку.
Все свои проекты уже лет десять делаю на С++ и все в одиночку. Почему я должен отказываться от классов, перегрузки операторов, шаблонов, более строгой проверки типов и переходить обратно к "голым" Сям вы объяснить не можете. Отсюда я делаю вывод, что этих возможностей C++ вы просто не знаете. Потому что если бы знали - вы бы понимали, что они не приносят никаких накладных расходов во время исполнения программы, но при этом сильно облегчают труд программиста - на сях вы делаете то же самое, но вручную, а это куча лишней писанины и потенциальная возможность ошибок, хорошо если ошибок времени компиляции.

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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 13 2016, 02:59
Сообщение #55


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 12 2016, 09:19) *
Это не ограничение, это мера ради безопасности, заставляющая программиста работать в определенном стиле.


Причем тут стиль? Это тот случай, когда программисту нельзя доверить второй указатель. Говорит о силе языка или программиста?.
Выросла производительность железа - появилась возможность организовывать системы выделения памяти со сборщиками мусора.
Все трудоемкую работу с указателями выполнил какой-нибудь сулейман ибн оглы с Индии или Пакистана.
Программистов становится все меньше - всех делают фокспрощниками.

Цитата(brag @ Sep 12 2016, 09:19) *
Многие считают лаямбды просто синтаксическим сахаром для функторов, но это нет так, они кардинально отличаются. Это все равно, что считать С синтаксическим сахаром для асма sm.gif (mov r0, r1 vs r0 = r1 )

Лямды имеют практический смысл для RT-компиляции: сгенерировали код, отработали его и потерли за ненадобностью, освободив память для другого.
В С++ разница лишь в одном: оформит компилятор в виде вызова отдельной функции или сгенерирует "inline"-код.


Цитата(brag @ Sep 12 2016, 09:19) *
То же и по С можно сказать - при программировании на стольк крохотных девайсах на С вместо АСМа от С остается только привычка к С-шной форме записи.

Ну так мы и вернулись к началу ветки. "С" лучше чем "Паскаль", потому что у "С" С-шная форма записи - но это сугубо личное мнение, основанное на привычке к этой форме записи. Для кого-то - наоборот, а кому-то вообще может быть по барабану.
Для новичка С предпочтительней Паскаля по крайне мере из-за тотального распространения С.

А противопоставление "С" и "С++" некорректно, потому что "С++" - это "С" (плюс еще что-то). Понятное дело, что это "еще что-то" за прошедших три десятка лет выливается в более удобную и быструю разработку.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Sep 13 2016, 05:29
Сообщение #56


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(aiwa @ Sep 13 2016, 05:59) *
"С++" - это "С" (плюс еще что-то).
Это разные языки. Валидный Си-код может быть невалидным Си++-кодом.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 13 2016, 05:43
Сообщение #57


Ally
******

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



Цитата(andrew_b @ Sep 13 2016, 08:29) *
Это разные языки. Валидный Си-код может быть невалидным Си++-кодом.


Это так, но на самом деле это мелочь.

Базовые различия не в синтаксисе, а в экосистеме.
Я заметил что у нас основные агитаторы за C++ это пишущие в категории совсем мелких микроконтроллеров: STM8, PIC, MSP и т.д.
Т.е. там где и писать то нечего. Отсюда и непонимание что на самом деле ускоряет разработку и что делает ее удобнее.

А экосистема это окружающие микроконтроллерную платформу фреймворки стороннего софта.
С++ для встраиваемых систем уровня Cortex-M по сути мертв.

Тоже я скажу про С-и и Pascal для PC. Там им тоже места практически нет.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Sep 13 2016, 07:20
Сообщение #58





Guests






Цитата(AlexandrY @ Sep 13 2016, 08:43) *
Тоже я скажу про С-и и Pascal для PC. Там им тоже места практически нет.

"Не судите по себе и не будете осудимы" (С)

C и Object Pascal востребованы на PC-Win. Есть немало известных как крупных, так и мелких проектов.
На моей практике вообще эта связка ( C - для математики и dll, а Delphi - как GUI + DB) - самое то.

За более чем 20 лет использования Delphi ( начиная с 1995 г. и Delphi 1) ни разу не пожалел об этой "экосистеме".
Для прикола у меня до сих пор стоит Delphi 2 и можно делать на ней почти все.
http://shot.qip.ru/00gZ9L-3OPovQGDZ/

На С и C++ тоже прошел длинный курс от С на CP/M 8р и далее до Watcom C, Intel C и пр.
Watcom до сих пор для меня идеал (для тех лет).
На Watcom много писал для Novell. Про Novell мало кто уже помнит, а ведь это была сетевая OS №1 ( Netware ).

Много лет назад ( 16..18 - точно не помню) даже сделал Интернет-проект по сравнению компиляторов/интерпретаторов разных версий от производителей (Borland, Intel, Watcom, Microsoft, FreePascal, TMT, LCC/GCC, Phyton, JS) - тесты на математику, динамические структуры, тексты и т.д.
Результаты были очень интересны для специалистов.
Скриншоты:
http://shot.qip.ru/00gZ9L-3OPovQGE1/
http://shot.qip.ru/00gZ9L-6OPovQGE2/

P.S. Недавно полюбопытствовал Rust - неоднозначное пока отношение, но интересно.
На мой взгляд, все же не соблюдено требование №1 о безопасности, поскольку опять есть небезопасные возможности и много отступлений от привычного синтаксиса уже существующих языков.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 08:59
Сообщение #59


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(aiwa @ Sep 13 2016, 05:59) *
Причем тут стиль? Это тот случай, когда программисту нельзя доверить второй указатель. Говорит о силе языка или программиста?.

Вы никогда не делали глупых ошибок с указателями? Модификатор const выброшен вами за ненадобностью? sm.gif
Вообще да, говорит. Эти ограничения - меседж от разработчиков языка и компилятора "подумай еще раз, с большой вероятностью ты готовишь выстрел в ногу".
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 13 2016, 09:18
Сообщение #60


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(andrew_b @ Sep 13 2016, 08:29) *
Это разные языки. Валидный Си-код может быть невалидным Си++-кодом.

Не придирайтесь. Писал по памяти, вот написал "что-то". проверил оказалось первоначально он назывался "С с классами".
Позже это коряво-нежизнеспособное название было заменено на "С++", что в переводе с авторского означает "усовершенствованный С".
Для того, чтобы понять, что старый "С" и новый "С++" разные языки, даже валидность кода не стоит сравнивать - об этом говорит сам факт
существования двух стандартов. Но в контексте данной ветки (Pascal или С++) это несущественно.

Само сравнение "С" и "усовершенствованного С" среди разработчиков - дело бесполезное.
Использование усовершенствованного всегда удобнее и приятнее.

Но у legacy-C есть все же неоспоримое преимущество перед С++: там уже все вылизано проверено и посыпано песком.


Цитата(Kabdim @ Sep 13 2016, 11:59) *
Вы никогда не делали глупых ошибок с указателями? Модификатор const выброшен вами за ненадобностью? sm.gif
Вообще да, говорит. Эти ограничения - меседж от разработчиков языка и компилятора "подумай еще раз, с большой вероятностью ты готовишь выстрел в ногу".

Естественно делал, тем более имея привычку новый код получать редактированием копипаста. Но получал аналогичный месседж от компилятора,
который все же не делает ограничений. Чаще при копипасте возникает ошибка сравнения в виде присваивания, либо наоборот.
Так и в этом случае компилятор выдает предупреждение.

Сообщение отредактировал aiwa - Sep 13 2016, 09:18
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 09:49
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kabdim @ Sep 13 2016, 11:59) *
Эти ограничения - меседж от разработчиков языка и компилятора "подумай еще раз, с большой вероятностью ты готовишь выстрел в ногу".

О чем простите думать, если Вы говорите об ОГРАНИЧЕНИИ, а не предупреждении? Ограничение означает, что не сможете этим, одним из миллионов вариантов, повредить себе ногу. Заодно не сможете вообще воспользоваться витовкой для любых других целей.
Какое относительно счастье. Спасибо разработчикам компиляторов за наше счастливое детство.
Есть и целые толпы борцов с ветряными мельницами и в Си, например, благодеятели от MISRA, но это все же НЕ ОГРАНИЧЕНИЯ, а "предупреждения".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 10:06
Сообщение #62


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Причем тут стиль? Это тот случай, когда программисту нельзя доверить второй указатель. Говорит о силе языка или программиста?.
Выросла производительность железа - появилась возможность организовывать системы выделения памяти со сборщиками мусора.

Есть класс задач, где сборщик мусора не уместен, но они чем раз тем сложнее, и тут на помощь приходят всяки плюсы и расты, которые уменьшают человеческий фактор и делают разработку более быстрой и комфортной. Но изучать новый стиль придеться, легкого пути нет.

Цитата
Это так, но на самом деле это мелочь.

Это мелочь для крохотных проектов, а если там хотя бы 200к строк кода, тогда портировать такой код на плюсы будет не просто.

Цитата
Вы никогда не делали глупых ошибок с указателями? Модификатор const выброшен вами за ненадобностью? sm.gif

Глупые ошибки это одно, а когда проект очень сложный - ошибку допустить будет очень легко, а найти и тем более исправить - очень сложно, возможно для этого придется переписать тонну кода. Вот тут и помогает компилятор(то есть язык с его правиалми), который заставляет писать "нормальный" код сразу.

Цитата
Но получал аналогичный месседж от компилятора, который все же не делает ограничений

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

Все, кто гонит на С++ и другие высокоуровневые языки или на какой-то непривычный для них стиль(тот же асинхронный) - просто не умеют на них программировать, просто не имеют достаточных современных знаний и опыта, и предпочитают все делать по старинке привычным для них способом sm.gif
Это все равно что сравнивать стамеску, молоток и топор с много-осевым ЧПУ станком sm.gif
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Sep 13 2016, 10:45
Сообщение #63





Guests






Видал я эти "многоосевые", после которых рыдать хочется.
В итоге берешь молоток и зубило, идешь эффективным путем и получаешь годами работающее изделие без обслуживания.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 13 2016, 10:52
Сообщение #64


Ally
******

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



Цитата(brag @ Sep 13 2016, 13:06) *
Это все равно что сравнивать стамеску, молоток и топор с много-осевым ЧПУ станком sm.gif


Ага и вытачивать на своем много осевом винты и гайки, которые нормальный конструктор берет из кассетницы.

Убого выглядят потуги хоть как-то продвинуть C++ без опыта реальных проектов.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 13 2016, 10:59
Сообщение #65


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (AlexandrY @ Sep 13 2016, 13:52) *
Убого выглядят потуги хоть как-то продвинуть C++
Еще более убого выглядят попытки его задвинуть.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 11:22
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (AlexandrY @ Sep 13 2016, 13:52) *
Ага и вытачивать на своем много осевом винты и гайки, которые нормальный конструктор берет из кассетницы.

Из "кассетницы берет" не конструктор, а слесарь. Вот такая принциальная разница между программированием и "програмированием". В массовом сознании еще не укрепились различия между "программистами" и "слесарями-интеллигентами"© Ильф и Петров.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 12:19
Сообщение #67


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(zltigo @ Sep 13 2016, 12:49) *
О чем простите думать, если Вы говорите об ОГРАНИЧЕНИИ, а не предупреждении? Ограничение означает, что не сможете этим, одним из миллионов вариантов, повредить себе ногу. Заодно не сможете вообще воспользоваться витовкой для любых других целей.
Какое относительно счастье. Спасибо разработчикам компиляторов за наше счастливое детство.
Есть и целые толпы борцов с ветряными мельницами и в Си, например, благодеятели от MISRA, но это все же НЕ ОГРАНИЧЕНИЯ, а "предупреждения".

Можно поинтересоваться с каким настройками предупреждений вы компилируете и исправляете ли все предупреждения?

В расте декларируется простая вещь - гарантированная безопасность данных, пока вы в рамках наложенных ограничений. Если вам не нравится ограничения, то можно пользоваться "unsafe {...}" и не получать этих гарантий. Мне наоборот нравится идея что пока я в рамках правил язык даёт мне такие гарантии, в отличии от нашего любимого C в котором неосторжная опечатка может привести к трудно отлавливаемой катастрофе. Насчёт ограниченности инструмента вы неаргументированно утверждаете что что-то сделать невозможно. Разумеется там где нужно используется"unsafe {...}" с ручной верификацией, в библиотеке самого раста немало примеров. Но для большинства применений отступать от этих правил не требуется, а профит от гарантий встроенных в язык остается. Я бы предпочел поспорить аргументированно, но т.к. у меня (и скорее всего у вас) нет опыта использования раста, то спор выйдет ущербный.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 12:45
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kabdim @ Sep 13 2016, 15:19) *
Можно поинтересоваться с каким настройками предупреждений вы компилируете и исправляете ли все предупреждения?

С максимумом абсолютно возможных. Исправляю все. Это относится к сообщениям компилятора, а не приблуд типа MISRA, поскольку меня волнуют все места возможного непонимания меня конкретным компилятором. А фантазии на тему разных дядей на тему где я могу ошибиться и где может не понять некий абстракный компилятор, напротив, совершенно не волнуют.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 12:46
Сообщение #69


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



От спора по расту я бы тоже воздержался, очень новый язык и функционал его очень богат(в том числе и шаблоны, перегрузки ипт. там тоже есть), но мы все пока что не умеем им пользоваться. Сначала научимся, сделаем хотя бы парочку серьезных проектов, потом можно и спорить.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 12:51
Сообщение #70


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(zltigo @ Sep 13 2016, 15:45) *
С максимумом абсолютно возможных. Исправляю все. Это относится к сообщениям компилятора, а не приблуд типа MISRA, поскольку меня волнуют все места возможного непонимания меня конкретным компилятором. А фантазии на тему разных дядей на тему где я могу ошибиться и где может не понять некий абстракный компилятор, напротив, совершенно не волнуют.

Т.е. если прямо сейчас включить опцию treat warning as error - то ничего не поменяется? Ну вот раст это постоянно включенная опция.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 12:58
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kabdim @ Sep 13 2016, 15:51) *
Т.е. если прямо сейчас включить опцию treat warning as error - то ничего не поменяется?

Ничего.
QUOTE
Ну вот раст это постоянно включенная опция.

Вопрос в том, что относится к наказуемым предупреждениями вещам. В случае текущих сишных компилятров все уже достаточно сбалансировано, хотя, например, у того-же массовейшего GCC, пожалуй набор предупреждений относительно мал. Расширять-же количество warnings уже представляется достаточно бессмысленным. Но если хотите, то так-же MISRA Вам с радостью их накидает, как с бодуна sad.gif и мало не покажется.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 13 2016, 14:02
Сообщение #72


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 13 2016, 13:06) *
Все, кто гонит на С++ и другие высокоуровневые языки ....

Так Вы же первый и "гнали" на С++, рекламируя Rust ему на замену. Поначалу я усомнился в его способности заменить С++, исходя из
Вашего описания ограничения на свободу с указателями. Ради интереса заглянул к ним на страничку, ну разбавили они взятый за основу С-шный синтаксис
паскалеобразностью, да еще приплели в него восторженности. Не прельщает, шарп или ява и то приятней.
Go to the top of the page
 
+Quote Post
Den64
сообщение Sep 13 2016, 14:50
Сообщение #73


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(andrew_b @ Sep 13 2016, 08:29) *
Это разные языки. Валидный Си-код может быть невалидным Си++-кодом.

Какие конструкции или ключевые слова из языка С компилятор С++ не поймёт?
Кто нибудь знает хоть один чисто си современный компилятор?
Например я С++ называю просто си, без всяких ++. Все знакомые кто в теме тоже говорят просто "сишка" или "писал на сях" и все имеют ввиду С++.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 15:19
Сообщение #74


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(aiwa @ Sep 13 2016, 17:02) *
Так Вы же первый и "гнали" на С++, рекламируя Rust ему на замену. Поначалу я усомнился в его способности заменить С++, исходя из
Вашего описания ограничения на свободу с указателями. Ради интереса заглянул к ним на страничку, ну разбавили они взятый за основу С-шный синтаксис
паскалеобразностью, да еще приплели в него восторженности. Не прельщает, шарп или ява и то приятней.

Дык, последние по такой логике - тот же самый си, только чего-то там добавили, приплели, восторженность всякая и т.д. biggrin.gif
Синтаксис не главная часть языка... даже близко.
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 15:21
Сообщение #75


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Так Вы же первый и "гнали" на С++, рекламируя Rust ему на замену. Поначалу я усомнился в его способности заменить С++, исходя из
Вашего описания ограничения на свободу с указателями. Ради интереса заглянул к ним на страничку, ну разбавили они взятый за основу С-шный синтаксис
паскалеобразностью, да еще приплели в него восторженности. Не прельщает, шарп или ява и то приятней.

Имелось в виду гонят на более высокоуровневые(такие как плюсы, или еще более высокоуровневый раст, или JS) в пользу более низко-уровневых типа С или паскаля.
У раста такой синтаксис не случайно возник, а из за того, чтобы он был растом, чтобы программист привыкал к определенному стилю и технике. И ява или шарп ему не конуренты, у них своя ниша, у раста своя. Например на яве Вы не сможере писать под Atmega8, а на расте - запросто.

Любое высокоуровневое программирование - это набор определенных ограничений и правил. И чем выше уровень, тем их больше. Даже в ассемблера есть правила, тк он более высокоуровневый, чем машинный код. В машинном коде ограничений нет - пиши что хочешь и никакой компилятор тебе ничего не запретит, тк компилятора нет sm.gif

Цитата
Какие конструкции или ключевые слова из языка С компилятор С++ не поймёт?

Да запросто, вот выдрал из реального коммерческого проекта. Попробуйте скомпилируйте этот код стандартным плюсовым компилятором. Стандарт С++(даже 17й) этого не поддерживает, поэтому приходится делать на С.
Код
typedef void (*t_ISR)(void);

typedef const struct{
//...
    t_ISR tim6;        // 54 0x00000118  TIM6 global interrupt
//...
} t_Ivectors;

//....
void iTim6(void);
//.....
__section(".ivectors") t_Ivectors iVectors={
    .tim6=iTim6
//....
};
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 13 2016, 16:51
Сообщение #76


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Den64 @ Sep 13 2016, 17:50) *
Какие конструкции или ключевые слова из языка С компилятор С++ не поймёт?
Ну, например const у глобальных переменных, глобальные переменные с одинаковыми именами без extern в разных единицах трансляции. Оно откомпилируется, но не слинкуется.
QUOTE (Den64 @ Sep 13 2016, 17:50) *
Кто нибудь знает хоть один чисто си современный компилятор?
SDCC.

QUOTE (Den64 @ Sep 13 2016, 17:50) *
Например я С++ называю просто си, без всяких ++. Все знакомые кто в теме тоже говорят просто "сишка" или "писал на сях" и все имеют ввиду С++.
Угу:
QUOTE
-Могу ли я называть себя линуксоидом, если у меня на телефоне установлен Линукс?
-Ты себя еще связистом назови - у тебя же телефон!

(сперто откуда-то)


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Sep 13 2016, 17:27
Сообщение #77





Guests






В Rust вообще есть очень "приятная" штука, причем вне блока unsafe - "затенение" переменной.
После такого так и хочется вспомнить какой-либо бейсик..
Я даже представить не могу, чтобы где-то в программе мне захотелось переменную в пределах видимости переделать в переменную другого типа.
Да и вообще, в части терминологии, в Расте столько занятного, что слова порой заканчиваются.

fn main() {
println!("Shadowing!");

let mut x: i32 = 5; // это изменяемая переменная. Если Вы не знали, что переменные могут быт неизменяемыми - Вы Раст не видели.
println!("x = {}", x);

x = 7; // допустимо присвоение значения
println!("x = {}", x);

let x: i32 = 8; // тут мы говорим, что x уже неизменяемая переменная - нормально, да?
println!("x = {}", x);

x = 9; // увы - низя присвоить
println!("x = {}", x);

let x = "Затенение"; // ха-ха - "затеняем" i32 в String
println!("x = {}", x);


} // main
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Sep 13 2016, 18:08
Сообщение #78


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Цитата(TSerg @ Sep 13 2016, 10:45) *
Видал я эти "многоосевые", после которых рыдать хочется.

Бывает, но не все же так ужасно biggrin.gif
- Не понимаю чего так все все восхищаются Карузо. Слуха у него нет, голоса нет, картавит, шепелявит, фальшивит...
- А где ты его слышал?
- Да Рабинович вчера напел.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 19:00
Сообщение #79


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
В Rust вообще есть очень "приятная" штука, причем вне блока unsafe - "затенение" переменной.
После такого так и хочется вспомнить какой-либо бейсик..
Я даже представить не могу, чтобы где-то в программе мне захотелось переменную в пределах видимости переделать в переменную другого типа.

Это классная фишка(это такой вид полиморфизма), мне ее не хватает в плюсах, тулить вложенные блоки - это костыли да и поведение совсем не такое.
Когда-то(а многие и до сих пор) сишники не понимали зачем переменные обьявлять посреди функции а, не в начале. Хотя в плюсах без этого просто невозможно программировать. Это я к тому, что язык тут другой и привычный сишный или даже плюсовый стиль здесь, мягко говоря, не катит.

Цитата
Да и вообще, в части терминологии, в Расте столько занятного, что слова порой заканчиваются.

Да, очень мощный и сложный язык. От людей, которые имеют хороший опыт программирования на нем и плюсах слышал только положительные отзывы(в том числе в сравнении с плюсами), сам пока оценку дать не готов, дам через пол года, как напрактикуюсь немного.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 14 2016, 00:39
Сообщение #80


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(Kabdim @ Sep 13 2016, 18:19) *
Дык, последние по такой логике - тот же самый си, только чего-то там добавили, приплели, восторженность всякая и т.д. biggrin.gif
Синтаксис не главная часть языка... даже близко.

Так не с бухты-барахты написал, а посмотрел на примеры программ. Первое, что бросилось в глаза - изобилие восклицательных знаков,
прям не программа. а обращение ЦК КПСС к народу по случаю очередной годовщины. Но после общепризнанного ошибочного включения 'println'
в Паскаль, writeln намекает, что разработчикам в детстве сильно нравился Васик. Синткасис в соновном сишный, слегка разбавленный
паскалеобразными объявлениями типов. Пробежался наискось по оглавлению документации - что-то напоминает очередной язык, который позиционируется как самый быстрый системный язык, который по сложившейся традиции тащит всякий непотреб в виде динамического типов или встроенной потокобезопасности.

По сути язык программирования, можно сравнить с конструктором лего, где его элементы соответсвуют одной или нескольким машинным командам, либо сравнительно небольшому набору (пролог, эпилог функций, фрейм стека для доступа к локальным переменным и прочее). И чем полнее коллекция таких элементов тем богаче язык. Это такие языки как к примеру тот же С/С++ или Объект-Паскаль.
"Богатые возможности" языков в виде "управляемой памяти" или "динамических типов", это уже увесистые кирпичи в таком конструкторе.
Причем ирония состоит в том, что апологеты таких языков еще утверждают что частое использование reinterpret_cast - плохой стиль программирования,
хотя сами употребляют его перманентно по умолчанию, скрыв от программиста.
Поэтому утверждения о силе и мощи этих языков все же спорны. Как по мне, язык без кирпичей и гибче и богаче, и отличаются такие языки лишь синтаксисом.



Go to the top of the page
 
+Quote Post
brag
сообщение Sep 14 2016, 01:51
Сообщение #81


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



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

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

Плохой стиль программирования - это ручное приведение типов, но никак не автоматическая типизация. В ручном приведении, особенно таком, как reinterpret_cast, а хуже того - C-cast ни компилятор, ни рантайм не знают что там к чему приводится и как, вся ответственность лежит на программисте.
А в автоматическом преобразовании типов всем рулит автомат(а не человек), который и отвечает за корректность работы этого механизма. Динамическая типизация - это динамический полиморфизм - очень мощная техника на нынешнее время, без нее сейчас никак.

Цитата
Как по мне, язык без кирпичей и гибче и богаче, и отличаются такие языки лишь синтаксисом.

Самый богатый язык и без кирпичей вообще - это машинный код. Без запретов, без ограничений, без правил.
Go to the top of the page
 
+Quote Post
Den64
сообщение Sep 14 2016, 02:18
Сообщение #82


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(brag @ Sep 14 2016, 04:51) *
Самый богатый язык и без кирпичей вообще - это машинный код. Без запретов, без ограничений, без правил.

Нужна золотая середина. И для каждого видимо она своя. И ещё для разных задач "лучше" могут быть разные языки(сам не понял, что написал. Но смысл думаю понятен)
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 14 2016, 03:06
Сообщение #83


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Золотая середина это такая, где программист и процессор делают минимум работы, а компилятор - максимум.
Но и тут приходится искать середину, отдавая доп. работу либо процессору, либо компилятору, либо программисту, иначе программы либо очень тормозят, либо очень долго пишутся и долго ищутся и правятся баги, либо очень долго компилируются.
Задача современных языков - как раз таки найти эту середину и каждый язык решает ее по своему, и не каждое такое решение подходит под конкретную задачу или конкретному программисту. Многие настолько зависимы от С, что даже плюсы им не под силу, не говоря уже про другие языки со слегка другим синтаксисом, он им гораздо важнее других вещей. Я их понимаю, сам такой, но все равно пытаюсь осваивать.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 14 2016, 07:28
Сообщение #84


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 14 2016, 04:51) *
Глупо давать оценку столь сложному языку, просто пробежавшись по оглавлению, не написав на нем ни одной более-менее серьезной программы.

Та я не языку даю оценку, а мне непонятна Ваша подача материала: почему у Вас С++ и Rust парой ходят. Они же принципиально совершенно разные.
Пожалуй даже диаметрально противоположные.

Цитата(brag @ Sep 14 2016, 04:51) *
Динамическая типизация - это динамический полиморфизм - очень мощная техника на нынешнее время, без нее сейчас никак.

Опять рекламный слоган.
Давайте уж своими словами: динамическая типизация - это прежде всего накладные расходы из-за оформления базовых типов в виде классов
из-за неизбежной необходимости табличной обработки операций с ними. Это далеко не ново, и вообще не прогрессивно.
"Безоасный код" или "чистый код" - это не улучшение языка, это удешевление последующей разработки программ.

Цитата(brag @ Sep 14 2016, 04:51) *
Самый богатый язык и без кирпичей вообще - это машинный код. Без запретов, без ограничений, без правил.

Машинный код, то бишь ассемблер, - это не богатый и не бедный язык, он - единственный для выбранного процессора.
И все остальные языки неизбежно к нему приходят, только некоторые, особо пекущиеся о здоровье программиста, слишком окольными путями.

Это еще одно замечательное свойство С/С++: за ним всегда приблизительно видны те ассемблерные квантики, которые он будет генерировать.

Go to the top of the page
 
+Quote Post
brag
сообщение Sep 14 2016, 08:08
Сообщение #85


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Та я не языку даю оценку, а мне непонятна Ваша подача материала: почему у Вас С++ и Rust парой ходят. Они же принципиально совершенно разные.
Пожалуй даже диаметрально противоположные.

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

Цитата
Давайте уж своими словами: динамическая типизация - это прежде всего накладные расходы из-за оформления базовых типов в виде классов

Точно такие же расходы(или больше) будут, если эту динамику сделать вручную на С или на асме. А там, где рантайм-поддержка на нужна - компилятор все сделает сам и дотошно проверит программиста, чтобы последний не тупанул, или уменьшит вероятность тупняка.

Цитата
Машинный код, то бишь ассемблер, - это не богатый и не бедный язык, он - единственный для выбранного процессора.

Машинный код богаче ассемблера, он позволяет сделать то, что не позволяет ассемблер (например выполнить недокументированную инструкцию процессора). А ассемблер богаче С, потому что на нем можно сделать то, что нельзя на С - вызывать строго определенные инструкции(документированные) проца в строго определенном порядке.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 14 2016, 08:47
Сообщение #86


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 14 2016, 11:08) *
Потому что это пока единственные обьектные языки, позволяющие программировать на голом железе.
Чем больше я изучаю раст, тем больше мне он кажется лучше плюсов.

Согласитесь, что про программирование меги на расте Вы слегка погорячились.

Цитата(brag @ Sep 14 2016, 11:08) *
Точно такие же расходы(или больше) будут, если эту динамику сделать вручную на С или на асме.

Вы опять уводите в сторону: на С/С++ эту динамику не нужно делать, потому что он не поддерживает динамическую типизацию принципиально.
Динамическая типизация позволяет сделать короче исходный текст программы за счет увеличения рабочего кода и скорости выполнения.
Сомнительное удовольствие. Я уж лучше напишу имя второй переменной.

Цитата(brag @ Sep 14 2016, 11:08) *
Машинный код богаче ассемблера, он позволяет сделать то, что не позволяет ассемблер (например выполнить недокументированную инструкцию процессора). А ассемблер богаче С, потому что на нем можно сделать то, что нельзя на С - вызывать строго определенные инструкции(документированные) проца в строго определенном порядке.

У ассемблера предусмотрена возможность непосредственной вставки (DB, DW) не только недокументированной инструкции,
но и даже отсутствующей в машинном коде инструкции, если вдруг такая бы появилась. Не проще ли считать ассемблер просто машинным кодом та и все.

Сообщение отредактировал aiwa - Sep 14 2016, 08:47
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 14 2016, 09:08
Сообщение #87


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Согласитесь, что про программирование меги на расте Вы слегка погорячились.

https://github.com/avr-rust/rust https://github.com/avr-llvm/llvm пока что криво и с напильником, но работает. Москва тоже не сразу строилась

Цитата
Вы опять уводите в сторону: на С/С++ эту динамику не нужно делать, потому что он не поддерживает динамическую типизацию принципиально.
Динамическая типизация позволяет сделать короче исходный текст программы за счет увеличения рабочего кода и скорости выполнения.
Сомнительное удовольствие. Я уж лучше напишу имя второй переменной.

Можно пример кода? а то я на пальцах плохо понимаю.

Цитата
У ассемблера предусмотрена возможность непосредственной вставки (DB, DW) не только недокументированной инструкции,
но и даже отсутствующей в машинном коде инструкции, если вдруг такая бы появилась. Не проще ли считать ассемблер просто машинным кодом та и все.

В С++ тоже можно делать вставки ассемблерного и машинного кода, но С++ нельзя назвать ни ассемблером, ни машинным кодом sm.gif Делая такую вставку Вы уже пишете не на С++, а на ассемблере или на машинном коде wink.gif Я такие вставки и сам иногда делаю, но по возможности стараюсь избегать.
У ассемблера есть компилятор, который программиста уже проверяет, а у машинного кода и этого нет.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Sep 14 2016, 09:15
Сообщение #88


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ох как резко то всё в холливар скатывается, когда brag начинает рассказывать о новых модных языках и лямбдах в С++ )))))))))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 14 2016, 09:24
Сообщение #89


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



aiwa, ну вы всё таки рубите с плеча, не разобравшись. Нельзя так, если конечная цель что-то отличное от флейма.
Восклицательные знаки - обязательная пометка макроса, что бы нельзя было как в си устроить спагети из не очевидных макросов. Зачем они нужны - если бы вы разобрались, выяснилось бы что они скрывают базовый стиль обработки ошибок что бы не заставлять писать лишнее в примерах и там где это не нужно.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 14 2016, 14:01
Сообщение #90


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 14 2016, 12:08) *
пока что криво и с напильником, но работает. Москва тоже не сразу строилась.

Судя по конфигурационному файлу пока еще не криво: бэкенд-компилятор стандартный LLVM, а фронт-енд компилятор - СLang или GCC.
Таким макаром можно писать для AVR хоть на турецком. Посмотрим, когда построится Москва, сколько прогрессивного будет зарублено
и насколько он будет отличаться от собратьев.

Цитата(brag @ Sep 14 2016, 12:08) *
Можно пример кода? а то я на пальцах плохо понимаю.


Берем пример из раста подаваемый динамическое типизирование как прогрессивное преимущество:
{
а = 5; // это тип u32

a = "abcd"; // а это та же переменная, но имеющая совершенно другой тип.
}

с С++ уже надо вводить другую переменную:
{
u32 а = 5; // это тип u32

char b[] = "abcd"; //
}

C++ выделяет в фрейме стека 4 байта для переменной а и на этом накладные расходы заканчиваются. Информацию об "а" он хранит во время компиляции
и просто генерирует команды 32-битной обработки. Раст же поместит в 4-байта в стеке указатель на участок памяти, который содержит непосредственно саму
переменную "а", и информацию о ее типе, скорее всего в виде таблицы вызовов кода команд 32-ти битной обработки. Грубо говоря оформление типа u32
в виде класса с виртуальными функциями базовых операций 32-х разрядной арифметики.
Поэтому вместо одной ассемблерной команды для a+=5 в случае статического типизирования, раст вынужден будет выполнять call или jump на эту функцию сложения u32-типа.
Могу ошибаться, но мелкософтные делфи, которые обозвали шарпом делают именно так: Все типы происходят от одного предка. Оставленные для совместимости "int" да "char" соответствуют классам TInt и TChar.
И запись "int a = 5" означает "создать в управляемой куче объект класса Tint и инициализировать его 5." Названия, естественно, условны - передана лишь суть.

Цитата(Kabdim @ Sep 14 2016, 12:24) *
aiwa, ну вы всё таки рубите с плеча, не разобравшись. Нельзя так, если конечная цель что-то отличное от флейма.

Так вроде бы и не сплеча: предварил, что языка не знаю и оцениваю только синтаксис. Причем такая оценка априори субъективна.

Выделение макроса все-таки, наверное, преимущество. Но вот выбор восклицательного знака мне кажется неудачным.
Все-таки стоит учитывать человеческий фактор.


Сообщение отредактировал aiwa - Sep 14 2016, 13:48
Go to the top of the page
 
+Quote Post

6 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.02991 секунд с 7
ELECTRONIX ©2004-2016