Цитата:
Цитата:
function Foo() {} var foo = new Foo; foo instanceof Foo; // true Foo.prototype = {}; foo instanceof Foo; // false Лечится соглашением: не делайте так, описывайте прототипы, как если бы вы описывали класс, т.е. статически и спокойно сравнивайте типы по instanceof. В ECMA6 лечится сахаром в виде class 2) Отсутствие модулей приводит к захламлению глобального пространства. Лечится соглашением: используйте анонимные самовызываемые функции, свойства объектов как пространства имён и паттерн "модуль". В ECMA6 лечится сахаром module 3) Плохая поддержка автокомплита и статического анализа в ИДЕ, т.к. нет явной декларации типов. Лечится соглашением об обязательном использовании JSDoc. 4) JavaScript жутко медленный, ужас! Не складывайте строки с числами, не меняйте динамически прототипы во время исполнения, не вызывайте eval внутри eval и вы удивитесь, как быстро может работать ваш код. 5) Громоздкий старомодный синтаксис функций, функциональная область видимости. ArrowFunction, let ... Могу долго перечислять. Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
nerv_, я ответил на твои вопросы, а теперь ты назови 3 фичи Дарта, которые не могут быть эволюционно добавлены ЖС и являются фатальным недостатком, из-за которого необходимо пилить новый язык, новую VM, новую IDE, новые фреймворки ?) Просто гугл любит повелосипедить :)
|
Цитата:
Цитата:
|
Цитата:
Node.prototype.foo = function () { }; Т.к. в стандартной либе ТС описан интерфейс Node и чтобы ввести новый метод, я должен сначала расширить тот интерфейс. Конечно можно удалить файл описания стандартных типов, но тогда лишимся автокомпилита. Они говорят, что любой ЖС валиден ТС. Берём Mootools, подключаем без специального плагина и всё ломается :) Ваще у ТС ещё много проблем. Когда он вышел я с радостью бросился его юзать, но через недели 2 положил на полку. Я не говорю, что он плохой, а просто он ещё слишком молодой, а когда я узнал про фичи ECMA6 то понял, что и не хочу с JS уходить. Цитата:
Так например уже выпилена возможность объявлять переменные без var, arguments.callee, with и т.д. и никто же не умер. |
Цитата:
Цитата:
То есть, как бы расширение языка поперек, а не вдоль. Не столько эволюция базы, сколько агрегация субстандартов. |
Цитата:
Цитата:
new List<int>.generate(10, (final int index) => index + index); // [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] |
Цитата:
|
Цитата:
|
Цитата:
А так сейчас, жизнь и без этого не сладка, учитывая всякеские html/css/js препроцессоры, линтеры, минификаторы, сборщики, и пр. штуки. |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
В NaCL юзается LLVM. Я так понимаю, что он поддерживает множество платформ.
|
Цитата:
А в NaCL юзается LLVM. |
А вот кстати, можете объяснить:
Про GCC (GNU Compiler Collection) я читал, что он работает по принципу: сначала транслирует в ассемблер, а затем в машинный код под конкретную архитектуру. А как работает Clang? Т.е. он генерит байт код для LLVM? А что есть LLVM, т.е. некая VM которая по дефолту встроена в ОСь или что? |
Цитата:
Интересно, почему не в хаскель? (иронизирую) From Source to Binary: The Inner Workings of GCC |
Цитата:
1) Прекомпиляция исходника: добавление заголовочных файлов указанных с помощью #include 2) Трансляция в ассемблер 3) Ассемблирование: генерирование объектного кода 4) Линковка: сбор всех файлов вместе Я не думаю, что в O`Realy допустили бы столь грубую неточность. |
kobezzza,
А, ну как промежуточное звено перед объектным кодом, возможно. |
Цитата:
|
kobezzza,
Не, я немного не понимаю насчет, сложилось ли так исторически, или этот шаг строго необходим по другим причинам. Ибо сам с ассемблером не пересекался. Может, я просто туплю сегодня. :) |
Цитата:
В бы рекомендовал начать в такой последовательности: The C++ Programming Language — Bjarne Stroustrup C++ for Real Programmer — Jeff Alger The Art of C++ — Herbert Schildt Algorithms in C++ — Robert Sedgewick Design Patterns: Elements of Reusable Object-Oriented Software — Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides C++ Gotchas. Aoiding Common Problems in Coding and Design — Stephen C. Dewhurst C++ Templates: The Complete Guide — David Vandevoorde, Nicolai M. Josuttis The CERT C Secure Coding Standard — Robert C. Seacord More Effective C++: 35 New Ways to Improve Your Programs and Designs — Scott Meyers Effective C++: 55 Specific Ways to Improve Your Programs and Designs — Scott Meyers C++ Coding Standards — Herb Sutter, Andrei Alexandrescu C++ Concurrency in Action: Practical Multithreading — Anthony Williams Ну и со временем начать мониторить станадрат ) PS: на сколько я помню, в некоторых книгах есть неточности и опечатки, так что будьте внимательны и начинайте именно с первой. |
monolithed, мне был нужен С, а не С++:)
|
Цитата:
|
Цитата:
GLSL - язык шейдеров, по сути С Cuda C - возможность юзать GPU видюх NVidia и т.д. К тому же С не содержит в себя никаких сверх концепций, язык простой, хотя и неуклюжий, но выучить его достаточно просто. |
Цитата:
Или тебе нравится определять все переменные в начале функции? :D |
Цитата:
Да и кстати, я часто стал читать про D, я конечно хз, но мне он симпатичней плюсов, при том, что на нём решаются те же самые задачи, а производительность идентична плюсам. |
Цитата:
|
Цитата:
Но monolithed прав, на С++ это можно сделать куда более кроваво и изощренно. :D |
Цитата:
А вот этот пример в C99, не скомпилится (без особых флагов): for (int i = 0; i < 10; i++) { ... Нужно так: int i; for (i = 0; i < 10; i++) { ... |
Цитата:
|
Цитата:
Твой пример у меня без всяких флагов работает, юзаю Clang для компиляции. |
Цитата:
Цитата:
➜ clang -v Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) Target: x86_64-apple-darwin13.0.0 Thread model: posix |
Цитата:
http://habrahabr.ru/post/184606/ |
Цитата:
Про С14 я не слышал. |
Цитата:
CFile * OpenFile() { CFile file("123.txt", CFile::modeRead); return &file; } void main(int argc, char *argv[]) { unsigned char * pData = new unsigned char[100]; CFile * textFile = OpenFile(); // тут еще какой-то код, вызовы))))) textFile->Read(pData, 100); // а тут по идее вывод в консольку... но только по идее } :lol: |
Часовой пояс GMT +3, время: 23:55. |