Re[2]: И снова про ц++
От: okman Беларусь https://searchinform.ru/
Дата: 03.02.12 07:59
Оценка: 7 (3) -2 :))) :))) :)))
Здравствуйте, x-code, Вы писали:

XC>Ужасная система #include и препоцессора, отсутствие нормальной модульной системы


А яблоня лучше электрического фонаря, потому что дает яблоки.

XC>Отсутствие вложенных блочных комментариев


Яблоня растет сама, а фонарь нужно сделать, вкопать, подвести провода и электрический ток.

XC>Имя массива является адресом первого элемента массива (нелогично! со структурами же не так)


Яблоня не ломается.

XC>Отсутствие низкоуровневых возможностей: sizeof( ) от функции и блока кода, goto на переменные метки (в gcc есть, но это нестандартно)


Яблоня каждую осень сбрасывает листья, а весной цветет. Красиво !

XC>Невозможность передачи массивов в фигурных скобках "как есть" в функции Foo({1,2,3});


На фонарь нельзя залезть — нет веток и может убить током.

XC>Отсутствие именованных блоков кода, соответственно невозможность сделать break и continue на именованный блок/из блока


Фонарь не укроет в дождливый день...

XC>Отсутствие методов-расширений, отсутствие возможности обращаться к методу класса как к статическому с явной (ручной) передачей this


...и не защитит от солнца.

XC>Отсутствие системы сообщений как в ObjectiveC, встроенной системы сигналов и слотов как в QT


Никто не лазает в чужой огород тырить яблоки с фонарей. А с яблонь — да.

XC>Невозможность создания namespace внутри класса (вспомните хотя-бы "главные оконные классы" разных библиотек — CWnd, QWidget... сотни методов, там разделение не помешало бы)


Яблони бывают разных видов — антоновка, например. А фонари почти везде одинаковые.

XC>Отсутсвие вложенных функций (даже в турбо паскале вроде были), а лямбды в C++11 на редкость кривые


У яблонь не перегорает и не разбивается лампочка.

XC>Отсутствие замыканий, простого объявления функциональных типов (int=>int)


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

XC>Отсутствие кортежей, групповых операций над кортежами, невозможность вернуть из функции несколько значений напрямую


В темное время суток под яблоней можно справить нужду, а под фонарем — нет, потому что заметно.

XC>Отсутствие опциональной возможности структуной типизации


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

XC>Оператор :: вместо точки (некрасиво)


Яблоня более красива, чем фонарь.

XC>Ужасно громоздкая система шаблонов (каждый раз писать template), и тенденция использования шаблонов не по назеначению (метапрограммирование на них)


Когда нечем топить печь, яблоню можно спилить и нарубить дров.
У фонаря такой фичи нет.

XC>При этом отсутсивие полноценной системы метапрограммирования (типа как в Nemerle, хотя я бы сделал еще лучше)


Многие фонари светят почему-то не белым, а каким-то желтым или фиолетовым светом. Я бы сделал лучше.

XC>Отсутствие полноценной рефлексии и атрибутов (как в C#)


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

XC>Отсутствие встроенной параллельности и каналов (как в Go)


Если поставить рядом две яблони, яблок будет больше.
А если два фонаря — света останется столько же.

XC>Отсутствие свойств (properties) как в C# (хотя и в C# можно еще кое-что улучшить)


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

XC>Да еще много чего, сразу все и не вспомнить...


У фонаря еще много-много недостатков, на самом-то деле...
Re[4]: И снова про ц++
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.02.12 07:59
Оценка: 1 (1) +1
Здравствуйте, Философ, Вы писали:

XC>>>Имя массива является адресом первого элемента массива (нелогично! со структурами же не так)

LVV>>ИМХО для С это было самое то! Но для С++, который позиционируется как язык более высокого уровня, — это анахронизм.
Ф>Это хорошая демонстрация корявости синтаксиса.
Ф>Если ЦПП позиционируется как язык более высокого уровня, то в нём вообще не должно быть даже намёка на strlen/strcpy (а так же calloc/malloc/memcpy).

C++ позиционируется — в нормальном варианте — не как язык высокого уровня, а как многоуровневый язык. А что такое Ваше "язык более высокого уровня", известно только Вам. Насколько более высокого? На миллиметр, километр, 3 слоя или ровно на одну морковку?

Ф>По какой-то странной причине от специалиста по C не требуют знаний асма, а вот с ЦПП — наоборот.


Это где такие странные требователи? Сколько я видел, требовался или одинаковый уровень знаний "асма" от специалистов по C и C++, или для C требовался более высокий уровень (а в C++ выносились уже более высокоуровневые аспекты реализации).

Ф>Солидная часть вопросов на собеседованиях по ЦПП по сути являются вопросами по C, о чем это говорит?


О многоуровневости C++. Ваш К.О.

Ф>ЗЫ: ЦПП — мутант переходного периода.


Вполне возможно. Но я пока что вижу несколько обратную тенденцию: проекты, которые требуют низкоуровневость в отдельных деталях реализации, но высокоуровневость в концепциях, всё больше пишутся на C++, хотя раньше их насильно загоняли в рамки C. Текущий процесс (последние лет 10) можно охарактеризовать тем, что чисто прикладной софт мигрирует с C++ на языки управляемых сред (Java, C#, Python, ещё пару десятков кандидатов), а системный заметно расширяется в сторону C++.
Те же атомарные операции в C++ — хороший пример такого расползания C++ "вниз".
The God is real, unless declared integer.
Re: И снова про ц++
От: Mamut Швеция http://dmitriid.com
Дата: 03.02.12 08:15
Оценка:
S>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++? Указатели? Да фигня это, на пару граблей наступить и рефлекс появится. Зато более шустрый софт получается.

И при этом ты поносишь браузеры и IDE, которые на этом самом С++ написаны. Нуну.

*Ушел за колой и попкорном в ожидании ответа хотя бы на это
Автор: gandjustas
Дата: 03.02.12
*

А так: C++ можно не любить хотя бы за отсутсвие вменяемых строк. Хотя твой мозг отказывается понимать, что строки — это не последовательность char'ов, это так.


dmitriid.comGitHubLinkedIn
Re: однако Sheridan - троль 80 уровня :) (-)
От: Философ Ад http://vk.com/id10256428
Дата: 03.02.12 08:19
Оценка: +2 -1
Всё сказанное выше — личное мнение, если не указано обратное.
Re[5]: И снова про ц++
От: Философ Ад http://vk.com/id10256428
Дата: 03.02.12 08:21
Оценка:
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Философ, Вы писали:
Ф>Здравствуйте, LaptevVV, Вы писали:

LVV>>>ИМХО для С это было самое то! Но для С++, который позиционируется как язык более высокого уровня


N>А что такое Ваше "язык более высокого уровня", известно только Вам. Насколько более высокого? На миллиметр, километр, 3 слоя или ровно на одну морковку?


адресатом ошибся
Всё сказанное выше — личное мнение, если не указано обратное.
Re[6]: И снова про ц++
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.02.12 08:23
Оценка:
Здравствуйте, jazzer, Вы писали:

N>>>>В принципе согласен. Более того, система namespace неудобна.

N>>>>Постоянно хочется решений в стиле питоновского import X.Y.Z as W.
J>>>чем не устраивает
J>>>
J>>>namespace W = X::Y::Z;
J>>>

J>>>
N>>Это давно появилось? Я такого ещё не видел.
J>Всегда было, см. 7.3.2 [namespace.alias] в С++98.

Что "всегда", не согласен, в первых версиях не было, а потом я с C++ настолько плотно не общался. Но идея ясна. И это не совсем то, что надо, хотя тоже помогает.

N>>Оно действует на полные символы или только на пространства?

J>Я не очень понял, в чем вопрос.

Это алиасы только для пространств. А я хотел для одного имени.
Чтобы, например, я мог функцию X::Y::Z::W назвать как ZW и вызывать её по этому имени.
Это крайне полезно для ситуаций, когда удобно принять 2 разных пространства имён в основне пространство, чтобы не требовалось их уточнять на каждом шагу, но при этом одно из имён там конфликтует (есть в обоих). Тогда только оно алиасится, а остальные применяются напрямую.
Через алиас для пространства это немного удобнее, но не до конца.
Или есть случаи, когда имя в пространстве само по себе безумно длинное, а удобно назвать его короче, или просто переименовать в пределах данного модуля в соответствии с более подходящим смыслом. Такое данным методом вообще не решается.
The God is real, unless declared integer.
Re[6]: И снова про ц++
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.02.12 08:26
Оценка: -1
Здравствуйте, Философ, Вы писали:

Ф>Здравствуйте, netch80, Вы писали:

N>>Здравствуйте, Философ, Вы писали:
Ф>>Здравствуйте, LaptevVV, Вы писали:

LVV>>>>ИМХО для С это было самое то! Но для С++, который позиционируется как язык более высокого уровня


N>>А что такое Ваше "язык более высокого уровня", известно только Вам. Насколько более высокого? На миллиметр, километр, 3 слоя или ровно на одну морковку?


Ф>адресатом ошибся


Нет, не ошибся. Фраза "Если ЦПП позиционируется как язык более высокого уровня, то в нём вообще не должно быть даже намёка на strlen/strcpy (а так же calloc/malloc/memcpy)." — Ваша, а не Лаптева.
Лаптева я спрошу отдельно.
The God is real, unless declared integer.
Re[3]: И снова про ц++
От: x-code  
Дата: 03.02.12 08:36
Оценка:
Здравствуйте, LaptevVV, Вы писали:

XC>>Отсутствие вложенных блочных комментариев

LVV>Это мелочь
Из мелочей состоит все. И красота языка программирования именно в мелочах. Я кстати придумал третий совершенно новый и очень удобный вид комментариев (кроме блочных и однострочных).

XC>>Имя массива является адресом первого элемента массива (нелогично! со структурами же не так)

LVV>ИМХО для С это было самое то! Но для С++, который позиционируется как язык более высокого уровня, — это анахронизм.
XC>>Отсутствие низкоуровневых возможностей: sizeof( ) от функции и блока кода, goto на переменные метки (в gcc есть, но это нестандартно)
LVV>Зачем?
Для различных хакерских целей возможно и понадобится. Или для целей защиты программ от взлома.

XC>>Невозможность передачи массивов в фигурных скобках "как есть" в функции Foo({1,2,3});

LVV>Если бы массивы были полноценные объекты — это было бы самое то!
Все должно быть полноценными объектами, и числа, и строки. То есть должны быть вызовы вида 10.ToStr(), "Hello".ToUpper(), но при этом эти "объекты" должны оставаться простыми сущностями.

XC>>Отсутствие именованных блоков кода, соответственно невозможность сделать break и continue на именованный блок/из блока

LVV>Это мелочь. Особенно ghyb наличии goto/ Если goto убрать, то да.
goto тоже нужно оставить, это уникальный оператор безусловного перехода, и в некоторых особых случаях заменой ему могут быть только ассемблерные вставки. Уберем — и получим очередную джаву, на которой ничего кроме бизнес-бухгалтерии и не напишешь.

XC>>Отсутствие методов-расширений, отсутствие возможности обращаться к методу класса как к статическому с явной (ручной) передачей this

LVV>Сильно напрягает?
Если возможность может быть, она ДОЛЖНА быть.

XC>>Отсутствие системы сообщений как в ObjectiveC, встроенной системы сигналов и слотов как в QT

LVV>А где такое еще есть?
Ну вот в ObjC и QT есть.

XC>>Невозможность создания namespace внутри класса (вспомните хотя-бы "главные оконные классы" разных библиотек — CWnd, QWidget... сотни методов, там разделение не помешало бы)

LVV>ИМХО сотни методов — это проблема реализации. И следствие отсутствия нормальной модульности.

Да пусть у меня всего 4 метода в классе, но я хочу разделить их в две группы, что не имею права?

XC>>Отсутсвие вложенных функций (даже в турбо паскале вроде были), а лямбды в C++11 на редкость кривые

LVV>
XC>>Отсутствие замыканий, простого объявления функциональных типов (int=>int)
LVV>А надо?

Код должен быть простым. Если я хочу объявить аргумент "функцию, принимающую на вход int и возвращающую int", я хочу сделать это максимально простым и естественным способом: "int=>inf f" и передавать туда что угодно — метод класса, глобальную функцию, лямбду, функтор с перегруженным operator() и т.д. Это должно работать без шаблонов, если я хочу без шаблонов.

XC>>Отсутствие кортежей, групповых операций над кортежами, невозможность вернуть из функции несколько значений напрямую

LVV>Напрямую — это как?
После многих вариантов я остановился на таком варианте синтаксиса функций, ИМХО самый оптимальный из всех возможных:
def Func(int a, b, c) int x, y
{
  x = a*b + c;
  y = a/b - c;
}
// ну и вызов, какие-то две переменные объявленные где-то, объединяем их в кортеж и принимаем результат функции
(i, j) = Func(100,200,300);
Re[2]: И снова про ц++
От: Sheridan Россия  
Дата: 03.02.12 08:36
Оценка:
Здравствуйте, Mamut, Вы писали:

S>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++? Указатели? Да фигня это, на пару граблей наступить и рефлекс появится. Зато более шустрый софт получается.


M>И при этом ты поносишь браузеры и IDE, которые на этом самом С++ написаны. Нуну.

Гм, напомни ка...

M>А так: C++ можно не любить хотя бы за отсутсвие вменяемых строк. Хотя твой мозг отказывается понимать, что строки — это не последовательность char'ов, это так.

std::string чем невменяемо?
Matrix has you...
Re[2]: И снова про ц++
От: Sheridan Россия  
Дата: 03.02.12 08:36
Оценка:
Здравствуйте, Andrey.V.Lobanov, Вы писали:

S>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++?

AVL>слабая маркетинговая составляющая
Каким боком маркетинг относится к языку программирования?
Matrix has you...
Re[2]: И снова про ц++
От: Sheridan Россия  
Дата: 03.02.12 08:37
Оценка:
Здравствуйте, jazzer, Вы писали:

J>А тебе зачем?

Риторический вопрос
Matrix has you...
Re[2]: И снова про ц++
От: Sheridan Россия  
Дата: 03.02.12 08:38
Оценка:
Здравствуйте, denisko, Вы писали:

D>Здравствуйте, Sheridan, Вы писали:


S>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++?

D>учи дальше плюсы.
Чем дальше вникаю тем больше нравится.

S>>Указатели? Да фигня это, на пару граблей наступить и рефлекс появится.

D>Это к плюсам вообще не имеет отношения.
Абсолютно верно, это имеет отношение ко всему вообще. И к ц++ в частности.

S>>Зато более шустрый софт получается.

D>По сравнению с чем?
Ну например по сравнению с земноводными.
Matrix has you...
Re[7]: И снова про ц++
От: jazzer Россия Skype: enerjazzer
Дата: 03.02.12 08:41
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, jazzer, Вы писали:


N>>>>>В принципе согласен. Более того, система namespace неудобна.

N>>>>>Постоянно хочется решений в стиле питоновского import X.Y.Z as W.
J>>>>чем не устраивает
J>>>>
J>>>>namespace W = X::Y::Z;
J>>>>

J>>>>
N>>>Это давно появилось? Я такого ещё не видел.
J>>Всегда было, см. 7.3.2 [namespace.alias] в С++98.

N>Что "всегда", не согласен, в первых версиях не было, а потом я с C++ настолько плотно не общался. Но идея ясна. И это не совсем то, что надо, хотя тоже помогает.

В каких таких "первых" версиях? Cfront?
В стандарте 98-го года это было, а в достандартном ARM пространств имен не было вообще

N>>>Оно действует на полные символы или только на пространства?

J>>Я не очень понял, в чем вопрос.

N>Это алиасы только для пространств. А я хотел для одного имени.

N>Чтобы, например, я мог функцию X::Y::Z::W назвать как ZW и вызывать её по этому имени.
N>Это крайне полезно для ситуаций, когда удобно принять 2 разных пространства имён в основне пространство, чтобы не требовалось их уточнять на каждом шагу, но при этом одно из имён там конфликтует (есть в обоих). Тогда только оно алиасится, а остальные применяются напрямую.
N>Через алиас для пространства это немного удобнее, но не до конца.
N>Или есть случаи, когда имя в пространстве само по себе безумно длинное, а удобно назвать его короче, или просто переименовать в пределах данного модуля в соответствии с более подходящим смыслом. Такое данным методом вообще не решается.

Ну так это ты плачешь об общей проблеме переименования (или даже о еще более общей проблеме выделения имени в первоклассную сущность), пространства имен тут ни при чем, эта же проблема у тебя будет и без них.
Действительно, общего решения этой проблемы нет.
Для частных случаев есть частные решения:
— Пространства имен: приведенный выше [namespace.alias]
— Типы: typedef
— Переменные: ссылки
— Шаблоны: алиасы шаблонов [temp.alias] (C++11)
— Функции: общего решения нет из-за наличия перегрузки, надо либо через указатели на функции, либо через библиотечные решения типа std::function/std::bind (C++11/ищщые)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: И снова про ц++
От: Sheridan Россия  
Дата: 03.02.12 08:43
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Действительно не при чем. Вопрос должен быть такой: какого размера проекты ты делал на С++ и не не-С++ чтобы сам мог понять разницу?

https://github.com/Sheridan/HAcc
https://github.com/Sheridan/gpstool
Matrix has you...
Re[3]: И снова про ц++
От: Andrey.V.Lobanov  
Дата: 03.02.12 08:44
Оценка: 1 (1) +3 -2 :)
Здравствуйте, Sheridan, Вы писали:

S>>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++?

AVL>>слабая маркетинговая составляющая
S>Каким боком маркетинг относится к языку программирования?
да напрямую. ц++ старый, следовательно немодный/беспонтовый/ненужный и т.д.
массовым погромистам гораздо проще развешивать лапшу прикрываясь всякими С# 100500 / мета- / фукнциональное программирование / лямбды / монады / linq / макросы / прочая фигня. а да, виртуальные машины забыл, тоже модная тема.
Re[4]: И снова про ц++
От: LaptevVV Россия  
Дата: 03.02.12 08:45
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Здравствуйте, LaptevVV, Вы писали:


XC>>>Отсутствие вложенных блочных комментариев

LVV>>Это мелочь
XC>Из мелочей состоит все. И красота языка программирования именно в мелочах. Я кстати придумал третий совершенно новый и очень удобный вид комментариев (кроме блочных и однострочных).
Покажь! Мы в свой язык и среду добавим — со ссылкой на автора.

XC>>>Имя массива является адресом первого элемента массива (нелогично! со структурами же не так)

LVV>>ИМХО для С это было самое то! Но для С++, который позиционируется как язык более высокого уровня, — это анахронизм.
XC>>>Отсутствие низкоуровневых возможностей: sizeof( ) от функции и блока кода, goto на переменные метки (в gcc есть, но это нестандартно)
LVV>>Зачем?
XC>Для различных хакерских целей возможно и понадобится. Или для целей защиты программ от взлома.
Ассемблерные вставки спасут отца русской демократии
XC>>>Невозможность передачи массивов в фигурных скобках "как есть" в функции Foo({1,2,3});
LVV>>Если бы массивы были полноценные объекты — это было бы самое то!
XC>Все должно быть полноценными объектами, и числа, и строки. То есть должны быть вызовы вида 10.ToStr(), "Hello".ToUpper(), но при этом эти "объекты" должны оставаться простыми сущностями.
Я так понимаю, что настал момент разработки волны языков следующего уровня (после паскаля и С)
XC>>>Отсутствие именованных блоков кода, соответственно невозможность сделать break и continue на именованный блок/из блока
LVV>>Это мелочь. Особенно при наличии goto. Если goto убрать, то да.
XC>goto тоже нужно оставить, это уникальный оператор безусловного перехода, и в некоторых особых случаях заменой ему могут быть только ассемблерные вставки. Уберем — и получим очередную джаву, на которой ничего кроме бизнес-бухгалтерии и не напишешь.
В нашем языке вообще нет меток — никаких. И никаких операторов перехода. Только структурные.
XC>>>Отсутствие методов-расширений, отсутствие возможности обращаться к методу класса как к статическому с явной (ручной) передачей this
LVV>>Сильно напрягает?
XC>Если возможность может быть, она ДОЛЖНА быть.
Не согласен. Тут чувство меры разработчика большую рояль играет.
Иначе вместо языка получим большую кучу сами знаете чего.
Страуструп, кстати, в С++ играет роль цензора...
XC>>>Отсутствие системы сообщений как в ObjectiveC, встроенной системы сигналов и слотов как в QT
LVV>>А где такое еще есть?
XC>Ну вот в ObjC и QT есть.
Сигналы со слотами мне нравятся — это как-то сильно понятно... Даже новичкам в программировании...
XC>>>Невозможность создания namespace внутри класса (вспомните хотя-бы "главные оконные классы" разных библиотек — CWnd, QWidget... сотни методов, там разделение не помешало бы)
LVV>>ИМХО сотни методов — это проблема реализации. И следствие отсутствия нормальной модульности.
XC>Да пусть у меня всего 4 метода в классе, но я хочу разделить их в две группы, что не имею права?
А два класса написать с общим абстрактным предком — не?
XC>>>Отсутствие замыканий, простого объявления функциональных типов (int=>int)
LVV>>А надо?
XC>Код должен быть простым. Если я хочу объявить аргумент "функцию, принимающую на вход int и возвращающую int", я хочу сделать это максимально простым и естественным способом: "int=>inf f" и передавать туда что угодно — метод класса, глобальную функцию, лямбду, функтор с перегруженным operator() и т.д. Это должно работать без шаблонов, если я хочу без шаблонов.
Вот насчет "передавать что угодно" я сильно против. Зачем тогда тип указывать? Пусть принимает any и возвращает any...
XC>>>Отсутствие кортежей, групповых операций над кортежами, невозможность вернуть из функции несколько значений напрямую
LVV>>Напрямую — это как?
XC>После многих вариантов я остановился на таком варианте синтаксиса функций, ИМХО самый оптимальный из всех возможных:
XC>
def Func(int a, b, c) int x, y
XC>{
XC>  x = a*b + c;
XC>  y = a/b - c;
XC>}
XC>// ну и вызов, какие-то две переменные объявленные где-то, объединяем их в кортеж и принимаем результат функции
XC>(i, j) = Func(100,200,300);

Это — хорошо...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: И снова про ц++
От: Философ Ад http://vk.com/id10256428
Дата: 03.02.12 08:48
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Покажь! Мы в свой язык и среду добавим — со ссылкой на автора.


Очень любопытно.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: И снова про ц++
От: Mamut Швеция http://dmitriid.com
Дата: 03.02.12 08:49
Оценка:
S>>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++? Указатели? Да фигня это, на пару граблей наступить и рефлекс появится. Зато более шустрый софт получается.

M>>И при этом ты поносишь браузеры и IDE, которые на этом самом С++ написаны. Нуну.

S>Гм, напомни ка...

Жрут много памяти и тормозят ©

M>>А так: C++ можно не любить хотя бы за отсутсвие вменяемых строк. Хотя твой мозг отказывается понимать, что строки — это не последовательность char'ов, это так.

S>std::string чем невменяемо?

Мультибайтные кодировки.


dmitriid.comGitHubLinkedIn
Re[4]: И снова про ц++
От: Mamut Швеция http://dmitriid.com
Дата: 03.02.12 08:50
Оценка:
S>>>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++?
AVL>>>слабая маркетинговая составляющая
S>>Каким боком маркетинг относится к языку программирования?
AVL>да напрямую. ц++ старый, следовательно немодный/беспонтовый/ненужный и т.д.
AVL>массовым погромистам гораздо проще развешивать лапшу прикрываясь всякими С# 100500 / мета- / фукнциональное программирование / лямбды / монады / linq / макросы / прочая фигня. а да, виртуальные машины забыл, тоже модная тема.

Выделенное — не лапша, а очень удобные инструменты. Которые — ВНЕЗАПНО — тоже появляются в С++


dmitriid.comGitHubLinkedIn
Re[3]: И снова про ц++
От: jazzer Россия Skype: enerjazzer
Дата: 03.02.12 08:52
Оценка: +3
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, Andrey.V.Lobanov, Вы писали:


S>>>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++?

AVL>>слабая маркетинговая составляющая
S>Каким боком маркетинг относится к языку программирования?
Гы. Ты считаешь, у жабы и шарпа был бы хоть один процент их нынешнего успеха, если бы за ними не стояли сан и мелкософт?
Вон Немерле — хороший язык, и где он? А если мелкософт его попиарит в стиле "больше шарпа не будет, следующий шарп — это Немерле" — угадай, насколько вырастет его доля через год-два, и на какой строчке он будет в каком-нть ТИОБЕ.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.