Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Typescript vs Dart (https://javascript.ru/forum/offtopic/32335-typescript-vs-dart.html)

Gozar 13.10.2012 01:59

Цитата:

Сообщение от x-yuri
Идея как раз в том и состоит, чтобы поломать совместимость и при этом получить некоторые бонусы.

IE 5, 6 разве не на этой же идее строились? Только бонусы там какие-то недоразвитые оказались. Мало было VBScript, не спится мс спокойно, пока мир не порабощён ещё одним высосанным из пальца продуктом.

x-yuri 13.10.2012 03:55

Цитата:

Сообщение от x-yuri
Идея как раз в том и состоит, чтобы поломать совместимость и при этом получить некоторые бонусы.

Я про Dart, а не TypeScript. У MS как раз консервативная позиция в данном случае. Да и сравнивать Dart c IE 5, 6 нельзя на мой взгляд. Там была конкуренция с Netscape и методы у Microsoft несколько другие, по сравнению с Google. По-крайней мере были.

Цитата:

Сообщение от Gozar
Только бонусы там какие-то недоразвитые оказались.

Понятное дело что не всегда подобные идеалистичные проекты удаются. Но например, MS Office хороший пример. Бывают случаи, когда лучше переделать. Ничего не хочу сказать по поводу javascript, но похоже что с точки зрения google надо переделать.

dmitry111 13.10.2012 05:02

Когда большие компании вроде гугл и майкрософт начинают создавать пусть и хорошие но если вдуматься идиотские проекты это ни к чему хорошему не приводит.

Кому-то нравится Dart, кому-то TypeScript. Может быть они являются достойной альтернативой JS и в них исправлены все недочеты (в чем не уверен). Но результатом таких экспериментов будет еще большая путаница и как следствие новые браузерные недопонимания.

Вряд ли какая-то из компаний будет поддерживать конкурента.

FINoM 13.10.2012 05:07

Цитата:

Сообщение от dmitry111
Когда большие компании вроде гугл и майкрософт начинают создавать пусть и хорошие но если вдуматься идиотские проекты это ни к чему хорошему не приводит.

Кому-то нравится Dart, кому-то TypeScript. Может быть они являются достойной альтернативой JS и в них исправлены все недочеты (в чем не уверен). Но результатом таких экспериментов будет еще большая путаница и как следствие новые браузерные недопонимания.

Вряд ли какая-то из компаний будет поддерживать конкурента.

Во во. Пусть пилят новые версии ЭкмаСкрипт, вместо того, чтоб херней страдать.

x-yuri 13.10.2012 06:25

Цитата:

Сообщение от FINoM
Во во. Пусть пилят новые версии ЭкмаСкрипт, вместо того, чтоб херней страдать.

Другими словами ты против эволюции, так и запишем...

dmitry111 13.10.2012 08:05

Цитата:

Сообщение от x-yuri (Сообщение 209772)
Другими словами ты против эволюции, так и запишем...

Эволюция - это когда все сели и договорились, как например WHATWG в свое время, когда W3C уже "положила .. с прибором" на XHTML 2.0 и уже почти опустила руки. Благодаря чему появился стандарт исчезла версионность, Стив Джобс предложил adobe поискать работу и веб стал практически независим от сторонних конторок..
Если бы производители перестали выкабениваться c видео, аудио форматами был бы вообще мир во всем мире

А то о чем тут речь правильнее было бы назвать революцией

Gozar 13.10.2012 14:02

Цитата:

Сообщение от dmitry111
А то о чем тут речь правильнее было бы назвать революцией

Согласен, верно подмечено.

Цитата:

Сообщение от x-yuri
Другими словами ты против эволюции, так и запишем...

Эволюция, это развитие популяции в целом, а не одной личности. А в данном случае имеет место вирус. Который возможно изменит всю популяцию, через мутации, а возможно и нет. И получим мы, как и выше сказано, - кучу мала.

x-yuri 13.10.2012 17:09

Цитата:

Биологи́ческая эволю́ция — естественный процесс развития живой природы, сопровождающийся изменением генетического состава популяций, формированием адаптаций, видообразованием и вымиранием видов, преобразованием экосистем и биосферы в целом.
Но не будем придираться к терминам, мало ли чего в википедии пишут. Пусть это будет революция. Но революция - это не плохо.
Цитата:

Отношение между понятиями революции и эволюции обоюдно-симметрично. Как революция логически связана с эволюцией, предполагает ее, так и эволюция логически связана с революцией, предполагает ее. Иными словами, становление полноценно лишь при наличии обоих процессов: революции и эволюции. Без революции становление не двигается вперед, не прогрессирует, «топчется на месте», «ходит кругами», повторяя, воспроизводя одни те же формы. Без эволюции становление эфемерно, нежизнеспособно, катастрофично.

Революция решает задачу достижения более высокой ступени становления через рождение нового, небывалого.

Эволюция решает задачу развития, совершенствования и распространения нового, укрепления его позиций на достигнутой ступени лестницы становления. Революция — это переход от более низкой, более простой формы развития к более высокой, более сложной форме. Эволюция — это развитие развития, т. е. развитие однажды возникшей формы развития.
---

Цитата:

Сообщение от Gozar
И получим мы, как и выше сказано, - кучу мала.

Цитата:

Сообщение от dmitry111
был бы вообще мир во всем мире

А, так вы на мир во всем мире надеетесь? Ну так не будет такого. А если будет, то это будет означать, что мы все умерли ;) Мне конечно же понятно ваше желание максимально упростить себе жизнь. Но это не повод препятствовать появлению нового. Пусть умрет тот, кто должен умереть и будет жить тот, кто должен жить. Аллах Акбар. :)

DjDiablo 13.10.2012 18:12

Цитата:

Пусть умрет тот, кто должен умереть и будет жить тот, кто должен жить.
Это подход капитализма :)
Экономически неэфективный должен уйти, точнее загнуться ))) В своё время либиралы на западе заигрались этим подходом, а потом спохватились и вынуждены были вводить соц гарантии.

Но по отношению к языкам программирования такой подход допустим наверно :)

Однако для эволюции нужна конкуренция, а сейчас у нас диктатура javascript. Свержение диктатора это революция всегда. Если бы все браузеры приняли dart то это была бы революция. Хотя наверное нужна платформа для того тобы любой игрок мог сделать свой язык, тогда бы и игра была честнее.

Nekromancer 13.10.2012 19:12

Можно сказать прощее, Harmony aka ES6 -- эволюция, Dart -- революция. На мой взгляд у ES больше гвнсов сделать/оставить веб единым. В то время как Dart принисёт ща собой новую сегментацию.

Gozar 13.10.2012 19:27

Цитата:

Сообщение от x-yuri
А, так вы на мир во всем мире надеетесь? Ну так не будет такого.

Я начинал изучение JavaScript с VBScript, вернее это был VBScript, а не JavaScript. Кому как не мне помнить недоумение, в попытке понять различия между этими двумя языками и невольную радость, когда я узнал что есть один язык для всех браузеров и разочарование, когда я понял что языки не идентичны, а просто похожи и у одного из них проблемы с обновлением.

Мы всё это уже проходили. Я больше бы удивился, если бы ms не выпустило ещё одну версию js в виде typescript, но я точно этому не рад. Хотя в принципе мне до барабана, т.к. в ближайшие пару лет я об этом даже не подумаю ни разу.

Ишак должен умереть, либо обновляться спокойно без вырезания и вклеивания в систему. Хотя лично меня бы устроило если бы он просто помер. Это будет эволюция. Революция - всегда плохо. Она откидывает развитие порой на долгие десятки лет. Кампай! :)

Gozar 13.10.2012 21:18

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

Ведь если так подумать, то IE10 всего лишь догнал конкурентов. Ничего сверх нового в нем нет, никакой изюминки, никаких бонусов. Это запоздалый, никому не нужный продукт.

Лично я не испытываю никаких трудностей при написании больших приложений. А в чём трудности?

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

Борьба корпораций на лицо не более. Идея взять двух котов, засунуть в один мешок и ждать что они там будут дружно сосуществовать мне кажется абсурдной. Похоже ms так не считает и решил и js-иков оставить и других программистов подтянуть на работы.

Ну что сказать. Платите ms дальше за их корявые оси, чтобы они и дальше могли ставить на вас эксперименты и смотреть, что из этого веселого получится.

К языку претензий нет, как собственно к любому другому языку. На нем либо придется писать либо нет. Остальное пустые разговоры ни о чём.

PS: А чтобы нагнать понту и пресечь срачи нужно пригласить какую-нибудь авторитетную Личность, которая будет пиарить продукт по умолчанию. Как в данном случае и сделали, пригласили:

[QUOTE:Warhammer]Хейлсберг,_Андерс, один из основных авторов Dellhi и c#[/quote]

DjDiablo 14.10.2012 04:20

Цитата:

А в чём трудности?
javaScript по прежнемe язык для написания маленьких скриптов на скорую руку, а не серьёзных программ.

В большой программе обычно много человек, и нужно согласовать работу над компонентами, компонентов много, людей тоже. Хорошо бы описать совместимость этих компонентов отдельно к примеру в Интерфейсах или Абстрактных классах. Тогда бы можно было увидеть все ошибки связанные с несовместимосью компонентов уже на этапе компиляции, а не после кучи тестов. Но ведь в js нет ни интерфейсов ни классов.

Наверное разные части приложения хорошо бы разместить в разные файлы, и подгружать их по мере необходимости. Но в js нет этой возможности. Спасибо что хотябы есть eval.

У меня куча функций, хорошо чтобы программист передав некорректное значение в функцию сразу бы об этом узнал, а не любовался на остановленный скрипт, или кривую картинку гадая в чём дело. В решении этого вопроса мне могла бы помочь статическая типизация, которая не пропустила бы некоректные аргументы функции. Но в js вы передаёте какие угодно параметры, и столько сколько захотите.

Бесполезность протипов я много раз ругал уже. За что был обвинён в ООП головного мозга. Забавно что google в dart, microsoft в typeScript, es6,coffescript как и подавляющее число фреймворков классы реализовали всё таки, или вспомогательные методы вроде extend или define, наверно они все тоже дураки. Только штык jQuery молодец :D.

вот и выресовывается наборчик по требования.
типизация+интерфейсы+класс ы+ модульность

Теперь смотрим typeScript и дарт,
и видим классы, интерфейсы, модульность, типизация. :D

проблемы есть, а typeScript и дарт убогие пока, но всё же попытки их решения. Ну и на том спасибо.

Nekromancer 14.10.2012 04:44

Ну и чего ты тогда на JS пишешь?

FINoM 14.10.2012 04:54

Цитата:

Сообщение от DjDiablo
Но ведь в js нет ни интерфейсов ни классов.

Сделай сам.
Цитата:

Сообщение от DjDiablo
модульность

Сделай сам.
Цитата:

Сообщение от DjDiablo
типизация

Тут проблема. Единственная и малозначимая (для меня и большинства других разработчиков) проблема.

x-yuri 14.10.2012 07:13

Цитата:

Сообщение от DjDiablo
Это подход капитализма

Это жизнь.

Цитата:

Сообщение от DjDiablo
Экономически неэфективный должен уйти, точнее загнуться )))

Я такого не говорил. Я про то, что если кто-то из сторон проиграет, значит... все там будем :) А в процессе можно либо участвовать, либо не участвовать.

Цитата:

Сообщение от DjDiablo
Хотя наверное нужна платформа для того тобы любой игрок мог сделать свой язык, тогда бы и игра была честнее.

А зачем делать игру честнее? Ведь это оно с точки зрения большинства будет честнее. А для меньшинства все в противоположную сторону поменяется.

Цитата:

Сообщение от Gozar
Революция - всегда плохо. Она откидывает развитие порой на долгие десятки лет.

Другими словами, ты бы предпочел медленно и мучительно умирать, чем возродится из пепла. А мне казалось, такая убедительная цитата вышла...

Цитата:

Сообщение от DjDiablo
Бесполезность протипов я много раз ругал уже. За что был обвинён в ООП головного мозга. Забавно что google в dart, microsoft в typeScript, es6,coffescript как и подавляющее число фреймворков классы реализовали всё таки, или вспомогательные методы вроде extend или define, наверно они все тоже дураки. Только штык jQuery молодец .

Начнем с того, что даже если твой код выглядит как class-based, это не значит что внутри не используются прототипы. И прототипы эти можно менять во время выполнения. Большинство же class-based языков не позволяет менять классы во время выполнения. И разница на самом деле не такая большая. Prototype-based языки просто более динамические по большей части. Т.е. приходим к тому, что es6, coffeescript и большинство фреймворков просто предоставляют более наглядный синтаксис для прототипного наследования.

Цитата:

Сообщение от Gozar
Лично я не испытываю никаких трудностей при написании больших приложений. А в чём трудности?

Я не то чтобы испытываю трудности. Но я бы не отказался делать поисковые запросы по коду, чтобы не приходилось это делать в несколько этапов, отфильтровывая лишние вхождения. Начиная от поиска использования методов и переменных, до, например, поиска использования поля базы данных. А может вообще, пусть будет какой-то API, который можно будет заточить под конкретный проект. Да, я люблю помечтать, бывает... :)

nerv_ 14.10.2012 12:38

с точки зрения производительности статическая типизация была бы кстати.

Цитата:

Сообщение от Nekromancer
Ну и чего ты тогда на JS пишешь?

+1. Возник аналогичный вопрос.


Или я пропустил, или новый Яндекс Браузер еще не обсуждали? :)
Новый Яндекс.Браузер
Браузер Yandex
Презентация Яндекс.Браузера

Например. в нем есть такая штука:
Цитата:

Надёжная защита от вирусов
Веб-страницы проверяет система безопасности Яндекса, а от вирусов в скачиваемых файлах оградит защита Касперского.

DjDiablo 14.10.2012 13:19

Ребят я неспорю вроде как ни с кем, а лиш дополняю.
Просто спросили о проблемах, я описал своё имхо. Помоему javascript очень удачный язык, но требования растут, приложения усложняются, и в новые редакции языка подтягивают новые инструменты. Не понимаю почему этому надо противостоять.

Цитата:

Ну и чего ты тогда на JS пишешь
Странный вопрос мне платят за продукт работающий в браузере, а написать его можно только на JS. Флэш/java не на всех машинах. К тому же мне нравится js, несмотря на недостатки.

Сделай сам.
Делаю :D

Цитата:

class-based, это не значит что внутри не используются прототипы
Знаю.

UPD: Старенькие браузеры в сети всё ещё доступны :D
http://www.oldversion.com/Netscape.html
http://www.oldapps.com/netscape.php

http://www.oldapps.com/internet_explorer.php


Хаха, нетскейп 4й под 7ку, угарно :D :D :D Я ведь на этом говне работал ))) Аж в груди защимило :D :D :D
яндекс ошибками завалил ))

Nekromancer 14.10.2012 14:55

Действительно, приложения усложняюстся и новые редакции вводят новые возможности. Однако JS изначально разрабатовался не для игр и почтовых клиентов как GMail, а для маленьких скриптов и программок. По этому, создатель пытался построить максимально легкую абстракцию где не нужно думать и производительности, где можно менять все на лету, где нет жесткой типизации. Однако врямя идет, нужно развиваться и все это понимают, выпускают 4ую редакцию ES -- но черт возьми! Она сломает совместимость, ведь Майкрософт не собирается делать никаких движений и тянет всех на 10 лет назад.. Разработка приостанавливается. JS сейчас не такой как должен быть, он отстал. Однако, сейчас все зашевелились и разрабатывают ES6. Что же по Дар ту, могу сказать, что многие вендоры 100%тно на него не перейдут, разве что, ES6 загнётся. По этому, мне кажется, что Дарт принесет лишь новую сегментацию. Эта революция сложна.

trikadin 14.10.2012 18:32

Цитата:

Сообщение от nerv_
Надёжная защита от вирусов
Веб-страницы проверяет система безопасности Яндекса, а от вирусов в скачиваемых файлах оградит защита Касперского.

У меня такая штука в линуксе по умолчанию :D Но при этом версию под линукс они так до сих пор и не собрали)

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

Nekromancer 14.10.2012 18:34

Потому шо, Яндекс готовится выпустить свою операционную систему на базе Линукс, принципиально новую и без вирусов :) И только на ней пойдёт их браузер.

trikadin 14.10.2012 18:36

Цитата:

Сообщение от Nekromancer
свою операционную систему на базе Линукс, принципиально новую и без вирусов

Она? :D:D:D:D

Nekromancer 14.10.2012 18:43

Ага, токо то будет Chromium OS Ya OS и начнут делать ноутбуки и будут рассказывать, как они долго метались, взять Firefox OS или Chromium OS :)

trikadin 14.10.2012 19:27

Пока что единственный отзыв на "Yandex.Browser", который я видел - это "Один плюс в Яндекс.Браузер. Удалился за полминуты"

nerv_ 14.10.2012 21:49

Цитата:

Сообщение от Nekromancer
Потому шо, Яндекс готовится выпустить свою операционную систему на базе Линукс, принципиально новую и без вирусов И только на ней пойдёт их браузер.

:D

Цитата:

Сообщение от trikadin
Пока что единственный отзыв на "Yandex.Browser", который я видел - это "Один плюс в Яндекс.Браузер. Удалился за полминуты"

ну, не все так плохо :) Они сколько вакансий размещали, надеялись тебя переманить, а ты все не идешь, да не идешь ) Вот с горя и решили браузер запилить, чтобы привлечь твое внимание )))

DjDiablo 14.10.2012 22:26

Табы выпадающие единственное что понравилось
ну и opera turbo думаю тоже прикольно.
я таже презентацию неполенился посмотреть http://video.meta.ua/5120988.video
кстатии кто посмотрит обратите внимание какое влиянее опера оказала на браузеры, респект опере :D

сказали что хотели написать с нуля браузер, но выбрали хромиум из жалости к разработчикам :D :D. Бляаааать спасибо кореша, уважили ))) Это самая беспонтовая отмазка :D :D.

DimaJS 14.10.2012 22:28

DjDiablo,
юзеры поверят :D

Nekromancer 14.10.2012 22:28

Хомячки всё равно ведуться. Они до сих под думают, что Chrome под iOS это действительно Chrome.

Nekromancer 14.10.2012 22:32

DjDiablo,
Вырубил ролик в тот момент, когда они сказали, что над браузерам работали почти год и, что над ним работали 10тки человек.

За это время можно навоять новый layout engine, если не больше.

tenshi 14.10.2012 22:46

Но ведь в js нет ни интерфейсов ни классов.
Сделай сам.

модульность
Сделай сам.

типизация
Тут проблема. Единственная и малозначимая (для меня и большинства других разработчиков) проблема.

---

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

tenshi 14.10.2012 22:50

>> Идея как раз в том и состоит, чтобы поломать совместимость и при этом получить некоторые бонусы.
> IE 5, 6 разве не на этой же идее строились? Только бонусы там какие-то недоразвитые оказались. Мало было VBScript, не спится мс спокойно, пока мир не порабощён ещё одним высосанным из пальца продуктом.

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

FINoM 14.10.2012 22:53

tenshi, многие реализации классов выглядят довольно-таки симпотно. Интерфейсы можно сделать, например, так:
interface = new Interface({
  s: String,
  w: SomeClass,
  f: Function,
  i: Number
});

MyClass = Class( interface, Parent, Constructor, prototype );

tenshi 14.10.2012 23:00

из записи совершенно не очевидно что всё это значит. не пояснишь?

Nekromancer 14.10.2012 23:03

tenshi,
Мне очивидно.

FINoM 14.10.2012 23:04

Цитата:

Сообщение от tenshi
из записи совершенно не очевидно что всё это значит. не пояснишь?

Перечисление свойств и соответствующих конструкторов, например, класс MyClass, реализующий интерфейс interface должен содержать s, конструктором которого должен быть String, должен содержать f, конструктором которого будет Function и т. п.

FINoM 14.10.2012 23:05

Точнее объекты, которые являются инстанцами MyClass должны содержать...

tenshi 14.10.2012 23:30

Nekromancer, спасибо, держи меня в курсе

FINoM, f который Function может принимать и возвращать всё, что угодно или всё же что-то конкретное? i принимает примитив numer или инстанс Number? почему w обязан быть именно инстансом SomeClass, а не реализовывать тот же интерфейс? зачем каждый раз вручную приводить значение к типу string чтобы записать в s, если каждый объект умеет это делать автоматически?

FINoM 14.10.2012 23:34

Цитата:

Сообщение от tenshi
FINoM, f который Function может принимать и возвращать всё, что угодно или всё же что-то конкретное?

В данном случае всё. Ты имеешь в виду какой-то конкретный тип?
Цитата:

Сообщение от tenshi
почему w обязан быть именно инстансом SomeClass

Потому что я так захотел.
Цитата:

Сообщение от tenshi
а не реализовывать тот же интерфейс?

Не въехал в фразу.
Цитата:

Сообщение от tenshi
i принимает примитив numer или инстанс Number?

Какая разница? Тупо проверять конструктор.
Цитата:

Сообщение от tenshi
зачем каждый раз вручную приводить значение к типу string чтобы записать в s, если каждый объект умеет это делать автоматически?

Тоже не понял, поясни.

tenshi 14.10.2012 23:36

ну и получилась у тебя статическая типизация, а не интерфейсы)

а для SomeClass будет такая проверка?
new SomeClass( value )
боюсь не все классы адекватно к ней отнесутся

а для строки такая?
new String( value )
а боюсь она пройдёт для любых типов

FINoM 14.10.2012 23:38

Цитата:

Сообщение от tenshi
а для SomeClass будет такая проверка?

Проверка конструктора.
this.w.constructor === SomeClass
Цитата:

Сообщение от tenshi
а для строки такая?

То же самое.


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