Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как описывать свойства ООП? (https://javascript.ru/forum/offtopic/36647-kak-opisyvat-svojjstva-oop.html)

megaupload 25.03.2013 16:51

Цитата:

Сообщение от danik.js
А можно реальные примеры? Не предположения, а факты?

нет нельзя) мне вломы искать, очень надо?)

danik.js 25.03.2013 17:17

Цитата:

Сообщение от megaupload
мне вломы искать, очень надо

Я не верю что TS преобразуется в какой-то "оптимизированный" JS.
Чем он оптимизированней написанного вручную?

kobezzza 25.03.2013 17:40

Цитата:

Сообщение от danik.js (Сообщение 242564)
Я не верю что TS преобразуется в какой-то "оптимизированный" JS.
Чем он оптимизированней написанного вручную?

Конечно нет, на JS можно написать такой же код как на TS, просто на TS такой код смотрится куда лаконичнее и сам язык располагает так писать, но с другой стороны, т.к. как TS является подмножеством JS (любой JS валиден TS), то на TS можно также юзать все фишки ЖС с возможными тормозами.

melky 25.03.2013 17:40

Цитата:

Сообщение от megaupload
мне реально обьяснять почему ts работает быстрее js или ты прикалываешься?

фейк, или гей.

если ты кодишь на ЖС хуже, чем на ТС, это не повод говорить, что ТС быстрее ЖС - это ты просто на ТС пишешь лучше.

(тавтология, сорри)

Цитата:

Сообщение от kobezzza
Он имел ввиду, что код JS который генерится из TS лучше оптимизируется современными JIT компиляторами JS, т.к. сгенериный код придерживается строгой статичной структуры.

те самые деопитимизации и оптимизации V8, о которых мы недавно (давно, точнее) говорили.

хз, лично я и так не наступаю на медленные грабли - всё равно те же поиски и вычислитерльные алгоритмы лучше писать на нативном ЖС...

блин, это как ассемблерные вставки , получается :)

Цитата:

Сообщение от kobezzza
Конечно нет, на JS можно написать такой же код как на TS, просто на TS такой код смотрится куда лаконичнее и сам язык располагает так писать, но с другой стороны, т.к. как TS является подмножеством JS (любой JS валиден TS), то на TS можно также юзать все фишки ЖС с возможными тормозами.

Сударь, а там можно писать по функциональному ? всякие рекурсии там, частичные применения, комбинаторы? и чтобы это всё развёртывалось и работало нормально (компиляция в низкоуровневый JS)? если это так, то .... интересненько )

а если нет ... то это обычный кофе скрипт, только сбоку.

kobezzza 25.03.2013 17:44

Цитата:

Сообщение от melky (Сообщение 242577)
Сударь, а там можно писать по функциональному ? всякие рекурсии там, частичные применения, комбинаторы? и чтобы это всё развёртывалось и работало нормально? если это так, то .... интересненько )

Я так глубоко его пока не копал, спроси максимуса :)

Цитата:

а если нет ... то это обычный кофе скрипт, только сбоку
Так и есть, только кофе это для рубистов/питонистов, а тайп для C#/Java. Но честно могу сказать, что если бы начинал только сейчас писать свой проект, то наверно взял бы или кофе или тс, и дело не в мистической скорости - это всё ерунда, а просто код на этих языках получается объективно проще для чтения/понимания.

ЗЫ: я вроде видел транслятор хаскеля на JS, думаю там такие оптимизации делаются.

megaupload 25.03.2013 18:45

с чего ты взял что у меня нет доказательств)?

kobezzza 25.03.2013 20:29

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 242586)
Может наоборот?)

Да, хрень спорол, а ты как всегда меня поправил:)

megaupload 25.03.2013 21:09

Цитата:

Сообщение от Дзен-трансгуманист
лол), а они у тебя хоть когда-то были?

ответь на вопрос)

megaupload 25.03.2013 21:10

Цитата:

Сообщение от danik.js
Я не верю что TS преобразуется в какой-то "оптимизированный" JS.

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

danik.js 25.03.2013 21:38

Цитата:

Сообщение от megaupload
так тебе надо доказательства или нет? мне вломы искать их, очень надо?

Как хочешь. Но без примеров твои слова - пустой звон. Просто приведи примеры. Доказательства я сам накопаю. А пока даже не знаю куда копать.
Цитата:

Сообщение от megaupload
елси хорошо попросишь я поучу тебя немного

Так вот как ты заговорил как карма выше плюса стала :D

megaupload 25.03.2013 22:33

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

megaupload 25.03.2013 22:34

так и быть http://www.techdays.ru/videos/6533.html

melky 26.03.2013 08:29

Цитата:

Сообщение от megaupload
мне вломы искать их, очень надо? мне так то похуй по большому счету на твое мнение и на твой уровень знаний ts ))

азазазаза затралел ололо, просто сказать нечего

Цитата:

Сообщение от Дзен-трансгуманист
Кстати, стрикт мод на V8 работает чуть медленнее, чем без него, я проверял на ноде.
А писать без стрикта уже как-то некошерно...

хз; ты сказал, и ничего не сказал одновременно. код в студию!

Цитата:

Сообщение от Дзен-трансгуманист
Я за полгода не видел НИ ОДНОГО куска твоего кода, доказывающего, чтобы ты разбирался хоть в чем-нибудь кроме сферических прототипов в вакууме.

кстати да. я только говёненькую обёртку над прототипами видел, похожую на такой же пример из книжки Фленегана

megaupload 27.03.2013 10:50

Цитата:

Сообщение от Дзен-трансгуманист
Дай рабочий код в браузере млять

а, точто, тесты на видео не являются же доказательством я забыл)))

лол, тогда ну нахуй не буду давать, тогда точно лень пусть не верит)

melky 27.03.2013 19:40

Цитата:

Сообщение от Дзен-трансгуманист
Лабораторной крысой будет нода, поскольку браузер - штука довольно тяжелая и его фоновая активность создает много помех, что понижает точность замеров (бОльшая разница времени исполнения между отдельными сэмплами будет вносить неопределенность).

да и нода из той же оперы.

если бы можно было затестить код прямо из бинарника JS-движка, было бы замечательно)

а вообще нужно не время мерить, а деоптимизации смотреть - по логам. их как минимум V8 поставляет. *Monkey FireFox'овский вроде нужно пересобирать с магическими флагами

melky 28.03.2013 10:13

Цитата:

Сообщение от Дзен-трансгуманист
Толстое утверждение. В браузере намного больше динамических подсистем, которые шевелятся где-то на фоне, хочешь ты этого или нет. Сервер концептуально устроен проще.

ну вот, с тобой даже не поспоришь :) счас затестим код (вечером).

Цитата:

Сообщение от Дзен-трансгуманист
Деоптимизации связаны в основном с непостоянством используемых типов и с неуклюжим обращением с массивами и объектами. Гвозди можно забивать специально созданным для этого молотком или грубой каменной кувалдой. Это твое знание среды исполнения, твоя компетентность в нюансах ее механики, что сделает твой код более грамотным, но не факт, что этого будет достаточно.

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

Цитата:

Сообщение от Дзен-трансгуманист
ты понимаешь, о чем я.

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

Цитата:

Сообщение от Дзен-трансгуманист
В конечном итоге появится и нативная поддержка TypeScript или чего-нибудь другого в этом роде, чтобы сделать программы еще быстрее.

на самом деле, я не сильно то и против TS.

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

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

а так, непонятная компиляция JS в JS может только забавлять. :)

kobezzza 30.03.2013 22:24

Цитата:

Сообщение от melky (Сообщение 243069)
если бы была такая возможность, это было бы замечательно.

а так, непонятная компиляция JS в JS может только забавлять. :)

В новых версия ФФ есть ASM.js, имхо это куда круче чем native client хрома. И языки вроде TypeScript будут это учитывать:)
http://habrahabr.ru/post/174175/

kobezzza 31.03.2013 18:46

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 243583)
наступают светлые времена, аллилуйя :)

Да вообще :)

ЗЫ: я недавно для себя обнаружил, что с помощью компиляторов с С/С++ на JS чуваки портают мои любимые старые игры, например http://play-ttd.com/ :)

kobezzza 31.03.2013 19:47

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 243589)
Прости моё нубство. Это вроде clang -> LLVM -> Emscripten -> JS/asm.js?

Чёрт, ну почему у меня именно сейчас такая нехватка времени? Хотел бы копнуть глубже, но некогда даже спеку позырить. :(

Угу. Кстати аналогично, столько интересного вокруг, а мне нужно другим заниматься :(

monolithed 01.04.2013 20:03

Цитата:

Сообщение от kobezzza
В новых версия ФФ есть ASM.js, имхо это куда круче чем native client хрома.

Чем круче?

NaCl/PNaCl позволяет писать на C/C++ без каких-либо серьезных ограничений и тем более костылеобразного кода (как в asm.js). Хочешь заюзать GD - пожалуйста, хочешь свой интерпретатор написать - не вопрос, и все это будет работать с бешенной скоростью (по официальным утверждениям как минимум в два раза, зависит от объема кода, хотя и не сильно, т.к. код asm.js не интепретируется, а сразу транслируется в код ассемблера).

Посмотрим когда появится бинарная поддержка
И еще на сколько я помню тестов производительности Mozilla не выкладывала.

kobezzza 01.04.2013 22:17

Цитата:

Сообщение от monolithed (Сообщение 243745)
Чем круче?

NaCl/PNaCl позволяет писать на C/C++ без каких-либо серьезных ограничений и тем более костылеобразного кода (как в asm.js). Хочешь заюзать GD - пожалуйста, хочешь свой интерпретатор написать - не вопрос, и все это будет работать с бешенной скоростью (по официальным утверждениям как минимум в два раза, зависит от объема кода, хотя и не сильно, т.к. код asm.js не интепретируется, а сразу транслируется в код ассемблера).

Посмотрим когда появится бинарная поддержка
И еще на сколько я помню тестов производительности Mozilla не выкладывала.

Круче тем, что писать можно уже сейчас (т.к. любой код на asm.js это абсолютно валидный js), что не нужно учить новый язык (тем более такого монстра как с++), что активно поддерживают компании, например Epic Games портанули Unreal Engine 3.

Я читал обзоры мозиллы, говорят что на данный момент код на asm.js работает примерно в 2 раза медленнее аналогичного на с++, а это уже более чем результат.
А костылеобразность это ерунда, т.к. эта штука предназначена в основном для кодогенерации.

megaupload 06.04.2013 17:23

Цитата:

ypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript[1][2][3][4][4][5][6].

Разработчиком языка TypeScript является Андерс Хейлсберг (англ. Anders Hejlsberg) создавший ранее Turbo Pascal, Delphi и C#.

Ого а я и не знал, крутой мужик


Цитата:

Сообщение от monolithed
т.к. код asm.js не интепретируется, а сразу транслируется в код ассемблера).

ты сам то понял что написал?

monolithed 07.04.2013 00:29

Цитата:

Сообщение от megaupload
ты сам то понял что написал?

Если мне не веришь прочти что об этом думают в Mozilla:

Цитата:

Сообщение от http://asmjs.org/faq.html
Q. Isn't it inefficient to have to run the code through a JavaScript interpreter before compiling?
A. Because of the directive prologue, a JavaScript engine can immediately recognize asm.js code at compile-time and immediately compile it to assembly language, with no need to ever run the code through an interpreter.


megaupload 07.04.2013 12:48

Да я знаю это, ты понял как ты мысль сформулировал то?
То есть происходит трансляция в ассемблер а потом компиляция из ассембрела в бинарники?

cyber 07.04.2013 13:27

можно таким образом
/// <include file='doc\Form.uex' path='docs/doc[@for="Form.CreateParams"]/*' />
        /// <internalonly/> 
        /// <devdoc>
        ///    Retrieves the CreateParams used to create the window. 
        ///    If a subclass overrides this function, it must call the base implementation. 
        /// </devdoc>


/// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
        protected override void Dispose(bool disposing)//метод
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

Такие комменты (описание методов/свойств )используются в класах майкрософт (C#).
П.с сам использую такую структуру комментов в js коде.


Часовой пояс GMT +3, время: 07:38.