LINUX.ORG.RU
ФорумTalks

C#


0

0

Кто-нибудь писал\пишет на С#? Недавно смотрел исходник на нем - как-то кривенько все выглядит. У кого какие впечатления?


Ответ на: комментарий от Burbaka

> Изначально, как я понял, речь шла о практической ценности указателей и их фундаментальной необходимости на уровне языка программирования. Именно в этом контексте "опускался" Си#

Тогда мы спорим о чём-то не о том. Потому что необходимыми указатели являются только в языке, претендующем на универсальность. Например, в C. В языках, заточенных под более или менее узкий круг задач (php) или узкий круг обезьян (java), без них можно (а иногда - нужно, чтоб обезьяна не порезалась) обойтись.

anonymous
()
Ответ на: комментарий от anonymous

> Струя газа в лужу. Это делается и с элементами массива. По крайней мере, я знаю языки, которые это позволяют. Это - не отличительная особенность указателей. Увы.

Да я мало образован в этом плане. А что это за языки такие ?

Burbaka ★★
()
Ответ на: комментарий от Burbaka

> Ты ответишь что-то в духе: Такие ошибки делают в основном только тупые обезъянки, а номральный программист никогда не ошибается. Даже если и ошибется случайно, то очень быстро ошибку найдет и исправит.

> Этого мне крыть просто нечем.

Как это "нечем"? А "человеку свойственно ошибаться" (С) Древние ? А "жизнь - это цепь случайностей" (С) Они же?

Не сдавайся! Ночь еще длинная!

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Тогда я все понял. Просто жаба и Си# это языки не претендующие на универсальность. Они претендуют на удобство решения определенного круга задач.

Burbaka ★★
()
Ответ на: комментарий от anonymous

> Потому что необходимыми указатели являются только в языке, претендующем на универсальность.

Естественно, именно о них и речь.

> узкий круг обезьян (java)

Нувыблиндаете. Java - самый распространенный на сегодняшний день язык программировнаия. Язычок так себе, но и насчет "узкого круга", и насчет "обезьян" - мимо кассы.

tailgunner ★★★★★
()
Ответ на: комментарий от Burbaka

> C тобой все ясно.

Всё? Ну, тогда и о тебе у меня мнение уже сложилось. "Всё" говорит только очень неумный человек. Ещё такие люди любят к месту и не к месту употреблять слово "должен".

> Если я спрошу у тебя: а используя такую свободу указателей ты можешь ошибится и пропутешествовать немного не туда ?

Да, могу. Скажу больше: кухонным ножом я могу оттяпать себе палец. Или ещё что-то. Но - и это очень важно - не делаю это.

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

Никогда? Нет, может. Именно поэтому при работе с указателями следует проявлять осторожность. Если хочешь писать код методом "тяп-ляп", то я тебе не рекомендую использовать указатели. Ещё я не советую в пьяном виде садиться за руль или жонглировать кухонным ножом.

> Даже если и ошибется случайно, то очень быстро ошибку найдет и исправит.

Не всегда. Если ему повезёт - его пошлёт далеко-далеко сама ОС. Но если он тыкнется в данные собственной программы, то ошибка может проявиться когда угодно и весьма оригинальным образом. В этом - опасность указателей, как любого мощного инструмента "не для всех". Ты ведь не вручишь работающую бензопилу своему пятилетнему сыну, правда?

anonymous
()
Ответ на: комментарий от Burbaka

> Тогда я все понял. Просто жаба и Си# это языки не претендующие на универсальность. Они претендуют на удобство решения определенного круга задач.

Слабак ;(

И Java, и C# очень даже претендуют на универсальность. На обоих их производители написали ОС. C# толкается на роль основного языка программирования для Винды.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

Burbaka ★★
()
Ответ на: комментарий от Burbaka

> Сама возможность довода "Такие ошибки делают в основном только тупые обезъянки"

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

tailgunner ★★★★★
()
Ответ на: комментарий от Burbaka

> Да я мало образован в этом плане. А что это за языки такие ?

Да хоть Delphi :) Сначала Вирт придумал строгую типизацию, а потом borland начала делать всё, чтобы её обойти. И натворила чудес.

anonymous
()
Ответ на: комментарий от tailgunner

> И Java, и C# очень даже претендуют на универсальность.

Скорее они претендуют на роль основного языка для решения зачач прикладного программирования (бизнес-логика, графический интерфейс и т.д.). Насколько я знаю DDK под C# еше не выпустили ?

Burbaka ★★
()
Ответ на: комментарий от tailgunner

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

Никогда не забывайте указывать ОБЛАСТЬ. Там, где работаю я, жабой и не пахнет. И думаю, не запахнет. А ещё я жажду увидеть ОС для PC, написанную на жабе. Жаба берёт именно валом, но область применения у неё Уже.

anonymous
()
Ответ на: комментарий от Burbaka

> Скорее они претендуют на роль основного языка для решения зачач прикладного программирования (бизнес-логика, графический интерфейс и т.д.).

На эту роль они претендуют, спору нет.

> Насколько я знаю DDK под C# еше не выпустили ?

Не знаю (я же красноглазый фоннатег Линупса :)) Но использование C# в проекте Singularity наводит на мысли...

tailgunner ★★★★★
()
Ответ на: комментарий от Burbaka

> Сама возможность довода "Такие ошибки делают в основном только тупые обезъянки"

А разве нет? Ну, вот тебе пример: слово "шить" через "ы" пишут только злостные неучи и дети до 9-летнего возраста. Спорить будем?

anonymous
()
Ответ на: комментарий от tailgunner

Спор бесполезен. Лично мне очевидно, что C# гораздо более удобен для разработки прикладного программного обеспечения чем Си/Cи++ без скриптовых расширений. Для меня это факт. Чтобы меня в этом переубедить мне потребуется показать программу написанную на Си/Си++ которая будет иметь более простую, логичную и понятную внутреннюю организацию чем аналогичная программа на С#.

Спорить о том кто более "универсален" я не буду. Ибо "универсальность" в данном контексте - пустой звук. Я не вижу практической пользы от этой универсальности и не понимаю ее смысл.

Burbaka ★★
()
Ответ на: комментарий от anonymous

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

> Никогда не забывайте указывать ОБЛАСТЬ.

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

> А ещё я жажду увидеть ОС для PC, написанную на жабе.

Лет несколько назад это было модно - писать ОС на Java, Поищите в архивах.

> Жаба берёт именно валом, но область применения у неё Уже.

Уже чем что? Чем область применения Си? Так Java и моложе раза в три. И чем/как мерять "ширину" области применения?

Я ни разу не любитель Java, но факты - вещь упрямая.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> А разве нет? Ну, вот тебе пример: слово "шить" через "ы" пишут только злостные неучи и дети до 9-летнего возраста. Спорить будем?

Чтд. Боже упаси.

Burbaka ★★
()
Ответ на: комментарий от Burbaka

> Спорить о том кто более "универсален" я не буду.

Справедливости ради - спор был об указателях :)

> Ибо "универсальность" в данном контексте - пустой звук.

Вроде как это общепринятый термин - "универсальный язык программирования".

> Я не вижу практической пользы от этой универсальности и не понимаю ее смысл.

Это возможность использовать один и тот же язык для широкого круга задач, что технологически и экономически эффективно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Лет несколько назад это было модно - писать ОС на Java, Поищите в архивах.

Это как раз тот случай трудноизлечимой патологии, о которой я уже упомянул выше. Где теперь эти оси, что стало с ними? Кто пользуется ими?

> И чем/как мерять "ширину" области применения?

А как их обычно измеряют? Да перечислением: бизнес-приложения, низкоуровневая работа с аппаратурой и т.д. Везде C используется. Где-то его потеснила java, но далеко не везде.

> Так Java и моложе раза в три.

Важны тенденции. Убедились, что для написания осей java не годится? Да. И всё, эта область осталась фактически без жабы. Так и считать :)

anonymous
()
Ответ на: комментарий от tailgunner

> Это возможность использовать один и тот же язык для широкого круга задач, что технологически и экономически эффективно.

Я по своей простоте и некоторому опыту всегда думал что технологичней использовать неуниверсальные языки программирования, которые сильно закошены для решения узкого круга задач. Например, ПРОЛОГ для задач логического вывода, SQL для запросов к БД, язык регулярных выражений для задания шаблона поиска в строке и т.д. Или тут я снова не прав ?

Burbaka ★★
()
Ответ на: комментарий от anonymous

>> Лет несколько назад это было модно - писать ОС на Java, Поищите в архивах.

>Это как раз тот случай трудноизлечимой патологии, о которой я уже упомянул выше. Где теперь эти оси, что стало с ними? Кто пользуется ими?

1) целая куча ОС ушла в никуда, и почти все - на Си; 2) вообще. назови хоть _одну_ распространенную ОС, разработанную за последние 10 лет

>> И чем/как мерять "ширину" области применения?

>А как их обычно измеряют? Да перечислением: бизнес-приложения, низкоуровневая работа с аппаратурой и т.д.

Если мерять _просто перечислением_, то Java и Си будут наравне. А цифр о распростаненности каждого языка в каждой области у меня нет. У тебя - тоже, так? Значит, остается общее количество программистов, по нему Java - впереди.

>> Так Java и моложе раза в три.

> Убедились, что для написания осей java не годится? Да.

Не знаю. Может, убедились в том, что на рынке достаточно много качественных ОС?

Что-то я снова утерял нить спора... И вроде как защищаю Java... Похоже, я забыл принять таблетки 8)

tailgunner ★★★★★
()
Ответ на: комментарий от Burbaka

>> Это возможность использовать один и тот же язык для широкого круга задач, что технологически и экономически эффективно.

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

Зависит... То, что ты назвал: ПРОЛОГ, SQL - они для _очень_ узкого круга задач. Но есть чертова уйма областей, для которых не нужны (== невыгодны) свои языки, а достаточно библиотек или небольших расширений базового языка. И вот эти области выгодно "накрыть" одним универсальным языком.

Кстати, если вспомнить историю, считалось, что экспертные системы следует писать на Lisp и специальных языках. А _потом_ выяснилось, что их можно писать на Fortran и Си. Так что специализированные языки - это хорошо, но не необходимо.

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

P.S. Насчет SQL: в C# 3.0 будет такая быдлофича - LINQ ;)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Зависит... То, что ты назвал: ПРОЛОГ, SQL - они для _очень_ узкого круга задач. Но есть чертова уйма областей, для которых не нужны (== невыгодны) свои языки, а достаточно библиотек или небольших расширений базового языка. И вот эти области выгодно "накрыть" одним универсальным языком.

Следовательно такой язык должен существовать и это Си/Си++. Правильно я мысль продолжил ? Ну по крайней мере другого "универсального" языка я не вижу.

Burbaka ★★
()
Ответ на: комментарий от Burbaka

Ладно, пойду ка я спать. Тупые споры быстро утомляют.

Burbaka ★★
()
Ответ на: комментарий от Burbaka

>> И вот эти области выгодно "накрыть" одним универсальным языком.

>Следовательно такой язык должен существовать и это Си/Си++. Правильно я мысль продолжил ?

Так было раньше. Теперь развитие железа сделало экономически выгодными "безопасные" языки, и на нишу Си/Си++ претендуют C# и (в меньшей степени) Java.

> Тупые споры быстро утомляют.

Если спор тупой, не участвуй в нем :D

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

Безусловно, есть спектр задач, где оные ЯВУ незаменимы, но в общем масштабе он весьма и весьма узок. А для подавляющиего большинства задач лучше подходят более защищённые языки. Независимо от уровня подготовки и опыта программиста.

KRoN73 ★★★★★
()
Ответ на: комментарий от Burbaka

>Просто жаба и Си# это языки не претендующие на универсальность.

Я бы сказал, что языков с высоким произведением уровня языка (т.е. минимизация времени разработки) на его универсальность просто не существует. Или мы имеем топор, которым и дрова можем рубить, и скульптуры из дерева вырубать, и головы рубить - но всё, не очень эффективно и зачастую долго. Или имеем, скажем, бритву, которой можем быстро, чисто и мягко бриться, но которой неудобно рубить лес :)

Но на сегодня Ява и Шарп способны решать большой круг задач с меньшими затратами и большей надёжностьб, по сравнению с Си/Си++.

Конечно, есть круг задач, где соотношение уровень_языка*решабельность_задачи больше для Си (пресловутые драйвера, ядро Linux, всевозможные утилиты - хотя мы видим, как это катастрофически сказывается на их надёжности, но тут ответить нечем... да и ненужно особо).

Но в основной массе задач более мощный инструмент - Java и C#.

И ненужно уподобляться ядрёным сибирским мужикам. Да, японская пила не перепилит лом. Но, согласитесь, есть целый спектр задач, где она лучше двуручной :)

...

А если считать, что квалифицированный программист не может допускать ошибок при работе с указателями, то, например, ядро Linux явно пишут дилетанты. Сколько там уже за этот год только устранено проблем с переполнениями?...

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

- WinRAR
- Gimp
- LibTIFF
- mpg123
- OpenLDAP
- MySQL
...

Их все писали дилетанты? :) А, может, просто кто-то идёт не в ногу?

...

В конце концов, ну что за бред? У меня каталог в 30 тыс. записей. Почему я не могу из него удалить файлы по маске через rm? "Слишком большой список аргументов!". Блин, у меня в системе - гигабайт памяти. Что, 30 тыс. записей в 1Гб не поместятся???

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>>Java - самый распространенный на сегодняшний день язык программировнаия.

>Никогда не забывайте указывать ОБЛАСТЬ.

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

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>Это как раз тот случай трудноизлечимой патологии, о которой я уже упомянул выше. Где теперь эти оси, что стало с ними? Кто пользуется ими?

Где сегодня BeOS, написанная на Си? :) Где, наконец, OS/2, хотя бы... Я молчу про десятки более мелких или более древних разработок

KRoN73 ★★★★★
()
Ответ на: комментарий от Burbaka

>Следовательно такой язык должен существовать и это Си/Си++.

Почему не ассемблер? Переносимость? Ну так и 90% современных Си, тем более, Си++ программ очень плохо переносимы за пределами x86. Даже с x86_64 сколько проблем было, а то же - близнецы братья.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

:-) Вот это флейм :-)

Кстати, а на чём написана Java VM?

Спор действительно вышел не особо логичный, начали же с указателей :-) Моё мнение, что C# и Java просто более высокоуровневые языки.

Anoxemian ★★★★★
()
Ответ на: комментарий от KRoN73

так вот ты какой - rm будущего: ява + 1Г памяти!

Для удаления 30 тыс. записей я бы задумался о самописной приблуде на Ц.

Pi ★★★★★
()
Ответ на: комментарий от tailgunner

> 1) целая куча ОС ушла в никуда, и почти все - на Си; 2) вообще. назови хоть _одну_ распространенную ОС, разработанную за последние 10 лет

Ну так java должна была, по идее, показать свои неоспоримые преимущества перед C. Однако не показала :)

anonymous
()
Ответ на: комментарий от Anoxemian

>Кстати, а на чём написана Java VM?

Э... Вроде, как на Java сейчас :) Блин, лениво исходники качать. Кто-нить, отзовитесь :D

>Моё мнение, что C# и Java просто более высокоуровневые языки.

+1 :) (а более высокий уровень всегда обозначает потерю эффективной работы с енкоторой узкой частью задач - но почему-то некоторые спорщики эту узкую часть обобщают на весь спектр программистских решений :) )

KRoN73 ★★★★★
()
Ответ на: комментарий от Pi

>Для удаления 30 тыс. записей я бы задумался о самописной приблуде на Ц.

Не записей, файлов.

Но, разве это будет unixway? Типа, если файлов 10, то rm, если 10тыс, то rm-k? :) А если в ДБФС будущего 10млн. файлов - то rm-db? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>Ну так java должна была, по идее, показать свои неоспоримые преимущества перед C. Однако не показала :)

О! Доказательства преимуществ натолкнули меня на ностальгические воспоминания. Лет 15 назад, мне друг доказывал, что Си не имеет никаких преимуществ перед ассемблером. И что я ему не могу предоставить никаких убедительных доказательств.

...

Сейчас он программирует под 1С :D

...

Т.е. можно ждать, что лет через 15 точно также кто-то будет говорить, что новый язык XXX не имеет никаких преимуществ перед Java... А нынешние Си-программисты будут в то время писать на какой-нибудь реинкарнации VB :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Но, если у тебя есть не опыт, а хотя бы представления о работе с этим зоопарком на Си/Си++, то мне страннА твоя позиция.

Я вроде не высказывал свою позицию 8). У каждого позиция своя, основанная на чем-то (хорошо, если на опыте и предметной области), хотя мало кто ее объясняет. Я влез в спор, когда возникли сомнения в "фундаментальности" указателей, при том, что они (явно и неявно) есть и в Java, и в C#. Вот только не удалось выбить признания :)

> Ибо должен прекрасно понимать вагон и маленькую тележку подводных камней в работе с ними.

Есть типичные ошибки программирования - утечки, выходы за пределы массива, зависшие указатели, прописывание памяти (сегфолты не рассматриваем - они и в Java есть, да и отлавливаются легко). Ты это понимаешь под "подводными камнями"? Или что-то более сложное, вроде нехватки места в виртуальной таблице базового класса при развитии библиотеки (сам-то я с таким не сталкивался) ?

> Безусловно, есть спектр задач, где оные ЯВУ незаменимы, но в общем масштабе он весьма и весьма узок.

Я бы не сказал, что он "весьма и весьма узок", просто во многих областях _появились_ достойные альтернативы. Но у Си/Си++ есть и достоинства - нетребовательность к ресурсам и runtime-среде, интегрируемость со всем подряд. Добавь к этому массу существующих библиотек. Так что по крайней мере в Linux/Unix они еще долго останутся на первых ролях.

P.S. А почему ты спрашивал об архитектурах, отличных от x86?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Жаба и php - это именно быдлоязыки. Кстати, даже без отрицательного оттенка. Они заточены под обезьяну, чтобы она максимально быстро лепила для хозяина код, содержащий минимальное число ошибок. Это просто рабочий инструмент с многочисленными защитами от дурака и со всеми вытекающими.

php... обезьяна... безопасный код... многочисленные защиты от дурака... Бугага!!!! :))) Это несовместимые слова. Ну может разве если первые 2 :))

Deleted
()
Ответ на: комментарий от tailgunner

>Есть типичные ошибки программирования - утечки, выходы за пределы массива, зависшие указатели, прописывание памяти (сегфолты не рассматриваем - они и в Java есть, да и отлавливаются легко).

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

>Я бы не сказал, что он "весьма и весьма узок", просто во многих областях _появились_ достойные альтернативы.

Я бы сказал, что, как минимум, половина этих областей - следствие твоей инерции :) Заметь, никто не оспаривает всерьёз практическую незаменимость Си/Си++ в области драйверов или ядра ОС. Но, вот, уже на примере хотя бы сервера ММОРПГ... Когда года два назад вставл вопрос присоединиться к только что возникшему l2j (а Java я тогда вообще не знал) или к народу, который выбором Java был недоволен и собирался делать сервер на Си++, я после некоторых раздумий и тестов выбрал Java. И что же? Два года прошло, проект развился, несколько раз форкался. А на Си++ народ... собирался делать этот сервер ещё раза три или четыре за это время. Даже у кого-то были уже реальные коды (не знаю, насколько рабочие). Но дело так и не пошло.

А уж, казалось бы, онлайновый реалтаймовый сервер... :)

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

>Но у Си/Си++ есть и достоинства - нетребовательность к ресурсам и runtime-среде

Большое достоинство. Но ассемблер ещё менее требователен был :D

>интегрируемость со всем подряд. Добавь к этому массу существующих библиотек.

Ну, с этими библиотеками сейчас только ленивый (или идеологический) работать не может.

Кстати, вот по библиотекам. Как у Си++ с ORM, например?

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

>Ну, это скорее показатель общей ситуации в стране.

Безусловно. Пример был, правда, с акцентом не на 1С, а на противостояние ассемблера и Си :)

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

>Не, просто ARG_MAX поднимут до небес :)

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

Кстати, вот у меня сейчас хороший пример. Gajim и Kopete. Первый работат замечательно, а второй, начиная с какого-то объёма контакт-листа (штук 300 контактов, штук 20 Jabber-конференций) стал просто виснуть на запуске... (нет, конечно, есть и чисто "плюсанутый" Psi... Но ему можно ответить вооще Tcl/Tkшным Tkabber :D)

Задавать размеры буферов... Когда я на Си++ с Си пересаживался, это был один из самых весомых аргументов плюсов. Что можно скрыть и автоматизировать эту хрень :)

Но нет, 15 лет прошло, а воз и ныне там...

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

О, кстати, насчёт серверных решений. Тут я стойко убеждён, что производительность Це + shared memory (через, естественно, указатели) при работе с сокетами и организация пулов из них просто несравнима с другими технологиями.

Насчёт l2j. Я согласен, что проект пошёл. Но это скорее связано с тем, что реализовывать его на java проще:-) Пусть и в ущерб производительности. Согласись, l2j - тормоз. Я просто в своё время тоже им занимался. При нагрузке в 1к клиентов начинается шоу :-)

Anoxemian ★★★★★
()
Ответ на: комментарий от KRoN73

> Да, именно их я и зову "подводными камнями".

Да при входе в Си на дверях висит табличка: "Осторожно, грабли! МНОГО!" :) Ладно, я понял тебя.

>>Я бы не сказал, что он "весьма и весьма узок", просто во многих областях _появились_ достойные альтернативы.

>Я бы сказал, что, как минимум, половина этих областей - следствие твоей инерции :)

Ты меня переоцениваешь - это инерция целой индустрии :) И не только инерция - я привел и достоинства Си/Си++

А сам я в последнее время на Python пишу больше, чем на Си++

> А уж, казалось бы, онлайновый реалтаймовый сервер... :)

Ну, убедительно... Но насколько 1 пример показателен? Сколько сереверов "in the wild" написаны на Си++? Сколько проектов на Java провалилось? Да и причины провала могут быть в людях, а не инструментах. Вообще, получилось бы интересное психологическое исследование - какие люди предпочитают какие языки программирования.

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

>>Но у Си/Си++ есть и достоинства - нетребовательность к ресурсам и runtime-среде

>Большое достоинство. Но ассемблер ещё менее требователен был :D

Ну ты понял, да? ;)

>>интегрируемость со всем подряд. Добавь к этому массу существующих библиотек.

>Ну, с этими библиотеками сейчас только ленивый (или идеологический) работать не может.

В этом и плюс. А попробуй объединить библиотеку на Mono с библиотекой на Python. Или Java + Mono.

> Кстати, вот по библиотекам. Как у Си++ с ORM, например?

Не моя область. Но, раз ты спрашиванешь, наврное с ORM у Си++ хреново.

Зато у Си++ есть ООСУБД :D

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

>>Не, просто ARG_MAX поднимут до небес :)

>Вот-вот. Собственно, это меня в Си и бесит больше всего.

Это ограничение ядра 8) К Си отношения не имеет.

tailgunner ★★★★★
()
Ответ на: комментарий от Anoxemian

>О, кстати, насчёт серверных решений. Тут я стойко убеждён, что производительность Це + shared memory (через, естественно, указатели) при работе с сокетами и организация пулов из них просто несравнима с другими технологиями.

Дык, никто не спорит! Да, Си быстрее. Но вот за тот же срок на такой связке ты напишешь в разЫ меньше функциональности, чем на Java. А учитывая, что в l2j на Java до сих пор реализовано... Ну, дай бог процентов 60 функционала... Можно представить, какая бы это была кривь, если бы писали всё на Си :)

>Но это скорее связано с тем, что реализовывать его на java проще:-)

Дык, о чём и речь! Если задача небольшая по объёму и требует законченного продукта - то, по большому счёту, можно даже забить на то, час её писать или 20 часов. Если это дополнительные 19 часов дадут серьёзный выигрышь (хотя бы вдвое) по ресурсам.

Но когда вопрос встаёт между 2 года или 44 года... Тут, извините, простота становится важнее скорости :)

>Согласись, l2j - тормоз.

Соглашусь. Но, согласись, альтернативы (реальной практически) - нет :D

...

Впрочем, на сколько я знаю, в эмуляторе WoW, который народ реализовал на Си++, проблемы с производительностью тоже серьёзные...

>При нагрузке в 1к клиентов начинается шоу :-)

Я бы сказал, что у народа на 500 клиентах уже требуется серьёзная машина... Но бенчмарки показывают, что проблема сугубо алгоритмическая. На большом онлайне 90% несетевой части загрузки уходит на обсчёт взаимной видимости объектов. Я даже тут тему поднимал как-то... О! http://www.linux.org.ru/view-message.jsp?msgid=1409314

С тех пор улучшения были значительные, но до ещё более экономных решений только сейчас дошли.

Планируем поддержку 1к онлайна на средних серверах :) (правда, у меня всё равно больше 50 человек почти не бывает).

...

Между нами - квалификация программистов падает катастрофически. Какие, блин, указатели, когда народ ждёт два-три дня, пока я приду и выдам им целочисленное решение пересечения произвольного отрезка с горизонтальным... Задача уровня пятого класса... И при всём этом выбирать не из кого. И в одиночку проекты такого масштаба уже не делаются...

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

>Ну ты понял, да? ;)

Да, вроде, как радикалы из ветки выпали, оставшиеся уже к консенсусу пришли... :)

>В этом и плюс. А попробуй объединить библиотеку на Mono с библиотекой на Python. Или Java + Mono.

Да, в этом - минус :) Кстати, именно этим меня платформа .NET привлекает. Они сразу постарались обеспечить удобную и мощную взаимосвязь произвольных языков внутри этой платформы. Java только-только начинает (и явно - в ответ, с приличным опозданием) отвечать на это.

>Не моя область. Но, раз ты спрашиванешь, наврное с ORM у Си++ хреново.

Я тоже не в курсе, ибо с СУБД из Си/Си++ просто не работал. Но почему-то на слуху ни одного названия. Против той же Hibernate у Java.

...

Кстати, в Си, вот, теперь мне заметно не хватает аналога Reflection :) Очень это удобно для всякого скриптового уровня софта - получать доступ к классам и объектам системы по их именам...

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.