LINUX.ORG.RU

Microsoft снимает патентные ограничения для C# и CLI. Mono разделяется на две части

 , ,


0

0

Компания Microsoft объявила, что стандарты C# (ECMA 334) и инфраструктуры CLI (ECMA 335) теперь попадают под действие документа Community Promise (Обещание Сообществу), официально заявляющего отсутствие патентных или иных претензий на стандартизированные таким образом разработки. Данный шаг снимает многочисленные противоречия, касающиеся платформы Mono, которая фактически является opensource реализацией этих стандартов, и дает ей иммунитет на случай, если патентный вопрос будет поднят вновь.

Данное заявление опубликовал Старший менеджер по связям с общественностью Департамента Стратегий платформ Peter Galli как ответ на недавние запросы Мигеля де Иказы относительно лицензирования стандартов ECMA 334 и 335. В нем, в частности, говорится, что, давая обещание сообществу, Microsoft добровольно отказывается от патентного преследования юридических и частных лиц производящих, использующих, распространяющих, рекламирующих, продающих любые оговоренные в патентах реализации, независимо от модели их разработки и распостранения, включая открытые модели разработки, такие как LGPL и GPL.

При этом открытым остается вопрос реализации технологий, не упомянутых в Community Promise. В связи с этим вице-президент Novell Мигель де Икаса объявил, что с этого момента проект Mono будет разбит на две ветки:

  • ветка, занимающаяся реализацией ECMA стандартов и попадающая под действие Обещания - свободная от претензий Microsoft,
  • ветка, реализующая свободные версии патентованных технологий ASP.NET, ADO.NET, Winforms и других.

via opennet.ru

>>> Подробности

★★★★★

Проверено: Shaman007 ()

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

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

>По слухам PyQt работает.

но Вы конечно не в курсе что для того чтобы он работал должны совпасть версии Python, Qt, PyQt, нет?

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

>Какие библиотеки я могу смело удалить?

libastral, и не позориться

а вообще любую можешь удалить... :)

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

>Да и какие библиотеки мне потребуются для запуска простого приложения, например, с WPF на .NET 1?

а с чего Вы взяли что .net 1.1 поддерживает WPF?

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

>но Вы конечно не в курсе что для того чтобы он работал должны совпасть версии Python, Qt, PyQt, нет?

Вряд ли Вам удастся плодотворно пописать на C# 3.0 в окружении .NET 1 или вообще вне .NET(Mono). Ога?...

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

> меня сложилось впечатление, что Вы пытаетесь применять C++ (STL) way к C#, что совсем не правильно

Да, и еще. Допустим, да, C++ way не есть хорошо. Как мне написать на шарпе генерик для комплексных чисел, чтобы можно было использовать complex<float>, complex<double>, complex<мой-рукописный-тип> ? Пожалуйста, без бубнов с интерфейсами и записей типа A = IComplex.Add(B, C). По-моему, безотносительно к way, вариант из С++ удобнее и лучше.

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

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

>именно так и сделали в Microsoft :)

>а с чего Вы взяли что .net 1.1 поддерживает WPF?

А что тогда мне должно мешать поставить его отдельно?

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

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

да-да.... все тянем одну лямку :)

>Во-вторых, C++ way, если и мешает, то только в части случаев. Я назвал только те проблемы, которые смог вспонмить за 5 минут, а за более чем год работы их было куда больше.

ну я Вам верю... но у меня кагбэ совсем другой опыт :)

таки почаще обращайтесь к idesign.net при разработке :)

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

не верю.... имея опыт переписывания проектов с C# на .net могу Вам сразу сказать - это не так, причём далеко... все конструкторы копий, операторы присваивания + огромная куча другой фигни обязательно всплывут... если только модуль небольшой, из 1-2 классов - то да...

но вообще, согласно экспертным оценкам, скорость выхода продукта при написании на C# выше чем на C++

>Общий итог -- на одних и тех же данных 40 минут вместо 10 часов работы и в 2-3 раза меньший расход памяти.

а никто и не говорил что C# надо использовать везде :)

это как раз самый разумный способ.... UI + несложную логику на шарпе, критичное + системное - на крестах (С++)

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

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

>И это только начало!

Вряд ли. Тут уж всех изаипала эта тема, я так щитаю.

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

>Интересно, какую юридическую силу имеет это Community Promise?

Нетрудно догадаться, что ну-ле-ву-ю.

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

Тот факт, что под Обещание Сообществу не подпадают винформс и разные АДО.НЕТ, скорее говорит о том что в будущем Майкрософт может планировать запретить их разработчикам реализовывать эту функциональность. Кажется Мигель наконец понял это. Надеюсь в Убунтах и прочем будут стоять Моны без винформс и адо.

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

> не верю.... имея опыт переписывания проектов с C# на .net

Это как? %)

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

Ну, все же портирование велось не копипастом. ;) Если сказать точнее -- структура проектов максимально схожа за исключением разницы в языках. Соостветственно, конструкторы копий и т.п. аккуратно прописывались. Ну, если есть опыт портирования, не вам рассказывать. Если Вы меня так поняли, что все было левой ногой + CtrlC + CtrlV, то это не так. Я имел в виду, что в логику и алгоритмы работы модуля вносились минимальные изменения.

> а никто и не говорил что C# надо использовать везде :)

Вот! Именно! И я все время пытаюсь это сказать -- а мне не верят... :)

> и да, маленький дружеский совет...

Эх... Я в курсе... Проект тяжелый, зараза. То и дело у кого-то меморь сыпется... Отсюда и стенания мои про безжалостно захваченную под неиспользуемые массивы память... :)

rmammoth
()

Прямо так и вижу картину - Столлман, как ванга, указывает пальцем на моно

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

>> а никто и не говорил что C# надо использовать везде :)

>Вот! Именно! И я все время пытаюсь это сказать -- а мне не верят... :)


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

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

> Надеюсь в Убунтах и прочем будут стоять Моны без винформс и адо.

Хм. Интересно как девки пляшут... И как тогда написать мало-мальски кроссплатформенное гуёвое приложение на таком добре? Ташшыть под вин моно + связку с gtk? Цеплять gtk к дотнет? Мамочки! Можно, я лучше в печочке, на Qt посижу ? :)

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

> Хм. Интересно как девки пляшут...

девки не пляшут , а работают : в Debian удалили уже винформс & etc.

>Ташшыть под вин моно + связку с gtk?


именно

>Мамочки! Можно, я лучше в печочке, на Qt посижу ? :)


без вопросов , хоть на винде

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

>Как мне написать на шарпе генерик для комплексных чисел, чтобы можно было использовать complex<float>, complex<double>, complex<мой-рукописный-тип> ?

нескромный вопрос: а задача то какая, а то опять предлагается только решение?

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

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

>> не верю.... имея опыт переписывания проектов с C# на .net

>Это как? %)

опечатался, это всё проклятый мелкософт :) на C++ конечно же :)

>> а никто и не говорил что C# надо использовать везде :)

>Вот! Именно! И я все время пытаюсь это сказать -- а мне не верят... :)

вменяемые люди вроде бы не возражают... а на остальных и время тратить не надо :)

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

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

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

> За что? Я больше не буду! Я хороший! :)

Тогда ладно :))) У Kde4 тоже есть биндинг к mono (насколько полный и качественный - тут не берусь судить).

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

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

Решения-то и нет. Есть проблема.

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

Ок. Задача: любым способом написать на шарпе вменяемое представление комплексных чисел, для которых можно явно указывать, какой именно тип с плавающей точкой (float, double, самописный-с-произвольной-точностью) используется для внутреннего представления re и im. Понятно, что нужны арифметические операции над ними по правилам алгебры комплексных чисел. Ограничение: должна быть предложена ОДНА реализация, не два разных класса.

Пример использования аналога на С++ (прошу прощения у знатоков ++)

complex<float> a(1.0f,0.2f), b(5.0f,6.0f); complex<float> c = a * b;

Соответственно, заменив float на double, получаем комп. числа с двойной точностью.

Итак?

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

>Вряд ли Вам удастся плодотворно пописать на C# 3.0 в окружении .NET 1 или вообще вне .NET(Mono).

Капитан, Вы бьёте все рекорды... спасибо что рассказали :)

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

>Ок. Задача: любым способом написать на шарпе вменяемое представление комплексных чисел, для которых можно явно указывать, какой именно тип с плавающей точкой (float, double, самописный-с-произвольной-точностью) используется для внутреннего представления re и im.

вот так понятнее, спасибо... а в чём загвоздка-то, что не получается?

здесь вроде всё прозрачно описано http://msdn.microsoft.com/en-us/library/ms379564%28VS.80%29.aspx

shty ★★★★★
()

Мигель уже вторую неделю не может избавиться от икоты. РМС постарался.

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

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

> так есть вроде команда для GC чтобы он почистился, не помню правда сейчас какая точно

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

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

>> так есть вроде команда для GC чтобы он почистился, не помню правда сейчас какая точно

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

ну, тогда в unmanadged переносите все тяжёлые вычисления... в конце концов таки наступают порой ограничения для конкретного средства программирования...

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

> и, да, возможно Вам есть смысл почитать вот эти материалы, насчёт вычислений и генериков:

Не стоит думать о людях нехорошо. :) Смотрим сюда

using System;

/// <summary> /// Реализация комплексного числа одинарной точности /// </summary> public struct Complex {

// Вещественная и мнимая части комплексного числа private float real, imaginary;

Тип компонент задан жестко. Для смены типа класс нужно ПЕРЕПИСАТЬ. С нуля. Для каждого из типов с плавающей точкой. Если сделать так:

public struct<T> Complex {

// Вещественная и мнимая части комплексного числа private T real, imaginary;

то вычиления провести не удастся:

... T value = real + imagery; // Это ошибка!

Вот об этом и речь -- нельзя применить операторы к параметризующему типу генерика. Даже если реально подставляемый тип арифметический или эти операторы для него перекрыты. Отсюда -- для каждого базового типа с 0 пишем свой complex и плодим толпы ComlexF, ComplexD, ComplexXXX ...

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

>Вряд ли Вам удастся плодотворно пописать на C# 3.0 в окружении .NET 1 или вообще вне .NET(Mono). >Капитан, Вы бьёте все рекорды... спасибо что рассказали :)

Вы ушли от темы.

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

>ну, тогда в unmanadged переносите все тяжёлые вычисления... в конце концов таки наступают порой ограничения для конкретного средства программирования...

Вас послушать, так C# нужен только для того, чтобы заставить форму реагировать. По-моему, МС думает иначе, ибо пропихивает свой язычок как "инструмент" для домохозяек, учёных, Ъ-программистов.

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

> в конце концов таки наступают порой ограничения для конкретного средства программирования

Увы, и этот пут закрыт... По политическим соображениям руководства. Ведь дотнет -- наиболее передовая и прогрессивная технология в программировании! Кому захочется чего-нибудь лучшего, когда рядом есть... <см. прочую рекламную муть от МС>

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

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

На мой взгляд, почти таки да :) Вопрос только в том -- зачем? Есть более вменяемые тулзы...

> По-моему, МС думает иначе, ибо пропихивает свой язычок как "инструмент" для домохозяек, учёных, Ъ-программистов.

Что Вас удивляет? Согласитесь, было бы странно, если б МС вдруг пропихивало, ну скажем, MacOS. Или Solaris. Беда не столько в МС, сколько в Мигелях...

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

>>Интересно, какую юридическую силу имеет это Community Promise?

>Что-то мне подсказывает, что никакой.

Читаем

Q: Is this Community Promise legally binding on Microsoft and will it be available in the future to me and to others?

A: Yes, the CP is legally binding upon Microsoft. The CP is a unilateral promise from Microsoft and in these circumstances unilateral promises may be enforced against the party making such a promise. Because the CP states that the promise is irrevocable, it may not be withdrawn by Microsoft. The CP is, and will be, available to everyone now and in the future for the specifications to which it applies. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.

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

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

>Хм. Интересно как девки пляшут... И как тогда написать мало-мальски кроссплатформенное гуёвое приложение на таком добре?

гуёвое - никак.
На серверах винда в роли догоняющего - определённое упрощение портирования МС выгодно,
на десктопе винда в роли убегающего - соответственно, хрен вам, а не кроссплатформенность.

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

>>Интересно, какую юридическую силу имеет это Community Promise?

>Что-то мне подсказывает, что никакой. Читаем

>Q: Is this Community Promise legally binding on Microsoft and will it be available in the future to me and to others?

>A: Yes, the CP is legally binding upon Microsoft. The CP is a unilateral promise from Microsoft and in these circumstances unilateral promises may be enforced against the party making such a promise. Because the CP states that the promise is irrevocable, it may not be withdrawn by Microsoft. The CP is, and will be, available to everyone now and in the future for the specifications to which it applies. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.

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

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

-- Ну, вот вы и програли...

Все честно! :)

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

> гуёвое - никак. На серверах винда в роли догоняющего - определённое упрощение портирования МС выгодно, на десктопе винда в роли убегающего - соответственно, хрен вам, а не кроссплатформенность.

Встаёт закономерный вопрос: а на какой э... предмет оно тогда надо? Мне одному кажется, что происходит идиотизм: пропагандируется кроссплатформенная технология МС, кроссплатформенное применение которой МС изо всех сил старается сделать невозможным?

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

>Мне одному кажется, что происходит идиотизм: пропагандируется кроссплатформенная технология МС, кроссплатформенное применение которой МС изо всех сил старается сделать невозможным?

Нет, не только Вам.

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

>Вот об этом и речь -- нельзя применить операторы к параметризующему типу генерика.

это - да (косяк негрософтовский :)), но имхо по ссылке описан вполне приличный workaround:

http://www.codeproject.com/KB/cs/genericnumerics.aspx

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

хотя, как выше было уже сказано, проще накидать dll на C++ и подтыкнуть её :)

shty ★★★★★
()

> "официально заявляющего отсутствие патентных или иных претензий на стандартизированные таким образом разработки"

Это уже совсем совсем совсем официально? Официальнее некуда? Ну и хорошо тогда. winforms - ну и фиг с ними. Есть много всяких вкусностей вокруг этого mono и есть чем заменить winforms...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от rmammoth

> Мне одному кажется, что происходит идиотизм: пропагандируется кроссплатформенная технология МС,

Здесь происходит пропаганда технологии Mono, к которой MS имеет не большее отношение, чем AT&T - к Linux.

> кроссплатформенное применение которой МС изо всех сил старается сделать невозможным?

Пока что у МС это не получается - Mono вполне кроссплатформенная технология.

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

>> в конце концов таки наступают порой ограничения для конкретного средства программирования

>Увы, и этот пут закрыт... По политическим соображениям руководства. Ведь дотнет -- наиболее передовая и прогрессивная технология в программировании! Кому захочется чего-нибудь лучшего, когда рядом есть... <см. прочую рекламную муть от МС>

ну, если начальство не разрешает использовать легальные технологии (unmanaged dll) для того чтобы писать нормальный быстро работающий код (тратя при этом в 10 раз меньше времени) то, может, пора его менять? :)

кстати, я проанализированл и понял почему я с такими проблемами не сталкивался - весь low-level (работу с устройствами), вычисления и прочая всегда выносил в C++ :)

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

>Вы ушли от темы.

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

>>ну, тогда в unmanadged переносите все тяжёлые вычисления... в конце концов таки наступают порой ограничения для конкретного средства программирования...

>Вас послушать, так C# нужен только для того, чтобы заставить форму реагировать. По-моему, МС думает иначе, ибо пропихивает свой язычок как "инструмент" для домохозяек, учёных, Ъ-программистов.

ещё раз: Вы не в теме, бред несёте :)

идите поучитесь уже и не позорьтесь тут (и нигде больше не позорьтесь тоже)

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

> http://www.codeproject.com/KB/cs/genericnumerics.aspx с помощью него можно вполне аккуратно и красиво сделать данное решение... да, оно будет аццкое с точки зрения содержимого, но интерфейс имхо будет иметь вполне приличный... хотя, как выше было уже сказано, проще накидать dll на C++ и подтыкнуть её :)

Насчет dll на C++ никоим образом не спорю, а вот по поводу красоты, удобства и скорости примера по ссылке я как-то лучше воздержусь, дабы никого не обидеть. Учитывая, что в коде на C++ аналогичные вещи дербанятся на этапе компиляции и сделаны как inlines... М-дя. А ведь помимо комплексных чисел, которые я для примера выбрал, есть еще вектора (заметим в скобках, разной размерности. Ах да, нетиповые параметры генериков, типа размерности вектора, тоже ж низзя!), матрицы (ой, и они разной размерности бывают!), и т.д., и т.п. О-йе-ей, кто-то что-то говорил мне о продуктивности разработки на шарпе? :) "Что это у вас, чего ни хватишься -- ничего нет?" (с) М.Булгаков

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

> кстати, я проанализированл и понял почему я с такими проблемами не сталкивался - весь low-level (работу с устройствами), вычисления и прочая всегда выносил в C++ :)

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

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

Э-э-э-э... halt!
Что-то я прочитал по диагонали тред(или нить... кому как угодно) и так и не понял зачем нам этот диез нужен...
Кто-то может примитивно на пальцах (или соответствующая ссылка) объяснить что такого нового этот диез предлагает?
Или это очередное "то же самое, только с другим синтаксисом"?

P.S. Да, я сишник....
P.P.S. Да, я вырос на ассемблере
P.P.P.S. Да, я уважаю современные эффективные(!!!) технологии....

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

> Здесь происходит пропаганда технологии Mono, к которой MS имеет не большее отношение, чем AT&T - к Linux

Увы, имеет. Как минимум, стандарты разработаны МС. Я не юрист, и не могу судить, к чему обязывает МС это "публичное обещание", но дело даже не в том. Довольно посредственное и изрядно недоделанное творение под давлением МС проталкивается куда надо и не надо. И таки большей частью куда не надо. Не будь МС, придумай Мигель это моно (уже стерео :) ) сам в порыве вдохновения -- было бы оно кому нужно? Я повторяюсь, увы. Итак?

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

> Кто-то может примитивно на пальцах (или соответствующая ссылка) объяснить что такого нового этот диез предлагает?

Диез - ничего. Mono предлагает: 1) переносимый формат бинаря, общий для разных языков (== общие библиотеки); 2) общий для разных языков бэкенд компилятора, занимающийся низкоуровневыми оптимизациями; 3) общий рантайм.

P.S. в общем, это почти ОСПО ;)

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

P.S. Да, я сишник....
P.P.S. Да, я вырос на ассемблере
P.P.P.S. Да, я уважаю современные эффективные(!!!) технологии....

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

Диагональщикам еще раз - сколько стоит переучивание виндовых программистов и какова вероятность миграции с винды C# программеров и проектов ?

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