L>И по скорости ActionScript никак не будет шустрее JavaScript, разница будет как между разными компиляторами/интерпретаторами одного и того же языка.
Я имел в виду разницу между компиляторами для компилируемых языков и интерпретаторами для интерпретируемых А то с моим косноязычием можно подумать что разница будет как между компилятором и интерпритатором для одного и того же языка...
Здравствуйте, eao197, Вы писали:
E>Возможно, нужно в нем покопаться более тчательно. Хотя мне Lazy Cjow Rhrr ссылочку подкинул (еще раз ): http://www.podval.org/~sds/ocaml-sucks.html -- кое-какие вещи там заставляют задуматься. Да и если сравнивать обеспеченность OCaml-а и C# всякими библиотеками, IDE, профайлерами, отладчиками и пр. лабудой, то вряд ли OCaml подойдет для того, чтобы за него садить вчерашних студентов.
Ты бы поглядел с чем автор статьи сравненивает ОКамл. Тебя бы наверно улыбнуло... Он сравнивает ОКамл с Лиспом. Дума, те кто понимает что такое Лисп уже все поняли.
ЗЫ
Кстати, о птичках. Все перечисленные недостатки устранены. Даже с синтаксисом проблем нет. При этом весь фан ОКамла остался на месте. Вот только привязка к дотнету/моно. Ну, и вывод типов не по все программе, а только для кода методов. Ну, и все что есть в C# 3.0 в нем тоже есть. Линк, вот правда, еще надо прикрутить.7
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>Имхо, сейчас нужно проявлять осторожность в игнорировании .NET-а, а не при переходе на него E>MS пришла с .NET всерьез и надолго. За 6-ть лет в язык было добавлено больше, чем в Java за пятнадцать лет. И все это без серьезного груза совместимости с уже написанными мегатоннами Ынтырпрайз кода (как в случае с Java).
E>Так что игнорирование C# сейчас может выйти себе дороже
Ого! От кого я слышу эти слова?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>А подход, когда это расширение можно делать только в специально ориентированном для этого визуальном инструменте выглядит вообще диковато. Имхо, программа должна быть простым текстом, который можно быстро подправить хоть в Far-е, хоть в ViM-е, хоть в ed-е через ssh.
Казалось бы причем тут...
э... ухожу, ухожу.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Кстати, о птичках. Все перечисленные недостатки устранены. Даже с синтаксисом проблем нет. При этом весь фан ОКамла остался на месте.
Не весь, классы в Ocaml класснее, да и языки без оператора "+." ущербны
Здравствуйте, FR, Вы писали:
VD>>Кстати, о птичках. Все перечисленные недостатки устранены. Даже с синтаксисом проблем нет. При этом весь фан ОКамла остался на месте.
FR>Не весь, классы в Ocaml класснее, да и языки без оператора "+." ущербны
Ещё функторов там нет, зато есть монады, спрятанные под именем computation expressions .
Здравствуйте, FR, Вы писали:
EC>>Ещё функторов там нет, зато есть монады, спрятанные под именем computation expressions .
FR>Функторы в SML есть, вообще окамл по сравнению с SML верблюд верблюдом
Я про то, что они есть в OCaml, но отсутствуют в F#.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Shabi, Вы писали: S>>
S>>* статически типизированный и компилируемый;
S>>* быстрый.
S>>* оснащенность библиотеками.
S>>JS по выделенным пунктам пролетает
VD>Это и есть JS к которому пару финтифлюшек припаяли. Реально типизации в байткоде нет.
In ActionScript 3.0, type information is preserved at run time, and used for a number of purposes. Flash Player 9 performs run-time type checking, improving the system's type safety. Type information is also used to represent variables in native machine representations, improving performance and reducing memory usage.
ActionScript 3.0 contains the int and uint types. The int type is a 32-bit signed integer that lets ActionScript code take advantage of the fast integer math capabilities of the CPU. The int type is useful for loop counters and variables where integers are used. The uint type is an unsigned, 32-bit integer type that is useful for RGB color values, byte counts, and more.
Здравствуйте, Shabi, Вы писали:
S>Здравствуйте, VladD2, Вы писали:
VD>>Это и есть JS к которому пару финтифлюшек припаяли. Реально типизации в байткоде нет.
S>
S>In ActionScript 3.0, type information is preserved at run time, and used for a number of purposes. Flash Player 9 performs run-time type checking, improving the system's type safety. Type information is also used to represent variables in native machine representations, improving performance and reducing memory usage.
S>
S>ActionScript 3.0 contains the int and uint types. The int type is a 32-bit signed integer that lets ActionScript code take advantage of the fast integer math capabilities of the CPU. The int type is useful for loop counters and variables where integers are used. The uint type is an unsigned, 32-bit integer type that is useful for RGB color values, byte counts, and more.
VD>>И компиляции тоже.
И? Написано же type information is preserved at run time, т.е. проверка типов откладывается до рантайма, т.е. типизация динамическая. Хотя, видимо, Влад был не совсем корректен: нет статической типизации, типобезопасности можно добиться и в рантайме, правда поимев накладные расходы, исключения и т.п.
4.5 Method signature
The method_info entry defines the signature of a single method.
method_info
{
u30 param_count u30 return_type
u30 param_type[param_count]
u30 name
u8 flags
option_info options
param_info param_names
}
The fields are as follows:
param_count, param_type
The param_count field is the number of formal parameters that the method supports; it also represents
the length of the param_type array. Each entry in the param_type array is an index into the multiname
Adobe ActionScript Virtual Machine 2 (AVM2) Overview 25
array of the constant pool; the name at that entry provides the name of the type of the corresponding
formal parameter. A zero value denotes the any (“*”) type.
return_type
The return_type field is an index into the multiname array of the constant pool; the name at that entry
provides the name of the return type of this method. A zero value denotes the any (“*”) type.
К>И? Написано же type information is preserved at run time, т.е. проверка типов откладывается до рантайма, т.е. типизация динамическая. Хотя, видимо, Влад был не совсем корректен: нет статической типизации, типобезопасности можно добиться и в рантайме, правда поимев накладные расходы, исключения и т.п.
это зависит...
в большинстве случаев компилятор ругаеца. исключая естественно тип *
Здравствуйте, Shabi, Вы писали:
S>Здравствуйте, Курилка, Вы писали:
S>начальная посылка была S>
VD>Реально типизации в байткоде нет
[cut]
Про формулировку я написал.
S>это зависит...
От чего зависит? S>в большинстве случаев компилятор ругаеца. исключая естественно тип *
Чем описывается "большинство"?
Скажем в "традиционных" языках типа Явы и Шарпа, практически единственным способом получить проблемы с типами является приведение типов, ну и рефлексия как вариант приведения, по сути (только информация о типах строчками представлена).
ActionScript offers two different modes for compiling a program: strict mode and
standard mode. In strict mode, the compiler reports more errors than in standard
mode. The extra strict-mode errors are intended to help programmers locate potential
sources of problems in a program before the program actually runs. Strict mode
is, therefore, enabled by default in all of Adobe’s compilers. Programmers who wish
to use ActionScript’s dynamic features (as described in Chapter 15,), or who simply
prefer to solve problems (i.e., debug) at runtime rather than at compile time can
choose to compile using standard mode.
......
The following questionable acts of programming will cause a compiler error in strict
mode, but not in standard mode:
• Supplying the wrong number or types of parameters to a function
• Defining two variables or methods with the same name
• Accessing methods and variables that are not defined at compile time (but might be defined at runtime)
• Assigning a value to a nonexistent instance variable of an object whose class is not dynamic
• Assigning a value to a constant variable anywhere other than the variable’s initializer
or, for instance variables, the constructor method of the class containing
the variable’s definition
• Attempting to delete (via the delete operator) an instance method, instance variable,
static method, or static variable
• Comparing two incompatibly typed expressions
• Assigning a value to a type-annotated variable where the value is not a member of the declared type
• Referring to nonexistent packages
Здравствуйте, Shabi, Вы писали:
S>Здравствуйте, Курилка, Вы писали:
К>>Чем описывается "большинство"?
S>
S>ActionScript offers two different modes for compiling a program: strict mode and
S>standard mode.
[cut]
S>
Напоминает недо-VB.Net. Для параметров функций, я так понимаю нет типизации?
Какие-то всё сугубо локальные ограничения, т.е. мелкие затычки против явных багов.
До статической типизации далековато имхо.
Здравствуйте, Shabi, Вы писали:
S>Здравствуйте, Курилка, Вы писали:
К>>Чем описывается "большинство"?
и это кста. "не вечер"... ActionScript 3.0 (по ставнению с 2.0 огромный, качествеенный скачёк) сейчас на том уровне, что вполне комфортно можно можно писать... даже пересаживаясь с JAVA.
не спроста эти жЫрные коты в сане и микрософте зашевелились.
Здравствуйте, Shabi, Вы писали:
S>Здравствуйте, Курилка, Вы писали:
К>>Напоминает недо-VB.Net. Для параметров функций, я так понимаю нет типизации?
S>нет неправильно понимаешь.
[cut]
S>а теперь? все равно в морг?
Дак почему в морг? Я против динамической типизации ничего не имею.
Просто не уверен, что оно делает "полную" статическую проверку (иначе у нас был бы статически-типизированный язык и режим без проверки вообще никакого смысла бы не имел).
P.S. Кавычки стоят, т.к. даже Java/C# и иже с ними допускают нарушения типизации по сути, хоть и более-менее контролируемые.