Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Явное задание типа. ХЕЕЕЕЛЛЛППП !!!!! (https://javascript.ru/forum/misc/37932-yavnoe-zadanie-tipa-kheeeelllppp.html)

eugenk 14.05.2013 13:25

Явное задание типа. ХЕЕЕЕЛЛЛППП !!!!!
 
Здравствуйте уважаемые коллеги. Только-только начал изучать javascript. Задача - написать клиента для работы с некоторой довольно специфической базой данных. Если кому интересно, приблудина должна представлять собой что-то похожее на Total Commander, но с кучей особых фич. Итог месяца работы - около 1000 строк отлаженного кода с базовым функционалом. Да, конечно до того я ничего не знал ни о javascript, ни о html ни о css. К тому же пришлось изучать python, на котором я писал сервер, и курить доки по mongodb. Тем не менее на QT или ActionScript3, я написал бы подобный код за 2-3 дня.
Это вообще первый в моей жизни код, написанный на яваскрипте. Что могу сказать по итогу. Много я в жизни повидал всякоразного говна. Но ничего говеннее яваскрипта не видал. Даже ассемблер удобнее. В любом нормальном макроассемблере можно определить структуру. И компилятор будет следить за обращениями к ее полям. А если есть нормальная среда, она еще сделает и автокомплит. Здесь же абсолютная свобода ведет к абсолютной анархии. Я юзаю PyCharm от JetBrains. Среда просто гениальная. По тому, как она показывает код, я вижу, что юзаются какие-то частотные и вероятностные методы анализа в попытке определить тип переменной. Но все равно автокомплит толком не работает ! Вобщем по опыту этого проекта я понял, что 100% динамическая типизация есть 100%, т.е. АБСОЛЮТНОЕ ЗЛО, делающее язык непригодным для написания чего-либо серьезного. Раньше я иногда спорил, отстаивая эту точку зрения чисто теоретически, ибо никогда ранее на подобных языках не писал. Но сейчас на 100% в этом убедился.
Итого, не хочу разводить тут флейма и холивара, хочу задать вопрос. Уважаемые коллеги, существует ли для javascript какая-нибудь приблудина со следующими свойствами ?
1) Позволяет ЯВНО (!!!) указывать типы объектов. Например так, как это сделано в ActionScript3 - var <имя>:<тип>
2) Является расширением javascript, а не новым языком типа Haxe, прозрачно преобразующей текст в обычный javascript, просто удаляя объявления типов.
3) Интегрирована в какую-то IDE, позволяя нормально работать автокомплиту.

P.S. Народ, если кто знает, тот же вопрос и для python. Тоже такой же говноязык для "программистов", вычисляющих корни квадратного уравнения. Это пожалуй даже более для меня важно, ибо основная тяжесть проекта будет на сервере. С яваскриптом просто сейчас на первом этапе пришлось очень плотно работать. Дальше будет в основном python.

zebra 14.05.2013 13:35

Ругаетесь на javascript хотя толком его не знаете, да ещё и на форуме по javascript. И при всем этом хотите, чтобы вам помогли. Жесть :blink:

eugenk 14.05.2013 13:37

Я все-таки задаю вопрос о тулзе. Ругаюсь просто чтобы было понятно, для чего она мне нужна. Можете что-то ответить по существу ?

zebra 14.05.2013 13:40

Используйте флеш, или typescript. Хотя лучше напишите свой транслятор, который будет использовать все нужные фичи. И конечно ide для него

megaupload 14.05.2013 13:41

zebra, всегда так делаю.

tropiko 14.05.2013 13:48

eugenk, используйте JSDoc и получайте автокомплит. Не знаю, как во всех продуктах JetBrains, но в IntelliJ IDEA поддерживается по-умолчанию.

eugenk 14.05.2013 13:51

Цитата:

Сообщение от zebra (Сообщение 250420)
Используйте флеш, или typescript. Хотя лучше напишите свой транслятор, который будет использовать все нужные фичи. И конечно ide для него

Флеш - увы... У меня по нему что называется 10-й дан, но использовать его уже нельзя из-за невнятной политики Apple, в отношении его поддержки. Сейчас единственное что остается более не менее совместимым для клиентской стороны, это javascript. Транслятор бы написал, без проблем. Он не так сложен, хотя придется вводить описания структур хотя бы в стиле чистого С. Беда в том, что его еще нужно интегрировать в среду. В тот же PyCharm, или в Eclipse, так чтобы тамошний автокомплит умел определять типы и нормально работал. А это увы, уже задача совсем другого порядка сложности. Вот и спрашиваю здесь. Может уже есть какие-то готовые подобные инструменты ? Ведь наверняка я не первый сталкиваюсь с этой проблемой. А народ на javascript пишет очень нетривиальные вещи.

eugenk 14.05.2013 13:58

Цитата:

Сообщение от tropiko (Сообщение 250424)
eugenk, используйте JSDoc и получайте автокомплит. Не знаю, как во всех продуктах JetBrains, но в IntelliJ IDEA поддерживается по-умолчанию.

Прошу прощения, можно поподробнее, что это такое ??? Я новичок, просьба не пинать если чего-то не знаю :D

Еще раз прошу прощения, но доки это немного не то. Пример.
У меня есть массив panels, в котором я храню объекты типа Panel, в которых в свою очередь хранится описание физических свойств панелей моего менеджера базы данных. Например высота и ширина панели, число строк текста и т.п. Т.е. объект типа Panel является строго определенным. Он содержит четко определенные поля и ничего более. А глобальная переменная panels хранит только объекты типа Panel и ничего более. В программе я пишу:
var panel=panels[pan];
panel.width=200;
Никаие доки не помогут определить среде, что panel это объект типа Panel, который содержит поле width, но не содержит поля widht. Если бы тип Panel был известен, во-первых как только я написал бы panel. сразу появился бы автокомплит, который подсказал бы поле width. Во-вторых, если я все-таки напишу panel.widht, в нормальном языке компилятор бы выругался на несуществующее поле. В javascript panel.widht=200 будет понято как желание ввести в объект panel новое поле widht и присвоить ему значение 200. Поле width при этом разумеется не изменится и программа нормально запустится. После чего придется очень долго выяснять в отладчике, почему ширина панели не меняется. Я говорю исключительно об этих проблемах. Документирование на JSDoc тут не спасет.

eugenk 14.05.2013 14:06

Цитата:

Сообщение от zebra (Сообщение 250420)
Используйте флеш, или typescript. Хотя лучше напишите свой транслятор, который будет использовать все нужные фичи. И конечно ide для него

За typescript респект ! Буду смотреть что это такое. Возможно оно именно то.

eugenk 15.05.2013 00:20

Zebra, огромный респект за наводку на typescript ! Сейчас поставил, правда для этого PyCharm обновлять пришлось, и не могу нарадоваться ! Это почти что ActionScript3 ! Вот что значит спросить совета у знающих людей ! Ну и тогда еще вопрос. Вы не подскажете, нет ли столь же полезной тулзы для python ? Он увы тоже страдает теми же проблемами, что javascript. Только с питоном, если что-то такое есть, нужно на версию 2.7. Третьей я не могу пользоваться ибо под ним на сервере надо nltk поднимать, а он только под двойку. Вобщем был бы дико благодарен, если бы знатоки подсказали и для питона решение. Сам я что-то ничего не смог в сети разыскать.

qwerty-клавиатура 15.05.2013 00:31

не понимаешь ты все прелести динамической типизации. в чем проблемы то в кривых руках?

eugenk 15.05.2013 00:55

В чем прелесть-то ??? В том что баги, которые обычно автоматом ловит компилятор, все до единого твои ? В том что автокомплит толком не работает даже у таких китов как JetBrains ? Я не спорю, могут быть случаи, когда динамическая типизация полезна. Да в том же моем проекте с сервера приходит объект в формате json, я делаю из него javascript-объект и работаю с ним. Но во-первых код, обрабатывающий связь с сервером у меня процентов 5 по объему. Во-вторых получаемый javascript-объект все равно приходится парсить, ибо что в нем пришло изначально неизвестно. А приходить могут вещи очень нетривиальные, я например на json описываю формы для ввода данных. Получается что язык не имеющий статической типизации ради 5% кода гробит остальные 95. Да и с этими 5% не решает задачу полностью. Ручками работать всё равно приходится. Так в чём смысл ???
Идеален в этом отношении по-моему ActionScript3 в strict-моде. Нужны тебе динамические объекты - объявляй явным образом и пользуйся. Всё остальное статически типизировано.
По-моему изначально 100% динамические языки создавались для непрограммистов. Им и правда незачем заморачиваться какой где тип. Тот же javascript изначально предназначался чтобы пару алертов в браузере выкинуть и пару элементов подвигать. Задачи писать на нем что-то серьезное не было. А для этого типы действительно излишни и скорее вредны. Однако когда код достигает хотя бы нескольких сотен строк, положение резко меняется.

qwerty-клавиатура 15.05.2013 01:04

какой-то долбоеб мне ставит минусы и пишет уи. как вычислить пидараса?

oneguy 15.05.2013 01:43

Цитата:

Сообщение от eugenk (Сообщение 250427)
Прошу прощения, можно поподробнее, что это такое ??? Я новичок, просьба не пинать если чего-то не знаю :D

Еще раз прошу прощения, но доки это немного не то. Пример.
У меня есть массив panels, в котором я храню объекты типа Panel, в которых в свою очередь хранится описание физических свойств панелей моего менеджера базы данных. Например высота и ширина панели, число строк текста и т.п. Т.е. объект типа Panel является строго определенным. Он содержит четко определенные поля и ничего более. А глобальная переменная panels хранит только объекты типа Panel и ничего более. В программе я пишу:
var panel=panels[pan];
panel.width=200;
Никаие доки не помогут определить среде, что panel это объект типа Panel, который содержит поле width, но не содержит поля widht. Если бы тип Panel был известен, во-первых как только я написал бы panel. сразу появился бы автокомплит, который подсказал бы поле width. Во-вторых, если я все-таки напишу panel.widht, в нормальном языке компилятор бы выругался на несуществующее поле. В javascript panel.widht=200 будет понято как желание ввести в объект panel новое поле widht и присвоить ему значение 200. Поле width при этом разумеется не изменится и программа нормально запустится. После чего придется очень долго выяснять в отладчике, почему ширина панели не меняется. Я говорю исключительно об этих проблемах. Документирование на JSDoc тут не спасет.

Чтобы выловить такие ошибки, можно использовать Object.seal на всех объектах этого типа сразу после добавления всех необходимых свойств (и включить строгий режим, чтобы выскакивала ошибка при неправильных действиях). Или более мягкий вариант - Object.preventExtensions.

eugenk 15.05.2013 01:57

Да нет, приложение самое обычное. Есть база данных. Объекты в ней имеют иерархическую структуру. Например территории, которые сами включают территории. Логически все очень похоже на организацию файловой системы. Поэтому и приложение очень похоже на обычный двухпанельный файловый менеджер (Тотал командер, как наиболее известный, или фар, или mc...) Какие там особые задачи ? Двигать панельки, заполнять их текстом, обрабатывать F1...F12 с соответствующими действиями. Вобщем стандартно. Ну и типы соответствующие. Панелька, менюшка, окошко...Всё очень стандартно. Но как это написать на javascript не поломав при этом мозги - у меня не укладывается в голове. Точнее написать-то конечно написал, но количество мозгофакства и геморроя не идет ни в какое сравнение с таким же проектом на С++ или флеше.
По поводу флеша - увы. Заказчик потребовал именно на javascript ибо приложение предполагалось запускать еще и на айпадах. Если бы я знал во что это выльется, я бы лучше для айпада нативную версию на obj-с написал. Было бы точно быстрее. Вобщем сейчас поставил typescript, буду его копать. Наверняка дело пойдет веселее.

eugenk 15.05.2013 02:00

Object.seal ??? Не слыхал никогда о таком звере ! Спасибо, буду смотреть.

oneguy 15.05.2013 02:12

Цитата:

Сообщение от eugenk (Сообщение 250547)
Object.seal ??? Не слыхал никогда о таком звере ! Спасибо, буду смотреть.

Правда, он не работает в старых браузерах, в том числе IE<9.

eugenk 06.07.2013 14:22

Приветствую ещё раз, многоуважаемый all, всё теми же словами - "Сами мы не местные" :D
Короче господа. Проект мой разросся примерно до 5К строк. Сдал я его, получил денюшку и на том успокоился. Но вчера написал заказчик и попросил добавить довольно сложную фичу - возможность создавать в базе данных произвольные типы и произвольные связи между типами. Выльется это на клиенте в редактор произвольных форм, причем с довольно специальными свойствами. Но не в том беда, написать напишу. Беда в том, что глянул я на свой код и просто опустились руки. Стало ясным, что зря я с самого начала поленился, не послушался местных гуру и не перевел проект на typescript, пока там была 1000 строк. Теперь стало совершенно очевидным, что на javascript писать дальше нельзя. В связи с этим вопрос многоопытным гуру. Господа-таварисчи ! Никто не сталкивался с переносом существующих больших (несколько тысяч строк) проектов с javascript на typescript ? Если да, опишите примерно, в общих словах, как это делается ? И еще, посоветуйте, что бы такое по typescript почитать, желательно (но не обязательно) на русском ? А то что-то никаких достойных руководств я по нему не нашел. Так, чтобы начать, оно достаточно. Но всерьез работать - нет.

P.S. Народ, тот же вопрос для питона. Подскажите, ежели кто на нём что-то серьезное писал. Есть ли для python некая приблудина, типа typescript ? Причем строго для версии 2.7.x ? Я слыхал что вроде для 3.Х доступна такая хрень как аннотации, фактически хоть фейковые, но типы. Но мне на нём в будущем придётся nlpack поднимать. А он увы пока только для 2.Х.

pikko 06.07.2013 14:57

проще распробовать прелесть динамической типизации,
вы просто не умеете её готовить

eugenk 06.07.2013 15:42

Цитата:

Сообщение от pikko (Сообщение 260537)
проще распробовать прелесть динамической типизации,
вы просто не умеете её готовить

Да нет. Не знаю каких объемов были Ваши проекты, но сам я серьезно программирую где-то с середины 80-х. А свою первую прогу на фортране вырезал бритвой на перфокартах в 1978-м :) И весь мой опыт говорит, что языки, не допускающие статической типизации, это АБСОЛЮТНОЕ ЗЛО. Правда усиленно прикидывающееся добром, при объемах кода не более сотни-двух строк :)

bes 06.07.2013 23:15

по-моему это только твоя привычка, как выяснилось ещё с 80-х

nerv_ 06.07.2013 23:35

Цитата:

Сообщение от eugenk
Короче господа. Проект мой разросся примерно до 5К строк. Сдал я его, получил денюшку и на том успокоился. Но вчера написал заказчик и попросил добавить довольно сложную фичу - возможность создавать в базе данных произвольные типы и произвольные связи между типами. Выльется это на клиенте в редактор произвольных форм, причем с довольно специальными свойствами. Но не в том беда, написать напишу. Беда в том, что глянул я на свой код и просто опустились руки. Стало ясным, что зря я с самого начала поленился, не послушался местных гуру и не перевел проект на typescript, пока там была 1000 строк. Теперь стало совершенно очевидным, что на javascript писать дальше нельзя.

Не вижу связи между динамической типизацией и неумением проектировать приложения.
5000 строк - это небольшой проект :)

Цитата:

Сообщение от eugenk
И весь мой опыт говорит, что языки, не допускающие статической типизации, это АБСОЛЮТНОЕ ЗЛО.

я писал на языке со статической типизацией, и мой опыт говорит, что ваш опыт не прав :D думаю, вы просто не знаете js на должном уровне и/или не умете строить на нем приложения.

eugenk 07.07.2013 17:17

nerv_, можно с этого места подробнее ? Как по-Вашему нужно проектировать приложения ? Что Вам помогает отслеживать ошибки ? Точнее не ошибки даже, а скорее описки, когда вместо названия поля width Вы написали widht ? При статической типизации выругается компилятор. 100% динамический язык поймет ситуацию так, будто Вы вводите новое поле с названием widht в дополнение к существующему width. Поймите, я не подколки ради спрашиваю. Мне правда очень интересно, как народ работает там, где я чувствую себя со связанными руками. А 5К строк, таки да, согласен. Это немного. На С++ я пишу такое за месяц. Но на js почувствовал что это уже предел.

bes 07.07.2013 19:34

Цитата:

Сообщение от eugenk
Что Вам помогает отслеживать ошибки ? Точнее не ошибки даже, а скорее описки, когда вместо названия поля width Вы написали widht ?

кто-то мешает посмотреть в консоль?
var width = 100;
var g = 100 + widht; //Uncaught ReferenceError: widht is not defined

mta88 07.07.2013 20:02

Цитата:

сам я серьезно программирую где-то с середины 80-х
Цитата:

И весь мой опыт говорит, что языки, не допускающие статической типизации, это АБСОЛЮТНОЕ ЗЛО.
странно, а мне казалось что известные среди программистов "старички" предпочитают языки с динамической типизацией
и это ЗЛО не такое уж и АБСОЛЮТНОЕ, что доказывают миллиарды строк кода, большая популярность и серъезные проекты

Цитата:

Как по-Вашему нужно проектировать приложения ? Что Вам помогает отслеживать ошибки ? Точнее не ошибки даже, а скорее описки
то есть кроме описок никаких ошибок в программах у вас не бывает? логических? архитектурных?

Цитата:

Мне правда очень интересно, как народ работает там, где я чувствую себя со связанными руками.
видимо они применяют автоматизированное тестирование и паттерны проектирования
а вы тестируете свой код?

чтобы оценить ваш авторитет, неплохо бы увидеть немного кода из обсуждаемого проекта, скажем строк 300
может это вы пишете на javascript как на fortran :)

eugenk 07.07.2013 20:38

mta88, меня сейчас интересуют именно описки. Ибо если среди всего прочего будут присутствовать и они, вообще слабо себе представляю, как с этим можно работать. В статических языках всё это отсекает компилятор. Как я тестирую свой код ? Хороший вопрос. Ответ - как придется. Ошибки у меня главным образом алгоритмические. Глупые описки не позволяет делать компилятор. Архитектурные вещи как правило решаются на этапе проектирования. Алгоритмы - это да. Поэтому обычно пишу некий связный кусок в несколько методов (не обязательно даже цельный класс). А потом это тестирую на каких-то примерах. Кстати иногда бывает и так, что для тестов приходится писать некий инструментарий и тестировать его самого. Если знаете как тестировать проще - подскажите.
По поводу 300 строк из моего кода - не знаю что Вам это даст. Пишу на jquery+jqueryui. 300 строк решают какую-то достаточно частную задачу. Да, наверняка не оптимально, ибо в js я новичок. Мне бы куда больше хотелось увидеть какой-нибудь Ваш законченный проект на 3-10 тысяч строк. Ибо интересуют не частные задачи, а МЕТОДОЛОГИЯ и АРХИТЕКТУРА. Я в свою очередь обязуюсь выставить на суд публики свой проект, после того как переведу его на typescript. Если народ тут никогда не писал на статических языках, возможно кто-то поймет, насколько оно хорошо и удобно.

bes 07.07.2013 20:52

Цитата:

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

java vs javascript
и js у меня в большем авторитете :)

и, чувак, ты игнорируешь мои посты ;)

eugenk 07.07.2013 21:47

java vs javascript
и js у меня в большем авторитете

и, чувак, ты игнорируешь мои посты
===================================
Если не трудно ссылочку дайте плз. Я вобщем-то форум не особо смотрю. Мог и не увидеть. Без обид. Ок ?

nerv_ 07.07.2013 22:26

Цитата:

Сообщение от eugenk
Точнее не ошибки даже, а скорее описки, когда вместо названия поля width Вы написали widht

1. возможно, вам пригодится строгий режим (если вы его еще не используете)
'use strict';

2. используйте нормальную ide. Они даже цветом выделяют :)

bes 07.07.2013 23:17

Цитата:

Сообщение от eugenk
Если не трудно ссылочку дайте плз. Я вобщем-то форум не особо смотрю. Мог и не увидеть. Без обид. Ок ?

открываешь свою тему (эту, которую сейчас читаешь), смотришь сообщения в ней, где видишь мою аватарку и написано bes, там и моё сообщение непосредственно ниже (не в другой же теме я с тобой разговариваю, или ты только последнее сообщение в теме читаешь :) )

eugenk 08.07.2013 00:00

bes, я вот об этом - "java vs javascript".
Как я понял, то ли Вы написали статью, где вдумчиво и со знанием дела сравнивается js с явой, то ли таковая статья где-то существует. Так что если уж я волею судеб оказался на террирории js и судя по всему надолго, хотелось бы что-то на эту тему прочитать. Именно эту ссылочку я у Вас и попросил.

mta88 08.07.2013 05:03

Цитата:

Как я тестирую свой код ? Хороший вопрос. Ответ - как придется
Цитата:

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

Кстати иногда бывает и так, что для тестов приходится писать некий инструментарий и тестировать его самого.
п****ц:(

Цитата:

По поводу 300 строк из моего кода - не знаю что Вам это даст.
хотя бы посмотрю, как вы называете переменные и функции и есть ли отступы в коде

Цитата:

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

melky 08.07.2013 15:30

Цитата:

Сообщение от eugenk
По тому, как она показывает код, я вижу, что юзаются какие-то частотные и вероятностные методы анализа в попытке определить тип переменной. Но все равно автокомплит толком не работает !

интересно, чем JSDOC не угодил?

Цитата:

Сообщение от eugenk
Вобщем по опыту этого проекта я понял, что 100% динамическая типизация есть 100%, т.е. АБСОЛЮТНОЕ ЗЛО, делающее язык непригодным для написания чего-либо серьезного. Раньше я иногда спорил, отстаивая эту точку зрения чисто теоретически, ибо никогда ранее на подобных языках не писал. Но сейчас на 100% в этом убедился.

что за бред? докажите свою точку зрения.

Цитата:

Сообщение от eugenk
Итого, не хочу разводить тут флейма и холивара,

уже.


и... можно ваш код посмотреть?

bes 08.07.2013 20:10

Цитата:

Сообщение от eugenk
bes, я вот об этом - "java vs javascript".

а я о том, что вместо того, чтобы додумывать, можно посмотреть в консоль ;)
http://javascript.ru/forum/misc/3793...tml#post260769

Цитата:

Сообщение от eugenk
Как я понял, то ли Вы написали статью, где вдумчиво и со знанием дела сравнивается js с явой, то ли таковая статья где-то существует. Так что если уж я волею судеб оказался на террирории js и судя по всему надолго, хотелось бы что-то на эту тему прочитать. Именно эту ссылочку я у Вас и попросил.

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

eugenk 09.07.2013 00:47

Ладно ребят. Как я понял, говорить тут не с кем и не о чем. За совет переходить на typescript огромное спасибо. Действительно спасением оказалось. Пока народ тут флудил, кстати так и не ответив на мой вопрос о методике переноса существующих проектов, я сам такую методику отработал. И дальше продолжу сам. Если у кого-то возникнут вопросы по typescript вообще и по переносу на него существующих проектов в частности (а тонкости там выявились), милости прошу в личку. Чем смогу помогу.

bes 09.07.2013 19:48

Цитата:

Сообщение от eugenk
Ладно ребят. Как я понял, говорить тут не с кем и не о чем. За совет переходить на typescript огромное спасибо. Действительно спасением оказалось. Пока народ тут флудил, кстати так и не ответив на мой вопрос о методике переноса существующих проектов, я сам такую методику отработал. И дальше продолжу сам. Если у кого-то возникнут вопросы по typescript вообще и по переносу на него существующих проектов в частности (а тонкости там выявились), милости прошу в личку. Чем смогу помогу.

пафос - это твой конёк, так сказать, твой единственный аргумент ;)

oneguy 13.07.2013 01:57

Цитата:

Сообщение от eugenk (Сообщение 260744)
Точнее не ошибки даже, а скорее описки, когда вместо названия поля width Вы написали widht ? При статической типизации выругается компилятор. 100% динамический язык поймет ситуацию так, будто Вы вводите новое поле с названием widht в дополнение к существующему width. Поймите, я не подколки ради спрашиваю. Мне правда очень интересно, как народ работает там, где я чувствую себя со связанными руками.

Я же писал об Object.seal(). Чем он не помог?

oneguy 13.07.2013 01:59

Цитата:

Сообщение от eugenk (Сообщение 260786)
Мне бы куда больше хотелось увидеть какой-нибудь Ваш законченный проект на 3-10 тысяч строк. Ибо интересуют не частные задачи, а МЕТОДОЛОГИЯ и АРХИТЕКТУРА.

Хоть и не мой проект, но можете посмотреть библиотеку jQuery как проект в качестве примера.

eugenk 13.07.2013 23:12

Цитата:

Сообщение от oneguy (Сообщение 262001)
Я же писал об Object.seal(). Чем он не помог?

Да нет, просто перешел на typescript и забыл js как страшный сон. Единственно что сильно достает, это html/css-разметка. Штука куда менее удобная чем тот же flash или QT. Но слава Всевышнему теперь есть удобоваримый язык, кстати со всеми возможными бонусами js, но допускающий привычный мне строгий стиль программирования.

jquery глядел конечно. А jqueryui даже немного допиливать для своих нужд пришлось. Что заметил, что во всяком случае визуально они выглядят очень похоже на файлы, порождаемые typescript. Даже подумалось сперва, не на нем ли исходники. Знаю что бред конечно, ибо библиотеки гораздо старше. Но как показатель качества компиляции typescript мне понравилось.

nerv_ 13.07.2013 23:28

Цитата:

Сообщение от eugenk
но допускающий привычный мне строгий стиль программирования

итог: проблема в ваших стереотипах, а не js


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