LINUX.ORG.RU

Mono 1.0.6 и Mono 1.1.4


0

0

Ура, вот и вышла очередная версия Mono... Уже с пол месяца разработчики обещают выпустить полную первую версию с поддержкой Windows.Forms! Добавляются всё новые фичи из спецификации C# v2.0, закончили работу над System.XML 2.0! Разработчики считают ветку 1.1.x уже давольно стабильной и предлагают переходить на... Скоро ветка 1.x покинет сцену и мы получим долгожданную версию - 1.2

>>> Сайт проекта Mono



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

> ну и как? windows forms теперь нативно через гтк, или по прежнему через вайн?

А как ты собрался реализовывать WndProc и прочие винформзовские извраты на Gtk?

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

> питон для быстрого прототипирования и скриптов - для больших проектов непрет т.к. например ОТСУТСТВУЕТ элементарное объявлкние переменных, (smalltalk тоже динамический язык, однако там объява обязательна) что с легкостью приводит к ошибкам вида bla = 1; x = f(bta)

Ты бы сам сначала попробовал, что ли...

Traceback (most recent call last): File "test.py", line 4, in ? x = f(bta) NameError: name 'bta' is not defined

Ошибка вылезет, только если были _определены_ (т.е. например присвоены) две переменные с похожим именем. Но дык это можно и в языке с объявлениями так обжечься... а вообще объявления локальных переменных - это излишество: вне функции они не видны, так что частью ее интерфейса не являются, а внутри сразу видно, что и где - особенно если не писать функции на пять страниц. Вот private-переменные в классе можно и объявить было бы...

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

Твой бред нерелевантен теме.

А тема была такая, что попсовые языки не развиваются, а ДОГОНЯЮТ.

Те аргументы против Лиспа, которые ты приводишь, никак не касаются свойств самой технологии - они относятся только к популярности инструмента.

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

AutoLisp - это вообще не Лисп, а позорище полное. Не думай, что ты один такой - у всех, кто с ним связывался, воспоминания крайне отвратные.

Ты лучше на Common Lisp посмотри.

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

>Перечитал еще раз - точно бред! Ты там монитор слюной не забрызгал? Опять-же может не aot а AOP?


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

1) по "yield return" компилер за сценой генерит некий IEnumerator, 
   который и возвращает. 

public IEnumerator<int> GetEnumerator() {
   for (int i = 0; i < 10; ++i) {
	  yield return i;
   }
}

прикол в том, что возвращяется int, который ничуть не IEnumerator<int>.


2) 

public delegate int someDelegate(void) ;

public someDelegate someMethod(void) {
  int [] i = ...;
  return delegate {
     int res = 1;
     for ( int j = 0; .... ) 
        res *= i[j];
     return res;
  } 
}

3) Ahead-Of-Time compilation


Привет кулхацкерам от нета. Не дай бог мс-у таких...

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

>поделитесь числом ваших успешных коммерческих проектов на mono|.net
я за год сделал 2 самостоятельно, ещё 2 в команде

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

>Это не есть "развитие". Это называетя - 20 лет подряд индустрия попсы пытается догнать Lisp и ML, по ходу выдавая всякую уродливую отрыжку типа Java или C#...

Под .NET есть ещё F#. Тот же самый ML.

В чём прикол .NET по сравнению с JVM, что это клей для разных языков и решений.

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

И ваще жизнь гавно и мне бабы не дают

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

1) такое не прокатит.

2)pycheck ми не пробовали?

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

>> ну и как? windows forms теперь нативно через гтк, или по прежнему через вайн?

>А как ты собрался реализовывать WndProc и прочие винформзовские извраты на Gtk?

они написали свой driver

laad
()

хуйня одним словом

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

> (Кода (будеш (писать (на (LISP энерпризесофт) не) забудь) закрыть) все скобки)

Что не помешало написать и сдать на Lisp'е Yahoo Stores.

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

По поводу устаревания технологий MS орут те, кто судя по всему вообще к этим технологиям не прикасался, а так, почитал статей в инете.

Какие технологии прекратили развиваться? COM? VB6? Под VB6 совсем недавно вышел сервиспак, VB6 используется в последнем офисе, по прежнему многие фирмы предлагают новые версии компонентов.

COM прекрасно работает в Windows - программа, использующая COM написанная для Win3.1 по прежнему работает в Longhorn. В .Net очень много сделано для обеспечения совместимости с COM. Так что в случае перехода на .Net много переделывать не придется.

Да VB.Net не совместим с VB6 на уровне исходного кода, так и VB6 не совместим с QuickBasic.

А с поддержкой COM в VisualStudio.Net дела обстоят тоже не плохо - появилась новая версия ATL и поддержка IDL-атрибутов прямо в CPP коде - в VC6 такое и не снилось.

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

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

1) по "yield return" компилер за сценой генерит некий IEnumerator, который и возвращает.

public IEnumerator<int> GetEnumerator() { for (int i = 0; i < 10; ++i) { yield return i; } }

Во-первых откуда ты знаешь что я знаю а что нет?

>прикол в том, что возвращяется int, который ничуть не IEnumerator<int>.

Все логично - не вижу ничего плохого.

>Ahead-Of-Time compilation

:) Если сравнивать с С++ то скорость на высоте.

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

> Что не помешало написать и сдать на Lisp'е Yahoo Stores.

Раз в год и палка стреляет

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

>Во-первых откуда ты знаешь что я знаю а что нет?

А вот отсюда! 

<quote>
Перечитал еще раз - точно бред! Ты там монитор слюной не забрызгал? Опять-же может не aot а AOP?
</quote>

Если после 2 прочтений человек не въезжает в тему - значит он не 
силен в предмете. Я вижу после разжовывания прояснилось. Чтож ито 
благо.

>Все логично - не вижу ничего плохого.

Урод гляда в зеркало, тоже невидит ничего плохого. 
(ничего личного)

В нормальных язЫках это называется continuation и записывается 
( на псевдокоде )

int GetEnumerator() { 
  for (int i = 0; i < 10; ++i) { 
     yield i; 
  } 
}

а это MS continuation как и MS TCP/IP и другие MS 'изобретения' и 
открытия.

>Если сравнивать с С++ то скорость на высоте.

1) Я отвечал на вашу сентенцию - 
   <quote> Опять-же может не aot а AOP? </quote>
   а вы? Причем тут С++#?
2) C MS VC? Так они свое угребище C++# кстати позиционируют как 
   решение, для разработчиков, которых не устраивает роизводительность
   кода, сгенеренная в частности С#. Сходите на msdn и почитайте, что 
   они пишут о С++#.

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

>Ошибка вылезет, только если были _определены_ (т.е. например присвоены)
 две переменные с похожим именем.

Согласен - пример несколько неудачен.

#initialization

blah, blah1 = a, b
...
...
blahh = blah1.someShit() # apparently must 'be blah = ...'
...
anotherShit(blah) # oops!
...


>Но дык это можно и в языке с объявлениями так обжечься...

нет. Потому что подобные ошибки это 100% typo. Трудно 
сделать так, что опечатка будет совпадать с именем обьявленной 
переменной.


Кстати pychecker тоже мало пригоден для более или менее больших 
скриптов - ибо он делает import - т.е. запускает скрипт, а это часто
неприемлимо.



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

>int GetEnumerator() { for (int i = 0; i < 10; ++i) { yield i; } }

Повторяю, в чем проблема? Какая разница!? Чем тебя конкретно не устраивает C# реализация?

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

Не надо повторять за маркетойдами. Они приложения не пишут... Возможность соединять разные языки в одном проекте - стандартная фича _всех_ современных языков.

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

Преречисли хотя бы нексолько?

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

> Согласен - пример несколько неудачен.

Даже и в этом втором примере тоже не все так просто. Повторно присваивать значение переменной (не менять, а именно присваивать) - это встречается нечасто, и, в общем случае, есть моветон. Если правильно локализовывать переменные и давать им осмысленные имена, таких проблем не будет.

> нет. Потому что подобные ошибки это 100% typo. Трудно сделать так, что опечатка будет совпадать с именем обьявленной переменной.

Нетрудно. Достаточно объявлять переменные с именами типа a1, a2, a3, ..., и грабли не заставят себя ждать =) Причем я такие чудеса лично видел в продакшен коде...

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

> В нормальных язЫках это называется continuation и записывается

В нормальных языках это называется "итератор" и скорее записывается так:

def each 10.times {|i| yield i } end

;)

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

>Интересно Infragistic соберется на них? Мот кто пробовал подобное сделать? Или рано еше?

А у вас есть исходники Infragistics? Не поделитесь? :) Насколько я знаю Infragistics - Win only из-за кучи P'Invoke'ов и другого платформозависимого кода.

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

Нет - но есть возможноть получить их - (и не поделюсь потому как нельзя :) - насчет PInvoke я не уверен (так как внутрь не заглядывал) НО! Более чем уверен что там насчет PInvoke все не так плохо - потому как сам вижу что ничего того что бы потребовало это нет.

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