LINUX.ORG.RU
ФорумTalks

Cудьба Mono


0

5

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

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

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

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

★★★★☆

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

Нужно чтобы использовались статические типы элементов в коллекции.

а мне нужна перезагрузка operator my_type::new. И что теперь?

А в скольки местах в последнем проекте он у тебя перегружался?

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

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

можно. Не отказываюсь от этих слов.

Когда тебе предлагают реализовать stop-n-copy сборщик для крестов, начинаешь строить из себя институтку.

откуда я знал, что gc здесь значит «сборка мусора»?

На основании этого я сделал вывод что в gc ты разбираешься как свинья в алмазах.

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

Потом ты заявляешь что C# нужен только школьникам потому что школьники им интересуются (каким образом ты вывел отсюда что он непригоден для серьезных задач мне не ясно). Осиль логику для начала.

ну я воспользовался ТВОЕЙ логикой, для доказательства её негодности. Если гугл что-то там находит по сочетанию stop-n-copy gc, это говорит ровным счётом НИ О ЧЁМ. Вот только ты этого понять не можешь.

Резюмирую: твоё «доказательство» нужности и значимости алгоритма stop-n-copy имеет ровно столько же шансов на существование, как и моё «доказательство» значимости самого C#. И если ты принимаешь своё доказательство, то очевидно ты должен признать и моё. Которое «доказывает» тот факт, что C# не нужен. Ваще весь и полностью. Разве что для школьников.

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

откуда я знал, что gc здесь значит «сборка мусора»?

Ты утверждаешь что: «то бы знал, что на C++ можно реализовать _любую_ схему сборки мусора» и при этом не знаешь общеупотребительного сокращения выражения «garbage collector»? Ололо, что еще тут сказать...

Нормального описания данного алгоритма я до сих пор не наблюдаю

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

Резюмирую: твоё «доказательство» нужности и значимости алгоритма stop-n-copy имеет ровно столько же шансов на существование, как и моё «доказательство» значимости самого C#.

Какая, к черту, нужность? Я упомянул данный алгоритм для опровержения твоего утверждения «то бы знал, что на C++ можно реализовать _любую_ схему сборки мусора», потому что реализовать данный сборщик для крестов невозможно. Посмотри лекцию, может поймешь что к чему.

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

При том что в C# ее можно использовать.

теперь докажи невозможность динамической кодогенерации в C++. То, что в самом C++ её нет - я в курсе. А ты докажи, что её нельзя там реализовать.

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

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

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

ты опять передёргиваешь - компиляция у клиента всё равно есть и нужна. Для тебя. И это совсем не радует _твоих_ клиентов. Даже если у этих клиентов достаточно RAM для того, что-бы докомпилливать твой недоделанный быдлокод не каждый раз, а скажем через раз. Затраты памяти под твой кеш тоже твоих клиентов не радуют - на кой хрен им загружать твоё приложение, твоё докомпилленое приложение, и ещё и ngen, который будет следить, что-бы твоё докомпилленное приложение не удалилось из памяти, и его не нужно было-бы компиллить ещё раз?

И да, наличие очередного костыля - ngen'а твоих клиентов не радует само по себе.

Впрочем - тебе ведь пох?

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

а.. этот... Почитай Джеффа Элджера(Jeff Alger), в его книжке C++ ++ как раз рассмотрена реализация данного алгоритма. ИЧСХ, именно на C++. Номер страницы не дам, ибо книжки под рукой нету. Погугли что-ли...

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

теперь докажи невозможность динамической кодогенерации в C++. То, что в самом C++ её нет - я в курсе. А ты докажи, что её нельзя там реализовать.

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

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

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

ты опять передёргиваешь - компиляция у клиента всё равно есть и нужна. Для тебя. И это совсем не радует _твоих_ клиентов. Даже если у этих клиентов достаточно RAM для того, что-бы докомпилливать твой недоделанный быдлокод не каждый раз, а скажем через раз. Затраты памяти под твой кеш тоже твоих клиентов не радуют - на кой хрен им загружать твоё приложение, твоё докомпилленое приложение, и ещё и ngen, который будет следить, что-бы твоё докомпилленное приложение не удалилось из памяти, и его не нужно было-бы компиллить ещё раз?

Хорошая, годная шизофазия.

И да, наличие очередного костыля - ngen'а твоих клиентов не радует само по себе.

Работа ngen клиентов никак не касается.

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

мне-то зачем? Это ты самостоятельно никак нагуглить не смог :))

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

Писать как шарпе - это как пользоваться убунтой вместо конпеляния генты

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

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

Ты утверждаешь что: «то бы знал, что на C++ можно реализовать _любую_ схему сборки мусора» и при этом не знаешь общеупотребительного сокращения выражения «garbage collector»? Ололо, что еще тут сказать...

откуда я знаю, что ТЫ подразумеваешь?

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

блин, этот алгоритм СВОИМ СЛОВАМИ можно было рассказать пятью предложениями. Или нагуглить это описание, если уж совсем в лом.

Если я правильно понял, то ты имеешь ввиду это:

Алгоритм Бейкера

Один из алгоритмов уплотнения жертвует неимоверным количеством (а точнее, половиной) памяти в интересах скорости. Процесс уплотнения понемногу вплетается в обычную работу программы. Этот алгоритм называется алгоритмом Бейкера (Baker's Algorithm). Пул памяти делится на две половины, A и B. В любой момент времени одна из этих половин является активной (то есть в ней создаются новые объекты). Память выделяется снизу вверх, а в момент удаления объекта не делается никаких попыток вернуть занимаемую им память. Время от времени все активные объекты копируются из одной половины памяти в другую. В процессе копирования автоматически происходит уплотнение нижней части новой активной половины.

я угадал?

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

Какая, к черту, нужность? Я упомянул данный алгоритм для опровержения твоего утверждения «то бы знал, что на C++ можно реализовать _любую_ схему сборки мусора», потому что реализовать данный сборщик для крестов невозможно. Посмотри лекцию, может поймешь что к чему.

А вот Джефф как-то реализовал. Видимо он тоже не смотрел эту лекцию. А что поделаешь, инета с видео тогда ещё не было...

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

Писать как шарпе - это как пользоваться убунтой вместо конпеляния генты

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

...и зовут этот исскуственный интеллект HAL9000.

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

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

с чего-это она будет тормозить?

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

а почему в огороде бузина, а в Киеве - дядька?

Работа ngen клиентов никак не касается.

ага. Пусть прикупят пару гигабайт рамы для наших кешей - память сейчас недорогая.

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

А вот Джефф как-то реализовал. Видимо он тоже не смотрел эту лекцию. А что поделаешь, инета с видео тогда ещё не было...

Дай ссылку на то где он реализовал этот алгоритм для плюсового рантайма. Язык реализации не интересен ни разу.

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

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

дык и я о том. Вопрос ведь в нужности именно C#, который нормально, полноценно, и без костылей идёт только на венде. Да и то видимо не на всякой - на голой OEM хомячковой семёрке не взлетит. Я угадал?

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

C# нормально идет на линуксе, андроиде и иосе

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

Дай ссылку на то где он реализовал этот алгоритм для плюсового рантайма. Язык реализации не интересен ни разу.

насколько я знаю, это надо его книжку купить. Называется C++ ++. Под рукой её к сожалению нет, потому выходные данные не могу привести.

drBatty ★★
()

ну почему же вы хороните моно? много написанно уже + много чего ещё напишут. Говорят быстро/удобно. Пущай будет. А мигеля в топку.

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

Если в плюсы запихнуть ещё и gc, то они станут не меньшим дерьмом, а большим.

а зачем пихать именно В ПЛЮСЫ? Ты уже можешь перезагружать operator new/operator delete, и потому можешь реализовывать в плюсах _любые_ стратегии управления памяти. В том числе и сборку мусора. В том числе и в самую примитивную реализацию алгоритма Бейкера, которая похоже и юзается в этом вашем сишарпе.

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

если бы ты загуглил то, ссылку на что сейчас дал («stop-n-copy gc»), вся первая страница гугла рассказывает о Garbage Collection. По крайней мере у меня.

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

с чего-это она будет тормозить?

Ты плюсовым компилятором вообще когда-нибудь пользовался? Убогость шаблонов приводит к сильному замедлению работы компилятора, разбуханию кода и большому потреблению памяти при компиляции.

а почему в огороде бузина, а в Киеве - дядька?

Если ты не понял намека, поясняю: потому что код зависит от данных и в compile-time неизвестно о том как он будет работать.

ага. Пусть прикупят пару гигабайт рамы для наших кешей - память сейчас недорогая

Бред.

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

а зачем пихать именно В ПЛЮСЫ?

правильно, плюсы надо бросить назад где валялись

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

почитай исходный пост: Cудьба Mono (комментарий) там и намёка нет на управление памятью.

Там написано «stop'n'copy gc» - в программистской теме однозначнее выразиться просто невозможно.

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

А в скольки местах в последнем проекте он у тебя перегружался?

в одном. И что?

Сколько времени на кодирование при эта языковая фича сэкономила?

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

перезагружать operator new/operator delete

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

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

Сборщик для плюсов существует, BoehmGC. Но это консервативный сборщик, реализовать полноценный stop-n-copy gc для плюсов невозможно.

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

Пусть прикупят пару гигабайт рамы для наших кешей - память сейчас недорогая.

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

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

Да вы, батенька, никогда на C# явно не писали толком. В сравнении с c/c++/perl/python/lisp C# наиболее вменяем. Устриц ем начиная с версии 1.1, и сейчас C# не использую из-за того, что для встраиваемого онтопика это уж слишком жирно.

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

Ты плюсовым компилятором вообще когда-нибудь пользовался? Убогость шаблонов приводит к сильному замедлению работы компилятора, разбуханию кода и большому потреблению памяти при компиляции.

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

Если ты не понял намека, поясняю: потому что код зависит от данных и в compile-time неизвестно о том как он будет работать.

то, что твой код зависит от данных, и что ты не знаешь, как это будет работать - плохо. Подумай об этом.

ага. Пусть прикупят пару гигабайт рамы для наших кешей - память сейчас недорогая

Бред.

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

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

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

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

Ты уже можешь перезагружать operator new/operator delete, и потому можешь реализовывать в плюсах _любые_ стратегии управления памяти.

Вранье. Неплоскую память типо как в win16 или 32-битовые интерфейсы дающие доступ к памяти сверх 2Гб ты через operator new/delete не заюзаешь.

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

Сколько времени на кодирование при эта языковая фича сэкономила?

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

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

Если в плюсы запихнуть ещё и gc, то они станут не меньшим дерьмом, а большим.

а зачем пихать именно В ПЛЮСЫ? Ты уже можешь перезагружать operator new/operator delete, и потому можешь реализовывать в плюсах _любые_ стратегии управления памяти. В том числе и сборку мусора. В том числе и в самую примитивную реализацию алгоритма Бейкера, которая похоже и юзается в этом вашем сишарпе.

Object obj = new Object();
int x = &obj;
Object yoba = x;

Прошла сборка мусора, obj переместился и yoba невалиден. Доступно объясняю?

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

И это говорит человек, столь много для этого сделавший.

Хотя бы пару пунктов в студию. Именно сделавших лину(к/п)с мертвее всех мёртвых. mono не канает, этот проект сам по себе не так уж и плох. GNOME? За GNOME половина местных линуксоидов себе жопу на британский флаг порвёт. mc? не канает, единственный толковый файловый менеджер для консоли он как раз оживляет.

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

И после этого орёшь что «C# - говно»? Кагбэ ничего, что плюсы и шарп - это очень разные языки сходные разве что синтаксисом?

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

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

Вранье. В С++ постоянно нужно думать о стратегии владения.

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

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

я не виноват, что ты не в состоянии осилить такие в общем-то несложные и удобные вещи.

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

Но это консервативный сборщик, реализовать полноценный stop-n-copy gc для плюсов невозможно.

ПОЧЕМУ не подскажешь?

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

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

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

Фишка в том, что тебя никто не заставляет использовать те же алгоритмы в C++.

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

Вранье. Неплоскую память типо как в win16 или 32-битовые интерфейсы дающие доступ к памяти сверх 2Гб ты через operator new/delete не заюзаешь.

в моей рабочей станции всё равно 1.5Гб. А на тех серверах, где это надо, установлена 64х битная ОС. Т.ч. свои интерфейсы и прочие костыли можешь затолкать обратно. Мне они не нужны.

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

то, что твой код зависит от данных, и что ты не знаешь, как это будет работать - плохо. Подумай об этом.

Что-нибудь посложнее хелловорлдов писал?

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

ngen используется для убыстрения запуска часто запускаемых сборок, т.к. исключает стадию jit-компиляции. RAM он не жрет.

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

Общеупотребимое название таки «шарп». Называть крестами C# - вообще непонятно откуда такое можно было взять?

Ну да хрен с ним, можешь привести пару примеров из личной практики написания кода? Да, я помню, что ты программист постольку-поскольку, но раз уж вызвался назвать C# говном, то подтверди примерами.

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