Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > JavaScript сильно типизированный


Автор: Rohoss 27.2.2010, 14:09
Когда этот язык создавался, и сейчас, Веб уже совершенно другой… Как вы думаете, если бы JavaScript был сильно типизированным, это улучшило бы современный интернет?

Автор: LSD 27.2.2010, 14:47
Для сильно типизированных языков проще создавать компиляторы (в том числе и JIT). Так что думаю, что производительность JS движков браузеров, была бы выше. А значит на нем бы было реализовано больше свистелок и перделок, уж не знаю это расценивать как плюс или как минус smile

Автор: Rohoss 27.2.2010, 14:56
Цитата(LSD @  27.2.2010,  14:47 Найти цитируемый пост)
Так что думаю, что производительность JS движков браузеров, была бы выше. 

ну и более сложные скрипты можно было бы писать  smile 

Автор: GoldFinch 28.2.2010, 22:14
Rohoss, покажи пример где это было бы полезно

Добавлено через 12 минут и 22 секунды
Цитата(LSD @  27.2.2010,  14:47 Найти цитируемый пост)
производительность JS движков браузеров, была бы выше

а мне кажется что там вся производительность упирается в ДОМ и графику

Автор: Alexeis 28.2.2010, 22:29
  Чем строже типизация тем меньше возможностей для разночтения текста, тем яснее компилятор понимает что от него хочет программист. Тем сложнее допустить ошибку так как компилятор больше анализирует при компиляции и меньше в рантайме. Язык сложнее в изучении, но программы получаются надежнее и быстрее.

Автор: fixxer 1.3.2010, 12:09
сильная статическая типизация + грамотный type inference. Позволяет писать так же удобно и лаконично как на динамических языках и также типобезопасно как на статически типизируемых. (см. Хаскель, Scala)

Автор: LSD 1.3.2010, 17:59
Цитата(GoldFinch @  28.2.2010,  22:14 Найти цитируемый пост)
а мне кажется что там вся производительность упирается в ДОМ и графику 

Ну это смотря что делать. Та же реализация MD5/SHA-1 на JavaScript чисто вычислительная задача, или реализация всяких эмуляторов типа http://benfirshman.com/projects/jsnes/ будут требовать высокопроизводительного JS движка (это вовсе не значит, что быстрый DOM не нужен). Стоило появится V8 как стали появляться всякие эмуляторы и 3D бродилки на JS.

Автор: GoldFinch 1.3.2010, 18:45
ну а что конкретно поменять-то?

Автор: Puld 6.8.2011, 11:40
Топик старый, но думаю как раз сейчас все более вопрос встает ребром. с появлением HTML5, полноценного тега <canvas> на JS возлагается большая ответственность за обработку графики. Не типизированный ЯП для этого не очень хороший инструмент. Так же объектно-ориентированность языка тоже как то не устраивает. Понятно что желать от JS что он в миг станет ОО ЯП не стоит, но такий инструмент в клиентской части веб приложения иметь хотелось бы. Это может пригодиться если вы строите клиентскую часть своего веб-приложения таким образом, что все данные запрашиваются скриптом, или загружаются прям в нем же. Скрипты выступают в роли контроллеров, которые отвечают за обработку данных, за построение интерфейса, обрабатывают все действия пользователя. а HTML будет только как результат работы скрипта.  Клиентская часть буден независимой от серверной, все что ей нужно - это получить от сервера данные которые она сама как ей нужно обработает.
В таком случае, единожды описав класс контролла, можно будет его использовать как в десктопе. Создавать экземпляры класса, которые будут жить самостоятельной жизнью. возможно сейчас такое можно реализовать на JS, но я уверен что это намного сложнее чем на десктопе.
Вообщем если JS станет сильно типизированным ЯП, а еще в добавок станет полноценно ОО, то программировать под веб станет также легко и эфективно как писать десктопное клиент-серверное приложение.

Автор: 502 6.8.2011, 13:23
Цитата(Puld @  6.8.2011,  11:40 Найти цитируемый пост)
Не типизированный ЯП для этого не очень хороший инструмент

http://www.lua.org/ не?
Цитата(Puld @  6.8.2011,  11:40 Найти цитируемый пост)
Так же объектно-ориентированность языка тоже как то не устраивает

вы не знаете JavaScript  smile 
Цитата(Puld @  6.8.2011,  11:40 Найти цитируемый пост)
а еще в добавок станет полноценно ОО

что вы понимаете под ОО?    
то что это объектно ориентированное я знаю

Автор: Rohoss 8.8.2011, 21:51
Цитата(Puld @  6.8.2011,  11:40 Найти цитируемый пост)
Топик старый

Топики Рохосса со временем только актуальней становятся  smile 

Цитата(Puld @  6.8.2011,  11:40 Найти цитируемый пост)
Вообщем если JS станет сильно типизированным ЯП

Не станет JS сильно типизированным. ЯП по своей природе расширяются, а вы предлагаете ограничить. Если его вдруг ограничить до сильно типизированного ЯП куча кода перестанет работать. Тут нужен другой клиентский ЯП. Но добавить его не так просто, тело в том, что в веб и так каши с различных технологий хватает. А добавим ещё один массовый клиентский ЯП и будет каша ещё больше. 
Веб надо убить весь и создать поновому   smile 

Автор: lukas 9.8.2011, 11:17
Цитата(Puld @  6.8.2011,  11:40 Найти цитируемый пост)
Вообщем если JS станет сильно типизированным ЯП, а еще в добавок станет полноценно ОО, то программировать под веб станет также легко и эфективно как писать десктопное клиент-серверное приложение. 


Ну совсем не понимаете филисофии JavaScript, вам станет легче, а нам сложнее (тем кто разобрался с философией js). 

Да не будет вообще сильной или даже средней типизации в JS, это принципиально, вы где нибудь ее видели в PHP/Ruby/Python/Lua ? Текущие движки JS настолько быстры и умны (например V8) что догоняют и обходят типизированную Java, а адобовский типизированный ActionScript вообще обганяют в 2 раза.

Автор: k0rvin 13.8.2011, 21:06
Цитата(lukas @ 9.8.2011,  11:17)
Да не будет вообще сильной или даже средней типизации в JS, это принципиально, вы где нибудь ее видели в PHP/Ruby/Python/Lua?

для справки: руби и питон (про луа и пхп просто не в курсе, но думаю они тоже) -- сильнотипизированые (http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%B3%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)

Добавлено через 58 секунд
Цитата(Rohoss @ 8.8.2011,  21:51)
Не станет JS сильно типизированным. ЯП по своей природе расширяются, а вы предлагаете ограничить.

строгая типизация никого и ни в чем не ограничивает.

Автор: 502 15.8.2011, 09:45
Цитата(k0rvin @  13.8.2011,  21:06 Найти цитируемый пост)
пхп

нет

Автор: lukas 17.8.2011, 21:27
Цитата(k0rvin @  13.8.2011,  21:06 Найти цитируемый пост)
для справки: руби и питон (про луа и пхп просто не в курсе, но думаю они тоже) -- сильнотипизированые (строготипизированые)


Да, мало вы знаете о типизации. Там утиная динамическая типизация, такая же в js, только по мягче, но по-строже чем в пхп.

Автор: k0rvin 18.8.2011, 08:41
Цитата(lukas @ 17.8.2011,  21:27)
Цитата(k0rvin @  13.8.2011,  21:06 Найти цитируемый пост)
для справки: руби и питон (про луа и пхп просто не в курсе, но думаю они тоже) -- сильнотипизированые (строготипизированые)


Да, мало вы знаете о типизации. Там утиная динамическая типизация, такая же в js, только по мягче, но по-строже чем в пхп.

охлол. просвещайтесь:

http://en.wikipedia.org/wiki/Strong_typing
Цитата

The object-oriented programming languages Smalltalk, Ruby, Python, and Self are all "strongly typed"


Добавлено через 1 минуту и 37 секунд
прекращайте уже путать теплое с мягким (статическую типизацию и строгую)

Автор: k0rvin 18.8.2011, 08:57
специально для Вас: http://en.wikipedia.org/wiki/Comparison_of_programming_languages#Type_systems

http://itmages.ru/image/view/260418/2b43fdb6

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)