LINUX.ORG.RU
ФорумTalks

Cудьба Mono


0

5

Мигель перешел в стан врага и вещает о «мертвом мертвейшем линуксе».

Mono for Android - минимум 300$. Mono for iOS - минимум 300$. С леденящим душу страхом жду Mono for Lin/Win/Mac - минимум 300$ :)

Моно на линуксе рип-рип? Или все это ерунда, всё будет хорошо и замечательно?

Перемещено mono из development

★★★★☆
Ответ на: комментарий от stevejobs

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

кажется ты ещё не понял, что с таким подходом как ты предлагаешь, можно сравнивать что угодно с чем угодно, но только НЕ C++. Ибо в C++ по умолчанию нет НИЧЕГО. Встроенные фичи (даже если они есть) максимально простые и тривиальные. Такие как оператор копирования (который тупо переносит содержимое), или оператор new (который не менее тупо вызывает malloc() или что там в текущей системе за неё).

Мы вот тоже на жаве имеем метапрограммирование, функциональщину, множественное наследование и прямое управление памятью путем эмуляции всей это херни (или в твоей терминологии «сделали это сами»), но это ведь не повод утверждать, что полученное — это Java. Это какой-то метаязык, исходный код на котором находится исключительно в наших головах, а потом руками транслируется в код на жаве. Другой язык, не сама Жава.

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

Идея, мысль, алгоритм - они должны напрямую выражаться в терминах языка. Это когда ты хочешь отфильтровать коллекцию и пишешь «collection.sort», вместо написания эмуляции путем использования цикла.

именно. Потому в C++ нет, не было, и не будет никакого sort(). Но ты можешь заюзать STL, можешь заюзать ещё что-то, или даже сделать свой sort().

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

Ибо в C++ по умолчанию нет НИЧЕГО

Кроме 500 страниц спеков, описывающих всякие извращения с оператором присваивания. Что такое ООП? Наличие ключевого слова class?

Будь C++ нормальным языком, в нём не было бы возможности переопределить оператор присваивания. Потому что этот оператор должен действовать единственным образом — скопировать структуру данных справа налево. Если это объект, так пусть просто скопирует все поля этого объекта. Если среди них есть какие-нибудь указатели и хочется скопировать не указатели, а данные по ним, то пусть программист определяет у класса метод Copy(), который будет явно вызываться.

И будет две различных операции, каждая для своей цели. a = b ≠ a = b.Copy()

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

Отлично объяснил, почему С++ больше не нужен ж)

Байткод -> Ассемблеры -> Макроязыки (с ассемблерными вставками) -> Процедурные и прочие языки начала второго поколения (со вставками макросов и ассемблеров) -> Переходные объектно-ориентированные и функциональные языки (со вставками на процедурщине) -> Развитые ооп и фн языки (прямая поддержка рефлексии/интроспекции, прямая поддержка DSL и кодогенерации, contextual keywords, contextual code, etc) -> Декларативные языки с управляющими вставками

Твой С++ — остался где-то там в прошлом, в переходе от машинного кода к чему-то что может херачить человек. Отличный язык, года для 90-ого, все еще хороший для 98-ого. Погляди-ка на календарь, сейчас 2012. Сейчас даже пролог уже устарел. Через десять лет станет 2022, а еще через пару десятков лет мы будем старичками, а люди будут смеяться от одной мысли о ручном управлении написанием кода.

В С++ нету sort. В нем нету вообще ничего, что сейчас нужно. Поэтому он и не нужен //кэп

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от wota

бросай программирование - оно не для тебя

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

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

остался где-то там в прошлом

конечно, сейчас рулят ведь не C/Obj-C/C++, а Java и C#, правда рулят они как-то странно

В С++ нету sort

вот так новость

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

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

А С++… популярен примерно по той же причине, что и пхп в вебе.

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

Это обычная практика в языке Go

это имеет смысл только в том случае, если Copy() вернет ссылку, и a будет просто ссылаться на новую копию, иначе будет оверхед на ровном месте, если уж и делать такой метод, то только b.Copy( a )

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

А С++… популярен примерно по той же причине, что и пхп в вебе.

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

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

А С++… популярен примерно по той же причине, что и пхп в вебе.

конечно

А это и правда так %) На тот момент просто не было ничего лучше и скромнее по ресурсам.

всякие компиляторы, кады, фотошопы, топовые игры, браузеры и их движки, СУБД

Почти все «компиляторы, кады, фотошопы и браузеры» начали писаться 20 лет назад (или больше). А топовые игры - ниша относительно небольшая, да и там уже не чистый Си++.

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

На тот момент просто не было ничего лучше и скромнее по ресурсам.

лучше ЯП точно были, это любой анонимус с ЛОРа подтвердит ) а насчет «скромнее по ресурсам» - ничего не поменялось

Почти все «компиляторы, кады, фотошопы и браузеры» начали писаться 20 лет назад (или больше)

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

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

насчет «скромнее по ресурсам» - ничего не поменялось

Да неужели? Сейчас за те же деньги можно купить на порядки больше ресурсов.

Почти все «компиляторы, кады, фотошопы и браузеры» начали писаться 20 лет назад (или больше)

далеко не все

Примеры?

это показатель того, что никакие новые ЯП не способны произвести революцию

(пожимая плечами) А революций вообще было мало, и связаны они не с языками, а с парадигмами.

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

Да неужели? Сейчас за те же деньги можно купить на порядки больше ресурсов.

представь себе, ресурсов больше, но и те же браузеры теперь работают с HTML 5, а не тупо рендерят табличку с текстом, СУБД работают с гораздо большим объемом данных и т.д.

Примеры?

легко - вспомни тему про NoSQL, сам найдешь там примеры для СУБД, насчет компиляторов - вспомни хотя бы про clang, браузеры 20-летней давности это вообще раритеты и т.д.

(пожимая плечами) А революций вообще было мало

(делая удивленное лицо) да ладно

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

вспомни тему про NoSQL, сам найдешь там примеры для СУБД

CouchDB на Эрланге, Cassandra на Яве. Ниша Си++ всё сжимается.

насчет компиляторов - вспомни хотя бы про clang

Изначально они хотели интегроваться в GCC, так что особого выбора у них не было.

браузеры 20-летней давности это вообще раритеты и т.д.

Да ладно? Кодовая база IE примерно такого возраста, то же про Firefox и Opera.

А революций вообще было мало

(делая удивленное лицо) да ладно

Напомни мне штук 5 последних %)

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

CouchDB на Эрланге, Cassandra на Яве. Ниша Си++ всё сжимается.

кто-то говорил, что на других ЯП нет СУБД? они были еще до С++ (что логично), ничего с тех пор не поменялось, и странно делать вид, что новых СУБД на С и/или С++ почти нет, когда их легко можно найти в списке популярных, собс-но о чем и был разговор

Изначально они хотели интегроваться в GCC, так что особого выбора у них не было.

был - C + другой ЯП

Да ладно? Кодовая база IE примерно такого возраста, то же про Firefox и Opera.

я конечно исходный код IE/Opera не видел, не скажу, но webkit, например, взяв изначально KHTML, был полностью переписан с нуля, браузеры вроде Chrome/Safari etc. тоже написаны с чистого листа, Firefox с его XUL тоже не 20 лет, Gecko пожалуй тут самый старый, но и его еще рано записывать в клуб «за 20»

Напомни мне штук 5 последних %)

я забыл добавить один тег к своей фразе

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

CouchDB на Эрланге, Cassandra на Яве. Ниша Си++ всё сжимается.

кто-то говорил, что на других ЯП нет СУБД?

Нет. Кто-то говорит, что ниша Си++ уменьшается (за счет проникновения туда managed-языков).

странно делать вид, что новых СУБД на С и/или С++ почти нет

Кроме Mongo, какие?

webkit, например, взяв изначально KHTML, был полностью переписан с нуля

«С нуля» - это значит «выбросили KHTML и написали всё заново», а такого не было. Понятно, что от изначального KHTML осталось мало или вообще ничего, но код переписывался частями.

я конечно исходный код IE/Opera не видел

В About IE 3.0 было сказано «разработано на основе NCSA Mosaic».

Firefox с его XUL тоже не 20 лет

Да блин, причем тут XUL (а так же {Spider,Trace,Ion}Monkey и прочее). Есть кодовая база, она постепенно дорабатывается, модифицируется, чистится и т.д. Но она никогда не выбрасывается полностью, и за счет этого остается написанной на том, на чем была изначально (или, как в случае GCC, может медленно перейти в другой язык).

браузеры вроде Chrome/Safari etc. тоже написаны с чистого листа,

Они оба на webkit, правильно? Странное у тебя понятие о «с нуля».

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

Нет. Кто-то говорит, что ниша Си++ уменьшается

кто-то говорил «почти нет», ну ок

Кроме Mongo, какие?

из РСУБД отмечу drizzle, который уже лишь формально форк mysql, по факту - новая СУБД с новым кодом на С++, из встраиваемых - конечно sqlite, ну еще всякие redis, virtuoso, memcached, это если говорить про известные на С и С++, менее известных будет конечно побольше, но думаю их вспоминать нет смысла

В About IE 3.0 было сказано «разработано на основе NCSA Mosaic».

что не гарантирует, что в IE9 есть хоть строчка старого кода, и что он вообще на C++

Да блин, причем тут XUL (а так же {Spider,Trace,Ion}Monkey и прочее). Есть кодовая база, она постепенно дорабатывается, модифицируется, чистится и т.д

современные браузеры не монолитны, v8, xulrunner, *Monkey и пр. - вполне себе отдельные проекты, на базе которых написаны не только браузеры, и не только на С и С++

Они оба на webkit, правильно? Странное у тебя понятие о «с нуля».

если что webkit часть safari, а chrome чуть больше чем простая оболочка к нему, но да - «с нуля» некорректная формулировка в общем случае

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

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

люди вон quake 2 на Java переписывали или sqlite, было бы желание - уйти на другой ЯП не так сложно, особенно, если надо лишь скопировать готовое, Apple и не такое проворачивала, вот только вариантов у них особо и не было, C/Obj-C/C++ - вот пожалуй и все

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

из РСУБД отмечу drizzle, который уже лишь формально форк mysql

что не гарантирует, что в IE9 есть хоть строчка старого кода

Похоже, ты и в самомо деле не понимаешь простых вещей. Ну и ладно.

redis, memcached

Это Си, не Си++.

virtuoso,

Если ты о http://en.wikipedia.org/wiki/Virtuoso_Universal_Server, то «The Virtuoso project was born in 1998 from a merger of the OpenLink data access middleware and Kubl RDBMS».

из встраиваемых - конечно sqlite

2000 год - не сказать, чтобы новая; Си, не Си++.

современные браузеры не монолитны, v8, xulrunner, *Monkey

v8 - это вообще из другого браузера, xulrunner содержит в себе копию Gecko, *Monkey вырос в кодовой базе Mozila и просто не мог быть на чем-то, кроме Си++ (по крайней мере, пока не взлетел Rust).

люди вон quake 2 на Java переписывали или sqlite, было бы желание

Никто и не говорил, что переписать невозможно.

уйти на другой ЯП не так сложно

Гг.

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

Похоже, ты и в самомо деле не понимаешь простых вещей. Ну и ладно.

просто ты придаешь некоторым вещам гипертрофированное значение, вот первый gcc был на паскале и что? а ведь «переезд» состоялся в рамках одного проекта, а не сознательного переписывания в новый продукт, как в drizzle

Это Си, не Си++.

спасибо, К.О., теперь перечитай предыдущие сообщения

2000 год - не сказать, чтобы новая

зато уже родились клоны на других ЯП - не взлетели

v8 - это вообще из другого браузера
xulrunner содержит в себе копию Gecko

К.О. сегодня в ударе

Гг.

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

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

вот первый gcc был на паскале и что?

http://gcc.gnu.org/wiki/History

Pastel (если ты о нем) вообще не был написан Столлманом и уж тем более не был «первым gcc»: «I concluded I would have to write a new compiler from scratch. That new compiler is now known as GCC"ю

Это Си, не Си++.

спасибо, К.О., теперь перечитай предыдущие сообщения

Я лучше перечитаю сообщение, на которое ответил изначально:

PlarFox> А С++… популярен примерно по той же причине, что и пхп в вебе.

wota> конечно, всякие компиляторы, кады, фотошопы, топовые игры, браузеры

И после этого ты приводишь мне продукты на Си.

тебе такая задача неподсильна, а Apple вполне бы справилась, если б захотела

Приведешь пример, где Яббл бы переписывал программы с одного языка на другой, да хоть какие-нибудь переписывания больших продуктов (нет, sqlite и quake2 не считаются большими)? Лично я слышал только о фейле Корела.

благо думать о совместимости и пр. тут не приходилось

Переезды Яббла m68k -> ppc и ppc -> x86 смотрят на тебя с непониманием.

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

Будь C++ нормальным языком, в нём не было бы возможности переопределить оператор присваивания. Потому что этот оператор должен действовать единственным образом — скопировать структуру данных справа налево. Если это объект, так пусть просто скопирует все поля этого объекта. Если среди них есть какие-нибудь указатели и хочется скопировать не указатели, а данные по ним, то пусть программист определяет у класса метод Copy(), который будет явно вызываться.

если-бы это был просто оператор копирования, то сборщик мусора никогда-бы не узнал про копию. Но это ещё не самое печальное - проблема в том, что внутри класса нельзя даже выделить память, а потом в деструкторе её освободить - память будет освобождена дважды, что приведёт к UB. Ведь указатель ты предлагаешь «просто копировать».

И будет две различных операции, каждая для своей цели. a = b ≠ a = b.Copy()

и захрена? лично мне достаточно operator=()

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

I concluded I would have to write a new compiler from scratch. That new compiler is now known as GCC

ты «случайно» не заметил такую фразу - «but I managed to adapt and use the C front end that I had written», т.е. имело место именно переписывание, пусть и далеко не всего кода, как и, внезапно, в том же drizzle, где не ставили цель сделать обычный форк вроде mariadb, например, а сели и написали новый код

Я лучше перечитаю сообщение, на которое ответил изначально:

ок, только не забывай читать и другие

И после этого ты приводишь мне продукты на Си.

предварительно написав про С, так бывает - разговор уходит в сторону, особенно если кто-то комментирует со стороны, рад что мы разобрались

Приведешь пример, где Яббл бы переписывал программы с одного языка на другой

ты не поверишь, но у Яббла есть своя ОС, в ней есть программы, и они как ни странно «переписывались с одного языка на другой», почитай про finder, например, это такой file manager, легко нагуглишь

Переезды Яббла m68k -> ppc и ppc -> x86 смотрят на тебя с непониманием.

они смотрят на тебя, переписывание KHTML к ним отношения не имеет

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

А это и правда так %) На тот момент просто не было ничего лучше и скромнее по ресурсам.

как и сейчас...

Почти все «компиляторы, кады, фотошопы и браузеры» начали писаться 20 лет назад (или больше). А топовые игры - ниша относительно небольшая, да и там уже не чистый Си++.

C++ никогда и не был «чистым». Он всегда был расширяем, причём и вверх и вниз.

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

а сели и написали новый код

под этим подразумевается и переписывание с С на С++, если вдруг опять будет недопонимание

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

Да неужели? Сейчас за те же деньги можно купить на порядки больше ресурсов.

но для решения той же задачи тебе понадобится на два порядка больше ресурсов. Игрушкой на 640х480 пикселей ты никого уже не удивишь. Разве что на Nokia3110.

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

ты «случайно» не заметил такую фразу - «but I managed to adapt and use the C front end that I had written»

И тем не менее, никакой «первой версии GCC на Pascal» не существовало.

И после этого ты приводишь мне продукты на Си.

предварительно написав про С

Из продуктов на Си++, написанных после 2000 года, имеем Монго. И игры, да.

ты не поверишь, но у Яббла есть своя ОС, в ней есть программы, и они как ни странно «переписывались с одного языка на другой», почитай про finder, например

Finder - это, конечно, мощно. Уровня серьезного CAD, не меньше. А под «переписывались» имеется в виду «Finder was rewritten using the Cocoa API» или переписывание на Си++ 1991 года?

думать о совместимости и пр. тут не приходилось

Переезды Яббла m68k -> ppc и ppc -> x86 смотрят на тебя с непониманием.

они смотрят на тебя, переписывание KHTML к ним отношения не имеет

А, то есть переписанный KHTML мог быть несовместимым. Okay.

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

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

но

Что «но»? Было сказано, что насчет ресурсов ничего не поменялось.

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

Какой «той же»? Ядро стало использовать в 100 раз больше памяти? Компиляторы? X? xterm и mc? Emacs?

А вот fullhd видео «раньше» просто не было.

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

А топовые игры - ниша относительно небольшая, да и там уже не чистый Си++.

C++ никогда и не был «чистым».

Мне было бы интересно услышать твое определение «чистого» Си++. Сам я говорил о том, что в движках используется несколько языков.

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

И тем не менее, никакой «первой версии GCC на Pascal» не существовало.

ок, но как видишь «форки» вполне допускают смену ЯП

Из продуктов на Си++, написанных после 2000 года, имеем Монго. И игры, да.
Finder - это, конечно, мощно. Уровня серьезного CAD, не меньше.
А, то есть переписанный KHTML мог быть несовместимым. Okay.

твои аргументы слишком серьезны и достоверны, как и логические цепочки, не вижу смысла с ними спорить

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

никакой «первой версии GCC на Pascal» не существовало.

ок, но как видишь «форки» вполне допускают смену ЯП

GCC является форком Pastel? Okay.

твои аргументы слишком серьезны и достоверны

Это очищенная версия твоих аргументов.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

man кавычки, ну и не pastel напрямую, а промежуточного форка pastel, кода от pastel в результате в gcc нет, но для тебя это же не аргумент - тебе важней «кодовая база» и ее развитие

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

Это очищенная версия твоих аргументов.

а мои - твоих, итого ты получил свои «дистиллированные» аргументы

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

тебе важней «кодовая база» и ее развитие

Ее инерция.

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

Какой «той же»? Ядро стало использовать в 100 раз больше памяти? Компиляторы? X? xterm и mc? Emacs?

для задачи вывода на экран изображения. Хотя бы. Экран стал несколько больше, чем 640х480. xterm, mc, и даже emacs никогда не тормозили, да и сейчас не тормозят. Да только никому они не нужны.

Такие дела.

А вот fullhd видео «раньше» просто не было.

ага. было не full и не hd.

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

C++ никогда и не был «чистым».

Мне было бы интересно услышать твое определение «чистого» Си++. Сам я говорил о том, что в движках используется несколько языков.

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

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

Ошибаюсь насчет чего - консервативного или не-консервативного?

у тебя взаимоисключающие параграфы в одном предложении:

От человека, который не понял фразу «stop'n'copy gc», это звучит особенно веско.

xterm, mc, и даже emacs никогда не тормозили, да и сейчас не тормозят.

Ну слава ТНБ, хоть какие-то задачи не требуют в 100 раз больше.

Да только никому они не нужны.

Говори за себя.

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

как я могу дать определение того, чего (по моим же словам) никогда не было?

То есть определение дать не можешь, но знаешь, что не было. Бывает.

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

От человека, который не понял фразу «stop'n'copy gc», это звучит особенно веско.

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

Говори за себя.

за себя и говорю - юзаю VIM... Такие дела...

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

То есть определение дать не можешь, но знаешь, что не было. Бывает.

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

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