LINUX.ORG.RU

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

2anonymous (*) (03.02.2004 19:26:40)

http://www.forth.org.ru/

> GC ?

ты это имел ввиду ?: http://www.complang.tuwien.ac.at/forth/foreign.ds

> Pattern matching?

Просто, кладезь (Михаилу Гасаненко respect):

http://www.forth.org.ru/~mlg/BacFORTH-88/BF-diplom.html

http://www.forth.org.ru/~mlg/MoreBTng/ctlflow.htm

http://www.forth.org.ru/~mlg/ef93/Self-Modifying-1993-ru.html

http://www.forth.org.ru/~mlg/BacFORTH-90/pgasmil1-96.html

в каких контекстах? :))) Ты создаёшь, по сути, специализированный язык, с (любой) нужной тебе семантикой.

зайди сюда: http://www.complang.tuwien.ac.at/forth/

почитай общие фразы: http://www.complang.tuwien.ac.at/forth/faq/

и смотри (качай) это: http://www.complang.tuwien.ac.at/forth/gforth/

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

> ты это имел ввиду ?: http://www.complang.tuwien.ac.at/forth/foreign.ds

НЕТ. Это ffi. Что за детский сад?

> Pattern matching?

> http://www.forth.org.ru/~mlg/BacFORTH-88/BF-diplom.html

> http://www.forth.org.ru/~mlg/MoreBTng/ctlflow.htm

> http://www.forth.org.ru/~mlg/ef93/Self-Modifying-1993-ru.html

> http://www.forth.org.ru/~mlg/BacFORTH-90/pgasmil1-96.html

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

> в каких контекстах? :))) Ты создаёшь, по сути, специализированный язык, с (любой) нужной тебе семантикой.

Создай Standart ML на forth. Или знаешь готовые реализации? Очень интересно посмотреть.

> зайди сюда: http://www.complang.tuwien.ac.at/forth/

> почитай общие фразы: http://www.complang.tuwien.ac.at/forth/faq/

Спасибо, пситаю.

> и смотри (качай) это: http://www.complang.tuwien.ac.at/forth/gforth/

Уже есть. И давно.

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

Я тут читал о планах развития виндов - утверждается, что в длиннороге не будет .NET, а будет некая хрень, на .NET похожая.

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

Ептыть - это я и имел ввиду в предыдущем сообщении.

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

2 jackill

ты ничего не понял о планах развития виндов. многое из того, что будет в длиннороге, будет сделано на .NET. Это будут разные технологии, типа Avalon, Indigo, ... но они будут на .NET. А Win32 перейдет в статус Legacy, как сейчас Win16.

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

.NET - это мультиязыковая платформа, придурок. Единственная в своём роде, придурок. Тебе лечиться надо, придурок.

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

> Похоже с жабой повторится история OS/2. Выигрывает та платформа, под которую больше софта, пусть даже она хуже - этот закон все мы видели в действии, и не раз.

Все так, только в роли OS/2 - дотнет котрый только голимая MS и любит. Пусть .NET как карлик на плечах гиганта повыше да получше выглядит, будущее за пределами win32 у него в тумане ибо Java - реальный монстр и к тому же постоянно развивается.

пусть дотнет и красивше в чем то, imho за пределами винды продвигать его недальновидно и некрасиво, а делать ставку на сырые проявления дотнета вроде Моно похоже на пионерство.. Если M$ так хочет успеха своему исчадию - пусть выпускает халявные девкиты, либсы, компилеры и студии под все платформы, тогда еще посмотрим, стоит ли эта хренотень внимания, а бежать впереди Билли с голым задом похоже на половое извращение

NiKel
()

История так ничему и не научила.

Все технологии MS постоянно через 2-3 года выливались в большой геморой.

А здесь западня (точнее засада) и только дурак ее не видит. (первое что приходит на ум - аренда софта).

Семен.

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

2Семен:

>История так ничему и не научила

История научила тому, что на всякое "новое" от MS всегда найдётся толпа лохов-горлопанов, на которых MS и имеет свой бизнес... главное почаще объявлять о "суперновых MS-технологиях":)

MFC, ActiveX, COM, .NET... Что следущее?:) Готов спорить, что через 3 года будет опять что-то "революционное" и всех попросят "заплатить и обновится":)

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

> MFC, ActiveX, COM, .NET...

:) Очень забавный ряд.

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

>Готов спорить, что через 3 года будет опять что-то "революционное" и всех попросят "заплатить и обновится":)

Зачем 3-года. Скоро выходит Office.NET.

И ТОГДА ЗАСТАВЯТ.

Семен.

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

> ну и че, классно жабу опустил?

Не задавался такой целью. А сравнение было навеяно аргументами сторонников жабы (Всеми двумями - "это есть везде" и "у-у-у, знаешь сколько всякого золота под это говно написано"). DOS похожими словами защищали.

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

Двоичные коды программ - это революция софтостроения,
в виде динамических библиотек и объектных файлов
, они позволяют создавать приложения с использованием множества Языков, например,
C, C++, Pascal, Assembler и.т.д.
для этого нужны всего-лишь соотвектствующие компиляторы

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

> (Всеми двумями - "это есть везде" и "у-у-у, знаешь сколько всякого золота под это говно написано").

И как ты вспомнил это слово ? :)))

А что, его где-то нет ?

> DOS похожими словами защищали.

...но появилась Windows и началось...

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

2anonymous (*) (03.02.2004 20:35:07)

>>> GC?

>> ты это имел ввиду ?: http://www.complang.tuwien.ac.at/forth/foreign.ds

> НЕТ. Это ffi. Что за детский сад?

С первой попытки не угадал... Две буквы и знак вопроса... Что бы это значило? >:-| Хм... Это не GNU C.... так, так... Может это garbage collection ?

Но я же давал ему ссылку, где http://www.complang.tuwien.ac.at/forth/garbage-collection.zip аж 19-May-1999 14:40...

Что же он хотел этим сказать ??? "детский сад" - это про яблоки ??? >:-|

***

>> и смотри (качай) это: http://www.complang.tuwien.ac.at/forth/gforth/

> Уже есть. И давно.

Видимо, "несварение" у тебя... и со зрением тоже как-то не очень...

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

> Угу, в функции есть несколько повторов операций, специфичных только
> для этой функции (например, очистка памяти при выходе, и несколько
> точек выхода)

В данном случае лучше использовать goto и одну точку выхода.

P.S. Я не против препроцессора.

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

>Ну да - слабенький у Си препроцесор. Но что это повод отказываться от препроцессора вообще и сваливать все, что только можно в рантайм?

Мне всегда казалось, что между препроцессором и "рантаймом" должно существовать еще что-то... Видимо, казалось :)

kaaos
()

Почитал флейм, порадовался, что моя пропаганда mono не прошла даром. :)))))))

Hard Rock Cafe

http://www.hardrock.com/search/default.asp

действительно рУлит!

У меня mono 0.30 и xsp 0.9 под Фёдором и Слакой. Впечатляет!

С# developer

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

Можно, ./HelloWorld, можно.:)

C# developer

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

>Считаю, что .NET чуждая линуксу и идеологии open-source технология

Заметим, что Java - тоже "чуждая идеологии open-source технология" - ибо "байт-код" нужен в основном для того, чтобы совместить требования "секретности" исходников и переносимости. Причем первично первое.

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

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

> и куда оно такое рулит...

В правильном направление, товарищи, рулит. В сторону Hard Rock Cafe, сайт которого можно посмотреть из Mozillы в соcтаве ASP9, RH9 или отца Фёдора.

ЗЫ. Bluezman что ли веселится: "Live like a rock star at TechEd 2004" http://www.microsoft.com/seminar/teched2004/default.mspx Куда, кстати, он исчез с форума? :)

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

>>Enum'ы - первоначально не делали потому, что противоречат
>>объектно-ориентированной идеологии. В 1.5 добавили (IMHO по велению
>>моды);

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

Насколько я помню, то .NET хреново работает с enum. Позволяет создавать значение которое не перечисленно в списке:
[More reasons never to use C# enums]
http://cgi.skizz.plus.com/blog/dev/archives/000167.html

В общем похоже на хороший баг в безопасности.

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

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

А как быть с аппаратными реализациями Java?

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

Ну а теперь пример для mono (именно для MONO). Просто интересно, сами ли вы разобрались или просто рассылаете чужые посты.

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

Я приведу пример для mono:

{ ONE = 1, TWO = 2 }

class Test { public static void Main() { System.Console.WriteLine("Test"); int illegalValue = 666; AnEnum shouldBeIllegal = (AnEnum)illegalValue; System.Console.WriteLine(string.Format("Value is : {0}", shouldBeIllegal)); System.Console.WriteLine(string.Format("Type is : {0}", shouldBeIllegal.GetType())); } }

Будет там 666, поскольку 21-ой главе 2-ой спецификации это никак не противоречит. So what?

C# developer

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

>Насколько я помню, то .NET хреново работает с enum. Позволяет >создавать значение которое не перечисленно в списке:
>[More reasons never to use C# enums]
>http://cgi.skizz.plus.com/blog/dev/archives/000167.html

В том же посте есть ответ от Eric Gunnerson. Для справки, Eric Gunnerson is a Program Manager on the C# team. He is also a member of the C# Language Design Team.

Вот, что он пишет по поводу enum:

There are two reasons we do this:

The first is that, as another poster noted, enums function both as enums and bit sets. One could conceive of a language where they were two discrete items, though it would be less C-like (one of our targets), and would require a bit more syntax. And also, runtime support, and support in all the other .NET languages, so we elected not to go there.

We did elect to change the C behavior of enums being the same as ints - they are separate types, and while you can convert between an int and an enum with an explicit cast, the use of an explicit cast is generally a "I know what I'm doing here" indication.

The second issue is around the values you can put into an enum. We don't validate that an enum value is equal to one of the predefined values, both because they are used for bit-sets, and because it would impose a performance penalty. You can easily add the check yourself, but it is somewhat unfortunate that you have to do so.

Every language design has its tradeoffs.
Posted by: Eric Gunnerson on January 23, 2004 12:28 AM

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

Если ты умееш пользоваться типом Enum, безопасность не пострадает.
http://blogs.msdn.com/brada/archive/2003/11/29/50903.aspx

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

А что с ними? Новая аппаратура - новый компилятор(или, скорее, кодогенератор) - и заливай, что нужно. К тому же я не вижу широкого распространения аппаратных реализаций java. Не туда смотрю?

AFAIR сан рекламировал picojava, или как он там, некоторое время. AFAIR это был простой стековый процессор, одинаково применимый для других языков(был бы компилятор), коды операций которого совпадали с java байт-кодом - что несущественно. И это все как-то тихо закончилось.

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

enum AnEnum
{
    ONE = 1,
    TWO = 2
}

class Test
{
	public static void Main()
	{
		System.Console.WriteLine("Test");
		int illegalValue = 666;
		AnEnum shouldBeIllegal = (AnEnum)illegalValue;
		System.Console.WriteLine(string.Format("Value is : {0}", shouldBeIllegal));
		System.Console.WriteLine(string.Format("Type is : {0}", shouldBeIllegal.GetType()));
	}
}

$ msc my.cs
$ cp my.exe my :)
$ mono my
Test
Value is : 666
Type is : AnEnum

Sorry

C# developer

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

Ну невнимательно 21 главу читал господин, запостивший мессагу. Нет противоречий - и точка. Чего удивляться?

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

> Eric Gunnerson

Eric Gunnerson - это тот самый автор известной книги? Читайте книгу - русский перевод есть!

В форуме эрик вежливо (корректно, а не так, как принято на ЛОРе :-() объяснил "товарисчу", как тот был неправ.

С# developer

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

Вот серебряная пуля:

...
System.Console.WriteLine(string.Format("Is defined: {0}", System.Enum.IsDefined(typeof(AnEnum), shouldBeIllegal)));

my.exe

Test
Value is : 666
Type is : AnEnum
Is defined: False

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

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


>Если ты умееш пользоваться типом Enum, безопасность не пострадает.
>http://blogs.msdn.com/brada/archive/2003/11/29/50903.aspx
возможно если себя ограничивать, то можно с некоторой вероятностью считать безопасными, но если это групповой проект и имеет открытую часть (public API), то становится не по себе. Примеров когда это встанет боком море. Думаю сам догадаешься.

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

Конклюжн:

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

И хватит уже про Enum!!! Нашли к чему прицепитьса.

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

> Заметим, что Java - тоже "чуждая идеологии open-source технология" -
> ибо "байт-код" нужен в основном для того, чтобы совместить требования
> "секретности" исходников и переносимости. Причем первично первое.

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

Причина было вовсе не в этом, а в том что первоначально планировалось создавать процессоры для выполнения байт-кода. А потом это все вылилось в девиз "Написано однажды – работает везде" (имелось в виду написал, скомпилировал, засунул в jar и запускай где хочешь).

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

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

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

Ну я не знаю, как тебе еще объяснить. Вот давай сравним с Java (ехидно ухмыляясь :-)):
В джаве нет энумов, поэтому используются константы. Вот например:

class VerySecureApplication {
    public static final int FIRST = 1;
    public static final int SECOND = 1;

    private int _verySecureValue;

    public void setVerySecureValue(int verySecureValue) {
        _verySecureValue = verySecureValue;
    }

    ...
}

Какое значение можно передать методу setSecureValue? Абсолютно любое, и необязательно FIRST или SECOND.
Так как же с безопасностью?

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

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

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

Проверено в mono - работает. Спасибо!

C# developer

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

>Причина было вовсе не в этом, а в том что первоначально планировалось создавать процессоры для выполнения байт-кода

Процессоры всегда выполняли (байт или нет) код. И разработка _нового_самого_правильного_ процессора - ничем не оправдана - код одного процессора ничем не лучше кода другого процессора.

>А потом это все вылилось в девиз "Написано однажды – работает везде"

На самом деле у явы другой лозунг: "Скомпилировано однажды - работает везде". В нем выражена действительная "closed-source" сущность java. Но Сан предпочел его скрыть (почему?).

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

>исходники из байт-кода получить очень просто

И в некоторых странах потом придется за это платить. По высоким ценам.

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

> Какое значение можно передать методу setSecureValue? Абсолютно любое,
> и необязательно FIRST или SECOND.
> Так как же с безопасностью?

А так, что пример не правильный. Нужно так:

class SuperEnum {
    public static final SuperEnum FIRST=new SuperEnum(1);
    public static final SuperEnum SECOND=new SuperEnum(2);

    private int value;
    protected SuperEnum( int value ) {
        this.value=value;
    }

    public int getValue() {
        return value;
    }
}

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

>Проверять всякий раз значение энума на допустимость - снижать
>перформанс приложения. Проверку надо выполнять по необходимости.
Ну-ну. Давай также кучу других проверок снимим нафиг. Они ведь только перфоманс снижают. И будут у нас indexoutofbound и переполнение стека и проч. Так что ли?

>И хватит уже про Enum!!! Нашли к чему прицепитьса.
Значит как выставлять enum в качестве супер-пупер-аргумента можно, а вот цепляться к его реализации нельзя? Мдас...

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

> Процессоры всегда выполняли (байт или нет) код. И разработка
> _нового_самого_правильного_ процессора - ничем не оправдана - код
> одного процессора ничем не лучше кода другого процессора.

>>А потом это все вылилось в девиз "Написано однажды – работает везде"

> На самом деле у явы другой лозунг: "Скомпилировано однажды - работает
> везде". В нем выражена действительная "closed-source" сущность java.
> Но Сан предпочел его скрыть (почему?).

Лозунг такой: "Write once, run anywhere", и никто ничего не скрывал.
Исходники есть исходники, их можно открыть (например jakarta.apache.org), можно закрыть (например www.bea.com). Но java намного ближе к open-source нем другие т.к. приемлемого качества исходники можно получить даже из сервера от BEA. К тому-же для бОльшей части платформы Java можно получить оригинальные исходники от SUN совершенно бесплатно (хоть и не под GNU/GPL).

> А "Написано однажды - работает везде" - применимо к очень многим
> языкам. Нужен только кодогенератор и набор библиотек, реализующий
> общий для платформ API.

Например C? Только если взять большую кроссплатформенную программу на C, то можно будет увидеть, что многие куски по нескольку раз переписаны для каждой платформы и разделены ifdef'ами. Зашибись. Тогда уж можно написать для кажной платформы свой вариант и тоже говорить - написано однажды - работает везде, потому что написано однажды, только десять раз подряд.

>> исходники из байт-кода получить очень просто

>И в некоторых странах потом придется за это платить. По высоким ценам.

Платить не за что не надо, если ты это на прямую не используешь у себя и не распространяешь.

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

>>Проверять всякий раз значение энума на допустимость - снижать >>перформанс приложения. Проверку надо выполнять по необходимости. >Ну-ну. Давай также кучу других проверок снимим нафиг. Они ведь только >перфоманс снижают. И будут у нас indexoutofbound и переполнение стека и >проч. Так что ли?

Не надо перегибать палку. Enum не гарант безопасности. Это удобный способ групирования констант в одном месте. По _РАЗУМНЫМ_ причинам проверка значений на допустимость не выполняется.

>>И хватит уже про Enum!!! Нашли к чему прицепитьса. >Значит как выставлять enum в качестве супер-пупер-аргумента можно, >а вот цепляться к его реализации нельзя? Мдас...

Еnum это не супер-пупер-аргумент, у него _НОРМАЛЬНАЯ_ реализация, а вы цеплетесь к пустому месту.

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

> Еnum это не супер-пупер-аргумент

Не знают они, что и в Тайгере будет (у меня бета дженериксов да-а-а-авно есть) енум. Подтормаживают как джава. :))))))))

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

Я все равно не понимаю, какая связь между "closed-source сущностью" Java и байткодом. Возьмем, к примеру, Python. Позволяет компилировать в байткод. Следует ли из этого, что сущность Python "closed-source"? Не уверен.

Апплеты. Грузить из сети исходники и компилировать на клиенте?

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

>> Еnum это не супер-пупер-аргумент

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

Отлично знаю про JDK1.5 (сodename Tiger). Пробовал устанавливать, как узнал что бета, потерял интерес. Если не ошибаюсь, Tiger летом выйдет. К тому времени будет и .NET 2.0, с теми же самыми generics, которые тоже есть уже сейчас в бета версии.

Я сначала изучил .NET, потом Java. До этого писал на C/C++. Работал в реальных проектах на и на .NET, и на Java. Может быть я не самый большой специалист (но очень хочю быть им), но могу судить о вещах более объективно, чем упертые фанаты, ненавидящие Microsoft. Разговор от энумах выеденого яйца не стоит. Как язык C# лучше чем Java. Обе платформы имеют свои преимущества друг перед другом. Интерпретируемый байткод хорошо, компилируемый в инструкции процессора еще лучше. Разговор об исходниках тоже выеденого яйца не стоит.

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