18.12.2015, 09:36 | #41 |
Участник
|
|
|
18.12.2015, 09:51 | #42 |
Участник
|
Я согласен с вами, и вы привели цитату, но параллелизм это следствие, а не цель. Это следствие (параллелизм) появляется в результате того, что мы оперируем чистыми функциями, результат которых зависит только от аргумента и ни от чего более. Следовательно, такие функции можно выполнять параллельно. Но это именно следствие. Основная цель, насколько я это помню из курса лекций и насколько понимаю сам, сделать код максимально модульным, так что, зная результат функции от аргумента можно было бы использовать этот результат независимо от других функций. Так, действительно, можно ввести параллельные вычисления.
|
|
18.12.2015, 10:26 | #43 |
Moderator
|
Вполне себе. У нас есть уже несколько проектов, реализованных на F#.
Как правило, это backend реализованный в виде веб-сервисов. Впечатления самые положительные. В общем то, когда все вокруг уже на .net - выбор не очень большой. Если бы была JVM - я бы выбрал, кстати, Clojure. |
|
|
За это сообщение автора поблагодарили: belugin (4). |
18.12.2015, 11:20 | #44 |
Участник
|
|
|
19.12.2015, 10:02 | #45 |
Участник
|
|
|
21.12.2015, 10:42 | #46 |
Модератор
|
|
|
|
За это сообщение автора поблагодарили: Lemming (3). |
21.12.2015, 10:55 | #47 |
Участник
|
1) Introduction to HTML5 Web Workers: The JavaScript Multi-threading Approach
2) Если ты читаешь не только последнее сообщение, но и контекст, то обнаружишь, что состоялся примерно такой диалог: - Смотрите, что за говнокод надо писать в W10 на JS - Это, навреное, из за асинхронности - Нет, это потому, что js однопоточный Т.е. однопоточность в данной ветке обсуждения - нежелательный фактор, приводящий к говнокоду. |
|
21.12.2015, 15:06 | #48 |
Модератор
|
Максим, я читаю контектст, который был перед моим сообщением, и я добавил новый не просто так (но и для фана, конечно). Я повидал много интересных начинаний, но все сводится к нескольким:
* Узкоспециализированные языки, решающие определенный класс задач (NoSQL, R) * Абстрактные "кони в ваккуме" - прекрасные языки, но непонятно как их использовать на практике (например Lisp и Smalltalk - это концептуальные языки, и из них надергли идей при развитии более распространенных прикладных средств) * Форки, которые позволяют хоть как-то облегчить жизнь явистам и / или разработчикам мобильных приложений (зачастую компилируют код в ту же Java) * "Новые быстрые" (зачастую функциоанальные) средства разработки, которые могут снизить планку входа профессию. Зачастую применяются на массовых технологиях, сиречь Web-разработка. Вот здесь обычно "сначала сделали, а потом начали думать над производительностью", зачастую при старте у них нет многопоточности, и она добавляется очень тяжело. VBA и JS надо приводить в пример? Я очень обрадовался, что всего через несколько страниц коллеги пришли к этой идее, мне было приятно что я угадал с направлением развития дискуссии. С Уважением, Георгий |
|
21.12.2015, 15:18 | #49 |
Участник
|
Цитата:
Смолток тоже был популярен пока не был задавлен Джавой (его IBM весьма окучивал). Цитата:
* "Новые быстрые" (зачастую функциоанальные) средства разработки, которые могут снизить планку входа профессию. Зачастую применяются на массовых технологиях, сиречь Web-разработка. Вот здесь обычно "сначала сделали, а потом начали думать над производительностью", зачастую при старте у них нет многопоточности, и она добавляется очень тяжело. VBA и JS надо приводить в пример? Я очень обрадовался, что всего через несколько страниц коллеги пришли к этой идее, мне было приятно что я угадал с направлением развития дискуссии.
|
|
24.12.2015, 07:01 | #50 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
24.12.2015, 07:39 | #51 |
Участник
|
Цитата:
Возможно, вам будет интересно прочесть этот ответ: Цитата:
1. Потому, что разработчики браузеров и скриптовых машин (Rhino, SpiderMonkey) так создали свои программные продукты.
2. Потому, что составители спецификации ECMAScript описали этот язык как однопоточный. 3. Потому, что задачи, для решения которых этот язык позиционировался (придание интерактивности и динамики HTML-страничкам, проверка правильности заполнения форм и простые визуальные эффекты), не сочли достаточно сложными для того, что бы усложнять этот язык многопоточными конструкциями. А в последствии, даже если кто-то и пересмотрел своё решение, эти конструкции не стали вводить по причине желания сохранить обратную совместимость уже написанных сценариев и сложностей эволюционного перехода к ним. 4а. Потому что этот язык изначально был придуман и введён компанией Netscape для браузера Netscape Navigator в эпоху "браузерных войн" в качестве конкурентного преимущества перед компанией Microsoft и на тот момент развитие языка HTML было таковым, что коммерческие интересы Netscape диктовали этой компании постановку именно таких задач перед этим языком. Более сложные задачи перед разработчивами сайтов при том уровне развития интернета просто не стояли и. если бы была введена многопоточность, это выглядело бы излишним утяжелением этого языка. 4б. Потому, что понадобилось бы обеспечивать thread-safe`овость DOM-дерева и большинства объектов объектной модели. Так же необходимо было бы предоставлять возможность синхронизовывать функции и/или блоки, критичные к многотредовому использованию, придумывать или брать из других более сложных языков механизмы разруливания конфликтов за ресурсы и прочее и прочее. Кроме того, введение этого механизма сильно ослабило бы надёжность JS-машин и на порядки усложнило бы их реализацию без какого-либо существенного выигрыша для тех задач, которые традиционно решаются на этом языке. 4в. Хотя бы потому, что многочисленные методы DOM-модели, которые активно использует колоссальное количество сценариев, стали бы работать по-другому, с задержками. Ряд методов наверняка пришлось бы убирать, другие - вводить. Не надо ещё забывать "особую точку зрения на стандарты" компании Microsoft, которая бы наверняка не упустила бы лишнего шанса устроить очередную гадость несчастным скрипт-кодерам, старающимся писать кросс-браузерные скрипты, сделав свою реализацию многопоточности в JScript частично или даже полностью неcовместимой с ECMA. Всё это привело бы к колоссальной путанице. |
|
|
За это сообщение автора поблагодарили: George Nordic (2), belugin (2). |
24.12.2015, 07:43 | #52 |
Участник
|
Цитата:
Сообщение от AP-1055D
Я не эксперт по JavaScript так как занимаюсь им чуть более года.
Возможно, вам будет интересно прочесть этот ответ: Цитата:
JavaScript сам по себе не является ни однопоточным, ни много поточным.
Все зависит от реализации. Браузерная реализация JavaScript, действительно, является однопоточной. Но, например, реализация, на платформе Mozilla Rhino позволяет создавать многопоточность, использую стандартную работу с потоками в JVM. |
|
24.12.2015, 09:51 | #53 |
Модератор
|
Вот поэтому я и написал "при старте" однопоточные, а потом допиливают:
Цитата:
Сообщение от George Nordic
* "Новые быстрые" (зачастую функциоанальные) средства разработки, которые могут снизить планку входа профессию. Зачастую применяются на массовых технологиях, сиречь Web-разработка. Вот здесь обычно "сначала сделали, а потом начали думать над производительностью", зачастую при старте у них нет многопоточности, и она добавляется очень тяжело. VBA и JS надо приводить в пример?
С Уважением, Георгий |
|
24.12.2015, 10:08 | #54 |
Участник
|
Цитата:
Следует отличать язык от рантайма и от стандартной библиотеки. Пример универсального приложения под WIn10 на JS не показывает недостатков самого языка а только библиотеки. И то, вероятно, так сделано, чтобы было совместимо/переносимо на/с других платформ. Последний раз редактировалось belugin; 24.12.2015 в 11:04. |
|
06.08.2016, 01:13 | #55 |
Участник
|
Вернувшись к изначальной теме - написал простенький движок блога. Писать очень приятно, за весь проект нет ни единого использования модификатора var. Из функционального программирования задействовал пару раз foldRight. Так же очень приятно и быстро получается писать на одних функциях, классы использовались только для моделей. В общем, Kotlin очень приятный язык и я внимательно слежу за его развитием.
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
12.08.2016, 19:31 | #56 |
Участник
|
Я просто не могу не поделиться, какие классные штуки можно делать на Kotlin. Это iDSL для тестирования!
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
23.08.2016, 20:38 | #57 |
Banned
|
Цитата:
Сообщение от Lemming
Вернувшись к изначальной теме - написал простенький движок блога. Писать очень приятно, за весь проект нет ни единого использования модификатора var. Из функционального программирования задействовал пару раз foldRight. Так же очень приятно и быстро получается писать на одних функциях, классы использовались только для моделей. В общем, Kotlin очень приятный язык и я внимательно слежу за его развитием.
Это как сахар в кружку класть в кафе в городе. Синтаксис - это сахар. А ещё есть куда кладём, где сидим и где находимся. PHP, Python, JavaScript - вот оно настоящее уличное, без сахарного камерного гламура. |
|
23.08.2016, 21:50 | #58 |
Banned
|
Lack of polymorphism
http://www.natpryce.com/articles/000815.html Exactly how happy we’ve been with Kotlin has depended on the design style of the code we’re writing: For functional programming, Kotlin has occasionally been frustrating, because we cannot use parametric polymorphism to factor out duplicated logic as much as we’d like. For object-oriented programming, Kotlin’s concise syntax for class definitions and language support for delegation avoids a lot of Java’s boilerplate. |
|
Теги |
f#, kotlin |
|
|