12.10.2012, 16:26
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Понравилось как они интерфейсы с обьектами связали.
Добавили только то что нехватало.
классы + (классика всегда в цене )
интерфейсы + (контроль над согласование множества обьектов, очень не плохо )
статическая типизация+ (как добавка к динамической то что надо)
отсутствие именованных параметров в функциях - (очень удобно, но нету )
необходимости предварительной компиляции --- (была бы удобнее компиляция в браузере, хотябы как опция)
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 12.10.2012 в 17:02.
|
|
12.10.2012, 16:26
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от FINoM
|
Дарт — выдумывание велосипеда, создание собственного синтаксиса, методов и пр.
|
Они заботятся о производительности, ну и может быть о помощи программисту (которую по идее должна дать статическая типизация), хотя насчет второго не знаю насколько они серьезно. У Typescript основная цель - вторая.
Я наверное плохо сформулировал вопрос. Как вы относитесь к статической типизации и почему? Хотя если вы сначала видео хотите посмотреть, я конечно подожду...
|
|
12.10.2012, 16:31
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
какие-то ответы неаргументированные и/или субъективные (мне нравится, что...)
|
|
12.10.2012, 16:32
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
x-yuri,
в некоторых местах она очень нужна, особенно на больших проектах. К гвардам однозначно положительно отнушусь, на счёт остольного пока трудно сказать.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
12.10.2012, 16:55
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
всегда удобно иметь набор инструментов на выбор.
если статическая типизация, доступна вместе с динамической то это идеальное сочетание на мой взгляд. Очень полюбил C# за эту возможность в своё время, именно там впервые начал пользоваться динамическими переменными. Автор typeScript и автор С#, pascal, delphi это один и тот же человек.
Только строгая типизация, более перспективна в плане производительности, однако подкидывает и немало гемороя.
к примеру
function hello(d){
console.log(d);
}
hello(1);
hello("привет");
уже работать небудет
Пришлось бы вводить в язык перегрузку функций и получилось бы что то вроде.
function hello(d:int){
console.log(d);
}
function hello(d:string){
console.log(d);
}
hello(1);
hello("привет");
нифига некамельфо.
вот поэтому я и говорю что статическая + динамическая - это гуд.
А только у статической и только динамической немало недостатков.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 12.10.2012 в 17:24.
|
|
12.10.2012, 17:29
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
DjDiablo,
Приведение типов перед передачей в функцию не решит проблему?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
12.10.2012, 17:32
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
Они заботятся о производительности, ну и может быть о помощи программисту (которую по идее должна дать статическая типизация), хотя насчет второго не знаю насколько они серьезно.
|
NaCl, я думаю, порвет здесь любой язык.
Сообщение от x-yuri
|
Как вы относитесь к статической типизации и почему? Хотя если вы сначала видео хотите посмотреть, я конечно подожду...
|
Лично я совершенно не вижу преимуществ статической типизации. В крайнем, если она мне, вдруг, понадобится, я буду использовать дескрипторы, отлавливая получаемый тип. Что-то типа:
Object.defineProperty( Object.prototype, 'defineInteger', {
value: function( key, value ) {
Object.defineProperty( this, '_' + key, {
value: parseInt( value ) || 0,
enumerable: false,
writable: true
});
Object.defineProperty( this, key, {
get: function() {
return this[ '_' + key ];
},
set: function( value ) {
var parsed = parseInt( value );
if( value !== parsed ) {
throw Error( 'Key "'+key+'" must be an integer, fuck off, motherfucker' );
} else {
this[ '_' + key ] = value;
}
}
});
},
enumerable: false
});
o = {};
o.defineInteger( 'myInt', 333 );
console.log( o.myInt );
o.myInt = 444;
console.log( o.myInt );
o.myInt = 'valera';
Нужно только немного подождать сметри ИЕ8.
Производительность здесь, конечно, херовая, но, мне кажется, задачи, где реально требуется статическая типизация с высокой производительностью, настолько редки, что ими можно пренебречь. Если уж хотите быстроты, параллельте приложение с помощью воркеров. Еще раз попеарю небольшую поделку: https://github.com/finom/Functions/t...r/InlineWorker
Последний раз редактировалось FINoM, 12.10.2012 в 17:34.
|
|
12.10.2012, 17:45
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Цитата:
|
Приведение типов перед передачей в функцию не решит проблему?
|
решит, но ведь для этого придётся приводить , пусть лучше компилятор этим вместо меня занимается
Цитата:
|
мне кажется, задачи, где реально требуется статическая типизация с высокой производительностью, настолько редки
|
угу, это потому что многие из заказчиков вчера вылезли из памперсов, и теперь думают что спарсенный с другого сайта контент, и бесплатный движок, с бесплатным шаблоном (который на каждом втором сайте) уж точно превратит их в миллионеров. У таких заказчиков конечно же нет потребности в чём то, выше уровня перделки на jquery.
А вот промо-сайт автомобиля, игра в канвасе, бизнес приложения, приложения на мобильные платформы, metro-приложения - предьявляют совсем иной набор требований. Таких заказов меньше, но они есть, и их число будет только расти.
Я думаю что ориентируясь на лузеров, можно стать только лузером.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 12.10.2012 в 18:16.
|
|
12.10.2012, 18:46
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
а мне вот больше нравится статическая типизация с автоматическим приведением типов. например, на пхп я её эмулирую так:
function getTitle( $dom ){
so_dom::ensure( $dom );
return (string) $dom->select(' / html / title ');
}
в эту функцию можно передать строку, структуру из массивов, инстанс so_file или so_dom.. и это будет работать правильно. приводить типы вручную перед вызовом функции - слишком много копипасты получится. делать семейство функций на каждый тип - тоже.
__________________
.ня
|
|
12.10.2012, 19:13
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Входная переменная $dom - у тебя нетипизированная, естественно ты можешь передать в функцию что угодно
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
|
|